diff --git a/DEPS b/DEPS
index b65fde62..00269c7 100644
--- a/DEPS
+++ b/DEPS
@@ -195,11 +195,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': 'c9c4e2e9efac93ad5cd6bcabcb4ec53f0a0df70c',
+  'skia_revision': '43f49b4d52a42dd6d4ecdeca676f5589a43a849f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'b5bfc19060281a42120330089b6d1531a63c3cca',
+  'v8_revision': 'dca4660474efaf37c89377b0cf6ad8b8af5652a8',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -207,7 +207,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '27391a090ec28a1bb09605d2f3e3140e660d3069',
+  'angle_revision': '2e5647c8eede78ea1cf6def49bb624f837590176',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -258,7 +258,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': '292d9a8341d30f1ed73d68a0854586cbe05742fb',
+  'catapult_revision': '69d93258d753ea8b5fdd46abce7c5dd9f04e2d83',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -322,7 +322,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': '2c4978fa890c4d02b7c453284d23255b22d1191b',
+  'quiche_revision': 'd2bf0ba74c742056b9f982d35fccff77cabb4c59',
   # 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.
@@ -520,7 +520,7 @@
   },
 
   'src/ios/third_party/earl_grey2/src': {
-      'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + 'a1c3b1271dcd33d15f2df2324a3ed662ef4c02d5',
+      'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + '3f5086309f486b6be45f25954415417415280415',
       'condition': 'checkout_ios',
   },
 
@@ -1248,7 +1248,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '4c3752c7f6777b6c5d870271a6094db6840eabd7',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '22e7f7a0d7d761f391e41ad2b9767e2251cb0749',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1326,7 +1326,7 @@
       'packages': [
           {
               'package': 'fuchsia/third_party/aemu/linux-amd64',
-              'version': 'SnCGJyYND17McFUV7Mjjx7xrGH7jFXTJhNefqzly7gMC'
+              'version': 'zCy9vIuheNK--OaT_8WBj3IbVxW_RuxRLMp8KWTLqzIC'
           },
       ],
       'condition': 'host_os == "linux" and checkout_fuchsia',
@@ -1542,7 +1542,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@66f621ae9064b5a19388aab0f961c0e69ec5a034',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@a2a426bd66bc318b822d153f54e6de5987a3e112',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/browser/state_serializer.cc b/android_webview/browser/state_serializer.cc
index ded2f5b..f08dde66 100644
--- a/android_webview/browser/state_serializer.cc
+++ b/android_webview/browser/state_serializer.cc
@@ -92,9 +92,8 @@
   entries.reserve(entry_count);
   for (int i = 0; i < entry_count; ++i) {
     entries.push_back(content::NavigationEntry::Create());
-    if (!internal::RestoreNavigationEntryFromPickle(
-            state_version, iterator, web_contents->GetBrowserContext(),
-            entries[i].get()))
+    if (!internal::RestoreNavigationEntryFromPickle(state_version, iterator,
+                                                    entries[i].get()))
       return false;
   }
 
@@ -183,19 +182,15 @@
 }
 
 bool RestoreNavigationEntryFromPickle(base::PickleIterator* iterator,
-                                      content::BrowserContext* browser_context,
                                       content::NavigationEntry* entry) {
-  return RestoreNavigationEntryFromPickle(AW_STATE_VERSION, iterator,
-                                          browser_context, entry);
+  return RestoreNavigationEntryFromPickle(AW_STATE_VERSION, iterator, entry);
 }
 
 bool RestoreNavigationEntryFromPickle(uint32_t state_version,
                                       base::PickleIterator* iterator,
-                                      content::BrowserContext* browser_context,
                                       content::NavigationEntry* entry) {
   DCHECK(IsSupportedVersion(state_version));
   DCHECK(iterator);
-  DCHECK(browser_context);
   DCHECK(entry);
 
   GURL deserialized_url;
@@ -337,7 +332,6 @@
     entry->SetHttpStatusCode(http_status_code);
   }
 
-  entry->InitRestoredEntry(browser_context);
   return true;
 }
 
diff --git a/android_webview/browser/state_serializer.h b/android_webview/browser/state_serializer.h
index 2b9613c..d27800b6 100644
--- a/android_webview/browser/state_serializer.h
+++ b/android_webview/browser/state_serializer.h
@@ -18,7 +18,6 @@
 
 namespace content {
 
-class BrowserContext;
 class NavigationEntry;
 class WebContents;
 
@@ -55,12 +54,10 @@
                                   content::NavigationEntry& entry,
                                   base::Pickle* pickle);
 bool RestoreNavigationEntryFromPickle(base::PickleIterator* iterator,
-                                      content::BrowserContext* browser_context,
                                       content::NavigationEntry* entry)
     WARN_UNUSED_RESULT;
 bool RestoreNavigationEntryFromPickle(uint32_t state_version,
                                       base::PickleIterator* iterator,
-                                      content::BrowserContext* browser_context,
                                       content::NavigationEntry* entry)
     WARN_UNUSED_RESULT;
 
diff --git a/android_webview/browser/state_serializer_unittest.cc b/android_webview/browser/state_serializer_unittest.cc
index 734522b9..062147a 100644
--- a/android_webview/browser/state_serializer_unittest.cc
+++ b/android_webview/browser/state_serializer_unittest.cc
@@ -14,8 +14,6 @@
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/common/content_client.h"
 #include "content/public/common/page_state.h"
-#include "content/public/test/browser_task_environment.h"
-#include "content/public/test/test_browser_context.h"
 #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
@@ -74,13 +72,7 @@
     content::SetContentClient(nullptr);
   }
 
- protected:
-  content::BrowserContext* browser_context() { return &browser_context_; }
-
  private:
-  content::BrowserTaskEnvironment test_environment_;
-  content::TestBrowserContext browser_context_;
-
   content::ContentClient content_client_;
   content::ContentBrowserClient browser_client_;
 
@@ -127,8 +119,8 @@
   std::unique_ptr<content::NavigationEntry> copy(
       content::NavigationEntry::Create());
   base::PickleIterator iterator(pickle);
-  bool result = internal::RestoreNavigationEntryFromPickle(
-      &iterator, browser_context(), copy.get());
+  bool result =
+      internal::RestoreNavigationEntryFromPickle(&iterator, copy.get());
   EXPECT_TRUE(result);
 
   EXPECT_EQ(entry->GetURL(), copy->GetURL());
@@ -160,8 +152,7 @@
       content::NavigationEntry::Create());
   base::PickleIterator iterator(pickle);
   bool result = internal::RestoreNavigationEntryFromPickle(
-      internal::AW_STATE_VERSION_INITIAL, &iterator, browser_context(),
-      copy.get());
+      internal::AW_STATE_VERSION_INITIAL, &iterator, copy.get());
   EXPECT_TRUE(result);
 
   EXPECT_EQ(entry->GetURL(), copy->GetURL());
@@ -222,8 +213,8 @@
   base::PickleIterator iterator(pickle);
   std::unique_ptr<content::NavigationEntry> copy =
       content::NavigationEntry::Create();
-  bool result = internal::RestoreNavigationEntryFromPickle(
-      &iterator, browser_context(), copy.get());
+  bool result =
+      internal::RestoreNavigationEntryFromPickle(&iterator, copy.get());
   EXPECT_TRUE(result);
 
   // In https://crbug.com/999078, the empty PageState would clobber the URL
@@ -262,8 +253,8 @@
   std::unique_ptr<content::NavigationEntry> copy(
       content::NavigationEntry::Create());
   base::PickleIterator iterator(pickle);
-  bool result = internal::RestoreNavigationEntryFromPickle(
-      &iterator, browser_context(), copy.get());
+  bool result =
+      internal::RestoreNavigationEntryFromPickle(&iterator, copy.get());
   EXPECT_TRUE(result);
   EXPECT_FALSE(entry->GetDataURLAsString());
 }
@@ -285,8 +276,8 @@
   std::unique_ptr<content::NavigationEntry> copy(
       content::NavigationEntry::Create());
   base::PickleIterator iterator(pickle);
-  bool result = internal::RestoreNavigationEntryFromPickle(
-      &iterator, browser_context(), copy.get());
+  bool result =
+      internal::RestoreNavigationEntryFromPickle(&iterator, copy.get());
   EXPECT_TRUE(result);
   EXPECT_EQ(huge_data_url, copy->GetDataURLAsString()->data());
 }
diff --git a/android_webview/java/src/org/chromium/android_webview/AwAutofillClient.java b/android_webview/java/src/org/chromium/android_webview/AwAutofillClient.java
index 22ef069b3..9c962e86 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwAutofillClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwAutofillClient.java
@@ -99,7 +99,7 @@
     @CalledByNative
     private static void addToAutofillSuggestionArray(AutofillSuggestion[] array, int index,
             String name, String label, int uniqueId) {
-        array[index] = new AutofillSuggestion(name, label, DropdownItem.NO_ICON,
+        array[index] = new AutofillSuggestion(name, label, /* itemTag= */ "", DropdownItem.NO_ICON,
                 false /* isIconAtLeft */, uniqueId, false /* isDeletable */,
                 false /* isMultilineLabel */, false /* isBoldLabel */);
     }
diff --git a/ash/app_list/views/contents_view.cc b/ash/app_list/views/contents_view.cc
index 8ff41ac..b444b574 100644
--- a/ash/app_list/views/contents_view.cc
+++ b/ash/app_list/views/contents_view.cc
@@ -111,41 +111,42 @@
 
   AppListViewDelegate* view_delegate = GetAppListMainView()->view_delegate();
 
-  apps_container_view_ = new AppsContainerView(this, model);
-
-  AddLauncherPage(apps_container_view_, AppListState::kStateApps);
+  apps_container_view_ =
+      AddLauncherPage(std::make_unique<AppsContainerView>(this, model),
+                      AppListState::kStateApps);
 
   // Search results UI.
-  search_results_page_view_ =
-      new SearchResultPageView(view_delegate, view_delegate->GetSearchModel());
+  auto search_results_page_view = std::make_unique<SearchResultPageView>(
+      view_delegate, view_delegate->GetSearchModel());
 
   // Search result containers:
   if (app_list_features::IsAnswerCardEnabled()) {
     search_result_answer_card_view_ =
-        new SearchResultAnswerCardView(view_delegate);
-    search_results_page_view_->AddSearchResultContainerView(
-        search_result_answer_card_view_);
+        search_results_page_view->AddSearchResultContainerView(
+            std::make_unique<SearchResultAnswerCardView>(view_delegate));
   }
 
   expand_arrow_view_ =
       AddChildView(std::make_unique<ExpandArrowView>(this, app_list_view_));
 
-  search_result_tile_item_list_view_ = new SearchResultTileItemListView(
-      GetSearchBoxView()->search_box(), view_delegate);
-  search_results_page_view_->AddSearchResultContainerView(
-      search_result_tile_item_list_view_);
+  search_result_tile_item_list_view_ =
+      search_results_page_view->AddSearchResultContainerView(
+          std::make_unique<SearchResultTileItemListView>(
+              GetSearchBoxView()->search_box(), view_delegate));
 
   search_result_list_view_ =
-      new SearchResultListView(GetAppListMainView(), view_delegate);
-  search_results_page_view_->AddSearchResultContainerView(
-      search_result_list_view_);
+      search_results_page_view->AddSearchResultContainerView(
+          std::make_unique<SearchResultListView>(GetAppListMainView(),
+                                                 view_delegate));
 
-  AddLauncherPage(search_results_page_view_, AppListState::kStateSearchResults);
+  search_results_page_view_ = AddLauncherPage(
+      std::move(search_results_page_view), AppListState::kStateSearchResults);
 
-  assistant_page_view_ =
-      new AssistantPageView(view_delegate->GetAssistantViewDelegate());
-  assistant_page_view_->SetVisible(false);
-  AddLauncherPage(assistant_page_view_, AppListState::kStateEmbeddedAssistant);
+  auto assistant_page_view = std::make_unique<AssistantPageView>(
+      view_delegate->GetAssistantViewDelegate());
+  assistant_page_view->SetVisible(false);
+  assistant_page_view_ = AddLauncherPage(std::move(assistant_page_view),
+                                         AppListState::kStateEmbeddedAssistant);
 
   int initial_page_index = GetPageIndexForState(AppListState::kStateApps);
   DCHECK_GE(initial_page_index, 0);
@@ -490,15 +491,11 @@
   return app_list_view_->app_list_main_view();
 }
 
-int ContentsView::AddLauncherPage(AppListPage* view) {
+void ContentsView::AddLauncherPageInternal(std::unique_ptr<AppListPage> view,
+                                           AppListState state) {
   view->set_contents_view(this);
-  AddChildView(view);
-  app_list_pages_.push_back(view);
-  return app_list_pages_.size() - 1;
-}
-
-int ContentsView::AddLauncherPage(AppListPage* view, AppListState state) {
-  int page_index = AddLauncherPage(view);
+  app_list_pages_.push_back(AddChildView(std::move(view)));
+  int page_index = app_list_pages_.size() - 1;
   bool success =
       state_to_view_.insert(std::make_pair(state, page_index)).second;
   success = success &&
@@ -506,7 +503,6 @@
 
   // There shouldn't be duplicates in either map.
   DCHECK(success);
-  return page_index;
 }
 
 gfx::Rect ContentsView::GetSearchBoxBounds(AppListState state) const {
diff --git a/ash/app_list/views/contents_view.h b/ash/app_list/views/contents_view.h
index f86881d..b4f6ecc 100644
--- a/ash/app_list/views/contents_view.h
+++ b/ash/app_list/views/contents_view.h
@@ -238,14 +238,18 @@
   void UpdateSearchBoxVisibility(AppListState current_state);
 
   // Adds |view| as a new page to the end of the list of launcher pages. The
-  // view is inserted as a child of the ContentsView. There is no name
-  // associated with the page. Returns the index of the new page.
-  int AddLauncherPage(AppListPage* view);
-
-  // Adds |view| as a new page to the end of the list of launcher pages. The
   // view is inserted as a child of the ContentsView. The page is associated
-  // with the name |state|. Returns the index of the new page.
-  int AddLauncherPage(AppListPage* view, AppListState state);
+  // with the name |state|. Returns a pointer to the instance of the new page.
+  template <typename T>
+  T* AddLauncherPage(std::unique_ptr<T> view, AppListState state) {
+    auto* result = view.get();
+    AddLauncherPageInternal(std::move(view), state);
+    return result;
+  }
+
+  // Internal version of the above that does the actual work.
+  void AddLauncherPageInternal(std::unique_ptr<AppListPage> view,
+                               AppListState state);
 
   // Gets the PaginationModel owned by the AppsGridView.
   // Note: This is different to |pagination_model_|, which manages top-level
diff --git a/ash/app_list/views/search_result_page_view.cc b/ash/app_list/views/search_result_page_view.cc
index 3e44a41e..09fde12 100644
--- a/ash/app_list/views/search_result_page_view.cc
+++ b/ash/app_list/views/search_result_page_view.cc
@@ -7,7 +7,6 @@
 #include <stddef.h>
 
 #include <algorithm>
-#include <utility>
 
 #include "ash/app_list/app_list_util.h"
 #include "ash/app_list/app_list_view_delegate.h"
@@ -44,6 +43,8 @@
 #include "ui/views/focus/focus_manager.h"
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/layout/fill_layout.h"
+#include "ui/views/metadata/metadata_header_macros.h"
+#include "ui/views/metadata/metadata_impl_macros.h"
 #include "ui/views/window/dialog_delegate.h"
 
 namespace ash {
@@ -83,20 +84,27 @@
 // in the correct order.
 class SearchCardView : public views::View {
  public:
-  explicit SearchCardView(views::View* content_view) {
+  METADATA_HEADER(SearchCardView);
+  explicit SearchCardView(std::unique_ptr<views::View> content_view) {
     SetLayoutManager(std::make_unique<views::FillLayout>());
-    AddChildView(content_view);
+    AddChildView(std::move(content_view));
   }
-
-  // views::View overrides:
-  const char* GetClassName() const override { return "SearchCardView"; }
-
+  SearchCardView(const SearchCardView&) = delete;
+  SearchCardView& operator=(const SearchCardView&) = delete;
   ~SearchCardView() override {}
 };
 
+BEGIN_METADATA(SearchCardView)
+METADATA_PARENT_CLASS(views::View)
+END_METADATA()
+
 class ZeroWidthVerticalScrollBar : public views::OverlayScrollBar {
  public:
   ZeroWidthVerticalScrollBar() : OverlayScrollBar(false) {}
+  ZeroWidthVerticalScrollBar(const ZeroWidthVerticalScrollBar&) = delete;
+  ZeroWidthVerticalScrollBar& operator=(const ZeroWidthVerticalScrollBar&) =
+      delete;
+  ~ZeroWidthVerticalScrollBar() override = default;
 
   // OverlayScrollBar overrides:
   int GetThickness() const override { return 0; }
@@ -106,9 +114,6 @@
     // result is focused, it will be set visible in scroll view.
     return false;
   }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(ZeroWidthVerticalScrollBar);
 };
 
 class SearchResultPageBackground : public views::Background {
@@ -116,6 +121,9 @@
   explicit SearchResultPageBackground(SkColor color) {
     SetNativeControlColor(color);
   }
+  SearchResultPageBackground(const SearchResultPageBackground&) = delete;
+  SearchResultPageBackground& operator=(const SearchResultPageBackground&) =
+      delete;
   ~SearchResultPageBackground() override = default;
 
  private:
@@ -130,8 +138,6 @@
     bounds.set_height(kSeparatorThickness);
     canvas->FillRect(bounds, kSeparatorColor);
   }
-
-  DISALLOW_COPY_AND_ASSIGN(SearchResultPageBackground);
 };
 
 }  // namespace
@@ -222,17 +228,18 @@
 
 SearchResultPageView::~SearchResultPageView() = default;
 
-void SearchResultPageView::AddSearchResultContainerView(
-    SearchResultContainerView* result_container) {
+void SearchResultPageView::AddSearchResultContainerViewInternal(
+    std::unique_ptr<SearchResultContainerView> result_container) {
   if (!result_container_views_.empty()) {
-    HorizontalSeparator* separator = new HorizontalSeparator(bounds().width());
-    contents_view_->AddChildView(separator);
-    separators_.push_back(separator);
+    separators_.push_back(contents_view_->AddChildView(
+        std::make_unique<HorizontalSeparator>(bounds().width())));
   }
-  contents_view_->AddChildView(new SearchCardView(result_container));
-  result_container_views_.push_back(result_container);
-  result_container->SetResults(search_model_->results());
-  result_container->set_delegate(this);
+  auto* result_container_ptr = result_container.get();
+  contents_view_->AddChildView(
+      std::make_unique<SearchCardView>(std::move(result_container)));
+  result_container_views_.push_back(result_container_ptr);
+  result_container_ptr->SetResults(search_model_->results());
+  result_container_ptr->set_delegate(this);
 }
 
 bool SearchResultPageView::IsFirstResultTile() const {
diff --git a/ash/app_list/views/search_result_page_view.h b/ash/app_list/views/search_result_page_view.h
index 0bc1356..8df1186 100644
--- a/ash/app_list/views/search_result_page_view.h
+++ b/ash/app_list/views/search_result_page_view.h
@@ -6,6 +6,7 @@
 #define ASH_APP_LIST_VIEWS_SEARCH_RESULT_PAGE_VIEW_H_
 
 #include <memory>
+#include <utility>
 #include <vector>
 
 #include "ash/app_list/app_list_export.h"
@@ -40,8 +41,12 @@
                        SearchModel* search_model);
   ~SearchResultPageView() override;
 
-  void AddSearchResultContainerView(
-      SearchResultContainerView* result_container);
+  template <typename T>
+  T* AddSearchResultContainerView(std::unique_ptr<T> result_container) {
+    auto* result = result_container.get();
+    AddSearchResultContainerViewInternal(std::move(result_container));
+    return result;
+  }
 
   const std::vector<SearchResultContainerView*>& result_container_views() {
     return result_container_views_;
@@ -155,6 +160,9 @@
   // Called when the widget anchored in the search results page gets closed.
   void OnAnchoredDialogClosed();
 
+  void AddSearchResultContainerViewInternal(
+      std::unique_ptr<SearchResultContainerView> result_container);
+
   AppListViewDelegate* view_delegate_;
 
   // The search model for which the results are displayed.
diff --git a/ash/capture_mode/capture_mode_controller.cc b/ash/capture_mode/capture_mode_controller.cc
index 48b71a6..9d297b4 100644
--- a/ash/capture_mode/capture_mode_controller.cc
+++ b/ash/capture_mode/capture_mode_controller.cc
@@ -63,13 +63,19 @@
   // TODO(afakhry): Use root window of the mouse cursor or the one for new
   // windows.
   capture_mode_session_ =
-      std::make_unique<CaptureModeSession>(Shell::GetPrimaryRootWindow());
+      std::make_unique<CaptureModeSession>(this, Shell::GetPrimaryRootWindow());
 }
 
 void CaptureModeController::Stop() {
   capture_mode_session_.reset();
 }
 
+void CaptureModeController::PerformCapture() {
+  DCHECK(IsActive());
+  // TODO(afakhry): Fill in here.
+  Stop();
+}
+
 void CaptureModeController::EndVideoRecording() {
   // TODO(afakhry): Fill in here.
 }
diff --git a/ash/capture_mode/capture_mode_controller.h b/ash/capture_mode/capture_mode_controller.h
index 11b26df..e669f99 100644
--- a/ash/capture_mode/capture_mode_controller.h
+++ b/ash/capture_mode/capture_mode_controller.h
@@ -10,6 +10,7 @@
 #include "ash/ash_export.h"
 #include "ash/capture_mode/capture_mode_types.h"
 #include "ash/public/cpp/capture_mode_delegate.h"
+#include "ui/gfx/geometry/rect.h"
 
 namespace ash {
 
@@ -32,6 +33,10 @@
   CaptureModeSession* capture_mode_session() const {
     return capture_mode_session_.get();
   }
+  gfx::Rect user_capture_region() const { return user_capture_region_; }
+  void set_user_capture_region(const gfx::Rect& region) {
+    user_capture_region_ = region;
+  }
 
   // Returns true if a capture mode session is currently active.
   bool IsActive() const { return !!capture_mode_session_; }
@@ -48,6 +53,11 @@
   // Stops an existing capture session.
   void Stop();
 
+  // Called only while a capture session is in progress to perform the actual
+  // capture depending on the current selected |source_| and |type_|, and ends
+  // the capture session.
+  void PerformCapture();
+
   void EndVideoRecording();
 
  private:
@@ -56,6 +66,11 @@
   CaptureModeType type_ = CaptureModeType::kImage;
   CaptureModeSource source_ = CaptureModeSource::kRegion;
 
+  // We remember the user selected capture region when the source is |kRegion|
+  // between sessions. Initially, this value is empty at which point we display
+  // a message to the user instructing them to start selecting a region.
+  gfx::Rect user_capture_region_;
+
   std::unique_ptr<CaptureModeSession> capture_mode_session_;
 };
 
diff --git a/ash/capture_mode/capture_mode_session.cc b/ash/capture_mode/capture_mode_session.cc
index 3d7a075..7f16b9a 100644
--- a/ash/capture_mode/capture_mode_session.cc
+++ b/ash/capture_mode/capture_mode_session.cc
@@ -4,23 +4,74 @@
 
 #include "ash/capture_mode/capture_mode_session.h"
 
+#include <memory>
+
 #include "ash/capture_mode/capture_mode_bar_view.h"
+#include "ash/capture_mode/capture_mode_controller.h"
+#include "ash/display/mouse_cursor_event_filter.h"
 #include "ash/public/cpp/shell_window_ids.h"
+#include "ash/shell.h"
+#include "ash/style/ash_color_provider.h"
+#include "ash/wm/mru_window_tracker.h"
 #include "base/memory/ptr_util.h"
 #include "ui/aura/window.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/layer_type.h"
+#include "ui/compositor/paint_recorder.h"
+#include "ui/events/types/event_type.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/color_palette.h"
+#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/scoped_canvas.h"
 
 namespace ash {
 
-CaptureModeSession::CaptureModeSession(aura::Window* root)
-    : capture_mode_bar_view_(new CaptureModeBarView()) {
+namespace {
+
+constexpr int kBorderStrokePx = 2;
+
+// Blue300 at 30%.
+constexpr SkColor kCaptureRegionColor = SkColorSetA(gfx::kGoogleBlue300, 77);
+
+// Mouse cursor warping is disabled when the capture source is a custom region.
+// Sets the mouse warp status to |enable| and return the original value.
+bool SetMouseWarpEnabled(bool enable) {
+  auto* mouse_cursor_filter = Shell::Get()->mouse_cursor_filter();
+  const bool old_value = mouse_cursor_filter->mouse_warp_enabled();
+  mouse_cursor_filter->set_mouse_warp_enabled(enable);
+  return old_value;
+}
+
+// Gets the overlay container inside |root|.
+aura::Window* GetParentContainer(aura::Window* root) {
   DCHECK(root);
   DCHECK(root->IsRootWindow());
+  return root->GetChildById(kShellWindowId_OverlayContainer);
+}
+
+}  // namespace
+
+CaptureModeSession::CaptureModeSession(CaptureModeController* controller,
+                                       aura::Window* root)
+    : controller_(controller),
+      current_root_(root),
+      capture_mode_bar_view_(new CaptureModeBarView()),
+      old_mouse_warp_status_(SetMouseWarpEnabled(controller_->source() !=
+                                                 CaptureModeSource::kRegion)) {
+  Shell::Get()->AddPreTargetHandler(this);
+
+  SetLayer(std::make_unique<ui::Layer>(ui::LAYER_TEXTURED));
+  layer()->SetFillsBoundsOpaquely(false);
+  layer()->set_delegate(this);
+  auto* parent = GetParentContainer(current_root_);
+  parent->layer()->Add(layer());
+  layer()->SetBounds(parent->bounds());
 
   views::Widget::InitParams params(
       views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
   params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
   params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
-  params.parent = root->GetChildById(kShellWindowId_OverlayContainer);
+  params.parent = parent;
   params.bounds = CaptureModeBarView::GetBounds(root);
   params.name = "CaptureModeBarWidget";
 
@@ -28,16 +79,128 @@
   capture_mode_bar_widget_.SetContentsView(
       base::WrapUnique(capture_mode_bar_view_));
   capture_mode_bar_widget_.Show();
+
+  RefreshStackingOrder(parent);
 }
 
-CaptureModeSession::~CaptureModeSession() = default;
+CaptureModeSession::~CaptureModeSession() {
+  Shell::Get()->RemovePreTargetHandler(this);
+  SetMouseWarpEnabled(old_mouse_warp_status_);
+}
 
 void CaptureModeSession::OnCaptureSourceChanged(CaptureModeSource new_source) {
   capture_mode_bar_view_->OnCaptureSourceChanged(new_source);
+  SetMouseWarpEnabled(new_source != CaptureModeSource::kRegion);
+  layer()->SchedulePaint(layer()->bounds());
 }
 
 void CaptureModeSession::OnCaptureTypeChanged(CaptureModeType new_type) {
   capture_mode_bar_view_->OnCaptureTypeChanged(new_type);
 }
 
+void CaptureModeSession::OnPaintLayer(const ui::PaintContext& context) {
+  ui::PaintRecorder recorder(context, layer()->size());
+
+  auto* color_provider = AshColorProvider::Get();
+  const SkColor dimming_color = color_provider->GetShieldLayerColor(
+      AshColorProvider::ShieldLayerType::kShield40,
+      AshColorProvider::AshColorMode::kDark);
+  recorder.canvas()->DrawColor(dimming_color);
+
+  PaintCaptureRegion(recorder.canvas());
+}
+
+void CaptureModeSession::OnKeyEvent(ui::KeyEvent* event) {
+  if (event->type() != ui::ET_KEY_PRESSED)
+    return;
+
+  if (event->key_code() == ui::VKEY_ESCAPE) {
+    event->StopPropagation();
+    controller_->Stop();  // |this| is destroyed here.
+    return;
+  }
+
+  if (event->key_code() == ui::VKEY_RETURN) {
+    event->StopPropagation();
+    controller_->PerformCapture();  // |this| is destroyed here.
+    return;
+  }
+}
+
+void CaptureModeSession::OnMouseEvent(ui::MouseEvent* event) {
+  // TODO(afakhry): Fill in here.
+}
+
+void CaptureModeSession::OnTouchEvent(ui::TouchEvent* event) {
+  // TODO(afakhry): Fill in here.
+}
+
+gfx::Rect CaptureModeSession::GetSelectedWindowBounds() const {
+  // Note that the capture bar widget is activatable, so we can't use
+  // window_util::GetActiveWindow(). Instead, we use the MRU window tracker and
+  // get the top-most window if any.
+  auto mru_windows =
+      Shell::Get()->mru_window_tracker()->BuildMruWindowList(kActiveDesk);
+  if (!mru_windows.empty())
+    return mru_windows[0]->bounds();
+  return gfx::Rect();
+}
+
+void CaptureModeSession::RefreshStackingOrder(aura::Window* parent_container) {
+  DCHECK(parent_container);
+  auto* widget_layer = capture_mode_bar_widget_.GetNativeWindow()->layer();
+  auto* overlay_layer = layer();
+  auto* parent_container_layer = parent_container->layer();
+
+  DCHECK_EQ(parent_container_layer, overlay_layer->parent());
+  DCHECK_EQ(parent_container_layer, widget_layer->parent());
+
+  parent_container_layer->StackAtTop(overlay_layer);
+  parent_container_layer->StackAtTop(widget_layer);
+}
+
+void CaptureModeSession::PaintCaptureRegion(gfx::Canvas* canvas) {
+  gfx::Rect region;
+  bool adjustable_region = false;
+
+  switch (controller_->source()) {
+    case CaptureModeSource::kFullscreen:
+      region = current_root_->bounds();
+      break;
+
+    case CaptureModeSource::kWindow:
+      region = GetSelectedWindowBounds();
+      break;
+
+    case CaptureModeSource::kRegion:
+      region = controller_->user_capture_region();
+      adjustable_region = true;
+      break;
+  }
+
+  if (region.IsEmpty())
+    return;
+
+  gfx::ScopedCanvas scoped_canvas(canvas);
+  const float dsf = canvas->UndoDeviceScaleFactor();
+  region = gfx::ScaleToEnclosingRect(region, dsf);
+
+  canvas->FillRect(region, SK_ColorBLACK, SkBlendMode::kClear);
+  canvas->FillRect(region, kCaptureRegionColor);
+
+  if (!adjustable_region)
+    return;
+
+  // TODO(afakhry): For adjustable regions, we may change the colors. Also,
+  // paint the drag points at the corners.
+  region.Inset(-kBorderStrokePx, -kBorderStrokePx);
+  cc::PaintFlags flags;
+  flags.setAntiAlias(true);
+  flags.setStyle(cc::PaintFlags::kStroke_Style);
+  // TODO(afakhry): Update to match the specs.
+  flags.setColor(gfx::kGoogleBlue200);
+  flags.setStrokeWidth(SkIntToScalar(kBorderStrokePx));
+  canvas->DrawRect(region, flags);
+}
+
 }  // namespace ash
diff --git a/ash/capture_mode/capture_mode_session.h b/ash/capture_mode/capture_mode_session.h
index 0bec158..cc61d175 100644
--- a/ash/capture_mode/capture_mode_session.h
+++ b/ash/capture_mode/capture_mode_session.h
@@ -6,22 +6,37 @@
 #define ASH_CAPTURE_MODE_CAPTURE_MODE_SESSION_H_
 
 #include "ash/ash_export.h"
-#include "ash/capture_mode/capture_mode_bar_view.h"
 #include "ash/capture_mode/capture_mode_types.h"
+#include "ui/compositor/layer_delegate.h"
+#include "ui/compositor/layer_owner.h"
+#include "ui/events/event_handler.h"
 #include "ui/views/widget/widget.h"
 
+namespace gfx {
+class Canvas;
+}  // namespace gfx
+
 namespace ash {
 
+class CaptureModeBarView;
+class CaptureModeController;
+
 // Encapsulates an active capture mode session (i.e. an instance of this class
 // lives as long as capture mode is active). It creates and owns the capture
 // mode bar widget.
-class ASH_EXPORT CaptureModeSession {
+// The CaptureModeSession is a LayerOwner that owns a texture layer placed right
+// beneath the layer of the bar widget. This layer is used to paint a dimming
+// shield of the areas that won't be captured, and another bright region showing
+// the one that will be.
+class ASH_EXPORT CaptureModeSession : public ui::LayerOwner,
+                                      public ui::LayerDelegate,
+                                      public ui::EventHandler {
  public:
   // Creates the bar widget on the given |root| window.
-  explicit CaptureModeSession(aura::Window* root);
+  CaptureModeSession(CaptureModeController* controller, aura::Window* root);
   CaptureModeSession(const CaptureModeSession&) = delete;
   CaptureModeSession& operator=(const CaptureModeSession&) = delete;
-  ~CaptureModeSession();
+  ~CaptureModeSession() override;
 
   CaptureModeBarView* capture_mode_bar_view() const {
     return capture_mode_bar_view_;
@@ -31,11 +46,42 @@
   void OnCaptureSourceChanged(CaptureModeSource new_source);
   void OnCaptureTypeChanged(CaptureModeType new_type);
 
+  // ui::LayerDelegate:
+  void OnPaintLayer(const ui::PaintContext& context) override;
+  void OnDeviceScaleFactorChanged(float old_device_scale_factor,
+                                  float new_device_scale_factor) override {}
+
+  // ui::EventHandler:
+  void OnKeyEvent(ui::KeyEvent* event) override;
+  void OnMouseEvent(ui::MouseEvent* event) override;
+  void OnTouchEvent(ui::TouchEvent* event) override;
+
  private:
+  // Gets the current window selected for |kWindow| capture source.
+  gfx::Rect GetSelectedWindowBounds() const;
+
+  // Ensures that the bar widget is on top of everything, and the overlay (which
+  // is the |layer()| of this class that paints the capture region) is stacked
+  // right below the bar.
+  void RefreshStackingOrder(aura::Window* parent_container);
+
+  // Paints the current capture region depending on the current capture source.
+  void PaintCaptureRegion(gfx::Canvas* canvas);
+
+  CaptureModeController* const controller_;
+
+  // The current root window on which the capture session is active, which may
+  // change if the user warps the cursor to another display in some situations.
+  aura::Window* current_root_;
+
   views::Widget capture_mode_bar_widget_;
 
   // The content view of the above widget and owned by its views hierarchy.
   CaptureModeBarView* capture_mode_bar_view_;
+
+  // Caches the old status of mouse warping before the session started to be
+  // restored at the end.
+  bool old_mouse_warp_status_;
 };
 
 }  // namespace ash
diff --git a/ash/capture_mode/capture_mode_unittests.cc b/ash/capture_mode/capture_mode_unittests.cc
index 212e884..e2c27ba 100644
--- a/ash/capture_mode/capture_mode_unittests.cc
+++ b/ash/capture_mode/capture_mode_unittests.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "ash/capture_mode/capture_mode_bar_view.h"
 #include "ash/capture_mode/capture_mode_close_button.h"
 #include "ash/capture_mode/capture_mode_controller.h"
 #include "ash/capture_mode/capture_mode_session.h"
diff --git a/ash/display/mouse_cursor_event_filter.h b/ash/display/mouse_cursor_event_filter.h
index ffda5d8..ee3037e0 100644
--- a/ash/display/mouse_cursor_event_filter.h
+++ b/ash/display/mouse_cursor_event_filter.h
@@ -32,6 +32,7 @@
   MouseCursorEventFilter();
   ~MouseCursorEventFilter() override;
 
+  bool mouse_warp_enabled() const { return mouse_warp_enabled_; }
   void set_mouse_warp_enabled(bool enabled) { mouse_warp_enabled_ = enabled; }
 
   // Shows/Hide the indicator for window dragging. The |from|
diff --git a/ash/shell.cc b/ash/shell.cc
index b50d45f..329b4a35 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -617,6 +617,10 @@
   if (window_modality_controller_)
     window_modality_controller_.reset();
 
+  // We may shutdown while a capture session is active, which is an event
+  // handler that depends on this shell and some of its members. Destroy early.
+  capture_mode_controller_.reset();
+
   RemovePreTargetHandler(magnifier_key_scroll_handler_.get());
   magnifier_key_scroll_handler_.reset();
 
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb
index 0bf0463..6a747c2d 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_as.xtb
@@ -10,7 +10,7 @@
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">আপোনাৰ বর্তমানৰ পৃষ্ঠাটো প্ৰিণ্ট কৰক</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> বা<ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation>
 <translation id="1477442857810932985">শাৰীৰ শেষলৈ যাওক</translation>
 <translation id="1499072997694708844">যিকোনো খুলি ৰখা ৱিণ্ড’ বন্ধ কৰক অথবা আপোনাৰ বৰ্তমানৰ পৃষ্ঠাটো ল’ড কৰা বন্ধ কৰক</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_bn.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_bn.xtb
index e09316a..6b4c9904 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_bn.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_bn.xtb
@@ -10,7 +10,7 @@
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">আপনার বর্তমান পৃষ্ঠাটি প্রিন্ট করুন</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> অথবা <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation>
 <translation id="1477442857810932985">লাইনের শেষে যান</translation>
 <translation id="1499072997694708844">কোনও খোলা খোঁজার উইন্ডো বা বর্তমান পৃষ্ঠাটি লোড করা বন্ধ করুন</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_fr.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_fr.xtb
index 8ad36dc..d75e4e7 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_fr.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_fr.xtb
@@ -35,7 +35,7 @@
 <translation id="2181097965834437145">Afficher ou masquer la barre de favoris</translation>
 <translation id="2185166372312820725">Accéder à l'onglet précédent</translation>
 <translation id="2194790690264064655">Appuyez sur <ph name="CTRL" /> et cliquez sur un lien</translation>
-<translation id="2246352309084894470">Ouvrir/Fermer le Lanceur d'applications en plein écran</translation>
+<translation id="2246352309084894470">Ouvrir/Fermer le lanceur d'applications en plein écran</translation>
 <translation id="2354531887393764880">point</translation>
 <translation id="2382644247745281995">Non compatible avec la disposition de clavier actuelle</translation>
 <translation id="2397416548179033562">Afficher le menu Chrome</translation>
@@ -128,7 +128,7 @@
 <translation id="5757111373163288447">Ouvrir le lien dans l'onglet</translation>
 <translation id="5757474750054631686">Réduire la luminosité du clavier (claviers rétroéclairés uniquement)</translation>
 <translation id="587531134027443617">Supprimer le mot précédent</translation>
-<translation id="5899919361772749550">Afficher ou masquer la console des Outils pour les développeurs</translation>
+<translation id="5899919361772749550">Afficher ou masquer la console des outils pour les développeurs</translation>
 <translation id="5919628958418675842">Activer/Désactiver l'écran de confidentialité</translation>
 <translation id="5921745308587794300">Faire pivoter la fenêtre</translation>
 <translation id="6022924867608035986">Effacer le texte de la zone de recherche</translation>
@@ -173,7 +173,7 @@
 <translation id="7500368597227394048">trait d'union</translation>
 <translation id="7611271430932669992">Passer aux fenêtres pop-up et aux boîtes de dialogue</translation>
 <translation id="7635348532214572995">Déplacer une icône d'application sur la grille d'applications</translation>
-<translation id="766326951329901120">Coller le contenu du Presse-papiers en texte brut</translation>
+<translation id="766326951329901120">Coller le contenu du presse-papiers en texte brut</translation>
 <translation id="7703010453515335249">crochet gauche</translation>
 <translation id="7724603315864178912">Couper</translation>
 <translation id="7730490981846175479"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, puis <ph name="SPACE" /> ou <ph name="ENTER" /></translation>
@@ -185,7 +185,7 @@
 <translation id="8232835244134740473">Alterner entre la zone d'état (là où se trouve la photo de votre compte), le lanceur d'applications, la barre d'adresse, la barre de favoris (si elle est visible), la page Web ouverte ou la barre de téléchargements (si elle est visible).</translation>
 <translation id="8234414138295101081">Faire pivoter l'écran de 90 degrés</translation>
 <translation id="8241665785394195545">crochet droit</translation>
-<translation id="8264941229485248811">Afficher ou masquer l'inspecteur des Outils pour les développeurs</translation>
+<translation id="8264941229485248811">Afficher ou masquer l'inspecteur des outils pour les développeurs</translation>
 <translation id="836869401750819675">Ouvrir la page "Téléchargements"</translation>
 <translation id="8388247778047144397">Faites glisser le lien vers une zone vierge de la barre d'onglets</translation>
 <translation id="8389638407792712197">Ouvrir une nouvelle fenêtre</translation>
@@ -204,7 +204,7 @@
 <translation id="8982190978301344584">Afficher le menu des IME disponibles</translation>
 <translation id="8990356943438003669"><ph name="SEPARATOR" /><ph name="ALT" /> 1 à 8</translation>
 <translation id="9005984960510803406">Ouvrir une fenêtre Crosh</translation>
-<translation id="9041599225465145264">Coller le contenu du Presse-papiers</translation>
+<translation id="9041599225465145264">Coller le contenu du presse-papiers</translation>
 <translation id="9052808072970550123">Passer à l'utilisateur suivant</translation>
 <translation id="906458777597946297">Agrandir la fenêtre</translation>
 <translation id="9072882242928138086"><ph name="CTRL" /><ph name="SEPARATOR" /><ph name="SHIFT" />, puis <ph name="LEFT" />, <ph name="RIGHT" />, <ph name="UP" /> ou <ph name="DOWN" /></translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_gu.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_gu.xtb
index f01c23b..f48b334 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_gu.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_gu.xtb
@@ -10,7 +10,7 @@
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">તમારું વર્તમાન પેજ પ્રિન્ટ કરો</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> અથવા <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation>
 <translation id="1477442857810932985">રેખાના અંત પર જાઓ</translation>
 <translation id="1499072997694708844">કોઈપણ ખુલ્લી શોધ વિંડોને બંધ કરો અથવા તમારા વર્તમાન પેજને લોડ કરવાનું રોકો</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_nl.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_nl.xtb
index 2be55ba..ec25bd5 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_nl.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_nl.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
 <translation id="1036550831858290950">Het huidige tabblad als bookmark opslaan</translation>
-<translation id="104962181688258143">De Files-app openen</translation>
+<translation id="104962181688258143">De app Bestanden openen</translation>
 <translation id="1122869341872663659">Er worden <ph name="N" /> zoekresultaten voor <ph name="QUERY" /> getoond</translation>
 <translation id="1195667586424773550">Sleep de link naar de adresbalk van het tabblad</translation>
 <translation id="1204450209689312104">Een nieuw venster openen in de incognitomodus</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_sv.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_sv.xtb
index ac04aa2a..0f88723 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_sv.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_sv.xtb
@@ -156,7 +156,7 @@
 <translation id="6692847073476874842">Förhandsgranska filerna i appen Filer</translation>
 <translation id="671928215901716392">Lås skärmen</translation>
 <translation id="6727005317916125192">Föregående ruta</translation>
-<translation id="6740781404993465795">Välja nästa ord eller bokstav</translation>
+<translation id="6740781404993465795">Välj nästa ord eller bokstav</translation>
 <translation id="6755851152783057058">Byt till den senast använda inmatningsmetoden</translation>
 <translation id="6760706756348334449">Sänk volymen</translation>
 <translation id="6941333068993625698">Skicka feedback</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
index 74e0bf58..7951441 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_ta.xtb
@@ -10,7 +10,7 @@
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">உங்கள் தற்போதைய பக்கத்தை அச்சிடும்</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> அல்லது <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation>
 <translation id="1477442857810932985">வரியின் இறுதிக்குச் செல்லும்</translation>
 <translation id="1499072997694708844">தேடல் சாளரம் திறந்திருந்தால் அதை மூடலாம் அல்லது தற்போதைய பக்கம் காட்டப்படுவதை நிறுத்தலாம்</translation>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb
index 74141ae..67799d7 100644
--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb
+++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb
@@ -10,7 +10,7 @@
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">మీ ప్రస్తుత పేజీని ముద్రించండి</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> లేదా <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation>
 <translation id="1477442857810932985">పంక్తి చివరికి వెళ్లు</translation>
 <translation id="1499072997694708844">ఏదైనా తెరవబడిన 'కనుగొను' విండోను మూసివేస్తుంది లేదా మీ ప్రస్తుత పేజీని లోడ్ కాకుండా ఆపివేస్తుంది</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 7ad533c..0a0adde 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">الوصول إلى جميع أنشطتك في جلسة واحدة</translation>
 <translation id="1632985212731562677">يمكن إيقاف ميزة "الوصول عبر مفتاح التحويل" في "الإعدادات" &gt; "أدوات تمكين الوصول".</translation>
 <translation id="1654477262762802994">بدء طلب بحث صوتي</translation>
+<translation id="1665244008632896072">تبديل الوضع المُعتِم. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">الوقت المتبقي <ph name="TIME" /></translation>
 <translation id="1698080062160024910">مؤقت <ph name="TOTAL_TIME" />   <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">‏عنوان IPv6:‏ <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">تم تفعيل لوحة المفاتيح على الشاشة</translation>
 <translation id="1761222317188459878">تبديل الاتصال بالشبكة. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">التمرير لليمين</translation>
+<translation id="1776485282219497802">الوضع المُعتِم مُفعّل.</translation>
 <translation id="1782199038061388045">الترجمة</translation>
 <translation id="181103072419391116">قوة الإشارة <ph name="SIGNAL_STRENGTH" />، يديرها المشرف</translation>
 <translation id="1812997170047690955">ماذا يظهر على شاشتي؟</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">انقر على <ph name="KEYBOARD_SHORTCUT" /> لتبديل تنسيق لوحة المفاتيح.</translation>
 <translation id="2501920221385095727">مفاتيح الثبات</translation>
 <translation id="2509468283778169019">‏مفتاح CAPS LOCK قيد التفعيل</translation>
+<translation id="2517829236324128850">عرض إعدادات الوضع المُعتِم</translation>
 <translation id="2542089167727451762">انقر على صورة الملف الشخصي.</translation>
 <translation id="255671100581129685">‏لا يتوفَّر "مساعد Google" في جلسة عامة.</translation>
 <translation id="256712445991462162">المكبِّر الذي تم إرساؤه</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">مشاركة التحكم في شاشتك مع <ph name="HELPER_NAME" /> عن طريق المساعدة عن بُعد.</translation>
 <translation id="4430019312045809116">مستوى الصوت</translation>
 <translation id="4450893287417543264">عدم الإظهار مرة أخرى</translation>
+<translation id="4458688154122353284">إيقاف تسجيل الشاشة</translation>
 <translation id="4477350412780666475">المقطع الصوتي التالي</translation>
 <translation id="4477892968187500306">‏يمكن أن يتضمّن هذا الجهاز تطبيقات لم تتحقّق منها Google.</translation>
 <translation id="4479639480957787382">إيثرنت</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">‏نظام التشغيل Chromium</translation>
 <translation id="5837036133683224804">إيقاف <ph name="ROUTE_TITLE" /> في <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">غير مفعّل</translation>
+<translation id="5887866489674258948">الوضع المُعتِم</translation>
 <translation id="5895138241574237353">إعادة التشغيل</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (المالك)</translation>
 <translation id="7647488630410863958">فتح قفل الجهاز لعرض الإشعارات</translation>
 <translation id="7649070708921625228">مساعدة</translation>
+<translation id="7653418004652142983">مُفعّل</translation>
 <translation id="7654687942625752712">اضغط مع الاستمرار على مفتاحي مستوى الصوت لمدة خمس ثوانٍ لإيقاف التعليقات والملاحظات المنطوقة.</translation>
 <translation id="7658239707568436148">إلغاء</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">‏لا يتوفر مساعد Google إلا للملف الشخصي الأساسي.</translation>
 <translation id="79341161159229895">يُدير <ph name="FIRST_PARENT_EMAIL" /> و<ph name="SECOND_PARENT_EMAIL" /> الحساب.</translation>
 <translation id="7955885781510802139">وضع التباين العالي</translation>
+<translation id="7977639574084142279">غير مُفعَّل</translation>
 <translation id="7977927628060636163">جارٍ البحث عن شبكات الجوّال...</translation>
 <translation id="7980780401175799550">‏تجربة طرق أخرى للتنقل في "نظام التشغيل Chrome"</translation>
 <translation id="7982789257301363584">الشبكة</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">غير مفعّلة</translation>
 <translation id="8938800817013097409">‏جهاز USB-C (المنفذ الأيمن في الخلف)</translation>
 <translation id="8940956008527784070">طاقة البطارية منخفضة (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">الوضع المُعتِم غير مُفعّل.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">استخدام <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">فتح قفل الجهاز بواسطة <ph name="LOGIN_ID" /> لتنفيذ إجراء الإشعارات</translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index 0dfdcef..c03bfea 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -43,7 +43,7 @@
 <translation id="1341651618736211726">অভাৰফ্ল'</translation>
 <translation id="1346748346194534595">সোঁ</translation>
 <translation id="1351937230027495976">মেনু সংকোচন কৰক</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1391102559483454063">অন আছে</translation>
 <translation id="1419738280318246476">জাননী সম্পর্কীয় কার্যসমূহ কৰিবলৈ ডিভাইচ আনলক কৰক</translation>
 <translation id="1420408895951708260">ৰাতিৰ লাইট ট’গল কৰক। <ph name="STATE_TEXT" /></translation>
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">এই ছেশ্বনত আপোনাৰ সকলো কার্যকলাপ এক্সেছ কৰে</translation>
 <translation id="1632985212731562677">ছুইচৰ দ্বাৰা এক্সেছ ছেটিংসমূহ ইয়াত অক্ষম কৰিব পৰা যায় &gt; সাধ্য সুবিধা।</translation>
 <translation id="1654477262762802994">কণ্ঠধ্বনিৰদ্বাৰা সন্ধান আৰম্ভ কৰক</translation>
+<translation id="1665244008632896072">গাঢ় ম’ড ট’গল কৰক। <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> বাকী</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" />ৰ টাইমাৰ · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ঠিকনা: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">অন-স্ক্ৰীণ কীব‘র্ড সক্ষম কৰা হ‘ল</translation>
 <translation id="1761222317188459878">নেটৱৰ্ক সংযোগ ট’গল কৰক। <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">সোঁফাললৈ স্ক্ৰ’ল কৰক</translation>
+<translation id="1776485282219497802">গাঢ় ম’ড অন আছে।</translation>
 <translation id="1782199038061388045">অনুবাদ</translation>
 <translation id="181103072419391116">ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation>
 <translation id="1812997170047690955">মোৰ স্ক্ৰীণত কি আছে?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">কীব'র্ডৰ লেইআউট সলনি কৰিবলৈ <ph name="KEYBOARD_SHORTCUT" /> টিপক।</translation>
 <translation id="2501920221385095727">ষ্টিকি কী</translation>
 <translation id="2509468283778169019">CAPS LOCK হৈ আছে</translation>
+<translation id="2517829236324128850">গাঢ় ম’ডৰ ছেটিংসমূহ দেখুৱাওক</translation>
 <translation id="2542089167727451762">আপোনাৰ প্ৰ’ফাইলৰ প্ৰতিচ্ছবিত টিপক</translation>
 <translation id="255671100581129685">ৰাজহুৱা ছেশ্বনত Google Assistant নাই।</translation>
 <translation id="256712445991462162">ড'ক কৰা বিৱৰ্ধকটো</translation>
@@ -310,6 +313,7 @@
 <translation id="4421231901400348175">আপোনাৰ স্ক্ৰীণৰ নিয়ন্ত্ৰণ ৰিম’ট সহায়কৰ দ্বাৰা <ph name="HELPER_NAME" />ৰ সৈতে শ্বেয়াৰ কৰি থকা হৈছে।</translation>
 <translation id="4430019312045809116">ভলিউম</translation>
 <translation id="4450893287417543264">পুনৰ নেদেখুৱাব</translation>
+<translation id="4458688154122353284">স্ক্ৰীন ৰেকৰ্ডিং কৰা বন্ধ কৰক</translation>
 <translation id="4477350412780666475">পৰৱৰ্তী ট্ৰেক</translation>
 <translation id="4477892968187500306">এই ডিভাইচটোত Googleএ সত্যাপন নকৰা এপ্‌সমূহ থাকিব পাৰে।</translation>
 <translation id="4479639480957787382">ইথাৰনেট</translation>
@@ -414,6 +418,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />ত <ph name="ROUTE_TITLE" /> বন্ধ কৰক</translation>
 <translation id="5860033963881614850">অফ আছে</translation>
+<translation id="5887866489674258948">গাঢ় ম’ড</translation>
 <translation id="5895138241574237353">ৰিষ্টাৰ্ট কৰক</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -563,6 +568,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (গৰাকী)</translation>
 <translation id="7647488630410863958">আপোনাৰ জাননীবোৰ চাবলৈ ডিভাইচ আনলক কৰক</translation>
 <translation id="7649070708921625228">সহায়</translation>
+<translation id="7653418004652142983">অন</translation>
 <translation id="7654687942625752712">কথিত প্ৰতিক্ৰিয়া অক্ষম কৰিবলৈ দুয়োটা ভলিউম বুটাম টিপি পাঁচ ছেকেণ্ডৰ বাবে ধৰি ৰাখক।</translation>
 <translation id="7658239707568436148">বাতিল কৰক</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -586,6 +592,7 @@
 <translation id="7933084174919150729">Google Assistant কেৱল প্ৰাথমিক প্ৰ’ফাইলৰ বাবে উপলব্ধ।</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> আৰু <ph name="SECOND_PARENT_EMAIL" />এ একাউণ্ট পৰিচালনা কৰে</translation>
 <translation id="7955885781510802139">ৰঙৰ উচ্চ প্ৰভেদযুক্ত ম’ড</translation>
+<translation id="7977639574084142279">অফ</translation>
 <translation id="7977927628060636163">ম'বাইল নেটৱৰ্ক বিচাৰি থকা হৈছে...</translation>
 <translation id="7980780401175799550">Chrome OS নেভিগে’ট কৰাৰ নতুন উপায়সমূহ ব্যৱহাৰ কৰি চাওক</translation>
 <translation id="7982789257301363584">নেটৱৰ্ক</translation>
@@ -686,6 +693,7 @@
 <translation id="8936501819958976551">অক্ষম কৰা হৈছে</translation>
 <translation id="8938800817013097409">USB-C ডিভাইচ (পিছফালৰ সোঁফালৰ প’র্ট)</translation>
 <translation id="8940956008527784070">বেটাৰিৰ চ্চার্জ কম আছে (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">গাঢ় ম’ড অফ আছে।</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ব্যৱহাৰ কৰি</translation>
 <translation id="899350903320462459">জাননী সম্পর্কীয় কার্যসমূহ কৰিবলৈ <ph name="LOGIN_ID" /> হিচাপে ডিভাইচটো আনলক কৰক</translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb
index 7e2a3e7..c490e81 100644
--- a/ash/strings/ash_strings_az.xtb
+++ b/ash/strings/ash_strings_az.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Sessiyadakı bütün fəaliyyətlərə daxil olun</translation>
 <translation id="1632985212731562677">Dəyişdirici Girişini Ayarlar &gt; Əlçatımlıq bölməsində deaktiv edə bilərsiniz.</translation>
 <translation id="1654477262762802994">Səsli sorğuya başlayın</translation>
+<translation id="1665244008632896072">Qaranlıq Rejimi dəyişdirin. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> qaldı</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> taymeri · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ünvanı: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Ekrandakı klaviaturanı aktiv edin</translation>
 <translation id="1761222317188459878">Şəbəkə bağlantısını aktiv edin. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Sağa sürüşdürün</translation>
+<translation id="1776485282219497802">Qaranlıq rejim aktivdir.</translation>
 <translation id="1782199038061388045">tərcümə</translation>
 <translation id="181103072419391116">Siqnal Gücü <ph name="SIGNAL_STRENGTH" />, Administratorunuz tərəfindən idarə olunur</translation>
 <translation id="1812997170047690955">Ekranımda nə var?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Klaviatura düzülüşünü dəyişmək üçün <ph name="KEYBOARD_SHORTCUT" /> süyməsinə klikləyin.</translation>
 <translation id="2501920221385095727">Əvəzedici açarlar</translation>
 <translation id="2509468283778169019">CAPS LOCK aktivdir</translation>
+<translation id="2517829236324128850">Qaranlıq rejim ayarlarını göstərin</translation>
 <translation id="2542089167727451762">Profil şəklinizə toxunun</translation>
 <translation id="255671100581129685">Google Assistent ictimai sessiyada əlçatan deyil.</translation>
 <translation id="256712445991462162">iç böyüdücü</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Uzaqdan Yardım vasitəsilə <ph name="HELPER_NAME" /> ilə ekranın kontrolunu paylaşın</translation>
 <translation id="4430019312045809116">Həcm</translation>
 <translation id="4450893287417543264">Daha göstərməyin</translation>
+<translation id="4458688154122353284">Ekran çəkilişini dayandırın</translation>
 <translation id="4477350412780666475">Növbəti trek</translation>
 <translation id="4477892968187500306">Bu cihaz Google tərəfindən doğrulanmamış tətbiqlər ehtiva edə bilər.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> pəncərəsində <ph name="ROUTE_TITLE" /> dayandırma düyməsi</translation>
 <translation id="5860033963881614850">Deaktiv</translation>
+<translation id="5887866489674258948">Qaranlıq rejim</translation>
 <translation id="5895138241574237353">Yenidən başladın</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (sahib)</translation>
 <translation id="7647488630410863958">Bildirişlərinizi görmək üçün cihazın kilidini açın</translation>
 <translation id="7649070708921625228">Yardım</translation>
+<translation id="7653418004652142983">Aktiv</translation>
 <translation id="7654687942625752712">Səsləndirilmiş rəyi deaktiv etmək üçün hər iki səs düyməsinə beş saniyə basıb saxlayın.</translation>
 <translation id="7658239707568436148">Ləğv edin</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Assistent yalnız ilkin profildə əlçatandır.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> və <ph name="SECOND_PARENT_EMAIL" /> tərəfindən idarə edilən hesab</translation>
 <translation id="7955885781510802139">Yüksək kontrast rejimi</translation>
+<translation id="7977639574084142279">Deaktiv</translation>
 <translation id="7977927628060636163">Mobil şəbəkələr axtarılır...</translation>
 <translation id="7980780401175799550">Chrome ƏS-də naviqasiyanın yeni yollarını sınayın</translation>
 <translation id="7982789257301363584">Şəbəkə</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">deaktiv</translation>
 <translation id="8938800817013097409">USB-C cihazı (arxadakı sağ port)</translation>
 <translation id="8940956008527784070">Enerji Azdır (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Qaranlıq Rejim deaktivdir.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> işlədilir</translation>
 <translation id="899350903320462459">Bildiriş əməliyyatını icra etmək üçün cihazı <ph name="LOGIN_ID" /> olaraq kiliddən çıxarın</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb
index f9f335e7..7bf551a 100644
--- a/ash/strings/ash_strings_be.xtb
+++ b/ash/strings/ash_strings_be.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Атрымліваць доступ да ўсіх вашых дзеянняў у гэтым сеансе</translation>
 <translation id="1632985212731562677">Доступ праз пераключальнікі можна выключыць у раздзеле "Налады &gt; Спецыяльныя магчымасці".</translation>
 <translation id="1654477262762802994">Пачаць галасавы запыт</translation>
+<translation id="1665244008632896072">Уключыць або выключыць цёмны рэжым. (<ph name="STATE_TEXT" />)</translation>
 <translation id="1677472565718498478">Засталося <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Таймер на <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Адрас IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Экранная клавіятура ўключана</translation>
 <translation id="1761222317188459878">Уключыць або выключыць падключэнне да сеткі. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Прагартаць управа</translation>
+<translation id="1776485282219497802">Цёмны рэжым уключаны.</translation>
 <translation id="1782199038061388045">пераклад</translation>
 <translation id="181103072419391116">Магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />; сетка знаходзіцца пад кіраваннем адміністратара</translation>
 <translation id="1812997170047690955">Што на маім экране?</translation>
@@ -92,6 +94,7 @@
 <translation id="1962969542251276847">Экран блакіроўкі</translation>
 <translation id="1969011864782743497"><ph name="DEVICE_NAME" /> (USB)</translation>
 <translation id="1972950159383891558">Вітаем, <ph name="USERNAME" />!</translation>
+<translation id="1975500003782052650">Апошнія спампоўкі</translation>
 <translation id="1978498689038657292">Увод тэксту</translation>
 <translation id="1993072747612765854">Даведацца больш пра апошняе абнаўленне <ph name="SYSTEM_APP_NAME" /></translation>
 <translation id="1995660704900986789">Выключыць</translation>
@@ -139,6 +142,7 @@
 <translation id="2484513351006226581">Каб пераключыць раскладку клавіятуры, націсніце <ph name="KEYBOARD_SHORTCUT" />.</translation>
 <translation id="2501920221385095727">Заліпанне клавіш</translation>
 <translation id="2509468283778169019">CAPS LOCK уключаны</translation>
+<translation id="2517829236324128850">Паказаць налады цёмнага рэжыму</translation>
 <translation id="2542089167727451762">Націсніце відарыс профілю</translation>
 <translation id="255671100581129685">Памочнік Google недаступны ў агульнадаступным сеансе.</translation>
 <translation id="256712445991462162">прыстыкаваная лупа</translation>
@@ -255,6 +259,7 @@
 <translation id="3798670284305777884">Дынамік (унутраны)</translation>
 <translation id="3799080171973636491">Вы націснулі спалучэнне клавіш для поўнаэкраннай лупы. Уключыць яе?</translation>
 <translation id="380165613292957338">Вітаю! Чым магу дапамагчы?</translation>
+<translation id="3826099427150913765">Пераключыцца на пароль</translation>
 <translation id="383629559565718788">Паказаць налады клавіятуры</translation>
 <translation id="3846575436967432996">Няма даступнай інфармацыі пра сетку</translation>
 <translation id="385051799172605136">Назад</translation>
@@ -285,6 +290,7 @@
 <translation id="4181841719683918333">Мовы</translation>
 <translation id="4195877955194704651">Кнопка "Аўтаматычныя націсканні мышшу"</translation>
 <translation id="4197790712631116042">Выключана</translation>
+<translation id="4212472694152630271">Пераключыцца на PIN-код</translation>
 <translation id="4215497585250573029">Налады VPN</translation>
 <translation id="4217571870635786043">Дыктаванне</translation>
 <translation id="4239069858505860023">GPRS</translation>
@@ -297,6 +303,7 @@
 <translation id="4321776623976362024">Вы націснулі спалучэнне клавіш для рэжыму высокай кантраснасці. Уключыць высокую кантраснасць?</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4338109981321384717">Павелічальнае шкло</translation>
+<translation id="4350065043422286972">Замацавана</translation>
 <translation id="4351433414020964307">Ідзе загрузка Памочніка...</translation>
 <translation id="4356930093361201197">рэжым высокай кантраснасці</translation>
 <translation id="4368583494516669646">Добрай ночы, <ph name="GIVEN_NAME" />!</translation>
@@ -307,6 +314,7 @@
 <translation id="4421231901400348175">Абагульванне кантролю над экранам з карыстальнікам <ph name="HELPER_NAME" /> праз Аддаленую дапамогу.</translation>
 <translation id="4430019312045809116">Гучнасць</translation>
 <translation id="4450893287417543264">Больш не паказваць</translation>
+<translation id="4458688154122353284">Спыніць запіс экрана</translation>
 <translation id="4477350412780666475">Наступны трэк</translation>
 <translation id="4477892968187500306">На гэтай прыладзе могуць знаходзіцца праграмы, якія не былі спраўджаны Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -358,6 +366,7 @@
 <translation id="5035236842988137213">Прылада <ph name="DEVICE_NAME" /> падключана да новага тэлефона</translation>
 <translation id="5035389544768382859">Пацвярджэнне канфігурацыі дысплэя</translation>
 <translation id="5083553833479578423">Адкрыйце больш функцый Памочніка.</translation>
+<translation id="5114495209940374989">Здымкі экрана</translation>
 <translation id="5136175204352732067">Падключана іншая клавіятура</translation>
 <translation id="5168181903108465623">Ёсць даступныя прылады для трансляцыі</translation>
 <translation id="5207949376430453814">Указваць на курсор рэдагавання тэксту</translation>
@@ -410,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Спыніць трансляцыю <ph name="ROUTE_TITLE" /> на <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Выключана</translation>
+<translation id="5887866489674258948">Цёмны рэжым</translation>
 <translation id="5895138241574237353">Перазапусціць</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -561,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (уладальнік)</translation>
 <translation id="7647488630410863958">Каб прагледзець апавяшчэнні, разблакіруйце прыладу</translation>
 <translation id="7649070708921625228">Даведка</translation>
+<translation id="7653418004652142983">Уключаны</translation>
 <translation id="7654687942625752712">Каб выключыць галасавую зваротную сувязь, націсніце і ўтрымлівайце на працягу пяці секунд абедзве клавішы гучнасці.</translation>
 <translation id="7658239707568436148">Скасаваць</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -585,6 +596,7 @@
 <translation id="7933084174919150729">Памочнік Google даступны толькі ў асноўным профілі.</translation>
 <translation id="79341161159229895">Уліковым запісам кіруюць <ph name="FIRST_PARENT_EMAIL" /> і <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Рэжым высокай кантраснасці</translation>
+<translation id="7977639574084142279">Выключаны</translation>
 <translation id="7977927628060636163">Ідзе пошук мабільных сетак...</translation>
 <translation id="7980780401175799550">Апрабуйце новыя магчымасці навігацыі ў Chrome OS</translation>
 <translation id="7982789257301363584">Сетка</translation>
@@ -600,6 +612,7 @@
 <translation id="8061464966246066292">Высокая кантраснасць</translation>
 <translation id="8098591350844501178">Спыніць трансляцыю экрана на прыёмнік "<ph name="RECEIVER_NAME" />"</translation>
 <translation id="8113423164597455979">Уключана, усе праграмы</translation>
+<translation id="8129620843620772246"><ph name="TEMPERATURE_C" /> °C</translation>
 <translation id="8131740175452115882">Пацвердзіць</translation>
 <translation id="8132793192354020517">Падключана да сеткі "<ph name="NAME" />"</translation>
 <translation id="813913629614996137">Ідзе ініцыялізацыя...</translation>
@@ -684,6 +697,7 @@
 <translation id="8936501819958976551">выключыла</translation>
 <translation id="8938800817013097409">Прылада USB-C (задні порт справа)</translation>
 <translation id="8940956008527784070">Нізкі зарад акумулятара (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Цёмны рэжым выключаны.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Выкарыстоўваецца <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Разблакіруйце прыладу як <ph name="LOGIN_ID" />, каб выканаць дзеянне па апавяшчэнні</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index fa1a232..c92d1fc 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -43,7 +43,7 @@
 <translation id="1341651618736211726">ওভারফ্লো</translation>
 <translation id="1346748346194534595">ডানে</translation>
 <translation id="1351937230027495976">মেনুটি আড়াল করুন</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1391102559483454063">চালু করা আছে</translation>
 <translation id="1419738280318246476">বিজ্ঞপ্তি সম্পর্কিত অ্যাকশনের জন্য ডিভাইস আনলক করুন</translation>
 <translation id="1420408895951708260">নাইট লাইট ফিচারটি টগল করুন। <ph name="STATE_TEXT" /></translation>
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">এই সেশনে আপনার সব অ্যাক্টিভিটি অ্যাক্সেস করুন</translation>
 <translation id="1632985212731562677">সেটিংস &gt; অ্যাক্সেসিবিলিটি বিকল্পে গিয়ে 'অ্যাক্সেস পাল্টান' ফিচারটি বন্ধ করা করতে পারেন।</translation>
 <translation id="1654477262762802994">ভয়েস কোয়েরি শুরু করুন</translation>
+<translation id="1665244008632896072">'ডার্ক মোড' টগল করুন। <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> বাকি আছে</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" />-এর টাইমার · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ঠিকানা: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">অন-স্ক্রিন কীবোর্ড সক্ষম করা রয়েছে</translation>
 <translation id="1761222317188459878">নেটওয়ার্ক কানেকশন টগল করুন। <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">ডান দিকে স্ক্রল করুন</translation>
+<translation id="1776485282219497802">'ডার্ক মোড' চালু আছে।</translation>
 <translation id="1782199038061388045">অনুবাদ</translation>
 <translation id="181103072419391116">সিগন্যাল: <ph name="SIGNAL_STRENGTH" />, আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে</translation>
 <translation id="1812997170047690955">আমার স্ক্রিনে কী রয়েছে?</translation>
@@ -139,6 +141,7 @@
 <translation id="2484513351006226581">কীবোর্ড লে-আউট পরিবর্তন করতে <ph name="KEYBOARD_SHORTCUT" /> টিপুন।</translation>
 <translation id="2501920221385095727">স্টিকি কীজ</translation>
 <translation id="2509468283778169019">CAPS LOCK চালু</translation>
+<translation id="2517829236324128850">'ডার্ক মোড' সেটিংস দেখুন</translation>
 <translation id="2542089167727451762">আপনার প্রোফাইল ছবিতে ট্যাপ করুন</translation>
 <translation id="255671100581129685">সর্বজনীন সেশনে Google অ্যাসিস্ট্যান্ট উপলভ্য নয়।</translation>
 <translation id="256712445991462162">ডক করা ম্যাগনিফায়ার</translation>
@@ -307,6 +310,7 @@
 <translation id="4421231901400348175">রিমোট সহায়কের মাধ্যমে <ph name="HELPER_NAME" />-এর সাথে আপনার স্ক্রিন নিয়ন্ত্রন ভাগ করুন৷</translation>
 <translation id="4430019312045809116">ভলিউম</translation>
 <translation id="4450893287417543264">আর দেখতে চাই না</translation>
+<translation id="4458688154122353284">স্ক্রিন রেকর্ডিং বন্ধ করুন</translation>
 <translation id="4477350412780666475">পরের ট্র্যাক চালান</translation>
 <translation id="4477892968187500306">Google যাচাই করেনি এমন অ্যাপও এই ডিভাইসে থাকে পারে।</translation>
 <translation id="4479639480957787382">ইথারনেট</translation>
@@ -410,6 +414,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />-এ <ph name="ROUTE_TITLE" /> বন্ধ করুন</translation>
 <translation id="5860033963881614850">বন্ধ করুন</translation>
+<translation id="5887866489674258948">ডার্ক মোড</translation>
 <translation id="5895138241574237353">পুনর্সূচনা</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -562,6 +567,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (মালিক)</translation>
 <translation id="7647488630410863958">আপনার বিজ্ঞপ্তিগুলি দেখতে ডিভাইস আনলক করুন</translation>
 <translation id="7649070708921625228">সহায়তা</translation>
+<translation id="7653418004652142983">চালু আছে</translation>
 <translation id="7654687942625752712">পড়ে শোনানো বিকল্প চালু করতে পাঁচ সেকেন্ডের জন্য ভলিউম কীগুলি প্রেস করে ধরে রাখুন।</translation>
 <translation id="7658239707568436148">বাতিল</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -586,6 +592,7 @@
 <translation id="7933084174919150729">Google অ্যাসিস্ট্যান্ট শুধুমাত্র প্রাথমিক প্রোফাইলেই ব্যবহার করা যায়।</translation>
 <translation id="79341161159229895">অ্যাকাউন্টটি <ph name="FIRST_PARENT_EMAIL" /> এবং <ph name="SECOND_PARENT_EMAIL" /> ম্যানেজ করছেন</translation>
 <translation id="7955885781510802139">হাই-কনট্রাস্ট মোড</translation>
+<translation id="7977639574084142279">বন্ধ আছে</translation>
 <translation id="7977927628060636163">মোবাইল নেটওয়ার্কগুলির জন্য সার্চ করছে...</translation>
 <translation id="7980780401175799550">Chrome OS নেভিগেট করার নতুন পদ্ধতিগুলি ব্যবহার করে দেখুন</translation>
 <translation id="7982789257301363584">নেটওয়ার্ক</translation>
@@ -685,6 +692,7 @@
 <translation id="8936501819958976551">বন্ধ আছে</translation>
 <translation id="8938800817013097409">USB-C ডিভাইস (পিছনের ডান পোর্ট)</translation>
 <translation id="8940956008527784070">(<ph name="PERCENTAGE" />%) কম ব্যাটারি</translation>
+<translation id="8958665219764428373">'ডার্ক মোড' বন্ধ আছে।</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ব্যবহার করা হচ্ছে</translation>
 <translation id="899350903320462459">বিজ্ঞপ্তি সম্পর্কিত অ্যাকশনের জন্য <ph name="LOGIN_ID" /> হিসেবে ডিভাইস আনলক করুন</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 64c2c5be..0559bbe5 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Získat přístup k veškeré vaší aktivitě v této relaci</translation>
 <translation id="1632985212731562677">Přístup pomocí přepínačů lze vypnout v Nastavení &gt; Přístupnost.</translation>
 <translation id="1654477262762802994">Zahájit hlasový dotaz</translation>
+<translation id="1665244008632896072">Přepnout tmavý režim. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">zbývající čas: <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Časovač na <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Adresa IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Softwarová klávesnice je aktivována</translation>
 <translation id="1761222317188459878">Přepnout připojení k síti. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Posunout doprava</translation>
+<translation id="1776485282219497802">Tmavý režim je zapnutý.</translation>
 <translation id="1782199038061388045">překlad</translation>
 <translation id="181103072419391116">Síla signálu: <ph name="SIGNAL_STRENGTH" />, spravováno vaším administrátorem</translation>
 <translation id="1812997170047690955">Co je na obrazovce?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Rozložení klávesnice změníte stisknutím kláves <ph name="KEYBOARD_SHORTCUT" /></translation>
 <translation id="2501920221385095727">Jedním prstem</translation>
 <translation id="2509468283778169019">CAPS LOCK je zapnutý</translation>
+<translation id="2517829236324128850">Zobrazit nastavení tmavého režimu</translation>
 <translation id="2542089167727451762">Klepněte na profilovou fotku</translation>
 <translation id="255671100581129685">Asistent Google není ve veřejné relaci k dispozici.</translation>
 <translation id="256712445991462162">zabudovaná lupa</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Ovládání obrazovky je prostřednictvím Vzdálené pomoci sdíleno s uživatelem <ph name="HELPER_NAME" />.</translation>
 <translation id="4430019312045809116">Hlasitost</translation>
 <translation id="4450893287417543264">Tuto zprávu již nezobrazovat</translation>
+<translation id="4458688154122353284">Zastavit nahrávání obrazovky</translation>
 <translation id="4477350412780666475">Další skladba</translation>
 <translation id="4477892968187500306">Toto zařízení může obsahovat aplikace, které nebyly ověřeny Googlem.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Zastavit <ph name="ROUTE_TITLE" /> na přijímači <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Vypnuto</translation>
+<translation id="5887866489674258948">Tmavý režim</translation>
 <translation id="5895138241574237353">Restartovat</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> <ph name="MAIL" /></translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (vlastník)</translation>
 <translation id="7647488630410863958">Chcete-li zobrazit oznámení, odemkněte zařízení</translation>
 <translation id="7649070708921625228">Nápověda</translation>
+<translation id="7653418004652142983">Zapnuto</translation>
 <translation id="7654687942625752712">Hlasovou odezvu vypnete podržením obou tlačítek hlasitosti po dobu pěti sekund.</translation>
 <translation id="7658239707568436148">Zrušit</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Asistent Google je k dispozici pouze pro primární profil.</translation>
 <translation id="79341161159229895">Správci účtu: <ph name="FIRST_PARENT_EMAIL" /> a <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Režim vysokého kontrastu</translation>
+<translation id="7977639574084142279">Vypnuto</translation>
 <translation id="7977927628060636163">Vyhledávání mobilních sítí...</translation>
 <translation id="7980780401175799550">Vyzkoušejte nové způsoby navigace v Chrome OS</translation>
 <translation id="7982789257301363584">Síť</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">deaktivovala</translation>
 <translation id="8938800817013097409">Zařízení USB Type-C (pravý zadní port)</translation>
 <translation id="8940956008527784070">Slabá baterie (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Tmavý režim je vypnutý.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Metoda zadávání: <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Chcete-li provést akci s oznámením, odemkněte zařízení jako <ph name="LOGIN_ID" /></translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index 860cf014..5f7ef19 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Accede a toda tu actividad en esta sesión</translation>
 <translation id="1632985212731562677">La accesibilidad mejorada se puede inhabilitar en Configuración &gt; Accesibilidad.</translation>
 <translation id="1654477262762802994">Iniciar una búsqueda por voz</translation>
+<translation id="1665244008632896072">Activar o desactivar el modo oscuro. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Tiempo restante <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Temporizador: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Dirección IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Teclado en pantalla habilitado</translation>
 <translation id="1761222317188459878">Activar o desactivar la conexión de red: <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Desplazar hacia la derecha</translation>
+<translation id="1776485282219497802">El modo oscuro está activado.</translation>
 <translation id="1782199038061388045">traducción</translation>
 <translation id="181103072419391116">Intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, administrada por tu administrador</translation>
 <translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Presiona <ph name="KEYBOARD_SHORTCUT" /> para cambiar la configuración del teclado.</translation>
 <translation id="2501920221385095727">Teclas especiales</translation>
 <translation id="2509468283778169019">BLOQ MAYÚS está activado.</translation>
+<translation id="2517829236324128850">Mostrar la configuración del modo oscuro</translation>
 <translation id="2542089167727451762">Presiona tu imagen de perfil</translation>
 <translation id="255671100581129685">El Asistente de Google no está disponible en una sesión pública.</translation>
 <translation id="256712445991462162">la lupa con vista acoplada</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">Se está compartiendo el control de la pantalla con <ph name="HELPER_NAME" /> mediante la Asistencia remota.</translation>
 <translation id="4430019312045809116">Volumen</translation>
 <translation id="4450893287417543264">No volver a mostrar</translation>
+<translation id="4458688154122353284">Detener la grabación de pantalla</translation>
 <translation id="4477350412780666475">Siguiente pista</translation>
 <translation id="4477892968187500306">Es posible que este dispositivo incluya apps que Google no verificó.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Detener <ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Desactivado</translation>
+<translation id="5887866489674258948">Modo oscuro</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Mayúscula + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario/a)</translation>
 <translation id="7647488630410863958">Desbloquea el dispositivo para ver tus notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
+<translation id="7653418004652142983">Sí</translation>
 <translation id="7654687942625752712">Mantén presionadas las teclas de volumen durante cinco segundos para inhabilitar los comentarios por voz.</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">El Asistente de Google solo está disponible para el perfil principal.</translation>
 <translation id="79341161159229895">Cuenta administrada por <ph name="FIRST_PARENT_EMAIL" /> y <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Modo de contraste alto</translation>
+<translation id="7977639574084142279">No</translation>
 <translation id="7977927628060636163">Buscando redes móviles…</translation>
 <translation id="7980780401175799550">Prueba nuevas formas de navegar con el Sistema operativo Chrome</translation>
 <translation id="7982789257301363584">Red</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">desactivada</translation>
 <translation id="8938800817013097409">Dispositivo USB-C (puerto derecho en la parte posterior)</translation>
 <translation id="8940956008527784070">Batería baja (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">El modo oscuro está desactivado.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> en uso</translation>
 <translation id="899350903320462459">Desbloquea el dispositivo como <ph name="LOGIN_ID" /> para realizar la acción con las notificaciones</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 926bd32..e652e5e 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Acceder a toda tu actividad de esta sesión</translation>
 <translation id="1632985212731562677">La accesibilidad mediante interruptores se puede inhabilitar en Configuración &gt; Accesibilidad.</translation>
 <translation id="1654477262762802994">Iniciar una consulta por voz</translation>
+<translation id="1665244008632896072">Activar o desactivar el modo oscuro. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Queda: <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Temporizador de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Dirección IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Teclado en pantalla habilitado</translation>
 <translation id="1761222317188459878">Activa o desactiva la conexión de red. <ph name="STATE_TEXT" />.</translation>
 <translation id="1771761307086386028">Desplazar a la derecha</translation>
+<translation id="1776485282219497802">El modo oscuro está activado.</translation>
 <translation id="1782199038061388045">traducción</translation>
 <translation id="181103072419391116">Intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, gestionada por el administrador</translation>
 <translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Pulsa <ph name="KEYBOARD_SHORTCUT" /> para cambiar el diseño del teclado.</translation>
 <translation id="2501920221385095727">Teclas persistentes</translation>
 <translation id="2509468283778169019">Bloqueo de mayúsculas activado</translation>
+<translation id="2517829236324128850">Mostrar ajustes del modo oscuro</translation>
 <translation id="2542089167727451762">Toca tu imagen de perfil</translation>
 <translation id="255671100581129685">El Asistente de Google no está disponible en las sesiones públicas.</translation>
 <translation id="256712445991462162">la lupa fijada</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">Compartiendo control de la pantalla con <ph name="HELPER_NAME" /> a través de Asistencia remota.</translation>
 <translation id="4430019312045809116">Volumen</translation>
 <translation id="4450893287417543264">No volver a mostrar</translation>
+<translation id="4458688154122353284">Detener grabación de pantalla</translation>
 <translation id="4477350412780666475">Pista siguiente</translation>
 <translation id="4477892968187500306">Es posible que este dispositivo contenga aplicaciones que no han sido verificadas por Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Parar <ph name="ROUTE_TITLE" /> en <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Desactivado</translation>
+<translation id="5887866489674258948">Modo oscuro</translation>
 <translation id="5895138241574237353">Reiniciar</translation>
 <translation id="5901316534475909376">Mayús+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propietario)</translation>
 <translation id="7647488630410863958">Desbloquear el dispositivo para ver las notificaciones</translation>
 <translation id="7649070708921625228">Ayuda</translation>
+<translation id="7653418004652142983">Activado</translation>
 <translation id="7654687942625752712">Mantén pulsadas ambas teclas de volumen durante cinco segundos para inhabilitar los mensajes de voz.</translation>
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">El Asistente de Google solo está disponible en el perfil principal.</translation>
 <translation id="79341161159229895">Cuenta gestionada por <ph name="FIRST_PARENT_EMAIL" /> y <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Modo de contraste alto</translation>
+<translation id="7977639574084142279">Desactivado</translation>
 <translation id="7977927628060636163">Buscando redes móviles…</translation>
 <translation id="7980780401175799550">Prueba nuevas formas de desplazarte por Chrome OS</translation>
 <translation id="7982789257301363584">Red</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">desactivado</translation>
 <translation id="8938800817013097409">Dispositivo USB tipo C (puerto derecho situado en la parte trasera)</translation>
 <translation id="8940956008527784070">Poca batería (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">El modo oscuro está desactivado.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Estás usando <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Desbloquea el dispositivo como <ph name="LOGIN_ID" /> para hacer lo que indica la notificación</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb
index 99e1048..d3eece64 100644
--- a/ash/strings/ash_strings_eu.xtb
+++ b/ash/strings/ash_strings_eu.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Atzitu saio honetan egin dituzun jarduera guztiak</translation>
 <translation id="1632985212731562677">Ezarpenak &gt; Erabilerraztasuna atalean desgai dezakezu erabilerraztasun-osagarria.</translation>
 <translation id="1654477262762802994">Sortu ahozko kontsulta bat</translation>
+<translation id="1665244008632896072">Aktibatu edo desaktibatu modu iluna. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> geratzen dira</translation>
 <translation id="1698080062160024910">Tenporizadorea: <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 helbidea: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Pantailako teklatua gaitu egin da</translation>
 <translation id="1761222317188459878">Gaitu/Desgaitu sareko konexioa. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Egin eskuinera</translation>
+<translation id="1776485282219497802">Modu iluna aktibatuta dago.</translation>
 <translation id="1782199038061388045">itzulpena</translation>
 <translation id="181103072419391116">Seinalearen indarra: <ph name="SIGNAL_STRENGTH" />. Administratzaileak kudeatua.</translation>
 <translation id="1812997170047690955">Zer dago pantailan?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Teklatuaren diseinua aldatzeko, sakatu <ph name="KEYBOARD_SHORTCUT" />.</translation>
 <translation id="2501920221385095727">Tekla itsaskorrak</translation>
 <translation id="2509468283778169019">BLOK MAIUS aktibatuta dago</translation>
+<translation id="2517829236324128850">Erakutsi modu iluneko ezarpenak</translation>
 <translation id="2542089167727451762">Sakatu profileko irudia</translation>
 <translation id="255671100581129685">Google-ren Laguntzailea ez dago erabilgarri saio publikoetan.</translation>
 <translation id="256712445991462162">ainguratutako lupa</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">Urruneko laguntzaren bidez <ph name="HELPER_NAME" /> laguntzailearekin pantailaren kontrola partekatzen.</translation>
 <translation id="4430019312045809116">Bolumena</translation>
 <translation id="4450893287417543264">Ez erakutsi berriro</translation>
+<translation id="4458688154122353284">Utzi pantaila grabatzeari</translation>
 <translation id="4477350412780666475">Hurrengo pista</translation>
 <translation id="4477892968187500306">Baliteke Google-k egiaztatu ez dituen aplikazioak egotea gailuan.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Utzi <ph name="ROUTE_TITLE" /> (<ph name="RECEIVER_NAME" />) hargailura igortzeari</translation>
 <translation id="5860033963881614850">Desaktibatuta</translation>
+<translation id="5887866489674258948">Modu iluna</translation>
 <translation id="5895138241574237353">Berrabiarazi</translation>
 <translation id="5901316534475909376">Maius + Ihes</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (jabea)</translation>
 <translation id="7647488630410863958">Desblokeatu gailua jakinarazpenak ikusteko</translation>
 <translation id="7649070708921625228">Laguntza</translation>
+<translation id="7653418004652142983">Aktibatuta</translation>
 <translation id="7654687942625752712">Ahozko argibideak desgaitzeko, eduki sakatuta bi bolumen-botoiak bost segundoz.</translation>
 <translation id="7658239707568436148">Utzi</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">Profil nagusian soilik erabil daiteke Google-ren Laguntzailea.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> eta <ph name="SECOND_PARENT_EMAIL" /> kontuen bidez kudeatzen da kontu hau</translation>
 <translation id="7955885781510802139">Kontraste handiko modua</translation>
+<translation id="7977639574084142279">Itzali</translation>
 <translation id="7977927628060636163">Sare mugikorren bila…</translation>
 <translation id="7980780401175799550">Probatu Chrome OS sisteman nabigatzeko modu berriak</translation>
 <translation id="7982789257301363584">Sarea</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">desaktibatuta</translation>
 <translation id="8938800817013097409">USB-C gailua (eskuinaldeko atzeko ataka)</translation>
 <translation id="8940956008527784070">Bateria gutxi (% <ph name="PERCENTAGE" />)</translation>
+<translation id="8958665219764428373">Modu iluna desaktibatuta dago.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> erabiltzen</translation>
 <translation id="899350903320462459">Desblokeatu gailua <ph name="LOGIN_ID" /> gisa jakinarazpen-ekintza gauzatzeko</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 129d329..e9d2dd9 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">nähdä kaikki tämän käyttökerran toimintosi</translation>
 <translation id="1632985212731562677">Kytkimen käytön voi laittaa pois päältä kohdassa Asetukset &gt; Esteettömyys.</translation>
 <translation id="1654477262762802994">Aloita puhekysely</translation>
+<translation id="1665244008632896072">Tumma teema päälle/pois. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> jäljellä</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ajastin · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6-osoite: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Ruutunäppäimistö otettiin käyttöön</translation>
 <translation id="1761222317188459878">Laita verkkoyhteys päälle tai pois päältä. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Vieritä oikealle</translation>
+<translation id="1776485282219497802">Tumma tila on päällä.</translation>
 <translation id="1782199038061388045">käännös</translation>
 <translation id="181103072419391116">Signaalin vahvuus <ph name="SIGNAL_STRENGTH" />, järjestelmänvalvojan hallinnoima</translation>
 <translation id="1812997170047690955">Mitä näytölläni näkyy?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Paina <ph name="KEYBOARD_SHORTCUT" /> vaihtaaksesi näppäimistöasettelua.</translation>
 <translation id="2501920221385095727">Päälle jäävät näppäimet</translation>
 <translation id="2509468283778169019">CAPS LOCK on päällä</translation>
+<translation id="2517829236324128850">Näytä tumman tilan asetukset</translation>
 <translation id="2542089167727451762">Napauta profiilikuvaasi</translation>
 <translation id="255671100581129685">Google Assistantia ei voi käyttää julkisella käyttökerralla.</translation>
 <translation id="256712445991462162">kiinnitetty näytön suurentaja</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Näyttösi hallinta jaetaan käyttäjän <ph name="HELPER_NAME" /> kanssa Etätuen kautta.</translation>
 <translation id="4430019312045809116">Äänenvoimakkuus</translation>
 <translation id="4450893287417543264">Älä näytä uudelleen</translation>
+<translation id="4458688154122353284">Lopeta näytön tallennus</translation>
 <translation id="4477350412780666475">Seuraava kappale</translation>
 <translation id="4477892968187500306">Laitteessa voi olla sovelluksia, joita Google ei ole vahvistanut.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium-käyttöjärjestelmä</translation>
 <translation id="5837036133683224804">Lopeta <ph name="ROUTE_TITLE" /> – <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Pois päältä</translation>
+<translation id="5887866489674258948">Tumma tila</translation>
 <translation id="5895138241574237353">Käynnistä uudelleen</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -568,6 +573,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (omistaja)</translation>
 <translation id="7647488630410863958">Katso ilmoitukset avaamalla laitteesi lukitus.</translation>
 <translation id="7649070708921625228">Ohje</translation>
+<translation id="7653418004652142983">Päällä</translation>
 <translation id="7654687942625752712">Poista äänipalaute käytöstä painamalla molempia äänenvoimakkuuspainikkeita viiden sekunnin ajan.</translation>
 <translation id="7658239707568436148">Peruuta</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -592,6 +598,7 @@
 <translation id="7933084174919150729">Google Assistant on käytettävissä vain ensisijaisella profiililla.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> ja <ph name="SECOND_PARENT_EMAIL" /> hallinnoivat tiliä</translation>
 <translation id="7955885781510802139">Suurikontrastinen tila</translation>
+<translation id="7977639574084142279">Pois päältä</translation>
 <translation id="7977927628060636163">Haetaan mobiiliverkkoja…</translation>
 <translation id="7980780401175799550">Kokeile Chrome-käyttöjärjestelmän uusia navigointitapoja</translation>
 <translation id="7982789257301363584">Verkko</translation>
@@ -692,6 +699,7 @@
 <translation id="8936501819958976551">poistettu käytöstä</translation>
 <translation id="8938800817013097409">C-tyypin USB-laite (oikeanpuoleinen takaportti)</translation>
 <translation id="8940956008527784070">Akku vähissä (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Tumma tila on pois päältä.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> käytössä</translation>
 <translation id="899350903320462459">Avaa laitteen lukitus tunnuksella <ph name="LOGIN_ID" />, niin voit käyttää ilmoitustoimintoa</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 42e5fa54..e71573e 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">I-access ang lahat ng iyong aktibidad sa session na ito</translation>
 <translation id="1632985212731562677">Puwedeng i-disable ang Switch Access sa Mga Setting &gt; Accessibility.</translation>
 <translation id="1654477262762802994">Magsimula ng query gamit ang boses</translation>
+<translation id="1665244008632896072">I-toggle ang Dark Mode. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> na lang ang natitira</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> timer · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 address: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Naka-enable ang on-screen na keyboard</translation>
 <translation id="1761222317188459878">I-toggle ang koneksyon sa network. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Mag-scroll pakanan</translation>
+<translation id="1776485282219497802">Naka-on ang Dark Mode.</translation>
 <translation id="1782199038061388045">pagsasalin</translation>
 <translation id="181103072419391116">Lakas ng Signal <ph name="SIGNAL_STRENGTH" />, Pinapamahalaan ng iyong Administrator</translation>
 <translation id="1812997170047690955">Ano ang nasa screen ko?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Pindutin ang <ph name="KEYBOARD_SHORTCUT" /> upang palitan ang layout ng keyboard.</translation>
 <translation id="2501920221385095727">Mga sticky key</translation>
 <translation id="2509468283778169019">Naka-on ang CAPS LOCK</translation>
+<translation id="2517829236324128850">Ipakita ang mga setting ng dark mode</translation>
 <translation id="2542089167727451762">I-tap ang iyong larawan sa profile</translation>
 <translation id="255671100581129685">Hindi available ang Google Assistant sa isang pampublikong session.</translation>
 <translation id="256712445991462162">ang naka-dock na magnifier</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Pagbabahagi ng kontrol sa iyong screen gamit ang <ph name="HELPER_NAME" /> sa pamamagitan ng Remote Assistance.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Huwag ipakitang muli</translation>
+<translation id="4458688154122353284">Ihinto ang pag-record ng screen</translation>
 <translation id="4477350412780666475">Susunod na Track</translation>
 <translation id="4477892968187500306">Posibleng naglalaman ang device na ito ng mga app na hindi pa nave-verify ng Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Ihinto ang <ph name="ROUTE_TITLE" /> sa <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Naka-off</translation>
+<translation id="5887866489674258948">Dark Mode</translation>
 <translation id="5895138241574237353">I-restart</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (may-ari)</translation>
 <translation id="7647488630410863958">I-unlock ang device upang tingnan ang iyong mga notification</translation>
 <translation id="7649070708921625228">Tulong</translation>
+<translation id="7653418004652142983">Naka-on</translation>
 <translation id="7654687942625752712">Pindutin nang matagal ang parehong volume key sa loob ng limang segundo para i-disable ang pasalitang feedback.</translation>
 <translation id="7658239707568436148">Kanselahin</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Available lang ang Google Assistant para sa pangunahing profile.</translation>
 <translation id="79341161159229895">Pinamamahalaan nina <ph name="FIRST_PARENT_EMAIL" /> at <ph name="SECOND_PARENT_EMAIL" /> ang account</translation>
 <translation id="7955885781510802139">High-contrast mode</translation>
+<translation id="7977639574084142279">Naka-off</translation>
 <translation id="7977927628060636163">Naghahanap ng mga mobile network...</translation>
 <translation id="7980780401175799550">Sumubok ng mga bagong paraan para i-navigate ang Chrome OS</translation>
 <translation id="7982789257301363584">Network</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">na-deactivate</translation>
 <translation id="8938800817013097409">USB-C device (kanang port sa likod)</translation>
 <translation id="8940956008527784070">Mahina na ang baterya (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Naka-off ang Dark Mode.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Gamit ang <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">I-unlock ang device bilang <ph name="LOGIN_ID" /> para maisagawa ang pagkilos sa notification</translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb
index b7b09a2..21fdbd8 100644
--- a/ash/strings/ash_strings_fr-CA.xtb
+++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Accédez à toute l'activité de votre session</translation>
 <translation id="1632985212731562677">Switch Access peut être désactivé sous Paramètres &gt; Accessibilité.</translation>
 <translation id="1654477262762802994">Démarrer une requête vocale</translation>
+<translation id="1665244008632896072">Basculer le mode sombre. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> d'autonomie restante</translation>
 <translation id="1698080062160024910">Minuterie de <ph name="TOTAL_TIME" /> : <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Adresse IPv6 : <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Clavier à l'écran activé</translation>
 <translation id="1761222317188459878">Activer/désactiver la connexion réseau. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Faire défiler vers la droite</translation>
+<translation id="1776485282219497802">Le mode sombre est activé.</translation>
 <translation id="1782199038061388045">traduction</translation>
 <translation id="181103072419391116">Force du signal : <ph name="SIGNAL_STRENGTH" />, géré par votre administrateur</translation>
 <translation id="1812997170047690955">Qu'y a-t-il sur mon écran?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Appuyez sur <ph name="KEYBOARD_SHORTCUT" /> pour changer la disposition du clavier.</translation>
 <translation id="2501920221385095727">Touches rémanentes</translation>
 <translation id="2509468283778169019">Touche VERR MAJ activée</translation>
+<translation id="2517829236324128850">Afficher les paramètres du mode sombre</translation>
 <translation id="2542089167727451762">Touchez l'image de votre profil</translation>
 <translation id="255671100581129685">L'Assistant Google n'est pas disponible dans une session publique.</translation>
 <translation id="256712445991462162">la loupe en mode ancré</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Partage du contrôle de votre écran avec <ph name="HELPER_NAME" /> au moyen de l’assistance à distance.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Ne plus afficher</translation>
+<translation id="4458688154122353284">Arrêter l'enregistrement de l'écran</translation>
 <translation id="4477350412780666475">Chanson suivante</translation>
 <translation id="4477892968187500306">Cet appareil pourrait contenir des applications qui n'ont pas été vérifiées par Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Arrêter <ph name="ROUTE_TITLE" /> sur <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Désactivé</translation>
+<translation id="5887866489674258948">Mode sombre</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
 <translation id="5901316534475909376">Maj+Échap</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propriétaire)</translation>
 <translation id="7647488630410863958">Déverrouillez l'appareil pour voir vos notifications</translation>
 <translation id="7649070708921625228">Aide</translation>
+<translation id="7653418004652142983">Activé</translation>
 <translation id="7654687942625752712">Maintenez les deux touches de volume enfoncées cinq secondes pour désactiver la rétroaction vocale.</translation>
 <translation id="7658239707568436148">Annuler</translation>
 <translation id="7705524343798198388">RPV</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">L'Assistant Google n'est offert que pour le profil principal.</translation>
 <translation id="79341161159229895">Compte géré par <ph name="FIRST_PARENT_EMAIL" /> et <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Mode de contraste élevé</translation>
+<translation id="7977639574084142279">Désactivé</translation>
 <translation id="7977927628060636163">Recherche de réseaux mobiles en cours...</translation>
 <translation id="7980780401175799550">Naviguer différemment avec Chrome OS</translation>
 <translation id="7982789257301363584">Réseau</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">désactivée</translation>
 <translation id="8938800817013097409">Appareil USB-C (port arrière-droit)</translation>
 <translation id="8940956008527784070">Batterie faible (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Le mode sombre est désactivé.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Mode de saisie utilisé : <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Déverrouillez l'appareil en tant que <ph name="LOGIN_ID" /> pour effectuer l'action de la notification</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 641942f..24702af 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Accéder à toutes vos activités dans cette session</translation>
 <translation id="1632985212731562677">Vous pouvez désactiver Switch Access en sélectionnant Paramètres &gt; Accessibilité.</translation>
 <translation id="1654477262762802994">Soumettre une requête vocale</translation>
+<translation id="1665244008632896072">Activer/Désactiver le mode sombre. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Temps restant : <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Minuteur de <ph name="TOTAL_TIME" /> – <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Adresse IPv6 : <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Clavier à l'écran activé</translation>
 <translation id="1761222317188459878">Activer/Désactiver la connexion réseau. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Vers la droite</translation>
+<translation id="1776485282219497802">Mode sombre activé.</translation>
 <translation id="1782199038061388045">traduction</translation>
 <translation id="181103072419391116">Force du signal : <ph name="SIGNAL_STRENGTH" />, géré par votre administrateur</translation>
 <translation id="1812997170047690955">Éléments affichés à l'écran</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Appuyez sur <ph name="KEYBOARD_SHORTCUT" /> pour changer la disposition du clavier.</translation>
 <translation id="2501920221385095727">Touches persistantes</translation>
 <translation id="2509468283778169019">Touche VERR MAJ activée</translation>
+<translation id="2517829236324128850">Afficher les paramètres du mode sombre</translation>
 <translation id="2542089167727451762">Appuyez sur votre image de profil</translation>
 <translation id="255671100581129685">L'Assistant Google n'est pas disponible dans une session publique.</translation>
 <translation id="256712445991462162">la loupe ancrée</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Partager le contrôle de votre écran avec <ph name="HELPER_NAME" /> via l'assistance à distance</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Ne plus afficher</translation>
+<translation id="4458688154122353284">Arrêter l'enregistrement de l'écran</translation>
 <translation id="4477350412780666475">Titre suivant</translation>
 <translation id="4477892968187500306">Cet appareil peut contenir des applications qui n'ont pas été validées par Google.</translation>
 <translation id="4479639480957787382">Ethernet </translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Arrêter <ph name="ROUTE_TITLE" /> vers <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Désactivé</translation>
+<translation id="5887866489674258948">Mode sombre</translation>
 <translation id="5895138241574237353">Redémarrer</translation>
 <translation id="5901316534475909376">Maj+Échap</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (propriétaire)</translation>
 <translation id="7647488630410863958">Déverrouiller l'appareil pour consulter vos notifications</translation>
 <translation id="7649070708921625228">Aide</translation>
+<translation id="7653418004652142983">Activé</translation>
 <translation id="7654687942625752712">Appuyez pendant cinq secondes sur les deux touches de volume pour désactiver les commentaires audio.</translation>
 <translation id="7658239707568436148">Annuler</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">L'Assistant Google n'est disponible que pour le profil principal.</translation>
 <translation id="79341161159229895">Compte géré par <ph name="FIRST_PARENT_EMAIL" /> et <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Mode Contraste élevé</translation>
+<translation id="7977639574084142279">Désactivé</translation>
 <translation id="7977927628060636163">Recherche de réseaux mobiles…</translation>
 <translation id="7980780401175799550">Essayer de nouvelles manières de naviguer dans Chrome OS</translation>
 <translation id="7982789257301363584">Réseau</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">a désactivé</translation>
 <translation id="8938800817013097409">Appareil USB de type C (port situé sur l'arrière de l'appareil, à droite)</translation>
 <translation id="8940956008527784070">Batterie faible (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Mode sombre désactivé.</translation>
 <translation id="8983038754672563810">3G+</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> en cours d'utilisation</translation>
 <translation id="899350903320462459">Déverrouiller l'appareil en tant que <ph name="LOGIN_ID" /> pour effectuer l'action de notification</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index ab46148..8214aa6e 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -43,7 +43,7 @@
 <translation id="1341651618736211726">ઓવરફ્લો</translation>
 <translation id="1346748346194534595">જમણે</translation>
 <translation id="1351937230027495976">મેનૂ સંકુચિત કરો</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1391102559483454063">ચાલુ</translation>
 <translation id="1419738280318246476">નોટિફિકેશન ક્રિયા કરવા માટે ઉપકરણને અનલૉક કરો</translation>
 <translation id="1420408895951708260">રાત્રિ પ્રકાશને ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">આ સત્રમાં તમારી બધી પ્રવૃત્તિને ઍક્સેસ કરો</translation>
 <translation id="1632985212731562677">સ્વિચ ઍક્સેસને સેટિંગ &gt; ઍક્સેસિબિલિટીમાંથી બંધ કરી શકાય છે.</translation>
 <translation id="1654477262762802994">વૉઇસ ક્વેરી શરૂ કરો</translation>
+<translation id="1665244008632896072">ઘેરો મોડને ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> બાકી</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ટાઇમર · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 સરનામું: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ઓન-સ્ક્રીન કીબોર્ડ સક્ષમ કર્યું</translation>
 <translation id="1761222317188459878">નેટવર્ક કનેક્શન ટૉગલ કરો. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">જમણે સ્ક્રોલ કરો</translation>
+<translation id="1776485282219497802">ઘેરો મોડ ચાલુ છે.</translation>
 <translation id="1782199038061388045">અનુવાદ</translation>
 <translation id="181103072419391116">સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે</translation>
 <translation id="1812997170047690955">મારી સ્ક્રીન પર શું છે?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">કીબોર્ડ લેઆઉટ સ્વિચ કરવા માટે <ph name="KEYBOARD_SHORTCUT" />ને દબાવો.</translation>
 <translation id="2501920221385095727">સ્ટિકી કી</translation>
 <translation id="2509468283778169019">CAPS LOCK ચાલુ છે</translation>
+<translation id="2517829236324128850">ઘેરો મોડ સેટિંગ બતાવો</translation>
 <translation id="2542089167727451762">તમારા પ્રોફાઇલ ફોટા પર ટૅપ કરો</translation>
 <translation id="255671100581129685">જાહેર સત્રમાં Google આસિસ્ટંટ ઉપલબ્ધ હોતું નથી.</translation>
 <translation id="256712445991462162">ડૉક કરેલું મૅગ્નિફાયર</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">દૂરસ્થ સહાય વડે <ph name="HELPER_NAME" /> સાથે તમારી સ્ક્રીનનું નિયંત્રણ શેર કરવું.</translation>
 <translation id="4430019312045809116">વૉલ્યૂમ</translation>
 <translation id="4450893287417543264">ફરી બતાવશો નહીં</translation>
+<translation id="4458688154122353284">સ્ક્રીન રેકોર્ડિંગ બંધ કરો</translation>
 <translation id="4477350412780666475">આગલો ટ્રૅક</translation>
 <translation id="4477892968187500306">આ ડિવાઇસમાં એવી ઍપ હોય શકે કે જેની Google દ્વારા ચકાસણી કરવામાં આવી છે.</translation>
 <translation id="4479639480957787382">ઇથરનેટ</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> પર <ph name="ROUTE_TITLE" />ને રોકો</translation>
 <translation id="5860033963881614850">બંધ</translation>
+<translation id="5887866489674258948">ઘેરો મોડ</translation>
 <translation id="5895138241574237353">પુનઃપ્રારંભ કરો</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (માલિક)</translation>
 <translation id="7647488630410863958">તમારી સૂચનાઓ જોવા માટે ડિવાઇસને અનલૉક કરો</translation>
 <translation id="7649070708921625228">સહાય</translation>
+<translation id="7653418004652142983">ચાલુ</translation>
 <translation id="7654687942625752712">બોલાયેલ પ્રતિસાદ બંધ કરવા પાંચ સેકન્ડ માટે બન્ને વૉલ્યૂમ કીને દબાવી રાખો.</translation>
 <translation id="7658239707568436148">રદ કરો</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google સહાયક માત્ર પ્રાથમિક પ્રોફાઇલ માટે જ ઉપલબ્ધ છે.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> અને <ph name="SECOND_PARENT_EMAIL" /> દ્વારા મેનેજ કરાતું એકાઉન્ટ</translation>
 <translation id="7955885781510802139">ઉચ્ચ કોન્ટ્રાસ્ટ મોડ</translation>
+<translation id="7977639574084142279">બંધ</translation>
 <translation id="7977927628060636163">મોબાઇલ નેટવર્કની શોધ કરી રહ્યું છે...</translation>
 <translation id="7980780401175799550">Chrome OS પર નૅવિગેટ કરવાની નવી રીતો અજમાવી જુઓ</translation>
 <translation id="7982789257301363584">નેટવર્ક</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">નિષ્ક્રિય કરેલું</translation>
 <translation id="8938800817013097409">USB-C ડિવાઇસ (પાછળની બાજુએ જમણું પોર્ટ)</translation>
 <translation id="8940956008527784070">બૅટરી ઓછી (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">ઘેરો મોડ બંધ છે.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" />નો ઉપયોગ કરી રહ્યા છે</translation>
 <translation id="899350903320462459">નોટિફિકેશન ક્રિયા કરવા માટે ઉપકરણને <ph name="LOGIN_ID" /> તરીકે અનલૉક કરો</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index e5efe0fe..7d7c90fc 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">इस सत्र में अपनी सभी गतिविधि ऐक्सेस करें</translation>
 <translation id="1632985212731562677">ऐक्सेस करने का तरीका बदलने की सुविधा को सेटिंग &gt; सुलभता में जाकर, बंद किया जा सकता है.</translation>
 <translation id="1654477262762802994">बोलकर खोजना शुरू करें</translation>
+<translation id="1665244008632896072">गहरे रंग वाले मोड को टॉगल करें. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> बाकी</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> टाइमर · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 पता: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ऑन-स्‍क्रीन कीबोर्ड सक्षम है</translation>
 <translation id="1761222317188459878">नेटवर्क कनेक्शन टॉगल करें. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">दाईं तरफ़ स्क्रोल करें</translation>
+<translation id="1776485282219497802">गहरे रंग वाला मोड चालू है.</translation>
 <translation id="1782199038061388045">अनुवाद</translation>
 <translation id="181103072419391116">सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />, आपका एडमिन प्रबंधित करता है</translation>
 <translation id="1812997170047690955">मेरी स्क्रीन पर क्या है?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">कीबोर्ड लेआउट स्विच करने के लिए <ph name="KEYBOARD_SHORTCUT" /> दबाएं.</translation>
 <translation id="2501920221385095727">स्टिकी बटन</translation>
 <translation id="2509468283778169019">CAPS LOCK चालू है</translation>
+<translation id="2517829236324128850">गहरे रंग वाले मोड की सेटिंग दिखाएं</translation>
 <translation id="2542089167727451762">अपनी प्रोफ़ाइल फ़ोटो पर टैप करें</translation>
 <translation id="255671100581129685">सार्वजनिक सत्र में Google Assistant उपलब्ध नहीं है.</translation>
 <translation id="256712445991462162">सामग्री को बड़ा दिखाने की डॉक की गई सुविधा</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">आपकी स्‍क्रीन का नियंत्रण दूरस्‍थ सहायक के द्वारा <ph name="HELPER_NAME" /> से शेयर किया जा रहा है.</translation>
 <translation id="4430019312045809116">मात्रा</translation>
 <translation id="4450893287417543264">फिर से न दिखाएं</translation>
+<translation id="4458688154122353284">स्क्रीन को रिकॉर्ड करना बंद करें</translation>
 <translation id="4477350412780666475">अगला ट्रैक</translation>
 <translation id="4477892968187500306">इस डिवाइस में ऐसे ऐप्लिकेशन हो सकते हैं जिनकी Google ने पुष्टि नहीं की है.</translation>
 <translation id="4479639480957787382">ईथरनेट</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">क्रोमियम OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> पर <ph name="ROUTE_TITLE" /> बंद करें</translation>
 <translation id="5860033963881614850">बंद</translation>
+<translation id="5887866489674258948">गहरे रंग वाला मोड</translation>
 <translation id="5895138241574237353">फिर से प्रारंभ करें</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालिक)</translation>
 <translation id="7647488630410863958">अपने नोटिफ़िकेशन देखने के लिए डिवाइस अनलॉक करें</translation>
 <translation id="7649070708921625228">सहायता</translation>
+<translation id="7653418004652142983">चालू</translation>
 <translation id="7654687942625752712">कंप्यूटर का बोलकर दिया गया जवाब बंद करने के लिए दोनों वॉल्यूम की पांच सेकंड तक दबाकर रखें.</translation>
 <translation id="7658239707568436148">अभी नहीं</translation>
 <translation id="7705524343798198388">वीपीएन</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">Google Assistant सिर्फ़ प्राथमिक प्रोफ़ाइल के लिए उपलब्ध है.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> और <ph name="SECOND_PARENT_EMAIL" /> खाता संभालते हैं</translation>
 <translation id="7955885781510802139">हाई-कंट्रास्ट मोड</translation>
+<translation id="7977639574084142279">बंद</translation>
 <translation id="7977927628060636163">मोबाइल नेटवर्क खोजे जा रहे हैं...</translation>
 <translation id="7980780401175799550">Chrome OS पर नेविगेट करने के नए तरीके आज़माएं</translation>
 <translation id="7982789257301363584">नेटवर्क</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">बंद की गई</translation>
 <translation id="8938800817013097409">USB-C डिवाइस (पीछे की ओर दायां पोर्ट)</translation>
 <translation id="8940956008527784070">बैटरी कम (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">गहरे रंग वाला मोड बंद है.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> का इस्तेमाल करें</translation>
 <translation id="899350903320462459">सूचना से जुड़ी कार्रवाई करने के लिए डिवाइस को <ph name="LOGIN_ID" /> के तौर पर अनलॉक करें</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index 59aa5881..eb49085 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Hozzáférés az Ön jelen munkamenetben végzett összes tevékenységéhez</translation>
 <translation id="1632985212731562677">A Kapcsolóalapú hozzáférés a Beállítások Kisegítő lehetőségek pontjában kapcsolható ki.</translation>
 <translation id="1654477262762802994">Hangalapú lekérdezés indítása</translation>
+<translation id="1665244008632896072">Sötét téma be-/kikapcsolása. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> van hátra</translation>
 <translation id="1698080062160024910">Időzítő a következő időtartamra: <ph name="TOTAL_TIME" />   <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6-cím: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Képernyő-billentyűzet bekapcsolva</translation>
 <translation id="1761222317188459878">Hálózati kapcsolat ki- és bekapcsolása. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Görgetés jobbra</translation>
+<translation id="1776485282219497802">Sötét mód bekapcsolva.</translation>
 <translation id="1782199038061388045">Fordítás</translation>
 <translation id="181103072419391116">Jelerősség: <ph name="SIGNAL_STRENGTH" />, a rendszergazdája kezeli</translation>
 <translation id="1812997170047690955">Mi van a képernyőn?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">A billentyűzetkiosztás átváltásához nyomja meg a(z) <ph name="KEYBOARD_SHORTCUT" /> billentyűparancsot.</translation>
 <translation id="2501920221385095727">Beragadó billentyűk</translation>
 <translation id="2509468283778169019">A CAPS LOCK be van kapcsolva</translation>
+<translation id="2517829236324128850">Sötét mód beállításainak megjelenítése</translation>
 <translation id="2542089167727451762">Koppintson a profilképre</translation>
 <translation id="255671100581129685">A Google Segéd nem áll rendelkezésre nyilvános munkamenetben.</translation>
 <translation id="256712445991462162">dokkolt nagyító</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">A képernyő irányításának megosztása <ph name="HELPER_NAME" /> segítővel a Távsegítség szolgáltatás keretein belül.</translation>
 <translation id="4430019312045809116">Hangerő</translation>
 <translation id="4450893287417543264">Ne jelenjen meg többé</translation>
+<translation id="4458688154122353284">Képernyőfelvétel leállítása</translation>
 <translation id="4477350412780666475">Következő szám</translation>
 <translation id="4477892968187500306">Ez az eszköz olyan alkalmazásokat tartalmazhat, amelyeket nem hagyott jóvá a Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">A(z) <ph name="ROUTE_TITLE" /> leállítása itt: <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Kikapcsolva</translation>
+<translation id="5887866489674258948">Sötét mód</translation>
 <translation id="5895138241574237353">Újraindítás</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (tulajdonos)</translation>
 <translation id="7647488630410863958">Az eszköz zárolásának feloldása az értesítések megtekintéséhez</translation>
 <translation id="7649070708921625228">Súgó</translation>
+<translation id="7653418004652142983">Be</translation>
 <translation id="7654687942625752712">A hangos visszajelzés kikapcsolásához öt másodpercig tartsa lenyomva mindkét hangerőgombot.</translation>
 <translation id="7658239707568436148">Mégse</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">A Google Segéd csak az elsődleges profilhoz áll rendelkezésre.</translation>
 <translation id="79341161159229895">A fiókot a(z) <ph name="FIRST_PARENT_EMAIL" /> és a(z) <ph name="SECOND_PARENT_EMAIL" /> kezeli</translation>
 <translation id="7955885781510802139">Nagy kontrasztú mód</translation>
+<translation id="7977639574084142279">Ki</translation>
 <translation id="7977927628060636163">Mobilhálózatok keresése…</translation>
 <translation id="7980780401175799550">Új navigációs módszerek Chrome OS rendszeren</translation>
 <translation id="7982789257301363584">Hálózat</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">deaktiválva</translation>
 <translation id="8938800817013097409">C típusú USB-vel kompatibilis eszköz (jobb hátsó port)</translation>
 <translation id="8940956008527784070">Alacsony akkumulátortöltöttség (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Sötét mód kikapcsolva.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> használata</translation>
 <translation id="899350903320462459">Az eszköz zárolásának feloldása az értesítési művelet végrehajtásához a következő felhasználó által: <ph name="LOGIN_ID" />.</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index c9c2c463..68269e9 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Akses semua aktivitas Anda di sesi ini</translation>
 <translation id="1632985212731562677">Tombol Akses dapat dinonaktifkan di Setelan &gt; Aksesibilitas.</translation>
 <translation id="1654477262762802994">Mulai kueri suara</translation>
+<translation id="1665244008632896072">Tombol Mode Gelap. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Sisa waktu <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Timer <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Alamat IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Keyboard di layar diaktifkan</translation>
 <translation id="1761222317188459878">Alihkan koneksi jaringan. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Scroll ke kanan</translation>
+<translation id="1776485282219497802">Mode Gelap aktif.</translation>
 <translation id="1782199038061388045">terjemahan</translation>
 <translation id="181103072419391116">Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" />, Dikelola oleh Administrator Anda</translation>
 <translation id="1812997170047690955">Konten apa yang ada di layar saya?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Tekan <ph name="KEYBOARD_SHORTCUT" /> untuk mengganti tata letak keyboard.</translation>
 <translation id="2501920221385095727">Tombol sticky</translation>
 <translation id="2509468283778169019">CAPS LOCK aktif</translation>
+<translation id="2517829236324128850">Tampilkan setelan mode gelap</translation>
 <translation id="2542089167727451762">Ketuk gambar profil Anda</translation>
 <translation id="255671100581129685">Asisten Google tidak tersedia dalam sesi publik.</translation>
 <translation id="256712445991462162">kaca pembesar tersemat</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Berbagi kontrol layar dengan <ph name="HELPER_NAME" /> via Remote Assistance.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Jangan tampilkan lagi</translation>
+<translation id="4458688154122353284">Hentikan perekaman layar</translation>
 <translation id="4477350412780666475">Lagu Berikutnya</translation>
 <translation id="4477892968187500306">Perangkat ini dapat memuat aplikasi yang belum diverifikasi oleh Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Hentikan <ph name="ROUTE_TITLE" /> di <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Nonaktif</translation>
+<translation id="5887866489674258948">Mode Gelap</translation>
 <translation id="5895138241574237353">Mulai Ulang</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
 <translation id="7647488630410863958">Buka kunci perangkat untuk melihat notifikasi</translation>
 <translation id="7649070708921625228">Bantuan</translation>
+<translation id="7653418004652142983">Aktif</translation>
 <translation id="7654687942625752712">Tekan dan tahan kedua tombol volume selama 5 detik untuk menonaktifkan masukan lisan.</translation>
 <translation id="7658239707568436148">Batal</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Asisten Google hanya tersedia untuk profil utama.</translation>
 <translation id="79341161159229895">Akun dikelola oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Mode kontras tinggi</translation>
+<translation id="7977639574084142279">Nonaktif</translation>
 <translation id="7977927628060636163">Menelusuri jaringan seluler...</translation>
 <translation id="7980780401175799550">Coba cara baru untuk menggunakan Chrome OS</translation>
 <translation id="7982789257301363584">Jaringan</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">dinonaktifkan</translation>
 <translation id="8938800817013097409">Perangkat USB-C (port belakang sebelah kanan)</translation>
 <translation id="8940956008527784070">Baterai lemah (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Mode Gelap nonaktif.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Menggunakan <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Buka kunci perangkat sebagai <ph name="LOGIN_ID" /> untuk melakukan tindakan notifikasi</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 32db5e87..4f454e1 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ამ სესიის დროს თქვენს მთელ აქტივობაზე წვდომა</translation>
 <translation id="1632985212731562677">გადამრთველით წვდომის გათიშვა შესაძლებელია აქ: პარამეტრები &gt; მარტივი წვდომა.</translation>
 <translation id="1654477262762802994">ხმოვანი მოთხოვნის დაწყება</translation>
+<translation id="1665244008632896072">მუქი რეჟიმის გადართვა. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">დარჩენილია <ph name="TIME" /></translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" />-იანი ტაიმერი · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 მისამართი: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ეკრანული კლავიატურა ჩართულია</translation>
 <translation id="1761222317188459878">ქსელის კავშირის გადართვა. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">გადაადგილება მარჯვნივ</translation>
+<translation id="1776485282219497802">მუქი რეჟიმი ჩართულია.</translation>
 <translation id="1782199038061388045">თარგმანი</translation>
 <translation id="181103072419391116">სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />, მართავს თქვენი ადმინისტრატორი</translation>
 <translation id="1812997170047690955">რა არის ჩემს ეკრანზე?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">კლავიატურის განლაგების გადასართველად გამოიყენეთ კლავიშთა კომბინაცია: <ph name="KEYBOARD_SHORTCUT" />.</translation>
 <translation id="2501920221385095727">კლავიშების ფიქსაცია</translation>
 <translation id="2509468283778169019">CAPS LOCK ჩართულია</translation>
+<translation id="2517829236324128850">მუქი რეჟიმის პარამეტრების ჩვენება</translation>
 <translation id="2542089167727451762">შეეხეთ თქვენს პროფილის სურათს</translation>
 <translation id="255671100581129685">Google ასისტენტი მიუწვდომელია საჯარო სესიაში.</translation>
 <translation id="256712445991462162">ჩამაგრებული ლუპა</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">თქვენი ეკრანის მართვის გაზიარება <ph name="HELPER_NAME" /> დისტანციური დამხმარეს მეშვეობით.</translation>
 <translation id="4430019312045809116">ხმა</translation>
 <translation id="4450893287417543264">აღარ გამოჩნდეს</translation>
+<translation id="4458688154122353284">ეკრანის ჩაწერის შეწყვეტა</translation>
 <translation id="4477350412780666475">შემდეგი ჩანაწერი</translation>
 <translation id="4477892968187500306">ამ მოწყობილობაზე შეიძლება იყოს Google-ის მიერ შეუმოწმებელი აპები.</translation>
 <translation id="4479639480957787382">ეთერნეთი</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="ROUTE_TITLE" />-ის შეწყვეტა „<ph name="RECEIVER_NAME" />“-ში</translation>
 <translation id="5860033963881614850">გამორთვა</translation>
+<translation id="5887866489674258948">მუქი რეჟიმი</translation>
 <translation id="5895138241574237353">გადატვირთვა</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (მფლობელი)</translation>
 <translation id="7647488630410863958">შეტყობინებების სანახავად, განბლოკეთ მოწყობილობა</translation>
 <translation id="7649070708921625228">დახმარება</translation>
+<translation id="7653418004652142983">ჩართული</translation>
 <translation id="7654687942625752712">გახმოვანებული უკუკავშირის გასათიშად დააჭირეთ ხმის ორივე ღილაკს ხუთი წამის განმავლობაში.</translation>
 <translation id="7658239707568436148">გაუქმება</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google ასისტენტი ხელმისაწვდომია მხოლოდ ძირითადი პროფილისთვის.</translation>
 <translation id="79341161159229895">ანგარიშს მართავენ <ph name="FIRST_PARENT_EMAIL" /> და <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">მაღალკონტრასტული რეჟიმი</translation>
+<translation id="7977639574084142279">გამორთული</translation>
 <translation id="7977927628060636163">მიმდინარეობს მობილური ქსელების ძიება…</translation>
 <translation id="7980780401175799550">ცადეთ Chrome OS-ში ნავიგაციის ახალი ხერხები</translation>
 <translation id="7982789257301363584">ქსელი</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">დეაქტივირებულია</translation>
 <translation id="8938800817013097409">USB-C მოწყობილობა (უკან მდებარე მარჯვენა პორტი)</translation>
 <translation id="8940956008527784070">კვების ბატარეა იცლება (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">მუქი რეჟიმი გამორთულია.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">გამოიყენება <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">შეტყობინების ქმედების შესასრულებლად განბლოკეთ მოწყობილობა <ph name="LOGIN_ID" />-ის სახელით</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index bbd2f42..79dc9ab 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Осы сеанстағы барлық әрекеттеріңізге кіріңіз</translation>
 <translation id="1632985212731562677">Switch Access функциясын "Параметрлер &gt; Accessibility" бөлімінен өшіруге болады.</translation>
 <translation id="1654477262762802994">Дауыстық сұрауды бастау</translation>
+<translation id="1665244008632896072">Қараңғы режимді қосыңыз немесе өшіріңіз. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> қалды</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> таймер · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 мекенжайы: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Экрандық пернетақта қосылды</translation>
 <translation id="1761222317188459878">Желі байланысын қосу/өшіру. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Оңға айналдыру</translation>
+<translation id="1776485282219497802">Қараңғы режим қосулы.</translation>
 <translation id="1782199038061388045">аударма</translation>
 <translation id="181103072419391116">Сигнал күші – <ph name="SIGNAL_STRENGTH" />, Әкімші басқарады</translation>
 <translation id="1812997170047690955">Экранда не бар?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Пернетақтаны ауыстыру үшін <ph name="KEYBOARD_SHORTCUT" /> пернелерін басыңыз.</translation>
 <translation id="2501920221385095727">Жабысқақ пернелер</translation>
 <translation id="2509468283778169019">CAPS LOCK қосулы</translation>
+<translation id="2517829236324128850">Қараңғы режим параметрлерін көрсету</translation>
 <translation id="2542089167727451762">Профиль суретіңізді түртіңіз.</translation>
 <translation id="255671100581129685">Google Assistant жалпыға қолжетімді сеанста жұмыс істемейді.</translation>
 <translation id="256712445991462162">бекітілген ұлғайтқыш</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Remote Assistance арқылы <ph name="HELPER_NAME" /> пайдаланушысымен экранды бөлісіп басқару.</translation>
 <translation id="4430019312045809116">Дыбыс деңгейі</translation>
 <translation id="4450893287417543264">Қайта көрсетілмесін</translation>
+<translation id="4458688154122353284">Экран жазуды тоқтату</translation>
 <translation id="4477350412780666475">Келесі аудиотрек</translation>
 <translation id="4477892968187500306">Құрылғыда Google растамаған қолданбалар болуы мүмкін.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> қабылдағышында <ph name="ROUTE_TITLE" /> трансляциясын тоқтату</translation>
 <translation id="5860033963881614850">Өшірулі</translation>
+<translation id="5887866489674258948">Қараңғы режим</translation>
 <translation id="5895138241574237353">Қайта іске қосу</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (иесі)</translation>
 <translation id="7647488630410863958">Хабарландыруларды көру үшін құрылғының құлпын ашыңыз</translation>
 <translation id="7649070708921625228">Анықтама</translation>
+<translation id="7653418004652142983">Қосу</translation>
 <translation id="7654687942625752712">Дауыстап оқу функциясын өшіру үшін дыбыс түймелерін бірге бес секунд басып тұрыңыз.</translation>
 <translation id="7658239707568436148">Бас тарту</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Assistant тек негізгі профиль үшін қолжетімді.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> және <ph name="SECOND_PARENT_EMAIL" /> басқаратын есептік жазба</translation>
 <translation id="7955885781510802139">Жоғары контраст режимі</translation>
+<translation id="7977639574084142279">Өшіру</translation>
 <translation id="7977927628060636163">Мобильдік желілер ізделуде…</translation>
 <translation id="7980780401175799550">Chrome OS жүйесінде жылжудың жаңа тәсілдері</translation>
 <translation id="7982789257301363584">Желі</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">өшірілді</translation>
 <translation id="8938800817013097409">USB-C құрылғысы (артқы оң жақ порты)</translation>
 <translation id="8940956008527784070">Батарея заряды төмен (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Қараңғы режим өшірулі.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> пайдалану</translation>
 <translation id="899350903320462459">Хабарландыруда ұсынылған әрекетті орындау үшін <ph name="LOGIN_ID" /> арқылы құрылғының құлпын ашыңыз</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index 8d01b7f..c52da4e 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ចូលប្រើសកម្មភាព​ទាំងអស់របស់អ្នកនៅក្នុង​រយៈពេលចូលប្រើនេះ</translation>
 <translation id="1632985212731562677">អាចបិទ​ការប្រើប៊ូតុងចុច​នៅក្នុងការកំណត់ &gt; ភាពងាយស្រួល។</translation>
 <translation id="1654477262762802994">ចាប់ផ្ដើម​សំណួរ​ជាសំឡេង</translation>
+<translation id="1665244008632896072">បិទ/បើក​មុខងារ​ងងឹត។ <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">នៅសល់ <ph name="TIME" /></translation>
 <translation id="1698080062160024910">កម្មវិធីកំណត់ម៉ោង <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">អាសយដ្ឋាន IPv6 ៖ <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ក្តារចុចលើអេក្រង់បានបើកដំណើរការ</translation>
 <translation id="1761222317188459878">បិទ/បើក​ការតភ្ជាប់​បណ្ដាញ។ <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">រំកិល​ទៅស្តាំ</translation>
+<translation id="1776485282219497802">មុខងារងងឹត​ត្រូវបានបើក​។</translation>
 <translation id="1782199038061388045">ការបកប្រែ</translation>
 <translation id="181103072419391116">កម្លាំង​រលកសញ្ញា <ph name="SIGNAL_STRENGTH" />, គ្រប់គ្រងដោយ​អ្នកគ្រប់គ្រង​របស់អ្នក</translation>
 <translation id="1812997170047690955">តើ​មាន​អ្វី​នៅលើ​អេក្រង់​របស់ខ្ញុំ?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">ចុច <ph name="KEYBOARD_SHORTCUT" /> ដើម្បី​ប្តូរប្លង់​ក្តារ​ចុច។</translation>
 <translation id="2501920221385095727">គ្រាប់ចុចស្អិត</translation>
 <translation id="2509468283778169019">CAPS LOCK ត្រូវបានបើក</translation>
+<translation id="2517829236324128850">បង្ហាញ​ការកំណត់​មុខងារងងឹត</translation>
 <translation id="2542089167727451762">ចុច​រូបភាព​កម្រងព័ត៌មាន​របស់អ្នក</translation>
 <translation id="255671100581129685">Google ជំនួយការ​មិន​អាចប្រើ​នៅក្នុងរយៈពេល​ចូលប្រើជាសាធារណៈបានទេ។</translation>
 <translation id="256712445991462162">កម្មវិធីពង្រីកដែលបានភ្ជាប់</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">ចែករំលែកការបញ្ជាអេក្រង់របស់អ្នកជាមួយ <ph name="HELPER_NAME" /> តាមរយៈជំនួយការពីចម្ងាយ។</translation>
 <translation id="4430019312045809116">សម្លេង</translation>
 <translation id="4450893287417543264">កុំបង្ហាញម្ដងទៀត</translation>
+<translation id="4458688154122353284">បញ្ឈប់​ការថត​អេក្រង់</translation>
 <translation id="4477350412780666475">សំនៀង​បន្ទាប់</translation>
 <translation id="4477892968187500306">ឧបករណ៍នេះ​អាចមាន​កម្មវិធី​ដែល​មិនត្រូវបាន​ផ្ទៀងផ្ទាត់​ដោយ Google។</translation>
 <translation id="4479639480957787382">ខ្សែអ៊ីនធឺណិត</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">បញ្ឈប់ <ph name="ROUTE_TITLE" /> នៅលើ <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">បិទ</translation>
+<translation id="5887866489674258948">មុខងារ​ងងឹត</translation>
 <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ម្ចាស់)</translation>
 <translation id="7647488630410863958">ដោះសោឧបករណ៍ដើម្បីមើលការជូនដំណឹងរបស់អ្នក</translation>
 <translation id="7649070708921625228">ជំនួយ</translation>
+<translation id="7653418004652142983">បើក</translation>
 <translation id="7654687942625752712">ចុច​គ្រាប់​ចុច​កម្រិត​សំឡេង​ទាំងពីរ​ឱ្យ​ជាប់​រយៈ​ពេល​ប្រាំ​វិនាទី ដើម្បី​បិទ​ការ​អាន​អេក្រង់។</translation>
 <translation id="7658239707568436148">បដិសេធ</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google ជំនួយ​ការ​អាច​ប្រើបាន​តែជាមួយកម្រង​ព័ត៌មាន​ចម្បង​ប៉ុណ្ណោះ។</translation>
 <translation id="79341161159229895">គណនី​ស្ថិត​ក្រោមការគ្រប់គ្រង​របស់ <ph name="FIRST_PARENT_EMAIL" /> និង <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">មុខងារ​ភាពដិត​កម្រិតខ្ពស់</translation>
+<translation id="7977639574084142279">បិទ</translation>
 <translation id="7977927628060636163">កំពុង​ស្វែងរក​បណ្ដាញ​ទូរសព្ទ​ចល័ត...</translation>
 <translation id="7980780401175799550">សាកល្បងវិធីថ្មីក្នុងការរុករក Chrome OS</translation>
 <translation id="7982789257301363584">បណ្តាញ</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">បាន​បិទដំណើរការ</translation>
 <translation id="8938800817013097409">ឧបករណ៍ USB-C (រន្ធស្តាំផ្នែកខាងក្រោយ)</translation>
 <translation id="8940956008527784070">ថ្មខ្សោយ (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">មុខងារ​ងងឹត​ត្រូវបានបិទ​។</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">កំពុងប្រើ <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">ដោះសោ​ឧបករណ៍ជា <ph name="LOGIN_ID" /> ដើម្បី​ធ្វើសកម្មភាព​ជូន​ដំណឹង</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index e91ad4c..836df8f2 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ಈ ಸೆಶನ್‌ನಲ್ಲಿ ನೀವು ನಡೆಸುವ ಎಲ್ಲಾ ಚಟುವಟಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸುವುದು</translation>
 <translation id="1632985212731562677">ಪ್ರವೇಶ ಬದಲಾಯಿಸಿ ಅನ್ನು ಸೆಟ್ಟಿಂಗ್‌ಗಳು &gt; ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿಯಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.</translation>
 <translation id="1654477262762802994">ಧ್ವನಿ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಲು ಪ್ರಾರಂಭಿಸಿ</translation>
+<translation id="1665244008632896072">ಕತ್ತಲೆ ಮೋಡ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ಟೈಮರ್ · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ವಿಳಾಸ: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ಆನ್ ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="1761222317188459878">ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">ಬಲಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ</translation>
+<translation id="1776485282219497802">ಕತ್ತಲೆ ಮೋಡ್ ಆನ್ ಆಗಿದೆ.</translation>
 <translation id="1782199038061388045">ಅನುವಾದ</translation>
 <translation id="181103072419391116">ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />, ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸಿದ್ದಾರೆ</translation>
 <translation id="1812997170047690955">ನನ್ನ ಪರದೆಯಲ್ಲಿ ಏನಿದೆ?</translation>
@@ -92,6 +94,7 @@
 <translation id="1962969542251276847">ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="1969011864782743497"><ph name="DEVICE_NAME" /> (USB)</translation>
 <translation id="1972950159383891558">ಹಾಯ್‌, <ph name="USERNAME" /></translation>
+<translation id="1975500003782052650">ಇತ್ತೀಚಿನ ಡೌನ್‌ಲೋಡ್‌ಗಳು</translation>
 <translation id="1978498689038657292">ಪಠ್ಯ ಇನ್‌ಪುಟ್</translation>
 <translation id="1993072747612765854">ಇತ್ತೀಚಿನ <ph name="SYSTEM_APP_NAME" /> ಅಪ್‌ಡೇಟ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
 <translation id="1995660704900986789">ಪವರ್ ಆಫ್</translation>
@@ -139,6 +142,7 @@
 <translation id="2484513351006226581">ಕೀಬೋರ್ಡ್ ಲೇಔಟ್ ಬದಲಾಯಿಸಲು <ph name="KEYBOARD_SHORTCUT" /> ಒತ್ತಿರಿ.</translation>
 <translation id="2501920221385095727">ಸ್ಟಿಕಿ ಕೀಗಳು</translation>
 <translation id="2509468283778169019">CAPS LOCK ಆನ್ ಆಗಿದೆ</translation>
+<translation id="2517829236324128850">ಕತ್ತಲೆ ಮೋಡ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="2542089167727451762">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಚಿತ್ರದ ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="255671100581129685">Google ಅಸಿಸ್ಟೆಂಟ್‌ ಸಾರ್ವಜನಿಕ ಸೆಶನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="256712445991462162">ಡಾಕ್ ಮಾಡಿರುವ ವರ್ಧಕ</translation>
@@ -255,6 +259,7 @@
 <translation id="3798670284305777884">ಸ್ಪೀಕರ್ (ಆಂತರಿಕ)</translation>
 <translation id="3799080171973636491">ನೀವು ಪೂರ್ಣ ಪರದೆ ವರ್ಧಕದ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ ಒತ್ತಿದ್ದೀರಿ. ನೀವು ಅದನ್ನು ಆನ್ ಮಾಡಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="380165613292957338">ಹಾಯ್, ನಾನು ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು?</translation>
+<translation id="3826099427150913765">ಪಾಸ್‌ವರ್ಡ್‌ಗೆ ಬದಲಿಸಿ</translation>
 <translation id="383629559565718788">ಕೀಬೋರ್ಡ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3846575436967432996">ನೆಟ್‌ವರ್ಕ್ ಮಾಹಿತಿ ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="385051799172605136">ಹಿಂದೆ</translation>
@@ -285,6 +290,7 @@
 <translation id="4181841719683918333">ಭಾಷೆಗಳು</translation>
 <translation id="4195877955194704651">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್‌ಗಳ ಬಟನ್</translation>
 <translation id="4197790712631116042">ಆಫ್</translation>
+<translation id="4212472694152630271">ಪಿನ್‌ಗೆ ಬದಲಿಸಿ</translation>
 <translation id="4215497585250573029">VPN ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="4217571870635786043">ಉಕ್ತಲೇಖನ</translation>
 <translation id="4239069858505860023">GPRS</translation>
@@ -297,6 +303,7 @@
 <translation id="4321776623976362024">ನೀವು ಅಧಿಕ ಕಾಂಟ್ರಾಸ್ಟ್‌ನ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ ಒತ್ತಿದ್ದೀರಿ. ನೀವು ಅದನ್ನು ಆನ್ ಮಾಡಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="4331809312908958774">Chrome OS</translation>
 <translation id="4338109981321384717">ಭೂತಕನ್ನಡಿ</translation>
+<translation id="4350065043422286972">ಪಿನ್‌ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="4351433414020964307">ಸಹಾಯಕವು ಲೋಡ್ ಆಗುತ್ತಿದೆ...</translation>
 <translation id="4356930093361201197">ಅಧಿಕ ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್</translation>
 <translation id="4368583494516669646">ಶುಭ ರಾತ್ರಿ <ph name="GIVEN_NAME" /></translation>
@@ -307,6 +314,7 @@
 <translation id="4421231901400348175">ರಿಮೋಟ್ ಸಹಾಯದ ಮೂಲಕ <ph name="HELPER_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ ಪರದೆಯ ನಿಯಂತ್ರಣವನ್ನು ಹಂಚಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation>
 <translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation>
+<translation id="4458688154122353284">ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಿ</translation>
 <translation id="4477350412780666475">ಮುಂದಿನ ಟ್ರ್ಯಾಕ್</translation>
 <translation id="4477892968187500306">Google ನಿಂದ ದೃಢೀಕರಿಸದ ಆ್ಯಪ್‌ಗಳನ್ನು ಈ ಸಾಧನವು ಒಳಗೊಂಡಿರಬಹುದು.</translation>
 <translation id="4479639480957787382">ಈಥರ್ನೆಟ್</translation>
@@ -358,6 +366,7 @@
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> ಸಾಧನವು ಹೊಸ ಫೋನ್ ಒಂದಕ್ಕೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="5035389544768382859">ಡಿಸ್‌ಪ್ಲೇ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಖಚಿತಪಡಿಸಿ</translation>
 <translation id="5083553833479578423">ಇನ್ನಷ್ಟು ಅಸಿಸ್ಟೆಂಟ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್‌ಲಾಕ್‌ ಮಾಡಿ.</translation>
+<translation id="5114495209940374989">ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ಗಳು</translation>
 <translation id="5136175204352732067">ವಿವಿಧ ಕೀಬೋರ್ಡ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="5168181903108465623">ಬಿತ್ತರಿಸುವಿಕೆಯ ಸಾಧನಗಳು ಲಭ್ಯವಿದೆ</translation>
 <translation id="5207949376430453814">ಪಠ್ಯದಲ್ಲಿ ಕೆರೆಟ್ ಅನ್ನು ಎದ್ದುಗಾಣಿಸಿ</translation>
@@ -410,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> ನಲ್ಲಿ <ph name="ROUTE_TITLE" /> ನಿಲ್ಲಿಸಿ</translation>
 <translation id="5860033963881614850">ಆಫ್</translation>
+<translation id="5887866489674258948">ಕತ್ತಲೆ ಮೋಡ್</translation>
 <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -562,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ಮಾಲೀಕರು)</translation>
 <translation id="7647488630410863958">ನಿಮ್ಮ ಅಧಿಸೂಚನೆಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="7649070708921625228">ಸಹಾಯ</translation>
+<translation id="7653418004652142983">ಆನ್</translation>
 <translation id="7654687942625752712">ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಐದು ಸೆಕೆಂಡ್‌ಗಳ ಕಾಲ ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ.</translation>
 <translation id="7658239707568436148">ರದ್ದುಮಾಡಿ</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -586,6 +597,7 @@
 <translation id="7933084174919150729">ಪ್ರಾಥಮಿಕ ಪ್ರೊಫೈಲ್‌ಗೆ ಮಾತ್ರ Google ಸಹಾಯಕ ಲಭ್ಯವಿದೆ.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> ಮತ್ತು <ph name="SECOND_PARENT_EMAIL" /> ಮೂಲಕ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation>
 <translation id="7955885781510802139">ಅಧಿಕ ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್</translation>
+<translation id="7977639574084142279">ಆಫ್</translation>
 <translation id="7977927628060636163">ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="7980780401175799550">Chrome OS ನಲ್ಲಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, ಹೊಸ ಮಾರ್ಗಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ ನೋಡಿ</translation>
 <translation id="7982789257301363584">ನೆಟ್‌ವರ್ಕ್</translation>
@@ -601,6 +613,7 @@
 <translation id="8061464966246066292">ಉನ್ನತ ಕಾಂಟ್ರಾಸ್ಟ್</translation>
 <translation id="8098591350844501178">ಪರದೆಯನ್ನು <ph name="RECEIVER_NAME" /> ಗೆ ಬಿತ್ತರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation>
 <translation id="8113423164597455979">ಆನ್, ಎಲ್ಲಾ ಆ್ಯಪ್</translation>
+<translation id="8129620843620772246"><ph name="TEMPERATURE_C" />° C</translation>
 <translation id="8131740175452115882">ದೃಢೀಕರಿಸು</translation>
 <translation id="8132793192354020517"><ph name="NAME" /> ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="813913629614996137">ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation>
@@ -685,6 +698,7 @@
 <translation id="8936501819958976551">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="8938800817013097409">USB-C ಸಾಧನ (ಹಿಂಭಾಗದಲ್ಲಿನ ಬಲ ಪೋರ್ಟ್‌)</translation>
 <translation id="8940956008527784070">ಬ್ಯಾಟರಿ ಕಡಿಮೆ (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">ಕತ್ತಲೆ ಮೋಡ್ ಆಫ್ ಆಗಿದೆ.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ಬಳಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="899350903320462459">ಅಧಿಸೂಚನೆ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧನವನ್ನು <ph name="LOGIN_ID" /> ನಂತೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 5364aa8..cd9d776ae 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">이 세션의 모든 활동에 액세스</translation>
 <translation id="1632985212731562677">설정 &gt; 접근성에서 스위치 제어를 사용 중지할 수 있습니다.</translation>
 <translation id="1654477262762802994">음성 검색 시작</translation>
+<translation id="1665244008632896072">어두운 모드로 전환합니다. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> 남음</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> 타이머 · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 주소: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">터치 키보드 사용 설정됨</translation>
 <translation id="1761222317188459878">네트워크 연결을 전환합니다. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">오른쪽으로 스크롤</translation>
+<translation id="1776485282219497802">어두운 모드를 사용 중입니다.</translation>
 <translation id="1782199038061388045">번역</translation>
 <translation id="181103072419391116">신호 강도 <ph name="SIGNAL_STRENGTH" />, 관리자가 관리함</translation>
 <translation id="1812997170047690955">화면에 표시된 내용 찾아보기</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">키보드 레이아웃을 전환하려면 <ph name="KEYBOARD_SHORTCUT" />을(를) 누르세요.</translation>
 <translation id="2501920221385095727">고정키</translation>
 <translation id="2509468283778169019">CAPS LOCK이 켜져 있습니다.</translation>
+<translation id="2517829236324128850">어두운 모드 설정 표시</translation>
 <translation id="2542089167727451762">프로필 이미지 탭</translation>
 <translation id="255671100581129685">공개 세션에서는 Google 어시스턴트를 사용할 수 없습니다.</translation>
 <translation id="256712445991462162">고정 돋보기</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">원격 지원을 통해 <ph name="HELPER_NAME" />와(과) 화면 제어 공유</translation>
 <translation id="4430019312045809116">볼륨</translation>
 <translation id="4450893287417543264">다시 표시하지 않음</translation>
+<translation id="4458688154122353284">화면 녹화 중지</translation>
 <translation id="4477350412780666475">다음 트랙</translation>
 <translation id="4477892968187500306">이 기기에는 Google에서 확인하지 않은 앱이 설치되어 있을 수 있습니다.</translation>
 <translation id="4479639480957787382">이더넷</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />에서 <ph name="ROUTE_TITLE" /> 중지</translation>
 <translation id="5860033963881614850">사용 안함</translation>
+<translation id="5887866489674258948">어두운 모드</translation>
 <translation id="5895138241574237353">다시 시작</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" />(<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" />(소유자)</translation>
 <translation id="7647488630410863958">기기를 잠금 해제하여 알림 보기</translation>
 <translation id="7649070708921625228">도움말</translation>
+<translation id="7653418004652142983">사용</translation>
 <translation id="7654687942625752712">음성 피드백을 사용 중지하려면 두 볼륨 키를 5초 동안 길게 누르세요.</translation>
 <translation id="7658239707568436148">취소</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google 어시스턴트는 기본 프로필에서만 사용할 수 있습니다.</translation>
 <translation id="79341161159229895">계정 관리자: <ph name="FIRST_PARENT_EMAIL" /> 및 <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">고대비 모드</translation>
+<translation id="7977639574084142279">꺼짐</translation>
 <translation id="7977927628060636163">모바일 네트워크 검색 중...</translation>
 <translation id="7980780401175799550">Chrome OS의 새로운 탐색 방법 사용해 보기</translation>
 <translation id="7982789257301363584">네트워크</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">비활성화됨</translation>
 <translation id="8938800817013097409">USB-C 기기(우측 후면 포트)</translation>
 <translation id="8940956008527784070">배터리 부족(<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">어두운 모드가 사용 중지되어 있습니다.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> 사용 중</translation>
 <translation id="899350903320462459">알림 작업을 실행하려면 <ph name="LOGIN_ID" />(으)로 기기의 잠금을 해제하세요.</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
index 6a8d32df..5654b8a 100644
--- a/ash/strings/ash_strings_ky.xtb
+++ b/ash/strings/ash_strings_ky.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Бул сеанста аткарган иш-аракеттериңизди көрөт</translation>
 <translation id="1632985212731562677">Switch Access функциясын Жөндөөлөр &gt; Атайын мүмкүнчүлүктөр бөлүмүнөн өчүрүүгө болот.</translation>
 <translation id="1654477262762802994">Айтып издеп баштоо</translation>
+<translation id="1665244008632896072">Караңгы теманы өчүрүү/күйгүзүү. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> калды</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> таймер · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 дареги: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Экрандагы баскычтоп күйгүзүлдү</translation>
 <translation id="1761222317188459878">Тармакка туташууну өчүрүү/күйгүзүү. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Оңго сыдыруу</translation>
+<translation id="1776485282219497802">Караңгы тема күйүк.</translation>
 <translation id="1782199038061388045">котормосу</translation>
 <translation id="181103072419391116">Сигналдын күчү <ph name="SIGNAL_STRENGTH" />, Администраторуңуз башкарат</translation>
 <translation id="1812997170047690955">Экранымда эмне көрсөтүлүп турат?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Баскычтоптун калыбын которуу үчүн <ph name="KEYBOARD_SHORTCUT" /> басып коюңуз.</translation>
 <translation id="2501920221385095727">Жабышчаак баскычтар функциясы</translation>
 <translation id="2509468283778169019">Caps Lock күйүп турат</translation>
+<translation id="2517829236324128850">Караңгы теманын жөндөөлөрүн көрсөтүү</translation>
 <translation id="2542089167727451762">Профилиңиздин сүрөтүн таптап коюңуз</translation>
 <translation id="255671100581129685">Google Жардамчысы жалпыга ачык сеанста жеткиликсиз.</translation>
 <translation id="256712445991462162">жалгаштырылган лупа</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Алыскы жардамчы аркылуу экраныңыздын көзөмөлү <ph name="HELPER_NAME" /> менен бөлүшүүдө.</translation>
 <translation id="4430019312045809116">Үндүн катуулугу</translation>
 <translation id="4450893287417543264">Экинчи көрүнбөсүн</translation>
+<translation id="4458688154122353284">Экрандан видео жаздырууну токтотуу</translation>
 <translation id="4477350412780666475">Кийинки трек</translation>
 <translation id="4477892968187500306">Бул түзмөктө Google текшербеген колдонмолор болушу мүмкүн.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> бөлмөсүндөгү <ph name="ROUTE_TITLE" /> токтотулсун</translation>
 <translation id="5860033963881614850">Өчүк</translation>
+<translation id="5887866489674258948">Караңгы тема</translation>
 <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ээси)</translation>
 <translation id="7647488630410863958">Эскертмелериңизди көрүү үчүн түзмөгүңүздү бөгөттөн чыгарыңыз</translation>
 <translation id="7649070708921625228">Жардам</translation>
+<translation id="7653418004652142983">Күйүк</translation>
 <translation id="7654687942625752712">Экрандагы текстти окуп берүү функциясын өчүрүү үчүн үндү чоңойтуп/кичирейтүү баскычтарынын экөөн тең беш секунд коё бербей басып туруңуз.</translation>
 <translation id="7658239707568436148">Жокко чыгаруу</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Жардамчы колдонуучунун негизги профилинде гана иштейт.</translation>
 <translation id="79341161159229895">Аккаунтту башкарган: <ph name="FIRST_PARENT_EMAIL" /> жана <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Жогорку контраст режими</translation>
+<translation id="7977639574084142279">Өчүк</translation>
 <translation id="7977927628060636163">Мобилдик тармактар изделүүдө…</translation>
 <translation id="7980780401175799550">Chrome OS'ту чабыттоонун жаңы жолдорун колдонуп көрүңүз</translation>
 <translation id="7982789257301363584">Тармак</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">өчүрүлдү</translation>
 <translation id="8938800817013097409">USB-C түзмөгү (аркасындагы оң жактагы оюкча)</translation>
 <translation id="8940956008527784070">Батарея аз (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Караңгы тема өчүк.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> колдонулууда</translation>
 <translation id="899350903320462459">Билдирмедеги аракетти аткаруу үчүн түзмөктүн кулпусун <ph name="LOGIN_ID" /> катары ачыңыз</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb
index 452c0a50..315e443c 100644
--- a/ash/strings/ash_strings_lo.xtb
+++ b/ash/strings/ash_strings_lo.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ເຂົ້າເຖິງທຸກການເຄື່ອນໄຫວຂອງທ່ານໃນເຊດຊັນນີ້</translation>
 <translation id="1632985212731562677">ປິດການນຳໃຊ້ການເຂົ້າເຖິງດ້ວຍປຸ່ມກົດໄດ້ໃນການຕັ້ງຄ່າ &gt; ການຊ່ວຍເຂົ້າເຖິງ.</translation>
 <translation id="1654477262762802994">ເລີ່ມຄຳຊອກຫາດ້ວຍສຽງ</translation>
+<translation id="1665244008632896072">ສະຫຼັບໂໝດມືດ. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">ຍັງເຫຼືອ <ph name="TIME" /></translation>
 <translation id="1698080062160024910">ໂມງນັບຖອຍຫຼັງ <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">ທີ່ຢູ່ IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ແປ້ນພິມ​ເທິງ​ໜ້າ​ຈໍ​ເປີດໃຊ້​ງານ​ແລ້ວ</translation>
 <translation id="1761222317188459878">ປິດເປີດການເຊື່ອມຕໍ່ເຄືອຂ່າຍ. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">ເລື່ອນໄປຂວາ</translation>
+<translation id="1776485282219497802">ໂໝດມືດເປີດຢູ່.</translation>
 <translation id="1782199038061388045">ການແປພາສາ</translation>
 <translation id="181103072419391116">ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
 <translation id="1812997170047690955">ມີຫຍັງຢູ່ໃນໜ້າຈໍຂອງຂ້ອຍ?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">ແຕະ <ph name="KEYBOARD_SHORTCUT" /> ເພື່ອປ່ຽນໂຄງຮ່າງແປ້ນພິມ.</translation>
 <translation id="2501920221385095727">ປຸ່ມສະຕິກກີ້</translation>
 <translation id="2509468283778169019">CAPS LOCK ເປີດຢູ່</translation>
+<translation id="2517829236324128850">ສະແດງການຕັ້ງຄ່າໂໝດມືດ</translation>
 <translation id="2542089167727451762">ແຕະຮູບໂປຣໄຟລ໌ຂອງທ່ານ</translation>
 <translation id="255671100581129685">ຜູ້ຊ່ວຍ Google ບໍ່ສາມາດໃຊ້ໄດ້ໃນເຊດຊັນສາທາລະນະ.</translation>
 <translation id="256712445991462162">ແວ່ນຂະຫຍາຍໜ້າຈໍບາງສ່ວນ</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">​ການແບ່ງປັນ​ການ​ຄວບ​ຄຸມ​ໜ້າ​ຈໍ​ຂອງ​ທ່ານ​ກັບ <ph name="HELPER_NAME" /> ຜ່ານ​ຕົວ​ຊ່ວຍ​ທາງ​ໄກ.</translation>
 <translation id="4430019312045809116">ລະດັບສຽງ</translation>
 <translation id="4450893287417543264">ຢ່າສະແດງອີກ</translation>
+<translation id="4458688154122353284">ຢຸດການບັນທຶກໜ້າຈໍ</translation>
 <translation id="4477350412780666475">ເພງຕໍ່ໄປ</translation>
 <translation id="4477892968187500306">ອຸປະກອນນີ້ອາດຈະປະກອບມີແອັບທີ່ບໍ່ໄດ້ຜ່ານການຢັ້ງຢືນຈາກ Google.</translation>
 <translation id="4479639480957787382">ອີເທີເນັດ</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">ຢຸດ <ph name="ROUTE_TITLE" /> ໃນ <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">ປິດ</translation>
+<translation id="5887866489674258948">ໂໝດມືດ</translation>
 <translation id="5895138241574237353">ເລີ່ມຕົ້ນໃໝ່</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ເຈົ້າ​ຂອງ​)</translation>
 <translation id="7647488630410863958">ປົດລັອກອຸປະກອນເພື່ອເບິ່ງການແຈ້ງເຕືອນ</translation>
 <translation id="7649070708921625228">ຊ່ວຍ​ເຫຼືອ</translation>
+<translation id="7653418004652142983">ເປີດ</translation>
 <translation id="7654687942625752712">ກົດປຸ່ມທັງສອງລະດັບສຽງເປັນເວລາຫ້າວິນາທີເພື່ອປິດນຳໃຊ້ການຕອບສະໜອງແບບສຽງເວົ້າ.</translation>
 <translation id="7658239707568436148">ຍົກ​ເລີກ​</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">ຜູ້ຊ່ວຍ Google ສາມາດໃຊ້ໄດ້ສຳລັບໂປຣໄຟລ໌ຫຼັກເທົ່ານັ້ນ.</translation>
 <translation id="79341161159229895">ບັນຊີທີ່ຈັດການໂດຍ <ph name="FIRST_PARENT_EMAIL" /> ແລະ <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">ໂໝດສີຕັດກັນສູງ</translation>
+<translation id="7977639574084142279">ປິດ</translation>
 <translation id="7977927628060636163">ກຳລັງຊອກຫາເຄືອຂ່າຍມືຖື...</translation>
 <translation id="7980780401175799550">ລອງວິທີໃໝ່ໃນການໄປຫາສ່ວນຕ່າງໆຂອງ Chrome OS</translation>
 <translation id="7982789257301363584">ເຄືອ​ຂ່າຍ</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">ປິດນຳໃຊ້ແລ້ວ</translation>
 <translation id="8938800817013097409">ອຸ​ປະ​ກອນ USB-C (ຜອດ​ດ້ານ​ຂວາ​ຢູ່​ເບື້ອງ​ຫຼັງ)</translation>
 <translation id="8940956008527784070">ແບັດເຕີຣີອ່ອນ (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">ໂໝດມືດປິດຢູ່.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">ກຳລັງໃຊ້ <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">ປົດລັອກອຸປະກອນເປັນ <ph name="LOGIN_ID" /> ເພື່ອເຮັດການດຳເນີນການແຈ້ງເຕືອນ</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 90ef1d37..40f7133 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Pasiekti visą šios sesijos veiklą</translation>
 <translation id="1632985212731562677">Prieigos jungikliu funkciją galima išjungti skiltyje „Nustatymai“ &gt; „Pritaikomumas“.</translation>
 <translation id="1654477262762802994">Pradėti užklausą balsu</translation>
+<translation id="1665244008632896072">Perjungti tamsų režimą. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Liko <ph name="TIME" /></translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> laikmatis · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">„IPv6“ adresas: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Ekrano klaviatūra įgalinta</translation>
 <translation id="1761222317188459878">Perjungti tinklo ryšį. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Slinkti dešinėn</translation>
+<translation id="1776485282219497802">Tamsus režimas įjungtas.</translation>
 <translation id="1782199038061388045">vertimas</translation>
 <translation id="181103072419391116">Signalo stiprumas <ph name="SIGNAL_STRENGTH" />, tvarko administratorius</translation>
 <translation id="1812997170047690955">Kas mano ekrane?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Paspauskite <ph name="KEYBOARD_SHORTCUT" />, kad perjungtumėte klaviatūros išdėstymą.</translation>
 <translation id="2501920221385095727">Fiksuotos pozicijos klavišai</translation>
 <translation id="2509468283778169019">DIDŽIŲJŲ RAIDŽIŲ RAŠYMAS įjungtas</translation>
+<translation id="2517829236324128850">Rodyti tamsaus režimo nustatymus</translation>
 <translation id="2542089167727451762">Palieskite profilio vaizdą</translation>
 <translation id="255671100581129685">„Google“ padėjėjas nepasiekiamas viešoje sesijoje.</translation>
 <translation id="256712445991462162">prie doko prijungtas didintuvas</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175"><ph name="HELPER_NAME" /> gali valdyti jūsų ekraną naudodamas (-a) Nuotolinę pagalbą.</translation>
 <translation id="4430019312045809116">Apimtis</translation>
 <translation id="4450893287417543264">Daugiau neberodyti</translation>
+<translation id="4458688154122353284">Sustabdyti ekrano įrašymą</translation>
 <translation id="4477350412780666475">Kitas takelis</translation>
 <translation id="4477892968187500306">Šiame įrenginyje gali būti programų, kurių „Google“ nepatvirtino.</translation>
 <translation id="4479639480957787382">Eternetas</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">„Chromium“ OS</translation>
 <translation id="5837036133683224804">Sustabdyti „<ph name="ROUTE_TITLE" />“ („<ph name="RECEIVER_NAME" />“)</translation>
 <translation id="5860033963881614850">Išjungta</translation>
+<translation id="5887866489674258948">Tamsus režimas</translation>
 <translation id="5895138241574237353">Paleisti iš naujo</translation>
 <translation id="5901316534475909376">„Shift“ + „Esc“</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (savininkas)</translation>
 <translation id="7647488630410863958">Atrakinkite įrenginį, kad galėtumėte peržiūrėti pranešimus</translation>
 <translation id="7649070708921625228">Pagalba</translation>
+<translation id="7653418004652142983">Įjungta</translation>
 <translation id="7654687942625752712">Paspauskite ir penkias sekundes palaikykite garsumo klavišus, kad išjungtumėte ekrano skaitymo balsu funkciją.</translation>
 <translation id="7658239707568436148">Atšaukti</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">„Google“ padėjėjas pasiekiamas tik pagrindiniame profilyje.</translation>
 <translation id="79341161159229895">Paskyrą tvarko: <ph name="FIRST_PARENT_EMAIL" /> ir <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Didelio kontrasto režimas</translation>
+<translation id="7977639574084142279">Išjungta</translation>
 <translation id="7977927628060636163">Ieškoma mobiliojo ryšio tinklų...</translation>
 <translation id="7980780401175799550">Nauji „Chrome“ OS naršymo būdai</translation>
 <translation id="7982789257301363584">Tinklas</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">išaktyvinta</translation>
 <translation id="8938800817013097409">USB-C įrenginys (prievadas dešinėje, užpakalinėje dalyje)</translation>
 <translation id="8940956008527784070">Akumuliatorius senka (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Tamsus režimas išjungtas.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Naudojama <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Atrakinkite įrenginį su <ph name="LOGIN_ID" />, kad galėtumėte įvykdyti pranešimo veiksmą</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index f3bcb53..d4a44e0 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ഈ സെഷനിൽ നിങ്ങളുടെ എല്ലാ ആക്‌റ്റിവിറ്റികളും ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="1632985212731562677">ക്രമീകരണം &gt; ഉപയോഗസഹായി എന്നതിൽ 'ആക്‌സസ് മാറുക' പ്രവർത്തനരഹിതമാക്കാം.</translation>
 <translation id="1654477262762802994">ഒരു ശബ്‌ദ ചോദ്യം ആരംഭിക്കുക</translation>
+<translation id="1665244008632896072">ഡാർക്ക് മോഡ് മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ശേഷിക്കുന്നു</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ടൈമർ · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 വിലാസം: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ഓൺ‌ സ്‌ക്രീൻ കീ‌ബോർഡ് പ്രവർത്തനക്ഷമമാക്കി</translation>
 <translation id="1761222317188459878">നെറ്റ്‌വർക്ക് കണക്ഷൻ മാറ്റുക. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">വലത്തോട്ട് സ്ക്രോൾ ചെയ്യുക</translation>
+<translation id="1776485282219497802">ഡാർക്ക് മോഡ് ഓണാണ്.</translation>
 <translation id="1782199038061388045">വിവർത്തനം</translation>
 <translation id="181103072419391116">സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />, നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="1812997170047690955">എന്റെ സ്‌ക്രീനിൽ എന്താണുള്ളത്?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">കീബോര്‍‌ഡ് ലേഔട്ട് മാറാൻ <ph name="KEYBOARD_SHORTCUT" /> അമർത്തുക.</translation>
 <translation id="2501920221385095727">സ്‌റ്റിക്കി കീകൾ</translation>
 <translation id="2509468283778169019">CAPS LOCK ഓൺ ആണ്</translation>
+<translation id="2517829236324128850">ഡാർക്ക് മോഡ് ക്രമീകരണം കാണിക്കുക</translation>
 <translation id="2542089167727451762">നിങ്ങളുടെ പ്രൊഫൈൽ ചിത്രത്തിൽ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="255671100581129685">പൊതു സെഷനില്‍ Google അസി‌സ്‌റ്റന്റ് ലഭ്യമല്ല.</translation>
 <translation id="256712445991462162">ഡോക്ക് ചെയ്‌ത മാഗ്നിഫയർ</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175"><ph name="HELPER_NAME" /> ഉപയോഗിച്ച് നിങ്ങളുടെ വിദൂര സഹായി മുഖേന സ്‌ക്രീനിന്റെ നിയന്ത്രണം പങ്കിടുക.</translation>
 <translation id="4430019312045809116">അളവ്</translation>
 <translation id="4450893287417543264">വീണ്ടും കാണിക്കരുത്</translation>
+<translation id="4458688154122353284">സ്ക്രീൻ റെക്കോർഡിംഗ് നിർത്തുക</translation>
 <translation id="4477350412780666475">അടുത്ത ട്രാക്ക്</translation>
 <translation id="4477892968187500306">Google പരിശോധിച്ചുറപ്പിച്ചിട്ടില്ലാത്ത ആപ്പുകൾ ഈ ഉപകരണത്തിൽ അടങ്ങിയിരിക്കാം.</translation>
 <translation id="4479639480957787382">എതെര്‍‌നെറ്റ്</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />-ൽ <ph name="ROUTE_TITLE" /> നിർത്തുക</translation>
 <translation id="5860033963881614850">ഓഫാക്കുക</translation>
+<translation id="5887866489674258948">ഡാർക്ക് മോഡ്</translation>
 <translation id="5895138241574237353">പുനരാരംഭിക്കുക</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ഉടമ)</translation>
 <translation id="7647488630410863958">നിങ്ങളുടെ അറിയിപ്പുകൾ കാണാൻ ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="7649070708921625228">സഹായം</translation>
+<translation id="7653418004652142983">ഓണാണ്</translation>
 <translation id="7654687942625752712">സംഭാഷണ ഫീഡ്‌ബാക്ക് പ്രവർത്തനരഹിതമാക്കാൻ രണ്ട് വോളിയം കീകളും രണ്ട് സെക്കൻഡ് നേരത്തേക്ക് അമർത്തിപ്പിടിക്കുക.</translation>
 <translation id="7658239707568436148">റദ്ദാക്കൂ</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">പ്രാഥമിക പ്രൊഫൈലിന് മാത്രമേ Google അസിസ്റ്റന്‍റ് ലഭ്യമാകൂ.</translation>
 <translation id="79341161159229895">അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="FIRST_PARENT_EMAIL" />, <ph name="SECOND_PARENT_EMAIL" /> എന്നിവരാണ്</translation>
 <translation id="7955885781510802139">ഉയർന്ന ദൃശ്യതീവ്രതാ മോഡ്</translation>
+<translation id="7977639574084142279">ഓഫാണ്</translation>
 <translation id="7977927628060636163">മൊബൈൽ നെറ്റ്‌വർക്കുകൾ തിരയുന്നു...</translation>
 <translation id="7980780401175799550">Chrome OS നാവിഗേറ്റ് ചെയ്യാനുള്ള പുതിയ മാർഗ്ഗങ്ങൾ പരീക്ഷിക്കുക</translation>
 <translation id="7982789257301363584">നെറ്റ്‌വർക്ക്</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">നിർജീവമാക്കി</translation>
 <translation id="8938800817013097409">USB-C ഉപകരണം (പുറകിൽ വലതുവശത്തെ പോർട്ട്)</translation>
 <translation id="8940956008527784070">ബാറ്ററി കുറവാണ് (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">ഡാർക്ക് മോഡ് ഓഫാണ്.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ഉപയോഗിക്കുന്നു</translation>
 <translation id="899350903320462459">അറിയിപ്പ് പ്രവർത്തനം നിർവഹിക്കാൻ, <ph name="LOGIN_ID" /> ആയി ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
index 5f374c87..3b32522 100644
--- a/ash/strings/ash_strings_mn.xtb
+++ b/ash/strings/ash_strings_mn.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Энэ харилцан үйлдлийн бүх үйл ажиллагаандаа хандах</translation>
 <translation id="1632985212731562677">Сэлгүүрийг Тохиргоо &gt; Хандалт хэсэгт идэвхгүй болгох боломжтой.</translation>
 <translation id="1654477262762802994">Дуут асуулга эхлүүлэх</translation>
+<translation id="1665244008632896072">Бараан горимыг унтраах/асаах. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> үлдсэн</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> цаг хэмжигч · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 хаяг: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Дэлгэцэн дээрх гарыг идэвхжүүлсэн байна</translation>
 <translation id="1761222317188459878">Сүлжээний холболтыг унтрааж/асаана уу. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Баруун тийш гүйлгэх</translation>
+<translation id="1776485282219497802">Бараан горим асаалттай байна.</translation>
 <translation id="1782199038061388045">орчуулга</translation>
 <translation id="181103072419391116">Дохионы хүч <ph name="SIGNAL_STRENGTH" />, таны администратор удирддаг</translation>
 <translation id="1812997170047690955">Миний дэлгэцэд юу байна вэ?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Гарын бүдүүвчийг солихын тулд <ph name="KEYBOARD_SHORTCUT" />-г дарна уу.</translation>
 <translation id="2501920221385095727">Холбогч түлхүүр</translation>
 <translation id="2509468283778169019">CAPS LOCK асаалттай байна</translation>
+<translation id="2517829236324128850">Бараан горимын тохиргоог харуулах</translation>
 <translation id="2542089167727451762">Профайл зургаа товшино уу</translation>
 <translation id="255671100581129685">Олон нийтийн харилцан үйлдэлд Google Туслах боломжгүй байна.</translation>
 <translation id="256712445991462162">суурилуулсан томруулагч</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">Remote Assistance ашиглан <ph name="HELPER_NAME" /> -тэй хамт өөрийн дэлгэцийн хяналтыг хуваалцах.</translation>
 <translation id="4430019312045809116">Хэмжээ</translation>
 <translation id="4450893287417543264">Дахиж бүү харуул</translation>
+<translation id="4458688154122353284">Дэлгэцийн үйлдэл бичихийг зогсоох</translation>
 <translation id="4477350412780666475">Дараагийн бичлэг</translation>
 <translation id="4477892968187500306">Энэ төхөөрөмж нь Google-н баталгаажуулаагүй аппыг агуулж болзошгүй.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium-н үйлдлийн систем</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />-г <ph name="ROUTE_TITLE" />-д дамжуулахаа зогсоох</translation>
 <translation id="5860033963881614850">Идэвхгүй байна</translation>
+<translation id="5887866489674258948">Бараан горим</translation>
 <translation id="5895138241574237353">Дахин асаах</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (эзэмшигч)</translation>
 <translation id="7647488630410863958">Мэдэгдлээ харахын тулд төхөөрөмжийн түгжээг тайлна уу</translation>
 <translation id="7649070708921625228">Тусламж</translation>
+<translation id="7653418004652142983">Асаах</translation>
 <translation id="7654687942625752712">Хэлсэн саналыг идэвхгүй болгохын тулд дууны түвшингийн хоёр товчлуурыг дараад хүлээнэ үү.</translation>
 <translation id="7658239707568436148">Болих</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">Google Туслах зөвхөн үндсэн профайлд боломжтой.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> болон <ph name="SECOND_PARENT_EMAIL" />-н удирддаг бүртгэл</translation>
 <translation id="7955885781510802139">Өндөр ялгаралтай горим</translation>
+<translation id="7977639574084142279">Унтраах</translation>
 <translation id="7977927628060636163">Мобайл сүлжээг хайж байна...</translation>
 <translation id="7980780401175799550">Chrome үйлдлийн системд шилжих шинэ аргуудыг туршиж үзээрэй</translation>
 <translation id="7982789257301363584">Сүлжээ</translation>
@@ -692,6 +699,7 @@
 <translation id="8936501819958976551">идэвхгүй болгосон</translation>
 <translation id="8938800817013097409">USB-C төхөөрөмж (ард талын баруун порт)</translation>
 <translation id="8940956008527784070">Цэнэг бага байна ( <ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Бараан горим унтраалттай байна.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" />-г ашиглаж байна</translation>
 <translation id="899350903320462459">Мэдэгдлийн үйлдлийг гүйцэтгэхийн тулд төхөөрөмжийн түгжээг <ph name="LOGIN_ID" />-р тайлна уу</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 68de049f..87aeaaa 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">या सेशनमध्ये तुमची सर्व अ‍ॅक्टिव्हिटी अ‍ॅक्सेस करा</translation>
 <translation id="1632985212731562677">सेटिंग्ज &gt; अ‍ॅक्सेसिबिलिटी मध्ये स्विच अ‍ॅक्सेस बंद केले जाऊ शकते.</translation>
 <translation id="1654477262762802994">व्हॉइस क्वेरी सुरू करा</translation>
+<translation id="1665244008632896072">गडद मोड टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> शिल्लक</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> टायमर· <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 पत्ता: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ऑन-स्क्रीन कीबोर्ड सक्षम</translation>
 <translation id="1761222317188459878">नेटवर्क कनेक्शन टॉगल करा. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">उजवीकडे स्क्रोल करा</translation>
+<translation id="1776485282219497802">गडद मोड सुरू आहे.</translation>
 <translation id="1782199038061388045">भाषांतर</translation>
 <translation id="181103072419391116">सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />, तुमच्या अ‍ॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले</translation>
 <translation id="1812997170047690955">माझ्या स्क्रीनवर काय आहे?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">कीबोर्डचा लेआउट स्विच करण्यासाठी <ph name="KEYBOARD_SHORTCUT" /> दाबा.</translation>
 <translation id="2501920221385095727">स्टिकी की</translation>
 <translation id="2509468283778169019">CAPS LOCK सुरू आहे</translation>
+<translation id="2517829236324128850">गडद मोड सेटिंग्ज दाखवा</translation>
 <translation id="2542089167727451762">तुमच्या प्रोफाइल इमेजवर टॅप करा</translation>
 <translation id="255671100581129685">सार्वजनिक सेशनमध्ये Google असिस्टंट उपलब्ध नाही.</translation>
 <translation id="256712445991462162">डॉक केलेले मॅग्निफायर</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">दूरस्त सहाय्याद्वारे <ph name="HELPER_NAME" /> सह आपल्या स्क्रीनचे नियंत्रण शेअर करत आहे.</translation>
 <translation id="4430019312045809116">व्हॉल्यूम</translation>
 <translation id="4450893287417543264">पुन्हा दाखवू नका</translation>
+<translation id="4458688154122353284">स्क्रीन रेकॉर्डिंग थांबवा</translation>
 <translation id="4477350412780666475">पुढील ट्रॅक</translation>
 <translation id="4477892968187500306">या डिव्हाइसवर कदाचित Google ने पडताळणी न केलेल्या ॲप्सचा समावेश असू शकतो.</translation>
 <translation id="4479639480957787382">इथरनेट</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> वर <ph name="ROUTE_TITLE" /> थांबवा</translation>
 <translation id="5860033963881614850">बंद</translation>
+<translation id="5887866489674258948">गडद मोड</translation>
 <translation id="5895138241574237353">रीस्टार्ट करा</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालक)</translation>
 <translation id="7647488630410863958">आपल्या सूचना पाहण्यासाठी डिव्हाइस अनलॉक करा</translation>
 <translation id="7649070708921625228">मदत</translation>
+<translation id="7653418004652142983">सुरू करा</translation>
 <translation id="7654687942625752712">वाचिक फीडबॅक बंद करण्यासाठी दोन्ही व्हॉल्युम की पाच सेकंदांसाठी दाबा आणि धरून ठेवा.</translation>
 <translation id="7658239707568436148">रद्द करा</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Assistant फक्त प्राथमिक प्रोफाइलवर उपलब्ध आहे.</translation>
 <translation id="79341161159229895">खाते <ph name="FIRST_PARENT_EMAIL" /> आणि <ph name="SECOND_PARENT_EMAIL" /> ने व्‍यवस्‍थापित केले आहे</translation>
 <translation id="7955885781510802139">उच्च काँट्रास्ट मोड</translation>
+<translation id="7977639574084142279">बंद करा</translation>
 <translation id="7977927628060636163">मोबाइल नेटवर्क शोधत आहे...</translation>
 <translation id="7980780401175799550">Chrome OS नेव्हिगेट करण्याचे नवीन मार्ग वापरून पहा</translation>
 <translation id="7982789257301363584">नेटवर्क</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">डीॲक्टिव्हेट केले आहे</translation>
 <translation id="8938800817013097409">USB-C डिव्‍हाइस (मागील बाजूचे उजवे पोर्ट)</translation>
 <translation id="8940956008527784070">बॅटरी कमी झाली (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">गडद मोड बंद आहे.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> वापरत आहे</translation>
 <translation id="899350903320462459">सूचनेशी संबंधित क्रिया पार पाडण्यासाठी डिव्हाइस <ph name="LOGIN_ID" /> म्हणून अनलॉक करा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index d245207..35930f06 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Akses semua aktiviti anda dalam sesi ini</translation>
 <translation id="1632985212731562677">Akses Suis boleh dilumpuhkan dalam Tetapan &gt; Kebolehaksesan.</translation>
 <translation id="1654477262762802994">Mulakan pertanyaan suara</translation>
+<translation id="1665244008632896072">Togol Mod Gelap. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Berbaki <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Pemasa <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Alamat IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Papan kekunci pada skrin didayakan</translation>
 <translation id="1761222317188459878">Togol sambungan rangkaian. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Tatal ke kanan</translation>
+<translation id="1776485282219497802">Mod Gelap dihidupkan.</translation>
 <translation id="1782199038061388045">terjemahan</translation>
 <translation id="181103072419391116">Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />, Diurus oleh Pentadbir anda</translation>
 <translation id="1812997170047690955">Apakah yang terdapat pada skrin saya?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Tekan <ph name="KEYBOARD_SHORTCUT" /> untuk menukar atur letak papan kekunci.</translation>
 <translation id="2501920221385095727">Kekunci lekit</translation>
 <translation id="2509468283778169019">Kekunci CAPS LOCK dihidupkan</translation>
+<translation id="2517829236324128850">Tunjukkan tetapan mod gelap</translation>
 <translation id="2542089167727451762">Ketik imej profil anda</translation>
 <translation id="255671100581129685">Google Assistant tidak tersedia dalam sesi awam.</translation>
 <translation id="256712445991462162">penggadang yang didokkan</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">Berkongsi kawalan skrin anda dengan <ph name="HELPER_NAME" /> melalui Bantuan Jauh.</translation>
 <translation id="4430019312045809116">Kelantangan</translation>
 <translation id="4450893287417543264">Jangan tunjukkan lagi</translation>
+<translation id="4458688154122353284">Hentikan rakaman skrin</translation>
 <translation id="4477350412780666475">Lagu Seterusnya</translation>
 <translation id="4477892968187500306">Peranti ini mungkin mengandungi apl yang belum disahkan oleh Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Hentikan <ph name="ROUTE_TITLE" /> pada <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Dimatikan</translation>
+<translation id="5887866489674258948">Mod Gelap</translation>
 <translation id="5895138241574237353">Mulakan Semula</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (pemilik)</translation>
 <translation id="7647488630410863958">Buka kunci peranti untuk melihat pemberitahuan anda</translation>
 <translation id="7649070708921625228">Bantuan</translation>
+<translation id="7653418004652142983">Hidup</translation>
 <translation id="7654687942625752712">Tekan dan tahan kedua-dua kekunci kelantangan selama lima saat untuk melumpuhkan maklum balas yang dituturkan.</translation>
 <translation id="7658239707568436148">Batal</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">Google Assistant hanya tersedia untuk profil utama.</translation>
 <translation id="79341161159229895">Akaun diurus oleh <ph name="FIRST_PARENT_EMAIL" /> dan <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Mod kontras tinggi</translation>
+<translation id="7977639574084142279">Mati</translation>
 <translation id="7977927628060636163">Mencari rangkaian mudah alih...</translation>
 <translation id="7980780401175799550">Cuba cara baharu untuk menavigasi OS Chrome</translation>
 <translation id="7982789257301363584">Rangkaian</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">dinyahaktifkan</translation>
 <translation id="8938800817013097409">Peranti USB-C (port kanan di belakang)</translation>
 <translation id="8940956008527784070">Bateri lemah (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Mod Gelap dimatikan.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Menggunakan <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Buka kunci peranti sebagai <ph name="LOGIN_ID" /> untuk melaksanakan tindakan pemberitahuan</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb
index 31e2ae8..723bd3e 100644
--- a/ash/strings/ash_strings_ne.xtb
+++ b/ash/strings/ash_strings_ne.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">यो सत्रअन्तर्गतका आफ्ना सबै क्रियाकलापमाथि पहुँच राख्नुहोस्</translation>
 <translation id="1632985212731562677">सेटिङ &gt; पहुँचमा गएर स्विचमार्फत पहुँच राख्ने सुविधा असक्षम पार्न सकिन्छ।</translation>
 <translation id="1654477262762802994">आवाजमार्फत गरिने क्वेरी सुरु गर्नुहोस्</translation>
+<translation id="1665244008632896072">अँध्यारो मोड अन/अफ गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> बाँकी छ</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> टाइमर · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ठेगाना: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">अन-स्क्रिन किबोर्ड सक्षम गरियो</translation>
 <translation id="1761222317188459878">नेटवर्क जडान टगल गर्नुहोस्। <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">दायाँतिर स्क्रोल गर्नुहोस्</translation>
+<translation id="1776485282219497802">अँध्यारो मोड अन छ।</translation>
 <translation id="1782199038061388045">अनुवाद</translation>
 <translation id="181103072419391116">सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />, तपाईंका प्रशासकले व्यवस्थित गर्नुभएको छ</translation>
 <translation id="1812997170047690955">मेरो स्क्रिनमा के छ?</translation>
@@ -139,6 +141,7 @@
 <translation id="2484513351006226581">किबोर्डको लेआउट स्विच गर्न <ph name="KEYBOARD_SHORTCUT" /> मा थिच्नुहोस्।</translation>
 <translation id="2501920221385095727">स्टिकी कुञ्जीहरू</translation>
 <translation id="2509468283778169019">CAPS LOCK खुला छ</translation>
+<translation id="2517829236324128850">अँध्यारो मोडसम्बन्धी सेटिङ देखाउनुहोस्</translation>
 <translation id="2542089167727451762">आफ्नो प्रोफाइल छविमा ट्याप गर्नुहोस्</translation>
 <translation id="255671100581129685">Google सहायक सार्वजनिक सत्रमा उपलब्ध छैन।</translation>
 <translation id="256712445991462162">डक गरिएको म्याग्निफायर</translation>
@@ -307,6 +310,7 @@
 <translation id="4421231901400348175">रिमोट सहायता मार्फत <ph name="HELPER_NAME" /> सँग तपाईँको स्क्रिनको नियन्त्रण साझेदारी गर्दै।</translation>
 <translation id="4430019312045809116">आयतन</translation>
 <translation id="4450893287417543264">फेरि नदेखाउनुहोस्</translation>
+<translation id="4458688154122353284">स्क्रिन रेकर्ड गर्ने कार्य रोक्नुहोस्</translation>
 <translation id="4477350412780666475">अर्को ट्र्याक</translation>
 <translation id="4477892968187500306">यो यन्त्रमा Google ले पुष्टि नगरेका एपहरू हुन सक्छन्।</translation>
 <translation id="4479639480957787382">इथरनेट</translation>
@@ -410,6 +414,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> मा <ph name="ROUTE_TITLE" /> बन्द गर्नुहोस्</translation>
 <translation id="5860033963881614850">बन्द</translation>
+<translation id="5887866489674258948">अँध्यारो मोड</translation>
 <translation id="5895138241574237353">पुन: शुरू गर्नुहोस्</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -561,6 +566,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (मालिक)</translation>
 <translation id="7647488630410863958">आफ्ना सूचनाहरू हेर्न यन्त्रलाई अनलक गर्नुहोस्</translation>
 <translation id="7649070708921625228">मद्दत</translation>
+<translation id="7653418004652142983">अन</translation>
 <translation id="7654687942625752712">बोलीसम्बन्धी प्रतिक्रियाहरू असक्षम पार्न दुवै भोल्युम कुञ्जीहरूलाई पाँच सेकेन्डसम्म थिचिराख्नुहोस्।</translation>
 <translation id="7658239707568436148">रद्द गर्नुहोस्</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -585,6 +591,7 @@
 <translation id="7933084174919150729">Google सहायक प्राथमिक प्रोफाइलहरूका लागि मात्र उपलब्ध छ।</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> र <ph name="SECOND_PARENT_EMAIL" /> ले व्यवस्थापन गरेको खाता</translation>
 <translation id="7955885781510802139">उच्च कन्ट्रास्ट मोड</translation>
+<translation id="7977639574084142279">अफ</translation>
 <translation id="7977927628060636163">मोबाइल नेटवर्कहरू खोज्दै...</translation>
 <translation id="7980780401175799550">Chrome OS नेभिगेसन गर्ने नयाँ तरिकाहरू प्रयोग गरी हेर्नुहोस्</translation>
 <translation id="7982789257301363584">सञ्जाल</translation>
@@ -684,6 +691,7 @@
 <translation id="8936501819958976551">निष्क्रिय पारियो</translation>
 <translation id="8938800817013097409">USB-C यन्त्र (पछाडिको दायाँ पोर्ट)</translation>
 <translation id="8940956008527784070">ब्याटरी कम (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">अँध्यारो मोड अफ छ।</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> प्रयोग गरिँदै</translation>
 <translation id="899350903320462459">सूचनासम्बन्धी कारबाही गर्न यन्त्रलाई <ph name="LOGIN_ID" /> का रूपमा अनलक गर्नुहोस्</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index e311143..302272c227 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Al je activiteit in deze sessie bekijken</translation>
 <translation id="1632985212731562677">Je kunt 'Toegang via schakelaar' uitschakelen via Instellingen &gt; Toegankelijkheid.</translation>
 <translation id="1654477262762802994">Een gesproken zoekopdracht starten</translation>
+<translation id="1665244008632896072">Donkere modus in-/uitschakelen. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> resterend</translation>
 <translation id="1698080062160024910">Timer van <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6-adres: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Schermtoetsenbord ingeschakeld</translation>
 <translation id="1761222317188459878">Netwerkverbinding schakelen. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Naar rechts scrollen</translation>
+<translation id="1776485282219497802">De donkere modus is ingeschakeld.</translation>
 <translation id="1782199038061388045">vertaling</translation>
 <translation id="181103072419391116">Signaalsterkte <ph name="SIGNAL_STRENGTH" />, beheerd door je beheerder</translation>
 <translation id="1812997170047690955">Wat wordt er op mijn scherm weergegeven?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Druk op <ph name="KEYBOARD_SHORTCUT" /> om van toetsenbordindeling te wisselen.</translation>
 <translation id="2501920221385095727">Plaktoetsen</translation>
 <translation id="2509468283778169019">CAPS LOCK is ingeschakeld</translation>
+<translation id="2517829236324128850">Instellingen voor donkere modus weergeven</translation>
 <translation id="2542089167727451762">Tik op je profielafbeelding</translation>
 <translation id="255671100581129685">De Google Assistent is niet beschikbaar in een openbare sessie.</translation>
 <translation id="256712445991462162">het vastgezette vergrootglas</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">De controle over je scherm wordt gedeeld met <ph name="HELPER_NAME" /> via externe ondersteuning.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Niet meer tonen</translation>
+<translation id="4458688154122353284">Schermopname stoppen</translation>
 <translation id="4477350412780666475">Volgend nummer</translation>
 <translation id="4477892968187500306">Dit apparaat bevat mogelijk apps die niet zijn geverifieerd door Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="ROUTE_TITLE" /> in <ph name="RECEIVER_NAME" /> stopzetten</translation>
 <translation id="5860033963881614850">Uit</translation>
+<translation id="5887866489674258948">Donkere modus</translation>
 <translation id="5895138241574237353">Opnieuw starten</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (eigenaar)</translation>
 <translation id="7647488630410863958">Ontgrendel het apparaat om je meldingen weer te geven</translation>
 <translation id="7649070708921625228">Hulp</translation>
+<translation id="7653418004652142983">Aan</translation>
 <translation id="7654687942625752712">Houd beide volumetoetsen gedurende vijf seconden ingedrukt om gesproken feedback uit te schakelen.</translation>
 <translation id="7658239707568436148">Annuleren</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">De Google Assistent is alleen beschikbaar voor het primaire profiel.</translation>
 <translation id="79341161159229895">Account wordt beheerd door <ph name="FIRST_PARENT_EMAIL" /> en <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Modus voor hoog contrast</translation>
+<translation id="7977639574084142279">Uit</translation>
 <translation id="7977927628060636163">Mobiele netwerken zoeken…</translation>
 <translation id="7980780401175799550">Probeer nieuwe manieren om te navigeren in Chrome OS</translation>
 <translation id="7982789257301363584">Netwerk</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">gedeactiveerd</translation>
 <translation id="8938800817013097409">USB-C-apparaat (poort rechts aan de achterkant)</translation>
 <translation id="8940956008527784070">Batterij is bijna leeg (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">De donkere modus is uitgeschakeld.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> gebruiken</translation>
 <translation id="899350903320462459">Ontgrendel het apparaat als <ph name="LOGIN_ID" /> om de meldingsactie uit te voeren</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index 26a10cf..e0168e6 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">se all aktiviteten din i denne økten</translation>
 <translation id="1632985212731562677">Brytertilgang kan slås av i Innstillinger &gt; Tilgjengelighet.</translation>
 <translation id="1654477262762802994">Start et talesøk</translation>
+<translation id="1665244008632896072">Slå av/på mørk modus. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> igjen</translation>
 <translation id="1698080062160024910">Nedtelling på <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6-adresse: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Skjermtastaturet er aktivert</translation>
 <translation id="1761222317188459878">Slå av/på nettverkstilkobling. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Rull til høyre</translation>
+<translation id="1776485282219497802">Mørk modus er på.</translation>
 <translation id="1782199038061388045">oversettelse</translation>
 <translation id="181103072419391116">Signalstyrke <ph name="SIGNAL_STRENGTH" /> – administreres av administratoren din</translation>
 <translation id="1812997170047690955">Hva er på skjermen?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Trykk på <ph name="KEYBOARD_SHORTCUT" /> for å bytte tastaturoppsett.</translation>
 <translation id="2501920221385095727">Trege taster</translation>
 <translation id="2509468283778169019">Caps Lock er på</translation>
+<translation id="2517829236324128850">Vis innstillinger for mørk modus</translation>
 <translation id="2542089167727451762">Trykk på profilbildet ditt</translation>
 <translation id="255671100581129685">Google-assistenten er ikke tilgjengelig i offentlige økter.</translation>
 <translation id="256712445991462162">den dokkede lupen</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Deler kontroll av skjermen med <ph name="HELPER_NAME" /> via fjernhjelp.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4450893287417543264">Ikke vis igjen</translation>
+<translation id="4458688154122353284">Avslutt skjermopptak</translation>
 <translation id="4477350412780666475">Neste spor</translation>
 <translation id="4477892968187500306">Denne enheten kan ha apper som ikke er verifisert av Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Stopp <ph name="ROUTE_TITLE" /> på <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Av</translation>
+<translation id="5887866489674258948">Mørk modus</translation>
 <translation id="5895138241574237353">Start på nytt</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (eier)</translation>
 <translation id="7647488630410863958">Lås opp enheten for å se varslene dine</translation>
 <translation id="7649070708921625228">Hjelp</translation>
+<translation id="7653418004652142983">På</translation>
 <translation id="7654687942625752712">Trykk og hold på begge volumknappene i fem sekunder for å slå av taletilbakemelding.</translation>
 <translation id="7658239707568436148">Avbryt</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google-assistenten er bare tilgjengelig for den primære profilen.</translation>
 <translation id="79341161159229895">Kontoen er administrert av <ph name="FIRST_PARENT_EMAIL" /> og <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Høykontrastmodus</translation>
+<translation id="7977639574084142279">Av</translation>
 <translation id="7977927628060636163">Søker etter mobilnettverk …</translation>
 <translation id="7980780401175799550">Prøv nye måter å navigere i Chrome OS på</translation>
 <translation id="7982789257301363584">Nettverk</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">deaktivert</translation>
 <translation id="8938800817013097409">USB-C-enhet (høyre port på baksiden)</translation>
 <translation id="8940956008527784070">Lavt batterinivå (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Mørk modus er av.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Bruker <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Lås opp enheten som <ph name="LOGIN_ID" /> for å utføre varselhandlingen</translation>
diff --git a/ash/strings/ash_strings_pa.xtb b/ash/strings/ash_strings_pa.xtb
index f74d17de..0f9b97d 100644
--- a/ash/strings/ash_strings_pa.xtb
+++ b/ash/strings/ash_strings_pa.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ਇਸ ਸ਼ੈਸ਼ਨ ਦੀ ਆਪਣੀ ਸਾਰੀ ਸਰਗਰਮੀ ਤੱਕ ਪਹੁੰਚ ਕਰੋ</translation>
 <translation id="1632985212731562677">ਸਵਿੱਚ ਪਹੁੰਚ ਨੂੰ ਸੈਟਿੰਗਾਂ &gt; ਪਹੁੰਚਯੋਗਤਾ ਵਿੱਚ ਜਾ ਕੇ ਬੰਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="1654477262762802994">ਅਵਾਜ਼ੀ ਪੁੱਛਗਿੱਛ ਸ਼ੁਰੂ ਕਰੋ</translation>
+<translation id="1665244008632896072">ਗੂੜ੍ਹੇ ਮੋਡ ਨੂੰ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ਬਾਕੀ</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> ਟਾਈਮਰ · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ਪਤਾ: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ਔਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਸਮਰਥਿਤ</translation>
 <translation id="1761222317188459878">ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਟੌਗਲ ਕਰੋ। <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">ਸੱਜੇ ਪਾਸੇ ਸਕ੍ਰੋਲ ਕਰੋ</translation>
+<translation id="1776485282219497802">ਗੂੜ੍ਹਾ ਮੋਡ ਚਾਲੂ ਹੈ।</translation>
 <translation id="1782199038061388045">ਅਨੁਵਾਦ</translation>
 <translation id="181103072419391116">ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ <ph name="SIGNAL_STRENGTH" />, ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="1812997170047690955">ਮੇਰੀ ਸਕ੍ਰੀਨ 'ਤੇ ਕਿਹੜੀ ਸਮੱਗਰੀ ਮੌਜੂਦ ਹੈ?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">ਕੀ-ਬੋਰਡ ਖਾਕਾ ਬਦਲਣ ਲਈ <ph name="KEYBOARD_SHORTCUT" /> ਦਬਾਓ।</translation>
 <translation id="2501920221385095727">ਸਟਿਕੀ ਕੁੰਜੀਆਂ</translation>
 <translation id="2509468283778169019">CAPS LOCK ਔਨ ਹੈ</translation>
+<translation id="2517829236324128850">ਗੂੜ੍ਹੇ ਮੋਡ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ</translation>
 <translation id="2542089167727451762">ਆਪਣੇ ਪ੍ਰੋਫਾਈਲ ਚਿੱਤਰ 'ਤੇ ਟੈਪ ਕਰੋ</translation>
 <translation id="255671100581129685">'Google ਅਸਿਸਟੈਂਟ' ਕਿਸੇ ਜਨਤਕ ਸੈਸ਼ਨ ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation>
 <translation id="256712445991462162">ਡੌਕ ਕੀਤਾ ਵਿਸਤਾਰਕ</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">ਰਿਮੋਟ ਸਹਾਇਤਾ ਰਾਹੀਂ <ph name="HELPER_NAME" /> ਨਾਲ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਦਾ ਨਿਯੰਤਰਣ ਸ਼ੇਅਰ ਕਰ ਰਿਹਾ ਹੈ।</translation>
 <translation id="4430019312045809116">ਵੌਲਿਊਮ</translation>
 <translation id="4450893287417543264">ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ</translation>
+<translation id="4458688154122353284">ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਬੰਦ ਕਰੋ</translation>
 <translation id="4477350412780666475">ਅਗਲਾ ਟਰੈਕ</translation>
 <translation id="4477892968187500306">ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਸ਼ਾਇਦ ਅਜਿਹੀਆਂ ਐਪਾਂ ਹੋਣ ਜਿਨ੍ਹਾਂ ਦੀ ਪੁਸ਼ਟੀ Google ਨੇ ਨਹੀਂ ਕੀਤੀ ਹੈ।</translation>
 <translation id="4479639480957787382">ਈਥਰਨੈਟ</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> 'ਤੇ <ph name="ROUTE_TITLE" /> ਨੂੰ ਬੰਦ ਕਰੋ</translation>
 <translation id="5860033963881614850">ਬੰਦ ਕਰੋ</translation>
+<translation id="5887866489674258948">ਗੂੜ੍ਹਾ ਮੋਡ</translation>
 <translation id="5895138241574237353">ਰੀਸਟਾਰਟ ਕਰੋ</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ਮਾਲਕ)</translation>
 <translation id="7647488630410863958">ਆਪਣੀਆਂ ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰੋ</translation>
 <translation id="7649070708921625228">ਸਹਾਇਤਾ</translation>
+<translation id="7653418004652142983">ਚਾਲੂ</translation>
 <translation id="7654687942625752712">ਬੋਲੀ ਪ੍ਰਤੀਕਰਮ ਬੰਦ ਕਰਨ ਲਈ ਦੋਵੇਂ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ 5 ਸਕਿੰਟ ਤੱਕ ਦਬਾਈ ਰੱਖੋ।</translation>
 <translation id="7658239707568436148">ਰੱਦ ਕਰੋ</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google ਅਸਿਸਟੈਂਟ ਸਿਰਫ਼ ਪ੍ਰਾਇਮਰੀ ਪ੍ਰੋਫਾਈਲ ਲਈ ਹੀ ਉਪਲਬਧ ਹੈ।</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> ਅਤੇ <ph name="SECOND_PARENT_EMAIL" /> ਵੱਲੋਂ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="7955885781510802139">ਉੱਚ-ਵਖਰੇਵਾਂ ਮੋਡ</translation>
+<translation id="7977639574084142279">ਬੰਦ</translation>
 <translation id="7977927628060636163">ਮੋਬਾਈਲ ਨੈੱਟਵਰਕਾਂ ਦੀ ਖੋਜ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation>
 <translation id="7980780401175799550">Chrome OS 'ਤੇ ਨੈਵੀਗੇਟ ਕਰਨ ਲਈ ਨਵੇਂ ਤਰੀਕੇ ਵਰਤ ਕੇ ਦੇਖੋ</translation>
 <translation id="7982789257301363584">ਨੈੱਟਵਰਕ</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">ਅਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="8938800817013097409">USB-C ਡੀਵਾਈਸ (ਪਿੱਛੇ ਸੱਜਾ ਪੋਰਟ)</translation>
 <translation id="8940956008527784070">ਬੈਟਰੀ ਘੱਟ (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">ਗੂੜ੍ਹਾ ਮੋਡ ਬੰਦ ਹੈ।</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ਦੀ ਵਰਤੋਂ ਹੋ ਰਹੀ ਹੈ</translation>
 <translation id="899350903320462459">ਸੂਚਨਾ 'ਤੇ ਕਾਰਵਾਈ ਕਰਨ ਲਈ <ph name="LOGIN_ID" /> ਵਜੋਂ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰੋ</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 24d229b..3873316 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">să acceseze toată activitatea din această sesiune;</translation>
 <translation id="1632985212731562677">Accesul prin comutare poate fi dezactivat din Setări &gt; Accesibilitate.</translation>
 <translation id="1654477262762802994">Începe o interogare vocală</translation>
+<translation id="1665244008632896072">Activează/dezactivează modul întunecat. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Timp rămas: <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Temporizator de <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Adresă IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Tastatură pe ecran activată</translation>
 <translation id="1761222317188459878">Comută conexiunea la rețea. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Derulează la dreapta</translation>
+<translation id="1776485282219497802">Modul întunecat este activat.</translation>
 <translation id="1782199038061388045">traducere</translation>
 <translation id="181103072419391116">Puterea semnalului: <ph name="SIGNAL_STRENGTH" />, gestionată de administratorul tău</translation>
 <translation id="1812997170047690955">Ce este pe ecranul meu?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Apasă <ph name="KEYBOARD_SHORTCUT" /> pentru a schimba aspectul tastaturii.</translation>
 <translation id="2501920221385095727">Taste adezive</translation>
 <translation id="2509468283778169019">Tasta CAPS LOCK este activată</translation>
+<translation id="2517829236324128850">Afișează setările modului întunecat</translation>
 <translation id="2542089167727451762">Atinge imaginea de profil</translation>
 <translation id="255671100581129685">Asistentul Google nu este disponibil într-o sesiune publică.</translation>
 <translation id="256712445991462162">lupa andocată</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">În prezent, <ph name="HELPER_NAME" /> îți poate controla ecranul prin Asistență la distanță.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4450893287417543264">Nu mai afișa</translation>
+<translation id="4458688154122353284">Oprește înregistrarea ecranului</translation>
 <translation id="4477350412780666475">Melodia următoare</translation>
 <translation id="4477892968187500306">Dispozitivul poate conține aplicații care nu au fost verificate de Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Sistemul de operare Chromium</translation>
 <translation id="5837036133683224804">Întrerupe <ph name="ROUTE_TITLE" /> pe <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Dezactivat</translation>
+<translation id="5887866489674258948">Mod întunecat</translation>
 <translation id="5895138241574237353">Reîncepe</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietar)</translation>
 <translation id="7647488630410863958">Deblochează dispozitivul pentru a vedea notificările</translation>
 <translation id="7649070708921625228">Ajutor</translation>
+<translation id="7653418004652142983">Activat</translation>
 <translation id="7654687942625752712">Apasă lung ambele taste de volum timp de cinci secunde ca să dezactivezi feedbackul rostit.</translation>
 <translation id="7658239707568436148">Anulează</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Asistentul Google este disponibil numai pentru profilul principal.</translation>
 <translation id="79341161159229895">Cont gestionat de <ph name="FIRST_PARENT_EMAIL" /> și de <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Modul de contrast ridicat</translation>
+<translation id="7977639574084142279">Dezactivat</translation>
 <translation id="7977927628060636163">Se caută rețele mobile…</translation>
 <translation id="7980780401175799550">Încearcă moduri noi de a naviga prin sistemul de operare Chrome</translation>
 <translation id="7982789257301363584">Rețea</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">dezactivată</translation>
 <translation id="8938800817013097409">Dispozitiv USB-C (portul din dreapta în spate)</translation>
 <translation id="8940956008527784070">Baterie slabă (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Modul întunecat este dezactivat.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Se folosește <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Deblochează dispozitivul ca <ph name="LOGIN_ID" /> pentru efectuarea acțiunii de notificare</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb
index 6020d0f..2c88a6f 100644
--- a/ash/strings/ash_strings_si.xtb
+++ b/ash/strings/ash_strings_si.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">මෙම සැසියෙහි ඔබේ සියලු ක්‍රියාකාරකම්වලට ප්‍රවේශය</translation>
 <translation id="1632985212731562677">ප්‍රවේශය මාරු කිරීම සැකසීම් &gt; ප්‍රවේශ්‍යතාව තුළ අබල කළ හැක.</translation>
 <translation id="1654477262762802994">හඬ විමසුමක් අරඹන්න</translation>
+<translation id="1665244008632896072">අඳුරු ප්‍රකාරය ටොගල කරන්න. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> ඉතිරිය</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> කාල ගණකය · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 ලිපිනය: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">තිරය මත යතුරු පුවරුව සබල කර ඇත</translation>
 <translation id="1761222317188459878">ජාල සබඳතාව ටොගල කරන්න. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">දකුණට අනුචලන කරන්න</translation>
+<translation id="1776485282219497802">අඳුරු ප්‍රකාරය ක්‍රියාත්මකයි.</translation>
 <translation id="1782199038061388045">පරිවර්තනය</translation>
 <translation id="181103072419391116">සංඥා ප්‍රබලතාව <ph name="SIGNAL_STRENGTH" />, ඔබේ පරිපාලකයා විසින් කළමනාකරණය කරයි</translation>
 <translation id="1812997170047690955">මගේ තිරය මත ඇත්තේ මොනවා ද?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">යතුරු පුවරු පිරිසැලසුම මාරු කිරීමට <ph name="KEYBOARD_SHORTCUT" /> ඔබන්න.</translation>
 <translation id="2501920221385095727">ඇලෙන යතුරු</translation>
 <translation id="2509468283778169019">කැප්ස් ලොක් සක්‍රීයයි</translation>
+<translation id="2517829236324128850">අඳුරු ප්‍රකාර සැකසීම් පෙන්වන්න</translation>
 <translation id="2542089167727451762">ඔබේ පැතිකඩ රූපයට තට්ටු කරන්න</translation>
 <translation id="255671100581129685">ප්‍රසිද්ධ සැසියකදී Google සහකරු නොලැබේ.</translation>
 <translation id="256712445991462162">ඩොක් කළ විශාලකය</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">දුරස්ථ සහයක මගින් ඔබේ තිරයේ පාලනය <ph name="HELPER_NAME" /> සමඟ බෙදාගනී.</translation>
 <translation id="4430019312045809116">ශබ්ද තීව්‍රතාවය</translation>
 <translation id="4450893287417543264">නැවත නොපෙන්වන්න</translation>
+<translation id="4458688154122353284">තිරය පටිගත කිරීම නවත්වන්න</translation>
 <translation id="4477350412780666475">ඊළඟ ඛණ්ඩය</translation>
 <translation id="4477892968187500306">මෙම උපාංගයට Google විසින් සත්‍යාපන නොකෙරුණු යෙදුම් අඩංගු විය හැක.</translation>
 <translation id="4479639480957787382">ඊදර්නෙට්</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> මත <ph name="ROUTE_TITLE" /> නවත්වන්න</translation>
 <translation id="5860033963881614850">අක්‍රීය</translation>
+<translation id="5887866489674258948">අඳුරු ප්‍රකාරය</translation>
 <translation id="5895138241574237353">යළි අරඹන්න</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> <ph name="MAIL" /></translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (හිමිකරු)</translation>
 <translation id="7647488630410863958">ඔබගේ දැනුම්දීම් බැලීම සඳහා උපාංගය අගුළු හරින්න</translation>
 <translation id="7649070708921625228">උදවු</translation>
+<translation id="7653418004652142983">ක්‍රියාත්මකයි</translation>
 <translation id="7654687942625752712">කථන ප්‍රතිපෝෂණය අබල කිරීම සඳහා ශබ්ද යතුරු දෙකම තත්පර 5 කට ඔබා සිටින්න.</translation>
 <translation id="7658239707568436148">අවලංගු කරන්න</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google සහායක මූලික පැතිකඩ සඳහා පමණක් ලබා ගත හැකිය.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> සහ <ph name="SECOND_PARENT_EMAIL" /> විසින් ගිණුම කළමනාකරණය කරයි</translation>
 <translation id="7955885781510802139">අධි අසමානතා ප්‍රකාරය</translation>
+<translation id="7977639574084142279">ක්‍රියාවිරහිතයි</translation>
 <translation id="7977927628060636163">ජංගම ජාල සඳහා සොයමින්...</translation>
 <translation id="7980780401175799550">Chrome OS මත සංචලන කිරීමට නව මාර්ග උත්සාහ කරන්න</translation>
 <translation id="7982789257301363584">ජාලය</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">ක්‍රියා විරහිතයි</translation>
 <translation id="8938800817013097409">USB-C උපාංගය (පසුපස දකුණු තොට)</translation>
 <translation id="8940956008527784070">බැටරි බලය අඩුය (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">අඳුරු ප්‍රකාරය ක්‍රියාවිරහිතයි.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> භාවිත කිරීම</translation>
 <translation id="899350903320462459">ක්‍රියාකාරකම් දැනුම්දීම ඉටු කිරීමට, <ph name="LOGIN_ID" /> ලෙස උපාංගය අගුළු අරින්න</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 2b8562c..331d8e6 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">dostop do vse dejavnosti v seji;</translation>
 <translation id="1632985212731562677">Stikalni dostop lahko onemogočite v »Nastavitve &gt; Dostopnost«.</translation>
 <translation id="1654477262762802994">Začetek glasovne poizvedbe</translation>
+<translation id="1665244008632896072">Preklop temnega načina. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Še <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Časovnik (<ph name="TOTAL_TIME" />) · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Naslov IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Zaslonska tipkovnica omogočena</translation>
 <translation id="1761222317188459878">Preklop omrežne povezave. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Pomik desno</translation>
+<translation id="1776485282219497802">Temni način je vklopljen.</translation>
 <translation id="1782199038061388045">prevod</translation>
 <translation id="181103072419391116">Moč signala je <ph name="SIGNAL_STRENGTH" />, upravlja ga vaš skrbnik</translation>
 <translation id="1812997170047690955">Kaj je na zaslonu?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Pritisnite <ph name="KEYBOARD_SHORTCUT" />, če želite preklopiti postavitev tipkovnice</translation>
 <translation id="2501920221385095727">Zaklepanje tipk</translation>
 <translation id="2509468283778169019">Tipka CAPS LOCK je vklopljena</translation>
+<translation id="2517829236324128850">Prikaz nastavitev temnega načina</translation>
 <translation id="2542089167727451762">Dotaknite se slike profila</translation>
 <translation id="255671100581129685">Pomočnik Google ni na voljo v javni seji.</translation>
 <translation id="256712445991462162">zasidrana lupa</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Deljenje nadzora nad zaslonom z osebo <ph name="HELPER_NAME" /> prek pomoči na daljavo.</translation>
 <translation id="4430019312045809116">Glasnost</translation>
 <translation id="4450893287417543264">Tega ne prikaži več</translation>
+<translation id="4458688154122353284">Ustavitev snemanja zaslona</translation>
 <translation id="4477350412780666475">Naslednja skladba</translation>
 <translation id="4477892968187500306">Ta naprava morda vsebuje aplikacije, ki jih ni preveril Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Ustavi zavihek <ph name="ROUTE_TITLE" /> v sprejemniku <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Izklopljeno</translation>
+<translation id="5887866489674258948">Temni način</translation>
 <translation id="5895138241574237353">Znova zaženi</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (lastnik)</translation>
 <translation id="7647488630410863958">Če si želite ogledati obvestila, odklenite napravo</translation>
 <translation id="7649070708921625228">Pomoč</translation>
+<translation id="7653418004652142983">Vklop</translation>
 <translation id="7654687942625752712">Če želite onemogočiti glasovni odziv, pridržite obe tipki za glasnost za pet sekund.</translation>
 <translation id="7658239707568436148">Prekliči</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Pomočnik Google je na voljo samo za primarni profil.</translation>
 <translation id="79341161159229895">Račun upravljata <ph name="FIRST_PARENT_EMAIL" /> in <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Visokokontrastni način</translation>
+<translation id="7977639574084142279">Izklop</translation>
 <translation id="7977927628060636163">Iskanje mobilnih omrežij ...</translation>
 <translation id="7980780401175799550">Preizkusite nove načine krmarjenja po Chromu OS</translation>
 <translation id="7982789257301363584">Omrežje</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">deaktivirano</translation>
 <translation id="8938800817013097409">Naprava USB-C (vrata desno zadaj)</translation>
 <translation id="8940956008527784070">Akumulator je skoraj prazen (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Temni način je izklopljen.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Uporaba tega: <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Odklenite napravo kot <ph name="LOGIN_ID" />, da izvedete dejanje v obvestilu</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index e653939..c1a0192 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Få tillgång till all aktivitet i sessionen</translation>
 <translation id="1632985212731562677">Brytarstyrning kan inaktiveras under Inställningar &gt; Tillgänglighet</translation>
 <translation id="1654477262762802994">Säg en sökfråga</translation>
+<translation id="1665244008632896072">Aktivera mörkt läge. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> kvar</translation>
 <translation id="1698080062160024910">Timer på <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6-adress: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Skärmen på tangentbordet har aktiverats</translation>
 <translation id="1761222317188459878">Aktivera och inaktivera nätverksanslutning. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Rulla åt höger</translation>
+<translation id="1776485282219497802">Mörkt läge är aktiverat.</translation>
 <translation id="1782199038061388045">Översätt</translation>
 <translation id="181103072419391116">Signalstyrka <ph name="SIGNAL_STRENGTH" />, hanteras av administratören</translation>
 <translation id="1812997170047690955">Vad visas på skärmen?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Tryck på <ph name="KEYBOARD_SHORTCUT" /> om du vill byta tangentbordslayout.</translation>
 <translation id="2501920221385095727">Tröga tangenter</translation>
 <translation id="2509468283778169019">CAPS LOCK är på</translation>
+<translation id="2517829236324128850">Visa inställningarna för mörkt läge</translation>
 <translation id="2542089167727451762">Tryck på profilbilden</translation>
 <translation id="255671100581129685">Google-assistenten är inte tillgänglig i en offentlig session.</translation>
 <translation id="256712445991462162">den dockade skärmförstoraren</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Dela kontroll över skärmen med <ph name="HELPER_NAME" /> via Fjärrhjälp.</translation>
 <translation id="4430019312045809116">Volym</translation>
 <translation id="4450893287417543264">Visa inte igen</translation>
+<translation id="4458688154122353284">Stoppa skärminspelningen</translation>
 <translation id="4477350412780666475">Nästa spår</translation>
 <translation id="4477892968187500306">Den här enheten kan innehålla appar som inte har verifierats av Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">Sluta casta <ph name="ROUTE_TITLE" /> till <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Av</translation>
+<translation id="5887866489674258948">Mörkt läge</translation>
 <translation id="5895138241574237353">Starta om</translation>
 <translation id="5901316534475909376">Skift+Escape</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ägare)</translation>
 <translation id="7647488630410863958">Lås upp enheten om du vill visa aviseringarna</translation>
 <translation id="7649070708921625228">Hjälp</translation>
+<translation id="7653418004652142983">På</translation>
 <translation id="7654687942625752712">Inaktivera talad feedback genom att hålla båda volymknapparna nedtryckta i fem sekunder.</translation>
 <translation id="7658239707568436148">Avbryt</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Endast den primära profilen har tillgång till Google Assistent.</translation>
 <translation id="79341161159229895">Kontot hanteras av <ph name="FIRST_PARENT_EMAIL" /> och <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Högkontrastläge</translation>
+<translation id="7977639574084142279">Av</translation>
 <translation id="7977927628060636163">Söker efter mobilnätverk …</translation>
 <translation id="7980780401175799550">Testa nya sätt att navigera i Chrome OS</translation>
 <translation id="7982789257301363584">Nätverk</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">inaktiverad</translation>
 <translation id="8938800817013097409">USB-C-enhet (högra porten på baksidan)</translation>
 <translation id="8940956008527784070">Låg batterinivå (<ph name="PERCENTAGE" /> %)</translation>
+<translation id="8958665219764428373">Mörkt läge har inaktiverats.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Använder <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Lås upp enheten som <ph name="LOGIN_ID" /> så att aviseringen kan göras</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 94ad9d6..1011061 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -43,7 +43,7 @@
 <translation id="1341651618736211726">கூடுதல் விருப்பங்கள்</translation>
 <translation id="1346748346194534595">வலது</translation>
 <translation id="1351937230027495976">மெனுவைச் சுருக்கு</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1391102559483454063">இயக்கப்பட்டுள்ளது</translation>
 <translation id="1419738280318246476">அறிவிப்பில் வந்த செயலைச் செய்வதற்கு, சாதனத்தைத் திறங்கள்</translation>
 <translation id="1420408895951708260">நைட் லைட்டை ஆன்/ஆஃப் செய்யும். <ph name="STATE_TEXT" /></translation>
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">இந்த அமர்விலுள்ள உங்கள் அனைத்துச் செயல்பாடுகளையும் அணுகுதல்</translation>
 <translation id="1632985212731562677">அமைப்புகள் &gt; அணுகலம்சங்கள் என்பதற்குச் சென்று சுவிட்ச் அணுகலை முடக்கலாம்.</translation>
 <translation id="1654477262762802994">குரல் வினவலைத் தொடங்கு</translation>
+<translation id="1665244008632896072">டார்க் பயன்முறைக்கு மாற்றும். <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> மணி நேரம்</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> டைமர் · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 முகவரி: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">ஆன்ஸ்க்ரீன் விசைப்பலகை இயக்கப்பட்டது</translation>
 <translation id="1761222317188459878">நெட்வொர்க் இணைப்பை நிலைமாற்றும். <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">வலப்புறம் செல்</translation>
+<translation id="1776485282219497802">டார்க் பயன்முறை இயக்கத்தில் உள்ளது.</translation>
 <translation id="1782199038061388045">மொழிபெயர்ப்பு</translation>
 <translation id="181103072419391116">சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />, உங்கள் நிர்வாகி நிர்வகிக்கிறார்</translation>
 <translation id="1812997170047690955">எனது திரையில் இருப்பவையா?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">விசைப்பலகைத் தளவமைப்பை மாற்ற, <ph name="KEYBOARD_SHORTCUT" /> விசையை அழுத்தவும்.</translation>
 <translation id="2501920221385095727">ஸ்டிக்கி விசைகள்</translation>
 <translation id="2509468283778169019">CAPS LOCK இயக்கத்தில்</translation>
+<translation id="2517829236324128850">டார்க் பயன்முறை அமைப்புகளைக் காட்டும்</translation>
 <translation id="2542089167727451762">உங்கள் சுயவிவரப் படத்தைத் தட்டவும்</translation>
 <translation id="255671100581129685">பொது அமர்வில் Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியாது.</translation>
 <translation id="256712445991462162">டாக் செய்யப்பட்ட பெரிதாக்கி</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">தொலைநிலை உதவி மூலம் <ph name="HELPER_NAME" /> உடன் உங்கள் திரையின் கட்டுப்பாட்டைப் பகிர்கிறது.</translation>
 <translation id="4430019312045809116">அளவு</translation>
 <translation id="4450893287417543264">மீண்டும் காட்டாதே</translation>
+<translation id="4458688154122353284">ஸ்கிரீனை ரெக்கார்டு செய்வதை நிறுத்து</translation>
 <translation id="4477350412780666475">அடுத்த டிராக்</translation>
 <translation id="4477892968187500306">Googleளால் சரிபார்க்கப்படாத ஆப்ஸ் இந்தச் சாதனத்தில் இருக்கக்கூடும்.</translation>
 <translation id="4479639480957787382">ஈத்தர்நெட்</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />க்கு <ph name="ROUTE_TITLE" />ஐ அனுப்புவதை நிறுத்து</translation>
 <translation id="5860033963881614850">ஆஃப்</translation>
+<translation id="5887866489674258948">டார்க் பயன்முறை</translation>
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (உரிமையாளர்)</translation>
 <translation id="7647488630410863958">அறிவிப்புகளைப் பார்க்க, சாதனத்தைத் திறக்கவும்</translation>
 <translation id="7649070708921625228">உதவி</translation>
+<translation id="7653418004652142983">இயக்கு</translation>
 <translation id="7654687942625752712">பேச்சுவடிவ கருத்தை முடக்க, ஐந்து வினாடிகளுக்கு இரண்டு ஒலியளவு விசைகளையும் அழுத்திப் பிடித்திருக்கவும்.</translation>
 <translation id="7658239707568436148">ரத்து செய்</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">முதன்மைச் சுயவிவரத்திற்கு மட்டுமே Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியும்.</translation>
 <translation id="79341161159229895">கணக்கை நிர்வகிப்பது: <ph name="FIRST_PARENT_EMAIL" /> மற்றும் <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">அதிக ஒளி மாறுபாட்டுப் பயன்முறை</translation>
+<translation id="7977639574084142279">ஆஃப்</translation>
 <translation id="7977927628060636163">மொபைல் நெட்வொர்க்குகளைத் தேடுகிறது...</translation>
 <translation id="7980780401175799550">Chrome OSஸை வழிசெலுத்த புதிய வழிகளைப் பயன்படுத்திப் பாருங்கள்</translation>
 <translation id="7982789257301363584">நெட்வொர்க்</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">முடக்கப்பட்டது</translation>
 <translation id="8938800817013097409">USB-C சாதனம் (பின்பக்கம் உள்ள வலது போர்ட்)</translation>
 <translation id="8940956008527784070">பேட்டரி குறைவு (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">டார்க் பயன்முறை முடக்கத்தில் உள்ளது.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> பயன்படுத்தப்படுகிறது</translation>
 <translation id="899350903320462459">அறிவிப்பில் வந்த செயலைச் செய்வதற்கு, சாதனத்தை <ph name="LOGIN_ID" /> ஆகத் திறக்கவும்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 408bb8b..8cf7bec 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -43,7 +43,7 @@
 <translation id="1341651618736211726">అతివ్యాప్తి అంశాలు</translation>
 <translation id="1346748346194534595">కుడి</translation>
 <translation id="1351937230027495976">మెనూను కుదించు</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1391102559483454063">ఆన్</translation>
 <translation id="1419738280318246476">నోటిఫికేషన్ చర్యను నిర్వహించడానికి పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="1420408895951708260">రాత్రి కాంతిని టోగుల్ చేయి. <ph name="STATE_TEXT" /></translation>
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">ఈ సెషన్‌లో మీ మొత్తం కార్యకలాపాన్ని యాక్సెస్ చేయండి</translation>
 <translation id="1632985212731562677">సెట్టింగ్‌లు &gt; యాక్సెసిబిలిటీలో స్విచ్ యాక్సెస్‌ను డిజేబుల్ చేయవచ్చు.</translation>
 <translation id="1654477262762802994">వాయిస్ ప్రశ్నను ప్రారంభించు</translation>
+<translation id="1665244008632896072">డార్క్ మోడ్‌ను టోగుల్ చేయి. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> మిగిలి ఉంది</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> టైమర్ · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 చిరునామా: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">స్క్రీన్‌పై కనిపించే కీబోర్డ్ ప్రారంభించబడింది</translation>
 <translation id="1761222317188459878">నెట్‌వర్క్ కనెక్షన్‌ను టోగుల్ చేయండి. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">కుడికి స్క్రోల్ చేయి</translation>
+<translation id="1776485282219497802">'డార్క్ మోడ్' ఆన్‌లో ఉంది.</translation>
 <translation id="1782199038061388045">అనువాదం</translation>
 <translation id="181103072419391116">సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />, మీ అడ్మినిస్ట్రేటర్ ద్వారా నిర్వహించబడుతుంది</translation>
 <translation id="1812997170047690955">నా స్క్రీన్‌పై ఏమి ఉన్నాయి?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">కీబోర్డ్ లేఅవుట్‌ను మార్చడానికి <ph name="KEYBOARD_SHORTCUT" />ని నొక్కండి.</translation>
 <translation id="2501920221385095727">స్టిక్కీ కీలు</translation>
 <translation id="2509468283778169019">CAPS LOCK ఆన్‌లో ఉంది</translation>
+<translation id="2517829236324128850">డార్క్ మోడ్ సెట్టింగ్‌లను చూపించు</translation>
 <translation id="2542089167727451762">మీ ప్రొఫైల్ చిత్రాన్ని నొక్కండి</translation>
 <translation id="255671100581129685">Google అసిస్టెంట్ పబ్లిక్ సెషన్‌లో అందుబాటులో లేదు.</translation>
 <translation id="256712445991462162">డాక్ చేసిన మాగ్నిఫైయర్</translation>
@@ -312,6 +315,7 @@
 <translation id="4421231901400348175">రిమోట్ సహాయం విధానంలో మీ స్క్రీన్ నియంత్రణ <ph name="HELPER_NAME" />కి భాగస్వామ్యం చేయబడుతోంది.</translation>
 <translation id="4430019312045809116">వాల్యూమ్</translation>
 <translation id="4450893287417543264">మళ్లీ చూపవద్దు</translation>
+<translation id="4458688154122353284">స్క్రీన్ రికార్డింగ్‌ను ఆపివేయి</translation>
 <translation id="4477350412780666475">తర్వాతి ట్రాక్</translation>
 <translation id="4477892968187500306">ఈ పరికరంలో Google ధృవీకరించని యాప్‌లు ఉండవచ్చు.</translation>
 <translation id="4479639480957787382">ఈథర్నెట్</translation>
@@ -416,6 +420,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" />లో <ph name="ROUTE_TITLE" /> ఆపివేయి</translation>
 <translation id="5860033963881614850">ఆఫ్ అయ్యింది</translation>
+<translation id="5887866489674258948">డార్క్ మోడ్</translation>
 <translation id="5895138241574237353">మళ్ళీ ప్రారంభించు</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (యజమాని)</translation>
 <translation id="7647488630410863958">మీ నోటిఫికేషన్‌లను వీక్షించడానికి పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="7649070708921625228">సహాయం</translation>
+<translation id="7653418004652142983">ఆన్ చేయి</translation>
 <translation id="7654687942625752712">ప్రసంగ రూప ప్రతిస్పందనను నిలిపివేయడానికి ఒకేసారి రెండు వాల్యూమ్ కీలను ఐదు సెకన్ల పాటు నొక్కి, పట్టుకోండి.</translation>
 <translation id="7658239707568436148">రద్దు చేయి</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">ప్రాథమిక ప్రొఫైల్‌కు మాత్రమే Google అసిస్టెంట్ అందుబాటులో ఉంటుంది.</translation>
 <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> మరియు <ph name="SECOND_PARENT_EMAIL" /> ద్వారా ఖాతా నిర్వహించబడుతోంది</translation>
 <translation id="7955885781510802139">అధిక-కాంట్రాస్ట్ మోడ్</translation>
+<translation id="7977639574084142279">ఆఫ్ చేయి</translation>
 <translation id="7977927628060636163">మొబైల్ నెట్‌వర్క్‌ల కోసం వెతుకుతోంది...</translation>
 <translation id="7980780401175799550">Chrome OSలో నావిగేట్ చేయడానికి కొత్త మార్గాలను ట్రై చేయండి</translation>
 <translation id="7982789257301363584">నెట్‌వర్క్</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">డీయాక్టివేట్ చేయబడింది</translation>
 <translation id="8938800817013097409">USB-C పరికరం (వెనుక భాగంలో కుడి పోర్ట్)</translation>
 <translation id="8940956008527784070">బ్యాటరీ తక్కువగా ఉంది (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">డార్క్ మోడ్ ఆఫ్‌లో ఉంది.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ఉపయోగిస్తోంది</translation>
 <translation id="899350903320462459">నోటిఫికేషన్ చర్యను నిర్వహించడానికి <ph name="LOGIN_ID" />గా పరికరాన్ని అన్‌లాక్ చేయండి</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 351f80fa..f61f34aa4 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">เข้าถึงกิจกรรมทั้งหมดของคุณในเซสชันนี้</translation>
 <translation id="1632985212731562677">ปิดใช้ "การเข้าถึงด้วยสวิตช์" ได้ในการตั้งค่า &gt; การช่วยเหลือพิเศษ</translation>
 <translation id="1654477262762802994">เริ่มการค้นหาด้วยเสียง</translation>
+<translation id="1665244008632896072">สลับโหมดมืด <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">ใช้ได้อีก <ph name="TIME" /></translation>
 <translation id="1698080062160024910">ตัวจับเวลา <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">ที่อยู่ IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">เปิดใช้แป้นพิมพ์บนหน้าจออยู่</translation>
 <translation id="1761222317188459878">เปิด/ปิดการเชื่อมต่อเครือข่าย <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">เลื่อนไปทางขวา</translation>
+<translation id="1776485282219497802">โหมดมืดเปิดอยู่</translation>
 <translation id="1782199038061388045">การแปล</translation>
 <translation id="181103072419391116">ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />, จัดการโดยผู้ดูแลระบบ</translation>
 <translation id="1812997170047690955">รายการที่อยู่ในหน้าจอของฉัน</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">กด <ph name="KEYBOARD_SHORTCUT" /> เพื่อสลับรูปแบบแป้นพิมพ์</translation>
 <translation id="2501920221385095727">คีย์ติดหนึบ</translation>
 <translation id="2509468283778169019">Caps Lock เปิดอยู่</translation>
+<translation id="2517829236324128850">แสดงการตั้งค่าโหมดมืด</translation>
 <translation id="2542089167727451762">แตะรูปโปรไฟล์</translation>
 <translation id="255671100581129685">Google Assistant ไม่พร้อมใช้งานในเซสชันสาธารณะ</translation>
 <translation id="256712445991462162">แว่นขยายหน้าจอบางส่วน</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">กำลังแชร์การควบคุมหน้าจอกับ <ph name="HELPER_NAME" /> ผ่านความช่วยเหลือระยะไกล</translation>
 <translation id="4430019312045809116">ระดับเสียง</translation>
 <translation id="4450893287417543264">ไม่ต้องแสดงอีก</translation>
+<translation id="4458688154122353284">หยุดการอัดหน้าจอ</translation>
 <translation id="4477350412780666475">แทร็กถัดไป</translation>
 <translation id="4477892968187500306">อุปกรณ์นี้อาจมีแอปที่ยังไม่ได้รับการยืนยันจาก Google</translation>
 <translation id="4479639480957787382">อีเทอร์เน็ต</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804">หยุด <ph name="ROUTE_TITLE" /> ใน<ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">ปิด</translation>
+<translation id="5887866489674258948">โหมดมืด</translation>
 <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (เจ้าของ)</translation>
 <translation id="7647488630410863958">ปลดล็อกอุปกรณ์เพื่อดูการแจ้งเตือน</translation>
 <translation id="7649070708921625228">ความช่วยเหลือ</translation>
+<translation id="7653418004652142983">เปิด</translation>
 <translation id="7654687942625752712">กดแป้นปรับระดับเสียงค้างไว้ 5 วินาทีเพื่อปิดใช้การอธิบายและอ่านออกเสียง</translation>
 <translation id="7658239707568436148">ยกเลิก</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Assistant ใช้งานได้กับโปรไฟล์หลักเท่านั้น</translation>
 <translation id="79341161159229895">บัญชีที่จัดการโดย <ph name="FIRST_PARENT_EMAIL" /> และ <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">โหมดคอนทราสต์สูง</translation>
+<translation id="7977639574084142279">ปิด</translation>
 <translation id="7977927628060636163">กำลังค้นหาเครือข่ายมือถือ...</translation>
 <translation id="7980780401175799550">ลองใช้วิธีใหม่ในการไปยังส่วนต่างๆ ของ Chrome OS</translation>
 <translation id="7982789257301363584">เครือข่าย</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">ปิดใช้งานอยู่</translation>
 <translation id="8938800817013097409">อุปกรณ์ USB-C (พอร์ตด้านหลังขวา)</translation>
 <translation id="8940956008527784070">แบตเตอรี่ต่ำ (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">โหมดมืดปิดอยู่</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">กำลังใช้<ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">ปลดล็อกอุปกรณ์โดยใช้ <ph name="LOGIN_ID" /> เพื่อดำเนินการแจ้งเตือน</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 021ebd67..38a6a37 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Bu oturumdaki tüm etkinliğinize erişme</translation>
 <translation id="1632985212731562677">Anahtar Erişimi, Ayarlar &gt; Erişilebilirlik'te devre dışı bırakılabilir.</translation>
 <translation id="1654477262762802994">Sesli sorgu başlat</translation>
+<translation id="1665244008632896072">Koyu Modu aç/kapat. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Kalan süre: <ph name="TIME" /></translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> zamanlayıcı· <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 adresi: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Dokunmatik klavye etkin</translation>
 <translation id="1761222317188459878">Ağ bağlantısını aç/kapat. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Sağa kaydır</translation>
+<translation id="1776485282219497802">Koyu Mod açık.</translation>
 <translation id="1782199038061388045">çeviri</translation>
 <translation id="181103072419391116"><ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, Yöneticiniz tarafından yönetiliyor</translation>
 <translation id="1812997170047690955">Ekranımda ne var?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Klavye düzenini değiştirmek için <ph name="KEYBOARD_SHORTCUT" /> tuşlarına basın.</translation>
 <translation id="2501920221385095727">Yapışkan tuşlar</translation>
 <translation id="2509468283778169019">CAPS LOCK açık</translation>
+<translation id="2517829236324128850">Koyu mod ayarlarını göster</translation>
 <translation id="2542089167727451762">Profil resminize dokunun</translation>
 <translation id="255671100581129685">Google Asistan, herkese açık oturumda kullanılamaz.</translation>
 <translation id="256712445991462162">yerleştirilmiş büyüteç</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Ekranınızın kontrolü, Uzaktan Yardım kullanılarak <ph name="HELPER_NAME" /> ile paylaşılıyor.</translation>
 <translation id="4430019312045809116">Ses</translation>
 <translation id="4450893287417543264">Bir daha gösterme</translation>
+<translation id="4458688154122353284">Ekran kaydını durdur</translation>
 <translation id="4477350412780666475">Sonraki Parça</translation>
 <translation id="4477892968187500306">Bu cihaz Google tarafından doğrulanmamış uygulamalar içerebilir.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="RECEIVER_NAME" /> adlı alıcıya <ph name="ROUTE_TITLE" /> yayınını durdur</translation>
 <translation id="5860033963881614850">Kapalı</translation>
+<translation id="5887866489674258948">Koyu Mod</translation>
 <translation id="5895138241574237353">Yeniden başlat</translation>
 <translation id="5901316534475909376">Üst Karakter+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -567,6 +572,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (cihaz sahibi)</translation>
 <translation id="7647488630410863958">Bildirimlerinizi görüntülemek için cihazınızın kilidini açın</translation>
 <translation id="7649070708921625228">Yardım</translation>
+<translation id="7653418004652142983">Açık</translation>
 <translation id="7654687942625752712">Sesli geri bildirimi beş saniyeliğine devre dışı bırakmak için her iki ses ayarı tuşunu basılı tutun.</translation>
 <translation id="7658239707568436148">İptal</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -591,6 +597,7 @@
 <translation id="7933084174919150729">Google Asistan yalnızca birincil profilde kullanılabilir.</translation>
 <translation id="79341161159229895">Hesap <ph name="FIRST_PARENT_EMAIL" /> ve <ph name="SECOND_PARENT_EMAIL" /> tarafından yönetiliyor</translation>
 <translation id="7955885781510802139">Yüksek kontrast modu</translation>
+<translation id="7977639574084142279">Kapalı</translation>
 <translation id="7977927628060636163">Mobil ağlar aranıyor...</translation>
 <translation id="7980780401175799550">Chrome OS'ta gezinmenin yeni yollarını deneyin</translation>
 <translation id="7982789257301363584">Ağ</translation>
@@ -691,6 +698,7 @@
 <translation id="8936501819958976551">devre dışı</translation>
 <translation id="8938800817013097409">USB-C cihaz (arkadaki sağ bağlantı noktası)</translation>
 <translation id="8940956008527784070">Pil gücü az (%<ph name="PERCENTAGE" />)</translation>
+<translation id="8958665219764428373">Koyu Mod kapalı.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> kullanılıyor</translation>
 <translation id="899350903320462459">Bildirim işlemi gerçekleştirmek için <ph name="LOGIN_ID" /> olarak cihazın kilidini açın</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 7d99978..290917e 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">мати доступ до всіх ваших дій у цьому сеансі</translation>
 <translation id="1632985212731562677">Щоб вимкнути кнопковий доступ, відкрийте "Налаштування" &gt; "Спеціальні можливості".</translation>
 <translation id="1654477262762802994">Ввести голосовий запит</translation>
+<translation id="1665244008632896072">Перемкнути темний режим. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Залишилося <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Таймер на <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Адреса IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Екранну клавіатуру ввімкнено</translation>
 <translation id="1761222317188459878">Увімкнути/вимкнути з’єднання з мережею. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Прокрутити праворуч</translation>
+<translation id="1776485282219497802">Темний режим увімкнено.</translation>
 <translation id="1782199038061388045">переклад</translation>
 <translation id="181103072419391116">Рівень сигналу – <ph name="SIGNAL_STRENGTH" />. Мережею керує адміністратор</translation>
 <translation id="1812997170047690955">Що на моєму екрані?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Натисніть комбінацію клавіш <ph name="KEYBOARD_SHORTCUT" />, щоб змінити розкладку клавіатури.</translation>
 <translation id="2501920221385095727">Залипання клавіш</translation>
 <translation id="2509468283778169019">Режим CAPS LOCK увімкнено</translation>
+<translation id="2517829236324128850">Показати налаштування темного режиму</translation>
 <translation id="2542089167727451762">Натисніть зображення профілю</translation>
 <translation id="255671100581129685">Google Асистент недоступний у сеансі для всіх.</translation>
 <translation id="256712445991462162">закріплену лупу</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Спільний доступ до екрана для користувача <ph name="HELPER_NAME" /> через віддалену допомогу.</translation>
 <translation id="4430019312045809116">Гучність</translation>
 <translation id="4450893287417543264">Більше не показувати</translation>
+<translation id="4458688154122353284">Зупинити запис екрана</translation>
 <translation id="4477350412780666475">Наступна композиція</translation>
 <translation id="4477892968187500306">На цьому пристрої можуть бути додатки, які не були перевірені Google.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">ОС Chromium</translation>
 <translation id="5837036133683224804">Зупинити трансляцію <ph name="ROUTE_TITLE" /> на пристрій "<ph name="RECEIVER_NAME" />"</translation>
 <translation id="5860033963881614850">Вимк.</translation>
+<translation id="5887866489674258948">Темний режим</translation>
 <translation id="5895138241574237353">Перезапустити</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (власник)</translation>
 <translation id="7647488630410863958">Розблокуйте пристрій, щоб переглянути сповіщення</translation>
 <translation id="7649070708921625228">Довідка</translation>
+<translation id="7653418004652142983">Увімкнено</translation>
 <translation id="7654687942625752712">Утримуйте обидві клавіші гучності впродовж п’яти секунд, щоб вимкнути голосові підказки.</translation>
 <translation id="7658239707568436148">Скасувати</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Асистент доступний лише в основному профілі.</translation>
 <translation id="79341161159229895">Обліковим записом керують <ph name="FIRST_PARENT_EMAIL" /> і <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Режим високого контрасту</translation>
+<translation id="7977639574084142279">Вимкнено</translation>
 <translation id="7977927628060636163">Пошук мобільних мереж…</translation>
 <translation id="7980780401175799550">Спробуйте нові способи навігації в ОС Chrome</translation>
 <translation id="7982789257301363584">Мережа</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">деактивовано</translation>
 <translation id="8938800817013097409">Пристрій, під’єднаний до порту USB-C (праворуч на задній панелі)</translation>
 <translation id="8940956008527784070">Низький заряд акумулятора (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Темний режим вимкнено.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Використовується: <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Щоб виконати дію зі сповіщенням, розблокуйте пристрій як <ph name="LOGIN_ID" /></translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index a9a9850..d0932e7 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Bu seansdagi barcha harakatlaringizga ruxsat</translation>
 <translation id="1632985212731562677">Switch Access funksiyasini Sozlamalar &gt; Maxsus imkoniyatlar orqali faolsizlantirish mumkin.</translation>
 <translation id="1654477262762802994">Ovozli qidiruvni boshlash</translation>
+<translation id="1665244008632896072">Tungi rejimga oʻrish. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478"><ph name="TIME" /> qoldi</translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> taymer · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 manzil: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Ekran klaviaturasi yoqildi</translation>
 <translation id="1761222317188459878">Tarmoq aloqasini yoqish/o‘chirish. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Oʻngga aylantirish</translation>
+<translation id="1776485282219497802">Tungi rejim yoniq.</translation>
 <translation id="1782199038061388045">tarjima</translation>
 <translation id="181103072419391116">Signal darajasi: <ph name="SIGNAL_STRENGTH" />, Administrator boshqaruvida</translation>
 <translation id="1812997170047690955">Ekranda nimalar bor?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Klaviatura terilmasini almashtirish uchun <ph name="KEYBOARD_SHORTCUT" /> tugmalarini bosing.</translation>
 <translation id="2501920221385095727">Yopishqoq tugmalar</translation>
 <translation id="2509468283778169019">CAPS LOCK yoniq</translation>
+<translation id="2517829236324128850">Tungi rejim sozlamalarini chiqarish</translation>
 <translation id="2542089167727451762">Profil rasmingizni bosing</translation>
 <translation id="255671100581129685">Google Assistent demo seansda ishlamaydi.</translation>
 <translation id="256712445991462162">mahkamlangan lupa</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Ekraningiz boshqaruvini masofaviy yordamchi orqali <ph name="HELPER_NAME" /> bilan ulashish.</translation>
 <translation id="4430019312045809116">Hajmi</translation>
 <translation id="4450893287417543264">Boshqa ko‘rsatilmasin</translation>
+<translation id="4458688154122353284">Ekranni yozib olishni toʻxtatish</translation>
 <translation id="4477350412780666475">Keyingi trek</translation>
 <translation id="4477892968187500306">Bu qurilmada Google tomonidan tekshirilmagan ilovalar boʻlishi mumkin.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium OS</translation>
 <translation id="5837036133683224804"><ph name="ROUTE_TITLE" /> <ph name="RECEIVER_NAME" /> qurilmasiga translatsiya qilinishi to‘xtatilsin</translation>
 <translation id="5860033963881614850">O‘chiq</translation>
+<translation id="5887866489674258948">Tungi rejim</translation>
 <translation id="5895138241574237353">Qayta ishga tushirish</translation>
 <translation id="5901316534475909376">Shift + Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (egasi)</translation>
 <translation id="7647488630410863958">Bildirishnomalarni ko‘rish uchun qurilmangizni qulfdan chiqaring</translation>
 <translation id="7649070708921625228">Yordam</translation>
+<translation id="7653418004652142983">Yoniq</translation>
 <translation id="7654687942625752712">Ekrandagi matn talaffuz qilinishi funksiyasini faolsizlantirish uchun 5 soniya har ikki tovush tugmasini bosib turing.</translation>
 <translation id="7658239707568436148">Bekor qilish</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google Assistent faqat asosiy profilda ishlaydi xolos.</translation>
 <translation id="79341161159229895">Hisobni <ph name="FIRST_PARENT_EMAIL" /> va <ph name="SECOND_PARENT_EMAIL" /> boshqaradi</translation>
 <translation id="7955885781510802139">Yuqori kontrastli rejim</translation>
+<translation id="7977639574084142279">Yoqilmagan</translation>
 <translation id="7977927628060636163">Mobil tarmoqlar qidirilmoqda...</translation>
 <translation id="7980780401175799550">Chrome OS tizimini yangi usulda boshqaring</translation>
 <translation id="7982789257301363584">Tarmoq</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">faolsizlantirildi</translation>
 <translation id="8938800817013097409">USB-C qurilma (orqa tomondagi o‘ng port)</translation>
 <translation id="8940956008527784070">Batareya zaryadi kam (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Tungi rejim faolsizlantirilgan.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590"><ph name="IME_NAME" /> ishlatilmoqda</translation>
 <translation id="899350903320462459">Bildirishnomani amalga oshirish uchun <ph name="LOGIN_ID" /> sifatida qurilmani qulfdan chiqaring</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index f6b4705..d626870 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">Truy cập vào tất cả hoạt động của bạn trong phiên này</translation>
 <translation id="1632985212731562677">Bạn có thể tắt tính năng Tiếp cận bằng công tắc trong phần Cài đặt &gt; Hỗ trợ tiếp cận.</translation>
 <translation id="1654477262762802994">Bắt đầu đặt câu hỏi bằng giọng nói</translation>
+<translation id="1665244008632896072">Bật/tắt chế độ tối. <ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">Còn <ph name="TIME" /></translation>
 <translation id="1698080062160024910">Đồng hồ hẹn giờ <ph name="TOTAL_TIME" /> · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">Địa chỉ IPv6: <ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">Đã bật bàn phím ảo</translation>
 <translation id="1761222317188459878">Bật/tắt kết nối mạng. <ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">Cuộn sang phải</translation>
+<translation id="1776485282219497802">Chế độ tối đang bật.</translation>
 <translation id="1782199038061388045">dịch</translation>
 <translation id="181103072419391116">Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />, Do quản trị viên của bạn quản lý</translation>
 <translation id="1812997170047690955">Trên màn hình của tôi có nội dung gì?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">Hãy nhấn <ph name="KEYBOARD_SHORTCUT" /> để chuyển bố cục bàn phím.</translation>
 <translation id="2501920221385095727">Phím cố định</translation>
 <translation id="2509468283778169019">Đang bật CAPS LOCK</translation>
+<translation id="2517829236324128850">Hiển thị các tùy chọn cài đặt chế độ tối</translation>
 <translation id="2542089167727451762">Nhấn vào ảnh hồ sơ của bạn</translation>
 <translation id="255671100581129685">Bạn không thể sử dụng Trợ lý Google trong phiên công khai.</translation>
 <translation id="256712445991462162">tính năng phóng to ở vị trí cố định</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">Chia sẻ quyền kiểm soát màn hình của bạn với <ph name="HELPER_NAME" /> qua Trợ giúp từ xa.</translation>
 <translation id="4430019312045809116">Âm lượng</translation>
 <translation id="4450893287417543264">Không hiển thị lại</translation>
+<translation id="4458688154122353284">Dừng ghi màn hình</translation>
 <translation id="4477350412780666475">Bản nhạc tiếp theo</translation>
 <translation id="4477892968187500306">Thiết bị này có thể chứa những ứng dụng mà Google chưa xác minh.</translation>
 <translation id="4479639480957787382">Ethernet</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Hệ điều hành Chromium</translation>
 <translation id="5837036133683224804">Dừng <ph name="ROUTE_TITLE" /> trên <ph name="RECEIVER_NAME" /></translation>
 <translation id="5860033963881614850">Tắt</translation>
+<translation id="5887866489674258948">Chế độ tối</translation>
 <translation id="5895138241574237353">Khởi động lại</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (chủ sở hữu)</translation>
 <translation id="7647488630410863958">Mở khóa thiết bị để xem thông báo của bạn</translation>
 <translation id="7649070708921625228">Trợ giúp</translation>
+<translation id="7653418004652142983">Đang bật</translation>
 <translation id="7654687942625752712">Nhấn và giữ cả hai phím âm lượng trong 5 giây để tắt tính năng phản hồi bằng giọng nói.</translation>
 <translation id="7658239707568436148">Hủy</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Bạn chỉ có thể sử dụng Trợ lý Google cho hồ sơ chính.</translation>
 <translation id="79341161159229895">Tài khoản được quản lý bởi <ph name="FIRST_PARENT_EMAIL" /> và <ph name="SECOND_PARENT_EMAIL" /></translation>
 <translation id="7955885781510802139">Chế độ tương phản cao</translation>
+<translation id="7977639574084142279">Đang tắt</translation>
 <translation id="7977927628060636163">Đang tìm kiếm mạng di động...</translation>
 <translation id="7980780401175799550">Thử những cách mới để thao tác trong Chrome OS</translation>
 <translation id="7982789257301363584">Mạng</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">đã tắt</translation>
 <translation id="8938800817013097409">Thiết bị USB-C (cổng bên phải ở phía sau)</translation>
 <translation id="8940956008527784070">Pin yếu (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">Chế độ tối đang tắt.</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">Đang dùng <ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">Mở khóa thiết bị bằng <ph name="LOGIN_ID" /> để thực hiện hành động thông báo</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 8f21da356..e50a1905 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">访问您在此次会话中的所有活动</translation>
 <translation id="1632985212731562677">您可在“设置”&gt;“无障碍”中停用“开关控制”功能。</translation>
 <translation id="1654477262762802994">启动语音查询</translation>
+<translation id="1665244008632896072">开启/关闭深色模式。<ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">电量尚余 <ph name="TIME" /></translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" />定时器   <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 地址:<ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">屏幕键盘已启用</translation>
 <translation id="1761222317188459878">切换网络连接设置。<ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">向右滚动</translation>
+<translation id="1776485282219497802">深色模式已开启。</translation>
 <translation id="1782199038061388045">翻译</translation>
 <translation id="181103072419391116">信号强度为 <ph name="SIGNAL_STRENGTH" />,由您的管理员管理</translation>
 <translation id="1812997170047690955">我屏幕上有什么内容?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">按 <ph name="KEYBOARD_SHORTCUT" />键可切换键盘布局。</translation>
 <translation id="2501920221385095727">粘滞键</translation>
 <translation id="2509468283778169019">CAPS LOCK 已打开</translation>
+<translation id="2517829236324128850">显示深色模式设置</translation>
 <translation id="2542089167727451762">请点按您的个人资料图片</translation>
 <translation id="255671100581129685">无法在公用自助终端使用 Google 助理。</translation>
 <translation id="256712445991462162">停靠的放大镜</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">正在通过远程协助与<ph name="HELPER_NAME" />共享您屏幕的控制权限。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4450893287417543264">不再显示</translation>
+<translation id="4458688154122353284">停止屏幕录制</translation>
 <translation id="4477350412780666475">下一曲</translation>
 <translation id="4477892968187500306">此设备可能包含未经 Google 验证的应用。</translation>
 <translation id="4479639480957787382">以太网</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium 操作系统</translation>
 <translation id="5837036133683224804">停止将“<ph name="ROUTE_TITLE" />”投射至“<ph name="RECEIVER_NAME" />”</translation>
 <translation id="5860033963881614850">关闭</translation>
+<translation id="5887866489674258948">深色模式</translation>
 <translation id="5895138241574237353">重新启动</translation>
 <translation id="5901316534475909376">Shift+Esc</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" />(所有者)</translation>
 <translation id="7647488630410863958">解锁设备即可查看您的通知</translation>
 <translation id="7649070708921625228">帮助</translation>
+<translation id="7653418004652142983">开启</translation>
 <translation id="7654687942625752712">同时按住两个音量键 5 秒钟,即可停用语音反馈。</translation>
 <translation id="7658239707568436148">取消</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">Google 助理仅适用于主要个人资料。</translation>
 <translation id="79341161159229895">该帐号由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation>
 <translation id="7955885781510802139">高对比度模式</translation>
+<translation id="7977639574084142279">关闭</translation>
 <translation id="7977927628060636163">正在搜索移动网络…</translation>
 <translation id="7980780401175799550">尝试使用新方式在 Chrome 操作系统中导航</translation>
 <translation id="7982789257301363584">网络</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">已停用</translation>
 <translation id="8938800817013097409">USB-C 设备(背面右侧端口)</translation>
 <translation id="8940956008527784070">电池电量不足 (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">深色模式已关闭。</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">目前使用的是“<ph name="IME_NAME" />”</translation>
 <translation id="899350903320462459">以 <ph name="LOGIN_ID" /> 身份解锁设备即可执行通知操作</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 5d27854d..c3ba15e 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -63,6 +63,7 @@
 <translation id="1589090746204042747">存取此工作階段的所有活動紀錄</translation>
 <translation id="1632985212731562677">您可在 [設定] &gt; [無障礙功能] 中停用「按鈕控制」。</translation>
 <translation id="1654477262762802994">開始語音查詢</translation>
+<translation id="1665244008632896072">切換「暗光模式」。<ph name="STATE_TEXT" /></translation>
 <translation id="1677472565718498478">電量尚餘 <ph name="TIME" /></translation>
 <translation id="1698080062160024910"><ph name="TOTAL_TIME" /> 計時器 · <ph name="LABEL" /></translation>
 <translation id="1698760176351776263">IPv6 位址:<ph name="ADDRESS" /></translation>
@@ -72,6 +73,7 @@
 <translation id="1747827819627189109">屏幕鍵盤已啟用</translation>
 <translation id="1761222317188459878">切換網絡連線。<ph name="STATE_TEXT" /></translation>
 <translation id="1771761307086386028">向右捲動</translation>
+<translation id="1776485282219497802">「暗光模式」已開啟。</translation>
 <translation id="1782199038061388045">翻譯</translation>
 <translation id="181103072419391116">訊號強度係 <ph name="SIGNAL_STRENGTH" />,由管理員管理</translation>
 <translation id="1812997170047690955">我嘅畫面上面有咩?</translation>
@@ -140,6 +142,7 @@
 <translation id="2484513351006226581">按下 <ph name="KEYBOARD_SHORTCUT" /> 鍵可切換鍵盤配置。</translation>
 <translation id="2501920221385095727">相黏鍵</translation>
 <translation id="2509468283778169019">大寫鍵已啟用</translation>
+<translation id="2517829236324128850">顯示暗光模式設定</translation>
 <translation id="2542089167727451762">輕按您的個人檔案圖片</translation>
 <translation id="255671100581129685">「Google 助理」不適用於公開工作階段。</translation>
 <translation id="256712445991462162">固定的放大鏡</translation>
@@ -311,6 +314,7 @@
 <translation id="4421231901400348175">透過「遠端協助」與 <ph name="HELPER_NAME" /> 共用螢幕控制權。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4450893287417543264">不要再顯示</translation>
+<translation id="4458688154122353284">停止螢幕錄影</translation>
 <translation id="4477350412780666475">下一首曲目</translation>
 <translation id="4477892968187500306">此裝置可能包含未經 Google 驗證的的應用程式。</translation>
 <translation id="4479639480957787382">以太網絡</translation>
@@ -415,6 +419,7 @@
 <translation id="5820394555380036790">Chromium 作業系統</translation>
 <translation id="5837036133683224804">停止喺<ph name="RECEIVER_NAME" />投放 <ph name="ROUTE_TITLE" /></translation>
 <translation id="5860033963881614850">關閉</translation>
+<translation id="5887866489674258948">暗光模式</translation>
 <translation id="5895138241574237353">重新啟動</translation>
 <translation id="5901316534475909376">Shift + Esc 鍵</translation>
 <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation>
@@ -566,6 +571,7 @@
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (擁有者)</translation>
 <translation id="7647488630410863958">解鎖裝置即可查看您的通知</translation>
 <translation id="7649070708921625228">說明</translation>
+<translation id="7653418004652142983">開啟</translation>
 <translation id="7654687942625752712">同時按住兩個音量鍵五秒,即可停用朗讀功能。</translation>
 <translation id="7658239707568436148">取消</translation>
 <translation id="7705524343798198388">VPN</translation>
@@ -590,6 +596,7 @@
 <translation id="7933084174919150729">「Google 助理」僅適用於主要設定檔。</translation>
 <translation id="79341161159229895">帳戶由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation>
 <translation id="7955885781510802139">高對比模式</translation>
+<translation id="7977639574084142279">關閉</translation>
 <translation id="7977927628060636163">正在搜尋流動網絡…</translation>
 <translation id="7980780401175799550">試用導覽 Chrome 作業系統的新方式</translation>
 <translation id="7982789257301363584">網絡</translation>
@@ -690,6 +697,7 @@
 <translation id="8936501819958976551">已停用</translation>
 <translation id="8938800817013097409">USB-C 裝置 (後方右側連接埠)</translation>
 <translation id="8940956008527784070">電池電量不足 (<ph name="PERCENTAGE" />%)</translation>
+<translation id="8958665219764428373">「暗光模式」已關閉。</translation>
 <translation id="8983038754672563810">HSPA</translation>
 <translation id="8990809378771970590">正在使用<ph name="IME_NAME" /></translation>
 <translation id="899350903320462459">以 <ph name="LOGIN_ID" /> 身份解鎖裝置即可執行有關通知的動作</translation>
diff --git a/base/sampling_heap_profiler/sampling_heap_profiler_unittest.cc b/base/sampling_heap_profiler/sampling_heap_profiler_unittest.cc
index c67caa8..0fd0bc0 100644
--- a/base/sampling_heap_profiler/sampling_heap_profiler_unittest.cc
+++ b/base/sampling_heap_profiler/sampling_heap_profiler_unittest.cc
@@ -270,7 +270,13 @@
   WaitableEvent* event_;
 };
 
-TEST_F(SamplingHeapProfilerTest, StartStop) {
+// Flaky on Mac. crbug.com/1116543
+#if defined(OS_MAC)
+#define MAYBE_StartStop DISABLED_StartStop
+#else
+#define MAYBE_StartStop StartStop
+#endif
+TEST_F(SamplingHeapProfilerTest, MAYBE_StartStop) {
   auto* profiler = SamplingHeapProfiler::Get();
   EXPECT_EQ(0, GetRunningSessionsCount());
   profiler->Start();
diff --git a/base/threading/hang_watcher_unittest.cc b/base/threading/hang_watcher_unittest.cc
index 0661751..c88be8c 100644
--- a/base/threading/hang_watcher_unittest.cc
+++ b/base/threading/hang_watcher_unittest.cc
@@ -567,7 +567,8 @@
   }
 }
 
-TEST_F(HangWatcherSnapshotTest, HungThreadIDs) {
+// Disabled for being flaky. crbug.com/1078828
+TEST_F(HangWatcherSnapshotTest, DISABLED_HungThreadIDs) {
   // During hang capture the list of hung threads should be populated.
   hang_watcher_.SetOnHangClosureForTesting(base::BindLambdaForTesting([this]() {
     EXPECT_EQ(hang_watcher_.GrabWatchStateSnapshotForTesting()
diff --git a/base/trace_event/heap_profiler_allocation_context_tracker.cc b/base/trace_event/heap_profiler_allocation_context_tracker.cc
index 8e8bec8a..28fd0646 100644
--- a/base/trace_event/heap_profiler_allocation_context_tracker.cc
+++ b/base/trace_event/heap_profiler_allocation_context_tracker.cc
@@ -26,7 +26,7 @@
 #include "base/trace_event/cfi_backtrace_android.h"
 #endif
 
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 #include <sys/prctl.h>
 #endif
 
@@ -62,7 +62,7 @@
 // are used to tag allocations even after the thread dies.
 const char* GetAndLeakThreadName() {
   char name[16];
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
   // If the thread name is not set, try to get it from prctl. Thread name might
   // not be set in cases where the thread started before heap profiling was
   // enabled.
@@ -70,7 +70,7 @@
   if (!err) {
     return strdup(name);
   }
-#endif  // defined(OS_LINUX) || defined(OS_ANDROID)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 
   // Use tid if we don't have a thread name.
   snprintf(name, sizeof(name), "%lu",
diff --git a/base/trace_event/malloc_dump_provider.h b/base/trace_event/malloc_dump_provider.h
index 70c72fc..39f85832 100644
--- a/base/trace_event/malloc_dump_provider.h
+++ b/base/trace_event/malloc_dump_provider.h
@@ -11,8 +11,8 @@
 #include "base/trace_event/memory_dump_provider.h"
 #include "build/build_config.h"
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_WIN) || \
-    defined(OS_MAC)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_WIN) || defined(OS_MAC)
 #define MALLOC_MEMORY_TRACING_SUPPORTED
 #endif
 
diff --git a/base/trace_event/thread_instruction_count.cc b/base/trace_event/thread_instruction_count.cc
index 648a78d..23aa68f 100644
--- a/base/trace_event/thread_instruction_count.cc
+++ b/base/trace_event/thread_instruction_count.cc
@@ -11,18 +11,18 @@
 #include "base/threading/thread_local_storage.h"
 #include "build/build_config.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include <linux/perf_event.h>
 #include <sys/syscall.h>
 #include <unistd.h>
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 namespace base {
 namespace trace_event {
 
 namespace {
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 // Special constants used for counter FD states.
 constexpr int kPerfFdDisabled = -2;
@@ -80,25 +80,25 @@
   return fd;
 }
 
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 }  // namespace
 
 bool ThreadInstructionCount::IsSupported() {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // If we can't initialize the counter FD, mark as disabled.
   int counter_fd = InstructionCounterFdForCurrentThread();
   if (counter_fd <= 0)
     return false;
 
   return true;
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
   return false;
 }
 
 ThreadInstructionCount ThreadInstructionCount::Now() {
   DCHECK(IsSupported());
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   int fd = InstructionCounterFdForCurrentThread();
   if (fd <= 0)
     return ThreadInstructionCount();
@@ -111,7 +111,7 @@
   return ThreadInstructionCount(instructions);
 #else
   return ThreadInstructionCount();
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 }
 
 }  // namespace trace_event
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 681299a1..f5860f3 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-0.20200814.1.1
+0.20200814.3.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 681299a1..f5860f3 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-0.20200814.1.1
+0.20200814.3.1
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 3b7776d..474cc05 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -1,5 +1,5 @@
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
+# Copyright 2014 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("//build/config/sanitizers/sanitizers.gni")
 import("//gpu/vulkan/features.gni")
@@ -175,6 +175,8 @@
     "metrics/frame_sequence_tracker.h",
     "metrics/frame_sequence_tracker_collection.cc",
     "metrics/frame_sequence_tracker_collection.h",
+    "metrics/jank_metrics.cc",
+    "metrics/jank_metrics.h",
     "metrics/latency_ukm_reporter.cc",
     "metrics/latency_ukm_reporter.h",
     "metrics/lcd_text_metrics_reporter.cc",
@@ -675,6 +677,7 @@
     "metrics/events_metrics_manager_unittest.cc",
     "metrics/frame_sequence_metrics_unittest.cc",
     "metrics/frame_sequence_tracker_unittest.cc",
+    "metrics/jank_metrics_unittest.cc",
     "metrics/video_playback_roughness_reporter_unittest.cc",
     "mojo_embedder/async_layer_tree_frame_sink_unittest.cc",
     "paint/clear_for_opaque_raster_unittest.cc",
diff --git a/cc/debug/debug_colors.cc b/cc/debug/debug_colors.cc
index 0faf114..ef1e92b5 100644
--- a/cc/debug/debug_colors.cc
+++ b/cc/debug/debug_colors.cc
@@ -338,6 +338,7 @@
     case LCDTextDisallowedReason::kNonIntegralYOffset:
       return SkColorSetARGB(96, 255, 0, 128);
     case LCDTextDisallowedReason::kWillChangeTransform:
+    case LCDTextDisallowedReason::kTransformAnimation:
       return SkColorSetARGB(96, 128, 0, 255);
     case LCDTextDisallowedReason::kPixelOrColorEffect:
       return SkColorSetARGB(96, 0, 128, 0);
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index 0baee75..a5442b6 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -4,6 +4,9 @@
 
 #include "cc/layers/picture_layer.h"
 
+#include <memory>
+#include <utility>
+
 #include "base/auto_reset.h"
 #include "base/debug/crash_logging.h"
 #include "base/debug/dump_without_crashing.h"
@@ -58,8 +61,6 @@
   DropRecordingSourceContentIfInvalid();
 
   layer_impl->SetNearestNeighbor(picture_layer_inputs_.nearest_neighbor);
-  layer_impl->SetUseTransformedRasterization(
-      ShouldUseTransformedRasterization());
   layer_impl->set_gpu_raster_max_texture_size(
       layer_tree_host()->device_viewport_rect().size());
   layer_impl->SetIsBackdropFilterMask(is_backdrop_filter_mask());
@@ -212,14 +213,6 @@
   SetNeedsCommit();
 }
 
-void PictureLayer::SetTransformedRasterizationAllowed(bool allowed) {
-  if (picture_layer_inputs_.transformed_rasterization_allowed == allowed)
-    return;
-
-  picture_layer_inputs_.transformed_rasterization_allowed = allowed;
-  SetNeedsCommit();
-}
-
 bool PictureLayer::HasDrawableContent() const {
   return picture_layer_inputs_.client && Layer::HasDrawableContent();
 }
@@ -286,38 +279,6 @@
   }
 }
 
-bool PictureLayer::ShouldUseTransformedRasterization() const {
-  if (!picture_layer_inputs_.transformed_rasterization_allowed)
-    return false;
-
-  const TransformTree& transform_tree =
-      layer_tree_host()->property_trees()->transform_tree;
-  DCHECK(!transform_tree.needs_update());
-  auto* transform_node = transform_tree.Node(transform_tree_index());
-  DCHECK(transform_node);
-  // TODO(pdr): This is a workaround for https://crbug.com/708951 to avoid
-  // crashing when there's no transform node. This workaround should be removed.
-  if (!transform_node)
-    return false;
-
-  if (transform_node->to_screen_is_potentially_animated)
-    return false;
-
-  const gfx::Transform& to_screen =
-      transform_tree.ToScreen(transform_tree_index());
-  if (!to_screen.IsScaleOrTranslation())
-    return false;
-
-  float origin_x =
-      to_screen.matrix().getFloat(0, 3) + offset_to_transform_parent().x();
-  float origin_y =
-      to_screen.matrix().getFloat(1, 3) + offset_to_transform_parent().y();
-  if (origin_x - floorf(origin_x) == 0.f && origin_y - floorf(origin_y) == 0.f)
-    return false;
-
-  return true;
-}
-
 const DisplayItemList* PictureLayer::GetDisplayItemList() {
   return picture_layer_inputs_.display_list.get();
 }
diff --git a/cc/layers/picture_layer.h b/cc/layers/picture_layer.h
index 8fdfba82..878e287 100644
--- a/cc/layers/picture_layer.h
+++ b/cc/layers/picture_layer.h
@@ -5,6 +5,7 @@
 #ifndef CC_LAYERS_PICTURE_LAYER_H_
 #define CC_LAYERS_PICTURE_LAYER_H_
 
+#include <memory>
 #include <vector>
 
 #include "cc/base/devtools_instrumentation.h"
@@ -32,11 +33,6 @@
     return picture_layer_inputs_.nearest_neighbor;
   }
 
-  void SetTransformedRasterizationAllowed(bool allowed);
-  bool transformed_rasterization_allowed() const {
-    return picture_layer_inputs_.transformed_rasterization_allowed;
-  }
-
   void SetIsBackdropFilterMask(bool is_backdrop_filter_mask);
   bool is_backdrop_filter_mask() const {
     return picture_layer_inputs_.is_backdrop_filter_mask;
@@ -69,7 +65,6 @@
 
     ContentLayerClient* client = nullptr;
     bool nearest_neighbor = false;
-    bool transformed_rasterization_allowed = false;
     bool is_backdrop_filter_mask = false;
     scoped_refptr<DisplayItemList> display_list;
     base::Optional<gfx::Size> directly_composited_image_size = base::nullopt;
@@ -91,8 +86,6 @@
 
   void DropRecordingSourceContentIfInvalid();
 
-  bool ShouldUseTransformedRasterization() const;
-
   std::unique_ptr<RecordingSource> recording_source_;
   devtools_instrumentation::
       ScopedLayerObjectTracker instrumentation_object_tracker_;
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 42f33bc..bb412bf 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -98,7 +98,6 @@
       was_screen_space_transform_animating_(false),
       only_used_low_res_last_append_quads_(false),
       nearest_neighbor_(false),
-      use_transformed_rasterization_(false),
       lcd_text_disallowed_reason_(LCDTextDisallowedReason::kNone),
       directly_composited_image_size_(base::nullopt),
       directly_composited_image_initial_raster_scale_(0.f),
@@ -154,7 +153,6 @@
   layer_impl->twin_layer_ = this;
 
   layer_impl->SetNearestNeighbor(nearest_neighbor_);
-  layer_impl->SetUseTransformedRasterization(use_transformed_rasterization_);
   layer_impl->SetDirectlyCompositedImageSize(directly_composited_image_size_);
   layer_impl->SetIsBackdropFilterMask(is_backdrop_filter_mask_);
 
@@ -814,7 +812,8 @@
   }
 }
 
-bool PictureLayerImpl::UpdateCanUseLCDText() {
+bool PictureLayerImpl::UpdateCanUseLCDText(
+    bool raster_translation_aligns_pixels) {
   // If we have pending/active trees, the active tree doesn't update lcd text
   // status but copies it from the pending tree.
   if (!layer_tree_impl()->IsSyncTree())
@@ -824,7 +823,8 @@
   if (!can_use_lcd_text())
     return false;
 
-  auto new_lcd_text_disallowed_reason = ComputeLCDTextDisallowedReason();
+  auto new_lcd_text_disallowed_reason =
+      ComputeLCDTextDisallowedReason(raster_translation_aligns_pixels);
   if (lcd_text_disallowed_reason_ == new_lcd_text_disallowed_reason)
     return false;
 
@@ -832,8 +832,8 @@
   return true;
 }
 
-LCDTextDisallowedReason PictureLayerImpl::ComputeLCDTextDisallowedReason()
-    const {
+LCDTextDisallowedReason PictureLayerImpl::ComputeLCDTextDisallowedReason(
+    bool raster_translation_aligns_pixels) const {
   if (layer_tree_impl()->settings().layers_always_allowed_lcd_text)
     return LCDTextDisallowedReason::kNone;
   if (!layer_tree_impl()->settings().can_use_lcd_text)
@@ -844,22 +844,24 @@
     return LCDTextDisallowedReason::kContentsNotOpaque;
   }
 
-  if (!use_transformed_rasterization_) {
-    if (!GetTransformTree()
-             .Node(transform_tree_index())
-             ->node_and_ancestors_have_only_integer_translation)
-      return LCDTextDisallowedReason::kNonIntegralTranslation;
+  // If raster translation aligns pixels, we can ignore fractional layer offset
+  // and transform for LCD text.
+  if (!raster_translation_aligns_pixels) {
     if (static_cast<int>(offset_to_transform_parent().x()) !=
         offset_to_transform_parent().x())
       return LCDTextDisallowedReason::kNonIntegralXOffset;
     if (static_cast<int>(offset_to_transform_parent().y()) !=
         offset_to_transform_parent().y())
       return LCDTextDisallowedReason::kNonIntegralYOffset;
+    return LCDTextDisallowedReason::kNonIntegralTranslation;
   }
 
   if (has_will_change_transform_hint())
     return LCDTextDisallowedReason::kWillChangeTransform;
 
+  if (screen_space_transform_is_animating())
+    return LCDTextDisallowedReason::kTransformAnimation;
+
   EffectNode* effect_node = GetEffectTree().Node(effect_tree_index());
   if (effect_node->node_or_ancestor_has_filters)
     return LCDTextDisallowedReason::kPixelOrColorEffect;
@@ -867,6 +869,13 @@
   return LCDTextDisallowedReason::kNone;
 }
 
+LCDTextDisallowedReason
+PictureLayerImpl::ComputeLCDTextDisallowedReasonForTesting() const {
+  gfx::Vector2dF raster_translation;
+  return ComputeLCDTextDisallowedReason(
+      CalculateRasterTranslation(raster_translation));
+}
+
 void PictureLayerImpl::NotifyTileStateChanged(const Tile* tile) {
   if (layer_tree_impl()->IsActiveTree())
     damage_rect_.Union(tile->enclosing_layer_rect());
@@ -1072,14 +1081,6 @@
   NoteLayerPropertyChanged();
 }
 
-void PictureLayerImpl::SetUseTransformedRasterization(bool use) {
-  if (use_transformed_rasterization_ == use)
-    return;
-
-  use_transformed_rasterization_ = use;
-  NoteLayerPropertyChanged();
-}
-
 void PictureLayerImpl::SetDirectlyCompositedImageSize(
     base::Optional<gfx::Size> size) {
   if (directly_composited_image_size_ == size)
@@ -1193,22 +1194,31 @@
 }
 
 void PictureLayerImpl::UpdateTilingsForRasterScaleAndTranslation(
-    bool adjusted_raster_scale) {
+    bool has_adjusted_raster_scale) {
   PictureLayerTiling* high_res =
       tilings_->FindTilingWithScaleKey(raster_contents_scale_);
 
-  gfx::Vector2dF raster_translation =
-      CalculateRasterTranslation(raster_contents_scale_);
-  bool can_use_lcd_text_changed = UpdateCanUseLCDText();
+  gfx::Vector2dF raster_translation;
+  bool raster_translation_aligns_pixels =
+      CalculateRasterTranslation(raster_translation);
+  bool can_use_lcd_text_changed =
+      UpdateCanUseLCDText(raster_translation_aligns_pixels);
   if (high_res) {
-    if (layer_tree_impl()->IsSyncTree() &&
-        (high_res->raster_transform().translation() != raster_translation ||
-         can_use_lcd_text_changed)) {
-      // We should recreate the high res tiling with the new raster translation
-      // and lcd text, which is for the sync tree only to avoid flickering.
+    bool raster_translation_is_not_ideal =
+        high_res->raster_transform().translation() != raster_translation;
+    // We should recreate the high res tiling with the new raster translation
+    // and lcd text, which is for the sync tree only to avoid flickering.
+    bool should_recreate_high_res =
+        layer_tree_impl()->IsSyncTree() &&
+        (raster_translation_is_not_ideal || can_use_lcd_text_changed) &&
+        // Keep the non-ideal raster translation unchanged for transform
+        // animations to avoid re-rasterization during animation.
+        !draw_properties().screen_space_transform_is_animating &&
+        !has_will_change_transform_hint();
+    if (should_recreate_high_res) {
       tilings_->Remove(high_res);
       high_res = nullptr;
-    } else if (!adjusted_raster_scale) {
+    } else if (!has_adjusted_raster_scale) {
       // Nothing changed, no need to update tilings.
       DCHECK_EQ(HIGH_RESOLUTION, high_res->resolution());
       SanityCheckTilingState();
@@ -1582,41 +1592,52 @@
   SanityCheckTilingState();
 }
 
-gfx::Vector2dF PictureLayerImpl::CalculateRasterTranslation(
-    float raster_scale) {
-  if (!use_transformed_rasterization_)
-    return gfx::Vector2dF();
-
+bool PictureLayerImpl::CalculateRasterTranslation(
+    gfx::Vector2dF& raster_translation) const {
+  const gfx::Transform& screen_transform = ScreenSpaceTransform();
   gfx::Transform draw_transform = DrawTransform();
-  // TODO(enne): for performance reasons, we should only have a raster
-  // translation when the screen space transform is not animating.  We try to
-  // avoid this elsewhere but it still happens: http://crbug.com/778440
-  // TODO(enne): Also, we shouldn't ever get here if the draw transform is not
-  // just a scale + translation, but we do sometimes: http://crbug.com/740113
-  if (draw_properties().screen_space_transform_is_animating ||
+
+  if (!screen_transform.IsScaleOrTranslation() ||
       !draw_transform.IsScaleOrTranslation()) {
-    // For now, while these problems are not well understood, avoid changing
-    // the raster scale in these cases.
-    return gfx::Vector2dF();
+    return false;
   }
 
   // It is only useful to align the content space to the target space if their
   // relative pixel ratio is some small rational number. Currently we only
-  // align if the relative pixel ratio is 1:1.
-  // Good match if the maximum alignment error on a layer of size 10000px
-  // does not exceed 0.001px.
-  static constexpr float kErrorThreshold = 0.0000001f;
-  if (std::abs(draw_transform.matrix().getFloat(0, 0) - raster_scale) >
-          kErrorThreshold ||
-      std::abs(draw_transform.matrix().getFloat(1, 1) - raster_scale) >
-          kErrorThreshold)
-    return gfx::Vector2dF();
+  // align if the relative pixel ratio is 1:1 (i.e. the scale components of
+  // both the screen transform and the draw transform are approximately the same
+  // as |raster_contents_scale_|). Good match if the maximum alignment error on
+  // a layer of size 10000px does not exceed 0.001px.
+  static constexpr float kPixelErrorThreshold = 0.001f;
+  static constexpr float kScaleErrorThreshold = kPixelErrorThreshold / 10000;
+  auto is_raster_scale = [this](float scale) -> bool {
+    return std::abs(scale - raster_contents_scale_) <= kScaleErrorThreshold;
+  };
+  if (!is_raster_scale(screen_transform.matrix().getFloat(0, 0)) ||
+      !is_raster_scale(screen_transform.matrix().getFloat(1, 1)) ||
+      !is_raster_scale(draw_transform.matrix().getFloat(0, 0)) ||
+      !is_raster_scale(draw_transform.matrix().getFloat(1, 1))) {
+    return false;
+  }
 
-  // Extract the fractional part of layer origin in the target space.
-  float origin_x = draw_transform.matrix().getFloat(0, 3);
-  float origin_y = draw_transform.matrix().getFloat(1, 3);
-  return gfx::Vector2dF(origin_x - floorf(origin_x),
-                        origin_y - floorf(origin_y));
+  // Extract the fractional part of layer origin in the screen space and in the
+  // target space.
+  auto fraction = [](float f) -> float { return f - floorf(f); };
+  float screen_x_fraction = fraction(screen_transform.matrix().getFloat(0, 3));
+  float screen_y_fraction = fraction(screen_transform.matrix().getFloat(1, 3));
+  float target_x_fraction = fraction(draw_transform.matrix().getFloat(0, 3));
+  float target_y_fraction = fraction(draw_transform.matrix().getFloat(1, 3));
+
+  // If the origin is different in the screen space and in the target space,
+  // it means the render target is not aligned to physical pixels, and the
+  // text content will be blurry regardless of raster translation.
+  if (std::abs(screen_x_fraction - target_x_fraction) > kPixelErrorThreshold ||
+      std::abs(screen_y_fraction - target_y_fraction) > kPixelErrorThreshold) {
+    return false;
+  }
+
+  raster_translation = gfx::Vector2dF(target_x_fraction, target_y_fraction);
+  return true;
 }
 
 float PictureLayerImpl::MinimumContentsScale() const {
diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h
index 0a55e27..2c8b669 100644
--- a/cc/layers/picture_layer_impl.h
+++ b/cc/layers/picture_layer_impl.h
@@ -103,8 +103,6 @@
 
   void SetNearestNeighbor(bool nearest_neighbor);
 
-  void SetUseTransformedRasterization(bool use);
-
   void SetDirectlyCompositedImageSize(base::Optional<gfx::Size>);
 
   size_t GPUMemoryUsageInBytes() const override;
@@ -142,9 +140,7 @@
   LCDTextDisallowedReason lcd_text_disallowed_reason() const {
     return lcd_text_disallowed_reason_;
   }
-  LCDTextDisallowedReason ComputeLCDTextDisallowedReasonForTesting() const {
-    return ComputeLCDTextDisallowedReason();
-  }
+  LCDTextDisallowedReason ComputeLCDTextDisallowedReasonForTesting() const;
 
   const Region& InvalidationForTesting() const { return invalidation_; }
 
@@ -178,7 +174,8 @@
   void AddLowResolutionTilingIfNeeded();
   bool ShouldAdjustRasterScale(float old_ideal_contents_scale) const;
   void RecalculateRasterScales();
-  gfx::Vector2dF CalculateRasterTranslation(float raster_scale);
+  // Returns false if raster translation is not applicable.
+  bool CalculateRasterTranslation(gfx::Vector2dF& raster_translation) const;
   void CleanUpTilingsOnActiveLayer(
       const std::vector<PictureLayerTiling*>& used_tilings);
   float MinimumContentsScale() const;
@@ -221,9 +218,10 @@
       const std::vector<DiscardableImageMap::PaintWorkletInputWithImageId>&
           inputs);
 
-  LCDTextDisallowedReason ComputeLCDTextDisallowedReason() const;
+  LCDTextDisallowedReason ComputeLCDTextDisallowedReason(
+      bool raster_translation_aligns_pixels) const;
   // Returns true if the LCD state changed.
-  bool UpdateCanUseLCDText();
+  bool UpdateCanUseLCDText(bool raster_translation_aligns_pixels);
 
   PictureLayerImpl* twin_layer_;
 
@@ -257,7 +255,6 @@
   bool only_used_low_res_last_append_quads_ : 1;
 
   bool nearest_neighbor_ : 1;
-  bool use_transformed_rasterization_ : 1;
 
   LCDTextDisallowedReason lcd_text_disallowed_reason_;
 
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index d4099cf..204bfc6 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -162,6 +162,7 @@
     gfx::Transform scale_transform;
     scale_transform.Scale(ideal_contents_scale, ideal_contents_scale);
     layer->draw_properties().screen_space_transform = scale_transform;
+    layer->draw_properties().target_space_transform = scale_transform;
     layer->set_contributes_to_drawn_render_surface(true);
     DCHECK_EQ(layer->GetIdealContentsScale(), ideal_contents_scale);
     layer->layer_tree_impl()->property_trees()->SetAnimationScalesForTesting(
@@ -4259,36 +4260,38 @@
   host_impl()->active_tree()->SetDeviceViewportRect(gfx::Rect(viewport_size));
 
   SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
-  ASSERT_TRUE(pending_layer()->CanHaveTilings());
 
-  LayerImpl* layer1 = AddLayer<LayerImpl>(host_impl()->pending_tree());
+  ActivateTree();
+
+  LayerImpl* layer1 = AddLayer<LayerImpl>(host_impl()->active_tree());
   layer1->SetBounds(layer_bounds);
   layer1->SetDrawsContent(true);
   layer1->SetContentsOpaque(true);
-  CopyProperties(pending_layer(), layer1);
+  CopyProperties(active_layer(), layer1);
   layer1->SetOffsetToTransformParent(occluding_layer_position);
 
-  pending_layer()->SetContentsScaleForTesting(scale);
-  pending_layer()->tilings()->RemoveAllTilings();
+  ASSERT_TRUE(active_layer()->CanHaveTilings());
+  active_layer()->SetContentsScaleForTesting(scale);
+  active_layer()->tilings()->RemoveAllTilings();
   float low_res_factor = host_impl()->settings().low_res_contents_scale_factor;
-  pending_layer()
+  active_layer()
       ->AddTiling(gfx::AxisTransform2d(low_res_factor, gfx::Vector2dF()))
       ->set_resolution(LOW_RESOLUTION);
-  pending_layer()
+  active_layer()
       ->AddTiling(gfx::AxisTransform2d(scale, gfx::Vector2dF()))
       ->set_resolution(HIGH_RESOLUTION);
 
-  ASSERT_EQ(2u, pending_layer()->num_tilings());
+  ASSERT_EQ(2u, active_layer()->num_tilings());
 
   host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
   // UpdateDrawProperties with the occluding layer.
-  UpdateDrawProperties(host_impl()->pending_tree());
+  UpdateDrawProperties(host_impl()->active_tree());
 
-  ASSERT_EQ(2u, pending_layer()->num_tilings());
+  ASSERT_EQ(2u, active_layer()->num_tilings());
 
   int occluded_tile_count = 0;
-  for (size_t i = 0; i < pending_layer()->num_tilings(); ++i) {
-    PictureLayerTiling* tiling = pending_layer()->tilings()->tiling_at(i);
+  for (size_t i = 0; i < active_layer()->num_tilings(); ++i) {
+    PictureLayerTiling* tiling = active_layer()->tilings()->tiling_at(i);
     auto prioritized_tiles =
         tiling->UpdateAndGetAllPrioritizedTilesForTesting();
     std::vector<Tile*> tiles = tiling->AllTilesForTesting();
@@ -5756,7 +5759,6 @@
   gfx::Size layer_bounds(200, 200);
   gfx::Size tile_size(256, 256);
   SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
-  pending_layer()->SetUseTransformedRasterization(true);
 
   // Start with scale & translation of * 2.25 + (0.25, 0.5).
   SetupDrawProperties(pending_layer(), 2.25f, 1.5f, 1.f, 2.25f, 2.25f, false);
@@ -5821,8 +5823,6 @@
   gfx::Size layer_bounds(200, 200);
   gfx::Size tile_size(256, 256);
   SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
-  active_layer()->SetUseTransformedRasterization(true);
-  pending_layer()->SetUseTransformedRasterization(true);
 
   // Start with scale & translation of * 2.25 + (0.25, 0.5) on the active layer.
   SetupDrawProperties(active_layer(), 2.25f, 1.5f, 1.f, 2.25f, 2.25f, false);
@@ -6023,24 +6023,52 @@
   pending_layer()->SetBackgroundColor(SK_ColorWHITE);
   pending_layer()->SetContentsOpaque(true);
   pending_layer()->SetOffsetToTransformParent(gfx::Vector2dF(0.2, 0.3));
-  EXPECT_TRUE(pending_layer()->contents_opaque());
-  EXPECT_TRUE(pending_layer()->contents_opaque_for_text());
-  EXPECT_EQ(LCDTextDisallowedReason::kNonIntegralXOffset,
-            pending_layer()->ComputeLCDTextDisallowedReasonForTesting());
-
-  pending_layer()->SetUseTransformedRasterization(true);
+  host_impl()->pending_tree()->set_needs_update_draw_properties();
+  UpdateDrawProperties(host_impl()->pending_tree());
   EXPECT_TRUE(pending_layer()->contents_opaque());
   EXPECT_TRUE(pending_layer()->contents_opaque_for_text());
   EXPECT_EQ(LCDTextDisallowedReason::kNone,
             pending_layer()->ComputeLCDTextDisallowedReasonForTesting());
+  ASSERT_TRUE(pending_layer()->HighResTiling());
+  EXPECT_EQ(gfx::Vector2dF(0.2, 0.3),
+            pending_layer()->HighResTiling()->raster_transform().translation());
 
-  // Simulate another push from main-thread with the same values.
-  pending_layer()->SetContentsOpaque(true);
-  pending_layer()->SetUseTransformedRasterization(true);
+  // Adding will-change:transform will keep the current raster translation.
+  pending_layer()->SetHasWillChangeTransformHint(true);
+  host_impl()->pending_tree()->set_needs_update_draw_properties();
+  UpdateDrawProperties(host_impl()->pending_tree());
+  EXPECT_TRUE(pending_layer()->contents_opaque());
+  EXPECT_TRUE(pending_layer()->contents_opaque_for_text());
+  EXPECT_EQ(LCDTextDisallowedReason::kWillChangeTransform,
+            pending_layer()->ComputeLCDTextDisallowedReasonForTesting());
+  ASSERT_TRUE(pending_layer()->HighResTiling());
+  EXPECT_EQ(gfx::Vector2dF(0.2, 0.3),
+            pending_layer()->HighResTiling()->raster_transform().translation());
+
+  // We should not update raster translation when there is
+  // will-change:transform.
+  pending_layer()->SetOffsetToTransformParent(gfx::Vector2dF(0.4, 0.5));
+  host_impl()->pending_tree()->set_needs_update_draw_properties();
+  UpdateDrawProperties(host_impl()->pending_tree());
+  EXPECT_TRUE(pending_layer()->contents_opaque());
+  EXPECT_TRUE(pending_layer()->contents_opaque_for_text());
+  EXPECT_EQ(LCDTextDisallowedReason::kWillChangeTransform,
+            pending_layer()->ComputeLCDTextDisallowedReasonForTesting());
+  ASSERT_TRUE(pending_layer()->HighResTiling());
+  EXPECT_EQ(gfx::Vector2dF(0.2, 0.3),
+            pending_layer()->HighResTiling()->raster_transform().translation());
+
+  // Removing will-change:transform will update raster translation.
+  pending_layer()->SetHasWillChangeTransformHint(false);
+  host_impl()->pending_tree()->set_needs_update_draw_properties();
+  UpdateDrawProperties(host_impl()->pending_tree());
   EXPECT_TRUE(pending_layer()->contents_opaque());
   EXPECT_TRUE(pending_layer()->contents_opaque_for_text());
   EXPECT_EQ(LCDTextDisallowedReason::kNone,
             pending_layer()->ComputeLCDTextDisallowedReasonForTesting());
+  ASSERT_TRUE(pending_layer()->HighResTiling());
+  EXPECT_EQ(gfx::Vector2dF(0.4, 0.5),
+            pending_layer()->HighResTiling()->raster_transform().translation());
 }
 
 enum {
@@ -6062,34 +6090,35 @@
   void SetUp() override {
     PictureLayerImplTest::SetUp();
 
-    SetupDefaultTreesWithInvalidation(gfx::Size(200, 200), Region());
+    SetupPendingTree(FakeRasterSource::CreateFilled(gfx::Size(200, 200)));
+
     tree_ = host_impl()->pending_tree();
-    root_ = tree_->root_layer();
-    child_ = AddLayer<PictureLayerImpl>(tree_);
-    grand_child_ = AddLayer<PictureLayerImpl>(tree_);
-    tree_->SetElementIdsForTesting();
+    layer_ = pending_layer();
+    descendant_ = AddLayer<PictureLayerImpl>(tree_);
 
-    root_->SetContentsOpaque(true);
-    child_->SetContentsOpaque(true);
-    grand_child_->SetContentsOpaque(true);
+    layer_->SetContentsOpaque(true);
+    layer_->SetDrawsContent(true);
+    layer_->SetBounds(gfx::Size(200, 200));
+    ASSERT_TRUE(layer_->CanHaveTilings());
 
-    root_->SetDrawsContent(true);
-    child_->SetDrawsContent(true);
-    grand_child_->SetDrawsContent(true);
+    descendant_->SetContentsOpaque(true);
+    descendant_->SetDrawsContent(true);
+    descendant_->SetBounds(gfx::Size(200, 200));
+    Region invalidation;
+    descendant_->UpdateRasterSource(
+        FakeRasterSource::CreateFilled(gfx::Size(200, 200)), &invalidation,
+        nullptr, nullptr);
+    ASSERT_TRUE(layer_->CanHaveTilings());
 
-    root_->SetBounds(gfx::Size(1, 1));
-    child_->SetBounds(gfx::Size(1, 1));
-    grand_child_->SetBounds(gfx::Size(1, 1));
-
-    CopyProperties(root_, child_);
-    CreateTransformNode(child_);
-    CreateEffectNode(child_).render_surface_reason = RenderSurfaceReason::kTest;
-    CopyProperties(child_, grand_child_);
-    CreateTransformNode(grand_child_);
-    CreateEffectNode(grand_child_);
+    CreateTransformNode(layer_);
+    CreateEffectNode(layer_);
+    CopyProperties(layer_, descendant_);
+    CreateTransformNode(descendant_);
+    CreateEffectNode(descendant_);
   }
 
   void CheckCanUseLCDText(LCDTextDisallowedReason expected_disallowed_reason,
+                          const char* description,
                           PictureLayerImpl* layer = nullptr) {
     UpdateDrawProperties(tree_);
 
@@ -6098,21 +6127,21 @@
     else if (!(GetParam() & kCanUseLCDText))
       expected_disallowed_reason = LCDTextDisallowedReason::kSetting;
 
+    SCOPED_TRACE(description);
     if (layer) {
       EXPECT_EQ(expected_disallowed_reason,
                 layer->ComputeLCDTextDisallowedReasonForTesting());
     } else {
       EXPECT_EQ(expected_disallowed_reason,
-                child_->ComputeLCDTextDisallowedReasonForTesting());
+                layer_->ComputeLCDTextDisallowedReasonForTesting());
       EXPECT_EQ(expected_disallowed_reason,
-                grand_child_->ComputeLCDTextDisallowedReasonForTesting());
+                descendant_->ComputeLCDTextDisallowedReasonForTesting());
     }
   }
 
   LayerTreeImpl* tree_ = nullptr;
-  LayerImpl* root_ = nullptr;
-  PictureLayerImpl* child_ = nullptr;
-  PictureLayerImpl* grand_child_ = nullptr;
+  PictureLayerImpl* layer_ = nullptr;
+  PictureLayerImpl* descendant_ = nullptr;
 };
 
 INSTANTIATE_TEST_SUITE_P(All,
@@ -6124,104 +6153,173 @@
                                              kLayersAlwaysAllowedLCDText));
 
 TEST_P(LCDTextTest, IdentityTransform) {
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "identity transform");
 }
 
 TEST_P(LCDTextTest, IntegralTransform) {
   gfx::Transform integral_translation;
   integral_translation.Translate(1.0, 2.0);
-  SetTransform(child_, integral_translation);
+  SetTransform(layer_, integral_translation);
 
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "integral transform");
 }
 
 TEST_P(LCDTextTest, NonIntegralTranslation) {
   // Non-integral translation.
   gfx::Transform non_integral_translation;
   non_integral_translation.Translate(1.5, 2.5);
-  SetTransform(child_, non_integral_translation);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation);
+  SetTransform(layer_, non_integral_translation);
+  // We can use LCD-text as raster translation can align the text to physical
+  // pixels for fragtional transform in the render target.
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone,
+                     "non-integeral translation");
 
-  SetTransform(child_, gfx::Transform());
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  SetTransform(layer_, gfx::Transform());
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "identity transform");
+}
+
+TEST_P(LCDTextTest, NonIntegralTranslationAboveRenderTarget) {
+  // Non-integral translation above render target.
+  gfx::Transform non_integral_translation;
+  non_integral_translation.Translate(1.5, 2.5);
+  SetTransform(layer_, non_integral_translation);
+  SetRenderSurfaceReason(layer_, RenderSurfaceReason::kTest);
+  // Raster translation can't handle fractional transform above the render
+  // target, so LCD text is not allowed.
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "non-integeral translation above render target");
+  SetTransform(layer_, gfx::Transform());
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "identity transform");
 }
 
 TEST_P(LCDTextTest, NonTranslation) {
   // Rotation.
   gfx::Transform rotation;
   rotation.Rotate(10.0);
-  SetTransform(child_, rotation);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation);
+  SetTransform(layer_, rotation);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "Rotation transform");
 
-  // Scale.
+  // Scale. LCD text is allowed.
   gfx::Transform scale;
   scale.Scale(2.0, 2.0);
-  SetTransform(child_, scale);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation);
+  SetTransform(layer_, scale);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "Scale transform");
 
   // Skew.
   gfx::Transform skew;
   skew.Skew(10.0, 0.0);
-  SetTransform(child_, skew);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation);
+  SetTransform(layer_, skew);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "Skew transform");
 
-  SetTransform(child_, gfx::Transform());
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  SetTransform(layer_, gfx::Transform());
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "identity transform");
+}
+
+TEST_P(LCDTextTest, NonTranslationAboveRenderTarget) {
+  SetRenderSurfaceReason(layer_, RenderSurfaceReason::kTest);
+
+  // Rotation.
+  gfx::Transform rotation;
+  rotation.Rotate(10.0);
+  SetTransform(layer_, rotation);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "rotation transform above render target");
+
+  // Scale. LCD-text is allowed.
+  gfx::Transform scale;
+  scale.Scale(2.0, 2.0);
+  // Apply perspective to prevent the scale from applying to the layers below
+  // the render target.
+  scale.ApplyPerspectiveDepth(10);
+  SetTransform(layer_, scale);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "scale transform above render target");
+
+  // Skew.
+  gfx::Transform skew;
+  skew.Skew(10.0, 0.0);
+  SetTransform(layer_, skew);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNonIntegralTranslation,
+                     "skew transform above render target");
+
+  SetTransform(layer_, gfx::Transform());
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "identity transform");
 }
 
 TEST_P(LCDTextTest, Opacity) {
   // LCD-text is allowed with opacity paint property.
-  SetOpacity(child_, 0.5f);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
-  SetOpacity(child_, 1.f);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  SetOpacity(layer_, 0.5f);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "opacity: 0.5");
+  SetOpacity(layer_, 1.f);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "opacity: 1.0");
 }
 
 TEST_P(LCDTextTest, ContentsNotOpaque) {
   // Non-opaque content and opaque background.
-  child_->SetContentsOpaque(false);
-  child_->SetBackgroundColor(SK_ColorGREEN);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kContentsNotOpaque, child_);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, grand_child_);
+  layer_->SetContentsOpaque(false);
+  layer_->SetBackgroundColor(SK_ColorGREEN);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kContentsNotOpaque,
+                     "contents not opaque", layer_);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone,
+                     "descedant of contents not opaque", descendant_);
 
   // Non-opaque content and non-opaque background.
-  child_->SetBackgroundColor(SkColorSetARGB(128, 255, 255, 255));
+  layer_->SetBackgroundColor(SkColorSetARGB(128, 255, 255, 255));
   CheckCanUseLCDText(LCDTextDisallowedReason::kBackgroundColorNotOpaque,
-                     child_);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, grand_child_);
+                     "background not opaque", layer_);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone,
+                     "descendant of contents not opaque", descendant_);
 
-  child_->SetContentsOpaque(true);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  layer_->SetContentsOpaque(true);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "contents opaque");
 }
 
 TEST_P(LCDTextTest, WillChangeTransform) {
-  child_->SetHasWillChangeTransformHint(true);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kWillChangeTransform, child_);
+  layer_->SetHasWillChangeTransformHint(true);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kWillChangeTransform,
+                     "will-change:transform", layer_);
   // TODO(crbug.com/1114504): will-change:transform should apply to descendants.
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, grand_child_);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone,
+                     "descendant of will-change: transform", descendant_);
 
-  child_->SetHasWillChangeTransformHint(false);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  layer_->SetHasWillChangeTransformHint(false);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone,
+                     "no will-change: transform");
 }
 
 TEST_P(LCDTextTest, Filter) {
   FilterOperations blur_filter;
   blur_filter.Append(FilterOperation::CreateBlurFilter(4.0f));
-  SetFilter(child_, blur_filter);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kPixelOrColorEffect);
+  SetFilter(layer_, blur_filter);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kPixelOrColorEffect, "filter");
 
-  SetFilter(child_, FilterOperations());
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone);
+  SetFilter(layer_, FilterOperations());
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "no filter");
 }
 
 TEST_P(LCDTextTest, ContentsOpaqueForText) {
-  child_->SetContentsOpaque(false);
-  child_->SetBackgroundColor(SK_ColorGREEN);
-  child_->SetContentsOpaqueForText(true);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, child_);
+  layer_->SetContentsOpaque(false);
+  layer_->SetBackgroundColor(SK_ColorGREEN);
+  layer_->SetContentsOpaqueForText(true);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "contents opaque for text",
+                     layer_);
 
-  child_->SetContentsOpaqueForText(false);
-  CheckCanUseLCDText(LCDTextDisallowedReason::kContentsNotOpaque, child_);
+  layer_->SetContentsOpaqueForText(false);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kContentsNotOpaque,
+                     "contents not opaque for text", layer_);
+}
+
+TEST_P(LCDTextTest, TransformAnimation) {
+  GetTransformNode(layer_)->has_potential_animation = true;
+  SetLocalTransformChanged(layer_);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kTransformAnimation,
+                     "transform animation");
+
+  GetTransformNode(layer_)->has_potential_animation = false;
+  SetLocalTransformChanged(layer_);
+  CheckCanUseLCDText(LCDTextDisallowedReason::kNone, "no transform animation");
 }
 
 }  // namespace
diff --git a/cc/metrics/frame_sequence_metrics.cc b/cc/metrics/frame_sequence_metrics.cc
index 8faf20a34..56c6157 100644
--- a/cc/metrics/frame_sequence_metrics.cc
+++ b/cc/metrics/frame_sequence_metrics.cc
@@ -14,6 +14,7 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/traced_value.h"
 #include "cc/metrics/frame_sequence_tracker.h"
+#include "cc/metrics/jank_metrics.h"
 #include "cc/metrics/throughput_ukm_reporter.h"
 
 namespace cc {
@@ -97,6 +98,16 @@
 FrameSequenceMetrics::FrameSequenceMetrics(FrameSequenceTrackerType type,
                                            ThroughputUkmReporter* ukm_reporter)
     : type_(type), throughput_ukm_reporter_(ukm_reporter) {
+  ThreadType thread_type = GetEffectiveThread();
+
+  // Only construct |jank_reporter_| if it has a valid tracker and thread type.
+  // For scrolling tracker types, |jank_reporter_| may be constructed later in
+  // SetScrollingThread().
+  if ((thread_type == ThreadType::kCompositor ||
+       thread_type == ThreadType::kMain) &&
+      type != FrameSequenceTrackerType::kUniversal &&
+      type != FrameSequenceTrackerType::kCustom)
+    jank_reporter_ = std::make_unique<JankMetrics>(type, thread_type);
 }
 
 FrameSequenceMetrics::~FrameSequenceMetrics() = default;
@@ -121,6 +132,11 @@
          type_ == FrameSequenceTrackerType::kScrollbarScroll);
   DCHECK_EQ(scrolling_thread_, ThreadType::kUnknown);
   scrolling_thread_ = scrolling_thread;
+
+  DCHECK(!jank_reporter_);
+  DCHECK_NE(scrolling_thread, ThreadType::kSlower);
+  DCHECK_NE(scrolling_thread, ThreadType::kUnknown);
+  jank_reporter_ = std::make_unique<JankMetrics>(type_, scrolling_thread);
 }
 
 void FrameSequenceMetrics::SetCustomReporter(CustomReporter custom_reporter) {
@@ -168,6 +184,9 @@
   aggregated_throughput_.Merge(metrics->aggregated_throughput_);
   frames_checkerboarded_ += metrics->frames_checkerboarded_;
 
+  if (jank_reporter_)
+    jank_reporter_->Merge(std::move(metrics->jank_reporter_));
+
   // Reset the state of |metrics| before destroying it, so that it doesn't end
   // up reporting the metrics.
   metrics->impl_throughput_ = {};
@@ -296,6 +315,18 @@
     frames_checkerboarded_ = 0;
   }
 
+  // Report the jank metrics
+  if (jank_reporter_) {
+    if (jank_reporter_->thread_type() ==
+            FrameSequenceMetrics::ThreadType::kCompositor &&
+        impl_throughput_.frames_expected >= kMinFramesForThroughputMetric)
+      jank_reporter_->ReportJankMetrics(impl_throughput_.frames_expected);
+    else if (jank_reporter_->thread_type() ==
+                 FrameSequenceMetrics::ThreadType::kMain &&
+             main_throughput_.frames_expected >= kMinFramesForThroughputMetric)
+      jank_reporter_->ReportJankMetrics(main_throughput_.frames_expected);
+  }
+
   // Reset the metrics that reach reporting threshold.
   if (impl_throughput_.frames_expected >= kMinFramesForThroughputMetric) {
     impl_throughput_ = {};
@@ -305,6 +336,17 @@
     main_throughput_ = {};
 }
 
+void FrameSequenceMetrics::ComputeJank(
+    FrameSequenceMetrics::ThreadType thread_type,
+    base::TimeTicks presentation_time,
+    base::TimeDelta frame_interval) {
+  if (!jank_reporter_)
+    return;
+
+  if (thread_type == jank_reporter_->thread_type())
+    jank_reporter_->AddPresentedFrame(presentation_time, frame_interval);
+}
+
 base::Optional<int> FrameSequenceMetrics::ThroughputData::ReportHistogram(
     FrameSequenceMetrics* metrics,
     ThreadType thread_type,
diff --git a/cc/metrics/frame_sequence_metrics.h b/cc/metrics/frame_sequence_metrics.h
index 778af2c2..8b0d56b 100644
--- a/cc/metrics/frame_sequence_metrics.h
+++ b/cc/metrics/frame_sequence_metrics.h
@@ -14,6 +14,7 @@
 
 namespace cc {
 class ThroughputUkmReporter;
+class JankMetrics;
 
 enum class FrameSequenceTrackerType {
   // Used as an enum for metrics. DO NOT reorder or delete values. Rather,
@@ -126,6 +127,10 @@
   void AdoptTrace(FrameSequenceMetrics* adopt_from);
   void AdvanceTrace(base::TimeTicks timestamp);
 
+  void ComputeJank(FrameSequenceMetrics::ThreadType thread_type,
+                   base::TimeTicks presentation_time,
+                   base::TimeDelta frame_interval);
+
  private:
   const FrameSequenceTrackerType type_;
 
@@ -159,6 +164,8 @@
 
   // Callback invoked to report metrics for kCustom typed sequence.
   CustomReporter custom_reporter_;
+
+  std::unique_ptr<JankMetrics> jank_reporter_;
 };
 
 }  // namespace cc
diff --git a/cc/metrics/frame_sequence_tracker.cc b/cc/metrics/frame_sequence_tracker.cc
index f9010338..3d2f484c 100644
--- a/cc/metrics/frame_sequence_tracker.cc
+++ b/cc/metrics/frame_sequence_tracker.cc
@@ -450,6 +450,9 @@
     if (metrics()->GetEffectiveThread() == ThreadType::kCompositor) {
       metrics()->AdvanceTrace(feedback.timestamp);
     }
+
+    metrics()->ComputeJank(FrameSequenceMetrics::ThreadType::kCompositor,
+                           feedback.timestamp, feedback.interval);
   }
 
   if (was_presented) {
@@ -469,6 +472,9 @@
       if (metrics()->GetEffectiveThread() == ThreadType::kMain) {
         metrics()->AdvanceTrace(feedback.timestamp);
       }
+
+      metrics()->ComputeJank(FrameSequenceMetrics::ThreadType::kMain,
+                             feedback.timestamp, feedback.interval);
     }
 
     if (impl_frames_produced > 0) {
diff --git a/cc/metrics/jank_metrics.cc b/cc/metrics/jank_metrics.cc
new file mode 100644
index 0000000..fba24b1
--- /dev/null
+++ b/cc/metrics/jank_metrics.cc
@@ -0,0 +1,124 @@
+// Copyright 2020 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 "cc/metrics/jank_metrics.h"
+
+#include <memory>
+#include <string>
+#include <utility>
+
+#include "base/metrics/histogram.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/strings/strcat.h"
+#include "base/trace_event/trace_event.h"
+#include "cc/metrics/frame_sequence_tracker.h"
+
+namespace cc {
+
+namespace {
+
+constexpr int kBuiltinSequenceNum =
+    static_cast<int>(FrameSequenceTrackerType::kMaxType) + 1;
+constexpr int kMaximumJankHistogramIndex = 2 * kBuiltinSequenceNum;
+
+constexpr bool IsValidJankThreadType(FrameSequenceMetrics::ThreadType type) {
+  return type == FrameSequenceMetrics::ThreadType::kCompositor ||
+         type == FrameSequenceMetrics::ThreadType::kMain;
+}
+
+const char* GetJankThreadTypeName(FrameSequenceMetrics::ThreadType type) {
+  DCHECK(IsValidJankThreadType(type));
+
+  switch (type) {
+    case FrameSequenceMetrics::ThreadType::kCompositor:
+      return "Compositor";
+    case FrameSequenceMetrics::ThreadType::kMain:
+      return "Main";
+    default:
+      NOTREACHED();
+      return "";
+  }
+}
+
+int GetIndexForJankMetric(FrameSequenceMetrics::ThreadType thread_type,
+                          FrameSequenceTrackerType type) {
+  DCHECK(IsValidJankThreadType(thread_type));
+  if (thread_type == FrameSequenceMetrics::ThreadType::kMain)
+    return static_cast<int>(type);
+
+  DCHECK_EQ(thread_type, FrameSequenceMetrics::ThreadType::kCompositor);
+  return static_cast<int>(type) + kBuiltinSequenceNum;
+}
+
+std::string GetJankHistogramName(FrameSequenceTrackerType type,
+                                 const char* thread_name) {
+  return base::StrCat(
+      {"Graphics.Smoothness.Jank.", thread_name, ".",
+       FrameSequenceTracker::GetFrameSequenceTrackerTypeName(type)});
+}
+
+}  // namespace
+
+JankMetrics::JankMetrics(FrameSequenceTrackerType tracker_type,
+                         FrameSequenceMetrics::ThreadType effective_thread)
+    : tracker_type_(tracker_type), effective_thread_(effective_thread) {
+  DCHECK(IsValidJankThreadType(effective_thread));
+}
+JankMetrics::~JankMetrics() = default;
+
+void JankMetrics::AddPresentedFrame(
+    base::TimeTicks current_presentation_timestamp,
+    base::TimeDelta frame_interval) {
+  base::TimeDelta current_frame_delta =
+      current_presentation_timestamp - last_presentation_timestamp_;
+
+  // Only start tracking jank if this function has been called (so that
+  // |last_presentation_timestamp_| and |prev_frame_delta_| have been set).
+  //
+  // The presentation interval is typically a multiple of VSync intervals (i.e.
+  // 16.67ms, 33.33ms, 50ms ... on a 60Hz display) with small fluctuations. The
+  // 0.5 * |frame_interval| criterion is chosen so that the jank detection is
+  // robust to those fluctuations.
+  if (!last_presentation_timestamp_.is_null() && !prev_frame_delta_.is_zero() &&
+      current_frame_delta > prev_frame_delta_ + 0.5 * frame_interval) {
+    jank_count_++;
+
+    TRACE_EVENT_NESTABLE_ASYNC_BEGIN_WITH_TIMESTAMP1(
+        "cc,benchmark", "Jank", TRACE_ID_LOCAL(this),
+        last_presentation_timestamp_, "thread-type",
+        GetJankThreadTypeName(effective_thread_));
+    TRACE_EVENT_NESTABLE_ASYNC_END_WITH_TIMESTAMP1(
+        "cc,benchmark", "Jank", TRACE_ID_LOCAL(this),
+        current_presentation_timestamp, "tracker-type",
+        FrameSequenceTracker::GetFrameSequenceTrackerTypeName(tracker_type_));
+  }
+  last_presentation_timestamp_ = current_presentation_timestamp;
+
+  prev_frame_delta_ = current_frame_delta;
+}
+
+void JankMetrics::ReportJankMetrics(int frames_expected) {
+  if (tracker_type_ == FrameSequenceTrackerType::kUniversal ||
+      tracker_type_ == FrameSequenceTrackerType::kCustom)
+    return;
+
+  int jank_percent = static_cast<int>(100 * jank_count_ / frames_expected);
+
+  const char* jank_thread_name = GetJankThreadTypeName(effective_thread_);
+
+  STATIC_HISTOGRAM_POINTER_GROUP(
+      GetJankHistogramName(tracker_type_, jank_thread_name),
+      GetIndexForJankMetric(effective_thread_, tracker_type_),
+      kMaximumJankHistogramIndex, Add(jank_percent),
+      base::LinearHistogram::FactoryGet(
+          GetJankHistogramName(tracker_type_, jank_thread_name), 1, 100, 101,
+          base::HistogramBase::kUmaTargetedHistogramFlag));
+}
+
+void JankMetrics::Merge(std::unique_ptr<JankMetrics> jank_metrics) {
+  if (jank_metrics)
+    jank_count_ += jank_metrics->jank_count_;
+}
+
+}  // namespace cc
diff --git a/cc/metrics/jank_metrics.h b/cc/metrics/jank_metrics.h
new file mode 100644
index 0000000..71aca6b
--- /dev/null
+++ b/cc/metrics/jank_metrics.h
@@ -0,0 +1,57 @@
+// Copyright 2020 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 CC_METRICS_JANK_METRICS_H_
+#define CC_METRICS_JANK_METRICS_H_
+
+#include <memory>
+
+#include "cc/metrics/frame_sequence_metrics.h"
+
+namespace cc {
+class CC_EXPORT JankMetrics {
+ public:
+  JankMetrics(FrameSequenceTrackerType tracker_type,
+              FrameSequenceMetrics::ThreadType effective_thread);
+  ~JankMetrics();
+
+  JankMetrics(const JankMetrics&) = delete;
+  JankMetrics& operator=(const JankMetrics&) = delete;
+
+  // Check if a jank occurs based on the timestamps of recent presentations.
+  // If there is a jank, increment |jank_count_| and log a trace event.
+  void AddPresentedFrame(base::TimeTicks current_presentation_timestamp,
+                         base::TimeDelta frame_interval);
+
+  // Report the occurrence rate of janks as a UMA metric.
+  void ReportJankMetrics(int frames_expected);
+
+  // Merge the current jank count with a previously unreported jank metrics.
+  void Merge(std::unique_ptr<JankMetrics> jank_metrics);
+
+  FrameSequenceMetrics::ThreadType thread_type() const {
+    return effective_thread_;
+  }
+
+ private:
+  // The type of the tracker this JankMetrics object is attached to.
+  const FrameSequenceTrackerType tracker_type_;
+
+  // The thread that contributes to the janks detected by the current
+  // JankMetrics object.
+  const FrameSequenceMetrics::ThreadType effective_thread_;
+
+  // Number of janks detected.
+  int jank_count_ = 0;
+
+  // The time when the last presentation occurs
+  base::TimeTicks last_presentation_timestamp_;
+
+  // The interval before the previous frame presentation.
+  base::TimeDelta prev_frame_delta_;
+};
+
+}  // namespace cc
+
+#endif  // CC_METRICS_JANK_METRICS_H_
diff --git a/cc/metrics/jank_metrics_unittest.cc b/cc/metrics/jank_metrics_unittest.cc
new file mode 100644
index 0000000..687a835
--- /dev/null
+++ b/cc/metrics/jank_metrics_unittest.cc
@@ -0,0 +1,274 @@
+// Copyright 2020 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 "cc/metrics/jank_metrics.h"
+
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/strings/strcat.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "cc/metrics/frame_sequence_tracker.h"
+#include "cc/metrics/throughput_ukm_reporter.h"
+#include "cc/trees/ukm_manager.h"
+#include "components/ukm/test_ukm_recorder.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace cc {
+
+class JankMetricsTest : public testing::Test {
+ public:
+  JankMetricsTest() = default;
+  ~JankMetricsTest() override = default;
+
+  // Create a sequence of PresentationFeedback for testing based on the provided
+  // sequence of actual frame intervals and the expected frame interval. The
+  // size of the returned sequence is |actual_intervals_ms|.size() + 1
+  static std::vector<gfx::PresentationFeedback> CreateFeedbackSequence(
+      const std::vector<double>& actual_intervals_ms,
+      double expected_interval_ms) {
+    std::vector<gfx::PresentationFeedback> feedbacks;
+
+    // The timestamp of the first presentation.
+    base::TimeTicks start_time = base::TimeTicks::Now();
+    double accum_interval = 0.0;
+    base::TimeDelta expected_interval =
+        base::TimeDelta::FromMillisecondsD(expected_interval_ms);
+
+    feedbacks.emplace_back(
+        gfx::PresentationFeedback(start_time, expected_interval, 0));
+    for (auto interval : actual_intervals_ms) {
+      accum_interval += interval;
+      feedbacks.emplace_back(gfx::PresentationFeedback{
+          start_time + base::TimeDelta::FromMillisecondsD(accum_interval),
+          expected_interval, 0});
+    }
+    return feedbacks;
+  }
+
+  // Notify |jank_reporter| of all presentations in |feedbacks|.
+  void AddPresentedFramesToJankReporter(
+      JankMetrics* jank_reporter,
+      const std::vector<gfx::PresentationFeedback>& feedbacks) {
+    for (auto feedback : feedbacks) {
+      jank_reporter->AddPresentedFrame(feedback.timestamp, feedback.interval);
+    }
+  }
+};
+
+TEST_F(JankMetricsTest, CompositorAnimationMildFluctuationNoJank) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type =
+      FrameSequenceTrackerType::kCompositorAnimation;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kCompositor;
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  // No jank. Small upticks such as 15->17 or 14->18 do not qualify as janks.
+  auto feedbacks =
+      CreateFeedbackSequence({16.67, 16.67, 15, 17, 14, 18, 15, 16.67}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(100u);
+
+  // One sample of 0 janks reported for "Compositor".
+  const char* metric =
+      "Graphics.Smoothness.Jank.Compositor.CompositorAnimation";
+  const char* invalid_metric =
+      "Graphics.Smoothness.Jank.Main.CompositorAnimation";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(0, 1)));
+
+  // No reporting for "Main".
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+TEST_F(JankMetricsTest, MainThreadAnimationOneJank) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type =
+      FrameSequenceTrackerType::kMainThreadAnimation;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kMain;
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  // One Main thread jank from 15 to 24, since 24 - 15 = 9, which is greater
+  // then 0.5 * frame_interval = 8.33. The jank occurrence is visually marked
+  // with a "+" sign.
+  auto feedbacks =
+      CreateFeedbackSequence({48, 15, +24, 14, 18, 15, 16.67}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(100u);
+
+  // One jank is reported for "Main".
+  const char* metric = "Graphics.Smoothness.Jank.Main.MainThreadAnimation";
+  const char* invalid_metric =
+      "Graphics.Smoothness.Jank.Compositor.MainThreadAnimation";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(1, 1)));
+
+  // No jank is reported for "Compositor"
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+TEST_F(JankMetricsTest, VideoManyJanksOver300ExpectedFrames) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type = FrameSequenceTrackerType::kVideo;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kCompositor;
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  // 7 janks.
+  auto feedbacks = CreateFeedbackSequence(
+      {15, +33, +50, 33, 16, +33, +50, +100, +120, +180}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(300u);
+
+  // Report in the 7/300 ~= 2% bucket for "Compositor"
+  const char* metric = "Graphics.Smoothness.Jank.Compositor.Video";
+  const char* invalid_metric = "Graphics.Smoothness.Jank.Main.Video";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(2, 1)));
+
+  // No jank is reported for "Main"
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+TEST_F(JankMetricsTest, WheelScrollMainThreadTwoJanks) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type =
+      FrameSequenceTrackerType::kWheelScroll;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kMain;
+
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  auto feedbacks = CreateFeedbackSequence({33, 16, +33, +48, 33}, 16.67);
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(100u);
+
+  // Expect 2 janks for "Main" and no jank for "Compositor"
+  const char* metric = "Graphics.Smoothness.Jank.Main.WheelScroll";
+  const char* invalid_metric =
+      "Graphics.Smoothness.Jank.Compositor.WheelScroll";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(2, 1)));
+
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+TEST_F(JankMetricsTest, TouchScrollCompositorThreadManyJanks) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type =
+      FrameSequenceTrackerType::kTouchScroll;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kCompositor;
+
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  auto feedbacks =
+      CreateFeedbackSequence({33, 16, +33, +48, +100, 16, +48, +100}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(120u);
+
+  // Expect janks in the 5/120 ~= 4% bucket for "Compositor", and no jank for
+  // "Main"
+  const char* metric = "Graphics.Smoothness.Jank.Compositor.TouchScroll";
+  const char* invalid_metric = "Graphics.Smoothness.Jank.Main.TouchScroll";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(4, 1)));
+
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+// Test if the jank reporter can correctly merge janks from another jank
+// reporter.
+TEST_F(JankMetricsTest, RAFMergeJanks) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type = FrameSequenceTrackerType::kRAF;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kMain;
+
+  JankMetrics jank_reporter{tracker_type, thread_type};
+  std::unique_ptr<JankMetrics> other_reporter =
+      std::make_unique<JankMetrics>(tracker_type, thread_type);
+
+  auto feedbacks = CreateFeedbackSequence({33, +50, 16, +33, 33, +48}, 16.67);
+  AddPresentedFramesToJankReporter(other_reporter.get(), feedbacks);
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+
+  jank_reporter.Merge(std::move(other_reporter));
+  jank_reporter.ReportJankMetrics(100u);
+
+  // Expect 6 janks for "Main" (3 from each reporter)
+  const char* metric = "Graphics.Smoothness.Jank.Main.RAF";
+  const char* invalid_metric = "Graphics.Smoothness.Jank.Compositor.RAF";
+
+  histogram_tester.ExpectTotalCount(metric, 1u);
+  EXPECT_THAT(histogram_tester.GetAllSamples(metric),
+              testing::ElementsAre(base::Bucket(6, 1)));
+
+  histogram_tester.ExpectTotalCount(invalid_metric, 0u);
+}
+
+// Test if jank reporting is correctly disabled for Universal trackers.
+TEST_F(JankMetricsTest, UniversalNotReported) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type = FrameSequenceTrackerType::kUniversal;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kCompositor;
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  // There should be 4 janks, but the jank reporter does not track or report
+  // them.
+  auto feedbacks = CreateFeedbackSequence({16, +33, +48, 16, +33, +48}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(100u);
+
+  // Expect no jank reports even though the sequence contains jank
+  histogram_tester.ExpectTotalCount("Graphics.Smoothness.Jank.Main.Universal",
+                                    0u);
+  histogram_tester.ExpectTotalCount(
+      "Graphics.Smoothness.Jank.Compositor.Universal", 0u);
+}
+
+// Test if jank reporting is correctly disabled for Custom trackers.
+TEST_F(JankMetricsTest, CustomNotReported) {
+  base::HistogramTester histogram_tester;
+  FrameSequenceTrackerType tracker_type = FrameSequenceTrackerType::kCustom;
+  FrameSequenceMetrics::ThreadType thread_type =
+      FrameSequenceMetrics::ThreadType::kMain;
+  JankMetrics jank_reporter{tracker_type, thread_type};
+
+  // There should be 4 janks, but the jank reporter does not track or report
+  // them.
+  auto feedbacks = CreateFeedbackSequence({16, +33, +48, 16, +33, +48}, 16.67);
+
+  AddPresentedFramesToJankReporter(&jank_reporter, feedbacks);
+  jank_reporter.ReportJankMetrics(100u);
+
+  // Expect no jank reports even though the sequence contains jank
+  histogram_tester.ExpectTotalCount("Graphics.Smoothness.Jank.Main.Custom", 0u);
+  histogram_tester.ExpectTotalCount(
+      "Graphics.Smoothness.Jank.Compositor.Custom", 0u);
+}
+
+}  // namespace cc
diff --git a/cc/raster/lcd_text_disallowed_reason.cc b/cc/raster/lcd_text_disallowed_reason.cc
index c2e59ed..0c11205 100644
--- a/cc/raster/lcd_text_disallowed_reason.cc
+++ b/cc/raster/lcd_text_disallowed_reason.cc
@@ -29,6 +29,8 @@
       return "will-change-transform";
     case LCDTextDisallowedReason::kPixelOrColorEffect:
       return "pixel-or-color-effect";
+    case LCDTextDisallowedReason::kTransformAnimation:
+      return "transform-animation";
   }
   NOTREACHED();
   return "";
diff --git a/cc/raster/lcd_text_disallowed_reason.h b/cc/raster/lcd_text_disallowed_reason.h
index 9296f5c..bc16387 100644
--- a/cc/raster/lcd_text_disallowed_reason.h
+++ b/cc/raster/lcd_text_disallowed_reason.h
@@ -25,7 +25,8 @@
   kNonIntegralYOffset = 6,
   kWillChangeTransform = 7,
   kPixelOrColorEffect = 8,
-  kMaxValue = kPixelOrColorEffect,
+  kTransformAnimation = 9,
+  kMaxValue = kTransformAnimation,
 };
 constexpr size_t kLCDTextDisallowedReasonCount =
     static_cast<size_t>(LCDTextDisallowedReason::kMaxValue) + 1;
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 51a79d9..fa9dedf2 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -17596,6 +17596,39 @@
             ElementId(0x10));
 }
 
+TEST_F(LayerTreeHostImplTest, FrameElementIdHitTestInheritance) {
+  SetupDefaultRootLayer(gfx::Size(100, 100));
+
+  LayerImpl* frame_layer = AddLayer();
+  frame_layer->SetBounds(gfx::Size(50, 50));
+  frame_layer->SetHitTestable(true);
+  CopyProperties(root_layer(), frame_layer);
+  CreateTransformNode(frame_layer, root_layer()->transform_tree_index())
+      .frame_element_id = ElementId(0x20);
+
+  // Create a child layer with no associated frame, but with the above frame
+  // layer as a parent.
+  LayerImpl* child_layer = AddLayer();
+  child_layer->SetBounds(gfx::Size(50, 50));
+  child_layer->SetHitTestable(true);
+  CopyProperties(root_layer(), child_layer);
+  auto& child_node =
+      CreateTransformNode(child_layer, frame_layer->transform_tree_index());
+  child_node.parent_frame_id = frame_layer->transform_tree_index();
+  child_layer->SetOffsetToTransformParent(gfx::Vector2dF(25, 25));
+
+  UpdateDrawProperties(host_impl_->active_tree());
+
+  // Hit tests on the parent should return the parent's frame element ID.
+  EXPECT_EQ(host_impl_->FindFrameElementIdAtPoint(gfx::PointF(15, 15)),
+            ElementId(0x20));
+
+  // Ensure that hit tests on the child (non-frame) layer returns the frame
+  // element id of its parent.
+  EXPECT_EQ(host_impl_->FindFrameElementIdAtPoint(gfx::PointF(60, 60)),
+            ElementId(0x20));
+}
+
 TEST_F(LayerTreeHostImplTest, FrameElementIdHitTestOverlap) {
   SetupDefaultRootLayer(gfx::Size(100, 100));
 
@@ -17609,13 +17642,16 @@
   occluding_frame_layer->SetBounds(gfx::Size(50, 50));
   occluding_frame_layer->SetHitTestable(true);
   CopyProperties(root_layer(), occluding_frame_layer);
-  CreateTransformNode(occluding_frame_layer,
-                      frame_layer->transform_tree_index())
-      .frame_element_id = ElementId(0x20);
+  auto& occluding_frame_node = CreateTransformNode(
+      occluding_frame_layer, frame_layer->transform_tree_index());
+  occluding_frame_node.frame_element_id = ElementId(0x20);
+  occluding_frame_node.parent_frame_id = frame_layer->transform_tree_index();
   occluding_frame_layer->SetOffsetToTransformParent(gfx::Vector2dF(25, 25));
 
   UpdateDrawProperties(host_impl_->active_tree());
 
+  // Both frame layers should return their own frame element IDs, despite
+  // overlapping.
   EXPECT_EQ(host_impl_->FindFrameElementIdAtPoint(gfx::PointF(15, 15)),
             ElementId(0x10));
   EXPECT_EQ(host_impl_->FindFrameElementIdAtPoint(gfx::PointF(30, 30)),
diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc
index 6586f68..0bd49e5d 100644
--- a/cc/trees/layer_tree_host_pixeltest_masks.cc
+++ b/cc/trees/layer_tree_host_pixeltest_masks.cc
@@ -278,11 +278,14 @@
 class LayerTreeHostMaskPixelTest_ScaledMaskWithEffect
     : public LayerTreeHostMaskPixelTestWithLayerList {
  protected:
-  // Scale the mask with a non-integral transform. This will trigger the
-  // AA path in the renderer.
+  // Scale the mask with a non-integral transform. This will trigger raster
+  // translation and may or may not trigger the AA path in the renderer.
   void SetupTree() override {
     LayerTreeHostMaskPixelTestWithLayerList::SetupTree();
 
+    // Use this offset to ensure the same rounding direction in different code
+    // paths for non-AA drawing (25.1 * 1.5 = 37.65).
+    mask_layer_->SetOffsetToTransformParent(gfx::Vector2dF(25.1, 25.1));
     auto& transform = CreateTransformNode(mask_layer_.get());
     transform.local.Scale(1.5, 1.5);
   }
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index dd11118f..571df55 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -2379,15 +2379,13 @@
 }
 
 static ElementId GetFrameElementIdForLayer(const LayerImpl* layer) {
-  ElementId frame_element_id;
   auto& transform_tree =
       layer->layer_tree_impl()->property_trees()->transform_tree;
   auto* node = transform_tree.Node(layer->transform_tree_index());
-  while (node && !frame_element_id) {
-    frame_element_id = node->frame_element_id;
-    node = transform_tree.parent(node);
+  while (node && !node->frame_element_id) {
+    node = transform_tree.Node(node->parent_frame_id);
   }
-  return frame_element_id;
+  return node ? node->frame_element_id : ElementId();
 }
 
 static void FindClosestMatchingLayerForAttribution(
@@ -2429,9 +2427,8 @@
   }
 
   // Iterate through the transform tree of the hit layer in order to derive the
-  // frame path (which is a subset of the transform path). If we hit any frame
-  // layer in our hit testing that belonged to a frame outside of this
-  // hierarchy, bail out.
+  // frame path. If we hit any frame layer in our hit testing that belonged to
+  // a frame outside of this hierarchy, bail out.
   //
   // We explicitly allow occluding layers whose frames are parents of the
   // targeted frame so that we can properly attribute the (common) parent ->
@@ -2441,7 +2438,7 @@
     auto& transform_tree =
         layer->layer_tree_impl()->property_trees()->transform_tree;
     for (auto* node = transform_tree.Node(layer->transform_tree_index()); node;
-         node = transform_tree.parent(node)) {
+         node = transform_tree.Node(node->parent_frame_id)) {
       hit_frame_element_ids.erase(node->frame_element_id);
       if (hit_frame_element_ids.size() == 0)
         break;
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index d14f379..d3b5401c 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -177,7 +177,6 @@
   UpdateScreenSpaceTransform(node, parent_node);
   UpdateAnimationProperties(node, parent_node);
   UpdateSnapping(node);
-  UpdateNodeAndAncestorsHaveIntegerTranslations(node, parent_node);
   UpdateTransformChanged(node, parent_node);
   UpdateNodeAndAncestorsAreAnimatedOrInvertible(node, parent_node);
 
@@ -1127,15 +1126,6 @@
   return false;
 }
 
-void TransformTree::UpdateNodeAndAncestorsHaveIntegerTranslations(
-    TransformNode* node,
-    TransformNode* parent_node) {
-  DCHECK(parent_node);
-  node->node_and_ancestors_have_only_integer_translation =
-      node->to_parent.IsIdentityOrIntegerTranslation() &&
-      parent_node->node_and_ancestors_have_only_integer_translation;
-}
-
 void ClipTree::SetViewportClip(gfx::RectF viewport_rect) {
   if (size() < 2)
     return;
diff --git a/cc/trees/property_tree_unittest.cc b/cc/trees/property_tree_unittest.cc
index 8ac8169..489ece12 100644
--- a/cc/trees/property_tree_unittest.cc
+++ b/cc/trees/property_tree_unittest.cc
@@ -4,6 +4,8 @@
 
 #include "cc/trees/property_tree.h"
 
+#include <utility>
+
 #include "cc/input/main_thread_scrolling_reason.h"
 #include "cc/test/geometry_test_utils.h"
 #include "cc/trees/clip_node.h"
@@ -419,45 +421,6 @@
   EXPECT_EQ(tree.Node(child)->screen_space_opacity, 0.25f);
 }
 
-TEST(PropertyTreeTest, NonIntegerTranslationTest) {
-  // This tests that when a node has non-integer translation, the information
-  // is propagated to the subtree.
-  PropertyTrees property_trees;
-  TransformTree& tree = property_trees.transform_tree;
-
-  int parent = tree.Insert(TransformNode(), 0);
-  tree.Node(parent)->local.Translate(1.5f, 1.5f);
-
-  int child = tree.Insert(TransformNode(), parent);
-  tree.Node(child)->local.Translate(1, 1);
-  tree.set_needs_update(true);
-  draw_property_utils::ComputeTransforms(&tree);
-  EXPECT_FALSE(
-      tree.Node(parent)->node_and_ancestors_have_only_integer_translation);
-  EXPECT_FALSE(
-      tree.Node(child)->node_and_ancestors_have_only_integer_translation);
-
-  tree.Node(parent)->local.Translate(0.5f, 0.5f);
-  tree.Node(child)->local.Translate(0.5f, 0.5f);
-  tree.Node(parent)->needs_local_transform_update = true;
-  tree.Node(child)->needs_local_transform_update = true;
-  tree.set_needs_update(true);
-  draw_property_utils::ComputeTransforms(&tree);
-  EXPECT_TRUE(
-      tree.Node(parent)->node_and_ancestors_have_only_integer_translation);
-  EXPECT_FALSE(
-      tree.Node(child)->node_and_ancestors_have_only_integer_translation);
-
-  tree.Node(child)->local.Translate(0.5f, 0.5f);
-  tree.Node(child)->needs_local_transform_update = true;
-  tree.set_needs_update(true);
-  draw_property_utils::ComputeTransforms(&tree);
-  EXPECT_TRUE(
-      tree.Node(parent)->node_and_ancestors_have_only_integer_translation);
-  EXPECT_TRUE(
-      tree.Node(child)->node_and_ancestors_have_only_integer_translation);
-}
-
 TEST(PropertyTreeTest, SingularTransformSnapTest) {
   // This tests that to_target transform is not snapped when it has a singular
   // transform.
diff --git a/cc/trees/transform_node.cc b/cc/trees/transform_node.cc
index b19c820b..d355e05 100644
--- a/cc/trees/transform_node.cc
+++ b/cc/trees/transform_node.cc
@@ -15,6 +15,7 @@
 TransformNode::TransformNode()
     : id(TransformTree::kInvalidNodeId),
       parent_id(TransformTree::kInvalidNodeId),
+      parent_frame_id(TransformTree::kInvalidNodeId),
       sticky_position_constraint_id(-1),
       sorting_context_id(0),
       needs_local_transform_update(true),
@@ -26,7 +27,6 @@
       to_screen_is_potentially_animated(false),
       flattens_inherited_transform(true),
       node_and_ancestors_are_flat(true),
-      node_and_ancestors_have_only_integer_translation(true),
       scrolls(false),
       should_be_snapped(false),
       moved_by_outer_viewport_bounds_delta_y(false),
@@ -40,6 +40,7 @@
 
 bool TransformNode::operator==(const TransformNode& other) const {
   return id == other.id && parent_id == other.parent_id &&
+         parent_frame_id == other.parent_frame_id &&
          element_id == other.element_id && local == other.local &&
          origin == other.origin && post_translation == other.post_translation &&
          to_parent == other.to_parent &&
@@ -55,8 +56,6 @@
              other.to_screen_is_potentially_animated &&
          flattens_inherited_transform == other.flattens_inherited_transform &&
          node_and_ancestors_are_flat == other.node_and_ancestors_are_flat &&
-         node_and_ancestors_have_only_integer_translation ==
-             other.node_and_ancestors_have_only_integer_translation &&
          scrolls == other.scrolls &&
          should_be_snapped == other.should_be_snapped &&
          moved_by_outer_viewport_bounds_delta_y ==
@@ -69,7 +68,8 @@
          scroll_offset == other.scroll_offset &&
          snap_amount == other.snap_amount &&
          maximum_animation_scale == other.maximum_animation_scale &&
-         starting_animation_scale == other.starting_animation_scale;
+         starting_animation_scale == other.starting_animation_scale &&
+         frame_element_id == other.frame_element_id;
 }
 
 void TransformNode::AsValueInto(base::trace_event::TracedValue* value) const {
diff --git a/cc/trees/transform_node.h b/cc/trees/transform_node.h
index d0257a6a..d135d9cc 100644
--- a/cc/trees/transform_node.h
+++ b/cc/trees/transform_node.h
@@ -28,6 +28,9 @@
   int id;
   // The node index of the parent node in the transform tree node vector.
   int parent_id;
+  // The node index of the nearest parent frame node in the transform tree node
+  // vector.
+  int parent_frame_id;
 
   ElementId element_id;
 
@@ -84,9 +87,6 @@
   // root is flat.
   bool node_and_ancestors_are_flat : 1;
 
-  // This is needed to know if a layer can use lcd text.
-  bool node_and_ancestors_have_only_integer_translation : 1;
-
   bool scrolls : 1;
 
   bool should_be_snapped : 1;
@@ -121,7 +121,8 @@
   float maximum_animation_scale;
   float starting_animation_scale;
 
-  // Element ID of the document containing this node.
+  // Set to the element ID of containing document if this transform node is the
+  // root of a frame subtree.
   ElementId frame_element_id;
 
   bool operator==(const TransformNode& other) const;
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
index 0779733..eec87817 100644
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -173,6 +173,7 @@
   "java/res/drawable-ldrtl-xxxhdpi-v17/btn_toolbar_reload.png",
   "java/res/drawable-ldrtl-xxxhdpi-v17/ic_share_white_24dp.png",
   "java/res/drawable-ldrtl-xxxhdpi-v17/ic_suggestion_magnifier.png",
+  "java/res/drawable-ldrtl/google_pay_with_divider.xml",
   "java/res/drawable-mdpi-v21/navigation_bubble_shadow.9.png",
   "java/res/drawable-mdpi/amex_card.png",
   "java/res/drawable-mdpi/badge_update_dark.png",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 86187f8..7c22473 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -809,7 +809,9 @@
   "java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java",
   "java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java",
   "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java",
   "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java",
   "java/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncher.java",
   "java/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotController.java",
   "java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java",
@@ -1537,7 +1539,7 @@
   "java/src/org/chromium/chrome/browser/tabbed_mode/TabbedSystemUiCoordinator.java",
   "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java",
   "java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java",
   "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelDelegate.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java",
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/AutofillKeyboardAccessoryViewBridge.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/AutofillKeyboardAccessoryViewBridge.java
index 6c4df4f1a..9c23f8c 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/AutofillKeyboardAccessoryViewBridge.java
+++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/AutofillKeyboardAccessoryViewBridge.java
@@ -154,7 +154,7 @@
     private static void addToAutofillSuggestionArray(AutofillSuggestion[] array, int index,
             String label, String sublabel, int iconId, int suggestionId, boolean isDeletable) {
         int drawableId = iconId == 0 ? DropdownItem.NO_ICON : iconId;
-        array[index] = new AutofillSuggestion(label, sublabel, drawableId,
+        array[index] = new AutofillSuggestion(label, sublabel, /* itemTag= */ "", drawableId,
                 false /* isIconAtStart */, suggestionId, isDeletable, false /* isMultilineLabel */,
                 false /* isBoldLabel */);
     }
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
index 78af915..eb7fcf1 100644
--- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
+++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
@@ -248,7 +248,7 @@
     @MediumTest
     public void testDismissesPasswordEducationBubbleOnFilling() {
         AutofillBarItem itemWithIPH =
-                new AutofillBarItem(new AutofillSuggestion("Johnathan", "Smith",
+                new AutofillBarItem(new AutofillSuggestion("Johnathan", "Smith", /*itemTag=*/"",
                                             DropdownItem.NO_ICON, false, -2, false, false, false),
                         new KeyboardAccessoryData.Action("", AUTOFILL_SUGGESTION, unused -> {}));
         itemWithIPH.setFeatureForIPH(FeatureConstants.KEYBOARD_ACCESSORY_PASSWORD_FILLING_FEATURE);
@@ -276,7 +276,7 @@
     @MediumTest
     public void testDismissesAddressEducationBubbleOnFilling() {
         AutofillBarItem itemWithIPH =
-                new AutofillBarItem(new AutofillSuggestion("Johnathan", "Smith",
+                new AutofillBarItem(new AutofillSuggestion("Johnathan", "Smith", /*itemTag=*/"",
                                             DropdownItem.NO_ICON, false, 1, false, false, false),
                         new KeyboardAccessoryData.Action("", AUTOFILL_SUGGESTION, unused -> {}));
         itemWithIPH.setFeatureForIPH(FeatureConstants.KEYBOARD_ACCESSORY_ADDRESS_FILL_FEATURE);
@@ -302,8 +302,8 @@
     @MediumTest
     public void testDismissesPaymentEducationBubbleOnFilling() {
         AutofillBarItem itemWithIPH = new AutofillBarItem(
-                new AutofillSuggestion("Johnathan", "Smith", DropdownItem.NO_ICON, false, 70000,
-                        false, false, false),
+                new AutofillSuggestion("Johnathan", "Smith", /*itemTag=*/"", DropdownItem.NO_ICON,
+                        false, 70000, false, false, false),
                 new KeyboardAccessoryData.Action("", AUTOFILL_SUGGESTION, unused -> {}));
         itemWithIPH.setFeatureForIPH(FeatureConstants.KEYBOARD_ACCESSORY_PAYMENT_FILLING_FEATURE);
 
@@ -358,8 +358,8 @@
 
     private BarItem[] createAutofillChipAndTab(String label, Callback<Action> chipCallback) {
         return new BarItem[] {
-                new AutofillBarItem(new AutofillSuggestion(label, "Smith", DropdownItem.NO_ICON,
-                                            false, 1, false, false, false),
+                new AutofillBarItem(new AutofillSuggestion(label, "Smith", /*itemTag=*/"",
+                                            DropdownItem.NO_ICON, false, 1, false, false, false),
                         new KeyboardAccessoryData.Action(
                                 "Unused", AUTOFILL_SUGGESTION, chipCallback)),
                 createTabs()};
diff --git a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java
index 253ae6f..6c3f4dc 100644
--- a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java
+++ b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java
@@ -246,10 +246,10 @@
         mCoordinator.registerActionProvider(generationProvider);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
 
-        AutofillSuggestion suggestion1 =
-                new AutofillSuggestion("FirstSuggestion", "", 0, false, 0, false, false, false);
-        AutofillSuggestion suggestion2 =
-                new AutofillSuggestion("SecondSuggestion", "", 0, false, 0, false, false, false);
+        AutofillSuggestion suggestion1 = new AutofillSuggestion(
+                "FirstSuggestion", "", /* itemTag= */ "", 0, false, 0, false, false, false);
+        AutofillSuggestion suggestion2 = new AutofillSuggestion(
+                "SecondSuggestion", "", /* itemTag= */ "", 0, false, 0, false, false, false);
         Action generationAction = new Action("Generate", GENERATE_PASSWORD_AUTOMATIC, (a) -> {});
         autofillSuggestionProvider.notifyObservers(
                 new AutofillSuggestion[] {suggestion1, suggestion2});
@@ -301,8 +301,8 @@
         mCoordinator.registerActionProvider(generationProvider);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
 
-        AutofillSuggestion suggestion =
-                new AutofillSuggestion("Suggestion", "", 0, false, 0, false, false, false);
+        AutofillSuggestion suggestion = new AutofillSuggestion(
+                "Suggestion", "", /* itemTag= */ "", 0, false, 0, false, false, false);
         Action generationAction = new Action("Generate", GENERATE_PASSWORD_AUTOMATIC, (a) -> {});
         autofillSuggestionProvider.notifyObservers(
                 new AutofillSuggestion[] {suggestion, suggestion});
@@ -355,7 +355,7 @@
                 new PropertyProvider<>(AUTOFILL_SUGGESTION);
         int suggestionId = 0x1; // The address ID is located in the least 16 bit.
         AutofillSuggestion addressSuggestion = new AutofillSuggestion(
-                "John", "Main Str", 0, false, suggestionId, false, false, false);
+                "John", "Main Str", /* itemTag= */ "", 0, false, suggestionId, false, false, false);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
         autofillSuggestionProvider.notifyObservers(
                 new AutofillSuggestion[] {addressSuggestion, addressSuggestion, addressSuggestion});
@@ -373,8 +373,8 @@
         PropertyProvider<AutofillSuggestion[]> autofillSuggestionProvider =
                 new PropertyProvider<>(AUTOFILL_SUGGESTION);
         int suggestionId = 0x10000; // The payment ID is located in the higher 16 bit.
-        AutofillSuggestion paymentSuggestion = new AutofillSuggestion(
-                "John", "4828 ****", 0, false, suggestionId, false, false, false);
+        AutofillSuggestion paymentSuggestion = new AutofillSuggestion("John", "4828 ****",
+                /* itemTag= */ "", 0, false, suggestionId, false, false, false);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
         autofillSuggestionProvider.notifyObservers(
                 new AutofillSuggestion[] {paymentSuggestion, paymentSuggestion, paymentSuggestion});
@@ -391,10 +391,12 @@
     public void testCreatesIPHForSecondPasswordItem() {
         PropertyProvider<AutofillSuggestion[]> autofillSuggestionProvider =
                 new PropertyProvider<>(AUTOFILL_SUGGESTION);
-        AutofillSuggestion passwordSuggestion1 = new AutofillSuggestion(
-                "John", "****", 0, false, PopupItemId.ITEM_ID_USERNAME_ENTRY, false, false, false);
-        AutofillSuggestion passwordSuggestion2 = new AutofillSuggestion("Eva", "*******", 0, false,
-                PopupItemId.ITEM_ID_PASSWORD_ENTRY, false, false, false);
+        AutofillSuggestion passwordSuggestion1 =
+                new AutofillSuggestion("John", "****", /* itemTg= */ "", 0, false,
+                        PopupItemId.ITEM_ID_USERNAME_ENTRY, false, false, false);
+        AutofillSuggestion passwordSuggestion2 =
+                new AutofillSuggestion("Eva", "*******", /* itemTag= */ "", 0, false,
+                        PopupItemId.ITEM_ID_PASSWORD_ENTRY, false, false, false);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
         autofillSuggestionProvider.notifyObservers(new AutofillSuggestion[] {
                 passwordSuggestion1, passwordSuggestion2, passwordSuggestion2});
@@ -443,8 +445,8 @@
         mCoordinator.dismiss(); // Hide, so it's brought up again.
         PropertyProvider<AutofillSuggestion[]> autofillSuggestionProvider =
                 new PropertyProvider<>(AUTOFILL_SUGGESTION);
-        AutofillSuggestion suggestion =
-                new AutofillSuggestion("Label", "sublabel", 0, false, 0, false, false, false);
+        AutofillSuggestion suggestion = new AutofillSuggestion(
+                "Label", "sublabel", /* itemTag= */ "", 0, false, 0, false, false, false);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
         autofillSuggestionProvider.notifyObservers(new AutofillSuggestion[] {suggestion});
         mCoordinator.show();
@@ -487,8 +489,8 @@
 
         PropertyProvider<AutofillSuggestion[]> autofillSuggestionProvider =
                 new PropertyProvider<>(AUTOFILL_SUGGESTION);
-        AutofillSuggestion suggestion =
-                new AutofillSuggestion("Label", "sublabel", 0, false, 0, false, false, false);
+        AutofillSuggestion suggestion = new AutofillSuggestion(
+                "Label", "sublabel", /* itemTag= */ "", 0, false, 0, false, false, false);
         mCoordinator.registerAutofillProvider(autofillSuggestionProvider, mMockAutofillDelegate);
         autofillSuggestionProvider.notifyObservers(new AutofillSuggestion[] {suggestion});
         assertThat(getShownMetricsCount(AccessoryBarContents.WITH_AUTOFILL_SUGGESTIONS), is(1));
diff --git a/chrome/android/features/start_surface/internal/BUILD.gn b/chrome/android/features/start_surface/internal/BUILD.gn
index 8539b2e..0596fc0 100644
--- a/chrome/android/features/start_surface/internal/BUILD.gn
+++ b/chrome/android/features/start_surface/internal/BUILD.gn
@@ -27,7 +27,6 @@
     "java/res/drawable-xxhdpi/ic_home.png",
     "java/res/drawable-xxxhdpi/ic_explore.png",
     "java/res/drawable-xxxhdpi/ic_home.png",
-    "java/res/drawable/feed_loading_image_placeholder.xml",
     "java/res/drawable/hairline_border_card_background_light.xml",
     "java/res/layout/feed_loading_layout.xml",
     "java/res/layout/ss_bottom_bar_layout.xml",
diff --git a/chrome/android/features/start_surface/internal/java/res/drawable/feed_loading_image_placeholder.xml b/chrome/android/features/start_surface/internal/java/res/drawable/feed_loading_image_placeholder.xml
deleted file mode 100644
index cb675d10..0000000
--- a/chrome/android/features/start_surface/internal/java/res/drawable/feed_loading_image_placeholder.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/image_placeholder"
-        android:top="15dp"
-        android:right="15dp"
-        android:left="0dp"
-        android:bottom="72dp">
-        <shape
-            android:shape="rectangle"
-            android:gravity="top|left">
-            <solid android:color="@color/feed_placeholder_color"/>
-            <corners android:radius="8dp" />
-            <size
-                android:width="92dp"
-                android:height="92dp"/>
-        </shape>
-    </item>
-
-    <item
-        android:height="48dp"
-        android:width="48dp"
-        android:gravity="bottom|right">
-        <bitmap android:src="@drawable/ic_more_vert_24dp"
-            android:gravity="center" />
-    </item>
-</layer-list>
\ No newline at end of file
diff --git a/chrome/android/features/start_surface/internal/java/res/drawable/hairline_border_card_background_light.xml b/chrome/android/features/start_surface/internal/java/res/drawable/hairline_border_card_background_light.xml
index e79fd889..cbfff67 100644
--- a/chrome/android/features/start_surface/internal/java/res/drawable/hairline_border_card_background_light.xml
+++ b/chrome/android/features/start_surface/internal/java/res/drawable/hairline_border_card_background_light.xml
@@ -7,6 +7,6 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle" >
     <solid android:color="@color/default_bg_color" />
-    <stroke android:width="1dp" android:color="@color/data_reduction_chart_background_color"/>
+    <stroke android:width="1dp" android:color="@color/feed_placeholder_color"/>
     <corners android:radius="@dimen/default_rounded_corner_radius" />
 </shape>
diff --git a/chrome/android/features/start_surface/internal/java/res/values/colors.xml b/chrome/android/features/start_surface/internal/java/res/values/colors.xml
index 82cb56c..aec4623 100644
--- a/chrome/android/features/start_surface/internal/java/res/values/colors.xml
+++ b/chrome/android/features/start_surface/internal/java/res/values/colors.xml
@@ -4,5 +4,5 @@
      found in the LICENSE file. -->
 
 <resources>
-    <color name="feed_placeholder_color">@color/hairline_stroke_color_light</color>
+    <color name="feed_placeholder_color">@color/default_bg_color_secondary_light</color>
 </resources>
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/FeedLoadingLayout.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/FeedLoadingLayout.java
index 30614241..80c04fd9 100644
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/FeedLoadingLayout.java
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/FeedLoadingLayout.java
@@ -29,22 +29,22 @@
  * A {@link LinearLayout} that shows loading placeholder for Feed cards with thumbnail on the right.
  */
 public class FeedLoadingLayout extends LinearLayout {
-    private static final int CARD_NUM = 4;
-    private static final int CARD_HEIGHT_DP = 180;
-    private static final int CARD_HEIGHT_DENSE_DP = 156;
     private static final int CARD_MARGIN_DP = 12;
-    private static final int PLACEHOLDER_CARD_PADDING_DP = 15;
-    private static final int IMAGE_PLACEHOLDER_BOTTOM_PADDING_DP = 48;
-    private static final int IMAGE_PLACEHOLDER_BOTTOM_PADDING_DENSE_DP = 72;
-    private static final int IMAGE_PLACEHOLDER_WIDTH_DP = 107;
-    private static final int TEXT_PLACEHOLDER_HEIGHT_DP = 25;
+    private static final int CARD_PADDING_DP = 15;
+    private static final int IMAGE_PLACEHOLDER_BOTTOM_PADDING_DP = 72;
+    private static final int IMAGE_PLACEHOLDER_BOTTOM_PADDING_DENSE_DP = 48;
+    private static final int IMAGE_PLACEHOLDER_SIZE_DP = 92;
+    private static final int TEXT_CONTENT_HEIGHT_DP = 80;
+    private static final int TEXT_PLACEHOLDER_HEIGHT_DP = 20;
     private static final int TEXT_PLACEHOLDER_RADIUS_DP = 12;
+    private static final int LARGE_IMAGE_HEIGHT_DP = 207;
 
     private final Context mContext;
     private final Resources mResources;
     private long mLayoutInflationCompleteMs;
     private int mScreenWidthDp;
     private int mPaddingPx;
+    private boolean mIsFirstCardDense;
 
     public FeedLoadingLayout(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -55,7 +55,6 @@
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        setHeader();
         setPlaceholders();
         mLayoutInflationCompleteMs = SystemClock.elapsedRealtime();
     }
@@ -91,83 +90,143 @@
     }
 
     private void setPlaceholders() {
+        setHeader();
         setPadding();
-        boolean isLandscape = getResources().getConfiguration().orientation
-                == Configuration.ORIENTATION_LANDSCAPE;
+        LinearLayout cardsParentView = findViewById(R.id.placeholders_layout);
+        cardsParentView.removeAllViews();
+
+        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        lp.setMargins(0, 0, 0, dpToPx(CARD_MARGIN_DP));
+
+        // Set the First placeholder container - an image-right card.
         // If it's in landscape mode, the placeholder should always show in dense mode. Otherwise,
         // whether the placeholder is dense depends on whether the first article card of Feed is
         // dense.
-        setPlaceholders(isLandscape || StartSurfaceConfiguration.isFeedPlaceholderDense());
+        boolean isLandscape = getResources().getConfiguration().orientation
+                == Configuration.ORIENTATION_LANDSCAPE;
+        mIsFirstCardDense = isLandscape || StartSurfaceConfiguration.isFeedPlaceholderDense();
+        setPlaceholders(cardsParentView, true, lp);
+
+        // Set the second and the third placeholder containers - the large image on the top.
+        setPlaceholders(cardsParentView, false, lp);
+        setPlaceholders(cardsParentView, false, lp);
     }
 
-    private void setPlaceholders(boolean isDense) {
-        LinearLayout cardsParentView = findViewById(R.id.placeholders_layout);
-        cardsParentView.removeAllViews();
-        int cardHeight = isDense ? dpToPx(CARD_HEIGHT_DENSE_DP) : dpToPx(CARD_HEIGHT_DP);
-        LinearLayout.LayoutParams cardLp =
-                new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, cardHeight);
-        cardLp.setMargins(0, 0, 0, dpToPx(CARD_MARGIN_DP));
-        LinearLayout.LayoutParams textPlaceholderLp =
-                new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1);
+    private void setPlaceholders(
+            LinearLayout parent, boolean isSmallCard, ViewGroup.LayoutParams lp) {
+        LinearLayout container = new LinearLayout(mContext);
+        container.setLayoutParams(lp);
+        container.setBackgroundResource(R.drawable.hairline_border_card_background_light);
+        container.setOrientation(isSmallCard ? HORIZONTAL : VERTICAL);
+        ImageView imagePlaceholder = getImagePlaceholder(isSmallCard);
+        ImageView textPlaceholder = getTextPlaceholder(isSmallCard);
+        container.addView(isSmallCard ? textPlaceholder : imagePlaceholder);
+        container.addView(isSmallCard ? imagePlaceholder : textPlaceholder);
+        parent.addView(container);
+    }
+
+    private ImageView getImagePlaceholder(boolean isSmallCard) {
         LinearLayout.LayoutParams imagePlaceholderLp = new LinearLayout.LayoutParams(
                 ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        for (int i = 0; i < CARD_NUM; i++) {
-            // The card container.
-            LinearLayout container = new LinearLayout(mContext);
-            container.setLayoutParams(cardLp);
-            container.setBackgroundResource(R.drawable.hairline_border_card_background_light);
-            container.setOrientation(HORIZONTAL);
-
-            // The placeholder of suggestion titles, context and publisher.
-            ImageView textPlaceholder = new ImageView(mContext);
-            textPlaceholder.setImageDrawable(setTextPlaceholder(cardHeight));
-            textPlaceholder.setLayoutParams(textPlaceholderLp);
-            textPlaceholder.setScaleType(ImageView.ScaleType.FIT_XY);
-            container.addView(textPlaceholder);
-
-            // The placeholder of image and menu icon.
-            ImageView imagePlaceholder = new ImageView(mContext);
-            imagePlaceholder.setImageDrawable(setImagePlaceholder(isDense));
-            imagePlaceholder.setLayoutParams(imagePlaceholderLp);
-            container.addView(imagePlaceholder);
-
-            cardsParentView.addView(container);
-        }
+        ImageView imagePlaceholder = new ImageView(mContext);
+        int imageRadius = mResources.getDimensionPixelSize(R.dimen.default_rounded_corner_radius);
+        imagePlaceholder.setImageDrawable(isSmallCard ? getSmallImageDrawable(imageRadius)
+                                                      : getLargeImageDrawable(imageRadius));
+        imagePlaceholder.setLayoutParams(imagePlaceholderLp);
+        imagePlaceholder.setScaleType(ImageView.ScaleType.FIT_XY);
+        return imagePlaceholder;
     }
 
-    private LayerDrawable setImagePlaceholder(boolean isDense) {
-        LayerDrawable layerDrawable = (LayerDrawable) getResources().getDrawable(
-                R.drawable.feed_loading_image_placeholder);
-        int padding = dpToPx(PLACEHOLDER_CARD_PADDING_DP);
+    private LayerDrawable getSmallImageDrawable(int imageRadius) {
+        int imageSize = dpToPx(IMAGE_PLACEHOLDER_SIZE_DP);
+        int padding = dpToPx(CARD_PADDING_DP);
+        GradientDrawable[] placeholder = getRectangles(1, imageSize, imageSize, imageRadius, false);
+        LayerDrawable layerDrawable = new LayerDrawable(placeholder);
         layerDrawable.setLayerInset(0, 0, padding, padding,
-                isDense ? dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DP)
-                        : dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DENSE_DP));
+                mIsFirstCardDense ? dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DENSE_DP)
+                                  : dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DP));
         return layerDrawable;
     }
 
-    private LayerDrawable setTextPlaceholder(int cardHeight) {
-        int top = dpToPx(PLACEHOLDER_CARD_PADDING_DP);
+    private LayerDrawable getLargeImageDrawable(int imageRadius) {
+        GradientDrawable[] placeholder = getRectangles(1, dpToPx(mScreenWidthDp) - mPaddingPx * 2,
+                dpToPx(LARGE_IMAGE_HEIGHT_DP), imageRadius, true);
+        return new LayerDrawable(placeholder);
+    }
+
+    private ImageView getTextPlaceholder(boolean isSmallCard) {
+        int top = dpToPx(CARD_PADDING_DP);
         int left = top / 2;
-        int right = top;
         int height = dpToPx(TEXT_PLACEHOLDER_HEIGHT_DP);
-        int width = dpToPx(mScreenWidthDp) - mPaddingPx * 2 - dpToPx(IMAGE_PLACEHOLDER_WIDTH_DP);
-        GradientDrawable[] placeholders = new GradientDrawable[3];
-        for (int i = 0; i < placeholders.length; i++) {
+        int width = dpToPx(mScreenWidthDp) - mPaddingPx * 2;
+        int radius = dpToPx(TEXT_PLACEHOLDER_RADIUS_DP);
+        int contentHeight = dpToPx(TEXT_CONTENT_HEIGHT_DP);
+
+        LinearLayout.LayoutParams textPlaceholderLp = isSmallCard
+                ? new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1)
+                : new LinearLayout.LayoutParams(
+                        ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+        LayerDrawable layerDrawable = isSmallCard
+                ? getSmallTextDrawable(top, left,
+                        width - dpToPx(IMAGE_PLACEHOLDER_SIZE_DP) - dpToPx(CARD_PADDING_DP), height,
+                        radius, contentHeight)
+                : getLargeTextDrawable(top, left, width, height, radius, contentHeight + 2 * top);
+
+        ImageView textPlaceholder = new ImageView(mContext);
+        textPlaceholder.setImageDrawable(layerDrawable);
+        textPlaceholder.setLayoutParams(textPlaceholderLp);
+        textPlaceholder.setScaleType(ImageView.ScaleType.FIT_XY);
+        return textPlaceholder;
+    }
+
+    private LayerDrawable getSmallTextDrawable(
+            int top, int left, int width, int height, int radius, int contentHeight) {
+        GradientDrawable[] placeholders = getRectangles(4, width, height, radius, false);
+        int cardHeight = dpToPx(IMAGE_PLACEHOLDER_SIZE_DP) + dpToPx(CARD_PADDING_DP)
+                + (mIsFirstCardDense ? dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DENSE_DP)
+                                     : dpToPx(IMAGE_PLACEHOLDER_BOTTOM_PADDING_DP));
+        LayerDrawable layerDrawable = new LayerDrawable(placeholders);
+        // Title Placeholder
+        layerDrawable.setLayerInset(0, left, top, top, cardHeight - top - height);
+        // Content Placeholder
+        layerDrawable.setLayerInset(1, left, (contentHeight - height) / 2 + top, top,
+                cardHeight - top - (height + contentHeight) / 2);
+        layerDrawable.setLayerInset(
+                2, left, top + contentHeight - height, top, cardHeight - top - contentHeight);
+        // Publisher Placeholder
+        layerDrawable.setLayerInset(3, left, cardHeight - top - height, top * 7, top);
+        return layerDrawable;
+    }
+
+    private LayerDrawable getLargeTextDrawable(
+            int top, int left, int width, int height, int radius, int contentHeight) {
+        GradientDrawable[] placeholders = getRectangles(3, width, height, radius, false);
+        LayerDrawable layerDrawable = new LayerDrawable(placeholders);
+        layerDrawable.setLayerInset(0, left, top, top, contentHeight - top - height);
+        layerDrawable.setLayerInset(
+                1, left, (contentHeight - height) / 2, top, (contentHeight - height) / 2);
+        layerDrawable.setLayerInset(2, left, contentHeight - top - height, top, top);
+        return layerDrawable;
+    }
+
+    private GradientDrawable[] getRectangles(
+            int num, int width, int height, int radius, boolean setBottomRadius) {
+        GradientDrawable[] placeholders = new GradientDrawable[num];
+        for (int i = 0; i < num; i++) {
             placeholders[i] = new GradientDrawable();
             placeholders[i].setShape(GradientDrawable.RECTANGLE);
             placeholders[i].setSize(width, height);
-            placeholders[i].setCornerRadius(dpToPx(TEXT_PLACEHOLDER_RADIUS_DP));
+            if (setBottomRadius) {
+                placeholders[i].setCornerRadii(
+                        new float[] {radius, radius, radius, radius, 0, 0, 0, 0});
+            } else {
+                placeholders[i].setCornerRadius(radius);
+            }
             placeholders[i].setColor(mResources.getColor(R.color.feed_placeholder_color));
         }
-        LayerDrawable layerDrawable = new LayerDrawable(placeholders);
-        // Title Placeholder
-        layerDrawable.setLayerInset(0, left, top, right, cardHeight - top - height);
-        // Content Placeholder
-        layerDrawable.setLayerInset(
-                1, left, (cardHeight - height) / 2, right, (cardHeight - height) / 2);
-        // Publisher Placeholder
-        layerDrawable.setLayerInset(2, left, cardHeight - top - height, right * 7, top);
-        return layerDrawable;
+        return placeholders;
     }
 
     private int dpToPx(int dp) {
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
index d3cbf76..457a286 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/InstantStartTest.java
@@ -665,7 +665,7 @@
         ViewUtils.onViewWaiting(AllOf.allOf(withId(R.id.single_tab_view), isDisplayed()));
         ChromeRenderTestRule.sanitize(surface);
         // TODO(crbug.com/1065314): fix favicon.
-        mRenderTestRule.render(surface, "singlePane_singleTab_noMV");
+        mRenderTestRule.render(surface, "singlePane_singleTab_noMV2");
 
         // Initializes native.
         startAndWaitNativeInitialization();
diff --git a/chrome/android/java/res/drawable-ldrtl/google_pay_with_divider.xml b/chrome/android/java/res/drawable-ldrtl/google_pay_with_divider.xml
new file mode 100644
index 0000000..ab67a1a6
--- /dev/null
+++ b/chrome/android/java/res/drawable-ldrtl/google_pay_with_divider.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2018 The Chromium Authors. All rights reserved.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file. -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:targetApi="21"
+    android:viewportWidth="51"
+    android:viewportHeight="18"
+    android:width="51dp"
+    android:height="18dp">
+    <group
+        android:translateX="10"
+        android:translateY="2">
+        <path
+            android:pathData="M18.917431 7.8244571l0 4.6399999 -1.477064 0 0 -11.4587427 3.917431 0c0.944471 -0.0196613 1.857695 0.3374638 2.536697 0.992 0.686994 0.6158247 1.073338 1.497534 1.059633 2.4182857 0.01968 0.9258944 -0.367355 1.8141839 -1.059633 2.432 -0.685015 0.6509714 -1.530581 0.9761524 -2.536697 0.9755429l-2.440367 0 0 0.0009142zm0 -5.408l0 4 2.477064 0c0.5491 0.01622 1.079649 -0.198856 1.461468 -0.5924571 0.379503 -0.3676966 0.593614 -0.8727466 0.593614 -1.4002286 0 -0.527482 -0.214111 -1.0325319 -0.593614 -1.4002285 -0.377188 -0.4020603 -0.909383 -0.6234641 -1.461468 -0.608l-2.477064 0 0 0.0009142z"
+            android:fillColor="@color/default_text_color" />
+        <path
+            android:pathData="M28.357798 4.3684571c1.091743 0 1.953517 0.2907429 2.585321 0.8722286 0.631804 0.5814857 0.947401 1.3787429 0.946789 2.3917714l0 4.8319999 -1.412844 0 0 -1.088 -0.06422 0c-0.611621 0.896 -1.425076 1.344 -2.440367 1.344 -0.866667 0 -1.591743 -0.256 -2.175229 -0.768 -0.567096 -0.475912 -0.888636 -1.181278 -0.87523 -1.92 0 -0.811276 0.307646 -1.456457 0.922936 -1.9355427 0.615291 -0.4790857 1.436697 -0.7192381 2.46422 -0.7204572 0.877065 0 1.599389 0.16 2.166973 0.48l0 -0.3364571c0.0034 -0.5035772 -0.220635 -0.9819784 -0.610092 -1.3028571 -0.3906 -0.3511973 -0.899646 -0.5428227 -1.425688 -0.5366858 -0.825077 0 -1.477982 0.3468191 -1.958716 1.0404572L25.180734 5.9044571c0.715596 -1.024 1.774618 -1.536 3.177064 -1.536zm-1.911009 5.6959999c-0.002 0.380106 0.180494 0.737732 0.489908 0.96 0.326677 0.256087 0.732147 0.391749 1.147707 0.384 0.623298 -0.001 1.220764 -0.248279 1.661468 -0.687543 0.489296 -0.458971 0.733944 -0.9974854 0.733944 -1.6155426C30.019266 8.7396571 29.377064 8.5568 28.553211 8.5568c-0.6 0 -1.100306 0.1441524 -1.500917 0.4324571 -0.404588 0.2925715 -0.605505 0.6482286 -0.605505 1.0751999z"
+            android:fillColor="@color/default_text_color" />
+        <path
+            android:pathData="M33.73578 4.6244571l2.344036 5.6319999 0.03211 0 2.279816 -5.6319999 1.608257 0 -4.93211 11.2959999 -1.524771 0 1.830276 -3.952457 -3.24312 -7.3435429z"
+            android:fillColor="@color/default_text_color" />
+        <path
+            android:pathData="M12.948624 6.8242286c0.000557 -0.4485925 -0.0375 -0.8964058 -0.113762 -1.3385143l-6.2293574 0 0 2.5353143 3.5678904 0C10.025863 8.8392705 9.5492873 9.5619224 8.8541284 10.021486l0 1.645714 2.1293576 0c1.246789 -1.1456 1.965138 -2.8397714 1.965138 -4.8429714z"
+            android:fillColor="#4285f4" />
+        <path
+            android:pathData="M6.6055046 13.257143c1.7825688 0 3.2834862 -0.583314 4.3779814 -1.589029L8.8541284 10.0224c-0.5926605 0.400457 -1.3559633 0.629029 -2.2486238 0.629029 -1.7229358 0 -3.1853211 -1.1574861 -3.7082569 -2.7172576l-2.19357797 0 0 1.696C1.8249118 11.853675 4.1084606 13.257029 6.6055046 13.257143Z"
+            android:fillColor="#34a853" />
+        <path
+            android:pathData="M2.8972477 7.9341714c-0.2764574 -0.8173308 -0.2764574 -1.7024406 0 -2.5197714l0 -1.696 -2.19357797 0c-0.93782491 1.8597741 -0.93782491 4.0519973 0 5.9117714l2.19357797 -1.696z"
+            android:fillColor="#fabb05" />
+        <path
+            android:pathData="M6.6055046 2.6971429C7.5475115 2.6818057 8.4577402 3.036504 9.1394495 3.6845714L11.024771 1.8057143C9.8292808 0.68669789 8.2455222 0.07233914 6.6055046 0.09142857 4.1084606 0.09154199 1.8249118 1.4948964 0.70366973 3.7184L2.8972477 5.4144C3.4201835 3.8546286 4.8825688 2.6971429 6.6055046 2.6971429Z"
+            android:fillColor="#e94235" />
+    </group>
+    <path
+        android:pathData="M1 16l0 -14 1 0 0 14z"
+        android:fillColor="@color/divider_line_bg_color" />
+</vector>
diff --git a/chrome/android/java/res/layout/autofill_card_unmask_prompt.xml b/chrome/android/java/res/layout/autofill_card_unmask_prompt.xml
index 406968a..d114f44ce 100644
--- a/chrome/android/java/res/layout/autofill_card_unmask_prompt.xml
+++ b/chrome/android/java/res/layout/autofill_card_unmask_prompt.xml
@@ -12,8 +12,16 @@
     android:layout_width="wrap_content"
     android:layout_height="wrap_content">
 
+    <androidx.appcompat.widget.DialogTitle
+        android:id="@+id/title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="@style/TextAppearance.AlertDialogTitleStyle"
+        style="@style/AlertDialogContent"/>
+
     <TextView
         android:id="@+id/no_retry_error_message"
+        android:layout_below="@+id/title"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="23dp"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index 95b7b6e..69467c5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -91,6 +91,8 @@
 import org.chromium.chrome.browser.gsa.GSAState;
 import org.chromium.chrome.browser.help.HelpAndFeedback;
 import org.chromium.chrome.browser.history.HistoryManagerUtils;
+import org.chromium.chrome.browser.incognito.IncognitoNotificationPresenceController;
+import org.chromium.chrome.browser.incognito.IncognitoProfileDestroyer;
 import org.chromium.chrome.browser.init.AsyncInitializationActivity;
 import org.chromium.chrome.browser.init.ProcessInitializationHandler;
 import org.chromium.chrome.browser.init.StartupTabPreloader;
@@ -620,6 +622,8 @@
         mIncognitoTabCreator = tabCreators.second;
 
         OfflinePageUtils.observeTabModelSelector(this, mTabModelSelector);
+        IncognitoProfileDestroyer.observeTabModelSelector(mTabModelSelector);
+        IncognitoNotificationPresenceController.observeTabModelSelector(mTabModelSelector);
 
         if (mTabModelSelectorTabObserver != null) mTabModelSelectorTabObserver.destroy();
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java
index 7a874b4..e9edf877 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java
@@ -173,8 +173,8 @@
             String label, String sublabel, int iconId, boolean isIconAtStart,
             int suggestionId, boolean isDeletable, boolean isLabelMultiline, boolean isLabelBold) {
         int drawableId = iconId == 0 ? DropdownItem.NO_ICON : iconId;
-        array[index] = new AutofillSuggestion(label, sublabel, drawableId, isIconAtStart,
-                suggestionId, isDeletable, isLabelMultiline, isLabelBold);
+        array[index] = new AutofillSuggestion(label, sublabel, /*itemTag= */ "", drawableId,
+                isIconAtStart, suggestionId, isDeletable, isLabelMultiline, isLabelBold);
     }
 
     @NativeMethods
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
index d0448916..cf59cb51 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java
@@ -24,10 +24,11 @@
     private final CardUnmaskPrompt mCardUnmaskPrompt;
 
     public CardUnmaskBridge(long nativeCardUnmaskPromptViewAndroid, String title,
-            String instructions, String confirmButtonLabel, int iconId,
-            boolean shouldRequestExpirationDate, boolean defaultToStoringLocally,
-            boolean shouldOfferWebauthn, boolean defaultUseScreenlockChecked,
-            long successMessageDurationMilliseconds, WindowAndroid windowAndroid) {
+            String instructions, String confirmButtonLabel, int cvcIconId, int googlePayIconId,
+            boolean isCardLocal, boolean shouldRequestExpirationDate,
+            boolean defaultToStoringLocally, boolean shouldOfferWebauthn,
+            boolean defaultUseScreenlockChecked, long successMessageDurationMilliseconds,
+            WindowAndroid windowAndroid) {
         mNativeCardUnmaskPromptViewAndroid = nativeCardUnmaskPromptViewAndroid;
         Activity activity = windowAndroid.getActivity().get();
         if (activity == null) {
@@ -37,21 +38,23 @@
             new Handler().post(() -> dismissed());
         } else {
             mCardUnmaskPrompt = new CardUnmaskPrompt(activity, this, title, instructions,
-                    confirmButtonLabel, iconId, shouldRequestExpirationDate,
-                    defaultToStoringLocally, shouldOfferWebauthn, defaultUseScreenlockChecked,
-                    successMessageDurationMilliseconds);
+                    confirmButtonLabel, cvcIconId, googlePayIconId, isCardLocal,
+                    shouldRequestExpirationDate, defaultToStoringLocally, shouldOfferWebauthn,
+                    defaultUseScreenlockChecked, successMessageDurationMilliseconds);
         }
     }
 
     @CalledByNative
     private static CardUnmaskBridge create(long nativeUnmaskPrompt, String title,
-            String instructions, String confirmButtonLabel, int iconId,
-            boolean shouldRequestExpirationDate, boolean defaultToStoringLocally,
-            boolean shouldOfferWebauthn, boolean defaultUseScreenlockChecked,
-            long successMessageDurationMilliseconds, WindowAndroid windowAndroid) {
+            String instructions, String confirmButtonLabel, int cvcIconId, int googlePayIconId,
+            boolean isCardLocal, boolean shouldRequestExpirationDate,
+            boolean defaultToStoringLocally, boolean shouldOfferWebauthn,
+            boolean defaultUseScreenlockChecked, long successMessageDurationMilliseconds,
+            WindowAndroid windowAndroid) {
         return new CardUnmaskBridge(nativeUnmaskPrompt, title, instructions, confirmButtonLabel,
-                iconId, shouldRequestExpirationDate, defaultToStoringLocally, shouldOfferWebauthn,
-                defaultUseScreenlockChecked, successMessageDurationMilliseconds, windowAndroid);
+                cvcIconId, googlePayIconId, isCardLocal, shouldRequestExpirationDate,
+                defaultToStoringLocally, shouldOfferWebauthn, defaultUseScreenlockChecked,
+                successMessageDurationMilliseconds, windowAndroid);
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
index 9c5f5ce2..fa8c79d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
@@ -6,10 +6,14 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.text.Editable;
 import android.text.InputFilter;
+import android.text.Spannable;
+import android.text.SpannableString;
 import android.text.TextWatcher;
+import android.text.style.ImageSpan;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -23,6 +27,7 @@
 import android.widget.PopupWindow;
 import android.widget.ProgressBar;
 import android.widget.TextView;
+import android.widget.TextView.BufferType;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.core.text.TextUtilsCompat;
@@ -32,6 +37,7 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.autofill.AutofillUiUtils.ErrorType;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.ui.modaldialog.DialogDismissalCause;
 import org.chromium.ui.modaldialog.ModalDialogManager;
 import org.chromium.ui.modaldialog.ModalDialogProperties;
@@ -53,6 +59,7 @@
 
     private final View mMainView;
     private final TextView mInstructions;
+    private final TextView mTitleView;
     private final TextView mNoRetryErrorMessage;
     private final EditText mCardUnmaskInput;
     private final EditText mMonthInput;
@@ -144,16 +151,17 @@
     }
 
     public CardUnmaskPrompt(Context context, CardUnmaskPromptDelegate delegate, String title,
-            String instructions, String confirmButtonLabel, int drawableId,
-            boolean shouldRequestExpirationDate, boolean defaultToStoringLocally,
-            boolean shouldOfferWebauthn, boolean defaultUseScreenlockChecked,
-            long successMessageDurationMilliseconds) {
+            String instructions, String confirmButtonLabel, int cvcDrawableId,
+            int googlePayDrawableId, boolean isCardLocal, boolean shouldRequestExpirationDate,
+            boolean defaultToStoringLocally, boolean shouldOfferWebauthn,
+            boolean defaultUseScreenlockChecked, long successMessageDurationMilliseconds) {
         mDelegate = delegate;
 
         LayoutInflater inflater = LayoutInflater.from(context);
         View v = inflater.inflate(R.layout.autofill_card_unmask_prompt, null);
         mInstructions = (TextView) v.findViewById(R.id.instructions);
         mInstructions.setText(instructions);
+        mTitleView = (TextView) v.findViewById(R.id.title);
 
         mMainView = v;
         mNoRetryErrorMessage = (TextView) v.findViewById(R.id.no_retry_error_message);
@@ -179,17 +187,41 @@
         mVerificationProgressBar = (ProgressBar) v.findViewById(R.id.verification_progress_bar);
         mVerificationView = (TextView) v.findViewById(R.id.verification_message);
         mSuccessMessageDurationMilliseconds = successMessageDurationMilliseconds;
-        ((ImageView) v.findViewById(R.id.cvc_hint_image)).setImageResource(drawableId);
+        ((ImageView) v.findViewById(R.id.cvc_hint_image)).setImageResource(cvcDrawableId);
 
         Resources resources = context.getResources();
-        mDialogModel = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
-                               .with(ModalDialogProperties.CONTROLLER, this)
-                               .with(ModalDialogProperties.TITLE, title)
-                               .with(ModalDialogProperties.CUSTOM_VIEW, v)
-                               .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, confirmButtonLabel)
-                               .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
-                                       R.string.cancel)
-                               .build();
+        String modalDialogTitle = null;
+        if (isGooglePayLogoEnabled() && !isCardLocal) {
+            Drawable mInlineTitleIcon = resources.getDrawable(googlePayDrawableId);
+            // The first character will be replaced by the logo, and the consecutive spaces after
+            // are used as padding.
+            SpannableString titleWithLogo = new SpannableString("   " + title);
+            // How much the original logo should scale up in size to match height of text.
+            float scaleFactor = mTitleView.getTextSize() / mInlineTitleIcon.getIntrinsicHeight();
+            mInlineTitleIcon.setBounds(
+                    /* left */ 0, /* top */ 0,
+                    /* right */ (int) (scaleFactor * mInlineTitleIcon.getIntrinsicWidth()),
+                    /* bottom */ (int) (scaleFactor * mInlineTitleIcon.getIntrinsicHeight()));
+            titleWithLogo.setSpan(new ImageSpan(mInlineTitleIcon, ImageSpan.ALIGN_CENTER),
+                    /* start */ 0,
+                    /* end */ 1,
+                    /* flags */ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+            mTitleView.setText(titleWithLogo, BufferType.SPANNABLE);
+        } else {
+            mTitleView.setVisibility(View.GONE);
+            modalDialogTitle = title;
+        }
+        PropertyModel.Builder dialogModelBuilder =
+                new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
+                        .with(ModalDialogProperties.CONTROLLER, this)
+                        .with(ModalDialogProperties.CUSTOM_VIEW, v)
+                        .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, confirmButtonLabel)
+                        .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
+                                R.string.cancel);
+        if (modalDialogTitle != null) {
+            dialogModelBuilder.with(ModalDialogProperties.TITLE, modalDialogTitle);
+        }
+        mDialogModel = dialogModelBuilder.build();
 
         mShouldRequestExpirationDate = shouldRequestExpirationDate;
         mThisYear = -1;
@@ -499,6 +531,11 @@
         return mDelegate.checkUserInputValidity(mCardUnmaskInput.getText().toString());
     }
 
+    private boolean isGooglePayLogoEnabled() {
+        return ChromeFeatureList.isEnabled(
+                ChromeFeatureList.AUTOFILL_DOWNSTREAM_CVC_PROMPT_USE_GOOGLE_LOGO);
+    }
+
     /**
      * Sets the enabled state of the main contents, and hides or shows the verification overlay.
      * @param enabled True if the inputs should be useable, false if the verification overlay
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java
new file mode 100644
index 0000000..da61835
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationPresenceController.java
@@ -0,0 +1,39 @@
+// Copyright 2020 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.incognito;
+
+import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+
+/**
+ * Controls the presence incognito notification through {@link IncognitoNotificationManager}.
+ *
+ * Reacts to the presence or absence of incognito tabs.
+ */
+public class IncognitoNotificationPresenceController implements IncognitoTabModelObserver {
+    /**
+     * Creates an {@link IncognitoNotificationPresenceController} that reacts to incognito tabs in a
+     * given |tabModelSelector|.
+     * @param tabModelSelector The {@link TabModelSelector} to observe
+     */
+    public static void observeTabModelSelector(TabModelSelector tabModelSelector) {
+        tabModelSelector.addIncognitoTabModelObserver(
+                new IncognitoNotificationPresenceController());
+    }
+
+    IncognitoNotificationPresenceController() {}
+
+    @Override
+    public void wasFirstTabCreated() {
+        IncognitoNotificationManager.showIncognitoNotification();
+    }
+
+    @Override
+    public void didBecomeEmpty() {
+        if (!IncognitoUtils.doIncognitoTabsExist()) {
+            IncognitoNotificationManager.dismissIncognitoNotification();
+        }
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java
new file mode 100644
index 0000000..28492fc
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoProfileDestroyer.java
@@ -0,0 +1,44 @@
+// Copyright 2020 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.incognito;
+
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver;
+import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+
+/**
+ * Destroys incognito {@link Profile}s when the last incognito tab is destroyed.
+ *
+ * Reacts to the presence or absence of incognito tabs.
+ */
+public class IncognitoProfileDestroyer implements IncognitoTabModelObserver {
+    private final TabModelSelector mTabModelSelector;
+
+    /**
+     * Creates an {@link IncognitoProfileDestroyer} that reacts to incognito tabs in a
+     * given |tabModelSelector|.
+     * @param tabModelSelector The {@link TabModelSelector} to observe
+     */
+    public static void observeTabModelSelector(TabModelSelector tabModelSelector) {
+        tabModelSelector.addIncognitoTabModelObserver(
+                new IncognitoProfileDestroyer(tabModelSelector));
+    }
+
+    IncognitoProfileDestroyer(TabModelSelector tabModelSelector) {
+        mTabModelSelector = tabModelSelector;
+    }
+
+    @Override
+    public void didBecomeEmpty() {
+        if (!IncognitoUtils.doIncognitoTabsExist()) {
+            // Only delete the incognito profile if there are no incognito tabs open in any tab
+            // model selector as the profile is shared between them.
+            Profile profile = mTabModelSelector.getModel(true).getProfile();
+            if (profile != null) {
+                profile.destroyWhenAppropriate();
+            }
+        }
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
index d915a60d..d15e228 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
@@ -14,7 +14,6 @@
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.Callback;
-import org.chromium.base.CommandLine;
 import org.chromium.base.TimeUtilsJni;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.metrics.RecordUserAction;
@@ -22,7 +21,6 @@
 import org.chromium.base.supplier.Supplier;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.status_indicator.StatusIndicatorCoordinator;
-import org.chromium.content_public.common.ContentSwitches;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -90,13 +88,6 @@
     public OfflineIndicatorControllerV2(Context context, StatusIndicatorCoordinator statusIndicator,
             ObservableSupplier<Boolean> isUrlBarFocusedSupplier,
             Supplier<Boolean> canAnimateNativeBrowserControls) {
-        if (CommandLine.getInstance().hasSwitch(
-                    ContentSwitches.FORCE_ONLINE_CONNECTION_STATE_FOR_INDICATOR)) {
-            // If "force online connection state" switch is set, the offline indicator should never
-            // show.
-            return;
-        }
-
         mContext = context;
         mStatusIndicator = statusIndicator;
         mHandler = new Handler();
@@ -205,10 +196,8 @@
 
         mOnUrlBarFocusChanged = null;
 
-        if (mHandler != null) {
-            mHandler.removeCallbacks(mHideRunnable);
-            mHandler.removeCallbacks(mUpdateStatusIndicatorDelayedRunnable);
-        }
+        mHandler.removeCallbacks(mHideRunnable);
+        mHandler.removeCallbacks(mUpdateStatusIndicatorDelayedRunnable);
     }
 
     private void updateStatusIndicator(boolean offline) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
index 2967b48..514500c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java
@@ -190,11 +190,9 @@
         mIsIncognito = activity != null && activity.getCurrentTabModel().isIncognito();
     }
 
-    private void findAppStoreBillingApp(
-            ChromeActivity activity, List<ResolveInfo> allInstalledPaymentApps) {
-        assert activity != null;
-        String twaPackageName = mTwaPackageManagerDelegate.getTwaPackageName(activity);
-        if (twaPackageName == null) return;
+    private void findAppStoreBillingApp(List<ResolveInfo> allInstalledPaymentApps) {
+        String twaPackageName = mFactoryDelegate.getParams().getTwaPackageName();
+        if (TextUtils.isEmpty(twaPackageName)) return;
         ResolveInfo twaApp = findAppWithPackageName(allInstalledPaymentApps, twaPackageName);
         if (twaApp == null) return;
 
@@ -298,20 +296,11 @@
             }
         }
 
-        // WebContents is possible to attach to different activities on {@link PaymentRequest}
-        // created and shown. Ideally {@link #findAppStoreBillingApp} should have based on the
-        // activity that is used when PaymentRequest is shown. But we intentionally not do that for
-        // the sake of simple design and better performance. Plus, for app store billing case in
-        // particular, it's unusual for a TWA to switch to CCT without destroying JavaScript context
-        // and, consequently, the {@link PaymentRequest} object.
-        ChromeActivity activity =
-                ChromeActivity.fromWebContents(mFactoryDelegate.getParams().getWebContents());
         if (!PaymentOptionsUtils.requestAnyInformation(
                     mFactoryDelegate.getParams().getPaymentOptions())
-                && activity != null
                 && PaymentFeatureList.isEnabled(
                         PaymentFeatureList.WEB_PAYMENTS_APP_STORE_BILLING)) {
-            findAppStoreBillingApp(activity, allInstalledPaymentApps);
+            findAppStoreBillingApp(allInstalledPaymentApps);
         }
 
         // All URL methods for which manifests should be downloaded. For example, if merchant
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
index e2d9fce..47727d70 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -1794,6 +1794,13 @@
         return mSpec;
     }
 
+    // PaymentAppFactoryParams implementation.
+    @Override
+    @Nullable
+    public String getTwaPackageName() {
+        return mDelegate.getTwaPackageName(ChromeActivity.fromWebContents(mWebContents));
+    }
+
     // PaymentAppFactoryDelegate implementation.
     @Override
     public PaymentAppFactoryParams getParams() {
@@ -2022,8 +2029,7 @@
     }
 
     private boolean isInTwa() {
-        return !TextUtils.isEmpty(
-                mDelegate.getTwaPackageName(ChromeActivity.fromWebContents(mWebContents)));
+        return !TextUtils.isEmpty(getTwaPackageName());
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
similarity index 85%
rename from chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java
rename to chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
index f2ff60a..7282a80 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java
@@ -6,7 +6,6 @@
 
 import org.chromium.base.ObserverList;
 import org.chromium.base.ThreadUtils;
-import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabCreationState;
@@ -27,15 +26,12 @@
  * no Tabs remain, the native model will be destroyed and only rebuilt when a new incognito Tab
  * is created.
  */
-public class IncognitoTabModel implements TabModel {
+public class IncognitoTabModelImpl implements IncognitoTabModel {
     /** Creates TabModels for use in IncognitoModel. */
     public interface IncognitoTabModelDelegate {
         /** Creates a fully working TabModel to delegate calls to. */
         TabModel createTabModel();
 
-        /** @return Whether Incognito Tabs exist. */
-        boolean doIncognitoTabsExist();
-
         /**
          * @param model {@link TabModel} to act on.
          * @return Whether the provided {@link TabModel} is currently selected in the corresponding
@@ -45,14 +41,16 @@
     }
 
     private final IncognitoTabModelDelegate mDelegate;
-    private final ObserverList<TabModelObserver> mObservers = new ObserverList<TabModelObserver>();
+    private final ObserverList<TabModelObserver> mObservers = new ObserverList<>();
+    private final ObserverList<IncognitoTabModelObserver> mIncognitoObservers =
+            new ObserverList<>();
     private TabModel mDelegateModel;
     private boolean mIsAddingTab;
 
     /**
      * Constructor for IncognitoTabModel.
      */
-    public IncognitoTabModel(IncognitoTabModelDelegate tabModelCreator) {
+    public IncognitoTabModelImpl(IncognitoTabModelDelegate tabModelCreator) {
         mDelegate = tabModelCreator;
         mDelegateModel = EmptyTabModel.getInstance();
     }
@@ -64,23 +62,18 @@
         ThreadUtils.assertOnUiThread();
         if (!(mDelegateModel instanceof EmptyTabModel)) return;
 
-        IncognitoNotificationManager.showIncognitoNotification();
         mDelegateModel = mDelegate.createTabModel();
         for (TabModelObserver observer : mObservers) {
             mDelegateModel.addObserver(observer);
         }
+        for (IncognitoTabModelObserver observer : mIncognitoObservers) {
+            observer.wasFirstTabCreated();
+        }
     }
 
     /**
-     * @return The TabModel that this {@link IncognitoTabModel} is delegating calls to.
-     */
-    protected TabModel getDelegateModel() {
-        return mDelegateModel;
-    }
-
-    /**
-     * Destroys the Incognito profile when all Incognito tabs have been closed.  Also resets the
-     * delegate TabModel to be a stub EmptyTabModel.
+     * Resets the delegate TabModel to be a stub EmptyTabModel and notifies
+     * {@link IncognitoTabModelObserver}s.
      */
     protected void destroyIncognitoIfNecessary() {
         ThreadUtils.assertOnUiThread();
@@ -88,15 +81,10 @@
             return;
         }
 
-        Profile profile = getProfile();
         mDelegateModel.destroy();
 
-        // Only delete the incognito profile if there are no incognito tabs open in any tab
-        // model selector as the profile is shared between them.
-        if (profile != null && !mDelegate.doIncognitoTabsExist()) {
-            IncognitoNotificationManager.dismissIncognitoNotification();
-
-            profile.destroyWhenAppropriate();
+        for (IncognitoTabModelObserver observer : mIncognitoObservers) {
+            observer.didBecomeEmpty();
         }
 
         mDelegateModel = EmptyTabModel.getInstance();
@@ -263,6 +251,16 @@
     }
 
     @Override
+    public void addIncognitoObserver(IncognitoTabModelObserver observer) {
+        mIncognitoObservers.addObserver(observer);
+    }
+
+    @Override
+    public void removeIncognitoObserver(IncognitoTabModelObserver observer) {
+        mIncognitoObservers.removeObserver(observer);
+    }
+
+    @Override
     public void removeTab(Tab tab) {
         mDelegateModel.removeTab(tab);
         // Call destroyIncognitoIfNecessary() in case the last incognito tab in this model is
@@ -271,6 +269,5 @@
     }
 
     @Override
-    public void openMostRecentlyClosedTab() {
-    }
+    public void openMostRecentlyClosedTab() {}
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
index 0eeaa50..5e32c532 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
@@ -5,8 +5,7 @@
 package org.chromium.chrome.browser.tabmodel;
 
 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
-import org.chromium.chrome.browser.incognito.IncognitoUtils;
-import org.chromium.chrome.browser.tabmodel.IncognitoTabModel.IncognitoTabModelDelegate;
+import org.chromium.chrome.browser.tabmodel.IncognitoTabModelImpl.IncognitoTabModelDelegate;
 import org.chromium.chrome.browser.tabmodel.NextTabPolicy.NextTabPolicySupplier;
 
 /**
@@ -24,10 +23,10 @@
     private final TabModelDelegate mModelDelegate;
 
     /**
-     * Constructor for an IncognitoTabModelImplCreator, used by {@link IncognitoTabModel}.
+     * Constructor for an IncognitoTabModelImplCreator, used by {@link IncognitoTabModelImpl}.
      *
      * Creating an instance of this class does not create the Incognito TabModelImpl immediately.
-     * The {@link IncognitoTabModel} will use this class to create the real TabModelImpl when it
+     * The {@link IncognitoTabModelImpl} will use this class to create the real TabModelImpl when it
      * will actually be used.
      * @param regularTabCreator   Creates regular tabs.
      * @param incognitoTabCreator Creates incognito tabs.
@@ -63,11 +62,6 @@
     }
 
     @Override
-    public boolean doIncognitoTabsExist() {
-        return IncognitoUtils.doIncognitoTabsExist();
-    }
-
-    @Override
     public boolean isCurrentModel(TabModel model) {
         return mModelDelegate.isCurrentModel(model);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
index 024e5cd..73b518b4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -12,18 +12,18 @@
 import org.chromium.content_public.browser.LoadUrlParams;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 /**
  * Implement methods shared across the different model implementations.
  */
-public abstract class TabModelSelectorBase implements TabModelSelector {
+public abstract class TabModelSelectorBase implements TabModelSelector, IncognitoTabModelObserver {
     private static final int MODEL_NOT_FOUND = -1;
 
     private static TabModelSelectorObserver sObserver;
 
     private List<TabModel> mTabModels = new ArrayList<>();
+    private IncognitoTabModel mIncognitoTabModel;
 
     /**
      * This is a dummy implementation intended to stub out TabModelFilterProvider before native is
@@ -34,6 +34,8 @@
     private final TabModelFilterFactory mTabModelFilterFactory;
     private int mActiveModelIndex;
     private final ObserverList<TabModelSelectorObserver> mObservers = new ObserverList<>();
+    private final ObserverList<IncognitoTabModelObserver> mIncognitoObservers =
+            new ObserverList<>();
     private boolean mTabStateInitialized;
     private boolean mStartIncognito;
     private boolean mReparentingInProgress;
@@ -47,12 +49,13 @@
         mStartIncognito = startIncognito;
     }
 
-    protected final void initialize(TabModel... models) {
+    protected final void initialize(TabModel normalModel, IncognitoTabModel incognitoModel) {
         // Only normal and incognito supported for now.
         assert mTabModels.isEmpty();
-        assert models.length > 0;
 
-        Collections.addAll(mTabModels, models);
+        mTabModels.add(normalModel);
+        mTabModels.add(incognitoModel);
+        mIncognitoTabModel = incognitoModel;
         mActiveModelIndex = getModelIndex(mStartIncognito);
         assert mActiveModelIndex != MODEL_NOT_FOUND;
         mTabModelFilterProvider = new TabModelFilterProvider(mTabModelFilterFactory, mTabModels);
@@ -83,6 +86,8 @@
             addObserver(sObserver);
         }
 
+        mIncognitoTabModel.addIncognitoObserver(this);
+
         notifyChanged();
     }
 
@@ -261,6 +266,10 @@
     public void destroy() {
         removeObserver(mTabModelFilterProvider);
         mTabModelFilterProvider.destroy();
+
+        if (mIncognitoTabModel != null) {
+            mIncognitoTabModel.removeIncognitoObserver(this);
+        }
         for (int i = 0; i < getModels().size(); i++) mTabModels.get(i).destroy();
         mTabModels.clear();
     }
@@ -278,7 +287,7 @@
     /**
      * Notifies all the listeners that a new tab has been created.
      * @param tab The tab that has been created.
-     * @param creationSTate How the tab was created.
+     * @param creationState How the tab was created.
      */
     private void notifyNewTabCreated(Tab tab, @TabCreationState int creationState) {
         for (TabModelSelectorObserver listener : mObservers) {
@@ -299,4 +308,23 @@
     public boolean isReparentingInProgress() {
         return mReparentingInProgress;
     }
+
+    @Override
+    public void addIncognitoTabModelObserver(IncognitoTabModelObserver incognitoObserver) {
+        mIncognitoObservers.addObserver(incognitoObserver);
+    }
+
+    @Override
+    public void wasFirstTabCreated() {
+        for (IncognitoTabModelObserver observer : mIncognitoObservers) {
+            observer.wasFirstTabCreated();
+        }
+    }
+
+    @Override
+    public void didBecomeEmpty() {
+        for (IncognitoTabModelObserver observer : mIncognitoObservers) {
+            observer.didBecomeEmpty();
+        }
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
index 6571957..9a19ed9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
@@ -128,20 +128,21 @@
                 (ChromeTabCreator) getTabCreatorManager().getTabCreator(false);
         ChromeTabCreator incognitoTabCreator =
                 (ChromeTabCreator) getTabCreatorManager().getTabCreator(true);
-        TabModelImpl normalModel = new TabModelImpl(false, mIsTabbedActivityForSync,
-                regularTabCreator, incognitoTabCreator, mUma, mOrderController, mTabContentManager,
-                mTabSaver, mNextTabPolicySupplier, mAsyncTabParamsManager, this, mIsUndoSupported);
-        TabModel incognitoModel = new IncognitoTabModel(new IncognitoTabModelImplCreator(
-                regularTabCreator, incognitoTabCreator, mUma, mOrderController, mTabContentManager,
-                mTabSaver, mNextTabPolicySupplier, mAsyncTabParamsManager, this));
+        TabModel normalModel = new TabModelImpl(false, mIsTabbedActivityForSync, regularTabCreator,
+                incognitoTabCreator, mUma, mOrderController, mTabContentManager, mTabSaver,
+                mNextTabPolicySupplier, mAsyncTabParamsManager, this, mIsUndoSupported);
+        IncognitoTabModel incognitoModel =
+                new IncognitoTabModelImpl(new IncognitoTabModelImplCreator(regularTabCreator,
+                        incognitoTabCreator, mUma, mOrderController, mTabContentManager, mTabSaver,
+                        mNextTabPolicySupplier, mAsyncTabParamsManager, this));
         regularTabCreator.setTabModel(normalModel, mOrderController);
         incognitoTabCreator.setTabModel(incognitoModel, mOrderController);
         onNativeLibraryReadyInternal(tabContentProvider, normalModel, incognitoModel);
     }
 
     @VisibleForTesting
-    void onNativeLibraryReadyInternal(
-            TabContentManager tabContentProvider, TabModel normalModel, TabModel incognitoModel) {
+    void onNativeLibraryReadyInternal(TabContentManager tabContentProvider, TabModel normalModel,
+            IncognitoTabModel incognitoModel) {
         mTabContentManager = tabContentProvider;
         initialize(normalModel, incognitoModel);
         mTabSaver.setTabContentManager(mTabContentManager);
@@ -226,7 +227,7 @@
      * @param incognitoModel The incognito tab model.
      */
     @VisibleForTesting
-    public void initializeForTesting(TabModel normalModel, TabModel incognitoModel) {
+    public void initializeForTesting(TabModel normalModel, IncognitoTabModel incognitoModel) {
         initialize(normalModel, incognitoModel);
     }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java
index 2f2efbb..f846751 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java
@@ -103,24 +103,24 @@
 
     private AutofillSuggestion[] createTwoAutofillSuggestionArray() {
         return new AutofillSuggestion[] {
-                new AutofillSuggestion("Sherlock Holmes", "221B Baker Street", DropdownItem.NO_ICON,
-                        false, 42, false, false, false),
-                new AutofillSuggestion("Arthur Dent", "West Country", DropdownItem.NO_ICON,
-                        false, 43, false, false, false),
+                new AutofillSuggestion("Sherlock Holmes", "221B Baker Street", /*itemTag=*/"",
+                        DropdownItem.NO_ICON, false, 42, false, false, false),
+                new AutofillSuggestion("Arthur Dent", "West Country", /*itemTag=*/"",
+                        DropdownItem.NO_ICON, false, 43, false, false, false),
         };
     }
 
     private AutofillSuggestion[] createFiveAutofillSuggestionArray() {
         return new AutofillSuggestion[] {
-                new AutofillSuggestion("Sherlock Holmes", "221B Baker Street", DropdownItem.NO_ICON,
-                        false, 42, false, false, false),
-                new AutofillSuggestion("Arthur Dent", "West Country", DropdownItem.NO_ICON,
-                        false, 43, false, false, false),
-                new AutofillSuggestion("Arthos", "France", DropdownItem.NO_ICON,
+                new AutofillSuggestion("Sherlock Holmes", "221B Baker Street", /*itemTag=*/"",
+                        DropdownItem.NO_ICON, false, 42, false, false, false),
+                new AutofillSuggestion("Arthur Dent", "West Country", /*itemTag=*/"",
+                        DropdownItem.NO_ICON, false, 43, false, false, false),
+                new AutofillSuggestion("Arthos", "France", /*itemTag=*/"", DropdownItem.NO_ICON,
                         false, 44, false, false, false),
-                new AutofillSuggestion("Porthos", "France", DropdownItem.NO_ICON,
+                new AutofillSuggestion("Porthos", "France", /*itemTag=*/"", DropdownItem.NO_ICON,
                         false, 45, false, false, false),
-                new AutofillSuggestion("Aramis", "France", DropdownItem.NO_ICON,
+                new AutofillSuggestion("Aramis", "France", /*itemTag=*/"", DropdownItem.NO_ICON,
                         false, 46, false, false, false),
         };
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityLocationDelegationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityLocationDelegationTest.java
index 19c48c21..901d72a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityLocationDelegationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/browserservices/permissiondelegation/TrustedWebActivityLocationDelegationTest.java
@@ -51,6 +51,7 @@
 @RunWith(BaseJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
         "enable-features=" + ChromeFeatureList.TRUSTED_WEB_ACTIVITY_LOCATION_DELEGATION})
+@DisabledTest(message = "crbug.com/1116518")
 public class TrustedWebActivityLocationDelegationTest {
     public final CustomTabActivityTestRule mCustomTabActivityTestRule =
             new CustomTabActivityTestRule();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
index 3425a6e..321e02a8 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java
@@ -52,7 +52,6 @@
 /** Unit tests for offline indicator interacting with chrome activity. */
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@Features.DisableFeatures({ChromeFeatureList.OFFLINE_INDICATOR_V2})
 // TODO(jianli): Add test for disabled feature.
 public class OfflineIndicatorControllerTest {
     @Rule
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
index 9d1eed2..c15ccdb 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java
@@ -6,6 +6,7 @@
 
 import android.support.test.InstrumentationRegistry;
 
+import androidx.annotation.Nullable;
 import androidx.test.filters.MediumTest;
 
 import org.junit.After;
@@ -192,6 +193,13 @@
         mPaymentOptions.requestShipping = requestShipping;
     }
 
+    // PaymentAppFactoryParams implementation.
+    @Override
+    @Nullable
+    public String getTwaPackageName() {
+        return mTwaPackageManager.getTwaPackageName(mRule.getActivity());
+    }
+
     @Before
     public void setUp() throws Throwable {
         mRule.startMainActivityOnBlankPage();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java
index 4fd6dcfb..428a6d41 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTest.java
@@ -159,6 +159,7 @@
     @LargeTest
     @Features.DisableFeatures(ChromeFeatureList.DECOUPLE_SYNC_FROM_ANDROID_MASTER_SYNC)
     @Feature({"Sync"})
+    @DisabledTest(message = "crbug.com/1103515")
     public void testStopAndStartSyncThroughAndroidMasterSync() {
         mSyncTestRule.setUpAccountAndSignInForTesting();
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
index 2a7a7f9..3cbc735 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
@@ -28,7 +28,7 @@
 public class TabModelSelectorObserverTestRule extends ChromeBrowserTestRule {
     private TabModelSelectorBase mSelector;
     private TabModelSelectorTestTabModel mNormalTabModel;
-    private TabModelSelectorTestTabModel mIncognitoTabModel;
+    private TabModelSelectorTestIncognitoTabModel mIncognitoTabModel;
 
     public TabModelSelectorBase getSelector() {
         return mSelector;
@@ -38,7 +38,7 @@
         return mNormalTabModel;
     }
 
-    public TabModelSelectorTestTabModel getIncognitoTabModel() {
+    public TabModelSelectorTestIncognitoTabModel getIncognitoTabModel() {
         return mIncognitoTabModel;
     }
 
@@ -121,7 +121,7 @@
                         tabPersistentStore, nextTabPolicySupplier, asyncTabParamsManager, delegate);
 
         mIncognitoTabModel =
-                new TabModelSelectorTestTabModel(true, orderController, tabContentManager,
+                new TabModelSelectorTestIncognitoTabModel(orderController, tabContentManager,
                         tabPersistentStore, nextTabPolicySupplier, asyncTabParamsManager, delegate);
 
         mSelector.initialize(mNormalTabModel, mIncognitoTabModel);
@@ -158,4 +158,24 @@
             return mObserverSet;
         }
     }
+
+    /**
+     * Test IncognitoTabModel that exposes the needed capabilities for testing.
+     */
+    public static class TabModelSelectorTestIncognitoTabModel
+            extends TabModelSelectorTestTabModel implements IncognitoTabModel {
+        public TabModelSelectorTestIncognitoTabModel(TabModelOrderController orderController,
+                TabContentManager tabContentManager, TabPersistentStore tabPersistentStore,
+                NextTabPolicySupplier nextTabPolicySupplier,
+                AsyncTabParamsManager asyncTabParamsManager, TabModelDelegate modelDelegate) {
+            super(true, orderController, tabContentManager, tabPersistentStore,
+                    nextTabPolicySupplier, asyncTabParamsManager, modelDelegate);
+        }
+
+        @Override
+        public void addIncognitoObserver(IncognitoTabModelObserver observer) {}
+
+        @Override
+        public void removeIncognitoObserver(IncognitoTabModelObserver observer) {}
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
index 8decd9e..016c3fd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
@@ -119,12 +119,14 @@
                             AsyncTabParamsManager.getInstance(), TestTabModelSelector.this, true);
                 }
             };
-            TabModelImpl regularTabModel = TestThreadUtils.runOnUiThreadBlocking(callable);
-            TabModel incognitoTabModel = new IncognitoTabModel(new IncognitoTabModelImplCreator(
-                    getTabCreatorManager().getTabCreator(false),
-                    getTabCreatorManager().getTabCreator(true), null, mTabModelOrderController,
-                    null, mTabPersistentStore,
-                    () -> NextTabPolicy.HIERARCHICAL, AsyncTabParamsManager.getInstance(), this));
+            TabModel regularTabModel = TestThreadUtils.runOnUiThreadBlocking(callable);
+            IncognitoTabModel incognitoTabModel = new IncognitoTabModelImpl(
+                    new IncognitoTabModelImplCreator(getTabCreatorManager().getTabCreator(false),
+                            getTabCreatorManager().getTabCreator(true), null,
+                            mTabModelOrderController, null, mTabPersistentStore,
+                            ()
+                                    -> NextTabPolicy.HIERARCHICAL,
+                            AsyncTabParamsManager.getInstance(), this));
             initialize(regularTabModel, incognitoTabModel);
         }
 
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp
index ec09d56..cea041cd 100644
--- a/chrome/app/os_settings_strings.grdp
+++ b/chrome/app/os_settings_strings.grdp
@@ -271,6 +271,12 @@
   <message name="IDS_OS_SETTINGS_LANGUAGES_OFFER_TRANSLATION_SUBLABEL" translateable="false" desc="The sublabel of the toggle that enables the prompt to translate a page to users.">
     Allow the system to offer to translate web pages when it detects languages you don't read
   </message>
+  <message name="IDS_OS_SETTINGS_LANGUAGES_INPUT_METHOD_LIST_TITLE" translateable="false" desc="Title for the current input method in the header for the collapsible list of enabled input methods (keyboard layouts and input method editors).">
+    Input methods
+  </message>
+  <message name="IDS_OS_SETTINGS_LANGUAGES_OPEN_OPTIONS_PAGE_LABEL" translateable="false" desc="Title for the button to open the options page for a input method (keyboard layout and input method editor).">
+      Open options page for <ph name="INPUT_METHOD_NAME">$1<ex>US keyboard</ex></ph>
+  </message>
   <message name="IDS_OS_SETTINGS_LANGUAGES_LIST_TITLE" desc="Title for the list of the user's preferred written languages.">
     Languages
   </message>
@@ -1577,7 +1583,7 @@
     Set up or manage CUPS printers. <ph name="LINK_BEGIN">&lt;a&gt;</ph>Learn more<ph name="LINK_END">&lt;/a&gt;</ph>
   </message>
   <message name="IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_PRINTER" desc="In CUPS printing settings subpage, text for the link adding a new CUPS printer.">
-    Add Printer
+    Add printer
   </message>
     <message name="IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_DETECTED_OR_NEW_PRINTER" desc="In CUPS printing settings subpage, explanatory text for the nearby printers list.">
     Save detected printers to your profile, or add a new printer. <ph name="LINK_BEGIN">&lt;a&gt;</ph>Learn more<ph name="LINK_END">&lt;/a&gt;</ph>
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_PRINTER.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_PRINTER.png.sha1
new file mode 100644
index 0000000..6141924
--- /dev/null
+++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_PRINTER.png.sha1
@@ -0,0 +1 @@
+2d222a5fe231ab9ec48b41e637af5a683311f8cb
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index 149f1cf..c1d617d 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">‏اختياري: يمكنك المساعدة في تحسين ميزات نظام التشغيل Chromium وأدائه من خلال إرسال بيانات التشخيص والاستخدام تلقائيًا إلى Google.</translation>
 <translation id="2347108572062610441">‏غيّرت هذه الإضافة الصفحة التي تظهر عند بدء Chromium.</translation>
 <translation id="2396765026452590966">‏غيّرت الإضافة "<ph name="EXTENSION_NAME" />" الصفحة التي تظهر عند بدء Chromium.</translation>
+<translation id="2442081746662839303">‏هل تريد إنشاء ملف شخصي جديد على Chromium space للمستخدم <ph name="NEW_USER" />؟</translation>
 <translation id="2483889755041906834">‏في Chromium</translation>
 <translation id="2485422356828889247">إزالة التثبيت</translation>
 <translation id="2527042973354814951">‏إعادة تشغيل Chromium لتفعيل <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">‏Chromium في وضع الخلفية.</translation>
 <translation id="4987820182225656817">‏يمكن للضيف استخدام Chromium بدون أن يترك أي أثر وراءه.</translation>
 <translation id="4994636714258228724">‏إضافة نفسك إلى Chromium</translation>
+<translation id="5053724573690775822">‏هل تريد إنشاء ملف شخصي جديد للعمل على Chromium؟</translation>
 <translation id="5224391634244552924">‏ما مِن كلمات مرور محفوظة. لا يستطيع Chromium التحقُّق من كلمات المرور إلا عند حفظها.</translation>
 <translation id="5277894862589591112">‏لتطبيق التغييرات، يُرجى إعادة تشغيل Chromium</translation>
 <translation id="5358375970380395591">‏أنت تسجل الدخول باستخدام حساب يخضع للإدارة وتتيح للمشرف إمكانية التحكم في ملفك الشخصي على Chromium. وستكون بياناتك في Chromium مثل تطبيقاتك وإشاراتك المرجعية وسجلك وكلمات المرور التابعة لك والإعدادات الأخرى مرتبطة دائمًا بالمستخدم <ph name="USER_NAME" />. ستتمكن من حذف هذه البيانات عبر لوحة تحكم حسابات Google، ولكنك لن تتمكن من إقران هذه البيانات بحساب آخر. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">‏يتعذر على Chromium عرض معاينة الطباعة عندما يكون عارض PDF المضمّن مفقودًا.</translation>
 <translation id="5427571867875391349">‏تعيين Chromium المتصفح التلقائي</translation>
 <translation id="5438241569118040789">‏<ph name="PAGE_TITLE" /> - الإصدار التجريبي من Chromium</translation>
+<translation id="544968170749360982">‏لقد سجَّلت الدخول إلى ملف <ph name="EXISTING_USER" /> الشخصي باستخدام حساب جديد. هل تريد إنشاء ملف شخصي جديد على Chromium space للمستخدم <ph name="NEW_USER" /> حتى تُبقي بياناتك منفصلة؟</translation>
 <translation id="5479196819031988440">‏يتعذر على نظام التشغيل Chromium فتح هذه الصفحة.</translation>
 <translation id="5480860683791598150">‏يحتاج Chromium للوصول إلى موقعك الجغرافي لمشاركته مع هذا الموقع.</translation>
 <translation id="549669000822060376">‏يُرجى الانتظار أثناء تثبيت Chromium لآخر تحديثات النظام.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">‏تعذر على Chromium مزامنة البيانات نظرًا لحدوث خطأ أثناء تسجيل الدخول.</translation>
 <translation id="6096348254544841612">‏تخصيص Chromium والتحكُّم فيه. هناك تحديث متوفر.</translation>
 <translation id="6120345080069858279">‏سيحفظ Chromium كلمة المرور هذه في حسابك على Google ولن تحتاج تذكّرها.</translation>
+<translation id="6128834065531097268">‏لقد سجَّلت الدخول إلى ملف <ph name="EXISTING_USER" /> الشخصي باستخدام حساب عمل. هل تريد إنشاء ملف شخصي جديد على Chromium space للمستخدم <ph name="WORK_DOMAIN" /> حتى تُبقي بياناتك منفصلة؟</translation>
 <translation id="6129621093834146363">‏ملف <ph name="FILE_NAME" /> ضار، لذلك فقد حظره Chromium.</translation>
 <translation id="6134968993075716475">‏تم إيقاف "التصفّح الآمن" ويقترح متصفّح Chrome تفعيله.</translation>
 <translation id="6212496753309875659">‏يحتوي هذا الكمبيوتر فعلاً على إصدار أحدث من Chromium. إذا كان البرنامج لا يعمل، يُرجى إزالة Chromium وإعادة المحاولة.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">‏محو البيانات من Chromium أيضًا (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">‏في حال عدم عرض إعداد على هذه الصفحة، انتقل إلى <ph name="LINK_BEGIN" />
     إعدادات نظام التشغيل Chromium<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">‏لقد سجَّلت الدخول باستخدام حساب عمل. هل تريد إنشاء ملف شخصي جديد على Chromium space للمستخدم <ph name="NEW_USER" /> حتى تُبقي بياناتك الشخصية منفصلة؟</translation>
 <translation id="761356813943268536">‏يستخدم Chromium الكاميرا والميكروفون.</translation>
 <translation id="7617377681829253106">‏Chromium أصبح أفضل</translation>
 <translation id="7628001322379820951">‏عثر متصفّح Chromium على برنامج ضارّ على جهاز الكمبيوتر.</translation>
diff --git a/chrome/app/resources/chromium_strings_as.xtb b/chrome/app/resources/chromium_strings_as.xtb
index 14bb384..705ec4e 100644
--- a/chrome/app/resources/chromium_strings_as.xtb
+++ b/chrome/app/resources/chromium_strings_as.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">ঐচ্ছিক: Googleলৈ স্বয়ংক্ৰিয়ভাৱে ডায়গন’ষ্টিক আৰু ব্যৱহাৰৰ ডেটা পঠিয়াই Chromium OSৰ সুবিধাসমূহ আৰু কার্যদক্ষতা উন্নত কৰাত সহায় কৰক।</translation>
 <translation id="2347108572062610441">আপুনি Chromium আৰম্ভ কৰিলে কি পৃষ্ঠা দেখুওৱা হ‘ব এই এক্সটেনশ্বনটোৱে সেইটো সলনি কৰিছে।</translation>
 <translation id="2396765026452590966">আপুনি Chromium আৰম্ভ কৰিলে কোনটো পৃষ্ঠা দেখুওৱা হ’ব সেয়া "<ph name="EXTENSION_NAME" />" এক্সটেনশ্বনে সলনি কৰিছে৷</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" />ৰ বাবে Chromiumৰ নতুন স্পেচ সৃষ্টি কৰিবনে?</translation>
 <translation id="2483889755041906834">Chromiumত</translation>
 <translation id="2485422356828889247">আনইনষ্টল কৰক</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ক সক্ষম কৰিবলৈ Chromium ৰিষ্টাৰ্ট কৰক</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium নেপথ্য ম’ডত আছে।</translation>
 <translation id="4987820182225656817">অতিথিসকলে কোনো সুবিধা বাদ নিদিয়াকৈ Chromium ব্যৱহাৰ কৰিব পাৰে।</translation>
 <translation id="4994636714258228724">নিজকে Chromiumত যোগ কৰক</translation>
+<translation id="5053724573690775822">Chromiumৰ নতুন ৱৰ্ক স্পেচ সৃষ্টি কৰিবনে?</translation>
 <translation id="5224391634244552924">ছেভ কৰা কোনো পাছৱৰ্ড নাই। আপুনি নিজৰ পাছৱর্ডসমূহ ছেভ কৰিলে Chromiumএ সেইবোৰ পৰীক্ষা কৰিব পাৰে।</translation>
 <translation id="5277894862589591112">আপুনি কৰা সলনি কার্যসমূহ প্ৰযোজ্য কৰিবলৈ Chromium পুনৰ লঞ্চ কৰক</translation>
 <translation id="5358375970380395591">আপুনি এটা পৰিচালিত একাউণ্টৰ জৰিয়তে ছাইন ইন কৰি আছে আৰু আপোনাৰ Chromium প্ৰ’ফাইলৰ জৰিয়তে ইয়াৰ প্ৰশাসনিক নিয়ন্ত্ৰণ দি আছে। আপোনাৰ এপ্, বুকমার্ক, ইতিহাস, পাছৱর্ড আৰু অন্য ছেটিংসমূহৰ দৰে নিজৰ Chromium ডেটা স্থায়ীভাৱে <ph name="USER_NAME" />ৰ সৈতে সংযুক্ত হ’ব। আপুনি Google একাউণ্ট ডেশ্বব’ৰ্ডৰ জৰিয়তে এই ডেটা মচিব পাৰিব কিন্তু আপুনি এই ডেটা অন্য একাউণ্টৰ সৈতে সংলগ্ন কৰিব নোৱাৰিব। <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">অন্তৰ্নিমিত PDF ভিউৱাৰ নাথাকিলে Chromiumএ প্ৰিণ্টৰ পূর্বদর্শন প্ৰদর্শন কৰিব নোৱাৰে।</translation>
 <translation id="5427571867875391349">আপোনাৰ ডিফ'ল্ট ব্ৰাউজাৰ হিচাপে Chromiumক ছেট কৰক</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium বিটা</translation>
+<translation id="544968170749360982">আপুনি <ph name="EXISTING_USER" />ৰ স্পেচত এটা নতুন একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ডেটা বেলেগে ৰাখিবলৈ <ph name="NEW_USER" />ৰ বাবে Chromiumৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="5479196819031988440">Chromium OSএ এই পৃষ্ঠাটো খুলিব নোৱাৰে।</translation>
 <translation id="5480860683791598150">আপোনাৰ অৱস্থান এই ছাইটটোৰ সৈতে শ্বেয়াৰ কৰিবলৈ Chromiumএ আপোনাৰ অৱস্থান এক্সেছ কৰাৰ আৱশ্যক</translation>
 <translation id="549669000822060376">Chromiumএ শেহতীয়া ছিষ্টেম আপডে’ট ইনষ্টল কৰালৈ কিছুসময় অপেক্ষা কৰক।</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">ছাইন ইন কৰোঁতে কিবা আসোঁৱাহ হোৱাৰ কাৰণে Chromiumএ আপোনাৰ ডেটা ছিংক কৰিব নোৱাৰিলে।</translation>
 <translation id="6096348254544841612">Chromium কাষ্টমাইজ আৰু নিয়ন্ত্ৰণ কৰক। আপডে'ট আছে।</translation>
 <translation id="6120345080069858279">Chromiumএ এই পাছৱৰ্ডটো আপোনাৰ Google একাউণ্টত ছেভ কৰিব৷ আপুনি ইয়াক মনত ৰাখিব নালাগে৷</translation>
+<translation id="6128834065531097268">আপুনি <ph name="EXISTING_USER" />ৰ স্পেচত এটা কৰ্মস্থানৰ একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ডেটা বেলেগে ৰাখিবলৈ <ph name="WORK_DOMAIN" />ৰ বাবে Chromiumৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ক্ষতিকাৰক বাবে Chromiumএ ইয়াক অৱৰোধ কৰিছে।</translation>
 <translation id="6134968993075716475">সুৰক্ষিত ব্ৰাউজিং অফ আছে। Chromiumএ ইয়াক অন কৰাটো চুপাৰিছ কৰে।</translation>
 <translation id="6212496753309875659">এই কম্পিউটাৰটোত ইতিমধ্যে Chromiumৰ অধিক শেহতীয়া সংস্কৰণ আছে। যদি ছফ্টৱেৰটোৱে কাম কৰা নাই তেন্তে Chromium আনইনষ্টল কৰি আকৌ চেষ্টা কৰক।</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">লগতে Chromium (<ph name="URL" />)ৰ ডেটাও মচক</translation>
 <translation id="7585853947355360626">এই পৃষ্ঠাখনত যদি কোনোটো ছেটিং দেখা পোৱা নাযায়, তেন্তে আপোনাৰ <ph name="LINK_BEGIN" />
     Chromium ব্ৰাউজাৰৰ ছেটিংসমূহ<ph name="LINK_END" />ত চাওক</translation>
+<translation id="7607142834923530546">আপুনি এটা কৰ্মস্থানৰ একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ব্যক্তিগত ডেটা বেলেগে ৰাখিবলৈ <ph name="NEW_USER" />ৰ বাবে Chromiumৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="761356813943268536">Chromiumএ আপোনাৰ কেমেৰা আৰু মাইক্ৰ'ফ'ন ব্যৱহাৰ কৰি আছে।</translation>
 <translation id="7617377681829253106">Chromium অধিক উৎকৃষ্ট হৈছে</translation>
 <translation id="7628001322379820951">Chromiumএ আপোনাৰ কম্পিউটাৰত ক্ষতিকাৰক ছফ্টৱেৰ বিচাৰি পাইছে</translation>
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb
index b97b90c..f17bacd 100644
--- a/chrome/app/resources/chromium_strings_az.xtb
+++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">İstəyə görə: Diaqnostika və istifadəçi datasını avtomatik Google'a göndərməklə Chromium ƏS funksiyalarını təkmilləşdirməyə yardım edin.</translation>
 <translation id="2347108572062610441">Bu artırma Chromium'u başlatdığınız zaman hansı səhifənin göstərildiyini dəyişdi.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" artırması Chromium'u başlatdığınız zaman hansı səhifənin göstərildiyini dəyişdi.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> üçün yeni Chromium sahəsi yaradılsın?</translation>
 <translation id="2483889755041906834">Chromium'da</translation>
 <translation id="2485422356828889247">Sistemdən silin</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> plaqinini aktiv etmək üçün Chromium'u yenidən başladın</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium arxa fon rejimindədir.</translation>
 <translation id="4987820182225656817">Qonaqlar geridə heç nə buraxmadan Chromium istifadə edə bilər.</translation>
 <translation id="4994636714258228724">Özünüzü Chromium'a əlavə edin</translation>
+<translation id="5053724573690775822">Yeni Chromium İş sahəsi yaradılsın?</translation>
 <translation id="5224391634244552924">Yadda saxlanmış parol yoxdur. Parollarınızı yadda saxladıqda Chromium onları yoxlaya bilər.</translation>
 <translation id="5277894862589591112">Dəyişiklikləri tətbiq etmək üçün Chromium'u yenidən başladın</translation>
 <translation id="5358375970380395591">İdarə olunan hesabla daxil olursnuz və onun inzibati idarəetməsini Chromium profilinizə verirsiniz. Tətbiqləriniz, əlfəcinləriniz, tarixçəniz və digər ayarlarınız Chromimum datanızla birlikdə <ph name="USER_NAME" /> üzərinə həmişəlik bənd olacaq. Bu datanı Google Hesabları Paneli vasitəsilə silə bilərsiniz, lakin bu datanı digər hesabla əlaqəli edə bilməzsiniz. Mövcud Chrome datanızı ayrı saxlamaq üçün yeni profil yarada bilərsiniz. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Daxili PDF görüntüləyən əskik olduqda Chromium çap önizləməsini göstərə bilməz.</translation>
 <translation id="5427571867875391349">Chromium'u defolt brauzer təyin edin</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> sahəsində yeni hesab ilə daxil olmusunuz. Datanızı ayrı saxlamaq üçün <ph name="NEW_USER" /> üçün yeni Chromium sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="5479196819031988440">Chromium OS bu səhifəni aça bilməz.</translation>
 <translation id="5480860683791598150">Chromium məkanı bu saytla paylaşmaq üçün ona giriş tələb edir</translation>
 <translation id="549669000822060376">Chromium'um ən son sistem güncəlləşmələrini quraşdırmasını gözləyin.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Giriş xətası səbəbindən Chromium datanızı sinxronizasiya edə bilmədi.</translation>
 <translation id="6096348254544841612">Chromium'u fərdiləşdirin və idarə edin. Güncəlləmə əlçatandır.</translation>
 <translation id="6120345080069858279">Chromium bu parolu Google Hesabında yadda saxlayacaq. Onu yadda saxlamalı olmayacaqsınız.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> sahəsində İş hesabı ilə daxil olmusunuz. Datanızı ayrı saxlamaq üçün <ph name="WORK_DOMAIN" /> üçün yeni Chromium sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> təklükəli olduğu üçün Chromium onu blok etdi.</translation>
 <translation id="6134968993075716475">Təhlükəsiz Baxış deaktivdir. Chromium onu aktiv etməyi tövsiyə edir.</translation>
 <translation id="6212496753309875659">Bu kompüterdə Chromium'um daha son versiyası var. Proqram təminatı işləmirsə, Chroimum'u sistemdən silin və yenidən cəhd edin.</translation>
@@ -195,6 +199,7 @@
 <translation id="7561906087460245826">Chromium'dan datanı silin (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Ayar bu səhifədə göstərilməsə, <ph name="LINK_BEGIN" />
       Chromium OS ayarlarına<ph name="LINK_END" /> baxın</translation>
+<translation id="7607142834923530546">İş hesabı ilə daxil olmusunuz. Şəxsi datanızı ayrı saxlamaq üçün <ph name="NEW_USER" /> üçün yeni Chromium sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="761356813943268536">Chromium kameranızı və mikrofonunuzu işlədir.</translation>
 <translation id="7617377681829253106">Chromium daha da keyfiyyətli oldu</translation>
 <translation id="7628001322379820951">Chromium kompüterdə zərərli proqram tapıb</translation>
diff --git a/chrome/app/resources/chromium_strings_be.xtb b/chrome/app/resources/chromium_strings_be.xtb
index 0c0b496..1ff6786 100644
--- a/chrome/app/resources/chromium_strings_be.xtb
+++ b/chrome/app/resources/chromium_strings_be.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Дапамагаць паляпшаць функцыі і прадукцыйнасць Chromium OS шляхам аўтаматычнай адпраўкі ў Google даных пра выкарыстанне і дыягностыку (неабавязкова).</translation>
 <translation id="2347108572062610441">Гэта пашырэнне змяніла старонку, якая паказваецца пры запуску Chromium.</translation>
 <translation id="2396765026452590966">Пашырэнне "<ph name="EXTENSION_NAME" />" змяніла старонку, якая паказваецца пры запуску Chromium.</translation>
+<translation id="2442081746662839303">Сварыць новы профіль Chromium Space для карыстальніка <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">У Chromium</translation>
 <translation id="2485422356828889247">Выдаліць</translation>
 <translation id="2527042973354814951">Каб уключыць убудову "<ph name="PLUGIN_NAME" />", перазапусціце Chromium</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium працуе ў фонавым рэжыме.</translation>
 <translation id="4987820182225656817">Госці могуць выкарыстоўваць Chromium, не пакідаючы нічога пасля сябе.</translation>
 <translation id="4994636714258228724">Дадаць мяне ў Chromium</translation>
+<translation id="5053724573690775822">Сварыць новы працоўны профіль Chromium Space?</translation>
 <translation id="5224391634244552924">Няма захаваных пароляў. Chromium можа правяраць толькі захаваныя паролі.</translation>
 <translation id="5277894862589591112">Каб прымяніць змяненні, перазапусціце Chromium</translation>
 <translation id="5358375970380395591">Вы ўваходзіце праз уліковы запіс пад кіраваннем, што дае адміністратару кантроль над вашым профілем у браўзеры Chromium. Даныя Chromium (праграмы, закладкі, гісторыя, паролі і іншыя налады) будуць назаўсёды прывязаны да ўліковага запісу <ph name="USER_NAME" />. Вы зможаце выдаліць гэтыя даныя праз панэль кіравання Уліковымі запісамі Google, але іх нельга будзе звязаць з іншым уліковым запісам. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium не можа паказаць перадпрагляд друку: убудаваны сродак прагляду PDF адсутнічае.</translation>
 <translation id="5427571867875391349">Зрабіць Chromium стандартным браўзерам</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium (бэта-версія)</translation>
+<translation id="544968170749360982">Вы ўвайшлі ў профіль карыстальніка <ph name="EXISTING_USER" />, выкарыстаўшы новы ўліковы запіс. Ці не хочаце стварыць новы профіль Chromium Space для карыстальніка <ph name="NEW_USER" />, каб трымаць свае даныя асобна?</translation>
 <translation id="5479196819031988440">Сістэме Chromium OS не ўдалося адкрыць гэту старонку.</translation>
 <translation id="5480860683791598150">Chromium патрабуецца доступ да геаданых, каб абагуліць звесткі аб вашым месцазнаходжанні з гэтым сайтам</translation>
 <translation id="549669000822060376">Пачакайце, пакуль Chromium усталюе апошнія абнаўленні сістэмы.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium не змог сінхранізаваць даныя з-за памылкі ўваходу.</translation>
 <translation id="6096348254544841612">Наладжвайце Chromium і кіруйце ім. Ёсць абнаўленне.</translation>
 <translation id="6120345080069858279">Chromium захавае гэты пароль у вашым Уліковым запісе Google. Вам не трэба запамінаць яго.</translation>
+<translation id="6128834065531097268">Вы ўвайшлі ў профіль карыстальніка <ph name="EXISTING_USER" />, выкарыстаўшы працоўны ўліковы запіс. Ці не хочаце стварыць новы профіль Chromium Space для дамена <ph name="WORK_DOMAIN" />, каб трымаць свае даныя асобна?</translation>
 <translation id="6129621093834146363">Файл <ph name="FILE_NAME" /> небяспечны, таму Chromium заблакіраваў яго.</translation>
 <translation id="6134968993075716475">"Бяспечны прагляд" выключаны. Chromium рэкамендуе ўключыць гэты рэжым.</translation>
 <translation id="6212496753309875659">На гэтым камп'ютары ўжо ўсталявана навейшая версія Chromium. Калі праграма не працуе, выдаліце Chromium і паўтарыце спробу.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Таксама выдаліць даныя з Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Калі налада адсутнічае на гэтай старонцы, перайдзіце ў <ph name="LINK_BEGIN" />
       налады Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Вы ўвайшлі ў працоўны ўліковы запіс. Ці не хочаце стварыць новы профіль Chromium Space для карыстальніка <ph name="NEW_USER" />, каб трымаць свае асабістыя даныя асобна?</translation>
 <translation id="761356813943268536">Chromium выкарыстоўвае камеру і мікрафон.</translation>
 <translation id="7617377681829253106">Chromium стаў яшчэ лепшым</translation>
 <translation id="7628001322379820951">Chromium знайшоў шкоднае праграмнае забеспячэнне на вашым камп'ютары</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index 68aa6ef..5561eef 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">ঐচ্ছিক: ডায়াগনস্টিক ও ব্যবহারের ডেটা অটোমেটিক Google-এ পাঠিয়ে Chromium OS-এর ফিচার ও পারফরম্যান্স আরও উন্নত করে তুলতে সাহায্য করুন।</translation>
 <translation id="2347108572062610441">আপনি Chromium চালু করলে কোন পৃষ্ঠাটি দেখানো হবে তা এই এক্সটেনশনটি পরিবর্তন করেছে।</translation>
 <translation id="2396765026452590966">আপনি Chromium চালু করলে কোন পৃষ্ঠাটি দেখানো হবে তা "<ph name="EXTENSION_NAME" />" এক্সটেনশনটি পরিবর্তন করেছে।</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" />-এর জন্য নতুন Chromium স্পেস তৈরি করতে চান?</translation>
 <translation id="2483889755041906834">Chromium এ</translation>
 <translation id="2485422356828889247">আনইনস্টল</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> কে সক্ষম করতে Chromium আবার চালু করুন</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium পটভূমিতে চলছে৷</translation>
 <translation id="4987820182225656817">অতিথিগণ কোনো কিছুর জন্য অভাব বোধ না করেই Chromium ব্যবহার করতে পারবেন৷</translation>
 <translation id="4994636714258228724">Chromium এর সাথে নিজেকে যোগ করুন</translation>
+<translation id="5053724573690775822">নতুন Chromium অফিস স্পেস তৈরি করতে চান?</translation>
 <translation id="5224391634244552924">কোনও পাসওয়ার্ড সেভ করা নেই। আপনি পাসওয়ার্ড সেভ করলে Chromium সেটি চেক করতে পারবে।</translation>
 <translation id="5277894862589591112">আপনার পরিবর্তনগুলি প্রয়োগ করতে, Chromium রিলঞ্চ করুন</translation>
 <translation id="5358375970380395591">আপনি একটি পরিচালিত অ্যাকাউন্টের মাধ্যমে সাইন-ইন  করছেন এবং এর অ্যাডমিনিস্ট্রেটরকে আপনার Chromium প্রোফাইলের উপরে নিয়ন্ত্রণ দিচ্ছেন৷ আপনার Chromium ডেটা, যেমন অ্যাপ, বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংস <ph name="USER_NAME" /> এতে স্থায়ীভাবে সম্পৃক্ত হবে৷ আপনি Google অ্যাকাউন্টগুলির ড্যাশবোর্ডের মাধ্যমে এই ডেটাগুলি মুছতে চালু হবেন, কিন্তু অন্য অ্যাকাউন্টের সাথে এই ডেটা সংশ্লিষ্ট করতে পারবেন না৷ <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">বিল্ট-ইন পিডিএফ ভিউয়ার অনুপস্থিত থাকলে Chromium প্রিন্ট প্রিভিউ দেখাতে পারে না৷</translation>
 <translation id="5427571867875391349">Chromium-কে আপনার ডিফল্ট ব্রাউজার হিসাবে সেট করুন</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium বিটা</translation>
+<translation id="544968170749360982">আপনি <ph name="EXISTING_USER" />-এর স্পেসে নতুন অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। নিজের ডেটা আলাদা রাখতে আপনি কি <ph name="NEW_USER" />-এর জন্য নতুন Chromium স্পেস তৈরি করতে চান?</translation>
 <translation id="5479196819031988440">Chromium OS এই পৃষ্ঠাটি খুলতে পারবে না।</translation>
 <translation id="5480860683791598150">এই সাইটটির সাথে আপনার লোকেশন শেয়ার করার জন্য Chromium কে আপনার লোকেশনের তথ্যে অ্যাক্সেস দিতে হবে</translation>
 <translation id="549669000822060376">Chromium যখন সিস্টেম আপডেটগুলিকে ইনস্টল করে তখন দয়া করে অপেক্ষা করুন৷</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">সাইন ইনে ত্রুটির কারণে Chromium আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation>
 <translation id="6096348254544841612">Chromium কে কাস্টমাইজ এবং নিয়ন্ত্রণ করুন৷ আপডেট পাওয়া যাবে৷</translation>
 <translation id="6120345080069858279">Chromium আপনার Google অ্যাকাউন্টে এই পাসওয়ার্ডটি সেভ করবে। আপনাকে এটি মনে রাখতে হবে না।</translation>
+<translation id="6128834065531097268">আপনি <ph name="EXISTING_USER" />-এর স্পেসে অফিস অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। নিজের ডেটা আলাদা রাখতে আপনি কি <ph name="WORK_DOMAIN" /> ডোমেনের জন্য নতুন Chromium স্পেস তৈরি করতে চান?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> বিপজ্জনক, তাই Chromium এটিকে অবরুদ্ধ করেছে।</translation>
 <translation id="6134968993075716475">'Safe Browsing'-এর সুবিধা বন্ধ করা আছে। তবে এটি চালু রাখার জন্য Chromium আপনাকে সাজেস্ট করছে।</translation>
 <translation id="6212496753309875659">এই কম্পিউটারে ইতিমধ্যে Chromium-এর আরও একটি সাম্প্রতিক ভার্সন রয়েছে৷ যদি সফ্টওয়্যার কাজ না করে, দয়া করে Chromium আনইনস্টল করুন এবং আবার চেষ্টা করুন৷</translation>
@@ -195,6 +199,7 @@
 <translation id="7561906087460245826">এর পাশাপাশি, Chromium থেকেও ডেটা সরিয়ে দিন (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">এই পৃষ্ঠাতে কোনও একটি সেটিং দেখতে না পেলে আপনার <ph name="LINK_BEGIN" />
       Chromium OS সেটিংস<ph name="LINK_END" /> বিকল্পটি দেখুন</translation>
+<translation id="7607142834923530546">আপনি অফিস অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। ব্যক্তিগত ডেটা আলাদা রাখতে আপনি কি <ph name="NEW_USER" />-এর জন্য নতুন Chromium স্পেস তৈরি করতে চান?</translation>
 <translation id="761356813943268536">Chromium আপনার ক্যামেরা এবং মাইক্রোফোন ব্যবহার করছে৷</translation>
 <translation id="7617377681829253106">Chromium আরও ভাল হয়ে উঠেছে</translation>
 <translation id="7628001322379820951">Chromium আপনার কম্পিউটারে ক্ষতিকর সফ্টওয়্যার খুঁজে পেয়েছে</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 0f4af8f5..3ec0361 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Volitelné: Pomozte se zlepšováním funkcí a výkonu operačního systému Chromium OS tím, že budete do Googlu automaticky odesílat diagnostické údaje a údaje o využití.</translation>
 <translation id="2347108572062610441">Toto rozšíření změnilo stránku, která se zobrazí při spuštění prohlížeče Chromium.</translation>
 <translation id="2396765026452590966">Rozšíření <ph name="EXTENSION_NAME" /> změnilo stránku, která se zobrazí při spuštění prohlížeče Chromium.</translation>
+<translation id="2442081746662839303">Vytvořit v prohlížeči Chromium nový prostor pro uživatele <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">V prohlížeči Chromium</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
 <translation id="2527042973354814951">Chcete-li aktivovat plugin <ph name="PLUGIN_NAME" />, restartujte prohlížeč Chromium</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium je v režimu na pozadí.</translation>
 <translation id="4987820182225656817">Hosté mohou Chromium používat, aniž by po nich zůstaly jakékoliv stopy.</translation>
 <translation id="4994636714258228724">Přidejte do prohlížeče Chromium svůj účet</translation>
+<translation id="5053724573690775822">Vytvořit v prohlížeči Chromium nový pracovní prostor?</translation>
 <translation id="5224391634244552924">Nemáte žádná uložená hesla. Chromium může hesla zkontrolovat, pouze když si je uložíte.</translation>
 <translation id="5277894862589591112">Chcete-li změny použít, restartujte Chromium</translation>
 <translation id="5358375970380395591">Přihlašujete se pomocí spravovaného účtu a poskytujete jeho správci kontrolu nad vaším profilem prohlížeče Chromium. Vaše údaje prohlížeče Chromium, například aplikace, záložky, historie, hesla a jiná nastavení, budou trvale přidružena k účtu <ph name="USER_NAME" />. Tyto údaje budete moci smazat pomocí Hlavního panelu v Účtech Google, ale nebudete je moci přidružit k jinému účtu. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Pokud chybí integrovaný program k zobrazení souborů PDF, nemůže prohlížeč Chromium zobrazit náhled tisku.</translation>
 <translation id="5427571867875391349">Nastavit Chromium jako výchozí prohlížeč</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
+<translation id="544968170749360982">V prostoru uživatele <ph name="EXISTING_USER" /> jste se přihlásili pomocí nového účtu. Chcete v prohlížeči Chromium pro doménu <ph name="NEW_USER" /> vytvořit nový prostor, aby data zůstala oddělená?</translation>
 <translation id="5479196819031988440">Chromium OS tuto stránku nedokáže otevřít</translation>
 <translation id="5480860683791598150">Prohlížeč Chromium potřebuje přístup k vaší poloze, aby ji mohl sdílet s tímto webem</translation>
 <translation id="549669000822060376">Počkejte prosím, než Chromium nainstaluje nejnovější aktualizace systému.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Přihlížeč Chromium vaše data nemohl synchronizovat, protože při přihlašování došlo k chybě.</translation>
 <translation id="6096348254544841612">Přizpůsobte si prohlížeč Chromium a ovládejte jej. Je k dispozici aktualizace.</translation>
 <translation id="6120345080069858279">Chromium vám toto heslo uloží do účtu Google. Nebudete si ho muset pamatovat.</translation>
+<translation id="6128834065531097268">V prostoru uživatele <ph name="EXISTING_USER" /> jste se přihlásili pomocí pracovního účtu. Chcete v prohlížeči Chromium pro doménu <ph name="WORK_DOMAIN" /> vytvořit nový prostor, aby data zůstala oddělená?</translation>
 <translation id="6129621093834146363">Soubor <ph name="FILE_NAME" /> je nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation>
 <translation id="6134968993075716475">Bezpečné prohlížení je vypnuté. Chromium ho doporučuje zapnout.</translation>
 <translation id="6212496753309875659">V tomto počítači je již nainstalována novější verze prohlížeče Chromium. Jestliže tento software nefunguje, odinstalujte Chromium a zkuste to znovu.</translation>
@@ -198,6 +202,7 @@
 <translation id="7549178288319965365">O systému Chromium OS</translation>
 <translation id="7561906087460245826">Také vymazat data z prohlížeče Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Pokud některé nastavení na této stránce není zobrazeno, podívejte se do <ph name="LINK_BEGIN" />nastavení systému Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Přihlásili jste se pomocí pracovního účtu. Chcete v prohlížeči Chromium pro doménu <ph name="NEW_USER" /> vytvořit nový prostor, aby osobní data zůstala oddělená?</translation>
 <translation id="761356813943268536">Chromium používá vaši kameru a mikrofon.</translation>
 <translation id="7617377681829253106">Prohlížeč Chromium je opět o něco lepší</translation>
 <translation id="7628001322379820951">Prohlížeč Chromium ve vašem počítači našel škodlivý software</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index 65e4af9e..f2a81b3e 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Opcional: Para ayudarnos a mejorar las funciones y el rendimiento del Sistema operativo Chromium, envía automáticamente datos de uso y diagnóstico a Google.</translation>
 <translation id="2347108572062610441">Esta extensión cambió la página que se muestra al iniciar Chromium.</translation>
 <translation id="2396765026452590966">La extensión "<ph name="EXTENSION_NAME" />" cambió la página que se muestra al iniciar Chromium.</translation>
+<translation id="2442081746662839303">¿Deseas crear un nuevo espacio de Chromium para <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">En Chromium</translation>
 <translation id="2485422356828889247">Desinstalación</translation>
 <translation id="2527042973354814951">Reiniciar Chromium para habilitar <ph name="PLUGIN_NAME" /></translation>
@@ -103,6 +104,7 @@
 <translation id="4943838377383847465">Chromium está en modo de segundo plano</translation>
 <translation id="4987820182225656817">Los invitados pueden utilizar Chromium sin dejar nada detrás.</translation>
 <translation id="4994636714258228724">Agregarte a Chromium</translation>
+<translation id="5053724573690775822">¿Deseas crear un nuevo espacio de trabajo de Chromium?</translation>
 <translation id="5224391634244552924">No hay contraseñas guardadas. Chromium puede revisar las contraseñas cuando las guardas.</translation>
 <translation id="5277894862589591112">Para aplicar los cambios, vuelve a ejecutar Chromium</translation>
 <translation id="5358375970380395591">Estás por acceder con una cuenta administrada, lo que significa que proporcionarás al administrador el control sobre tu perfil de Chromium. Tus datos de Chromium, como las aplicaciones, los favoritos, el historial, las contraseñas y otros parámetros de configuración quedarán vinculados a <ph name="USER_NAME" /> de forma permanente. Podrás eliminar estos datos a través del Panel de control de Cuentas de Google, pero no podrás asociarlos a otra cuenta. <ph name="LEARN_MORE" /></translation>
@@ -112,6 +114,7 @@
 <translation id="5416696090975899932">Chromium no puede mostrar la vista previa de impresión si falta el visor de PDF incorporado.</translation>
 <translation id="5427571867875391349">Establecer Chromium como navegador predeterminado</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" />: Versión Beta de Chromium</translation>
+<translation id="544968170749360982">Accediste con una cuenta nueva en el espacio de <ph name="EXISTING_USER" />. ¿Deseas crear un nuevo espacio de Chromium para <ph name="NEW_USER" /> a fin de que tus datos se conserven separados?</translation>
 <translation id="5479196819031988440">El Sistema operativo Chromium no puede abrir esta página.</translation>
 <translation id="5480860683791598150">Chromium necesita acceder a tu ubicación para compartirla con este sitio</translation>
 <translation id="549669000822060376">Espera mientras Chromium instala las últimas actualizaciones del sistema.</translation>
@@ -134,6 +137,7 @@
 <translation id="608189560609172163">Chromium no pudo sincronizar los datos porque se produjo un error de acceso.</translation>
 <translation id="6096348254544841612">Personaliza y controla Chromium. Hay una actualización disponible.</translation>
 <translation id="6120345080069858279">Chromium guardará esta contraseña en tu cuenta de Google, por lo que no tendrás que recordarla.</translation>
+<translation id="6128834065531097268">Accediste con una cuenta de trabajo en el espacio de <ph name="EXISTING_USER" />. ¿Deseas crear un nuevo espacio de Chromium para <ph name="WORK_DOMAIN" /> a fin de que tus datos se conserven separados?</translation>
 <translation id="6129621093834146363">Chromium bloqueó <ph name="FILE_NAME" /> porque es un archivo peligroso.</translation>
 <translation id="6134968993075716475">La Navegación segura está desactivada. Chromium recomienda activarla.</translation>
 <translation id="6212496753309875659">Este equipo ya tiene una versión más reciente de Chromium. Si el software no funciona, desinstala Chromium y vuelve a intentarlo.</translation>
@@ -191,6 +195,7 @@
 <translation id="7561906087460245826">También borrar los datos de Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Si no ves una opción de configuración en esta página, consulta la <ph name="LINK_BEGIN" />
       configuración del Sistema operativo Chromium<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Accediste con una cuenta de trabajo. ¿Deseas crear un nuevo espacio de Chromium para <ph name="NEW_USER" /> a fin de que tus datos personales se conserven separados?</translation>
 <translation id="761356813943268536">Chromium está usando tu cámara y tu micrófono.</translation>
 <translation id="7617377681829253106">Chromium mejorado</translation>
 <translation id="7628001322379820951">Chromium encontró software dañino en tu computadora</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index 86955b58..a32dffe 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Opcional: Envía datos de uso y diagnóstico automáticamente a Google para ayudarnos a mejorar las funciones y el rendimiento de Chromium OS.</translation>
 <translation id="2347108572062610441">Esta extensión ha cambiado la página que se muestra al iniciar Chromium.</translation>
 <translation id="2396765026452590966">La extensión <ph name="EXTENSION_NAME" /> ha cambiado la página que se muestra al iniciar Chromium.</translation>
+<translation id="2442081746662839303">¿Crear espacio Chromium para <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">En Chromium</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2527042973354814951">Reiniciar Chromium para habilitar <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium está en modo de segundo plano.</translation>
 <translation id="4987820182225656817">Los invitados pueden utilizar Chromium sin dejar nada atrás.</translation>
 <translation id="4994636714258228724">Añadirte a Chromium</translation>
+<translation id="5053724573690775822">¿Crear espacio de trabajo Chromium?</translation>
 <translation id="5224391634244552924">No hay ninguna contraseña guardada. Chromium puede comprobar tus contraseñas si las guardas.</translation>
 <translation id="5277894862589591112">Reinicia Chromium para aplicar los cambios</translation>
 <translation id="5358375970380395591">Vas a iniciar sesión con una cuenta gestionada, lo que significa que proporcionarás a su administrador control sobre tu perfil de Chromium. Tus datos de Chromium como, por ejemplo, tus aplicaciones, tus marcadores, tu historial, tus contraseñas y otras opciones se vincularán de forma permanente a la cuenta <ph name="USER_NAME" />. Podrás eliminar estos datos a través del Panel de control de cuentas de Google, pero no podrás asociarlos a otra cuenta. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium no puede mostrar la vista previa de impresión si falta el visor de PDF integrado.</translation>
 <translation id="5427571867875391349">Establecer Chromium como navegador predeterminado</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> ‑ Chromium Beta</translation>
+<translation id="544968170749360982">Has iniciado sesión con otra cuenta en el espacio de <ph name="EXISTING_USER" />. ¿Quieres crear un espacio Chromium para <ph name="NEW_USER" /> y mantener tus datos de forma separada?</translation>
 <translation id="5479196819031988440">Chromium OS no puede abrir esta página.</translation>
 <translation id="5480860683791598150">Chromium necesita acceder a tu ubicación para compartirla con este sitio web</translation>
 <translation id="549669000822060376">Espera mientras Chromium instala las últimas actualizaciones del sistema.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium no ha podido sincronizar los datos debido a un error de inicio de sesión.</translation>
 <translation id="6096348254544841612">Personaliza y controla Chromium. Hay una actualización disponible.</translation>
 <translation id="6120345080069858279">Chromium guardará esta contraseña en tu cuenta de Google para que no tengas que recordarla.</translation>
+<translation id="6128834065531097268">Has iniciado sesión con una cuenta de trabajo en el espacio de <ph name="EXISTING_USER" />. ¿Quieres crear un espacio Chromium para <ph name="WORK_DOMAIN" /> y mantener tus datos de forma separada?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> es peligroso, por lo que Chromium lo ha bloqueado.</translation>
 <translation id="6134968993075716475">La función Navegación Segura está desactivada. Chromium recomienda activarla.</translation>
 <translation id="6212496753309875659">Este ordenador ya cuenta con una versión más reciente de Chromium. Si el software no funciona, desinstala Chromium y vuelve a intentarlo.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Borrar también los datos de Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Si no se muestra algún ajuste en esta página, consulta la <ph name="LINK_BEGIN" />
       configuración de Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Has iniciado sesión con una cuenta de trabajo. ¿Quieres crear un espacio Chromium para <ph name="NEW_USER" /> y mantener tus datos de forma separada?</translation>
 <translation id="761356813943268536">Chromium está utilizando la cámara y el micrófono.</translation>
 <translation id="7617377681829253106">Chromium mejor que nunca</translation>
 <translation id="7628001322379820951">Chromium ha detectado software dañino en tu ordenador</translation>
diff --git a/chrome/app/resources/chromium_strings_eu.xtb b/chrome/app/resources/chromium_strings_eu.xtb
index 0488b5b..38da01de 100644
--- a/chrome/app/resources/chromium_strings_eu.xtb
+++ b/chrome/app/resources/chromium_strings_eu.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Aukerakoa: lagundu Chromium OS sistemaren eginbideak eta funtzionamendua hobetzen Google-ri diagnostikoak eta erabilera-datuak automatikoki bidalita.</translation>
 <translation id="2347108572062610441">Luzapenak aldatu egin du Chromium abiarazten duzunean agertzen den orria.</translation>
 <translation id="2396765026452590966"><ph name="EXTENSION_NAME" /> luzapenak aldatu egin du Chromium abiarazten duzunean agertzen den orria.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> erabiltzailearentzat Chromium-eko eremu bat sortu nahi duzu?</translation>
 <translation id="2483889755041906834">Chromium-en</translation>
 <translation id="2485422356828889247">Desinstalatu</translation>
 <translation id="2527042973354814951">Berrabiarazi Chromium <ph name="PLUGIN_NAME" /> gaitzeko</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium atzeko planoko moduan dago.</translation>
 <translation id="4987820182225656817">Gonbidatuek Chromium erabil dezakete aztarnarik utzi gabe.</translation>
 <translation id="4994636714258228724">Gaitu zure burua Chromium-en</translation>
+<translation id="5053724573690775822">Chromium-eko laneko eremu bat sortu nahi duzu?</translation>
 <translation id="5224391634244552924">Ez dago pasahitzik gordeta. Gordeta dituzun pasahitzak egiaztatu egin ditzake Chromium-ek.</translation>
 <translation id="5277894862589591112">Aldaketak aplikatzeko, berrabiarazi Chromium</translation>
 <translation id="5358375970380395591">Kontu kudeatu batekin hasten ari zara saioa eta kontuaren administratzaileari zure Chromium profila kontrolatzeko ahalmena ematera zoaz. Chromium aplikazioan dituzun datuak, esaterako, aplikazioak, laster-markak, historia, pasahitzak eta beste ezarpen batzuk betiko lotuko zaizkio <ph name="USER_NAME" /> erabiltzaileari. Google-ko kontuetako Panelaren bidez ezabatu ahalko dituzu datu horiek, baina ezingo dituzu beste kontu batekin lotu. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium-ek ezin du erakutsi inprimatze-aurrebista PDF dokumentuen ikustaile integratua falta bada.</translation>
 <translation id="5427571867875391349">Ezarri Chromium arakatzaile lehenetsi gisa</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">Beste kontu batekin hasi duzu saioa <ph name="EXISTING_USER" /> erabiltzailearen eremuan. Datuak bereiz gordetzeko <ph name="NEW_USER" /> erabiltzailearentzat Chromium-eko eremu bat sortu nahi duzu?</translation>
 <translation id="5479196819031988440">Chromium sistema eragileak ezin du ireki orri hau.</translation>
 <translation id="5480860683791598150">Chromium-ek zure kokapena webgune honekin partekatzeko baimena behar du</translation>
 <translation id="549669000822060376">Itxaron Chromium-ek sistemaren azken eguneratzeak instalatu arte.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Saio-hasieraren errore bat dela-eta, Chromium arakatzaileak ezin izan ditu sinkronizatu zure datuak.</translation>
 <translation id="6096348254544841612">Pertsonalizatu eta kontrolatu Chromium. Eguneratze bat erabilgarri dago.</translation>
 <translation id="6120345080069858279">Chromium-ek Google-ko kontuan gordeko du pasahitz hau. Ez duzu gogoratu beharko.</translation>
+<translation id="6128834065531097268">Laneko kontu batekin hasi duzu saioa <ph name="EXISTING_USER" /> erabiltzailearen eremuan. Datuak bereiz gordetzeko <ph name="WORK_DOMAIN" /> domeinurako Chromium-eko eremu bat sortu nahi duzu?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> arriskutsua da; horregatik, blokeatu egin du Chromium-ek.</translation>
 <translation id="6134968993075716475">Arakatze segurua desaktibatuta dago. Aktibatzea gomendatzen du Chromium-ek.</translation>
 <translation id="6212496753309875659">Ordenagailuak Chromium arakatzailearen bertsio berriagoa du. Softwareak ez badu funtzionatzean, desinstalatu Chromium eta saiatu berriro.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Halaber, garbitu Chromium-eko datuak (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Ezarpenen bat orri honetan agertzen ez bada, bila ezazu <ph name="LINK_BEGIN" />
       Chromium-en sistema eragilearen ezarpenetan.<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Laneko kontu batekin hasi duzu saioa. Datu pertsonalak bereiz gordetzeko <ph name="NEW_USER" /> erabiltzailearentzat Chromium-eko eremu bat sortu nahi duzu?</translation>
 <translation id="761356813943268536">Chromium kamera eta mikrofonoa erabiltzen ari da.</translation>
 <translation id="7617377681829253106">Chromium hobetu egin dugu</translation>
 <translation id="7628001322379820951">Chromium-ek software kaltegarria aurkitu du ordenagailuan</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index 4545a33..d204b6e 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Valinnainen: Auta parantamaan Chromium-käyttöjärjestelmän ominaisuuksia ja suorituskykyä lähettämällä automaattisesti diagnostiikka- ja käyttödataa Googlelle.</translation>
 <translation id="2347108572062610441">Tämä laajennus on vaihtanut Chromiumin aloitussivun.</translation>
 <translation id="2396765026452590966">Laajennus <ph name="EXTENSION_NAME" /> on vaihtanut Chromiumin aloitussivun.</translation>
+<translation id="2442081746662839303">Luodaanko käyttäjälle <ph name="NEW_USER" /> uusi Chromium-tila?</translation>
 <translation id="2483889755041906834">Chromiumissa</translation>
 <translation id="2485422356828889247">Poista</translation>
 <translation id="2527042973354814951">Käynnistä Chromium uudelleen, jotta <ph name="PLUGIN_NAME" /> voidaan ottaa käyttöön.</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium on käynnissä taustalla</translation>
 <translation id="4987820182225656817">Vierailijat voivat käyttää Chromiumia jälkiä jättämättä.</translation>
 <translation id="4994636714258228724">Lisää itsesi Chromiumiin</translation>
+<translation id="5053724573690775822">Luodaanko uusi Chromium-työtila?</translation>
 <translation id="5224391634244552924">Ei tallennettuja salasanoja. Chromium voi tarkistaa salasanasi, kun tallennat niitä.</translation>
 <translation id="5277894862589591112">Ota muutokset käyttöön käynnistämällä Chromium uudelleen</translation>
 <translation id="5358375970380395591">Olet kirjautumassa sisään hallinnoidulla tilillä ja antamassa tilin järjestelmänvalvojalle oikeuden hallita Chromium-profiiliasi. Chromium-tietosi, kuten sovelluksesi, kirjanmerkkisi, historiasi, salasanasi ja muut asetuksesi, yhdistetään pysyvästi käyttäjätiliin <ph name="USER_NAME" />. Voit poistaa nämä tiedot Google-tilien Hallintapaneelissa, mutta et voi liittää tietoja toiseen tiliin. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium ei voi näyttää tulostusesikatselua, koska PDF-katseluohjelma puuttuu.</translation>
 <translation id="5427571867875391349">Aseta Chromium oletusselaimeksi</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
+<translation id="544968170749360982">Kirjauduit sisään uudella tilillä käyttäjän <ph name="EXISTING_USER" /> tilaan. Haluatko luoda uuden Chromium-tilan (<ph name="NEW_USER" />) pitääksesi datasi erillisenä?</translation>
 <translation id="5479196819031988440">Chromium-käyttöjärjestelmä ei voi avata tätä sivua.</translation>
 <translation id="5480860683791598150">Chromium tarvitsee oikeuden käyttää sijaintiasi, jotta se voidaan jakaa tämän sivuston kanssa.</translation>
 <translation id="549669000822060376">Odota hetki, Chromium asentaa uusimpia järjestelmäpäivityksiä.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium ei voinut synkronoida tietoja kirjautumisvirheen vuoksi.</translation>
 <translation id="6096348254544841612">Muokkaa ja hallinnoi Chromiumia. Päivitys on saatavilla.</translation>
 <translation id="6120345080069858279">Chromium tallentaa tämän salasanan Google-tilillesi. Sinun ei tarvitse muistaa sitä.</translation>
+<translation id="6128834065531097268">Kirjauduit sisään työtilillä käyttäjän <ph name="EXISTING_USER" /> tilaan. Haluatko luoda uuden Chromium-tilan (<ph name="WORK_DOMAIN" />) pitääksesi datasi erillisenä?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> on vaarallinen, joten Chromium on estänyt sen.</translation>
 <translation id="6134968993075716475">Selaussuoja on pois päältä. Chromium suosittelee laittamaan sen päälle.</translation>
 <translation id="6212496753309875659">Tälle tietokoneelle on jo asennettu Chromiumin uudempi versio. Jos Chromium ei toimi, poista sen asennus ja yritä uudelleen.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Poista data myös Chromiumista (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Jos asetus ei näy tällä sivulla, siirry <ph name="LINK_BEGIN" />
     Chromium-käyttöjärjestelmän asetuksiin<ph name="LINK_END" />.</translation>
+<translation id="7607142834923530546">Kirjauduit sisään työtilillä. Haluatko luoda uuden Chromium-tilan (<ph name="NEW_USER" />) pitääksesi henkilökohtaiset tietosi erillisinä?</translation>
 <translation id="761356813943268536">Chromium käyttää kameraasi ja mikrofoniasi.</translation>
 <translation id="7617377681829253106">Chromium on nyt entistä parempi</translation>
 <translation id="7628001322379820951">Chromium löysi tietokoneeltasi haitallisen ohjelmiston</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 7df570e..dcc3c17 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Opsyonal: Tumulong na pahusayin ang mga feature at performance ng Chromium OS sa pamamagitan ng awtomatikong pagpapadala sa Google ng data ng diagnostic at paggamit.</translation>
 <translation id="2347108572062610441">Binago ng extension na ito ang ipinapakitang page kapag sinimulan mo ang Chronium.</translation>
 <translation id="2396765026452590966">Binago ng extension na "<ph name="EXTENSION_NAME" />" ang ipinapakitang page kapag sinimulan mo ang Chromium.</translation>
+<translation id="2442081746662839303">Gumawa ng bagong Chromium space para kay <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">Sa Chromium</translation>
 <translation id="2485422356828889247">I-uninstall</translation>
 <translation id="2527042973354814951">I-restart ang Chromium upang ma-enable ang <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Nasa background mode ang Chromium.</translation>
 <translation id="4987820182225656817">Makakagamit ng Chromium ang mga bisita nang hindi nag-iiwan ng anumang bakas.</translation>
 <translation id="4994636714258228724">Idagdag ang iyong sarili sa Chromium</translation>
+<translation id="5053724573690775822">Gumawa ng bagong Chromium Work space?</translation>
 <translation id="5224391634244552924">Walang naka-save na password. Masusuri ng Chromium ang iyong mga password kapag na-save mo ang mga ito.</translation>
 <translation id="5277894862589591112">Para ilapat ang iyong mga pagbabago, muling ilunsad ang Chromium</translation>
 <translation id="5358375970380395591">Nagsa-sign in ka gamit ang isang pinamamahalaang account at nagbibigay sa administrator nito ng kontrol sa iyong profile sa Chromium. Permanenteng mauugnay ang iyong data sa Chromium, gaya ng iyong apps, mga bookmark, kasaysayan, password, at iba pang mga setting sa <ph name="USER_NAME" />. Matatanggal mo ang data na ito sa Google Accounts Dashboard, ngunit hindi mo maiuugnay ang data na ito sa isa pang account. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Hindi maipapakita ng Chromium ang preview ng pag-print kapag nawawala ang built-in na PDF viewer.</translation>
 <translation id="5427571867875391349">Itakda ang Chromium bilang iyong default na browser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">Nag-sign in ka gamit ang isang bagong account sa space ni <ph name="EXISTING_USER" />. Gusto mo bang gumawa ng bagong Chromium space para kay <ph name="NEW_USER" /> para mapanatiling nakahiwalay ang iyong data?</translation>
 <translation id="5479196819031988440">Hindi mabuksan ng Chromium OS ang page na ito.</translation>
 <translation id="5480860683791598150">Kailangan ng Chromium ng access sa iyong lokasyon upang maibahagi ang lokasyon mo sa site na ito</translation>
 <translation id="549669000822060376">Mangyaring maghintay habang ini-install ng Chromium ang mga pinakabagong update sa system.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Hindi mai-sync ng Chromium ang iyong data dahil sa isang error sa pagsa-sign in.</translation>
 <translation id="6096348254544841612">I-customize at kontrolin ang Chromium. May available na update.</translation>
 <translation id="6120345080069858279">Ise-save ng Chromium ang password na ito sa iyong Google Account. Hindi mo na ito kailangang tandaan.</translation>
+<translation id="6128834065531097268">Nag-sign in ka gamit ang isang Account sa trabaho sa space ni <ph name="EXISTING_USER" />. Gusto mo bang gumawa ng bagong Chromium space para sa <ph name="WORK_DOMAIN" /> para mapanatiling nakahiwalay ang iyong data?</translation>
 <translation id="6129621093834146363">Mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chromium.</translation>
 <translation id="6134968993075716475">Naka-off ang Ligtas na Pag-browse. Inirerekomenda ng Chromium na i-on ito.</translation>
 <translation id="6212496753309875659">May mas bagong bersyon ng Chromium na ang computer na ito. Kung hindi gumagana ang software, mangyaring i-uninstall ang Chromium at subukang muli.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">I-clear din ang data sa Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Kung hindi lumalabas ang isang setting sa page na ito, tingnan sa iyong <ph name="LINK_BEGIN" />
       mga setting ng Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Nag-sign in ka gamit ang isang account sa trabaho. Gusto mo bang gumawa ng bagong Chromium space para kay <ph name="NEW_USER" /> para mapanatiling nakahiwalay ang iyong personal na data?</translation>
 <translation id="761356813943268536">Ginagamit ng Chromium ang iyong camera at mikropono.</translation>
 <translation id="7617377681829253106">Mas mahusay na ang Chromium</translation>
 <translation id="7628001322379820951">May nakitang mapaminsalang software ang Chromium sa iyong computer</translation>
diff --git a/chrome/app/resources/chromium_strings_fr-CA.xtb b/chrome/app/resources/chromium_strings_fr-CA.xtb
index 022ff5a..2d014d0 100644
--- a/chrome/app/resources/chromium_strings_fr-CA.xtb
+++ b/chrome/app/resources/chromium_strings_fr-CA.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Facultatif : aidez-nous à améliorer les fonctionnalités et les performances de Chromium OS en envoyant automatiquement les données de diagnostic et d'utilisation à Google.</translation>
 <translation id="2347108572062610441">Cette extension a modifié la page qui s'affiche au démarrage de Chromium.</translation>
 <translation id="2396765026452590966">L'extension « <ph name="EXTENSION_NAME" /> » a modifié la page qui s'affiche au démarrage de Chromium.</translation>
+<translation id="2442081746662839303">Créer un espace Chromium pour <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">Dans Chromium</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
 <translation id="2527042973354814951">Redémarrer Chromium pour activer le plugiciel <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium fonctionne en mode arrière-plan.</translation>
 <translation id="4987820182225656817">Les invités peuvent utiliser Chromium sans rien laisser derrière eux.</translation>
 <translation id="4994636714258228724">Ajouter un utilisateur à Chromium</translation>
+<translation id="5053724573690775822">Créer un espace professionnel Chromium?</translation>
 <translation id="5224391634244552924">Aucun mot de passe enregistré. Chromium ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
 <translation id="5277894862589591112">Pour appliquer vos modifications, relancez Chromium</translation>
 <translation id="5358375970380395591">Vous vous connectez avec un compte géré et rendez son administrateur maître de votre profil Chromium. Vos données de Chromium, comme vos applications, vos favoris, votre historique, vos mots de passe et vos autres paramètres, vont être associées de manière permanente à <ph name="USER_NAME" />. Vous pourrez supprimer ces données à l'aide du tableau de bord des comptes Google, mais vous ne pourrez pas les associer à un autre compte. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium ne peut pas afficher l'aperçu avant impression lorsque le visualiseur de documents PDF intégré n'est pas installé.</translation>
 <translation id="5427571867875391349">Faire de Chromium le navigateur par défaut</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium bêta</translation>
+<translation id="544968170749360982">Vous vous êtes connecté à l'aide d'un nouveau compte dans l'espace de <ph name="EXISTING_USER" />. Voulez-vous créer un espace Chromium pour <ph name="NEW_USER" /> afin de garder vos données distinctes?</translation>
 <translation id="5479196819031988440">Chromium OS ne peut pas ouvrir cette page.</translation>
 <translation id="5480860683791598150">Chromium a besoin d'accéder à votre position afin de la partager avec ce site</translation>
 <translation id="549669000822060376">Veuillez patienter pendant que Chromium installe les dernières mises à jour système.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium n'a pas pu synchroniser vos données, car une erreur s'est produite lors de la connexion.</translation>
 <translation id="6096348254544841612">Personnalisez et contrôlez Chromium. Une mise à jour est disponible.</translation>
 <translation id="6120345080069858279">Chromium enregistrera ce mot de passe dans votre compte Google. Vous n'aurez pas à le retenir.</translation>
+<translation id="6128834065531097268">Vous vous êtes connecté à l'aide d'un compte professionnel dans l'espace de <ph name="EXISTING_USER" />. Voulez-vous créer un espace Chromium pour <ph name="WORK_DOMAIN" /> afin de garder vos données distinctes?</translation>
 <translation id="6129621093834146363">Chromium a bloqué le fichier <ph name="FILE_NAME" />, car il est dangereux.</translation>
 <translation id="6134968993075716475">La navigation sécurisée est désactivée. Chromium vous recommande de l'activer.</translation>
 <translation id="6212496753309875659">Cet ordinateur dispose déjà d'une version plus récente de Chromium. Si le logiciel ne fonctionne pas, veuillez le désinstaller, puis réessayer.</translation>
@@ -198,6 +202,7 @@
 <translation id="7549178288319965365">À propos de Chromium OS</translation>
 <translation id="7561906087460245826">Effacer les données également dans Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Si un paramètre ne s'affiche pas sur cette page, consultez les <ph name="LINK_BEGIN" />paramètres de Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Vous vous êtes connecté à l'aide d'un compte professionnel. Voulez-vous créer un espace Chromium pour <ph name="NEW_USER" /> afin de garder vos données personnelles distinctes?</translation>
 <translation id="761356813943268536">Chromium utilise votre caméra et votre microphone</translation>
 <translation id="7617377681829253106">Chrome vient de s'améliorer</translation>
 <translation id="7628001322379820951">Chromium a trouvé des logiciels nuisibles sur votre ordinateur</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 304383d..6a7a1628 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -29,6 +29,7 @@
 <translation id="2294245788148774212">Facultatif : contribuez à améliorer les fonctionnalités et les performances de Chromium OS en envoyant automatiquement des données de diagnostic et d'utilisation à Google.</translation>
 <translation id="2347108572062610441">Cette extension a modifié la page qui s'affiche lorsque vous démarrez Chromium.</translation>
 <translation id="2396765026452590966">L'extension <ph name="EXTENSION_NAME" /> a modifié la page qui s'affiche lorsque vous démarrez Chromium.</translation>
+<translation id="2442081746662839303">Créer un espace Chromium pour <ph name="NEW_USER" /> ?</translation>
 <translation id="2483889755041906834">Dans Chromium</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
 <translation id="2527042973354814951">Redémarrer Chromium pour activer <ph name="PLUGIN_NAME" /></translation>
@@ -106,6 +107,7 @@
 <translation id="4943838377383847465">Chromium est exécuté en mode arrière-plan</translation>
 <translation id="4987820182225656817">Les invités peuvent utiliser Chromium sans laisser aucune trace.</translation>
 <translation id="4994636714258228724">Ajouter un utilisateur à Chromium</translation>
+<translation id="5053724573690775822">Créer un espace professionnel Chromium ?</translation>
 <translation id="5224391634244552924">Aucun mot de passe enregistré. Chromium ne peut vérifier vos mots de passe que si vous les enregistrez.</translation>
 <translation id="5277894862589591112">Pour appliquer vos modifications, relancez Chromium</translation>
 <translation id="5358375970380395591">Vous vous connectez avec un compte géré et donnez le contrôle de votre profil Chromium à son administrateur. Vos données Chromium, telles que les applications, les favoris, l'historique, les mots de passe et les autres paramètres, vont être définitivement associées à <ph name="USER_NAME" />. Vous pouvez supprimer ces données via le tableau de bord des comptes Google, mais vous ne pouvez pas les associer à un autre compte. <ph name="LEARN_MORE" /></translation>
@@ -115,6 +117,7 @@
 <translation id="5416696090975899932">Impossible d'afficher l'aperçu avant impression dans Chromium, car la visionneuse de PDF intégrée est absente.</translation>
 <translation id="5427571867875391349">Définir Chromium comme navigateur par défaut</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Bêta</translation>
+<translation id="544968170749360982">Vous vous êtes connecté avec un nouveau compte dans l'espace d'un autre utilisateur (<ph name="EXISTING_USER" />). Souhaitez-vous créer un espace Chromium pour <ph name="NEW_USER" /> afin de séparer vos données ?</translation>
 <translation id="5479196819031988440">Chromium OS ne peut pas ouvrir cette page</translation>
 <translation id="5480860683791598150">Chromium a besoin d'accéder à votre position pour la partager avec ce site</translation>
 <translation id="549669000822060376">Veuillez patienter pendant que Chromium installe les dernières mises à jour du système.</translation>
@@ -137,6 +140,7 @@
 <translation id="608189560609172163">Impossible de synchroniser vos données dans Chromium, car une erreur s'est produite lors de la connexion.</translation>
 <translation id="6096348254544841612">Personnalisez et contrôlez Chromium. Une mise à jour est disponible.</translation>
 <translation id="6120345080069858279">Chromium va enregistrer ce mot de passe dans votre compte Google. Vous n'avez pas besoin de le retenir.</translation>
+<translation id="6128834065531097268">Vous vous êtes connecté avec un compte professionnel dans l'espace d'un autre utilisateur (<ph name="EXISTING_USER" />). Souhaitez-vous créer un espace Chromium pour <ph name="WORK_DOMAIN" /> afin de séparer vos données ?</translation>
 <translation id="6129621093834146363">Chromium a bloqué <ph name="FILE_NAME" />, car ce fichier est dangereux.</translation>
 <translation id="6134968993075716475">La navigation sécurisée étant désactivée, Chromium vous recommande de l'activer.</translation>
 <translation id="6212496753309875659">Cet ordinateur dispose déjà d'une version plus récente de Chromium. Si le logiciel ne fonctionne pas, veuillez le désinstaller, puis réessayer.</translation>
@@ -197,6 +201,7 @@
 <translation id="7549178288319965365">À propos de Chromium OS</translation>
 <translation id="7561906087460245826">Effacer également les données issues de Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Si un paramètre ne s'affiche pas sur cette page, accédez aux <ph name="LINK_BEGIN" />paramètres Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Vous vous êtes connecté avec un compte professionnel. Souhaitez-vous créer un espace Chromium pour <ph name="NEW_USER" /> afin de séparer vos données à caractère personnel ?</translation>
 <translation id="761356813943268536">Votre webcam et votre micro sont en cours d'utilisation dans Chromium.</translation>
 <translation id="7617377681829253106">Chromium s'est amélioré</translation>
 <translation id="7628001322379820951">Chromium a détecté un logiciel malveillant sur votre ordinateur</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 30aca30..fb2bfa0 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">વૈકલ્પિક: Googleને નિદાન અને વપરાશ ડેટા ઑટોમૅટિક રીતે મોકલીને Chromium OSની સુવિધાઓ અને કાર્યપ્રદર્શનને સુધારવામાં સહાય કરો.</translation>
 <translation id="2347108572062610441">જ્યારે તમે Chromium શરૂ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે આ એક્સટેન્શને બદલ્યું છે.</translation>
 <translation id="2396765026452590966">જ્યારે તમે Chromium શરૂ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે <ph name="EXTENSION_NAME" /> એક્સટેન્શને બદલ્યું છે.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> માટે નવી Chromium સ્પેસ બનાવીએ?</translation>
 <translation id="2483889755041906834">Chromium માં</translation>
 <translation id="2485422356828889247">અનઇન્સ્ટૉલ કરો</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ને ચાલુ કરવા માટે Chromium ફરી શરૂ કરો</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium પૃષ્ઠભૂમિ મોડમાં છે.</translation>
 <translation id="4987820182225656817">અતિથિઓ કંઈપણ પાછળ છોડ્યાં વિના Chromium નો ઉપયોગ કરી શકે છે.</translation>
 <translation id="4994636714258228724">સ્વયંને Chromium માં ઉમેરો</translation>
+<translation id="5053724573690775822">નવી Chromium ઑફિસ સ્પેસ બનાવીએ?</translation>
 <translation id="5224391634244552924">કોઈ સાચવેલા પાસવર્ડ નથી. જ્યારે તમે તમારા પાસવર્ડ સાચવો ત્યારે Chromium તેને ચેક કરી શકે છે.</translation>
 <translation id="5277894862589591112">તમારા ફેરફારો લાગુ કરવા માટે, Chromiumને ફરી લૉન્ચ કરો</translation>
 <translation id="5358375970380395591">તમે મેનેજ કરેલા એકાઉન્ટ સાથે સાઇન ઇન કરી રહ્યાં છો અને તમારી Chromium પ્રોફાઇલ પર એનું એડમિન નિયંત્રણ આપી રહ્યાં છો. તમારો Chromium ડેટા, જેમ કે ઍપ, બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને બીજા સેટિંગ, કાયમ માટે <ph name="USER_NAME" /> થી બંધાયેલ રહેશે. તમે Google એકાઉન્ટ ડૅશબોર્ડથી આ ડેટાને કાઢી શકશો, પરંતુ તમે આ ડેટાને બીજા એકાઉન્ટ સાથે સાંકળી શકશો નહિ. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">જ્યારે બિલ્ટ-ઇન PDF વ્યૂઅર ઉપલબ્ધ ન હોય, ત્યારે Chromium પ્રિન્ટ પ્રીવ્યૂ બતાવી શકાતું નથી.</translation>
 <translation id="5427571867875391349">Chromium ને તમારા ડિફોલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium બીટા</translation>
+<translation id="544968170749360982">તમે <ph name="EXISTING_USER" />ની સ્પેસમાં નવા એકાઉન્ટ વડે સાઇન ઇન કર્યું છે. તમારો ડેટા અલગ રાખવા માટે, શું તમે <ph name="NEW_USER" /> માટે નવી Chromium સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="5479196819031988440">Chromium OS, આ પેજને ખોલી શકતું નથી.</translation>
 <translation id="5480860683791598150">Chromiumને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે</translation>
 <translation id="549669000822060376">કૃપા કરીને Chromium, નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">સાઇન ઇનમાં ભૂલ આવવાને કારણે Chromium તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation>
 <translation id="6096348254544841612">Chromiumને કસ્ટમાઇઝ અને નિયંત્રિત કરો. અપડેટ ઉપલબ્ધ છે.</translation>
 <translation id="6120345080069858279">Chromium આ પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવશે. તમારે તેને યાદ રાખવો જરૂરી નથી.</translation>
+<translation id="6128834065531097268">તમે <ph name="EXISTING_USER" />ની સ્પેસમાં ઑફિસના એકાઉન્ટ વડે સાઇન ઇન કર્યું છે. તમારો ડેટા અલગ રાખવા માટે, શું તમે <ph name="WORK_DOMAIN" /> માટે નવી Chromium સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> જોખમી છે, તેથી Chromium એ તેને અવરોધિત કરેલ છે.</translation>
 <translation id="6134968993075716475">Safe Browsingની સુવિધા બંધ છે. Chromium તેને ચાલુ રાખવાનો સુઝાવ આપે છે.</translation>
 <translation id="6212496753309875659">આ કમ્પ્યુટર પર પહેલાંથી જ Chromiumનું સૌથી તાજેતરનું વર્ઝન છે. જો સૉફ્ટવેર કાર્ય કરી રહ્યું નથી, તો કૃપા કરીને Chromiumને અનઇન્સ્ટૉલ કરો અને ફરીથી પ્રયાસ કરો.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromiumમાંથી પણ ડેટા કાઢી નાખો (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">જો આ પેજ પર સેટિંગ બતાવેલું ન હોય, તો તમારા <ph name="LINK_BEGIN" />
       Chromium OS સેટિંગ<ph name="LINK_END" />માં જુઓ</translation>
+<translation id="7607142834923530546">તમે ઑફિસના એકાઉન્ટ વડે લૉગ ઇન કર્યું છે. તમારો વ્યક્તિગત ડેટા અલગ રાખવા માટે, શું તમે <ph name="NEW_USER" /> માટે નવી Chromium સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="761356813943268536">Chromium તમારા કેમેરા અને માઇક્રોફોનનો ઉપયોગ કરી રહ્યું છે.</translation>
 <translation id="7617377681829253106">Chromium હવે પહેલાંથી બહેતર બન્યું છે</translation>
 <translation id="7628001322379820951">Chromiumને તમારા કમ્પ્યુટરમાં હાનિકારક સૉફ્ટવેર મળી આવ્યું છે</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index c4871c2..32f1271d 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">आप चाहें, तो: क्रोमियम ओएस को यह अनुमति दे सकते हैं कि वह गड़बड़ी की जानकारी और इस्तेमाल से जुड़ा डेटा Google को अपने-आप भेज सके. ऐसा करके आप क्रोमियम ओएस की सुविधाओं और परफ़ॉर्मेंस को बेहतर बनाने में मदद कर सकते हैं.</translation>
 <translation id="2347108572062610441">इस एक्सटेंशन ने यह बदल दिया है कि जब आप क्रोमियम प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
 <translation id="2396765026452590966">एक्सटेंशन "<ph name="EXTENSION_NAME" />" ने यह बदल दिया है कि जब आप क्रोमियम प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
+<translation id="2442081746662839303">क्या आप <ph name="NEW_USER" /> के लिए नया क्रोमियम स्पेस बनाना चाहते हैं?</translation>
 <translation id="2483889755041906834">क्रोमियम में</translation>
 <translation id="2485422356828889247">विस्थापित करें</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> चालू करने के लिए क्रोमियम को रीस्टार्ट करें</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">क्रोमियम पृष्ठभूमि मोड में है.</translation>
 <translation id="4987820182225656817">अतिथि कुछ भी छोड़े बिना क्रोमियम का उपयोग कर सकते हैं.</translation>
 <translation id="4994636714258228724">स्वयं को क्रोमियम में जोड़ें</translation>
+<translation id="5053724573690775822">क्या आप क्रोमियम पर काम से जुड़ा नया स्पेस बनाना चाहते हैं?</translation>
 <translation id="5224391634244552924">कोई भी पासवर्ड सेव नहीं किया गया है. आप जब अपने पासवर्ड सेव करते हैं, तो क्रोमियम उनकी जांच कर सकता है.</translation>
 <translation id="5277894862589591112">अपने बदलाव लागू करने के लिए, क्रोमियम को फिर से लॉन्च करें</translation>
 <translation id="5358375970380395591">आप प्रबंधित खाते से साइन इन कर रहे हैं और उसके एडमिन को अपनी क्रोमियम प्रोफ़ाइल पर नियंत्रण दे रहे हैं. आपका क्रोमियम डेटा, जैसे आपके ऐप्लिकेशन, बुकमार्क, इतिहास, पासवर्ड, और दूसरे सेटिंग स्थायी रूप से <ph name="USER_NAME" /> से जुड़ जाएंगे. आप Google खाता डैशबोर्ड के ज़रिए इस डेटा को मिटा सकेंगे, लेकिन आप किसी अन्य खाते से इस डेटा को जोड़ नहीं सकेंगे. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">अगर क्रोमियम के साथ आने वाला पीडीएफ़ व्यूअर मौजूद न हो, तो क्रोमियम प्रिंट की झलक नहीं दिखा पाएगा.</translation>
 <translation id="5427571867875391349">क्रोमियम को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करें</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - क्रोमियम बीटा</translation>
+<translation id="544968170749360982">आपने <ph name="EXISTING_USER" /> के स्पेस में नए खाते से साइन इन किया था. क्या आप अपने डेटा को अलग रखने के लिए, <ph name="NEW_USER" /> के लिए नया क्रोमियम स्पेस बनाना चाहते हैं?</translation>
 <translation id="5479196819031988440">क्रोमियम OS यह पेज नहीं खोल सकता.</translation>
 <translation id="5480860683791598150">इस साइट से आपकी जगह की जानकारी शेयर करने के लिए क्रोमियम को आपकी जगह की जानकारी का एक्सेस चाहिए</translation>
 <translation id="549669000822060376">कृपया क्रोमियम द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">प्रवेश करने में किसी गड़बड़ी के कारण क्रोमियम आपका डेटा समन्‍वयित नहीं कर सका.</translation>
 <translation id="6096348254544841612">क्रोमियम को पसंद के मुताबिक बनाएं और नियंत्रित करें. अपडेट उपलब्ध है.</translation>
 <translation id="6120345080069858279">क्रोमियम इस पासवर्ड को आपके Google खाते में सेव कर लेगा. आपको इसे याद रखने की ज़रूरत नहीं है.</translation>
+<translation id="6128834065531097268">आपने <ph name="EXISTING_USER" /> के स्पेस में, काम से जुड़े खाते से साइन इन किया था. क्या आप अपने डेटा को अलग रखने के लिए, <ph name="WORK_DOMAIN" /> के लिए नया क्रोमियम स्पेस बनाना चाहते हैं?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> खतरनाक है, इसलिए क्रोमियम ने उसे अवरोधित कर दिया है.</translation>
 <translation id="6134968993075716475">सुरक्षित ब्राउज़िंग की सुविधा बंद है. 'क्रोमियम' इसे चालू करने का सुझाव देता है.</translation>
 <translation id="6212496753309875659">इस कंप्‍यूटर में पहले से क्रोमियम का ज़्यादा नया वर्शन है. अगर सॉफ़्टवेयर काम नहीं कर रहा है, तो कृपया क्रोमियम अनइंस्‍टॉल करें और फिर से प्रयास करें.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">साथ ही, क्रोमियम (<ph name="URL" />) का डेटा साफ़ करें</translation>
 <translation id="7585853947355360626">अगर इस पेज पर सेटिंग नहीं दिखती है, तो अपनी <ph name="LINK_BEGIN" />
      क्रोमियम OS सेटिंग<ph name="LINK_END" /> देखें</translation>
+<translation id="7607142834923530546">आपने काम से जुड़े खाते से साइन इन किया है. क्या आप अपने निजी डेटा को अलग रखने के लिए, <ph name="NEW_USER" /> के लिए नया क्रोमियम स्पेस बनाना चाहते हैं?</translation>
 <translation id="761356813943268536">Chromium आपके कैमरे और माइक्रोफ़ोन का उपयोग कर रहा है.</translation>
 <translation id="7617377681829253106">क्रोमियम पहले से बेहतर हो गया है</translation>
 <translation id="7628001322379820951">क्रोमियम को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला सॉफ़्टवेयर मिला है</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index d82da9e..b3e08f0 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Nem kötelező: segítse a Chromium OS funkcióinak és teljesítményének javítását azzal, hogy automatikusan elküldi a diagnosztikai és használati adatokat a Google-nak.</translation>
 <translation id="2347108572062610441">Ez a bővítmény módosította, hogy melyik oldal jelenjen meg a Chromium indításakor.</translation>
 <translation id="2396765026452590966">A(z) <ph name="EXTENSION_NAME" /> bővítmény módosította, hogy melyik oldal jelenjen meg a Chromium indításakor.</translation>
+<translation id="2442081746662839303">Létrehoz új Chromium Space-profilt <ph name="NEW_USER" /> számára?</translation>
 <translation id="2483889755041906834">A Chromiumban</translation>
 <translation id="2485422356828889247">Eltávolítás</translation>
 <translation id="2527042973354814951">A Chromium újraindítása a(z) <ph name="PLUGIN_NAME" /> engedélyezéséhez</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">A Chromium háttérmódban van.</translation>
 <translation id="4987820182225656817">A vendégek úgy használhatják a Chromiumot, hogy nem hagynak hátra semmit.</translation>
 <translation id="4994636714258228724">Adja hozzá magát a Chromiumban</translation>
+<translation id="5053724573690775822">Új munkahelyi Chromium Space-profilt szeretne létrehozni?</translation>
 <translation id="5224391634244552924">Nincsenek mentett jelszavak. A Chromium képes a jelszavak ellenőrzésére, ha Ön elmenti őket.</translation>
 <translation id="5277894862589591112">A módosítások alkalmazásához indítsa újra a Chromiumot</translation>
 <translation id="5358375970380395591">Kezelt fiókkal jelentkezik be, és annak adminisztrátora számára hozzáférést biztosít Chromium-profiljához. Chromium-adatait – például alkalmazásait, könyvjelzőit, előzményeit, jelszavait és más beállításait – a rendszer véglegesen társítja a(z) <ph name="USER_NAME" /> fiókhoz. Ezen adatokat a Google-fiók Irányítópultján törölheti, de más fiókhoz nem társíthatja őket. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">A Chromium nem tudja megjeleníteni a nyomtatási előnézetet, ha nincs beépített PDF-megjelenítő.</translation>
 <translation id="5427571867875391349">A Chromium beállítása alapértelmezett böngészőként</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Béta</translation>
+<translation id="544968170749360982">Új fiókkal jelentkezett be <ph name="EXISTING_USER" /> Space-profiljába. Szeretne új Chromium Space-profilt létrehozni <ph name="NEW_USER" /> felhasználóhoz, hogy adatait elkülönítve tárolhassa?</translation>
 <translation id="5479196819031988440">A Chromium OS nem tudja megnyitni ezt az oldalt.</translation>
 <translation id="5480860683791598150">A Chromiumnak a helyadatokhoz való hozzáférésre van szüksége ahhoz, hogy megoszthassa az Ön tartózkodási helyét a webhellyel</translation>
 <translation id="549669000822060376">Kérjük, várjon, amíg a Chromium telepíti a legutóbbi rendszerfrissítéseket.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">A Chromium egy bejelentkezési hiba miatt nem tudta szinkronizálni az adatokat.</translation>
 <translation id="6096348254544841612">A Chromium személyre szabása és vezérlése. Van rendelkezésre álló frissítés.</translation>
 <translation id="6120345080069858279">A Chromium ezt a jelszót Google-fiókjába menti. Nem kell megjegyeznie.</translation>
+<translation id="6128834065531097268">Ön munkahelyi fiókkal jelentkezett be <ph name="EXISTING_USER" /> Space-profiljába. Szeretne új Chromium Space-profilt létrehozni a(z) <ph name="WORK_DOMAIN" /> domainhez, hogy adatait elkülönítve tárolhassa?</translation>
 <translation id="6129621093834146363">A(z) <ph name="FILE_NAME" /> veszélyes, ezért a Chromium letiltotta.</translation>
 <translation id="6134968993075716475">A Biztonságos Böngészés ki van kapcsolva. A Chromium a szolgáltatás bekapcsolását javasolja.</translation>
 <translation id="6212496753309875659">A számítógépen már megtalálható a Chromium újabb verziója. Ha a szoftver nem működik, kérjük, távolítsa el a Chromiumot, majd próbálkozzon újra.</translation>
@@ -194,6 +198,7 @@
 <translation id="7549178288319965365">A Chromium OS névjegye</translation>
 <translation id="7561906087460245826">Az adatokat is törölje a Chromiumból (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Ha valamelyik beállítás nem látható ezen az oldalon, keresse a <ph name="LINK_BEGIN" />Chromium OS beállításai<ph name="LINK_END" /> között</translation>
+<translation id="7607142834923530546">Ön munkahelyi fiókkal jelentkezett be. Szeretne új Chromium Space-profilt létrehozni <ph name="NEW_USER" /> felhasználóhoz, hogy személyes adatait elkülönítve tárolhassa?</translation>
 <translation id="761356813943268536">A Chromium használja a kamerát és a mikrofont.</translation>
 <translation id="7617377681829253106">A Chromium még jobb lett</translation>
 <translation id="7628001322379820951">A Chromium kártékony szoftvert talált az Ön számítógépén</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index d57ebdd..412fecf 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Opsional: Bantu sempurnakan fitur dan performa Chromium OS dengan mengirimkan data diagnostik dan penggunaan secara otomatis ke Google.</translation>
 <translation id="2347108572062610441">Ekstensi ini telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chromium.</translation>
 <translation id="2396765026452590966">Ekstensi "<ph name="EXTENSION_NAME" />" telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chromium.</translation>
+<translation id="2442081746662839303">Buat space Chromium baru untuk <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">Di Chromium</translation>
 <translation id="2485422356828889247">Uninstal</translation>
 <translation id="2527042973354814951">Muat ulang Chromium untuk mengaktifkan <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium berjalan di mode latar belakang.</translation>
 <translation id="4987820182225656817">Tamu dapat menggunakan Chromium tanpa meninggalkan apa pun.</translation>
 <translation id="4994636714258228724">Tambahkan diri Anda ke Chromium</translation>
+<translation id="5053724573690775822">Buat space Chromium Work baru?</translation>
 <translation id="5224391634244552924">Tidak ada sandi yang tersimpan. Chromium dapat memeriksa sandi Anda jika Anda menyimpannya.</translation>
 <translation id="5277894862589591112">Untuk menerapkan perubahan Anda, luncurkan ulang Chromium</translation>
 <translation id="5358375970380395591">Anda masuk dengan akun terkelola dan memberikan administratornya kontrol atas profil Chromium Anda. Data Chromium Anda, seperti aplikasi, bookmark, histori, sandi, dan setelan lain selamanya akan dikaitkan ke <ph name="USER_NAME" />. Anda dapat menghapus data ini melalui Dasbor Akun Google, namun Anda tidak akan dapat mengaitkan data ini dengan akun yang lain. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium tidak dapat menampilkan pratinjau cetak jika penampil PDF bawaan tidak ada.</translation>
 <translation id="5427571867875391349">Setel Chromium sebagai browser default</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">Anda login dengan akun baru di space <ph name="EXISTING_USER" />. Ingin membuat space Chromium baru untuk <ph name="NEW_USER" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="5479196819031988440">Chromium OS tidak dapat membuka halaman ini.</translation>
 <translation id="5480860683791598150">Chromium memerlukan akses ke lokasi Anda untuk berbagi lokasi dengan situs ini</translation>
 <translation id="549669000822060376">Harap tunggu selagi Chromium memasang pembaruan sistem terkini.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium tidak dapat menyinkronkan data Anda karena kesalahan saat masuk.</translation>
 <translation id="6096348254544841612">Sesuaikan dan kontrol Chromium. Update tersedia.</translation>
 <translation id="6120345080069858279">Chromium akan menyimpan sandi ini di Akun Google. Anda tidak perlu mengingatnya.</translation>
+<translation id="6128834065531097268">Anda login dengan Akun kerja di space <ph name="EXISTING_USER" />. Ingin membuat space Chromium baru untuk <ph name="WORK_DOMAIN" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> berbahaya, sehingga Chromium memblokirnya.</translation>
 <translation id="6134968993075716475">Safe Browsing nonaktif. Chromium merekomendasikan untuk mengaktifkannya.</translation>
 <translation id="6212496753309875659">Komputer ini sudah memiliki versi Chromium yang lebih baru. Jika software tidak bekerja, harap coba uninstal Chromium, lalu cobalah kembali.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Hapus juga data dari Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Jika setelan tidak muncul di halaman ini, buka <ph name="LINK_BEGIN" />
       setelan Chromium OS<ph name="LINK_END" /> Anda</translation>
+<translation id="7607142834923530546">Anda login dengan akun kerja. Ingin membuat space Chromium baru untuk <ph name="NEW_USER" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="761356813943268536">Chromium menggunakan kamera dan mikrofon Anda.</translation>
 <translation id="7617377681829253106">Chromium menjadi lebih baik</translation>
 <translation id="7628001322379820951">Chromium menemukan software berbahaya di komputer Anda</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index a9c0d6b..eb493040 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">არასავალდებულო: Chromium OS-ის ფუნქციებისა და წარმადობის გაუმჯობესების ხელშეწყობა დიაგნოსტიკური და გამოყენების მონაცემების Google-ისთვის ავტომატურად გაგზავნის მეშვეობით.</translation>
 <translation id="2347108572062610441">ამ გაფართოებამ თქვენ მიერ Chromium-ის გაშვებისას ნაჩვენები გვერდი შეცვალა.</translation>
 <translation id="2396765026452590966">გაფართოებამ „<ph name="EXTENSION_NAME" />“ თქვენ მიერ Chromium-ის გაშვებისას ნაჩვენები გვერდი შეცვალა.</translation>
+<translation id="2442081746662839303">შეიქმნას ახალი სივრცე Chromium-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="2483889755041906834">Chromium-ში</translation>
 <translation id="2485422356828889247">დეინსტალაცია</translation>
 <translation id="2527042973354814951">გადატვირთეთ Chromium, რათა ჩართოთ <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium ფონურ რეჟიმშია.</translation>
 <translation id="4987820182225656817">სტუმრებს შეუძლიათ Chromium-ის გამოყენება და მისი ყველა ფუნქციით სარგებლობა.</translation>
 <translation id="4994636714258228724">საკუთარი თავის დამატება Chromium-ში</translation>
+<translation id="5053724573690775822">შეიქმნას ახალი სამუშაო სივრცე Chromium-ში?</translation>
 <translation id="5224391634244552924">შენახული პაროლები არ არის. პაროლების შემოწმებას Chromium შეძლებს მათი შენახვის შემდეგ.</translation>
 <translation id="5277894862589591112">ცვლილებების მისასადაგებლად ხელახლა გაუშვით Chromium</translation>
 <translation id="5358375970380395591">მართული ანგარიშით შედიხართ სისტემაში და ადმინისტრატორს თქვენს Chromium-ის პროფილზე კონტროლს აძლევთ. თქვენი Chromium ის მონაცემები როგორიცაა თქვენი აპლიკაციები, სანიშნები, ისტორიები, პაროლები, და სხვა პარამეტრები მუდმივად მიბმული გახდება <ph name="USER_NAME" />-თან. ამ მონაცემების წაშლას Google ანგარიშის საინფორმაციო დაფის გზით შეძლებთ, მაგრამ შეუძლებელი იქნება ამ მონაცემების სხვა ანგარიშთან გაერთიანება. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium წინასწარ ვერ გიჩვენებთ ამოსაბეჭდ ვერსიას, ვინაიდან მას აკლია ჩაშენებული PDF მნახველი.</translation>
 <translation id="5427571867875391349">დააყენეთ Chromium ნაგულისხმევ ბრაუზერად</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> — Chromium Beta</translation>
+<translation id="544968170749360982">თქვენ ახალი ანგარიშით შეხვედით <ph name="EXISTING_USER" />-ის სივრცეში. გსურთ, მონაცემების განსაცალკევებლად, შექმნათ ახალი სივრცე Chromium-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="5479196819031988440">Chromium OS ვერ ხსნის ამ გვერდს.</translation>
 <translation id="5480860683791598150">Chromium საჭიროებს თქვენს მდებარეობაზე წვდომის ნებართვას ამ საიტისთვის გასაზიარებლად</translation>
 <translation id="549669000822060376">დაელოდეთ, სანამ Chromium დააინსტალირებს სისტემის უახლეს განახლებებს.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">შესვლასთან დაკავშირებული არსებული შეცდომის გამო, Chromium მა ვერ შეძლო თქვენი მონაცებების სინქრონიზაცია.</translation>
 <translation id="6096348254544841612">მოირგეთ და გააკონტროლეთ Chromium. ხელმისაწვდომია განახლება.</translation>
 <translation id="6120345080069858279">Chromium შეინახავს ამ პაროლს თქვენს Google ანგარიშში. მისი დამახსოვრება აუცილებელი არ არის.</translation>
+<translation id="6128834065531097268">თქვენ სამსახურის ანგარიშით შეხვედით <ph name="EXISTING_USER" />-ის სივრცეში. გსურთ, მონაცემების განსაცალკევებლად, შექმნათ ახალი სივრცე Chromium-ში <ph name="WORK_DOMAIN" />-ისთვის?</translation>
 <translation id="6129621093834146363">Chromium-მა დაბლოკა <ph name="FILE_NAME" />, რადგან ის სახიფათოა.</translation>
 <translation id="6134968993075716475">Safe Browsing გამორთულია. Chromium გირჩევთ მის ჩართვას.</translation>
 <translation id="6212496753309875659">ამ კომპიუტერს უკვე აქვს Chromium.-ის უფრო ახალი ვერსია. იმ შემთხვევაში, თუ პროგრამა არ მუშაობს, გთხოვთ, განახორციელეთ Chromium-ის დეინსტალაცია და სცადეთ ისევ.</translation>
@@ -198,6 +202,7 @@
 <translation id="7549178288319965365">Chromium-ის OS-ის შესახებ</translation>
 <translation id="7561906087460245826">მონაცემების Chromium-იდანაც გასუფთავება (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">თუ პარამეტრი ამ გვერდზე არ გამოჩნდება, ცადეთ მისი პოვნა <ph name="LINK_BEGIN" />Chromium OS-ის პარამეტრებში<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">თქვენ შეხვედით სამსახურის ანგარიშით. გსურთ, პერსონალური მონაცემების განსაცალკევებლად, შექმნათ ახალი  სივრცე Chromium-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="761356813943268536">Chromium იყენებს თქვენს კამერას და მიკროფონს.</translation>
 <translation id="7617377681829253106">Chromium გაუმჯობესდა</translation>
 <translation id="7628001322379820951">Chromium-მა თქვენს კომპიუტერზე აღმოაჩინა საზიანო პროგრამული უზრუნველყოფა.</translation>
diff --git a/chrome/app/resources/chromium_strings_kk.xtb b/chrome/app/resources/chromium_strings_kk.xtb
index d2deaf7..7ab1b6f 100644
--- a/chrome/app/resources/chromium_strings_kk.xtb
+++ b/chrome/app/resources/chromium_strings_kk.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Қосымша: диагностика және пайдаланылуы туралы деректі Google-ға автоматты түрде жіберу арқылы Chromium операциялық жүйесінің функцияларын және жұмыс өнімділігін жақсартуға көмектесу.</translation>
 <translation id="2347108572062610441">Бұл кеңейтім Chromium браузерін іске қосқан кезде көрсетілетін бетті өзгертті.</translation>
 <translation id="2396765026452590966">«<ph name="EXTENSION_NAME" />» кеңейтімі Chromium браузерін іске қосқан кезде көрсетілетін бетті өзгертті.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> үшін жаңа Chromium жұмыс орны жасалсын ба?</translation>
 <translation id="2483889755041906834">Chromium аясында</translation>
 <translation id="2485422356828889247">Жою</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> плагинін қосу үшін Chromium браузерін қайта іске қосу</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium фондық режимде.</translation>
 <translation id="4987820182225656817">Қонақтар Chromium қолданбасын ешқандай дерек қалдырмай пайдалана алады.</translation>
 <translation id="4994636714258228724">Chromium жүйесіне өзіңізді қосу</translation>
+<translation id="5053724573690775822">Жаңа Chromium жұмыс орны жасалсын ба?</translation>
 <translation id="5224391634244552924">Ешқандай құпия сөз сақталмаған. Құпия сөздер сақталған кезде, Chromium оларды тексере алады.</translation>
 <translation id="5277894862589591112">Өзгерістер енуі үшін, Chromium браузерін қайта қосыңыз</translation>
 <translation id="5358375970380395591">Бақыланатын есептік жазба арқылы кірдіңіз және оның әкімшілік бөлігін Chromium профилі арқылы басқару мүмкіндігін бердіңіз. Қолданбалар, бетбелгілер, журнал, құпия сөздер сияқты Chromium деректеріңіз және басқа параметрлер біржола <ph name="USER_NAME" /> пайдаланушысына байланыстырылады. Бұл деректерді Google есептік жазба бақылау тақтасы арқылы жоя аласыз, бірақ бұл деректерді басқа есептік жазбамен байланыстыра алмайсыз. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Ендірілген PDF көру құралы жоқ болса, Chromium басып шығарылатын беттерді алдын ала көрсете алмайды.</translation>
 <translation id="5427571867875391349">Әдепкі браузер ретінде Chromium қолданбасын орнату</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium бета нұсқасы</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> жұмыс орнына жаңа есептік жазбаңызбен кірдіңіз. Деректеріңіз бөлек сақталуы үшін, <ph name="NEW_USER" /> деген пайдаланушыға жаңа Chromium жұмыс орнын жасағыңыз келе ме?</translation>
 <translation id="5479196819031988440">Chromium ОЖ бұл бетті аша алмайды.</translation>
 <translation id="5480860683791598150">Бұл сайтқа көрсету үшін Chromium браузері орналасқан жеріңізді білуі керек</translation>
 <translation id="549669000822060376">Chromium ең соңғы жүйе жаңартуларын орнатуда, күте тұрыңыз.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Кіру кезіндегі қате себебінен Chromium деректеріңізді синхрондай алмайды.</translation>
 <translation id="6096348254544841612">Chromium браузерін реттеңіз және басқарыңыз. Жаңартылған нұсқа қолжетімді.</translation>
 <translation id="6120345080069858279">Chromium бұл құпия сөзді Google есептік жазбаңызда сақтайды. Оны есте сақтаудың қажеті жоқ.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> жұмыс орнына жұмыс есептік жазбаңызбен кірдіңіз. Деректеріңіз бөлек сақталуы үшін, <ph name="WORK_DOMAIN" /> доменіне жаңа Chromium жұмыс орнын жасағыңыз келе ме?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> қауіпті болғандықтан, Chromium оны бөгеді.</translation>
 <translation id="6134968993075716475">"Қауіпсіз шолу" функциясы өшірулі. Chromium браузері оны қосуды ұсынады.</translation>
 <translation id="6212496753309875659">Бұл компьютерде жаңа Chromium нұсқасы бұрыннан бар. Бағдарламалық жасақтама жұмыс істемесе, Chromium жойып, әрекетті қайталап көріңіз.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium браузеріндегі деректер де өшірілсін (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Егер параметр бұл бетте көрсетілмесе, <ph name="LINK_BEGIN" />
       Chromium операциялық жүйесінің параметрлері<ph name="LINK_END" /> бөлімінен қараңыз.</translation>
+<translation id="7607142834923530546">Жұмыс есептік жазбасымен кірдіңіз. Жеке деректеріңіз бөлек сақталуы үшін, <ph name="NEW_USER" /> үшін жаңа Chromium жұмыс орнын жасағыңыз келе ме?</translation>
 <translation id="761356813943268536">Chromium камераңыз бен микрофоныңызды пайдалануда.</translation>
 <translation id="7617377681829253106">Chromium жақсара түсті</translation>
 <translation id="7628001322379820951">Chromium компьютеріңізден зиянды бағдарламалық құрал тапты.</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index 06613af..04df9e9 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">មិនតម្រូវ៖ ជួយ​កែលម្អ​មុខងារ និង​ប្រតិបត្តិការ​របស់ Chromium OS ដោយបញ្ជូនទិន្នន័យប្រើប្រាស់ និងការវិភាគទៅ Google ដោយស្វ័យប្រវត្តិ។</translation>
 <translation id="2347108572062610441">កម្មវិធីបន្ថែមនេះបានប្តូរអ្វីដែលបានបង្ហាញនៅលើទំព័រនៅពេលអ្នកចាប់ផ្តើម Chromium។</translation>
 <translation id="2396765026452590966">កម្មវិធីបន្ថែម "<ph name="EXTENSION_NAME" />" បានប្តូរអ្វីដែលបានបង្ហាញនៅលើទំព័រនៅពេលអ្នកចាប់ផ្តើម Chromium។</translation>
+<translation id="2442081746662839303">បង្កើត​កន្លែង Chromium ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ឬ​?</translation>
 <translation id="2483889755041906834">នៅក្នុង Chromium</translation>
 <translation id="2485422356828889247">លុបការតំឡើង</translation>
 <translation id="2527042973354814951">ចាប់ផ្តើម Chromium ឡើងវិញដើម្បីបើក <ph name="PLUGIN_NAME" /></translation>
@@ -108,6 +109,7 @@
 <translation id="4943838377383847465">Chromium នៅក្នុងរបៀបផ្ទៃខាងក្រោយ។</translation>
 <translation id="4987820182225656817">ភ្ញៀវអាចប្រើ Chromium ដោយមិនមានបន្សល់ទុកអ្វីឡើយ។</translation>
 <translation id="4994636714258228724">បន្ថែមខ្លួនអ្នកទៅ Chromium</translation>
+<translation id="5053724573690775822">បង្កើត​កន្លែង​ការងារ Chromium ថ្មី​ឬ?</translation>
 <translation id="5224391634244552924">គ្មានពាក្យសម្ងាត់ដែលបានរក្សាទុកទេ។ Chromium អាចពិនិត្យ​ពាក្យសម្ងាត់​របស់អ្នក នៅពេលអ្នក​រក្សាទុកពាក្យសម្ងាត់​ទាំងនោះ។</translation>
 <translation id="5277894862589591112">ដើម្បី​អនុវត្ត​ការផ្លាស់ប្ដូររបស់អ្នក សូម​ចាប់ផ្ដើម​ Chromium ឡើងវិញ</translation>
 <translation id="5358375970380395591">អ្នកកំពុងចូលជាមួយគណនីដែលបានគ្រប់គ្រង ហើយផ្តល់ឲ្យអ្នកគ្រប់គ្រងនូវការគ្រប់គ្រងលើទម្រង់ Chromium របស់អ្នក។ ទិន្នន័យ Chromium របស់អ្នក ដូចជាកម្មវិធី គេហទំព័រ ប្រវត្តិ ពាក្យសម្ងាត់ និងការកំណត់ផ្សេងទៀតរបស់អ្នកនឹងភ្ជាប់ជាមួយ <ph name="USER_NAME" /> ជាអចិន្ត្រៃយ៍។ អ្នកនឹងអាចលុបទិន្នន័យនេះតាមរយៈ Google Accounts Dashboard ប៉ុន្តែអ្នកនឹងមិនអាចភ្ជាប់ទិន្នន័យនេះជាមួយគណនីដ៏ទៃទៀតឡើយ។ <ph name="LEARN_MORE" /></translation>
@@ -117,6 +119,7 @@
 <translation id="5416696090975899932">Chromium មិន​អាច​បង្ហាញ​ការ​មើលការបោះពុម្ព​សាកល្បង​បានទេ នៅពេល​គ្មានកម្មវិធីមើល​ PDF ដែលភ្ជាប់​មក​ជាមួយ។</translation>
 <translation id="5427571867875391349">កំណត់ Chromium ជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នក</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">អ្នក​បានចូល​ដោយប្រើ​គណនីថ្មី​នៅក្នុង​កន្លែង​របស់ <ph name="EXISTING_USER" />។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chromium ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="5479196819031988440">Chromium OS មិនអាចបើកទំព័រនេះបានទេ។</translation>
 <translation id="5480860683791598150">Chromium ត្រូវការ​សិទ្ធិចូលប្រើ​ទីតាំង​របស់អ្នក ដើម្បីចែករំលែក​ទីតាំង​របស់អ្នក​ជាមួយ​ទំព័រនេះ</translation>
 <translation id="549669000822060376">សូមរង់ចាំ ខណៈពេលដែល Chromium តំឡើងការធ្វើបច្ចុប្បន្នភាពប្រព័ន្ធចុងក្រោយបំផុត។</translation>
@@ -139,6 +142,7 @@
 <translation id="608189560609172163">Chromium មិនអាចធ្វើសមកម្មទិន្នន័យរបស់អ្នកទេដោយសារកំហុសឆ្គងការចូល។</translation>
 <translation id="6096348254544841612">គ្រប់គ្រង និង​ប្ដូរ Chromium តាម​បំណង។ មាន​កំណែថ្មី​ហើយ។</translation>
 <translation id="6120345080069858279">Chromium នឹង​រក្សាទុក​ពាក្យ​សម្ងាត់នេះ​នៅក្នុង​គណនី Google របស់អ្នក ដូច្នេះអ្នកនឹង​មិនចាំបាច់​ចងចាំ​វាទេ។</translation>
+<translation id="6128834065531097268">អ្នក​បានចូល​ដោយប្រើ​គណនីការងារ​នៅក្នុង​កន្លែង​របស់ <ph name="EXISTING_USER" />។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chromium ថ្មី​សម្រាប់ <ph name="WORK_DOMAIN" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> មានគ្រោះថ្នាក់ ដូច្នេះ Chromium បានរារាំងវា។</translation>
 <translation id="6134968993075716475">បានបិទមុខងាររុករក​ដោយសុវត្ថិភាព​។ Chromium ណែនាំឱ្យ​បើក​មុខងារនេះ។</translation>
 <translation id="6212496753309875659">កុំព្យូទ័រនេះមានកំណែ Chromium ថ្មីជាងនេះរួចហើយ។ ប្រសិនបើកម្មវិធីនេះមិនដំណើរការ សូមលុបការតំឡើង Chromium ហើយព្យាយាមម្តងទៀត។</translation>
@@ -200,6 +204,7 @@
 <translation id="7561906087460245826">សម្អាតទិន្នន័យពី Chromium (<ph name="URL" />) ផងដែរ</translation>
 <translation id="7585853947355360626">ប្រសិនបើ​ការកំណត់​មិនបង្ហាញនៅលើទំព័រនេះទេ សូមមើលនៅក្នុងការកំណត់កម្មវិធីរុករកតាមអ៊ីនធឺណិត <ph name="LINK_BEGIN" />
       Chromium OS របស់អ្នក<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">អ្នក​បានចូល​ដោយប្រើ​គណនី​ការងារ​។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chromium ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​ផ្ទាល់ខ្លួន​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="761356813943268536">Chromium កំពុងប្រើកាមេរ៉ា និងម៉ៃក្រូហ្វូនរបស់អ្នក។</translation>
 <translation id="7617377681829253106">Chromium កាន់តែប្រសើរឡើង</translation>
 <translation id="7628001322379820951">Chromium បានរកឃើញ​កម្មវិធីបង្កគ្រោះថ្នាក់​នៅលើ​កុំព្យូទ័ររបស់អ្នក</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 295c14e..2dfd4f5 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">ಐಚ್ಛಿಕ: ಡಯಗ್ನೊಸ್ಟಿಕ್ ಮತ್ತು ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ Chromium OS ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ.</translation>
 <translation id="2347108572062610441">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಯಾವ ಪುಟ ತೋರಿಸಬೇಕೆಂಬುದನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
 <translation id="2396765026452590966">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chromium ಸ್ಪೇಸ್ ರಚಿಸಬೇಕೇ?</translation>
 <translation id="2483889755041906834">Chromium ನಲ್ಲಿ</translation>
 <translation id="2485422356828889247">ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು Chromium ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
@@ -103,6 +104,7 @@
 <translation id="4943838377383847465">Chromium ಹಿನ್ನೆಲೆ ಮೋಡ್‌ನಲ್ಲಿದೆ.</translation>
 <translation id="4987820182225656817">ಅತಿಥಿಗಳು ಏನನ್ನೂ ಉಳಿಸದೆಯೇ Chromium ಬಳಸಬಹುದು.</translation>
 <translation id="4994636714258228724">ನೀವಾಗಿಯೇ Chromium ಗೆ ಸೇರಿಕೊಳ್ಳಿ</translation>
+<translation id="5053724573690775822">ಹೊಸ Chromium ವರ್ಕ್ ಸ್ಪೇಸ್ ರಚಿಸಬೇಕೇ?</translation>
 <translation id="5224391634244552924">ಯಾವುದೇ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿಲ್ಲ. ನೀವು ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿದಾಗ, Chromium ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
 <translation id="5277894862589591112">ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು, Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="5358375970380395591">ನೀವು ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುತ್ತಿರುವಿರಿ ಮತ್ತು ನಿಮ್ಮ Chromium ಪ್ರೊಫೈಲ್ ಮೂಲಕ ಅದರ ನಿರ್ವಾಹಕ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತಿರುವಿರಿ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಹಾಗೂ ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಂತಹ ನಿಮ್ಮ Chromium ಡೇಟಾವನ್ನು <ph name="USER_NAME" /> ಅವರಿಗೆ ಶಾಶ್ವತವಾಗಿ ಬಂಧಿಸಲಾಗುತ್ತದೆ. Google ಖಾತೆಗಳ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮೂಲಕ ಈ ಡೇಟಾವನ್ನು ಅಳಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯ, ಆದರೆ ಬೇರೊಂದು ಖಾತೆಯೊಂದಿಗೆ ಈ ಡೇಟಾವನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. <ph name="LEARN_MORE" /></translation>
@@ -112,6 +114,7 @@
 <translation id="5416696090975899932">ಅಂತರ್ನಿರ್ಮಿತ PDF ವೀಕ್ಷಕವು ಇಲ್ಲದಿದ್ದರೆ, ಮುದ್ರಣದ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ತೋರಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5427571867875391349">Chromium ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್‌ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ಬೀಟಾ</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> ಅವರ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ನೀವು ಹೊಸ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chromium ಸ್ಪೇಸ್ ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="5479196819031988440">Chromium OS ಗೆ ಈ ಪುಟ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5480860683791598150">ಈ ಸೈಟ್‌ ಜೊತೆಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chromium ಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="549669000822060376">ದಯವಿಟ್ಟು ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chromium ಸ್ಥಾಪಿಸುವಾಗ ಕಾಯಿರಿ.</translation>
@@ -134,6 +137,7 @@
 <translation id="608189560609172163">ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="6096348254544841612">Chromium ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ.</translation>
 <translation id="6120345080069858279">Chromium, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಉಳಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ನೆನಪಿಡುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.</translation>
+<translation id="6128834065531097268">ನೀವು <ph name="EXISTING_USER" /> ಅವರ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="WORK_DOMAIN" /> ಅವರಿಗಾಗಿ ಹೊಸ Chromium ಸ್ಪೇಸ್ ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಹಾಗಾಗಿ Chromium ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
 <translation id="6134968993075716475">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ಆಫ್ ಆಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="6212496753309875659">ಈ ಕಂಪ್ಯೂಟರ್ Chromium ನ ಇತ್ತೀಚಿನ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್‌ವೇರ್ ಕಾರ್ಯನಿರ್ವಹಿಸದಿದ್ದರೆ, ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -190,6 +194,7 @@
 <translation id="7549178288319965365">Chromium OS ಕುರಿತು</translation>
 <translation id="7561906087460245826">Chromium ನಿಂದಲೂ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">ಈ ಪುಟದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ ಒಂದು ಕಾಣಿಸದಿದ್ದರೆ, ನಿಮ್ಮ <ph name="LINK_BEGIN" />Chromium OS ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="LINK_END" /> ನೋಡಿರಿ</translation>
+<translation id="7607142834923530546">ನೀವು ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chromium ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="761356813943268536">Chromium ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೋಫೋನ್ ಬಳಸುತ್ತಿದೆ.</translation>
 <translation id="7617377681829253106">Chromium ಇದೀಗ ಉತ್ತಮಗೊಂಡಿದೆ</translation>
 <translation id="7628001322379820951">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿರುವ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು Chromium ಪತ್ತೆಹಚ್ಚಿದೆ</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 1468563..b61fb609d 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">선택사항: 진단 및 사용 데이터를 Google에 자동으로 전송하여 Chromium OS의 기능 및 성능 개선에 참여합니다.</translation>
 <translation id="2347108572062610441">Chromium을 시작하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="2396765026452590966">Chromium을 시작하면 표시되는 페이지가 '<ph name="EXTENSION_NAME" />' 확장 프로그램으로 인해 변경되었습니다.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" />님을 위해 Chromium 공간을 새로 만드시겠습니까?</translation>
 <translation id="2483889755041906834">Chromium에서</translation>
 <translation id="2485422356828889247">제거</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />을(를) 사용하려면 Chromium을 다시 시작하세요.</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium이 백그라운드 모드로 실행 중입니다.</translation>
 <translation id="4987820182225656817">게스트로 사용 기록을 남기지 않고 Chromium을 사용할 수 있습니다.</translation>
 <translation id="4994636714258228724">Chromium에 본인 추가</translation>
+<translation id="5053724573690775822">새로운 Chromium 작업 공간을 만드시겠습니까?</translation>
 <translation id="5224391634244552924">저장된 비밀번호가 없습니다. 비밀번호를 저장하면 Chromium에서 확인할 수 있습니다.</translation>
 <translation id="5277894862589591112">변경사항을 적용하려면 Chromium을 다시 실행하세요.</translation>
 <translation id="5358375970380395591">관리 계정으로 로그인하고 Chromium 프로필에 대한 관리자 제어권을 부여하려고 합니다. 앱, 북마크, 방문 기록, 비밀번호 및 기타 설정 등 Chromium 데이터가 <ph name="USER_NAME" /> 계정에 영구적으로 연결됩니다. 이후 이 데이터를 Google 계정 대시보드에서 삭제할 수는 있지만 다른 계정에 연결할 수는 없습니다. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">기본 제공되는 PDF 뷰어가 없으면 Chromium에서 인쇄 미리보기를 표시할 수 없습니다.</translation>
 <translation id="5427571867875391349">Chromium을 기본 브라우저로 설정</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium 베타</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" />님의 공간에 새 계정으로 로그인했습니다. 데이터를 별도로 유지하기 위해 <ph name="NEW_USER" />용 Chromium 공간을 새로 만드시겠습니까?</translation>
 <translation id="5479196819031988440">Chromium OS에서 이 페이지를 열 수 없음</translation>
 <translation id="5480860683791598150">이 사이트와 위치를 공유하려면 Chromium에 내 위치 액세스 권한이 있어야 합니다</translation>
 <translation id="549669000822060376">Chromium에서 최신 시스템 업데이트를 설치하는 동안 잠시 기다려 주세요.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">로그인 중 오류가 발생하여 Chromium에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="6096348254544841612">Chromium을 맞춤설정하고 제어하세요. 업데이트가 출시되었습니다.</translation>
 <translation id="6120345080069858279">Chromium에서 내 Google 계정에 이 비밀번호를 저장하므로 기억하지 않아도 됩니다.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" />님의 공간에 직장 계정으로 로그인했습니다. 데이터를 별도로 유지하기 위해 <ph name="WORK_DOMAIN" />용 Chromium 공간을 새로 만드시겠습니까?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" />은(는) 위험한 파일이므로 Chromium에서 차단했습니다.</translation>
 <translation id="6134968993075716475">세이프 브라우징이 사용 중지되어 있습니다. 사용 설정하는 것이 좋습니다.</translation>
 <translation id="6212496753309875659">컴퓨터에 이미 최신 버전의 Chromium이 있습니다. 소프트웨어가 작동하지 않으면 Chromium의 설치를 제거한 뒤 다시 시도하세요.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium(<ph name="URL" />)에서도 데이터 삭제</translation>
 <translation id="7585853947355360626">페이지에 표시되지 않는 설정이 있다면 <ph name="LINK_BEGIN" />
       Chromium OS 설정<ph name="LINK_END" />을 확인해 보세요.</translation>
+<translation id="7607142834923530546">직장 계정으로 로그인했습니다. 개인 데이터를 별도로 유지하기 위해 <ph name="NEW_USER" />님을 위한 Chromium 공간을 새로 만드시겠습니까?</translation>
 <translation id="761356813943268536">Chromium이 카메라와 마이크를 사용 중입니다.</translation>
 <translation id="7617377681829253106">더욱 업그레이드된 Chromium</translation>
 <translation id="7628001322379820951">Chromium이 컴퓨터에서 유해한 소프트웨어를 발견했습니다.</translation>
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb
index 12a6ca2..9942e13 100644
--- a/chrome/app/resources/chromium_strings_ky.xtb
+++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Кошумча: Google'га мүчүлүштүктөрдү аныктоо жана колдонуу статистикасы жөнүндө автоматтык түрдө кабарлоо менен Chromium OS'тун функцияларын жана өндүрүмдүүлүгүн өркүндөтүүгө жардам бериңиз.</translation>
 <translation id="2347108572062610441">Бул кеңейтүү Chromium иштеп баштаганда көрсөтүлө турган бетти өзгөрттү.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" кеңейтүүсү Chromium иштеп баштаганда көрсөтүлө турган бетти өзгөрттү.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> үчүн жаңы Chromium мейкиндиги түзүлсүнбү?</translation>
 <translation id="2483889755041906834">Chromium'да</translation>
 <translation id="2485422356828889247">Орнотуудан чыгаруу</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> плагинин иштетүү үчүн Chromium'ду өчүрүп-күйгүзүңүз</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium фондук режимде.</translation>
 <translation id="4987820182225656817">Коноктор Chromium'ду артында эч нерсе калтырбай колдоно алышат.</translation>
 <translation id="4994636714258228724">Өзүңүздү Chromium'га кошуңуз</translation>
+<translation id="5053724573690775822">Chromium'да жаңы Жумуш мейкиндигин ачасызбы?</translation>
 <translation id="5224391634244552924">Сакталган сырсөздөр жок. Сырсөздөрүңүздү сактаганда Chromium аларды текшере алат.</translation>
 <translation id="5277894862589591112">Өзгөртүүлөрдү киргизүү үчүн Chromium'ду кайра иштетиңиз</translation>
 <translation id="5358375970380395591">Башкарылган аккаунт менен кирип, анын администраторуна Chromiun профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chromium дайын-даректериңиз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка аккаунтка байланыштыра албайсыз.<ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">PDF-файлдары менен иштей турган программа камтылбаган болсо, басылып чыга турган файлды Chromium'да алдын ала көрүүгө мүмкүн болбойт.</translation>
 <translation id="5427571867875391349">Chromium'ду демейки серепчи катары коюп алыңыз</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium бета сынамык версиясы</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> мейкиндигине жаңы аккаунт менен кирдиңиз. <ph name="NEW_USER" /> үчүн жаңы Chromium мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="5479196819031988440">Chromium OS бул баракты ача албайт.</translation>
 <translation id="5480860683791598150">Бул сайт менен бөлүшүү үчүн Chromium жайгашкан жериңиз тууралуу маалыматты алышы керек</translation>
 <translation id="549669000822060376">Chromium эң акыркы тутум жаңыртууларын орнотуп бүткүчө күтө туруңуз.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Кирүү катасынан улам, Chromium дайын-даректериңизди шайкештештире алган жок.</translation>
 <translation id="6096348254544841612">Chromium'ду ыңгайлаштырып алып, көзөмөлдөңүз. Жаңыртуу бар.</translation>
 <translation id="6120345080069858279">Chromium бул сырсөздү Google аккаунтуңузга сактап коёт. Аны эстеп калуунун кажети жок.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> мейкиндигине Жумуш аккаунту менен кирдиңиз. <ph name="WORK_DOMAIN" /> үчүн жаңы Chromium мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> кооптуу файл болгондуктан, Chromium аны бөгөттөп койду.</translation>
 <translation id="6134968993075716475">Коопсуз серептөө өчүк. Chromium аны күйгүзүүнү сунуштайт.</translation>
 <translation id="6212496753309875659">Бул компьютерде Chromium'дун жаңыраак версиясы мурунтан эле орнотулган. Эгер программа иштебей жатса, Chromium'ду орнотуудан чыгарып, дагы бир жолу аракет кылып көрүңүз.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium'дагы дайындар да тазалансын (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Эгер жөндөө бул баракта көрүнбөсө, <ph name="LINK_BEGIN" />
       Chromium OS жөндөөлөрүнөн<ph name="LINK_END" /> карап көрүңүз</translation>
+<translation id="7607142834923530546">Жумуш аккаунту менен кирдиңиз. <ph name="NEW_USER" /> үчүн жаңы Chromium мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="761356813943268536">Chromium сиздин камера менен микрофонуңузду пайдаланууда.</translation>
 <translation id="7617377681829253106">Chromium жаңы эле жакшыртылды</translation>
 <translation id="7628001322379820951">Chromium компьютериңизде кооптуу программаны тапты</translation>
diff --git a/chrome/app/resources/chromium_strings_lo.xtb b/chrome/app/resources/chromium_strings_lo.xtb
index 0813f94..7cf40ef 100644
--- a/chrome/app/resources/chromium_strings_lo.xtb
+++ b/chrome/app/resources/chromium_strings_lo.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">ບໍ່ບັງຄັບ: ຊ່ວຍປັບປຸງຄຸນສົມບັດ ແລະ ປະສິດທິພາບຂອງ Chromium OS ໂດຍການສົ່ງຂໍ້ມູນການວິເຄາະ ແລະ ການນຳໃຊ້ໃຫ້ Google ໂດຍອັດຕະໂນມັດ.</translation>
 <translation id="2347108572062610441">ສ່ວນຂະຫຍາຍ​ນີ້​ໄດ້ປ່ຽນສິ່ງທີ່ໜ້າສະແດງຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນ Chromium​.</translation>
 <translation id="2396765026452590966">ສ່ວນຂະຫຍາຍ "<ph name="EXTENSION_NAME" />" ໄດ້ປ່ຽນສິ່ງທີ່ໜ້າສະແດງຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນ Chromium​.</translation>
+<translation id="2442081746662839303">ສ້າງພື້ນທີ່ Chromium ໃໝ່ສຳລັບ <ph name="NEW_USER" /> ບໍ?</translation>
 <translation id="2483889755041906834">ໃນ Chromium</translation>
 <translation id="2485422356828889247">ຖອນ​ຕິດ​ຕັ້ງ</translation>
 <translation id="2527042973354814951">ປິດເປີດ Chromium ຄືນໃໝ່ເພື່ອເປີດນຳໃຊ້ <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium ຢູ່ໃນໂໝດພື້ນຫຼັງ.</translation>
 <translation id="4987820182225656817">ແຂກສາມາດໃຊ້ Chromium ໂດຍ​ບໍ່​ມີ​ການປະອັນໃດໄວ້ເບື້ອງຫຼັງ.</translation>
 <translation id="4994636714258228724">ເພີ່ມທ່ານເອງໃສ່ Chromium</translation>
+<translation id="5053724573690775822">ສ້າງພື້ນທີ່ວຽກໃໝ່ໃນ Chromium ບໍ?</translation>
 <translation id="5224391634244552924">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້. Chromium ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານເມື່ອທ່ານບັນທຶກພວກມັນໄວ້.</translation>
 <translation id="5277894862589591112">ເພື່ອນຳໃຊ້ການປ່ຽນແປງຂອງທ່ານ, ກະລຸນາເປີດ Chromium ຄືນໃໝ່</translation>
 <translation id="5358375970380395591">ທ່ານກໍາລັງລົງຊື່ເຂົ້າ​ໃຊ້ດ້ວຍບັນຊີຄຸ້ມຄອງ ແລະໃຫ້ຜູ້ຄວບຄຸມຂອງມັນຄວບຄຸມໂປຣໄຟລ໌ Chromium ຂອງທ່ານ. ຂໍ້ມູນ Chromium ຂອງທ່ານ, ເຊັ່ນ: ແອັບ, ບຸກມາກສ໌, ປະຫວັດ, ລະຫັດຜ່ານ, ແລະການຕັ້ງຄ່າອື່ນໆຂອງທ່ານຈະຖືກຜູກ​ມັດ​ກັບ <ph name="USER_NAME" /> ຢ່າງຖາວອນ. ທ່ານຈະສາມາດລຶບຂໍ້ມູນນີ້ໄດ້ຜ່ານ Google Accounts Dashboard, ແຕ່ທ່ານຈະບໍ່ສາມາດເອົາຂໍ້ມູນນີ້ເຂົ້າຮ່ວມກັບບັນຊີອື່ນໄດ້. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium ບໍ່ສາມາດສະແດງຕົວຢ່າງການພິມເມື່ອບໍ່ມີໂປຣແກຣມເບິ່ງ PDF ທີ່ມາພ້ອມໃນຕົວ.</translation>
 <translation id="5427571867875391349">ຕັ້ງ Chromium ເປັນບຣາວ​ເຊີມາດຕະຖານຂອງທ່ານ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີໃໝ່ໃນພື້ນທີ່ຂອງ <ph name="EXISTING_USER" />. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chromium ໃໝ່ສຳລັບ <ph name="NEW_USER" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="5479196819031988440">Chromium OS ບໍ່ສາມາດເປີດໜ້ານີ້ໄດ້.</translation>
 <translation id="5480860683791598150">Chromium ຕ້ອງການເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານເພື່ອແບ່ງປັນສະຖານທີ່ຂອງທ່ານກັບເວັບໄຊນີ້</translation>
 <translation id="549669000822060376">ກະ​ລຸ​ນາ​ລໍ​ຖ້າ​ໃນ​ຂະ​ນະ​ທີ່ Chromium ​ຕິດ​ຕັ້ງ​ການອັບເດດລະບົບຫລ້າ​ສຸດ.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium ບໍ່​ສາ​ມາດຊິງຄ໌ຂໍ້​ມູນ​ຂອງ​ທ່ານໄດ້ ເນື່ອ​ງຈາກ​ການລົງຊື່ເຂົ້າ​ໃຊ້ຜິດພາດ.</translation>
 <translation id="6096348254544841612">ປັບແຕ່ງ ແລະ ຄວບຄຸມ Chromium. ມີການອັບເດດແລ້ວ</translation>
 <translation id="6120345080069858279">Chromium ຈະບັນທຶກລະຫັດຜ່ານນີ້ໄວ້ໃນບັນຊີ Google ຂອງທ່ານ. ທ່ານຈະບໍ່ຈຳເປັນຕ້ອງຈື່ມັນ.</translation>
+<translation id="6128834065531097268">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີບ່ອນເຮັດວຽກໃນພື້ນທີ່ຂອງ <ph name="EXISTING_USER" />. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chromium ໃໝ່ສຳລັບ <ph name="WORK_DOMAIN" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ອັນຕະລາຍ, ສະນັ້ນ Chromium ໄດ້ບລັອກມັນໄວ້ແລ້ວ.</translation>
 <translation id="6134968993075716475">Safe Browsing ປິດຢູ່. Chromium ຂໍແນະນຳໃຫ້ເປີດມັນ.</translation>
 <translation id="6212496753309875659">ຄອມພິວເຕີນີ້ມີ Chromium ລຸ້ນໃໝ່ກ່ວາຢູ່ຮຽບຮ້ອຍແລ້ວ. ຖ້າຊອບແວບໍ່ເຮັດວຽກ, ກະລຸນາຖອນຕິດຕັ້ງ Chromium ແລະລອງໃໝ່ອີກ.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">ລຶບລ້າງຂໍ້ມູນອອກຈາກ Chromium (<ph name="URL" />) ນຳ</translation>
 <translation id="7585853947355360626">ຖ້າການຕັ້ງຄ່າບໍ່ສະແດງໃນໜ້ານີ້, ກະລຸນາກວດເບິ່ງໃນ <ph name="LINK_BEGIN" />
     ການຕັ້ງຄ່າ Chromium OS<ph name="LINK_END" /> ຂອງທ່ານ</translation>
+<translation id="7607142834923530546">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີບ່ອນເຮັດວຽກ. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chromium ໃໝ່ສຳລັບ <ph name="NEW_USER" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="761356813943268536">Chromium ກໍາລັງໃຊ້​ກ້ອງ​ຖ່າຍ​ຮູບ​ ແລະໄມໂຄຣໂຟນຂອງ​ທ່ານ​.</translation>
 <translation id="7617377681829253106">Chromium ​ດີກ​ວ່າແລ້ວ</translation>
 <translation id="7628001322379820951">Chromium ໄດ້ພົບຊອບແວອັນຕະລາຍໃນຄອມພິວເຕີຂອງທ່ານ</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index d9df327..7fee357 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Pasirenkama: padėkite patobulinti „Chromium“ OS funkcijas ir našumą automatiškai siųsdami diagnostikos ir naudojimo duomenis į sistemą „Google“.</translation>
 <translation id="2347108572062610441">Šis plėtinys pakeitė, kuris puslapis rodomas paleidus „Chromium“.</translation>
 <translation id="2396765026452590966">Plėtinys „<ph name="EXTENSION_NAME" />“ pakeitė, kuris puslapis rodomas paleidus „Chromium“.</translation>
+<translation id="2442081746662839303">Kurti naują „Chromium“ sritį, skirtą naudotojui (<ph name="NEW_USER" />)?</translation>
 <translation id="2483889755041906834">Naudojant „Chromium“</translation>
 <translation id="2485422356828889247">Pašalinti</translation>
 <translation id="2527042973354814951">Iš naujo paleiskite „Chromium“, kad įgalintumėte „<ph name="PLUGIN_NAME" />“</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">„Chromium“ veikia fono režimu.</translation>
 <translation id="4987820182225656817">Svečiai gali naudoti „Chromium“ nepalikdami jokių duomenų.</translation>
 <translation id="4994636714258228724">Pridėkite save prie „Chromium“</translation>
+<translation id="5053724573690775822">Kurti naują „Chromium“ darbo sritį?</translation>
 <translation id="5224391634244552924">Nėra išsaugotų slaptažodžių. „Chromium“ gali tikrinti jūsų slaptažodžius, kai juos išsaugote.</translation>
 <translation id="5277894862589591112">Norėdami pritaikyti pakeitimus, paleiskite „Chromium“ iš naujo</translation>
 <translation id="5358375970380395591">Prisijungiate su valdoma paskyra ir leidžiate jos administratoriui valdyti jūsų „Chromium“ profilį. „Chromium“ duomenys, pvz., programos, žymės, istorija, slaptažodžiai ir kiti nustatymai, bus visam laikui susieti su <ph name="USER_NAME" />. Galėsite ištrinti šiuos duomenis naudodami „Google“ paskyrų informacijos suvestinę, bet negalėsite susieti šių duomenų su kita paskyra. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">„Chromium“ negalima rodyti spaudinio peržiūros, jei nėra įtaisytos PDF žiūryklės.</translation>
 <translation id="5427571867875391349">Nustatyti „Chromium“ kaip numatytąją naršyklę</translation>
 <translation id="5438241569118040789">„<ph name="PAGE_TITLE" />“ – „Chromium Beta“</translation>
+<translation id="544968170749360982">Prisijungėte naudodami naują paskyrą naudotojo (<ph name="EXISTING_USER" />) srityje. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą naudotojui (<ph name="NEW_USER" />), kad jūsų duomenys būtų saugomi atskirai?</translation>
 <translation id="5479196819031988440">„Chromium“ OS negali atidaryti šio puslapio.</translation>
 <translation id="5480860683791598150">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų vietovės informaciją ir bendrinti ją su šia svetaine</translation>
 <translation id="549669000822060376">Palaukite, kol „Chromium“ įdiegs naujausius sistemos naujinius.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">„Chromium“ negali sinchronizuoti duomenų, nes prisijungiant įvyko klaida.</translation>
 <translation id="6096348254544841612">Tinkinkite ir valdykite „Chromium“. Pasiekiamas naujinys.</translation>
 <translation id="6120345080069858279">„Chromium“ išsaugos šį slaptažodį „Google“ paskyroje. Jums nereikia jo prisiminti.</translation>
+<translation id="6128834065531097268">Prisijungėte naudodami darbo paskyrą naudotojo (<ph name="EXISTING_USER" />) srityje. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą <ph name="WORK_DOMAIN" />, kad jūsų duomenys būtų saugomi atskirai?</translation>
 <translation id="6129621093834146363">Failas „<ph name="FILE_NAME" />“ pavojingas, todėl „Chromium“ jį užblokavo.</translation>
 <translation id="6134968993075716475">Saugaus naršymo funkcija išjungta. „Chromium“ rekomenduoja ją įjungti.</translation>
 <translation id="6212496753309875659">Šiame kompiuteryje jau yra naujesnės versijos „Chromium“. Jei programinė įranga neveikia, pašalinkite „Chromium“ ir bandykite dar kartą.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Taip pat išvalyti duomenis iš „Chromium“ (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Jei nustatymai šiame puslapyje nerodomi, jų ieškokite <ph name="LINK_BEGIN" />
       naršyklės „Chromium“ nustatymuose<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Prisijungėte naudodami darbo paskyrą. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą naudotojui (<ph name="NEW_USER" />) , kad jūsų asmeniniai duomenys būtų saugomi atskirai?</translation>
 <translation id="761356813943268536">„Chromium“ naudoja jūsų fotoaparatą ir mikrofoną.</translation>
 <translation id="7617377681829253106">„Chromium“ dabar dar tobulesnė</translation>
 <translation id="7628001322379820951">„Chromium“ kompiuteryje rado žalingos programinės įrangos</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 4f4a850..0f8badc 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">ഓപ്ഷണൽ: പ്രശ്‍നനിർണ്ണയ, ഉപയോഗ വിവരങ്ങൾ Google-ന് സ്വയമേവ അയച്ചുകൊണ്ട് Chromium OS ഫീച്ചറുകളും പ്രകടനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കുക.</translation>
 <translation id="2347108572062610441">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
 <translation id="2396765026452590966">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം മാറ്റി.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> എന്നയാൾക്കായി പുതിയൊരു Chromium സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="2483889755041906834">Chromium-ത്തിൽ</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> പ്രവർത്തനക്ഷമമാക്കാൻ Chromium റീസ്റ്റാർട്ട് ചെയ്യുക</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium പശ്ചാത്തല മോഡിലാണ്.</translation>
 <translation id="4987820182225656817">അതിഥികൾക്ക് ഒന്നും ശേഷിപ്പിക്കാതെ തന്നെ Chromium ഉപയോഗിക്കാനാകും.</translation>
 <translation id="4994636714258228724">Chromium-ലേക്ക് സ്വയം ചേരുക</translation>
+<translation id="5053724573690775822">പുതിയൊരു Chromium വർക്ക്‌സ്‌പെയ്‌സ് സൃ‌ഷ്‌ടിക്കണോ?</translation>
 <translation id="5224391634244552924">സംരക്ഷിച്ച പാസ്‌വേഡുകളൊന്നുമില്ല. നിങ്ങളുടെ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയാണങ്കിൽ, Chromium-ന് അവ പരിശോധിക്കാനാവും.</translation>
 <translation id="5277894862589591112">നിങ്ങളുടെ മാറ്റങ്ങൾ ബാധകമാക്കാൻ Chromium സമാരംഭിക്കുക</translation>
 <translation id="5358375970380395591">നിങ്ങൾ ഒരു നിയന്ത്രിത അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്‌ത് അതിന്റെ അഡ്‌മിന് നിങ്ങളുടെ Chromium പ്രൊഫൈലിന്റെ നിയന്ത്രണം നൽകുന്നു. നിങ്ങളുടെ ആപ്പുകൾ, ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലെയുള്ള Chromium ഡാറ്റ <ph name="USER_NAME" /> എന്നതുമായി ശാശ്വതമായി ബന്ധിപ്പിച്ചതായിത്തീരും. Google അക്കൗണ്ട്സ് ഡാഷ്‌ബോർഡ് വഴി നിങ്ങൾക്ക് ഈ ഡാറ്റ ഇല്ലാതാക്കാനാകുമെങ്കിലും, ഈ ഡാറ്റ മറ്റൊരു അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്താനാകില്ല. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">അടങ്ങിയ PDF വ്യൂവർ ഇല്ലാതിരിക്കുമ്പോൾ, Chromium-ന് പ്രിന്റ് പ്രിവ്യു കാണിക്കാനാവില്ല.</translation>
 <translation id="5427571867875391349">നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറായി Chromium സജ്ജമാക്കുക</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ബീറ്റ</translation>
+<translation id="544968170749360982">നിങ്ങൾ ഒരു പുതിയ അക്കൗണ്ട് ഉപയോഗിച്ച് <ph name="EXISTING_USER" /> എന്നയാളുടെ സ്പെയ്‌സിൽ സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="NEW_USER" /> എന്നയാൾക്കായി പുതിയൊരു Chromium സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="5479196819031988440">Chromium OS-ന് ഈ പേജ് തുറക്കാനാവില്ല.</translation>
 <translation id="5480860683791598150">Chromium-ത്തിന് ഈ സൈറ്റുമായി ലൊക്കേഷൻ പങ്കിടുന്നതിന് നിങ്ങളുടെ ലൊക്കേഷനിലേക്കുള്ള ആക്‌സസ് ആവശ്യമാണ്</translation>
 <translation id="549669000822060376">Chromium ഏറ്റവും പുതിയ സിസ്‌റ്റം അപ്‌ഡേറ്റുകൾ ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">സൈൻ ഇൻ ചെയ്യുന്നതിലെ പിശകിനാൽ Chromium-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="6096348254544841612">Chromium ഇഷ്ടാനുസൃതമാക്കി നിയന്ത്രിക്കുക. അപ്‌ഡേറ്റ് ലഭ്യമാണ്.</translation>
 <translation id="6120345080069858279">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ Chromium ഈ പാസ്‌വേഡ് സംരക്ഷിക്കും. നിങ്ങൾ അത് ഓർത്ത് വയ്ക്കേണ്ടതില്ല.</translation>
+<translation id="6128834065531097268">നിങ്ങൾ ഒരു ഔദ്യോഗിക അക്കൗണ്ട് ഉപയോഗിച്ച് <ph name="EXISTING_USER" /> എന്നയാളുടെ സ്പെയ്‌സിൽ സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="WORK_DOMAIN" /> എന്നതിനായി പുതിയൊരു Chromium സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> അപകടകരമായതിനാൽ, Chromium ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
 <translation id="6134968993075716475">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്. ഇത് ഓണാക്കാൻ Chromium നിർദ്ദേശിക്കുന്നു.</translation>
 <translation id="6212496753309875659">Chromium-ത്തിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് ഈ കമ്പ്യൂട്ടറില്‍ ഇപ്പോൾ തന്നെയുണ്ട്. സോഫ്റ്റ്‌വെയര്‍ പ്രവര്‍ത്തിക്കുന്നില്ലെങ്കില്‍, Chromium അൺഇൻസ്റ്റാൾ ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium-ൽ നിന്നും ഡാറ്റ മായ്ക്കുക (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">ഈ പേജിൽ ക്രമീകരണം കാണിക്കുന്നില്ലെങ്കിൽ <ph name="LINK_BEGIN" />
       Chromium OS ക്രമീകരണത്തിൽ<ph name="LINK_END" /> പരിശോധിക്കുക</translation>
+<translation id="7607142834923530546">നിങ്ങൾ ഒരു ഔദ്യോഗിക അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ വ്യക്തിപരമായ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="NEW_USER" /> എന്നയാൾക്കായി പുതിയൊരു Chromium സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="761356813943268536">Chromium നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു.</translation>
 <translation id="7617377681829253106">Chromium കൂടുതൽ മികച്ചതായി</translation>
 <translation id="7628001322379820951">Chromium നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ദോഷകരമായ സോഫ്റ്റ്‌വെയർ കണ്ടെത്തി</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index 64629bcf..4931ff6 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Заавал биш: Оношилгоо болон ашиглалтын өгөгдлийг Google-д автоматаар илгээх замаар Chromium үйлдлийн системийн онцлогууд болон гүйцэтгэлийг сайжруулахад туслах.</translation>
 <translation id="2347108572062610441">Энэ өргөтгөл нь таныг Chromium эхлүүлэх үед хуудас дээр харуулах зүйлийг өөрчилсөн.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" өргөтгөл нь таныг Chromium эхлүүлэх үед хуудасны харуулах зүйлийг өөрчилсөн.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" />-д зориулж Chromium-н шинэ орон зай үүсгэх үү?</translation>
 <translation id="2483889755041906834">Chromium-д</translation>
 <translation id="2485422356828889247">Устгах</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />-г идэвхжүүлэхийн тулд Chromium-г дахин эхлүүлнэ үү</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium нь суурь горимд байна.</translation>
 <translation id="4987820182225656817">Зочид Chromium-ийг ашигласнаар хамгийн сүүлийн үеийн мэдээллийг авна.</translation>
 <translation id="4994636714258228724">Өөрийгөө Chromium руу нэмэх</translation>
+<translation id="5053724573690775822">Chromium-н ажлын шинэ орон зай үүсгэх үү?</translation>
 <translation id="5224391634244552924">Хадгалсан ямар ч нууц үг алга. Таныг нууц үгсээ хадгалах үед Chromium тэднийг шалгах боломжтой.</translation>
 <translation id="5277894862589591112">Өөрчлөлтөө хэрэгжүүлэхийн тулд Chromium-г дахин ажиллуулна уу</translation>
 <translation id="5358375970380395591">Та удирдан ажиллаж буй хаягт нэвтэрч байгаагаас гадна таны Chromium профайлыг хянах эрхийг системийн ажилтанд шилжүүлж байна. Таны апп, хавчуурга, түүх, нууц үг болон бусад тохиргоо гэх мэт таны Chromium өгөгдлийг <ph name="USER_NAME" />-тэй холбох болно. Та энэхүү өгөгдлийг Google Accounts Dashboard-р дамжуулан устгах боломжтой боловч та энэхүү өгөгдлийн өөр хаягтай холбох боломжгүй байна. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Суурилуулсан PDF харагч байхгүй тохиолдолд Chromium хэвлэх байдлаар урьдчилан харуулах боломжгүй.</translation>
 <translation id="5427571867875391349">Chromium-ыг өөрийн анхдагч вэб хөтөч болгон тохируулах</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Бета</translation>
+<translation id="544968170749360982">Та <ph name="EXISTING_USER" />-н орон зайд шинэ бүртгэлээр нэвтэрсэн байна. Өгөгдлөө тусад нь хадгалахын тулд <ph name="NEW_USER" />-д зориулсан Chromium-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="5479196819031988440">Chromium үйлдлийн систем энэ хуудсыг нээх боломжгүй.</translation>
 <translation id="5480860683791598150">Таны байршлыг энэ сайттай хуваалцахын тулд Chromium-д таны байршилд хандах зөвшөөрөл шаардлагатай</translation>
 <translation id="549669000822060376">Chromium нь хамгийн сүүлийн үеийн системийн шинэчлэлтүүдийг суулгаж байгаа тул түр хүлээнэ үү.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium нь нэвтрэх хэсэгт гарсан алдаатай холбоотойгоор таны өгөгдлийн тохиргоог хийж чадсангүй.</translation>
 <translation id="6096348254544841612">Chromium-г тохируулж, хянана уу. Шинэчлэх боломжтой.</translation>
 <translation id="6120345080069858279">Chromium энэ нууц үгийг таны Google Бүртгэлд хадгалах тул та үүнийг санах шаардлагагүй.</translation>
+<translation id="6128834065531097268">Та <ph name="EXISTING_USER" />-н орон зайд Ажлын бүртгэлээр нэвтэрсэн байна. Та өгөгдлөө тусад нь хадгалахын тулд <ph name="WORK_DOMAIN" />-д зориулсан Chromium-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> аюултай тул үүнийг Chromium блок хийсэн.</translation>
 <translation id="6134968993075716475">Аюулгүй үзэх онцлог унтраалттай байна. Chromium түүнийг асаахыг зөвлөж байна.</translation>
 <translation id="6212496753309875659">Энэ компьютерт Chromium-ийн хамгийн сүүлийн үеийн хувилбар байна. Хэрэв программ ажиллахгүй байвал Chromium-ийг устгаад, дахин суурьлуулж үзнэ үү.</translation>
@@ -195,6 +199,7 @@
 <translation id="7561906087460245826">Chromium-н (<ph name="URL" />) өгөгдлийг мөн адил устгах</translation>
 <translation id="7585853947355360626">Хэрэв энэ хуудсан дээр тохиргоог харуулахгүй байгаа бол <ph name="LINK_BEGIN" />
       Chromium үйлдлийн системийнхээ тохиргоо<ph name="LINK_END" /> дотроос хайна уу</translation>
+<translation id="7607142834923530546">Та ажлын бүртгэлээр нэвтэрсэн байна. Хувийн мэдээллээ тусад нь хадгалахын тулд та <ph name="NEW_USER" />-д зориулсан Chromium-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="761356813943268536">Chromium нь таны камер болон микрофоныг ашиглаж байна.</translation>
 <translation id="7617377681829253106">Chromium сайжирлаа</translation>
 <translation id="7628001322379820951">Chromium таны компьютер дээрээс аюултай программ хангамж оллоо</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index cb56b236..5cc541d1 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -29,6 +29,7 @@
 <translation id="2294245788148774212">पर्यायी: Google ला निदान आणि वापर डेटा आपोआप पाठवून, Chromium OS ची वैशिष्ट्ये आणि परफॉर्मन्समध्ये सुधारणा करण्यात मदत करा.</translation>
 <translation id="2347108572062610441">तुम्ही Chromium सुरू करता तेव्हा कोणते पेज दर्शविले जाते हे या एक्स्टेंशनने बदलले आहे.</translation>
 <translation id="2396765026452590966">तुम्ही Chromium सुरू करता तेव्हा कोणते पेज दर्शविले जाते हे "<ph name="EXTENSION_NAME" />" एक्स्टेंशनने बदलले आहे.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> साठी नवीन Chromium स्पेस तयार करायची आहे का?</translation>
 <translation id="2483889755041906834">Chromium मध्ये</translation>
 <translation id="2485422356828889247">अनइंस्टॉल करा</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> सुरू करण्यासाठी Chromium रीस्टार्ट करा</translation>
@@ -106,6 +107,7 @@
 <translation id="4943838377383847465">Chromium पार्श्वभूमी मोड मध्ये आहे.</translation>
 <translation id="4987820182225656817">अतिथी कोणतीही गोष्ट मागे न सोडता Chromium वापरू शकतात.</translation>
 <translation id="4994636714258228724">आपल्या स्वतःस Chromium वर जोडा</translation>
+<translation id="5053724573690775822">नवीन Chromium कार्य स्पेस तयार करायची आहे का?</translation>
 <translation id="5224391634244552924">सेव्ह केलेले पासवर्ड नाहीत. तुम्ही तुमचे पासवर्ड सेव्ह केल्यावर Chromium ते तपासू शकते.</translation>
 <translation id="5277894862589591112">तुम्ही केलेले बदल लागू करण्यासाठी, Chromium रीलाँच करा</translation>
 <translation id="5358375970380395591">तुम्ही एका व्यवस्थापित खात्यासह साइन इन करत आहात आणि तुमच्या Chromium प्रोफाइलवर त्याच्या ॲडमिनिस्ट्रेटरला नियंत्रण देत आहात. तुमचा Chromium डेटा, जसे की तुमचे अ‍ॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज <ph name="USER_NAME" /> वर कायमच्या बद्ध होतील. तुम्ही Google खाती डॅशबोर्डद्वारे हा डेटा हटवण्यात सक्षम व्हाल, परंतु तुम्ही दुसर्‍या खात्यासह हा डेटा संबद्ध करण्यात सक्षम असणार नाही. <ph name="LEARN_MORE" /></translation>
@@ -115,6 +117,7 @@
 <translation id="5416696090975899932">बिल्ड इन PDF दर्शक उपस्थित नसतात तेव्हा Chromium मुद्रण पूर्वावलोकन दाखवू शकत नाही.</translation>
 <translation id="5427571867875391349">तुमचा डीफॉल्ट ब्राउझर म्हणून Chromium सेट करा</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium बीटा</translation>
+<translation id="544968170749360982">तुम्ही <ph name="EXISTING_USER" /> यांच्या स्पेसमध्ये नवीन खाते वापरून साइन इन केले आहे. तुमचा डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="NEW_USER" /> करिता नवीन Chromium स्पेस तयार करायची आहे का?</translation>
 <translation id="5479196819031988440">Chromium OS हे पृष्ठ उघडू शकत नाही.</translation>
 <translation id="5480860683791598150">या साइटसोबत तुमचे स्थान शेअर करण्यासाठी Chromium ला तुमच्या स्थानाचा ॲक्सेस हवा आहे</translation>
 <translation id="549669000822060376">कृपया Chromium नवीनतम सिस्टम अपडेट इंस्टॉल करेपर्यंत प्रतीक्षा करा.</translation>
@@ -137,6 +140,7 @@
 <translation id="608189560609172163">साइन इन करण्यात एरर आल्यामुळे Chromium तुमचा डेटा सिंक करू शकले नाही.</translation>
 <translation id="6096348254544841612">Chromium कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation>
 <translation id="6120345080069858279">Chromium हा पासवर्ड तुमच्या Google खात्यामध्ये सेव्ह करेल. तुम्हाला पासवर्ड लक्षात ठेवावा लागणार नाही.</translation>
+<translation id="6128834065531097268">तुम्ही <ph name="EXISTING_USER" /> यांच्या स्पेसमध्ये ऑफिस खाते वापरून साइन इन केले आहे. तुमचा डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="WORK_DOMAIN" /> करिता नवीन Chromium स्पेस तयार करायची आहे का?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chromium ने ते अवरोधित केले आहे.</translation>
 <translation id="6134968993075716475">सुरक्षित ब्राउझिंग बंद आहे. Chromium ते सुरू करण्याची शिफारस करते.</translation>
 <translation id="6212496753309875659">या कॉंप्युटरवर आधीपासून Chromium ची अगदी अलीकडील आवृत्ती आहे. सॉफ्‍टवेअर काम करत नसल्‍यास, कृपया Chromium अनइंस्टॉल करा आणि पुन्‍हा प्रयत्‍न करा.</translation>
@@ -198,6 +202,7 @@
 <translation id="7561906087460245826">तसेच Chromium (<ph name="URL" />) वरील डेटा साफ करा</translation>
 <translation id="7585853947355360626">या पेजवर सेटिंग दिसत नसल्यास, तुमच्या <ph name="LINK_BEGIN" />
       Chromium OS सेटिंग्ज<ph name="LINK_END" /> मध्ये पाहा</translation>
+<translation id="7607142834923530546">तुम्ही ऑफिस खाते वापरून साइन इन केले आहे. तुमचा वैयक्तिक डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="NEW_USER" /> करिता नवीन Chromium स्पेस तयार करायची आहे का?</translation>
 <translation id="761356813943268536">Chromium तुमचा कॅमेरा आणि मायक्रोफोन वापरत आहे.</translation>
 <translation id="7617377681829253106">Chromium आता उत्कृष्ट झाले आहे</translation>
 <translation id="7628001322379820951">Chromium ला तुमच्या कॉंप्युटरवर हानिकारक सॉफ्टवेअर आढळले आहे</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 12d1794..007cffb 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Pilihan: Bantu kami mempertingkat ciri dan prestasi OS Chromium dengan menghantar data diagnostik dan penggunaan kepada Google secara automatik.</translation>
 <translation id="2347108572062610441">Sambungan ini telah menukar halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
 <translation id="2396765026452590966">Sambungan "<ph name="EXTENSION_NAME" />" telah menukar halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
+<translation id="2442081746662839303">Buat ruang Chromium baharu untuk <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">Dalam Chromium</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
 <translation id="2527042973354814951">Mulakan semula Chromium untuk mendayakan <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium dalam mod latar belakang.</translation>
 <translation id="4987820182225656817">Tetamu boleh menggunakan Chromium tanpa meninggalkan apa-apa.</translation>
 <translation id="4994636714258228724">Tambahkan diri anda kepada Chromium</translation>
+<translation id="5053724573690775822">Buat ruang Kerja Chromium baharu?</translation>
 <translation id="5224391634244552924">Tiada kata laluan yang disimpan. Chromium boleh menyemak kata laluan anda yang disimpan.</translation>
 <translation id="5277894862589591112">Untuk menggunakan perubahan anda, mulakan semula Chromium</translation>
 <translation id="5358375970380395591">Anda log masuk menggunakan akaun yang terurus dan memberikan pentadbirnya kawalan ke atas profil Chromium anda. Data Chromium anda, seperti apl, penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan terikat kepada <ph name="USER_NAME" /> secara kekal. Anda akan dapat memadamkan data ini melalui Papan Pemuka Akaun Google, tetapi anda tidak akan dapat mengaitkan data ini dengan akaun lain. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium tidak dapat memaparkan pratonton cetakan apabila alat lihat PDF terbina dalam tiada.</translation>
 <translation id="5427571867875391349">Tetapkan Chromium sebagai penyemak imbas lalai anda</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982">Anda dilog masuk dengan akaun baharu di ruang <ph name="EXISTING_USER" />. Adakah anda mahu membuat ruang Chromium baharu untuk <ph name="NEW_USER" /> untuk mengasingkan data anda?</translation>
 <translation id="5479196819031988440">OS Chromium tidak boleh membuka halaman ini.</translation>
 <translation id="5480860683791598150">Chromium memerlukan akses kepada lokasi anda untuk berkongsi lokasi dengan tapak ini</translation>
 <translation id="549669000822060376">Sila tunggu sementara Chromium memasang kemas kini sistem terkini.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium tidak dapat menyegerakkan data anda disebabkan ralat melog masuk.</translation>
 <translation id="6096348254544841612">Sesuaikan dan kawal Chromium. Kemas kini tersedia.</translation>
 <translation id="6120345080069858279">Chromium akan menyimpan kata laluan ini dalam Akaun Google anda. Anda tidak perlu mengingati kata laluan tersebut.</translation>
+<translation id="6128834065531097268">Anda dilog masuk dengan akaun Kerja di ruang <ph name="EXISTING_USER" />. Adakah anda mahu membuat ruang Chromium baharu untuk <ph name="WORK_DOMAIN" /> untuk mengasingkan data anda?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> berbahaya, jadi Chromium telah menyekat fail itu.</translation>
 <translation id="6134968993075716475">Penyemakan Imbas Selamat dimatikan. Chromium mengesyorkan agar ciri ini dihidupkan.</translation>
 <translation id="6212496753309875659">Komputer ini telah mempunyai versi Chromium yang lebih baharu. Jika perisian tidak berfungsi, sila nyahpasang Chromium dan cuba lagi.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Kosongkan data daripada Chromium (<ph name="URL" />) juga</translation>
 <translation id="7585853947355360626">Jika tetapan tidak ditunjukkan pada halaman ini, lihat dalam <ph name="LINK_BEGIN" />
       tetapan OS Chromium anda<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Anda dilog masuk dengan akaun kerja. Adakah anda mahu membuat ruang Chromium baharu untuk <ph name="NEW_USER" /> untuk mengasingkan data peribadi anda?</translation>
 <translation id="761356813943268536">Chromium menggunakan kamera dan mikrofon anda.</translation>
 <translation id="7617377681829253106">Chromium kini lebih baik</translation>
 <translation id="7628001322379820951">Chromium menemukan perisian berbahaya pada komputer anda</translation>
diff --git a/chrome/app/resources/chromium_strings_ne.xtb b/chrome/app/resources/chromium_strings_ne.xtb
index 5f65466..202ac6d5 100644
--- a/chrome/app/resources/chromium_strings_ne.xtb
+++ b/chrome/app/resources/chromium_strings_ne.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">ऐच्छिक: Google लाई निदान र प्रयोगसम्बन्धी डेटा स्वतः पठाएर Chromium OS का सुविधा र कार्यसम्पादनको गुणस्तरमा सुधार ल्याउन मद्दत गर्नुहोस्।</translation>
 <translation id="2347108572062610441">यो विस्तारले तपाईँले Chromium सुरु गर्दा देखाइएको पृष्ठलाई परिवर्तन गरेको छ।</translation>
 <translation id="2396765026452590966">विस्तार "<ph name="EXTENSION_NAME" />" ले तपाईँले Chromium सुरु गर्दा देखाइएको पृष्ठलाई परिवर्तन गरेको छ।</translation>
+<translation id="2442081746662839303">Chromium मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="2483889755041906834">Chromium मा</translation>
 <translation id="2485422356828889247">विस्थापन गर्नुहोस्</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> लाई सक्षम पार्न Chromium लाई पुन: सुरु गर्नुहोस्</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium पृष्ठभूमि मोडमा छ।</translation>
 <translation id="4987820182225656817">अतिथिहरूले कुनैपनि कुरालाई पछाडि छोडे बिना Chromium प्रयोग गर्न सक्छन्।</translation>
 <translation id="4994636714258228724">तपाइँ अफैलाई Chromium मा थप्नुहोस्</translation>
+<translation id="5053724573690775822">Chromium मा नयाँ कार्य स्पेस बनाउने हो?</translation>
 <translation id="5224391634244552924">कुनै पनि पासवर्ड सुरक्षित गरिएको छैन। तपाईंले आफ्ना पासवर्डहरू सुरक्षित गर्नुभएको छ भने मात्र Chromium ले तिनको जाँच गर्न सक्छ।</translation>
 <translation id="5277894862589591112">आफूले गरेका परिवर्तनहरू लागू गर्न Chromium पुनः सुरु गर्नुहोस्</translation>
 <translation id="5358375970380395591">तपाइँ एक व्यवस्थापित खाताको साथमा साइनइन गर्दै हुनुहुन्छ र त्यसको प्रशासकलाई तपाइँको Chromium प्रोफाइलमा नियन्त्रण दिँदै हुनुहुन्छ। तपाइँको Chromium लगत, जस्तै की तपाइँका एपहरू, पृष्ठमञ्जूषाहरू, इतिहास, पासवर्डहरू, र अन्य सेटिङहरू स्थायी रूपमा <ph name="USER_NAME" /> मा बाँधिनेछ। तपाइँले यस लगतलाई Google खााता ड्यासबोर्ड मार्पत हटाउन सक्नुहुनेछ, तर तपाइँले यस लगतलाई अर्को खातासँग सम्बन्ध गर्न सक्नुहुनेछैन। <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">अन्तर्निर्मित PDF भ्युअर छुटेको बेला Chromium ले छपाइको पूर्वावलोन देखाउन सक्दैन।</translation>
 <translation id="5427571867875391349">Chromium लाई तपाइँको पूर्वनिर्धारित ब्राउजरको रूपमा सेट गर्नुहोस्</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium बिटा</translation>
+<translation id="544968170749360982">तपाईंले <ph name="EXISTING_USER" /> को स्पेसमा नयाँ खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो डेटा छुट्टै राख्न Chromium मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="5479196819031988440">Chromium OS ले यो पृष्ठ खोल्न सक्दैन</translation>
 <translation id="5480860683791598150">Chromium लाई यो साइटसँग तपाईंको स्थान आदान प्रदान गर्न तपाईंको स्थानमाथिको पहुँच आवश्यक पर्छ</translation>
 <translation id="549669000822060376">Chromium ले नवीनतम सिस्टम अपडेट स्थापित गर्दै गर्दा प्रतिक्षा गर्नुहोस्।</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">साइनइन गर्नमा एक त्रुटिको कारणले गर्दा Chromium ले तपाइँको लगत समक्रमण गर्न सकेन।</translation>
 <translation id="6096348254544841612">Chromium लाई आफू अनुकूल बनाउने र नियन्त्रण गर्ने कार्य गर्नुहोस्। अद्यावधिक उपलब्ध छ।</translation>
 <translation id="6120345080069858279">Chromium ले यो पासवर्ड तपाईंको Google खातामा सुरक्षित गर्ने छ। तपाईंले यसलाई सम्झिराख्नु पर्ने छैन।</translation>
+<translation id="6128834065531097268">तपाईंले <ph name="EXISTING_USER" /> को स्पेसमा कार्य खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो डेटा छुट्टै राख्न Chromium मा <ph name="WORK_DOMAIN" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> खतरनाक छ, त्यसैले Chromium ले यसमाथि रोक लगाएको छ।</translation>
 <translation id="6134968993075716475">सुरक्षित ब्राउजिङ निष्क्रिय छ। Chromium ले यो सेवा सक्रिय गर्न सिफारिस गर्छ।</translation>
 <translation id="6212496753309875659">यो कम्प्युटरमा पहिले नै Chromium को अझ हालैको संस्करण छ। यदि सफ्टवेयरले काम गरिरहेको छैन भने, कृपया Chromium को स्थापना हटाएर पुन: प्रयास गर्नुहोस्।</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Chromium (<ph name="URL" />) को डेटा पनि खाली गर्नुहोस्</translation>
 <translation id="7585853947355360626">यो पृष्ठमा कुनै सेटिङ देखिएन भने आफ्नो <ph name="LINK_BEGIN" />
     Chromium OS का सेटिङ<ph name="LINK_END" />मा गई हेर्नुहोस्</translation>
+<translation id="7607142834923530546">तपाईंले कार्य खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो व्यक्तिगत डेटा छुट्टै राख्न Chromium मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="761356813943268536">Chromium ले तपइँको क्यामेरा र माइक्रोफोन प्रयोग गर्दैछ।</translation>
 <translation id="7617377681829253106">Chromium भर्खरै झन राम्रो भयो</translation>
 <translation id="7628001322379820951">Chromium ले तपाईंको कम्प्युटरमा हानिकारक सफ्टवेयर फेला पार्‍यो</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 557cf82..ccce479 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Optioneel: Help de functies en prestaties van Chromium OS te verbeteren door automatisch diagnostische en gebruiksgegevens naar Google te sturen.</translation>
 <translation id="2347108572062610441">Deze extensie heeft gewijzigd welke pagina wordt weergegeven wanneer je Chromium start.</translation>
 <translation id="2396765026452590966">De extensie '<ph name="EXTENSION_NAME" />' heeft gewijzigd welke pagina wordt weergegeven wanneer je Chromium start.</translation>
+<translation id="2442081746662839303">Nieuwe Chromium-ruimte voor <ph name="NEW_USER" /> maken?</translation>
 <translation id="2483889755041906834">In Chromium</translation>
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
 <translation id="2527042973354814951">Chromium opnieuw opstarten om <ph name="PLUGIN_NAME" /> in te schakelen</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium bevindt zich in de achtergrondmodus.</translation>
 <translation id="4987820182225656817">Gasten kunnen Chromium gebruiken zonder iets achter te laten.</translation>
 <translation id="4994636714258228724">Jezelf toevoegen aan Chromium</translation>
+<translation id="5053724573690775822">Nieuwe werkruimte voor Chromium maken?</translation>
 <translation id="5224391634244552924">Geen opgeslagen wachtwoorden. Chromium kan je wachtwoorden checken als je deze hebt opgeslagen.</translation>
 <translation id="5277894862589591112">Als je de wijzigingen wilt toepassen, start je Chromium opnieuw</translation>
 <translation id="5358375970380395591">Je logt in op een beheerd account waarmee de eigenaar van dat account beheer krijgt over je Chromium-profiel. Je Chromium-gegevens zoals je apps, bookmarks, geschiedenis, wachtwoorden en andere instellingen worden permanent gekoppeld aan <ph name="USER_NAME" />. Je kunt deze gegevens verwijderen via het Google Accounts Dashboard, maar je kunt deze gegevens niet koppelen aan een ander account.<ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium kan het afdrukvoorbeeld niet weergeven wanneer de ingebouwde pdf-viewer ontbreekt.</translation>
 <translation id="5427571867875391349">Chromium instellen als je standaardbrowser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium bèta</translation>
+<translation id="544968170749360982">Je bent ingelogd met een nieuw-account in de ruimte van <ph name="EXISTING_USER" />. Wil je een nieuwe Chromium-ruimte voor <ph name="NEW_USER" /> maken zodat je je gegevens gescheiden kunt houden?</translation>
 <translation id="5479196819031988440">Chromium OS kan deze pagina niet openen.</translation>
 <translation id="5480860683791598150">Chromium heeft toegang tot je locatie nodig om je locatie met deze site te delen</translation>
 <translation id="549669000822060376">Wacht terwijl Chromium de nieuwste systeemupdates installeert.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium kan je gegevens niet synchroniseren door een fout tijdens het inloggen.</translation>
 <translation id="6096348254544841612">Chromium aanpassen en beheren. Update is beschikbaar</translation>
 <translation id="6120345080069858279">Chromium slaat dit wachtwoord op in je Google-account. Je hoeft het niet te onthouden.</translation>
+<translation id="6128834065531097268">Je bent ingelogd met een werkaccount in de ruimte van <ph name="EXISTING_USER" />. Wil je een nieuwe Chromium-ruimte voor <ph name="WORK_DOMAIN" /> maken zodat je je gegevens gescheiden kunt houden?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> is gevaarlijk en is daarom door Chromium geblokkeerd.</translation>
 <translation id="6134968993075716475">Safe Browsing is uitgeschakeld. Chromium raadt je aan deze functie in te schakelen.</translation>
 <translation id="6212496753309875659">Deze computer beschikt al over een recentere versie van Chromium. Als de software niet werkt, moet je Chromium verwijderen en het opnieuw proberen.</translation>
@@ -198,6 +202,7 @@
 <translation id="7549178288319965365">Over Chromium OS</translation>
 <translation id="7561906087460245826">Ook gegevens van Chromium wissen (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Kijk je in de <ph name="LINK_BEGIN" />Chromium OS-instellingen<ph name="LINK_END" />als je een instelling niet ziet op deze pagina.</translation>
+<translation id="7607142834923530546">Je bent ingelogd met een werkaccount. Wil je een nieuwe Chromium-ruimte voor <ph name="NEW_USER" /> maken zodat je je persoonlijke gegevens gescheiden kunt houden?</translation>
 <translation id="761356813943268536">Chromium gebruikt je camera en microfoon.</translation>
 <translation id="7617377681829253106">Chromium is nu nog beter</translation>
 <translation id="7628001322379820951">Chromium heeft schadelijke software gevonden op je computer</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index a7c5822..c63a7a2 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Valgfritt: Bidra til å gjøre funksjonene og ytelsen til Chromium OS bedre ved å sende diagnostikk og bruksdata automatisk til Google.</translation>
 <translation id="2347108572062610441">Denne utvidelsen har endret hvilken side som vises når du starter Chromium.</translation>
 <translation id="2396765026452590966">Utvidelsen «<ph name="EXTENSION_NAME" />» har endret hvilken side som vises når du starter Chromium.</translation>
+<translation id="2442081746662839303">Vil du opprette et nytt Chromium-område for <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">I Chromium</translation>
 <translation id="2485422356828889247">Avinstaller</translation>
 <translation id="2527042973354814951">Start Chromium på nytt for å slå på <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium er i bakgrunnsmodus.</translation>
 <translation id="4987820182225656817">Gjester kan bruke Chromium uten å etterlate seg spor.</translation>
 <translation id="4994636714258228724">Legg til deg selv i Chromium</translation>
+<translation id="5053724573690775822">Vil du opprette et nytt Chromium-arbeidsområde?</translation>
 <translation id="5224391634244552924">Ingen lagrede passord. Chromium kan sjekke passordene dine når du lagrer dem.</translation>
 <translation id="5277894862589591112">For å bruke endringene dine må du starte Chromium på nytt</translation>
 <translation id="5358375970380395591">Du logger deg på med en administrert konto og gir tilhørende administratorer kontroll over Chromium-profilen din. Chromium-dataene dine, slik som apper, bokmerker, loggen, passord og andre innstillinger, knyttes permanent til <ph name="USER_NAME" />. Du kan slette disse dataene via oversikten for Google-kontoer, men du kan ikke knytte disse dataene til en annen konto. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium kan ikke vise forhåndsvisningen av utskrift når det innebygde PDF-visningsprogrammet mangler.</translation>
 <translation id="5427571867875391349">Bruk Chromium som standard nettleser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – betaversjon av Chromium</translation>
+<translation id="544968170749360982">Du har logget på med en ny konto på området til <ph name="EXISTING_USER" />. Vil du opprette et nytt Chromium-område for <ph name="NEW_USER" /> for å holde dataene dine atskilt?</translation>
 <translation id="5479196819031988440">Chromium OS kan ikke åpne denne siden.</translation>
 <translation id="5480860683791598150">Chromium trenger tilgang til posisjonen din for å kunne dele den med dette nettstedet</translation>
 <translation id="549669000822060376">Vent mens Chromium installerer de nyeste systemoppdateringene.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium kunne ikke synkronisere dataene dine på grunn av en feil under påloggingen.</translation>
 <translation id="6096348254544841612">Tilpass og kontrollér Chromium. Oppdatering er tilgjengelig.</translation>
 <translation id="6120345080069858279">Chromium lagrer dette passordet i Google-kontoen din, så du trenger ikke å huske det.</translation>
+<translation id="6128834065531097268">Du har logget på med en jobbkonto på området til <ph name="EXISTING_USER" />. Vil du opprette et nytt Chromium-område for <ph name="WORK_DOMAIN" /> for å holde dataene dine atskilt?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> er farlig, så Chromium har blokkert den.</translation>
 <translation id="6134968993075716475">Safe Browsing er slått av. Chromium anbefaler at du slår det på.</translation>
 <translation id="6212496753309875659">Denne datamaskinen har allerede en nyere versjon av Chromium. Hvis programvaren ikke fungerer, må du avinstallere Chromium og prøve på nytt.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Fjern dataene fra Chromium også (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Hvis en innstilling ikke vises på denne siden, kan du gå til <ph name="LINK_BEGIN" />
     innstillingene for Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Du har logget på med en jobbkonto. Vil du opprette et nytt Chromium-område for <ph name="NEW_USER" /> for å holde de personlige dataene dine atskilt?</translation>
 <translation id="761356813943268536">Chromium bruker kameraet og mikrofonen din.</translation>
 <translation id="7617377681829253106">Nå er Chromium blitt enda bedre</translation>
 <translation id="7628001322379820951">Chromium fant skadelig programvare på datamaskinen</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index df6c1dba..317e4fda 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">ਵਿਕਲਪਿਕ: ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸ਼ਖੀਸੀ ਅਤੇ ਵਰਤੋਂ ਡਾਟਾ Google ਨੂੰ ਭੇਜ ਕੇ Chromium OS ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ।</translation>
 <translation id="2347108572062610441">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੇ ਤੁਹਾਡੇ ਵੱਲੋਂ Chromium ਸ਼ੁਰੂ ਕੀਤੇ ਜਾਣ ਵੇਲੇ ਦਿਖਾਏ ਗਏ ਪੰਨੇ ਨੂੰ ਬਦਲ ਦਿੱਤਾ ਹੈ।</translation>
 <translation id="2396765026452590966">ਐਕਸਟੈਂਸ਼ਨ "<ph name="EXTENSION_NAME" />" ਬਦਲਿਆ ਗਿਆ ਹੈ ਕਿ ਕਿਹੜਾ ਸਫ਼ਾ ਦਿਖਾਇਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ Chromium ਚਾਲੂ ਕਰਦੇ ਹੋ।</translation>
+<translation id="2442081746662839303">ਕੀ <ph name="NEW_USER" /> ਲਈ ਨਵੀਂ Chromium ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਹੈ?</translation>
 <translation id="2483889755041906834">Chromium ਵਿੱਚ</translation>
 <translation id="2485422356828889247">ਅਣਸਥਾਪਤ ਕਰੋ</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ Chromium ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium ਪਿਛੋਕੜ ਮੋਡ ਵਿੱਚ ਹੈ।</translation>
 <translation id="4987820182225656817">ਮਹਿਮਾਨ ਕੁਝ ਵੀ ਪਿੱਛੇ ਛੱਡੇ ਬਿਨਾਂ Chromium ਵਰਤ ਸਕਦੇ ਹਨ।</translation>
 <translation id="4994636714258228724">ਖੁਦ ਨੂੰ Chromium ਵਿੱਚ ਜੋੜੋ</translation>
+<translation id="5053724573690775822">ਕੀ ਨਵੀਂ Chromium ਕਾਰਜ ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਹੈ?</translation>
 <translation id="5224391634244552924">ਕੋਈ ਰੱਖਿਅਤ ਕੀਤਾ ਪਾਸਵਰਡ ਨਹੀਂ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨ 'ਤੇ Chromium ਉਹਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ।</translation>
 <translation id="5277894862589591112">ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਲਾਗੂ ਕਰਨ ਲਈ, Chromium ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ</translation>
 <translation id="5358375970380395591">ਤੁਸੀਂ ਇੱਕ ਪ੍ਰਬੰਧਿਤ ਕੀਤੇ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰ ਰਹੇ ਹੋ ਅਤੇ ਇਸ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਆਪਣੇ Chromium ਪ੍ਰੋਫਾਈਲ ਦਾ ਕੰਟਰੋਲ ਦੇ ਰਹੇ ਹੋ। ਤੁਹਾਡਾ Chromium ਡਾਟਾ, ਜਿਵੇਂ ਕਿ ਤੁਹਾਡੀਆਂ ਐਪਾਂ, ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ, ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ <ph name="USER_NAME" /> ਨਾਲ ਸਥਾਈ ਤੌਰ 'ਤੇ ਜੋੜੇ ਜਾਣਗੇ। ਤੁਸੀਂ ਇਸ ਡਾਟੇ ਨੂੰ Google ਖਾਤੇ ਡੈਸ਼ਬੋਰਡ ਰਾਹੀਂ ਮਿਟਾ ਸਕੋਗੇ, ਪਰ ਤੁਸੀਂ ਇਸ ਡਾਟੇ ਨੂੰ ਦੂਜੇ ਖਾਤੇ ਨਾਲ ਨਹੀਂ ਜੋੜ ਸਕੋਗੇ। <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">ਬਿਲਟ-ਇਨ PDF ਦੇ ਮੌਜੂਦ ਨਾ ਹੋਣ 'ਤੇ Chromium ਪ੍ਰਿੰਟ ਦੀ ਪੂਰਵ-ਝਲਕ ਨਹੀਂ ਦਿਖਾ ਸਕਦਾ।</translation>
 <translation id="5427571867875391349">Chromium ਨੂੰ ਆਪਣੇ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕਰੋ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ਬੀਟਾ</translation>
+<translation id="544968170749360982">ਤੁਸੀਂ <ph name="EXISTING_USER" /> ਦੀ ਜਗ੍ਹਾ 'ਤੇ ਨਵੇਂ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="NEW_USER" /> ਵਾਸਤੇ ਨਵੀਂ Chromium ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="5479196819031988440">Chromium OS ਇਸ ਪੰਨੇ ਨੂੰ ਨਹੀਂ ਖੋਲ੍ਹ ਸਕਦਾ।</translation>
 <translation id="5480860683791598150">ਇਸ ਸਾਈਟ ਨਾਲ ਤੁਹਾਡਾ ਟਿਕਾਣਾ ਸਾਂਝਾ ਕਰਨ ਲਈ Chromium ਨੂੰ ਤੁਹਾਡੇ ਟਿਕਾਣੇ 'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="549669000822060376">ਕਿਰਪਾ ਕਰਕੇ ਠਹਿਰੋ ਜਦੋਂ Chromium ਨਵੀਆਂ ਸਿਸਟਮ ਅਪਡੇਟਾਂ ਇੰਸਟੌਲ ਕਰ ਰਿਹਾ ਹੋਵੇ।</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chrome ਸਾਈਨ-ਇਨ ਕਰਨ ਵੇਲੇ ਇੱਕ ਗੜਬੜ ਹੋਣ ਕਾਰਨ ਤੁਹਾਡਾ ਡਾਟਾ ਸਿੰਕ ਨਹੀਂ ਹੋ ਸਕਿਆ।</translation>
 <translation id="6096348254544841612">Chromium ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰਕੇ ਕੰਟਰੋਲ ਕਰੋ। ਅੱਪਡੇਟ ਉਪਲਬਧ ਹੈ।</translation>
 <translation id="6120345080069858279">Chromium ਇਸ ਪਾਸਵਰਡ ਨੂੰ ਤੁਹਾਡੇ 'Google ਖਾਤੇ' ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੇਗਾ। ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਯਾਦ ਨਹੀਂ ਰੱਖਣਾ ਪਵੇਗਾ।</translation>
+<translation id="6128834065531097268">ਤੁਸੀਂ <ph name="EXISTING_USER" /> ਦੀ ਜਗ੍ਹਾ 'ਤੇ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="WORK_DOMAIN" /> ਵਾਸਤੇ ਨਵੀਂ Chromium ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ਖਤਰਨਾਕ ਹੈ, ਇਸ ਲਈ Chromium ਨੇ ਇਸਨੂੰ ਬਲੌਕ ਕਰ ਦਿੱਤਾ ਹੈ।</translation>
 <translation id="6134968993075716475">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬੰਦ ਹੈ। Chromium ਇਸਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation>
 <translation id="6212496753309875659">ਇਸ ਕੰਪਿਊਟਰ ਵਿੱਚ ਪਹਿਲਾਂ ਹੀ Chromium ਦਾ ਇੱਕ ਬਿਲਕੁਲ ਨਵਾਂ ਵਰਜਨ ਹੈ। ਜੇਕਰ ਸਾਫ਼ਟਵੇਅਰ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ Chromium ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium (<ph name="URL" />) ਤੋਂ ਵੀ ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="7585853947355360626">ਜੇ ਇਸ ਪੰਨੇ 'ਤੇ ਸੈਟਿੰਗ ਨਹੀਂ ਦਿਸਦੀ, ਤਾਂ ਆਪਣੀਆਂ <ph name="LINK_BEGIN" />
       Chromium OS ਸੈਟਿੰਗਾਂ<ph name="LINK_END" /> ਵਿੱਚ ਦੇਖੋ</translation>
+<translation id="7607142834923530546">ਤੁਸੀਂ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਨਿੱਜੀ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="NEW_USER" /> ਵਾਸਤੇ ਨਵੀਂ Chromium ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="761356813943268536">Chromium ਤੁਹਾਡਾ ਕੈਮਰਾ ਅਤੇ ਮਾਈਕ੍ਰੋਫੋਨ ਵਰਤ ਰਿਹਾ ਹੈ।</translation>
 <translation id="7617377681829253106">Chromium ਬਿਹਤਰ ਬਣ ਗਿਆ ਹੈ</translation>
 <translation id="7628001322379820951">Chromium ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਲੱਭਿਆ ਹੈ</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index 987e04c..4777d3c 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Opțional: contribuie la îmbunătățirea funcțiilor și a performanței sistemului de operare Chromium, trimițând automat date de diagnosticare și de utilizare la Google.</translation>
 <translation id="2347108572062610441">Această extensie a modificat ce pagină se afișează când pornești Chromium.</translation>
 <translation id="2396765026452590966">Extensia „<ph name="EXTENSION_NAME" />” a modificat ce pagină se afișează când pornești Chromium.</translation>
+<translation id="2442081746662839303">Creezi un spațiu în Chromium pentru <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">În Chromium</translation>
 <translation id="2485422356828889247">Dezinstalează</translation>
 <translation id="2527042973354814951">Repornește Chromium pentru a activa <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium este în modul fundal.</translation>
 <translation id="4987820182225656817">Invitații pot folosi Chromium fără a lăsa nicio urmă.</translation>
 <translation id="4994636714258228724">Adăugați-vă la Chromium</translation>
+<translation id="5053724573690775822">Creezi un spațiu de lucru în Chromium?</translation>
 <translation id="5224391634244552924">Nu există parole salvate. Chromium îți poate verifica parolele dacă le salvezi.</translation>
 <translation id="5277894862589591112">Pentru a aplica modificările, relansează Chromium</translation>
 <translation id="5358375970380395591">Vă conectați cu un cont gestionat și îi permiteți administratorului acestuia controlul asupra profilului dvs. Chromium. Datele Chromium, cum ar fi aplicațiile, marcajele, istoricul, parolele și alte setări vor fi asociate definitiv cu <ph name="USER_NAME" />. Veți putea să ștergeți aceste date prin intermediul Tabloului de bord pentru Conturi Google, însă nu veți putea să asociați aceste date cu alt cont. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium nu poate afișa previzualizarea înainte de printare când vizualizatorul PDF încorporat lipsește.</translation>
 <translation id="5427571867875391349">Setați Chromium ca browser prestabilit</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
+<translation id="544968170749360982">Te-ai conectat cu un cont de serviciu la spațiul utilizatorului <ph name="EXISTING_USER" />. Vrei să creezi un spațiu în Chromium pentru <ph name="NEW_USER" /> ca să păstrezi datele separat?</translation>
 <translation id="5479196819031988440">Sistemul de operare Chromium nu poate deschide pagina.</translation>
 <translation id="5480860683791598150">Chromium are nevoie de acces la locația ta ca să permită accesul la locație pentru acest site</translation>
 <translation id="549669000822060376">Așteaptă până când Chromium instalează cele mai recente actualizări de sistem.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium nu a putut sincroniza datele din cauza unei erori la conectare.</translation>
 <translation id="6096348254544841612">Personalizează și controlează Chromium. Este disponibilă o actualizare.</translation>
 <translation id="6120345080069858279">Chromium va salva parola în Contul tău Google. Nu va trebui să o reții.</translation>
+<translation id="6128834065531097268">Te-ai conectat cu un cont de serviciu la spațiul utilizatorului <ph name="EXISTING_USER" />. Vrei să creezi un spațiu în Chromium pentru <ph name="WORK_DOMAIN" /> ca să păstrezi datele separat?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> este periculos, așadar Chromium l-a blocat.</translation>
 <translation id="6134968993075716475">Navigarea sigură este dezactivată. Chromium îți recomandă s-o activezi.</translation>
 <translation id="6212496753309875659">Acest computer are deja o versiune mai recentă de Chromium. Dacă software-ul nu funcționează, dezinstalați Chromium și încercați din nou.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Șterge și datele din Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Dacă o setare nu apare în pagină, încearcă <ph name="LINK_BEGIN" />
     setările sistemului de operare Chromium<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Te-ai conectat cu un cont de serviciu. Vrei să creezi un spațiu în Chromium pentru <ph name="NEW_USER" /> ca să păstrezi datele cu caracter personal separat?</translation>
 <translation id="761356813943268536">Chromium utilizează camera foto și microfonul.</translation>
 <translation id="7617377681829253106">Chromium a devenit și mai bun</translation>
 <translation id="7628001322379820951">Chromium a găsit software dăunător pe computer</translation>
diff --git a/chrome/app/resources/chromium_strings_si.xtb b/chrome/app/resources/chromium_strings_si.xtb
index ce28059..0d5262bde 100644
--- a/chrome/app/resources/chromium_strings_si.xtb
+++ b/chrome/app/resources/chromium_strings_si.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">විකල්පමය: Google වෙත දෝෂහරණ සහ භාවිතයේ දත්ත ස්වයංක්‍රීයව යැවීමෙන් Chromium OS විශේෂාංග සහ ක්‍රියාකාරිත්වය වැඩි දියුණු කිරීමට උදවු කරන්න.</translation>
 <translation id="2347108572062610441">මෙම දිගුව විසින් ඔබ Chromium ආරම්භ කරන විට පෙන්වන පිටුව වෙනස් කර ඇත.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" දිගුව විසින් ඔබ Chromium ආරම්භ කරන විට පෙන්වන පිටුව වෙනස් කර ඇත.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> සඳහා නව Chromium ඉඩක් තනන්නද?</translation>
 <translation id="2483889755041906834">Chromium තුළ</translation>
 <translation id="2485422356828889247">අස්ථාපනය</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> සබල කිරීමට Chromium යළි අරඹන්න</translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium පසුබිම් ප්‍රකාරය තුළ ඇත.</translation>
 <translation id="4987820182225656817">අමුත්තන්ට කිසිවක් තබා යෑමෙන් තොරව Chromium භාවිත කළ හැක.</translation>
 <translation id="4994636714258228724">ඔබව Chromium වෙත එක් කරන්න</translation>
+<translation id="5053724573690775822">නව Chromium වැඩ ඉඩක් තනන්නද?</translation>
 <translation id="5224391634244552924">සුරැකි මුරපද නැත. ඔබ ඔබේ මුරපද පරීක්‍ෂා කරන විට Chromium හට ඒවා පරීක්‍ෂා කළ හැක.</translation>
 <translation id="5277894862589591112">ඔබේ වෙනස්කම් යෙදීමට, Chromium නැවත දියත් කරන්න</translation>
 <translation id="5358375970380395591">ඔබ කළමනාකරණය කළ ගිණුමක් සමගින් පුරමින් සිටින අතර ඔබේ Chromium පැතිකඩට වැඩියෙන් එහි පරිපාලක පාලනය ලබා දෙමින් සිටී. යෙදුම්, පිටු සලකුණු, ඉතිහාසය, රහස්වචන, සහ අනෙකුත් සැකසුම් වැනි ඔබේ Chromium දත්ත ස්ථිරවම <ph name="USER_NAME" /> වෙත බැඳෙනු ඇත. Google ගිණුම් පසුරු පුවරුව හරහා මෙම දත්ත මැකීමට ඔබට හැකි වනු ඇත, නමුත් ඔබට මෙම දත්ත වෙනත් ගිණුමක් සමඟ සම්බන්ධ කළ නොහැකි වනු ඇත. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">තිළැලි PDF දර්ශකය නොමැති විට Chromium හට මුද්‍රණ පෙරදසුන පෙන්විය නොහැක.</translation>
 <translation id="5427571867875391349">Chromium ඔබේ පෙරනිමි බ්‍රව්සරය ලෙස සකසන්න</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium බීටා</translation>
+<translation id="544968170749360982">ඔබ <ph name="EXISTING_USER" />ගේ ඉඩ තුළ නව ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ දත්ත වෙන්ව තබා ගැනීමට <ph name="NEW_USER" /> සඳහා නව Chromium ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="5479196819031988440">Chromium OS හට මෙම පිටුව විවෘත කළ නොහැකිය.</translation>
 <translation id="5480860683791598150">Chromium හට මෙම අඩවිය සමඟ ඔබේ ස්ථානය බෙදා ගැනීමට ඔබේ ස්ථානයට ප්‍රවේශය අවශ්‍යයි</translation>
 <translation id="549669000822060376">කරුණාකර Chromium නවතම පද්ධති යාවත්කාලීන ස්ථාපනය කරන අතරතුර රැඳී සිටින්න.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium හට පිරීමේ දෝෂයක් හේතුවෙන් ඔබගේ දත්ත සමමුහුර්ත කළ නොහැකි විය.</translation>
 <translation id="6096348254544841612">Chromium අභිරුචිකරණය සහ පාලනය කරන්න. යාවත්කාලීන ලද හැකිය.</translation>
 <translation id="6120345080069858279">Chromium මෙම මුරපදය ඔබගේ Google ගිණුම සමගින් සුරකිනු ඇත. ඔබට එය මතක තබා ගැනීමට සිදු නොවේ.</translation>
+<translation id="6128834065531097268">ඔබ <ph name="EXISTING_USER" />ගේ ඉඩ තුළ කාර්යාල ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ දත්ත වෙන්ව තබා ගැනීමට <ph name="WORK_DOMAIN" /> සඳහා නව Chromium ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> අනතුරුදායකයි, එම නිසා Chromium එය අවහිර කර ඇත.</translation>
 <translation id="6134968993075716475">සුරක්ෂිත පිරික්සුම ක්‍රියාවිරහිතයි. එය ක්‍රියාත්මක කිරීමට Chromium නිර්දේශ කරයි.</translation>
 <translation id="6212496753309875659">මෙම පරිගණකය සතුව දැනටමත් නව Chromium සංස්කරණයක් පවතී. මෘදුකාංගය ක්‍රියා නොකරයි නම් කරුණාකර Chromium ඉවත්කර නැවත උත්සහ කරන්න.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Chromium වෙතින් ද දත්ත හිස් කරන්න (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">මෙම පිටුවෙහි සැකසීමක් නොපෙන්වන්නේ නම්, ඔබේ <ph name="LINK_BEGIN" />
       Chromium OS සැකසීම්<ph name="LINK_END" /> තුළ සොයා බලන්න</translation>
+<translation id="7607142834923530546">ඔබ කාර්යාල ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ පුද්ගලික දත්ත වෙන්ව තබා ගැනීමට <ph name="NEW_USER" /> සඳහා නව Chromium ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="761356813943268536">Chromium ඔබේ කැමරාව හා මයික්‍රෆෝනය භාවිත කරයි.</translation>
 <translation id="7617377681829253106">Chromium වඩා යහපත් විය</translation>
 <translation id="7628001322379820951">Chromium හට ඔබේ පරිගණකයේ හානිකර මෘදුකාංග හමු විය</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index ea893fa..4fcba6d 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Izbirno: Pomagajte izboljšati funkcije sistema Chromium OS in njegovo delovanje s samodejnim pošiljanjem diagnostičnih podatkov in podatkov o uporabi Googlu.</translation>
 <translation id="2347108572062610441">Zaradi te razširitve se je spremenila stran, ki je prikazana, ko zaženete Chromium.</translation>
 <translation id="2396765026452590966">Zaradi razširitve »<ph name="EXTENSION_NAME" />« se je spremenila stran, ki je prikazana, ko zaženete Chromium.</translation>
+<translation id="2442081746662839303">Želite ustvariti nov prostor v Chromiumu za uporabnika <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">V Chromiumu</translation>
 <translation id="2485422356828889247">Odmeščanje</translation>
 <translation id="2527042973354814951">Znova zaženite Chromium, če želite omogočiti <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium se izvaja v ozadju.</translation>
 <translation id="4987820182225656817">Gostje lahko uporabljajo Chromium, ne da bi za seboj pustili kar koli.</translation>
 <translation id="4994636714258228724">Dodajte se v Chromium</translation>
+<translation id="5053724573690775822">Želite ustvariti nov službeni prostor v Chromiumu?</translation>
 <translation id="5224391634244552924">Ni shranjenih gesel. Chromium lahko preveri gesla, če jih shranite.</translation>
 <translation id="5277894862589591112">Če želite uporabiti spremembe, znova zaženite Chromium</translation>
 <translation id="5358375970380395591">Prijavljate se z upravljanim računom in s tem njegovemu skrbniku omogočate nadzor vašega profila v Chromiumu. Vaši podatki v Chromiumu, kot so aplikacije, zaznamki, zgodovina, gesla in druge nastavitve, bodo postali trajno povezani z uporabnikom <ph name="USER_NAME" />. Te podatke boste lahko izbrisali na nadzorni plošči za Google Račune, vendar jih ne boste mogli povezati z drugim računom. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium ne more pokazati predogleda tiskanja, če ni vgrajenega pregledovalnika datotek PDF.</translation>
 <translation id="5427571867875391349">Nastavitev Chromiuma za privzeti brskalnik</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – različica beta Chromiuma</translation>
+<translation id="544968170749360982">V prostor uporabnika <ph name="EXISTING_USER" /> ste se prijavili z novim računom. Ali želite ustvariti nov prostor v Chromiumu za uporabnika <ph name="NEW_USER" />, da bodo podatki ločeni?</translation>
 <translation id="5479196819031988440">OS Chromium ne more odpreti te strani.</translation>
 <translation id="5480860683791598150">Chromium potrebuje dostop do vaše lokacije, da jo bo lahko delil s tem spletnim mestom</translation>
 <translation id="549669000822060376">Počakajte, da Chromium namesti najnovejše sistemske posodobitve.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium ni mogel sinhronizirati podatkov zaradi napake pri prijavi.</translation>
 <translation id="6096348254544841612">Prilagodite in nadzirajte Chromium. Posodobitev je na voljo.</translation>
 <translation id="6120345080069858279">Chromium bo shranil to geslo v Google Računu. Ni si vam ga treba zapomniti.</translation>
+<translation id="6128834065531097268">V prostor uporabnika <ph name="EXISTING_USER" /> ste se prijavili s službenim računom. Ali želite ustvariti nov prostor v Chromiumu za domeno <ph name="WORK_DOMAIN" />, da bodo podatki ločeni?</translation>
 <translation id="6129621093834146363">Datoteka <ph name="FILE_NAME" /> je nevarna, zato jo je Chromium blokiral.</translation>
 <translation id="6134968993075716475">Varno brskanje je izklopljeno. Chromium priporoča, da ga vklopite.</translation>
 <translation id="6212496753309875659">Ta računalnik že ima novejšo različico Chromiuma. Če programska oprema ne deluje, odstranite Chromium in poskusite znova.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Počisti tudi podatke iz Chromiuma (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Če nastavitev ni prikazana na tej strani, preverite <ph name="LINK_BEGIN" />
       nastavitve operacijskega sistema Chromium<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Prijavili ste se s službenim računom. Ali želite ustvariti nov prostor v Chromiumu za domeno <ph name="NEW_USER" />, da bodo osebni podatki ločeni?</translation>
 <translation id="761356813943268536">Chromium uporablja vašo kamero in mikrofon.</translation>
 <translation id="7617377681829253106">Chromium je pravkar postal še boljši</translation>
 <translation id="7628001322379820951">Chromium je v računalniku odkril škodljivo programsko opremo</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index a944cd7..bdec59b0 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">Valfritt: Skicka diagnostik- och användningsdata automatiskt till Google och hjälp oss att förbättra funktioner och prestanda i Chromium OS.</translation>
 <translation id="2347108572062610441">Det här tillägget har ändrat vilken sida som visas när du startar Chromium.</translation>
 <translation id="2396765026452590966">Tillägget <ph name="EXTENSION_NAME" /> har ändrat vilken sida som visas när du startar Chromium.</translation>
+<translation id="2442081746662839303">Vill du skapa en ny Chromium-profil för <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">I Chromium</translation>
 <translation id="2485422356828889247">Avinstallera</translation>
 <translation id="2527042973354814951">Starta om Chromium om du vill aktivera <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium körs i bakgrundsläge.</translation>
 <translation id="4987820182225656817">Gäster kan använda Chromium utan att lämna spår efter sig.</translation>
 <translation id="4994636714258228724">Lägg till dig själv i Chromium</translation>
+<translation id="5053724573690775822">VIll du skapa en ny jobbprofil i Chromium?</translation>
 <translation id="5224391634244552924">Inga sparade lösenord. Chromium kan bara kontrollera dina lösenord om du sparar dem.</translation>
 <translation id="5277894862589591112">Ändringarna tillämpas när du startar om Chromium</translation>
 <translation id="5358375970380395591">Du loggar in med ett hanterat konto och ger dess administratör kontroll över din Chromium-profil. Dina uppgifter i Chromium, t.ex. dina appar, bokmärken, din historik, ditt lösenord och andra inställningar, kopplas då permanent till <ph name="USER_NAME" />. Du kommer att kunna ta bort dessa uppgifter via instrumentpanelen i Google Konton, men du kommer inte att kunna koppla dem till något annat konto. <ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">Chromium kan inte visa förhandsgranskning av en utskrift när det inbyggda PDF-visningsprogrammet saknas.</translation>
 <translation id="5427571867875391349">Använd Chromium som standardwebbläsare</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
+<translation id="544968170749360982">Du har loggat in med ett nytt konto i profilen som tillhör <ph name="EXISTING_USER" /> Vill du skapa en ny Chromium-profil för <ph name="NEW_USER" /> så att uppgifterna hålls åtskilda?</translation>
 <translation id="5479196819031988440">Det går inte att öppna den här sidan i Chromium OS.</translation>
 <translation id="5480860683791598150">Du behöver ge Chromium åtkomst till din plats om den ska kunna delas med webbplatsen</translation>
 <translation id="549669000822060376">Vänta medan de senaste systemuppdateringarna installeras av Chromium.</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">Chromium kunde inte synkronisera data på grund av ett fel vid inloggningen.</translation>
 <translation id="6096348254544841612">Anpassa och styr Chromium. En uppdatering är tillgänglig.</translation>
 <translation id="6120345080069858279">Det här lösenordet sparas i ditt Google-konto. Du behöver inte komma ihåg det.</translation>
+<translation id="6128834065531097268">Du loggade in med ett jobbkonto i den profil som tillhör <ph name="EXISTING_USER" />. Vill du skapa en ny Chromium-profil för <ph name="WORK_DOMAIN" /> så att uppgifterna hålls åtskilda?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> är skadlig och har blockerats av Chromium.</translation>
 <translation id="6134968993075716475">Säker webbsökning har inaktiverats. Du rekommenderas att aktivera funktionen i Chromium.</translation>
 <translation id="6212496753309875659">Det finns redan en nyare version av Chromium på den här datorn. Avinstallera Chromium och försök igen om programvaran inte fungerar.</translation>
@@ -199,6 +203,7 @@
 <translation id="7561906087460245826">Rensa även data från Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Om en inställning saknas på den här sidan tittar du i <ph name="LINK_BEGIN" />
       inställningarna för Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Du har loggat in med ett jobbkonto. Vill du skapa en ny Chromium-profil för <ph name="NEW_USER" /> så att privata uppgifter hålls för sig?</translation>
 <translation id="761356813943268536">Chromium använder din kamera och mikrofon.</translation>
 <translation id="7617377681829253106">Vi har förbättrat Chromium</translation>
 <translation id="7628001322379820951">Chromium har upptäckt skadlig programvara på datorn</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index 9ff78552..46ceb3c 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">விரும்பினால்: பிழை அறிக்கைகளையும் உபயோகத் தரவையும் Googleளுக்குத் தானாக அனுப்புவதன் மூலம் Chromium OSஸின் அம்சங்களையும் செயல்திறனையும் மேம்படுத்த உதவலாம்.</translation>
 <translation id="2347108572062610441">Chromiumஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation>
 <translation id="2396765026452590966">Chromiumஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை, "<ph name="EXTENSION_NAME" />" நீட்டிப்பு மாற்றியுள்ளது.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" />க்கு Chromium ஸ்பேஸை உருவாக்கவா?</translation>
 <translation id="2483889755041906834">Chromium இல்</translation>
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ஐ இயக்க Chromiumஐ மீண்டும் தொடங்குக</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium பின்புல பயன்முறையில் இயங்குகிறது.</translation>
 <translation id="4987820182225656817">எதையும் விட்டுசெல்லாமல் கெஸ்ட் பயனர்கள் Chromium ஐப் பயன்படுத்தலாம்.</translation>
 <translation id="4994636714258228724">உங்களை Chromium இல் சேர்க்கவும்</translation>
+<translation id="5053724573690775822">புதிய Chromium பணியிடத்தை உருவாக்கவா?</translation>
 <translation id="5224391634244552924">சேமித்த கடவுச்சொற்கள் எதுவுமில்லை. நீங்கள் அவற்றைச் சேமிக்கும்போது Chromium உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation>
 <translation id="5277894862589591112">உங்கள் மாற்றங்களைச் செயல்படுத்த, Chromiumமை மீண்டும் தொடங்கவும்</translation>
 <translation id="5358375970380395591">நீங்கள் நிர்வகிக்கப்படும் கணக்கு மூலம் உள்நுழைகிறீர்கள், மேலும் அதன் நிர்வாகிக்கு உங்கள் Chromium சுயவிவரத்தின் கட்டுப்பாட்டை வழங்குகிறீர்கள். உங்கள் ஆப்ஸ், புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற உங்கள் Chromium தரவு மற்றும் பிற அமைப்புகள் நிரந்தரமாக <ph name="USER_NAME" /> உடன் இணைக்கப்படும். இந்தத் தரவை Google கணக்குகளின் டாஷ்போர்டு வழியாக நீக்க முடியும், ஆனால் இந்தத் தரவை வேறொரு கணக்குடன் தொடர்புபடுத்த முடியாது. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">உள்ளமைக்கப்பட்ட PDF வியூவர் இல்லையென்றால், Chromium அச்சிடல் மாதிரிக்காட்சியைக் காண்பிக்காது.</translation>
 <translation id="5427571867875391349">உங்கள் இயல்புநிலை உலாவியாக Chromium ஐ அமை</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium பீட்டா</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> இன் ஸ்பேஸில் புதிய கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="NEW_USER" /> டொமைனுக்கான புதிய Chromium ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="5479196819031988440">Chromium OS ஆல் இந்தப் பக்கத்தைத் திறக்க முடியாது.</translation>
 <translation id="5480860683791598150">இந்தத் தளத்துடன் இருப்பிடத்தைப் பகிர Chromiumமுக்கு உங்கள் இருப்பிடத்திற்கான அணுகல் தேவை</translation>
 <translation id="549669000822060376">சமீபத்திய முறைமை புதுப்பிப்புகளை Chromium நிறுவும் வரை காத்திருக்கவும்.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">உள்நுழைவுப் பிழையின் காரணமாக உங்கள் தரவை Chromium ஆல் ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="6096348254544841612">Chromiumஐத் தனிப்பயனாக்கி, கட்டுப்படுத்தலாம். புதுப்பிப்பு உள்ளது.</translation>
 <translation id="6120345080069858279">Chromium இந்தக் கடவுச்சொல்லை உங்கள் Google கணக்கில் சேமிக்கும். அதை நீங்கள் நினைவில் வைத்திருக்கத் தேவையில்லை.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> இன் ஸ்பேஸில் பணிக் கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="WORK_DOMAIN" /> டொமைனுக்கான புதிய Chromium ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> ஆபத்தானது என்பதால் Chromium அதைத் தடுத்துள்ளது.</translation>
 <translation id="6134968993075716475">’பாதுகாப்பு உலாவல்‘ அம்சம் முடக்கப்பட்டுள்ளது. அதை இயக்குமாறு Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="6212496753309875659">இந்தக் கம்ப்யூட்டரில் ஏற்கனவே Chromiumமின் மிகச் சமீபத்திய பதிப்பு உள்ளது. மென்பொருள் இயங்கவில்லை எனில் Chromiumமை நிறுவல் நீக்கி, பின்னர் முயலவும்.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Chromiumமிலிருந்தும் தரவை அழி (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">இந்தப் பக்கத்தில் ஏதேனும் ஓர் அமைப்பு காட்டப்படவில்லை எனில் அதை <ph name="LINK_BEGIN" />
       Chromium OS அமைப்புகளில்<ph name="LINK_END" /> பார்க்கவும்</translation>
+<translation id="7607142834923530546">பணிக் கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தனிப்பட்ட தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="NEW_USER" /> டொமைனுக்கான புதிய Chromium ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="761356813943268536">Chromium உங்கள் கேமராவையும் மைக்ரோஃபோனையும் பயன்படுத்துகிறது.</translation>
 <translation id="7617377681829253106">Chromium இன்னும் சிறப்படைந்துள்ளது</translation>
 <translation id="7628001322379820951">உங்கள் கம்ப்யூட்டரில் தீங்கிழைக்கும் மென்பொருள் இருப்பதை Chromium கண்டறிந்துள்ளது</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 63d5dca..b3480eb5 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">ఆప్షనల్: విశ్లేషణ మరియు వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకు పంపడం ద్వారా Chromium OS ఫీచర్‌లు మరియు పనితీరును మెరుగుపరచడంలో సహాయపడండి.</translation>
 <translation id="2347108572062610441">ఈ పొడిగింపు మీరు Chromiumని ప్రారంభించినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
 <translation id="2396765026452590966"><ph name="EXTENSION_NAME" /> పొడిగింపు మీరు Chromiumని ప్రారంభించినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> కోసం కొత్త Chromium ప్రదేశాన్ని క్రియేట్ చేయాలా?</translation>
 <translation id="2483889755041906834">Chromiumలో</translation>
 <translation id="2485422356828889247">అన్ఇన్‌స్టాల్ చేయి</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ని ప్రారంభించడానికి Chromiumని పునఃప్రారంభించండి</translation>
@@ -103,6 +104,7 @@
 <translation id="4943838377383847465">Chromium నేపథ్య మోడ్‌లో ఉంది.</translation>
 <translation id="4987820182225656817">అతిథులు ఎటువంటి చరిత్రను వదలకుండానే Chromiumను ఉపయోగించవచ్చు.</translation>
 <translation id="4994636714258228724">Chromiumకు మిమ్మల్ని జోడించుకోండి</translation>
+<translation id="5053724573690775822">కొత్త Chromium వర్క్ స్పేస్‌ను క్రియేట్ చేయాలా?</translation>
 <translation id="5224391634244552924">సేవ్ చేసిన పాస్‌వర్డ్‌లు లేవు. మీరు మీ పాస్‌వర్డ్‌లను సేవ్ చేసినప్పుడు Chromium వాటిని చెక్ చేయగలదు.</translation>
 <translation id="5277894862589591112">మీ మార్పులను వర్తింపజేయడానికి, Chromiumని పునఃప్రారంభించండి</translation>
 <translation id="5358375970380395591">మీరు నిర్వహించబడే ఖాతాతో సైన్ ఇన్ చేస్తున్నారు. దీని నిర్వాహకునికి మీ Chromium ప్రొఫైల్‌పై నియంత్రణను అందిస్తున్నారు. మీ యాప్‌లు, బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌ల వంటి మీ Chromium డేటా శాశ్వతంగా <ph name="USER_NAME" />కు అనుబంధించబడుతుంది. మీరు Google ఖాతాల డాష్‌బోర్డ్ ద్వారా ఈ డేటాను తొలగించవచ్చు. కానీ ఈ డేటాను మరో ఖాతాతో అనుబంధించలేరు. <ph name="LEARN_MORE" /></translation>
@@ -112,6 +114,7 @@
 <translation id="5416696090975899932">అంతర్నిర్మిత PDF వ్యూయర్ లేనప్పుడు Chromium ముద్రణ ప్రివ్యూని చూపించదు.</translation>
 <translation id="5427571867875391349">Chromiumను మీ డిఫాల్ట్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium బీటా</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> ప్రదేశంలో కొత్త ఖాతాతో మీరు సైన్ ఇన్ చేశారు. మీ డేటాను వేరుగా సేవ్ చేయడానికి <ph name="NEW_USER" /> కోసం కొత్త Chromium ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="5479196819031988440">Chromium OS ఈ పేజీని తెరవలేదు.</translation>
 <translation id="5480860683791598150">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromiumకు మీ స్థాన యాక్సెస్ అవసరం</translation>
 <translation id="549669000822060376">దయచేసి Chromium తాజా సిస్టమ్ నవీకరణలను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
@@ -134,6 +137,7 @@
 <translation id="608189560609172163">సైన్ ఇన్ చేయడంలో ఎర్రర్ కారణంగా Chromium మీ డేటాను సింక్ చేయలేకపోయింది.</translation>
 <translation id="6096348254544841612">Chromiumను అనుకూలీకరించండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
 <translation id="6120345080069858279">Chromium ఈ పాస్‌వర్డ్‌ను మీ Google ఖాతాలో సేవ్ చేస్తుంది. మీరు దీనిని గుర్తుంచుకోవాల్సిన అవసరం లేదు.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> ప్రదేశంలో కార్యాలయ ఖాతాతో మీరు సైన్ ఇన్ చేశారు. మీ డేటాను వేరుగా సేవ్ చేయడానికి <ph name="WORK_DOMAIN" /> కోసం కొత్త Chromium ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> హానికరం, కావున Chromium దాన్ని బ్లాక్ చేసింది.</translation>
 <translation id="6134968993075716475">సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది. దాన్ని ఆన్ చేయమని Chromium సిఫార్సు చేస్తోంది.</translation>
 <translation id="6212496753309875659">ఈ కంప్యూటర్‌లో ఇప్పటికే మరింత తాజాదైన Chromium వెర్షన్ ఉంది. సాఫ్ట్‌వేర్ పని చేయకపోతే, దయచేసి Chromiumను అన్ఇన్‌స్టాల్ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
@@ -193,6 +197,7 @@
 <translation id="7561906087460245826">అలాగే (<ph name="URL" />)లో ఉన్న Chromiumకి సంబంధించిన డేటాని తీసివేయి</translation>
 <translation id="7585853947355360626">ఏదైనా సెట్టింగ్ ఈ పేజీలో కనపడకపోతే, మీ <ph name="LINK_BEGIN" />
       Chromium OS సెట్టింగ్‌లు<ph name="LINK_END" />లో చూడండి</translation>
+<translation id="7607142834923530546">మీరు కార్యాలయ ఖాతాతో సైన్ ఇన్ చేశారు. మీ వ్యక్తిగత డేటాను వేరుగా సేవ్ చేయడానికి <ph name="NEW_USER" /> కోసం కొత్త Chromium ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="761356813943268536">Chromium మీ కెమెరా మరియు మైక్రోఫోన్‌ని ఉపయోగిస్తోంది.</translation>
 <translation id="7617377681829253106">Chromium ఇప్పుడు మెరుగైంది</translation>
 <translation id="7628001322379820951">మీ కంప్యూటర్‌లో హానికరమైన సాప్ఠ్‌వేర్‌ను Chromium కనుగొన్నది</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 2212198..f0aed41 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">ไม่บังคับ: ช่วยปรับปรุงฟีเจอร์และประสิทธิภาพของ Chromium OS โดยการส่งข้อมูลการวินิจฉัยและการใช้งานให้ Google โดยอัตโนมัติ</translation>
 <translation id="2347108572062610441">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
 <translation id="2396765026452590966">ส่วนขยาย "<ph name="EXTENSION_NAME" />" ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
+<translation id="2442081746662839303">สร้างพื้นที่ใหม่ใน Chromium สำหรับ <ph name="NEW_USER" /> ไหม</translation>
 <translation id="2483889755041906834">ใน Chromium</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
 <translation id="2527042973354814951">รีสตาร์ท Chromium เพื่อเปิดใช้ <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium กำลังอยู่ในโหมดทำงานในพื้นหลัง</translation>
 <translation id="4987820182225656817">ผู้เยี่ยมชมสามารถใช้ Chromium โดยไม่ทิ้งร่องรอยไว้</translation>
 <translation id="4994636714258228724">เพิ่มตัวคุณเองใน Chromium</translation>
+<translation id="5053724573690775822">สร้างพื้นที่งานใหม่ใน Chromium ไหม</translation>
 <translation id="5224391634244552924">ไม่มีรหัสผ่านที่บันทึกไว้ Chromium จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกรหัสผ่านไว้</translation>
 <translation id="5277894862589591112">เปิด Chromium ขึ้นมาใหม่เพื่อให้การเปลี่ยนแปลงมีผล</translation>
 <translation id="5358375970380395591">คุณกำลังลงชื่อเข้าใช้ด้วยบัญชีที่จัดการ และให้การควบคุมระดับผู้ดูแลระบบของบัญชีดังกล่าวเหนือโปรไฟล์ Chromium ของคุณ ข้อมูล Chromium เช่น แอป บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะเชื่อมโยงอย่างถาวรกับ <ph name="USER_NAME" /> คุณจะสามารถลบข้อมูลนี้ผ่านทางแผงควบคุมบัญชี Google แต่คุณจะไม่สามารถเชื่อมโยงข้อมูลนี้กับบัญชีอื่น <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium แสดงหน้าตัวอย่างก่อนพิมพ์ไม่ได้หากไม่มีโปรแกรมดู PDF ในตัว</translation>
 <translation id="5427571867875391349">ตั้ง Chromium เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium เบต้า</translation>
+<translation id="544968170749360982">คุณลงชื่อเข้าใช้ด้วยบัญชีใหม่ในพื้นที่ของ <ph name="EXISTING_USER" /> คุณต้องการสร้างพื้นที่ใหม่ใน Chromium เพื่อให้ <ph name="NEW_USER" /> เก็บข้อมูลของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="5479196819031988440">Chromium OS ไม่สามารถเปิดหน้านี้</translation>
 <translation id="5480860683791598150">Chromium ต้องการสิทธิ์เข้าถึงตำแหน่งของคุณเพื่อแชร์ตำแหน่งกับเว็บไซต์นี้</translation>
 <translation id="549669000822060376">โปรดรอขณะที่ Chromium ติดตั้งการอัปเดตระบบล่าสุด</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากข้อผิดพลาดในการลงชื่อเข้าใช้</translation>
 <translation id="6096348254544841612">ปรับแต่งและควบคุม Chromium มีการอัปเดต</translation>
 <translation id="6120345080069858279">Chromium จะบันทึกรหัสผ่านนี้ในบัญชี Google คุณจะได้ไม่ต้องจำรหัสผ่านเอง</translation>
+<translation id="6128834065531097268">คุณลงชื่อเข้าใช้ด้วยบัญชีงานในพื้นที่ของ <ph name="EXISTING_USER" /> คุณต้องการสร้างพื้นที่ใหม่ใน Chromium เพื่อให้ <ph name="WORK_DOMAIN" /> เก็บข้อมูลของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> เป็นอันตราย Chromium จึงบล็อกไว้</translation>
 <translation id="6134968993075716475">Google Safe Browsing ปิดอยู่ Chromium ขอแนะนำให้เปิด</translation>
 <translation id="6212496753309875659">คอมพิวเตอร์เครื่องนี้ติดตั้ง Chromium รุ่นที่ใหม่กว่าอยู่แล้ว ถ้าซอฟต์แวร์ไม่ทำงาน โปรดถอนการติดตั้ง Chromium และลองอีกครั้ง</translation>
@@ -196,6 +200,7 @@
 <translation id="7549178288319965365">เกี่ยวกับ Chromium OS</translation>
 <translation id="7561906087460245826">ล้างข้อมูลจาก Chromium (<ph name="URL" />) ด้วย</translation>
 <translation id="7585853947355360626">หากการตั้งค่าไม่แสดงในหน้านี้ โปรดดูที่<ph name="LINK_BEGIN" />การตั้งค่า Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">คุณลงชื่อเข้าใช้ด้วยบัญชีงาน คุณต้องการสร้างพื้นที่ใหม่ใน Chromium เพื่อให้ <ph name="NEW_USER" /> เก็บข้อมูลส่วนตัวของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="761356813943268536">Chromium ใช้กล้องและไมโครโฟนของคุณอยู่</translation>
 <translation id="7617377681829253106">Chromium ดีขึ้นกว่าเดิม</translation>
 <translation id="7628001322379820951">Chromium พบซอฟต์แวร์ที่เป็นอันตรายในคอมพิวเตอร์ของคุณ</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index dfb0d93..8a0d9bf 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">İsteğe bağlı: Teşhis ve kullanım verilerini Google'a otomatik olarak göndererek Chromium OS özelliklerini ve performansını iyileştirmeye yardımcı olun.</translation>
 <translation id="2347108572062610441">Bu uzantı, Chromium'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" uzantısı, Chromium'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> için yeni Chromium alanı oluşturulsun mu?</translation>
 <translation id="2483889755041906834">Chromium'da</translation>
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> eklentisini etkinleştirmek için Chromium'u yeniden başlatın</translation>
@@ -103,6 +104,7 @@
 <translation id="4943838377383847465">Chromium arka plan modunda.</translation>
 <translation id="4987820182225656817">Misafirler Chromium'u geride hiçbir şey bırakmadan kullanabilir.</translation>
 <translation id="4994636714258228724">Kendinizi Chromium'a ekleyin</translation>
+<translation id="5053724573690775822">Yeni Chromium İş alanı oluşturulsun mu?</translation>
 <translation id="5224391634244552924">Kaydedilen şifre yok. Chromium, kaydetmeniz halinde şifrelerinizi kontrol edebilir.</translation>
 <translation id="5277894862589591112">Yaptığınız değişiklikleri uygulamak için Chromium'u yeniden başlatın</translation>
 <translation id="5358375970380395591">Yönetilen bir hesapla oturum açıyor ve hesabın yöneticisine Chromium profilinizi denetleme izni veriyorsunuz. Uygulamalarınız, yer işaretleriniz, geçmişiniz, şifreleriniz ve diğer ayarlarınız gibi Chromium verileriniz kalıcı olarak <ph name="USER_NAME" /> ile bağlantılandırılacaktır. Google Hesapları Hesap Özeti'ni kullanarak bu verileri silebilecek, ancak bu verileri başka bir hesapla ilişkilendiremeyeceksiniz. <ph name="LEARN_MORE" /></translation>
@@ -112,6 +114,7 @@
 <translation id="5416696090975899932">Chromium, dahili PDF görüntüleyici yokken baskı önizlemeyi gösteremez.</translation>
 <translation id="5427571867875391349">Chromium'u varsayılan tarayıcım olarak ayarla</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> adlı kullanıcının alanında yeni bir hesapla oturum açtınız. Verilerinizi ayrı tutmak amacıyla, <ph name="NEW_USER" /> için yeni bir Chromium alanı oluşturmak ister misiniz?</translation>
 <translation id="5479196819031988440">Chromium OS bu sayfayı açamıyor.</translation>
 <translation id="5480860683791598150">Konumunuzu bu siteyle paylaşabilmek için Chromium'un konum bilgilerinize erişmesi gerekiyor</translation>
 <translation id="549669000822060376">Chromium en son sistem güncellemelerini yüklerken lütfen bekleyin.</translation>
@@ -134,6 +137,7 @@
 <translation id="608189560609172163">Oturum açma sırasındaki bir hata nedeniyle Chromium, verilerinizi senkronize edemedi.</translation>
 <translation id="6096348254544841612">Chromium'u özelleştirin ve kontrol edin. Güncelleme mevcut.</translation>
 <translation id="6120345080069858279">Chromium, şifrenizi Google Hesabınızda kaydedecek. Bu şekilde şifreyi hatırlamanız gerekmez.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> adlı kullanıcının alanında bir İş hesabıyla oturum açtınız. Verilerinizi ayrı tutmak amacıyla, <ph name="WORK_DOMAIN" /> için yeni bir Chromium alanı oluşturmak ister misiniz?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> tehlikeli olduğu için Chromium tarafından engellendi.</translation>
 <translation id="6134968993075716475">Güvenli Tarama kapalı. Chromium bunun açılmasını öneriyor.</translation>
 <translation id="6212496753309875659">Bu bilgisayarda Chromium'un daha yeni bir sürümü de var. Yazılım çalışmıyorsa, Chromium'u kaldırın ve tekrar deneyin.</translation>
@@ -195,6 +199,7 @@
 <translation id="7561906087460245826">Chromium'daki verileri de temizle (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Bir ayar bu sayfada görünmüyorsa <ph name="LINK_BEGIN" />
       Chromium OS ayarlarınıza<ph name="LINK_END" /> bakın</translation>
+<translation id="7607142834923530546">İş hesabıyla oturum açtınız. Kişisel verilerinizi ayrı tutmak amacıyla, <ph name="NEW_USER" /> için yeni bir Chromium alanı oluşturmak ister misiniz?</translation>
 <translation id="761356813943268536">Chromium kameranızı ve mikrofonunuzu kullanıyor.</translation>
 <translation id="7617377681829253106">Chromium daha da iyi bir hale geldi</translation>
 <translation id="7628001322379820951">Chromium, bilgisayarınızda zararlı yazılım buldu</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index ef4a93c..550a45ab 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Додатково: допоможіть покращувати функції та підвищувати продуктивність ОС Chromium, автоматично надсилаючи в Google дані про діагностику та використання.</translation>
 <translation id="2347108572062610441">Це розширення змінило сторінку, яка відкривається під час запуску Chromium.</translation>
 <translation id="2396765026452590966">Розширення "<ph name="EXTENSION_NAME" />" змінило сторінку, яка відкривається під час запуску Chromium.</translation>
+<translation id="2442081746662839303">Створити новий профіль Chromium, яким користуватиметься <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">У Chromium</translation>
 <translation id="2485422356828889247">Видалити</translation>
 <translation id="2527042973354814951">Перезавантажте Chromium, щоб увімкнути плагін "<ph name="PLUGIN_NAME" />"</translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium у фоновому режимі.</translation>
 <translation id="4987820182225656817">Гості можуть анонімно користуватися Chromium.</translation>
 <translation id="4994636714258228724">Додати себе в Chromium</translation>
+<translation id="5053724573690775822">Створити новий робочий профіль Chromium?</translation>
 <translation id="5224391634244552924">Немає збережених паролів. Chromium зможе перевірити ваші паролі, коли ви їх збережете.</translation>
 <translation id="5277894862589591112">Щоб застосувати зміни, перезапустіть Chromium</translation>
 <translation id="5358375970380395591">Ви входите, використовуючи дані облікового запису, яким керує адміністратор. Адміністратор може контролювати ваш профіль Chromium. Ваші дані Chromium, як-от програми, закладки, історія, паролі й інші налаштування, буде назавжди пов’язано з обліковим записом <ph name="USER_NAME" />. Ці дані можна видалити на інформаційній панелі Облікових записів Google, але ви не зможете пов’язати їх з іншим обліковим записом. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium не може відобразити попередній перегляд версії для друку, якщо немає вбудованого засобу для перегляду файлів PDF.</translation>
 <translation id="5427571867875391349">Зробити Chromium веб-переглядачем за умовчанням</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Бета-версія Chromium</translation>
+<translation id="544968170749360982">Ви ввійшли в новий обліковий запис у профілі, яким користується <ph name="EXISTING_USER" />. Створити новий профіль Chromium, яким користуватиметься <ph name="NEW_USER" />, щоб зберігати ваші дані окремо?</translation>
 <translation id="5479196819031988440">Неможливо відкрити цю сторінку в ОС Chromium.</translation>
 <translation id="5480860683791598150">Chromium потрібен доступ до геоданих, щоб повідомляти ваше місцезнаходження цьому сайту</translation>
 <translation id="549669000822060376">Зачекайте, доки Chromium установить найновіші оновлення системи.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium не вдалося синхронізувати ваші дані через помилку входу.</translation>
 <translation id="6096348254544841612">Налаштуйте й контролюйте Chromium. Доступне оновлення.</translation>
 <translation id="6120345080069858279">Chromium збереже цей пароль в обліковому записі Google. Не потрібно його запам’ятовувати.</translation>
+<translation id="6128834065531097268">Ви ввійшли в робочий обліковий запис у профілі, яким користується <ph name="EXISTING_USER" />. Створити новий профіль Chromium для домену <ph name="WORK_DOMAIN" />, щоб зберігати ваші дані окремо?</translation>
 <translation id="6129621093834146363">Файл <ph name="FILE_NAME" /> небезпечний, тому Chromium заблокував його.</translation>
 <translation id="6134968993075716475">Безпечний перегляд вимкнено. Chromium радить увімкнути його.</translation>
 <translation id="6212496753309875659">На цьому комп’ютері вже встановлено новішу версію Chromium. Якщо програмне забезпечення не працює, видаліть Chromium і повторіть спробу.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Також очистити дані Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Якщо налаштування не з'явиться на цій сторінці, пошукайте його в <ph name="LINK_BEGIN" />
       налаштуваннях ОС Chromium<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Ви ввійшли в робочий обліковий запис. Створити новий профіль Chromium, яким користуватиметься <ph name="NEW_USER" />, щоб зберігати ваші персональні дані окремо?</translation>
 <translation id="761356813943268536">Chromium використовує вашу камеру та мікрофон.</translation>
 <translation id="7617377681829253106">Chromium став ще кращим</translation>
 <translation id="7628001322379820951">Веб-переглядач Chromium виявив шкідливе програмне забезпечення на вашому комп'ютері</translation>
diff --git a/chrome/app/resources/chromium_strings_uz.xtb b/chrome/app/resources/chromium_strings_uz.xtb
index 37cfd1ee..b6091bb 100644
--- a/chrome/app/resources/chromium_strings_uz.xtb
+++ b/chrome/app/resources/chromium_strings_uz.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Ixtiyoriy: Google serverlariga diagnostika va foydalanish statistikasi ma’lumotlarini yuborish orqali Chromium OS tizimini takomillashtirishga yordam bering.</translation>
 <translation id="2347108572062610441">Bu kengaytma Chromium ishga tushganda ko‘rinadigan sahifani o‘zgartirdi.</translation>
 <translation id="2396765026452590966">“<ph name="EXTENSION_NAME" />” kengaytmasi Chromium ishga tushganda ko‘rinadigan sahifani o‘zgartirdi.</translation>
+<translation id="2442081746662839303"><ph name="NEW_USER" /> uchun yangi Chromium ishchi maydoni yaratilsinmi?</translation>
 <translation id="2483889755041906834">Chromium brauzerida</translation>
 <translation id="2485422356828889247">O‘chirib tashlash</translation>
 <translation id="2527042973354814951">“<ph name="PLUGIN_NAME" />” plaginini yoqish uchun Chromium brauzerini qaytadan ishga tushiring</translation>
@@ -103,6 +104,7 @@
 <translation id="4943838377383847465">Chromium orqa fon rejimida ishlamoqda.</translation>
 <translation id="4987820182225656817">Agar tashrif buyurgan saytlaringiz haqidagi ma’lumotlar saqlanmasligini xohlasangiz, Chromium mehmon rejimidan foydalaning.</translation>
 <translation id="4994636714258228724">Chromium foydalanuvchini qo‘shish</translation>
+<translation id="5053724573690775822">Yangi Chromium ish maydoni yaratilsinmi?</translation>
 <translation id="5224391634244552924">Hech qanday parol saqlanmagan. Chromium faqat saqlangan parollaringizni tekshira oladi.</translation>
 <translation id="5277894862589591112">O‘zgarishlarni tatbi qilish uchun Chromium qayta ishga tushirilishi zarur</translation>
 <translation id="5358375970380395591">Siz boshqaruvdagi hisobga kiryapsiz va uning administratoriga Chromium profilingizni boshqarishga ruxsat beryapsiz. Ilovalar, xatcho‘plar, brauzer tarixi, parollar va boshqa sozlamalar kabi barcha Chromium ma’lumotlaringiz <ph name="USER_NAME" /> hisobiga biriktiriladi. Siz bu ma’lumotlarni Google hisoblar shaxsiy kabinetidan o‘chirishingiz mumkin, lekin bu ma’lumotlarni boshqa hisob bilan bog‘lay olmaysiz. <ph name="LEARN_MORE" /></translation>
@@ -112,6 +114,7 @@
 <translation id="5416696090975899932">PDF fayllarni ko‘rish vositasi oldindan o‘rnatilmagan bo‘lsa, Chromium bu formatdagi bosmalarni oldindan ko‘rsata olmaydi.</translation>
 <translation id="5427571867875391349">Chromium‘ni standart brauzer sifatida tayinlash.</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+<translation id="544968170749360982"><ph name="EXISTING_USER" /> ishchi maydoniga yangi hisob bilan kirgansiz. Axborotlarni alohida saqlash maqsadida <ph name="NEW_USER" /> uchun yangi Chromium maydonini yaratishni istaysizmi?</translation>
 <translation id="5479196819031988440">Chromium OS bu sahifani ocha olmaydi.</translation>
 <translation id="5480860683791598150">Bu sayt manzilingizdan foydalanishi uchun Chromium brauzeriga ruxsat berishingiz lozim</translation>
 <translation id="549669000822060376">Chromium tizimning oxirgi yangilanishlarini o‘rnatib olgunicha kutib turing.</translation>
@@ -134,6 +137,7 @@
 <translation id="608189560609172163">Hisobga kirishdagi xatolik sababli Chromium ma’lumotlarni sinxronlay olmadi.</translation>
 <translation id="6096348254544841612">Chromium uchun yangilanish chiqdi.</translation>
 <translation id="6120345080069858279">Chromium bu parolni Google hisobingizga saqlaydi. Uni eslab qolishingiz shart emas.</translation>
+<translation id="6128834065531097268"><ph name="EXISTING_USER" /> ishchi maydoniga ishchi hisob bilan kirgansiz. Axborotlarni alohida saqlash maqsadida <ph name="WORK_DOMAIN" /> uchun yangi Chromium maydonini yaratishni istaysizmi?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> xavfli edi, shuning uchun u Chromium tomonidan bloklandi.</translation>
 <translation id="6134968993075716475">Saytlarni xavfsiz kezish yoniq emas. Chromium uni yoqishingizni tavsiya qiladi.</translation>
 <translation id="6212496753309875659">Bu kompyuterda allaqachon Chromium‘ning so‘nggi versiyasi o‘rnatilgan. Agar dastur ishlamayotgan bo‘lsa, uni o‘chirib qaytadan o‘rnatib ko‘ring.</translation>
@@ -195,6 +199,7 @@
 <translation id="7561906087460245826">Chromium maʼlumotlarini ham tozalash (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Agar sozlama bu sahifada chiqmasa, <ph name="LINK_BEGIN" />
       Chromium brauzeri sozlamalarini<ph name="LINK_END" /> tekshiring.</translation>
+<translation id="7607142834923530546">Ishchi hisobingiz bilan kirgansiz. Shaxsiy maʼlumotlaringnizni alohida saqlash maqsadida <ph name="NEW_USER" /> uchun yangi Chromium ishchi maydonini yaratishni istaysizmi?</translation>
 <translation id="761356813943268536">Chromium kamera va mikrofoningizdan foydalanmoqda.</translation>
 <translation id="7617377681829253106">Chromium ancha yaxshilanmoqda</translation>
 <translation id="7628001322379820951">Chromium kompyuteringizda zararli dasturlarni aniqladi</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 4144e0f..c89ed52 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">Không bắt buộc: Giúp cải thiện hiệu suất và các tính năng của Chromium OS bằng cách tự động gửi dữ liệu sử dụng và chẩn đoán cho Google.</translation>
 <translation id="2347108572062610441">Tiện ích này đã thay đổi trang nào được hiển thị khi bạn khởi động Chromium.</translation>
 <translation id="2396765026452590966">Tiện ích "<ph name="EXTENSION_NAME" />" đã thay đổi trang nào được hiển thị khi bạn khởi động Chromium.</translation>
+<translation id="2442081746662839303">Tạo không gian mới trên Chromium cho <ph name="NEW_USER" />?</translation>
 <translation id="2483889755041906834">Trong Chromium</translation>
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
 <translation id="2527042973354814951">Khởi động lại Chromium để bật <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium đang chạy trong nền.</translation>
 <translation id="4987820182225656817">Khách có thể sử dụng Chromium mà không phải thoát khỏi bất cứ nội dung nào.</translation>
 <translation id="4994636714258228724">Thêm chính bạn vào Chromium</translation>
+<translation id="5053724573690775822">Tạo không gian làm việc mới trên Chromium?</translation>
 <translation id="5224391634244552924">Bạn chưa lưu mật khẩu nào. Chromium có thể kiểm tra các mật khẩu của bạn khi bạn lưu các mật khẩu đó.</translation>
 <translation id="5277894862589591112">Để áp dụng các mục thay đổi của bạn, hãy chạy lại Chromium</translation>
 <translation id="5358375970380395591">Bạn đang đăng nhập bằng tài khoản được quản lý và cấp cho quản trị viên của tài khoản quyền kiểm soát cấu hình Chromium của bạn. Dữ liệu Chromium của bạn, chẳng hạn như ứng dụng, dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ vĩnh viễn được liên kết với <ph name="USER_NAME" />. Bạn có thể xóa dữ liệu này thông qua Trang tổng quan của tài khoản Google nhưng không thể liên kết dữ liệu này với tài khoản khác. <ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">Chromium không thể hiển thị chế độ xem trước bản in khi thiếu trình xem PDF tích hợp.</translation>
 <translation id="5427571867875391349">Đặt Chromium là trình duyệt mặc định của bạn</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium phiên bản beta</translation>
+<translation id="544968170749360982">Bạn đã đăng nhập bằng tài khoản mới trong không gian của <ph name="EXISTING_USER" />. Bạn có muốn tạo một không gian mới trên Chromium cho <ph name="NEW_USER" /> để lưu giữ dữ liệu riêng biệt không?</translation>
 <translation id="5479196819031988440">Chromium OS không thể mở trang này.</translation>
 <translation id="5480860683791598150">Chromium cần quyền truy cập vào vị trí của bạn để chia sẻ thông tin vị trí với trang web này</translation>
 <translation id="549669000822060376">Vui lòng đợi khi Chromium cài đặt các bản cập nhật hệ thống mới nhất.</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">Chromium không thể đồng bộ hóa dữ liệu của bạn do lỗi khi đăng nhập.</translation>
 <translation id="6096348254544841612">Tùy chỉnh và kiểm soát Chromium. Đã có bản cập nhật.</translation>
 <translation id="6120345080069858279">Chromium sẽ lưu mật khẩu này trong Tài khoản Google của bạn. Bạn sẽ không phải nhớ mật khẩu này.</translation>
+<translation id="6128834065531097268">Bạn đã đăng nhập bằng tài khoản công việc trong không gian của <ph name="EXISTING_USER" />. Bạn có muốn tạo một không gian mới trên Chromium cho <ph name="WORK_DOMAIN" /> để lưu giữ dữ liệu riêng biệt không?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> nguy hiểm, do đó Chromium đã chặn tệp.</translation>
 <translation id="6134968993075716475">Tính năng Duyệt web an toàn đang tắt. Bạn nên bật tính năng này trên Chromium.</translation>
 <translation id="6212496753309875659">Máy tính này đã có phiên bản Chromium mới hơn. Nếu phần mềm không hoạt động, hãy gỡ cài đặt Chromium và thử lại.</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">Đồng thời xóa dữ liệu khỏi Chromium (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">Nếu một tùy chọn cài đặt không hiển thị trên trang này, hãy tìm trong mục <ph name="LINK_BEGIN" />
       cài đặt của Chromium OS<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">Bạn đã đăng nhập bằng tài khoản công việc. Bạn có muốn tạo một không gian mới trên Chromium cho <ph name="NEW_USER" /> để lưu giữ dữ liệu cá nhân riêng biệt không?</translation>
 <translation id="761356813943268536">Chromium đang sử dụng máy ảnh và micrô của bạn.</translation>
 <translation id="7617377681829253106">Chromium được cải tiến hơn</translation>
 <translation id="7628001322379820951">Chromium đã phát hiện thấy phần mềm có hại trên máy tính của bạn</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index f6727a5..a2db138 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -28,6 +28,7 @@
 <translation id="2294245788148774212">(可选)自动向 Google 发送诊断数据和使用情况数据,协助改进 Chromium 操作系统的功能和性能。</translation>
 <translation id="2347108572062610441">此扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
 <translation id="2396765026452590966">“<ph name="EXTENSION_NAME" />”扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
+<translation id="2442081746662839303">要为<ph name="NEW_USER" />创建新的 Chromium 空间?</translation>
 <translation id="2483889755041906834">在 Chromium 中</translation>
 <translation id="2485422356828889247">卸载</translation>
 <translation id="2527042973354814951">重新启动 Chromium 以启用 <ph name="PLUGIN_NAME" /></translation>
@@ -105,6 +106,7 @@
 <translation id="4943838377383847465">Chromium处于后台运行模式。</translation>
 <translation id="4987820182225656817">访客使用Chromium不会留下任何痕迹。</translation>
 <translation id="4994636714258228724">将您自己添加到Chromium</translation>
+<translation id="5053724573690775822">要创建新的 Chromium 工作空间?</translation>
 <translation id="5224391634244552924">尚未保存任何密码。您需要先保存密码才能使用 Chromium 的密码检查功能。</translation>
 <translation id="5277894862589591112">要想应用您的更改,请重新启动 Chromium</translation>
 <translation id="5358375970380395591">您目前登录的帐号是一个托管帐号,该帐号的管理员将能够控制您的 Chromium 个人资料。您的 Chromium 数据(例如您的应用、书签、历史记录、密码和其他设置)将永远与 <ph name="USER_NAME" /> 相关联。您可以通过 Google 帐号信息中心删除这些数据,但无法将这些数据与其他帐号相关联。<ph name="LEARN_MORE" /></translation>
@@ -114,6 +116,7 @@
 <translation id="5416696090975899932">在缺少内置 PDF 查看器的情况下,Chromium 无法显示打印预览。</translation>
 <translation id="5427571867875391349">将Chromium设为默认浏览器</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium 测试版</translation>
+<translation id="544968170749360982">您已在<ph name="EXISTING_USER" />的空间中使用新帐号登录。想为<ph name="NEW_USER" />创建一个新的 Chromium 空间来单独保存您的数据吗?</translation>
 <translation id="5479196819031988440">Chromium 操作系统无法打开此网页。</translation>
 <translation id="5480860683791598150">Chromium 需要获得位置权限,才能将您的位置信息共享给此网站</translation>
 <translation id="549669000822060376">Chromium正在安装最新的系统更新,请稍候。</translation>
@@ -136,6 +139,7 @@
 <translation id="608189560609172163">由于在登录时出现错误,Chromium无法同步您的数据。</translation>
 <translation id="6096348254544841612">有可用的更新。欢迎自定义和控制 Chromium。</translation>
 <translation id="6120345080069858279">Chromium 会将此密码保存在您的 Google 帐号中,因此您不必记住它。</translation>
+<translation id="6128834065531097268">您已在<ph name="EXISTING_USER" />的空间中使用工作帐号登录。想为<ph name="WORK_DOMAIN" />创建一个新的 Chromium 空间来单独保存您的数据吗?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> 存在危险,因此 Chromium 已将其拦截。</translation>
 <translation id="6134968993075716475">“安全浏览”功能已关闭。Chromium 建议开启此功能。</translation>
 <translation id="6212496753309875659">此计算机已安装了更高版本的 Chromium。如果软件无法正常运行,请卸载 Chromium 并重试。</translation>
@@ -197,6 +201,7 @@
 <translation id="7561906087460245826">一并清除 Chromium (<ph name="URL" />) 中的数据</translation>
 <translation id="7585853947355360626">如果此页面中未显示某项设置,请在 <ph name="LINK_BEGIN" />
       Chromium 操作系统设置<ph name="LINK_END" />中查找</translation>
+<translation id="7607142834923530546">您已使用工作帐号登录。想为<ph name="NEW_USER" />创建一个新的 Chromium 空间来单独保存您的个人数据吗?</translation>
 <translation id="761356813943268536">Chromium 正在使用您的摄像头和麦克风。</translation>
 <translation id="7617377681829253106">Chromium现在更好用了</translation>
 <translation id="7628001322379820951">Chromium 在您的计算机上发现了有害软件</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index cf397c3..bd79b8c 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -30,6 +30,7 @@
 <translation id="2294245788148774212">選用:將診斷和使用情況資料自動傳送給 Google,協助改善 Chromium 作業系統的功能和效能。</translation>
 <translation id="2347108572062610441">擴充功能已變更 Chromium 啟動時所顯示的網頁。</translation>
 <translation id="2396765026452590966">擴充功能「<ph name="EXTENSION_NAME" />」已變更 Chromium 啟動時所顯示的網頁。</translation>
+<translation id="2442081746662839303">要為<ph name="NEW_USER" />建立新的 Chromium 空間嗎?</translation>
 <translation id="2483889755041906834">在 Chromium 中</translation>
 <translation id="2485422356828889247">解除安裝</translation>
 <translation id="2527042973354814951">重新啟動 Chromium 即可啟用 <ph name="PLUGIN_NAME" /></translation>
@@ -107,6 +108,7 @@
 <translation id="4943838377383847465">Chromium 正在背景模式中執行。</translation>
 <translation id="4987820182225656817">以訪客身分使用 Chromium 不會留下任何記錄。</translation>
 <translation id="4994636714258228724">新增為 Chromium 使用者</translation>
+<translation id="5053724573690775822">要建立新的 Chromium 工作空間嗎?</translation>
 <translation id="5224391634244552924">沒有已儲存的密碼。儲存密碼時,Chromium 可檢查您的密碼。</translation>
 <translation id="5277894862589591112">如要套用變更,請重新啟動 Chromium</translation>
 <translation id="5358375970380395591">您已登入受管理的帳戶,並將管理控制權授予您的 Chromium 設定檔。您的 Chromium 數據 (例如應用程式、書籤、記錄、密碼和其他設定) 均將永久與 <ph name="USER_NAME" /> 建立關聯。您可以透過 Google 帳戶資訊主頁刪除這些數據,但您無法將這些數據與其他帳戶建立關聯。<ph name="LEARN_MORE" /></translation>
@@ -116,6 +118,7 @@
 <translation id="5416696090975899932">缺少內置的 PDF 檢視器時,Chromium 無法顯示列印預覽畫面。</translation>
 <translation id="5427571867875391349">將 Chromium 設為預設瀏覽器</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta 版本</translation>
+<translation id="544968170749360982">您已使用新帳戶登入<ph name="EXISTING_USER" />的空間。要為<ph name="NEW_USER" />建立新的 Chromium 空間以分開保留資料嗎?</translation>
 <translation id="5479196819031988440">Chromium 作業系統無法開啟此網頁。</translation>
 <translation id="5480860683791598150">Chromium 需要位置資訊存取權,才能與這個網站分享您的位置資訊</translation>
 <translation id="549669000822060376">請稍候,Chromium 正在安裝最新的系統更新。</translation>
@@ -138,6 +141,7 @@
 <translation id="608189560609172163">登入時發生錯誤,因此 Chromium 無法同步處理您的數據。</translation>
 <translation id="6096348254544841612">自訂和管理 Chromium。有可用的更新。</translation>
 <translation id="6120345080069858279">Chromium 會將此密碼儲存在您的 Google 帳戶內,您無需記住。</translation>
+<translation id="6128834065531097268">您已使用公司帳戶登入<ph name="EXISTING_USER" />的空間。要為 <ph name="WORK_DOMAIN" /> 建立新的 Chromium 空間以分開保留資料嗎?</translation>
 <translation id="6129621093834146363"><ph name="FILE_NAME" /> 不安全,因此 Chromium 已封鎖此檔案。</translation>
 <translation id="6134968993075716475">「安全瀏覽」功能已停用。Chromium 建議啟用此功能。</translation>
 <translation id="6212496753309875659">這部電腦已安裝較新的 Chromium 版本。如果軟件無法工作,請解除安裝 Chromium,然後再試一次。</translation>
@@ -198,6 +202,7 @@
 <translation id="7549178288319965365">關於 Chromium 作業系統</translation>
 <translation id="7561906087460245826">一併清除 Chromium 的資料 (<ph name="URL" />)</translation>
 <translation id="7585853947355360626">如果此頁面沒有顯示設定,請前往 <ph name="LINK_BEGIN" />Chromium 作業系統設定<ph name="LINK_END" /></translation>
+<translation id="7607142834923530546">您已使用公司帳戶登入。要為<ph name="NEW_USER" />建立新的 Chromium 空間以分開保留個人資料嗎?</translation>
 <translation id="761356813943268536">Chromium 正在使用您的相機和麥克風。</translation>
 <translation id="7617377681829253106">Chromium 現在更進一步</translation>
 <translation id="7628001322379820951">Chromium 在您的電腦上發現了有害軟件</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 60a2a8d..14ea61c 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">الإضافة يدويًا</translation>
 <translation id="1361655923249334273">غير مستخدم</translation>
 <translation id="1361872463926621533">تشغيل الصوت عند بدء التشغيل</translation>
+<translation id="1362865166188278099">مشكلة ميكانيكية. يُرجى التحقُّق من الطابعة.</translation>
 <translation id="1363585519747660921">‏طابعة USB بحاجة إلى الضبط</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />تتم إدارة متصفّحك<ph name="END_LINK" /> من خلال <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">‏يمكنك تشغيل أدوات Linux وأدوات التحرير وبرامج IDE على <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;مزيد من المعلومات&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">‏لا يستطيع Chrome الدخول إلى الصورة.</translation>
 <translation id="2637400434494156704">رقم التعريف الشخصي غير صحيح. يتبقى لديك محاولة واحدة.</translation>
 <translation id="2638662041295312666">صورة الملف الشخصي</translation>
+<translation id="2640549051766135490">تمّ اختيار ألبوم <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">الاتصال بهاتفك - مربع حوار</translation>
 <translation id="2641065435954454414">جارٍ التحضير للتنزيل</translation>
 <translation id="2642111877055905627">كرة القدم</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">فاصل</translation>
 <translation id="338691029516748599">الشبكة <ph name="NETWORK_INDEX" /> من <ph name="NETWORK_COUNT" />، الشبكة <ph name="NETWORK_NAME" />، حالة الأمان <ph name="SECURITY_STATUS" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />%، يديرها المشرف، الاتصال</translation>
 <translation id="3387614642886316601">استخدام التدقيق الإملائي المُحسَّن</translation>
+<translation id="3388094447051599208">دُرج الإخراج في الطابعة شبه ممتلئ</translation>
 <translation id="3388788256054548012">هذا الملف مشفّر. يُرجى طلب فكّ تشفيره من المالك.</translation>
 <translation id="3390013585654699824">تفاصيل التطبيق</translation>
 <translation id="3390741581549395454">‏تم الاحتفاظ بنسخة احتياطية من تطبيقات نظام التشغيل Linux وملفاته بنجاح. ستبدأ عملية الترقية بعد وقت قصير.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">‏لا يمكن استخدام منافذ USB من نوع C وHDMI لهذا الفيديو في الوقت نفسه. عليك استخدام منفذ فيديو مختلف.</translation>
 <translation id="3473241910002674503">يمكنك الانتقال إلى الصفحة الرئيسية والصفحة السابقة والتبديل بين التطبيقات باستخدام أزرار التنقل في وضع الجهاز اللوحي.</translation>
 <translation id="3473479545200714844">مكبّر الشاشة</translation>
+<translation id="347394413229268704">القراءة لاحقًا</translation>
 <translation id="3475843873335999118">عذرًا، لا يزال التعرُّف على بصمة الإصبع متعذّرًا. يُرجى إدخال كلمة المرور.</translation>
 <translation id="3476303763173086583">‏يمكنك إرسال بيانات الاستخدام والتشخيص. يمكنك المساعدة في تحسين تجربة نظام التشغيل Android على حسابك الفرعي من خلال إرسال بيانات التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام ذلك لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. ويفرض المالك هذا <ph name="BEGIN_LINK1" />الإعداد<ph name="END_LINK1" />. قد يختار المالك إرسال بيانات الاستخدام والتشخيص لهذا الجهاز إلى Google. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">عفوًا! تعذّر النظام في جلب السياسة لجهازك.</translation>
@@ -2592,6 +2596,7 @@
 <translation id="4107048419833779140">تحديد أجهزة التخزين وإخراجها</translation>
 <translation id="4109135793348361820">نقل النافذة إلى <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">‏اكتمل التنزيل: <ph name="FILE_NAME" />. يمكنك الضغط على Shift+F6 للانتقال إلى منطقة شريط عمليات التنزيل.</translation>
+<translation id="4110686435123617899">اختيار ألبوم <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">تصفُّح الويب في وضع التباين العالي</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (غير متصل بالإنترنت)</translation>
 <translation id="4115002065223188701">الشبكة خارج النطاق</translation>
@@ -3078,6 +3083,7 @@
 <translation id="4780321648949301421">حفظ صفحة باسم...</translation>
 <translation id="4785719467058219317">أنت تستخدم مفتاح أمان غير مُسجَّل مع هذا الموقع الإلكتروني</translation>
 <translation id="4788092183367008521">يُرجى التحقُّق من الاتصال بالشبكة وإعادة المحاولة.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> صورة</translation>
 <translation id="4791037424585594169">‏بروتوكول (UDP)</translation>
 <translation id="4792711294155034829">&amp;الإبلاغ عن مشكلة...</translation>
 <translation id="4794810983896241342">يتولى <ph name="BEGIN_LINK" />مشرفك<ph name="END_LINK" /> إدارة التحديثات.</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index 1e19797..1951603 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">মেনুৱেলী যোগ কৰক</translation>
 <translation id="1361655923249334273">অব্যৱহৃত</translation>
 <translation id="1361872463926621533">ষ্টাৰ্টআপ হওঁতে শব্দ কৰক</translation>
+<translation id="1362865166188278099">কাৰিকৰী সমস্যা। প্ৰিণ্টাৰ পৰীক্ষা কৰক</translation>
 <translation id="1363585519747660921">USB প্ৰিণ্টাৰ কনফিগাৰেশ্বন কৰা প্ৰয়োজন</translation>
 <translation id="1365180424462182382">আপোনাৰ <ph name="BEGIN_LINK" />ব্ৰাউজাৰটো<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" />এ পৰিচালনা কৰে</translation>
 <translation id="1366177842110999534">Linux সঁজুলিসমূহ, সম্পাদকসমূহ আৰু IDEসমূহ আপোনাৰ <ph name="DEVICE_TYPE" />ত চলাওক। &lt;a target="_blank" href="<ph name="URL" />"&gt;অধিক জানক&lt;/a&gt;</translation>
@@ -321,7 +322,7 @@
 <translation id="1380028686461971526">নেটৱৰ্কৰ সৈতে স্বয়ংক্ৰিয়ভাৱে সংযোগ কৰক</translation>
 <translation id="1380436189840894976">যিয়েই কি নহ’লেও ইনক’গনিট’ ম’ডৰ বন্ধ কৰিবনে?</translation>
 <translation id="1383861834909034572">সম্পূৰ্ণ হ'লে খোলা যাব</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1386387014181100145">নমস্কাৰ,</translation>
 <translation id="1386791642444521222">কায়িক ছিম সক্ৰিয় কৰক</translation>
 <translation id="138784436342154190">আৰম্ভণিতে খোল খোৱা ডিফ’ল্ট পৃষ্ঠাটো পুনঃস্থাপন কৰিবনে?</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chromeএ এই প্ৰতিচ্ছবিত এক্সেছ কৰিব নোৱাৰে।</translation>
 <translation id="2637400434494156704">ভুল পিন। আপোনাৰ এটা প্ৰচেষ্টা বাকী আছে।</translation>
 <translation id="2638662041295312666">ছাইন-ইন প্ৰতিচ্ছবি</translation>
+<translation id="2640549051766135490">এলবাম <ph name="TITLE" /> <ph name="DESC" /> বাছনি কৰা হৈছে</translation>
 <translation id="264083724974021997">আপোনাৰ ফ’নৰ সৈতে সংযোগ কৰক - ডায়ল’গ</translation>
 <translation id="2641065435954454414">ডাউনল'ড কৰিবলৈ সাজু কৰি থকা হৈছে</translation>
 <translation id="2642111877055905627">ফুটবল</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">পৃথকীকাৰক</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation>
 <translation id="3387614642886316601">উন্নত বানান পৰীক্ষক ব্যৱহাৰ কৰক</translation>
+<translation id="3388094447051599208">আউটপুট ট্ৰে’খন প্ৰায় ভৰি পৰিছে</translation>
 <translation id="3388788256054548012">এই ফাইলটো এনক্ৰিপ্ট কৰা আছে। এইটোৰ গৰাকীক ডিক্ৰিপ্ট কৰিবলৈ কওক।</translation>
 <translation id="3390013585654699824">এপৰ সবিশেষ</translation>
 <translation id="3390741581549395454">Linux এপ্‌ আৰু ফাইলসমূহ সফলভাৱে বেক আপ কৰা হৈছে। শীঘ্ৰেই আপগ্রে’ড আৰম্ভ হ’ব।</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">ভিডিঅ’ৰ বাবে HDMI আৰু ইউএছবি Type-C প’ৰ্টসমূহ একে সময়তে ব্যৱহাৰ কৰিব নোৱাৰি। বেলেগ এটা ভিডিঅ’ প’ৰ্ট ব্যৱহাৰ কৰক।</translation>
 <translation id="3473241910002674503">টেবলেট ম’ডত বুটামৰ জৰিয়তে গৃহপৃষ্ঠালৈ নেভিগে’ট কৰক, উভতি যাওক আৰু এপ্‌সমূহ সলনি কৰক।</translation>
 <translation id="3473479545200714844">স্ক্ৰীণ বিৱৰ্ধক</translation>
+<translation id="347394413229268704">পাছত পঢ়ক</translation>
 <translation id="3475843873335999118">দুঃখিত, আপোনাৰ ফিংগাৰপ্ৰিণ্ট এতিয়াও চিনাক্ত কৰিব পৰা নাই। অনুগ্ৰহ কৰি আপোনাৰ পাছৱৰ্ড দিয়ক।</translation>
 <translation id="3476303763173086583">ব্যৱহাৰ আৰু ডায়গনষ্টিক ডেটা পঠিয়াওক। Googleলৈ স্বয়ংক্ৰিয়ভাৱে ডাইগনষ্টিক, ডিভাইচ আৰু এপ্ ব্যৱহাৰৰ ডেটা পঠিয়াই আপোনাৰ শিশুৰ Android ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰক। এই ডেটা আপোনাৰ শিশুক চিনাক্ত কৰিবলৈ ব্যৱহাৰ কৰা নহয় আৰু ই ছিষ্টেম আৰু এপৰ স্থিৰতা আৰু অন্য সুবিধাসমূহ উন্নত কৰাত সহায় কৰিব। কিছুমান ডেটাৰ সমষ্টিয়ে লগতে Google এপ্ আৰু অংশীদাৰ, যেনে Androidৰ বিকাশকর্তাকো সহায় কৰিব। এই <ph name="BEGIN_LINK1" />ছেটিং<ph name="END_LINK1" />টো গৰাকীয়ে বলপূৰ্বকভাৱে সন্নিবিষ্ট কৰিছে। গৰাকীজনে Googleলৈ ডাইগন‘ষ্টিক আৰু ব্যৱহাৰৰ ডেটা পঠিয়াবলৈ সিন্ধান্ত ল’ব পাৰে। যদি আপোনাৰ শিশুৰ বাবে অতিৰিক্ত ৱেব আৰু এপৰ কার্যকলাপ অন কৰা হৈছে, তেন্তে এই ডেটা তেওঁলোকৰ Google একাউণ্টত ছেভ কৰা হ’ব পাৰে। <ph name="BEGIN_LINK2" />অধিক জানক<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">আমি দুঃখিত!  ছিষ্টেমটোৱে আপোনাৰ ডিভাইচটোৰ বাবে নীতি আহৰণ কৰিব নোৱাৰিলে।</translation>
@@ -2589,6 +2593,7 @@
 <translation id="4107048419833779140">ষ্ট’ৰেজ ডিভাইচ চিনাক্ত কৰক আৰু বাহিৰ কৰক</translation>
 <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)লৈ ৱিণ্ড’ক আঁতৰাওক</translation>
 <translation id="4110490973560452005">ডাউনল’ড সম্পূৰ্ণ হ’ল: <ph name="FILE_NAME" />। ডাউনল’ড বাৰৰ ক্ষেত্ৰলৈ যাবলৈ Shift+F6 টিপক।</translation>
+<translation id="4110686435123617899">এলবাম বাছনি কৰক <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">হাই কনট্ৰাষ্ট ম’ডত ৱেব ব্ৰাউজ কৰক</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (অফলাইন হৈ আছে)</translation>
 <translation id="4115002065223188701">নেটৱৰ্ক পৰিসৰৰ ভিতৰত নাই</translation>
@@ -3074,6 +3079,7 @@
 <translation id="4780321648949301421">এই হিচাপ ছেভ কৰক…</translation>
 <translation id="4785719467058219317">আপুনি ব্যৱহাৰ কৰি থকা সুৰক্ষা চাবিটো এই ৱেবছাইটটোত পঞ্জীকৃত নহয়</translation>
 <translation id="4788092183367008521">আপোনাৰ নেটৱৰ্ক সংযোগ পৰীক্ষা কৰি পুনৰ চেষ্টা কৰক।</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> খন ফট’</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">কোনো সমস্যাৰ বিষয়ে &amp;অভিযোগ কৰক...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />আপোনাৰ প্ৰশাসকে<ph name="END_LINK" /> আপডে’টসমূহ পৰিচালনা কৰে</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index f15387d..5b8ff14 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -305,6 +305,7 @@
 <translation id="1361164813881551742">Mexaniki Əlavə Edin</translation>
 <translation id="1361655923249334273">İşlənməyən</translation>
 <translation id="1361872463926621533">Başladıqda səs çıxarılsın</translation>
+<translation id="1362865166188278099">Mexaniki problem. Printeri yoxlayın</translation>
 <translation id="1363585519747660921">USB printer konfiqurasiya edilməlidir</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Brauzeri idarə edir<ph name="END_LINK" />: <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" /> cihazında Linux aləti, redaktor və IDE-lərindən istifadə edin. &lt;a target="_blank" href="<ph name="URL" />"&gt;Ətraflı məlumat&lt;/a&gt;</translation>
@@ -1368,6 +1369,7 @@
 <translation id="2636625531157955190">Chrome şəklə daxil ola bilmir.</translation>
 <translation id="2637400434494156704">Yanlış PIN. Bir cəhdiniz qalır.</translation>
 <translation id="2638662041295312666">Daxil olma şəkli</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> albomu seçildi</translation>
 <translation id="264083724974021997">Telefonunuza qoşulun - Dialoq</translation>
 <translation id="2641065435954454414">Endirməyə hazırlanır</translation>
 <translation id="2642111877055905627">Futbol topu</translation>
@@ -1953,6 +1955,7 @@
 <translation id="338583716107319301">Ayırıcı</translation>
 <translation id="338691029516748599"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Siqnal Gücü<ph name="SIGNAL_STRENGTH" />%, Administratorunuz tərəfindən idarə olunur, Qoşulun</translation>
 <translation id="3387614642886316601">Təkmilləşdirilmiş orfoqrafik yoxlanışdan istifadə edin</translation>
+<translation id="3388094447051599208">Çıxış bölməsi dolmaq üzrədir</translation>
 <translation id="3388788256054548012">Bu fayl şifrələnib. Sahibindən onun şifrəsini açmasını istəyin.</translation>
 <translation id="3390013585654699824">Tətbiq detalları</translation>
 <translation id="3390741581549395454">Linux tətbiq və faylları yedəkləndi. Güncəlləmə qısa zamanda başlayacaq.</translation>
@@ -2030,6 +2033,7 @@
 <translation id="3471876058939596279">HDMI və C növlü USB portları video üçün eyni vaxtda işlədilə bilməz. Fərqli video port istifadə edin.</translation>
 <translation id="3473241910002674503">Planşet rejimindəki düymələrlə əsas səhifəyə, geri keçin və tətbiqləri dəyişdirin.</translation>
 <translation id="3473479545200714844">Ekran böyüdücü</translation>
+<translation id="347394413229268704">Sonra oxuyun</translation>
 <translation id="3475843873335999118">Barmaq iziniz hələ də tanınmır. Parol daxil edin.</translation>
 <translation id="3476303763173086583">İstifadə və diaqnostika datasını göndərin. Google'a diaqnostika, cihaz və tətbiq istifadə datasını avtomatik göndərməklə övladınızın Android təcrübəsini təkmilləşdirin. Bu, övladınızı müəyyən etmək üçün istifadə edilməyəcək, eyni zamanda, sistem və tətbiq sabitliyi və digər təkmilləşdirmələrə kömək edəcək. Ümumi data, həmçinin, Google tətbiqləri və Android developerləri kimi partnyorlara kömək edəcək. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" /> sahibi tərəfindən tətbiq edilir. Sahibi bu cihaz üçün diaqnostika və istifadə datasını Google'a göndərməyi seçə bilər. Övladınız üçün əlavə Veb və Tətbiq Fəaliyyəti ayarı aktiv edilərsə, həmin data Google hesabında yadda saxlana bilər. <ph name="BEGIN_LINK2" />Ətraflı Məlumat<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Ups! Sistem cihaz siyasətini əldə edə bilmədi.</translation>
@@ -2588,6 +2592,7 @@
 <translation id="4107048419833779140">Yaddaş cihazları müəyyən edin və boşaldın</translation>
 <translation id="4109135793348361820">Pəncərəni <ph name="USER_NAME" /> istifadəçisinə daşıyın (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Endirmə tamamlandı: <ph name="FILE_NAME" />. Endirmələr panelinə keçmək üçün Shift+F6 düymələrinə basın.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> albomunu seçin</translation>
 <translation id="4110895898888439383">Yüksək kontrast rejimində vebdə axtarış edin</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (oflayn)</translation>
 <translation id="4115002065223188701">Şəbəkə aralıqda deyil</translation>
@@ -3074,6 +3079,7 @@
 <translation id="4780321648949301421">Səhifəni yadda saxlama formatı:</translation>
 <translation id="4785719467058219317">Bu veb saytda qeydiyyatda olmayan təhlükəsizlik açarından istifadə edirsiniz</translation>
 <translation id="4788092183367008521">Şəbəkə bağlantınızı yoxlayıb yenidən cəhd edin.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">Problemi xəbər verin...</translation>
 <translation id="4794810983896241342">Güncəlləmələr <ph name="BEGIN_LINK" />administrator<ph name="END_LINK" /> tərəfindən idarə edilir.</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 58e5539..6ded1764 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -17,6 +17,7 @@
 <translation id="1012876632442809908">Прылада USB-C (пярэдні порт)</translation>
 <translation id="1013707859758800957">На гэтай старонцы дазволена не змешчаная ў пясочніку ўбудова.</translation>
 <translation id="1015318665228971643">Змяніць назву папкі</translation>
+<translation id="1015578595646638936">{NUM_DAYS,plural, =1{Апошні дзень для абнаўлення прылады "<ph name="DEVICE_TYPE" />"}one{Абнавіце прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_DAYS} дня}few{Абнавіце прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_DAYS} дзён}many{Абнавіце прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_DAYS} дзён}other{Абнавіце прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_DAYS} дня}}</translation>
 <translation id="1016437870506746108">{COUNT,plural, =0{Адкрыць усе ў &amp;новым акне}=1{Адкрыць у &amp;новым акне}one{Адкрыць усе (#) у &amp;новым акне}few{Адкрыць усе (#) у &amp;новым акне}many{Адкрыць усе (#) у &amp;новым акне}other{Адкрыць усе (#) у &amp;новым акне}}</translation>
 <translation id="1016566241875885511">Дадатковыя звесткі (неабавязкова)</translation>
 <translation id="1017280919048282932">&amp;Дадаць у слоўнік</translation>
@@ -47,9 +48,11 @@
 <translation id="1047431265488717055">Скапіраваць &amp;тэкст спасылкі</translation>
 <translation id="1048286738600630630">Дысплэі</translation>
 <translation id="1048986595386481879">Дынамічнае размеркаванне</translation>
+<translation id="1049324577536766607">{COUNT,plural, =1{Ідзе атрыманне даных (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}one{Ідзе атрыманне даных (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}few{Ідзе атрыманне даных (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}many{Ідзе атрыманне даных (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}other{Ідзе атрыманне даных (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="1049743911850919806">Інкогніта</translation>
 <translation id="1049795001945932310">&amp;Налады мовы</translation>
 <translation id="1054153489933238809">Адкрыць зыходны &amp;відарыс у новай укладцы</translation>
+<translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Абнавіць прыладу "<ph name="DEVICE_TYPE" />" на працягу 1 тыдня}one{Абнавіць прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_WEEKS} тыдня}few{Абнавіць прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_WEEKS} тыдняў}many{Абнавіць прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_WEEKS} тыдняў}other{Абнавіць прыладу "<ph name="DEVICE_TYPE" />" на працягу {NUM_WEEKS} тыдня}}</translation>
 <translation id="1055806300943943258">Пошук Bluetooth- і USB-прылад...</translation>
 <translation id="1056466516655540509">Абноўлена <ph name="MINUTES" /> хв таму</translation>
 <translation id="1056775291175587022">Няма сетак</translation>
@@ -140,6 +143,7 @@
 <translation id="1166212789817575481">Закрыць укладкі справа</translation>
 <translation id="1168020859489941584">Адкрыецца праз <ph name="TIME_REMAINING" />...</translation>
 <translation id="1168100932582989117">Серверы даменных імён Google</translation>
+<translation id="1170288591054440704">Пытацца, калі сайт запытвае дазвол выкарыстоўваць шрыфты, усталяваныя на прыладзе</translation>
 <translation id="1171135284592304528">Вылучаць аб'ект з дапамогай клавіятурнага фокуса, калі ён змяняецца.</translation>
 <translation id="1171515578268894665">"<ph name="ORIGIN" />" запытвае дазвол на падключэнне да прылады HID</translation>
 <translation id="1172750555846831341">Карашок па кароткім краі</translation>
@@ -303,6 +307,7 @@
 <translation id="1361164813881551742">Дадаць уручную</translation>
 <translation id="1361655923249334273">Не выкарыстоўваецца</translation>
 <translation id="1361872463926621533">Прайграваць гук пры запуску</translation>
+<translation id="1362865166188278099">Механічная праблема. Праверце прынтар</translation>
 <translation id="1363585519747660921">Неабходна наладзіць USB-прынтар</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Браўзер знаходзіцца пад кіраваннем<ph name="END_LINK" /> дамена <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="1366177842110999534">Запускайце IDE, рэдактары і інструменты Linux на прыладзе <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Даведацца больш&lt;/a&gt;</translation>
@@ -319,7 +324,9 @@
 <translation id="1383861834909034572">Адкрыццё пры завяршэнні</translation>
 <translation id="1383876407941801731">Пошук</translation>
 <translation id="1386387014181100145">Вітаем!</translation>
+<translation id="1386791642444521222">Актываваць фізічную SIM-карту</translation>
 <translation id="138784436342154190">Аднавіць стандартную пачатковую старонку?</translation>
+<translation id="1388728792929436380">Пасля завяршэння абнаўлення прылада "<ph name="DEVICE_TYPE" />" перазапусціцца.</translation>
 <translation id="1390548061267426325">Адкрыць у звычайнай укладцы</translation>
 <translation id="1393283411312835250">Сонца і аблокі</translation>
 <translation id="1395730723686586365">Сродак абнаўлення запушчаны</translation>
@@ -377,6 +384,7 @@
 <translation id="1451375123200651445">Вэб-старонка адным файлам</translation>
 <translation id="1451917004835509682">Дадаць падкантрольнага карыстальніка</translation>
 <translation id="1454223536435069390">З&amp;рабіць здымак экрана</translation>
+<translation id="1459693405370120464">Надвор'е</translation>
 <translation id="1459967076783105826">Пошукавыя сістэмы, дададзеныя пашырэннямі</translation>
 <translation id="146000042969587795">Гэты фрэйм заблакіраваны, бо ён утрымлівае небяспечнае змесціва.</translation>
 <translation id="146219525117638703">Стан ONC</translation>
@@ -437,6 +445,7 @@
 <translation id="1521442365706402292">Кіраваць сертыфікатамі</translation>
 <translation id="1521774566618522728">Апошнія дзеянні адбываліся сёння</translation>
 <translation id="152234381334907219">Ніколі не захоўваліся</translation>
+<translation id="1523170391134722817">Не будзе падтрымлівацца са студзеня</translation>
 <translation id="1523978563989812243">Модулі сінтэзу маўлення</translation>
 <translation id="1524430321211440688">Клавіятура</translation>
 <translation id="1524563461097350801">Не, дзякуй</translation>
@@ -563,6 +572,7 @@
 <translation id="166278006618318542">Алгарытм адкрытага ключа суб'екта</translation>
 <translation id="166439687370499867">Забаронена змяняць налады агульнай сеткі</translation>
 <translation id="1668435968811469751">Зарэгістраваць уручную</translation>
+<translation id="1668979692599483141">Даведацца пра прапановы</translation>
 <translation id="1670399744444387456">Базавы</translation>
 <translation id="167160931442925455">Найгучней</translation>
 <translation id="1673137583248014546"><ph name="URL" /> запытвае доступ на прагляд маркі і мадэлі ключа бяспекі</translation>
@@ -1025,6 +1035,7 @@
 <translation id="2227179592712503583">Выдаліць прапанову</translation>
 <translation id="2229161054156947610">Засталося больш за гадзіну</translation>
 <translation id="222931766245975952">Файл абрэзаны</translation>
+<translation id="2230005943220647148">Шкала Цэльсія</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2231238007119540260">Калі выдаліць сертыфікат сервера, адновяцца звычайныя праверкі бяспекі гэтага сервера, і яму трэба будзе выкарыстоўваць дапушчальны сертыфікат.</translation>
 <translation id="2232876851878324699">Адзін сертыфікат у файле не быў імпартаваны:</translation>
@@ -1304,6 +1315,7 @@
 <translation id="2553340429761841190">Браўзеру <ph name="PRODUCT_NAME" /> не ўдалося падключыцца да сеткі <ph name="NETWORK_ID" />. Выберыце іншую сетку і паўтарыце спробу.</translation>
 <translation id="2553440850688409052">Схаваць гэту ўбудову</translation>
 <translation id="2554553592469060349">Выбраны файл занадта вялікі (максімальны памер: 3 МБ).</translation>
+<translation id="2556820440303627606">{NUM_DAYS,plural, =1{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы спампавалі сёння абнаўленне. Абнаўленне спампуецца аўтаматычна пры падключэнні да інтэрнэту.}one{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы спампавалі абнаўленне да заканчэння тэрміну. Абнаўленне спампуецца аўтаматычна пры падключэнні да інтэрнэту.}few{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы спампавалі абнаўленне да заканчэння тэрміну. Абнаўленне спампуецца аўтаматычна пры падключэнні да інтэрнэту.}many{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы спампавалі абнаўленне да заканчэння тэрміну. Абнаўленне спампуецца аўтаматычна пры падключэнні да інтэрнэту.}other{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы спампавалі абнаўленне да заканчэння тэрміну. Абнаўленне спампуецца аўтаматычна пры падключэнні да інтэрнэту.}}</translation>
 <translation id="2558896001721082624">Заўсёды паказваць параметры спецыяльных магчымасцей у сістэмным меню</translation>
 <translation id="2562743677925229011">Не выкананы ўваход у <ph name="SHORT_PRODUCT_NAME" /></translation>
 <translation id="2564520396658920462">Выкананне JavaScript праз AppleScript выключана. Каб уключыць яго, перайдзіце з панэлі меню ў "Прагляд &gt; Распрацоўшчык &gt; Дазволіць JavaScript з падзей Apple". Падрабязную інфармацыю глядзіце тут: https://support.google.com/chrome/?p=applescript</translation>
@@ -1362,6 +1374,7 @@
 <translation id="2636625531157955190">Браўзеру Chrome не ўдалося атрымаць доступ да відарыса.</translation>
 <translation id="2637400434494156704">Няправільны PIN-код. У вас засталася адна спроба.</translation>
 <translation id="2638662041295312666">Відарыс уліковага запісу</translation>
+<translation id="2640549051766135490">Выбраны альбом "<ph name="TITLE" />" (<ph name="DESC" />)</translation>
 <translation id="264083724974021997">Дыялогавае акно "Падключэнне да тэлефона"</translation>
 <translation id="2641065435954454414">Падрыхтоўваецца спампоўванне</translation>
 <translation id="2642111877055905627">Футбольны мяч</translation>
@@ -1567,6 +1580,7 @@
 <translation id="2876336351874743617">Палец 2</translation>
 <translation id="2876369937070532032">Адпраўляе URL-адрасы некаторых наведаных вамі старонак у Google, калі ваша бяспека пад пагрозай</translation>
 <translation id="2878782256107578644">Выконваецца праверка. Адкрыць зараз?</translation>
+<translation id="2878889940310164513">Дадаць сотавае падключэнне...</translation>
 <translation id="288042212351694283">Доступ да прылад універсальнай двухфактарнай аўтэнтыфікацыі</translation>
 <translation id="2880660355386638022">Размяшчэнне вокнаў</translation>
 <translation id="2881076733170862447">Калі націснуць на пашырэнне</translation>
@@ -1691,6 +1705,7 @@
 <translation id="3029466929721441205">Паказваць інструменты для пяра на паліцы</translation>
 <translation id="3031417829280473749">Агент X</translation>
 <translation id="3031557471081358569">Выберыце, што імпартаваць:</translation>
+<translation id="3036327949511794916">Тэрмін вяртання прылады <ph name="DEVICE_TYPE" /> мінуў.</translation>
 <translation id="3036546437875325427">Уключыць Flash</translation>
 <translation id="3037754279345160234">Не ўдалося прааналізаваць канфігурацыю, каб далучыцца да дамена. Звярніцеся да адміністратара.</translation>
 <translation id="3038612606416062604">Дадаванне прынтара ўручную</translation>
@@ -1746,6 +1761,7 @@
 <translation id="3115580024857770654">Згарнуць усе</translation>
 <translation id="3116968597797150452">Профіль сертыфіката</translation>
 <translation id="3117362587799608430">Док-станцыя не поўнасцю сумяшчальная з прыладай</translation>
+<translation id="3117791853215125017">{COUNT,plural, =1{Даныя (<ph name="ATTACHMENTS" />) не ўдалося адправіць на прыладу "<ph name="DEVICE_NAME" />"}one{Даныя (<ph name="ATTACHMENTS" />) не ўдалося адправіць на прыладу "<ph name="DEVICE_NAME" />"}few{Даныя (<ph name="ATTACHMENTS" />) не ўдалося адправіць на прыладу "<ph name="DEVICE_NAME" />"}many{Даныя (<ph name="ATTACHMENTS" />) не ўдалося адправіць на прыладу "<ph name="DEVICE_NAME" />"}other{Даныя (<ph name="ATTACHMENTS" />) не ўдалося адправіць на прыладу "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="3118319026408854581">Даведка <ph name="PRODUCT_NAME" /></translation>
 <translation id="3118654181216384296">Перазапусціце Linux праз некалькі секунд.</translation>
 <translation id="3120430004221004537">Недастатковае шыфраванне аперацыі на прыладзе "<ph name="DEVICE_NAME" />".</translation>
@@ -1924,6 +1940,7 @@
 <translation id="3356580349448036450">Гатова</translation>
 <translation id="3359256513598016054">Абмежаванні палітыкі сертыфікатаў</translation>
 <translation id="3360297538363969800">Памылка друку. Праверце прынтар і паўтарыце спробу.</translation>
+<translation id="3361421571228286637">{COUNT,plural, =1{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />)}one{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />)}few{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />)}many{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />)}other{Прылада "<ph name="DEVICE_NAME" />" спрабуе абагуліць з вамі даныя (<ph name="ATTACHMENTS" />)}}</translation>
 <translation id="3364986687961713424">Паведамленне ад адміністратара: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Выкарыстоўвайце або Ctrl, або Alt</translation>
 <translation id="3367047597842238025">Наладзьце прыладу <ph name="DEVICE_TYPE" /> на свой густ і карыстайцеся захапляльнымі магчымасцямі – з лёгкасцю.</translation>
@@ -1943,6 +1960,7 @@
 <translation id="338583716107319301">Раздзяляльнік</translation>
 <translation id="338691029516748599">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, знаходзіцца пад кіраваннем адміністратара, падключыцца</translation>
 <translation id="3387614642886316601">Выкарыстоўваць палепшаную праверку правапісу</translation>
+<translation id="3388094447051599208">Выхадны латок амаль запоўнены</translation>
 <translation id="3388788256054548012">Файл зашыфраваны. Папрасіце ўладальніка файла расшыфраваць яго.</translation>
 <translation id="3390013585654699824">Звесткі пра праграму</translation>
 <translation id="3390741581549395454">Рэзервовая копія файлаў і праграм Linux створана. Хутка пачнецца абнаўленне.</translation>
@@ -2020,6 +2038,7 @@
 <translation id="3471876058939596279">Парты HDMI і USB Type-C не могуць выкарыстоўвацца для відэа адначасова. Паспрабуйце іншы відэапорт.</translation>
 <translation id="3473241910002674503">Пераход на Панэль запуску, вяртанне назад і пераключэнне праграм кнопкамі ў планшэтным рэжыме.</translation>
 <translation id="3473479545200714844">Экранная лупа</translation>
+<translation id="347394413229268704">Чытаць пазней</translation>
 <translation id="3475843873335999118">Адбітак пальца распазнаць не ўдалося. Увядзіце пароль.</translation>
 <translation id="3476303763173086583">Адпраўка даных пра выкарыстанне і дыягностыку. Дапамажыце палепшыць функцыянальнасць прылады Android для дзіцяці шляхам аўтаматычнай адпраўкі даных пра дыягностыку, выкарыстанне прылады і праграм у Google. Яны не будуць выкарыстаны для ідэнтыфікацыі асобы дзіцяці, але дапамогуць у паляпшэнні стабільнасці сістэмы і праграм і для іншых удасканаленняў. Некаторыя згрупаваныя даныя таксама будуць карысныя для праграм і партнёраў Google, напрыклад распрацоўшчыкаў Android. Гэта <ph name="BEGIN_LINK1" />налада<ph name="END_LINK1" /> ўключана ўладальнікам. Уладальнік можа ўключыць адпраўку даных пра выкарыстанне і дыягностыку гэтай прылады ў Google. Калі для вашага дзіцяці ўключана налада дадатковай гісторыі дзеянняў у інтэрнэце і праграмах, то адпаведныя даныя могуць захоўвацца ў яго Уліковым запісе Google. <ph name="BEGIN_LINK2" />Даведацца больш<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Памылка.  Сістэме не ўдалося атрымаць палітыку для прылады.</translation>
@@ -2165,6 +2184,7 @@
 <translation id="3640214691812501263">Дадаць пашырэнне "<ph name="EXTENSION_NAME" />" для карыстальніка <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Навучыце Памочніка распазнаваць ваш голас</translation>
 <translation id="3645372836428131288">Крыху перамясціце палец, каб была захоплена іншая частка адбітка.</translation>
+<translation id="3647998456578545569">{COUNT,plural, =1{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}one{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}few{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}many{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}other{З прылады "<ph name="DEVICE_NAME" />" атрыманы даныя (<ph name="ATTACHMENTS" />)}}</translation>
 <translation id="3648348069317717750">Выяўлена прылада: <ph name="USB_DEVICE_NAME" /></translation>
 <translation id="3649138363871392317">Здымак зроблены</translation>
 <translation id="3649505501900178324">Абнаўленне пратэрмінавана</translation>
@@ -2274,6 +2294,7 @@
 <translation id="3761556954875533505">Дазволіць сайту змяняць файлы?</translation>
 <translation id="3764314093345384080">Падрабязныя звесткі пра зборку</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{Абмен данымі з прыладай USB}one{Абмен данымі з # прыладай USB}few{Абмен данымі з # прыладамі USB}many{Абмен данымі з # прыладамі USB}other{Абмен данымі з # прылады USB}}</translation>
+<translation id="3764974059056958214">{COUNT,plural, =1{Ідзе адпраўка даных (<ph name="ATTACHMENTS" />) на прыладу "<ph name="DEVICE_NAME" />"}one{Ідзе адпраўка даных (<ph name="ATTACHMENTS" />) на прыладу "<ph name="DEVICE_NAME" />"}few{Ідзе адпраўка даных (<ph name="ATTACHMENTS" />) на прыладу "<ph name="DEVICE_NAME" />"}many{Ідзе адпраўка даных (<ph name="ATTACHMENTS" />) на прыладу "<ph name="DEVICE_NAME" />"}other{Ідзе адпраўка даных (<ph name="ATTACHMENTS" />) на прыладу "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="3765246971671567135">Не ўдалося прачытаць пазасеткавую палітыку дэманстрацыйнага рэжыму.</translation>
 <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Гц</translation>
 <translation id="377050016711188788">Марожанае</translation>
@@ -2484,6 +2505,7 @@
 <translation id="3983586614702900908">прылады ад невядомага пастаўшчыка</translation>
 <translation id="3983764759749072418">Праграмы з Крамы Play маюць доступ да гэтай прылады.</translation>
 <translation id="3983769721878416534">Затрымка перад націсканнем</translation>
+<translation id="3984135167056005094">Не ўключаць адрас электроннай пошты</translation>
 <translation id="3984159763196946143">Не ўдалося запусціць дэманстрацыйны рэжым</translation>
 <translation id="3984431586879874039">Дазволіць гэтаму сайту бачыць ключ бяспекі?</translation>
 <translation id="3986705137476756801">Выключыць Імгненныя субцітры</translation>
@@ -2577,6 +2599,7 @@
 <translation id="4107048419833779140">Вызначыць і выдаліць прылады сховішча</translation>
 <translation id="4109135793348361820">Перамясціць акно карыстальніку <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Спампоўванне завершана: "<ph name="FILE_NAME" />". Каб перамяшчацца па панэлі спамповак, націскайце Shift+F6.</translation>
+<translation id="4110686435123617899">Выберыце альбом "<ph name="TITLE" />" (<ph name="DESC" />)</translation>
 <translation id="4110895898888439383">Прагляд вэб-сайтаў у рэжыме высокай кантраснасці</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (па-за сеткай)</translation>
 <translation id="4115002065223188701">Сетка па-за зонай доступу</translation>
@@ -2902,6 +2925,7 @@
 <translation id="4563210852471260509">Пачатковая мова ўводу – кітайская</translation>
 <translation id="4563880231729913339">Палец 3</translation>
 <translation id="4565377596337484307">Схаваць пароль</translation>
+<translation id="4565577809484439917">{NUM_DAYS,plural, =1{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы стварылі рэзервовую копію сваіх даных і вярнулі прыладу <ph name="DEVICE_TYPE" /> сёння.}one{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы стварылі рэзервовую копію сваіх даных і вярнулі прыладу <ph name="DEVICE_TYPE" /> да заканчэння тэрміну.}few{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы стварылі рэзервовую копію сваіх даных і вярнулі прыладу <ph name="DEVICE_TYPE" /> да заканчэння тэрміну.}many{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы стварылі рэзервовую копію сваіх даных і вярнулі прыладу <ph name="DEVICE_TYPE" /> да заканчэння тэрміну.}other{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе, каб вы стварылі рэзервовую копію сваіх даных і вярнулі прыладу <ph name="DEVICE_TYPE" /> да заканчэння тэрміну.}}</translation>
 <translation id="4565917129334815774">Захаваць сістэмныя журналы</translation>
 <translation id="456717285308019641">З якой мовы перакладаць старонку</translation>
 <translation id="4567533462991917415">Пасля завяршэння наладжвання вы зможаце дадаваць іншых карыстальнікаў. Кожны з іх будзе мець магчымасць персаналізаваць свой уліковы запіс і захоўваць прыватнасць даных.</translation>
@@ -2965,6 +2989,7 @@
 <translation id="4638930039313743000">Уключыць адладку ADB</translation>
 <translation id="4641539339823703554">Браўзеру Chrome не ўдалося задаць сістэмны час. Праверце ўказаны ніжэй час і пры неабходнасці выправіце яго.</translation>
 <translation id="4643612240819915418">&amp;Адкрыць відэа ў новай укладцы</translation>
+<translation id="4645551927492192497">{NUM_DAYS,plural, =1{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас падключыцца сёння да сеткі Wi-Fi і спампаваць абнаўленне. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}one{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}few{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}many{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}other{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас падключыцца да сеткі Wi-Fi і спампаваць абнаўленне да заканчэння тэрміну. Вы можаце таксама спампаваць яго праз падключэнне з улікам трафіка (можа спаганяцца плата).}}</translation>
 <translation id="4645676300727003670">&amp;Захаваць</translation>
 <translation id="4646675363240786305">Парты</translation>
 <translation id="4646949265910132906">Бяспечнае падключэнне да сеткі Wi-Fi</translation>
@@ -2977,6 +3002,7 @@
 <translation id="4651484272688821107">Не ўдалося загрузіць вэб-кампанент з рэсурсамі дэманстрацыйнага рэжыму.</translation>
 <translation id="4652935475563630866">Для змянення налад камеры патрабуецца перазапуск Parallels Desktop. Каб працягнуць, перазапусціце Parallels Desktop.</translation>
 <translation id="4653405415038586100">Памылка наладжвання Linux</translation>
+<translation id="4657810666108475055">Пошук укладак</translation>
 <translation id="465878909996028221">Для перанакіравання з браўзера падтрымліваюцца толькі пратаколы "http", "https" і "file".</translation>
 <translation id="4659077111144409915">Асноўны ўліковы запіс</translation>
 <translation id="4660476621274971848">Чакалася версія "<ph name="EXPECTED_VERSION" />", фактычная версія – "<ph name="NEW_ID" />"</translation>
@@ -3060,6 +3086,7 @@
 <translation id="4780321648949301421">Захаваць старонку як...</translation>
 <translation id="4785719467058219317">Вы выкарыстоўваеце ключ бяспекі, не зарэгістраваны на гэтым вэб-сайце</translation>
 <translation id="4788092183367008521">Праверце падключэнне да сеткі і паўтарыце спробу.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> фота</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Паведаміць аб праблеме...</translation>
 <translation id="4794810983896241342">Абнаўленнямі кіруе <ph name="BEGIN_LINK" />адміністратар<ph name="END_LINK" /></translation>
@@ -3101,6 +3128,7 @@
 <translation id="4842976633412754305">Гэта старонка спрабуе загрузіць сцэнарыі з неаўтэнтыфікаваных крыніц.</translation>
 <translation id="4844333629810439236">Іншыя клавіятуры</translation>
 <translation id="4846680374085650406">Для гэтай налады вы трымаецеся рэкамендацый адміністратара.</translation>
+<translation id="4847902821209177679">Выбрана: <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />. Націсніце Enter, каб выбраць альбомы "<ph name="TOPIC_SOURCE" />"</translation>
 <translation id="4848191975108266266">Каманда "Ok Google" для Памочніка Google</translation>
 <translation id="4848518990323155912">Уключыць блакіраванне SIM-карты (патрабаваць PIN-код для выкарыстання мабільнай перадачы даных)</translation>
 <translation id="4849286518551984791">Універсальны каардынаваны час (UTC/GMT)</translation>
@@ -3177,6 +3205,7 @@
 <translation id="4921348630401250116">Сінтэз маўлення</translation>
 <translation id="49226369361073053">{0,plural, =0{Перазапусціце прыладу зараз}=1{Перазапусціце прыладу на працягу 1 секунды}one{Перазапусціце прыладу на працягу # секунды}few{Перазапусціце прыладу на працягу # секунд}many{Перазапусціце прыладу на працягу # секунд}other{Перазапусціце прыладу на працягу # секунды}}</translation>
 <translation id="492299503953721473">Выдаліць праграмы Android</translation>
+<translation id="492320048412997552">Файл "<ph name="FILE_NAME" />" – невядомы. "Палепшаная абарона" рэкамендуе адправіць гэты файл у Google для праверкі.</translation>
 <translation id="492363500327720082">Ідзе выдаленне праграмы <ph name="APP_NAME" />...</translation>
 <translation id="4924352752174756392">12x</translation>
 <translation id="4925320384394644410">Вашы парты з'явяцца тут</translation>
@@ -3357,6 +3386,7 @@
 <translation id="5159419673777902220">Вашы бацькі выключылі дазволы для пашырэнняў</translation>
 <translation id="5160634252433617617">Фізічная клавіятура</translation>
 <translation id="5160857336552977725">Уваход у <ph name="DEVICE_TYPE" /></translation>
+<translation id="5162905305237671850">Прылада "<ph name="DEVICE_TYPE" />" заблакіравана</translation>
 <translation id="5166596762332123936">Убудова "<ph name="PLUGIN_NAME" />" заблакіравана, бо яна састарэла.</translation>
 <translation id="5170568018924773124">Паказаць у папцы</translation>
 <translation id="5171045022955879922">Знайдзіце або ўвядзіце URL-адрас</translation>
@@ -3522,6 +3552,7 @@
 <translation id="5372579129492968947">Адмацаваць пашырэнне</translation>
 <translation id="5376169624176189338">Каб перайсці назад, націсніце кнопкай мышы, каб паглядзець гісторыю – утрымлівайце</translation>
 <translation id="5376931455988532197">Файл занадта вялікі</translation>
+<translation id="5377721922656071359">{COUNT,plural, =1{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}one{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}few{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}many{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}other{Даныя (<ph name="ATTACHMENTS" />) адпраўлены на прыладу "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="537813040452600081">Старонкі, якія вы праглядаеце ў гэтым акне, не будуць паказвацца ў гісторыі прагляду сайтаў і пасля выхаду з уліковага запісу не пакінуць ніякіх слядоў (напрыклад, файлаў cookie) на камп'ютары. Спампаваныя файлы і створаныя закладкі не захаваюцца.</translation>
 <translation id="5379140238605961210">Працягваць блакіраваць доступ да мікрафона</translation>
 <translation id="5382591305415226340">Кіраваць спасылкамі, якія падтрымліваюцца</translation>
@@ -3625,6 +3656,7 @@
 <translation id="5499313591153584299">Гэты файл можа нанесці шкоду вашаму камп'ютару.</translation>
 <translation id="5499453227627332024">Для кантэйнера Linux ёсць абнаўленне. Усталяваць абнаўленне можна будзе і пазней – з праграмы "Налады".</translation>
 <translation id="5500709606820808700">Праверка бяспекі выконвалася сёння</translation>
+<translation id="5501809658163361512">{COUNT,plural, =1{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}one{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}few{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}many{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}other{Не ўдалося атрымаць даныя (<ph name="ATTACHMENTS" />) з прылады "<ph name="DEVICE_NAME" />"}}</translation>
 <translation id="5502500733115278303">Імпартаваныя з браўзера Firefox</translation>
 <translation id="5503982651688210506">І далей дазваляць сайту <ph name="HOST" /> выкарыстоўваць і перамяшчаць вашу камеру і выкарыстоўваць ваш мікрафон</translation>
 <translation id="5505264765875738116">Сайтам забаронена запытваць дазвол на паказ апавяшчэнняў</translation>
@@ -3895,6 +3927,7 @@
 <translation id="5840680448799937675">Файлы будуць заўсёды абагульвацца па-за сеткай</translation>
 <translation id="5841270259333717135">Наладзіць Ethernet</translation>
 <translation id="5842497610951477805">Bluetooth уключаны</translation>
+<translation id="5843706793424741864">Шкала Фарэнгейта</translation>
 <translation id="5844574845205796324">Прапаноўваць для азнаямлення новае змесціва</translation>
 <translation id="5846200638699387931">Памылка сінтаксісу суаднясення: <ph name="ERROR_LINE" /></translation>
 <translation id="5846807460505171493">Усталяванне абнаўленняў і праграм. Працягваючы, вы дазваляеце гэтай прыладзе аўтаматычна спампоўваць і ўсталёўваць абнаўленні і праграмы ад Google, вашага аператара і вытворцы прылады, у тым ліку праз сотавую перадачу даных. Некаторыя з гэтых праграм могуць прапаноўваць куплі з праграм.</translation>
@@ -3935,6 +3968,7 @@
 <translation id="5877064549588274448">Канал зменены. Перазапусціце прыладу, каб змены прымяніліся.</translation>
 <translation id="5877584842898320529">Выбраны прынтар недаступны або ўсталяваны няправільна. <ph name="BR" /> Праверце прынтар або выберыце іншы.</translation>
 <translation id="5882919346125742463">Вядомыя сеткі</translation>
+<translation id="5883464818836130222">З 31 снежня выкарыстанне воблачных прынтараў падтрымлівацца не будзе. Звярніцеся да адміністратара.</translation>
 <translation id="5884474295213649357">Гэта ўкладка падключана да прылады USB.</translation>
 <translation id="5886009770935151472">Палец 1</translation>
 <translation id="5889282057229379085">Максімальная колькасць прамежкавых ЦС: <ph name="NUM_INTERMEDIATE_CA" /></translation>
@@ -4016,6 +4050,7 @@
 <translation id="5979156418378918004">{NUM_EXTENSIONS,plural, =1{Вы зноў уключылі адно патэнцыйна шкоднае пашырэнне}one{Вы зноў уключылі {NUM_EXTENSIONS} патэнцыйна шкоднае пашырэнне}few{Вы зноў уключылі {NUM_EXTENSIONS} патэнцыйна шкодныя пашырэнні}many{Вы зноў уключылі {NUM_EXTENSIONS} патэнцыйна шкодных пашырэнняў}other{Вы зноў уключылі {NUM_EXTENSIONS} патэнцыйна шкоднага пашырэння}}</translation>
 <translation id="5979421442488174909">&amp;Перакласці на наступную мову: <ph name="LANGUAGE" /></translation>
 <translation id="5979469435153841984">Каб дадаць закладку для старонкі, націсніце на зорачку ў адрасным радку</translation>
+<translation id="5983642582671533177">Са студзеня гэты прынтар падтрымлівацца не будзе. Звярніцеся да адміністратара.</translation>
 <translation id="5984222099446776634">Нядаўна наведаныя</translation>
 <translation id="598472838394900788">{0,plural, =1{Інкогніта}one{Інкогніта (#)}few{Інкогніта (#)}many{Інкогніта (#)}other{Інкогніта (#)}}</translation>
 <translation id="5985458664595100876">Няправільны фармат URL-адраса. Падтрымліваюцца фарматы \\server\share і smb://server/share.</translation>
@@ -4155,6 +4190,7 @@
 <translation id="6150961653851236686">На гэту мову перакладаюцца старонкі</translation>
 <translation id="6151323131516309312">Для пошуку на сайце <ph name="SITE_NAME" /> націсніце <ph name="SEARCH_KEY" /></translation>
 <translation id="6151771661215463137">Файл ужо існуе ў папцы спампоўвання.</translation>
+<translation id="6153808139779428578">Са студзеня гэты прынтар падтрымлівацца не будзе. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="6154240335466762404">Выдаліць усе парты</translation>
 <translation id="615436196126345398">Пратакол</translation>
 <translation id="6154697846084421647">Выкананы ўваход</translation>
@@ -4239,6 +4275,7 @@
 <translation id="625369703868467034">Стан сеткі</translation>
 <translation id="6254503684448816922">Кампраметацыя ключа</translation>
 <translation id="6257602895346497974">Уключыць сінхранізацыю...</translation>
+<translation id="625895209797312329">Забараніць сайтам выкарыстоўваць усталяваныя на прыладзе шрыфты</translation>
 <translation id="6259104249628300056">Прагляд прылад у лакальнай сетцы</translation>
 <translation id="6262371516389954471">Рэзервовыя копіі запампоўваюцца ў Google і шыфруюцца пад паролем ад вашага Уліковага запісу Google.</translation>
 <translation id="6263082573641595914">Версія ЦС Microsoft</translation>
@@ -4369,6 +4406,7 @@
 <translation id="642469772702851743">Гэта прылада (серыйны нумар: <ph name="SERIAL_NUMBER" />) заблакіравана ўладальнікам.</translation>
 <translation id="6425556984042222041">Хуткасць сінтэзу маўлення</translation>
 <translation id="6426200009596957090">Адкрыць налады ChromeVox</translation>
+<translation id="642654727595919401">Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> на працягу 1 тыдня. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" /></translation>
 <translation id="6428982734197629783">Ідзе апрацоўка відарыса</translation>
 <translation id="6429384232893414837">Памылка абнаўлення</translation>
 <translation id="6430814529589430811">ASCII з шыфраваннем Base64, адзін сертыфікат</translation>
@@ -4596,6 +4634,7 @@
 <translation id="672609503628871915">Пазнаёмцеся з навінкамі</translation>
 <translation id="67269783048918309">Адпраўка даных пра выкарыстанне і дыягностыку. Зараз прылада аўтаматычна адпраўляе ў Google даныя дыягностыкі і звесткі аб выкарыстанні прылады і праграм. Яны не будуць выкарыстоўвацца для ідэнтыфікацыі асобы дзіцяці, але дапамогуць у паляпшэнні стабільнасці сістэмы і праграм і іншых удасканаленнях. Некаторыя згрупаваныя даныя таксама будуць карысныя для праграм і партнёраў Google, напрыклад распрацоўшчыкаў Android. Гэта <ph name="BEGIN_LINK1" />налада<ph name="END_LINK1" /> ўключана ўладальнікам. Калі для вашага дзіцяці ўключана налада дадатковай гісторыі дзеянняў у інтэрнэце і праграмах, то адпаведныя даныя могуць захоўвацца ў яго Уліковым запісе Google. <ph name="BEGIN_LINK2" />Даведацца больш<ph name="END_LINK2" /></translation>
 <translation id="6727969043791803658">Прылада падключана. Зарад акумулятара: <ph name="BATTERY_PERCENTAGE" />%</translation>
+<translation id="6731877319426971768">Файлы распазнавання маўлення спампаваны</translation>
 <translation id="6732801395666424405">Сертыфікаты не загружаны</translation>
 <translation id="6732900235521116609">Не ўдалося выдаліць ярлык</translation>
 <translation id="6734468588183300211">У рэжыме інкогніта сайты не могуць выкарыстоўваць файлы cookie для адсочвання вашых дзеянняў у браўзеры на розных сайтах у мэтах персаналізацыі рэкламы. На некаторых сайтах можа перастаць працаваць частка функцый.</translation>
@@ -4986,6 +5025,7 @@
 <translation id="7207457272187520234">Адпраўка даных пра выкарыстанне і дыягностыку. Зараз прылада аўтаматычна адпраўляе ў Google даныя дыягностыкі і даныя пра выкарыстанне прылады і праграм. Яны будуць карысныя для паляпшэння стабільнасці сістэмы і праграм і для іншых удасканаленняў. Некаторыя згрупаваныя даныя таксама будуць карысныя для праграм і партнёраў Google, напрыклад распрацоўшчыкаў Android. Гэта налада ўключана ўладальнікам. Калі налада "Дадатковыя дзеянні ў інтэрнэце і праграмах" уключана, адпаведныя даныя могуць захоўвацца ва Уліковым запісе Google.</translation>
 <translation id="7207631048330366454">Пошук праграм</translation>
 <translation id="7210499381659830293">Дабавачныя прынтары</translation>
+<translation id="7211890396916697230">Наладзіць eSIM-карту</translation>
 <translation id="7212097698621322584">Каб змяніць бягучы PIN-код, увядзіце яго. Калі вы не ведаеце PIN-код, вам трэба будзе скінуць ключ бяспекі, а затым стварыць новы PIN-код.</translation>
 <translation id="7216409898977639127">Сотавы аператар</translation>
 <translation id="7216595297012131718">Упарадкуйце мовы, як вам трэба</translation>
@@ -5177,6 +5217,7 @@
 <translation id="7456847797759667638">Адкрыць размяшчэнне...</translation>
 <translation id="7458168200501453431">Выкарыстоўвае тую ж праверку правапісу, што ў Google Пошуку. Уведзены ў браўзер тэкст адпраўляецца ў Google.</translation>
 <translation id="7460045493116006516">Бягучая тэма, якую вы ўсталявалі</translation>
+<translation id="7461729991508684543">{NUM_DAYS,plural, =1{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> сёння. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" />}one{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" />}few{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" />}many{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" />}other{Вы выкарыстоўваеце дамен "<ph name="DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня. <ph name="LINK_BEGIN" />Больш падрабязна<ph name="LINK_END" />}}</translation>
 <translation id="7461924472993315131">PIN-код</translation>
 <translation id="746216226901520237">Наступны раз прылада <ph name="DEVICE_TYPE" /> будзе разблакіравана з дапамогай вашага тэлефона. Вы можаце выключыць Smart Lock у Наладах.</translation>
 <translation id="7463006580194749499">Дадаць карыстальніка</translation>
@@ -5187,6 +5228,7 @@
 <translation id="747114903913869239">Памылка: не ўдалося дэкадаваць пашырэнне</translation>
 <translation id="7473891865547856676">Не, дзякуй</translation>
 <translation id="747459581954555080">Аднавіць усе</translation>
+<translation id="747507174130726364">{NUM_DAYS,plural, =1{Прыладу трэба вярнуць неадкладна}one{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня}few{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён}many{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён}other{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня}}</translation>
 <translation id="7475671414023905704">URL-адрас для забытага пароля Netscape</translation>
 <translation id="7476454130948140105">Зарад акумулятара занадта нізкі для абнаўлення (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477793887173910789">Кіруйце музыкай, відэа і шмат чым іншым</translation>
@@ -5215,6 +5257,7 @@
 <translation id="7503985202154027481">На ключы бяспекі будзе пакінуты запіс пра наведванне вамі гэтага вэб-сайта.</translation>
 <translation id="750509436279396091">Адкрыць папку спамповак</translation>
 <translation id="7506093026325926984">Пароль будзе захаваны на гэтай прыладзе</translation>
+<translation id="7506130076368211615">Наладзіць новую сетку</translation>
 <translation id="7506541170099744506">Ваша прылада (<ph name="DEVICE_TYPE" />) паспяхова зарэгістравана для карпаратыўнага кіравання.</translation>
 <translation id="7507207699631365376">Азнаёміцца з <ph name="BEGIN_LINK" />палітыкай прыватнасці<ph name="END_LINK" /> гэтага пастаўшчыка</translation>
 <translation id="7507930499305566459">Сертыфікат паведамлення аб стане</translation>
@@ -5316,6 +5359,7 @@
 <translation id="7643932971554933646">Дазволіць сайту праглядаць файлы?</translation>
 <translation id="7644543211198159466">Колер і тэма</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (уладальнік)</translation>
+<translation id="7645300866575922143">Дадаць сотавае падключэнне</translation>
 <translation id="7645681574855902035">Скасоўваецца стварэнне рэзервовай копіі кантэйнера Linux</translation>
 <translation id="7646772052135772216">Сінхранізацыя пароляў не працуе</translation>
 <translation id="7647403192093989392">Няма нядаўніх дзеянняў</translation>
@@ -5336,6 +5380,7 @@
 <translation id="7664620655576155379">Прылада Bluetooth не падтрымліваецца: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="7665082356120621510">Зарэзерваваць памер</translation>
 <translation id="7665369617277396874">Дадаць уліковы запіс</translation>
+<translation id="7668002322287525834">{NUM_WEEKS,plural, =1{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_WEEKS} тыдня}one{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_WEEKS} тыдня}few{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_WEEKS} тыдняў}many{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_WEEKS} тыдняў}other{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_WEEKS} тыдня}}</translation>
 <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{Няправільны PIN-код. У вас засталася адна спроба.}one{Няправільны PIN-код. У вас засталася # спроба.}few{Няправільны PIN-код. У вас засталося # спробы.}many{Няправільны PIN-код. У вас засталося # спроб.}other{Няправільны PIN-код. У вас засталося # спробы.}}</translation>
 <translation id="7671130400130574146">Выкарыстоўваць сістэмныя загаловак і межы акна</translation>
 <translation id="767127784612208024">Пацвердзіце скід дотыкам да ключа</translation>
@@ -5518,6 +5563,7 @@
 <translation id="7855678561139483478">Перамясціць укладку ў новае акно</translation>
 <translation id="7857117644404132472">Дадаць выключэнне</translation>
 <translation id="7857949311770343000">Ці з'яўляецца старонка новай укладкі той, якую вы чакалі ўбачыць?</translation>
+<translation id="785948723952233770">Са студзеня выбар гэтага варыянта падтрымлівацца не будзе. Звярніцеся да адміністратара.</translation>
 <translation id="786073089922909430">Сэрвіс: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;Спампоўкі</translation>
 <translation id="7864539943188674973">Адключыць Bluetooth</translation>
@@ -5542,6 +5588,7 @@
 <translation id="7893008570150657497">Доступ да фота, музыкі і іншых файлаў мультымедыя на камп'ютары</translation>
 <translation id="7893153962594818789">Bluetooth выключаны на гэтай прыладзе <ph name="DEVICE_TYPE" />. Увядзіце пароль і ўключыце Bluetooth.</translation>
 <translation id="7893393459573308604"><ph name="ENGINE_NAME" /> (стандартна)</translation>
+<translation id="7897865097438730075">З 31 снежня 2020 г. Google Cloud Print падтрымлівацца не будзе. Звярніцеся да адміністратара.</translation>
 <translation id="7897900149154324287">У далейшым не забывайце адключаць здымную прыладу праз праграму "Файлы", перад тым як вымаць яе, інакш вы можаце страціць даныя.</translation>
 <translation id="7898627924844766532">Пакінуць у панэлі інструментаў</translation>
 <translation id="7898725031477653577">Заўсёды перакладаць</translation>
@@ -5679,6 +5726,7 @@
 <translation id="8054563304616131773">Увядзіце сапраўдны адрас электроннай пошты</translation>
 <translation id="8054921503121346576">Падключана USB-клавіятура</translation>
 <translation id="8058655154417507695">Год заканчэння тэрміну дзеяння</translation>
+<translation id="8058811362315390556">З 31 снежня 2020 г. Google Cloud Print падтрымлівацца не будзе</translation>
 <translation id="8059417245945632445">&amp;Праверыць прылады</translation>
 <translation id="8059456211585183827">Няма даступных прынтараў, якія можна захаваць.</translation>
 <translation id="8061091456562007989">Вярнуць ранейшыя налады</translation>
@@ -5752,6 +5800,7 @@
 <translation id="8141584439523427891">Ідзе адкрыццё ў альтэрнатыўным браўзеры</translation>
 <translation id="8141725884565838206">Кіраванне паролямі</translation>
 <translation id="8143442547342702591">Няправільная праграма</translation>
+<translation id="8143951647992294073">Выбраць <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8146177459103116374">Калі вы ўжо рэгістраваліся на гэтай прыладзе, вы можаце <ph name="LINK2_START" />ўвайсці як існуючы карыстальнік<ph name="LINK2_END" />.</translation>
 <translation id="8146793085009540321">Не атрымалася ўвайсці ў сістэму. Звярніцеся да адміністратара або паўтарыце спробу.</translation>
 <translation id="8148760431881541277">Абмежаваць уваход</translation>
@@ -6140,6 +6189,7 @@
 <translation id="8648544143274677280">Сайт <ph name="SITE_NAME" /> запытвае наступныя дазволы: <ph name="FIRST_PERMISSION" />, <ph name="SECOND_PERMISSION" /> і іншыя</translation>
 <translation id="8650543407998814195">У вас больш няма доступу да старога профілю, але вы можаце выдаліць яго.</translation>
 <translation id="8651585100578802546">Перазагрузіць гэту старонку прымусова</translation>
+<translation id="8651940856056821914">Chrome аўтаматычна стварае субцітры з дапамогай функцыі "Імгненныя субцітры" (яны пакуль што даступныя толькі на англійскай мове)</translation>
 <translation id="8652400352452647993">Не ўдалося ўпакаваць пашырэнне</translation>
 <translation id="8654151524613148204">Файл занадта вялікі для вашага камп'ютара. Прабачце.</translation>
 <translation id="8655295600908251630">Версія</translation>
@@ -6260,6 +6310,7 @@
 <translation id="8783834180813871000">Увядзіце код спалучэння Bluetooth, затым націсніце "Назад" або "Увод".</translation>
 <translation id="8784626084144195648">Сярэдняе па аб'яднаных даных</translation>
 <translation id="8785622406424941542">Пяро</translation>
+<translation id="8786697630358316925">Са студзеня выбар гэтага варыянта падтрымлівацца не будзе. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8787254343425541995">Дазволіць проксі-серверы для абагуленых сетак</translation>
 <translation id="8791534160414513928">Адпраўляць запыт на забарону адсочвання пры праглядзе старонак у інтэрнэце</translation>
 <translation id="8794025342371547160">IP-адрас з абмежаваннямі</translation>
@@ -6602,6 +6653,7 @@
 <translation id="9209563766569767417">Ідзе праверка налад кантэйнера Linux</translation>
 <translation id="9209689095351280025">Сайты не могуць выкарыстоўваць файлы cookie для адсочвання вас у інтэрнэце</translation>
 <translation id="9211177926627870898">Патрабуецца абнаўленне</translation>
+<translation id="9211904674129619383">З 31 снежня выкарыстанне воблачных прынтараў падтрымлівацца не будзе. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="9214520840402538427">Памылка!  Была пратэрмінавана ініцыялізацыя атрыбутаў installation-time ("усталяванне-час").  Звярніцеся ў службу падтрымкі.</translation>
 <translation id="9214695392875603905">Кекс</translation>
 <translation id="9215293857209265904">Дададзена пашырэнне "<ph name="EXTENSION_NAME" />"</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 83a1d40..1de8300 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -303,6 +303,7 @@
 <translation id="1361164813881551742">নিজে যোগ করুন</translation>
 <translation id="1361655923249334273">অব্যবহৃত</translation>
 <translation id="1361872463926621533">চালু করার সময় সাউন্ড চালান</translation>
+<translation id="1362865166188278099">মেকানিকাল সমস্যা হয়েছে। প্রিন্টারটি চেক করুন</translation>
 <translation id="1363585519747660921">ইউএসবি প্রিন্টার কনফিগার করা প্রয়োজন</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> আপনার <ph name="BEGIN_LINK" />ব্রাউজার ম্যানেজ করে<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">আপনার <ph name="DEVICE_TYPE" />-এ Linux টুল, এডিটর, এবং IDEs চালান। &lt;a target="_blank" href="<ph name="URL" />"&gt;আরও জানুন&lt;/a&gt;</translation>
@@ -317,7 +318,7 @@
 <translation id="1380028686461971526">নেটওয়ার্কে অটোমেটিক কানেক্ট করুন</translation>
 <translation id="1380436189840894976">যেকোনও প্রকারে ছদ্মবেশী মোড থেকে বেরিয়ে আসতে চান?</translation>
 <translation id="1383861834909034572">সম্পন্ন হলে খোলে</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1386387014181100145">আপনি কেমন আছেন৷</translation>
 <translation id="138784436342154190">ডিফল্ট শুরুর পৃষ্ঠা পুনরুদ্ধার করবেন?</translation>
 <translation id="1390548061267426325">নিয়মিত ট্যাব রূপে খুলুন</translation>
@@ -1361,6 +1362,7 @@
 <translation id="2636625531157955190">Chrome এই ইমেজটি অ্যাক্সেস করতে পারে না৷</translation>
 <translation id="2637400434494156704">ভুল পিন। আপনি আর একবার চেষ্টা করতে পারবেন।</translation>
 <translation id="2638662041295312666">সাইন-ইন স্ক্রিনের ছবি</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> অ্যালবাম বেছে নেওয়া হয়েছে</translation>
 <translation id="264083724974021997">আপনার ফোনে কানেক্ট করুন - ডায়ালগ</translation>
 <translation id="2641065435954454414">ডাউনলোড করার প্রস্তুতি চলছে</translation>
 <translation id="2642111877055905627">ফুটবল</translation>
@@ -1942,6 +1944,7 @@
 <translation id="338583716107319301">পৃথককারী</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />টির মধ্যে <ph name="NETWORK_INDEX" /> নম্বর নেটওয়ার্ক, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, সিগন্যাল: <ph name="SIGNAL_STRENGTH" />%, আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে, কানেক্ট করুন</translation>
 <translation id="3387614642886316601">উন্নত বানান পরীক্ষা ব্যবহার করুন</translation>
+<translation id="3388094447051599208">আউটপুট ট্রে প্রায় ভর্তি হয়ে গেছে</translation>
 <translation id="3388788256054548012">এই ফাইল এনক্রিপ্ট করা আছে। ফাইলের মালিককে সেটি ডিক্রিপ্ট করতে বলুন।</translation>
 <translation id="3390013585654699824">অ্যাপের বিবরণ</translation>
 <translation id="3390741581549395454">Linux অ্যাপ ও ফাইলের ব্যাক-আপ নেওয়া হয়ে গেছে। শীঘ্রই আপগ্রেড করা শুরু হবে।</translation>
@@ -2019,6 +2022,7 @@
 <translation id="3471876058939596279">ভিডিওর জন্য একসাথে HDMI এবং USB টাইপ-সি পোর্ট ব্যবহার করা যাবে না। অন্য ভিডিও পোর্ট ব্যবহার করুন।</translation>
 <translation id="3473241910002674503">ট্যাবলেট মোডে বোতাম ব্যবহার করে হোম পেজে যান, ফিরে আসুন এবং একটি অ্যাপ থেকে আরেকটি অ্যাপে যান।</translation>
 <translation id="3473479545200714844">স্ক্রিন ম্যাগনিফায়ার</translation>
+<translation id="347394413229268704">পরে পড়ুন</translation>
 <translation id="3475843873335999118">দুঃখিত, আপনার আঙ্গুলের ছাপ এখনো শনাক্ত করা যায়নি। অনুগ্রহ করে আপনার পাসওয়ার্ড লিখুন।</translation>
 <translation id="3476303763173086583">ব্যবহার এবং ডায়াগনস্টিক ডেটা পাঠান। Google-এ নিজে থেকে ডায়াগনস্টিক, ডিভাইস এবং অ্যাপ ব্যবহারের ডেটা পাঠিয়ে, আপনার সন্তানের Android অভিজ্ঞতাকে উন্নত করতে সাহায্য করুন। এটি আপনার সন্তানকে শনাক্ত করতে ব্যবহার করা হবে না এবং সিস্টেম ও অ্যাপের স্থিতিশীলতা এবং অন্যান্য উন্নতিতে সাহায্য করবে। ব্যবহারকারীদের কিছু সম্মিলিত ডেটা Google অ্যাপ এবং Android ডেভেলপারদের মতো পার্টনারদের কাজে লাগবে। এই <ph name="BEGIN_LINK1" />সেটিং<ph name="END_LINK1" /> মালিকের নিয়ন্ত্রণে রয়েছে। এই ডিভাইসের জন্য Google-কে ডায়গনস্টিক এবং ব্যবহারের ডেটা পাঠানোর বিষয়টি মালিক বেছে নিতে পারেন। অতিরিক্ত ওয়েব ও অ্যাপ অ্যাক্টিভিটি সেটিংটি আপনার সন্তানের ডিভাইসের জন্য চালু করা থাকলে, এই ডেটা তাদের Google অ্যাকাউন্টে সেভ করা হতে পারে। <ph name="BEGIN_LINK2" />আরও জানুন<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ওহো!  সিস্টেম আপনার ডিভাইসের জন্য নীতি আনতে পারেনি।</translation>
@@ -2575,6 +2579,7 @@
 <translation id="4107048419833779140">স্টোরেজ ডিভাইসগুলি শনাক্ত করে সরিয়ে দিন</translation>
 <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) এ উইন্ডো সরান</translation>
 <translation id="4110490973560452005">ডাউনলোড হয়ে গেছে: <ph name="FILE_NAME" />। Shift+F6 প্রেস করে ডাউনলোড বার এরিয়াতে যান।</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> অ্যালবাম বেছে নিন</translation>
 <translation id="4110895898888439383">উচ্চ কনট্রাস্ট মোডে ওয়েব ব্রাউজ করুন</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (অফলাইন)</translation>
 <translation id="4115002065223188701">নেটওয়ার্ক সীমার বাইরে</translation>
@@ -3058,6 +3063,7 @@
 <translation id="4780321648949301421">এইভাবে পৃষ্ঠা সেভ করুন...</translation>
 <translation id="4785719467058219317">আপনি এমন একটি নিরাপত্তা কী ব্যবহার করছেন যেটি এই ওয়েবসাইটের সাথে রেজিস্টার করা নেই</translation>
 <translation id="4788092183367008521">আপনার নেটওয়ার্ক কানেকশন পরীক্ষা করে আবার চেষ্টা করুন।</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" />টি ফটো</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;কোনও সমস্যা অভিযোগ করুন...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />আপনার অ্যাডমিনিস্ট্রেটর<ph name="END_LINK" /> আপডেটগুলি ম্যানেজ করে</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index b77122a..ba3e40f9 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -367,7 +367,7 @@
 <translation id="143027896309062157">Čitanje i mijenjanje svih vaših podataka na računaru i web lokacijama koje posjetite</translation>
 <translation id="1430915738399379752">Štampaj</translation>
 <translation id="1431188203598586230">Zadnje ažuriranje softvera</translation>
-<translation id="1431432486300429272">Google može koristiti tvoju historiju pregledanja za personaliziranje Pretraživanja i drugih Googleovih usluga. Ti ili tvoj roditelj to uvijek možete promijeniti na myaccount.google.com/activitycontrols/search</translation>
+<translation id="1431432486300429272">Google može koristiti tvoju historiju pregledanja za personalizaciju Pretraživanja i drugih Googleovih usluga. Ti ili tvoj roditelj to uvijek možete promijeniti na myaccount.google.com/activitycontrols/search</translation>
 <translation id="1432581352905426595">Upravljaj pretraživačima</translation>
 <translation id="1433811987160647649">Pitaj prije pristupanja</translation>
 <translation id="1434696352799406980">Ovo će poništiti vašu stranicu za pokretanje, stranicu nove kartice, pretraživač i zakačene stranice. Također će onemogućiti sve ekstenzije i obrisati privremene podatke poput kolačića. Vaše oznake, historija i sačuvane lozinke se neće obrisati.</translation>
@@ -3896,7 +3896,7 @@
 <translation id="5794414402486823030">Uvijek otvori u prikazivaču sistema</translation>
 <translation id="5794700615121138172">Dijeljeni folderi na Linuxu</translation>
 <translation id="5794786537412027208">Napusti sve Chrome aplikacije</translation>
-<translation id="5797070761912323120">Google može koristiti vašu historiju za personaliziranje Pretraživanja, oglasa i drugih Googleovih usluga</translation>
+<translation id="5797070761912323120">Google može koristiti vašu historiju za personalizaciju Pretraživanja, oglasa i drugih Googleovih usluga</translation>
 <translation id="579915268381781820">Vaš sigurnosni ključ je uklonjen.</translation>
 <translation id="5799508265798272974">Linux virtuelni uređaj: <ph name="LINUX_VM_NAME" /></translation>
 <translation id="5800020978570554460">Odredišna datoteka skraćena je ili uklonjena nakon posljednjeg preuzimanja.</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index ca1b85c..49add0ca 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2790,7 +2790,7 @@
 <translation id="4394049700291259645">Desactiva</translation>
 <translation id="439817266247065935">El dispositiu no s'ha apagat correctament. Reinicia Linux per fer servir les aplicacions de Linux.</translation>
 <translation id="4400367121200150367">Els llocs que no desen contrasenyes mai es mostraran aquí</translation>
-<translation id="4400632832271803360">Mantén premuda la tecla Menú d'aplicacions per canviar el comportament de les tecles de la fila superior</translation>
+<translation id="4400632832271803360">Mantén premuda la tecla del menú d'aplicacions per canviar el comportament de les tecles de la fila superior</translation>
 <translation id="4400963414856942668">Pots fer clic a l'estrella per afegir una pestanya a les adreces d'interès</translation>
 <translation id="4403775189117163360">Tria una altra carpeta</translation>
 <translation id="4404136731284211429">Torna a analitzar</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 9409adb1..51394109 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Přidat ručně</translation>
 <translation id="1361655923249334273">Nepoužit</translation>
 <translation id="1361872463926621533">Přehrát zvuk při spuštění</translation>
+<translation id="1362865166188278099">Mechanický problém. Zkontrolujte tiskárnu</translation>
 <translation id="1363585519747660921">Tiskárnu USB je potřeba nakonfigurovat</translation>
 <translation id="1365180424462182382">Váš <ph name="BEGIN_LINK" />prohlížeč je spravován<ph name="END_LINK" /> doménou <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Spouštějte ve svém zařízení <ph name="DEVICE_TYPE" /> nástroje, editory a prostředí IDE pro Linux. &lt;a target="_blank" href="<ph name="URL" />"&gt;Další informace&lt;/a&gt;</translation>
@@ -1372,6 +1373,7 @@
 <translation id="2636625531157955190">Chrome nemůže přistupovat k obrázku.</translation>
 <translation id="2637400434494156704">Nesprávný PIN. Zbývá ještě jeden pokus.</translation>
 <translation id="2638662041295312666">Přihlašovací obrázek</translation>
+<translation id="2640549051766135490">Je vybráno album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Připojení k telefonu – dialogové okno</translation>
 <translation id="2641065435954454414">Příprava stahování</translation>
 <translation id="2642111877055905627">Fotbalový míč</translation>
@@ -1768,7 +1770,7 @@
 <translation id="3124111068741548686">Popisovače – UŽIVATEL</translation>
 <translation id="3126026824346185272">Ctrl</translation>
 <translation id="3127156390846601284">Touto akcí vymažete všechna data uložená v zařízení pro všechny zobrazené weby. Chcete pokračovat?</translation>
-<translation id="3127860049873093642">Chcete-li předejít problémům s nabíjením a výkonem, používejte kompatibilní síťový adaptér Dell nebo USB Type-C.</translation>
+<translation id="3127860049873093642">Chcete-li předejít problémům s nabíjením a výkonem, používejte kompatibilní napájecí adaptér Dell nebo USB Type-C.</translation>
 <translation id="3127862849166875294">Změnit velikost disku pro Linux</translation>
 <translation id="3129173833825111527">Levý okraj</translation>
 <translation id="3129215702932019810">Při spouštění aplikace došlo k chybě</translation>
@@ -1957,6 +1959,7 @@
 <translation id="338583716107319301">Oddělovač</translation>
 <translation id="338691029516748599">Síť <ph name="NETWORK_INDEX" /> z <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, síla signálu: <ph name="SIGNAL_STRENGTH" /> %, spravováno administrátorem, připojit</translation>
 <translation id="3387614642886316601">Použít vylepšenou kontrolu pravopisu</translation>
+<translation id="3388094447051599208">Výstupní zásobník je téměř plný</translation>
 <translation id="3388788256054548012">Tento soubor je zašifrovaný. Požádejte vlastníka, aby ho dešifroval.</translation>
 <translation id="3390013585654699824">Podrobnosti o aplikaci</translation>
 <translation id="3390741581549395454">Aplikace a soubory systému Linux byly úspěšně zálohovány. Brzy začne upgradování.</translation>
@@ -2034,6 +2037,7 @@
 <translation id="3471876058939596279">Pro video nelze používat zároveň konektor HDMI i USB Type-C. Použijte pro video jiný konektor.</translation>
 <translation id="3473241910002674503">Umožňuje přejít na domovskou stránku či zpět a přepínat aplikace pomocí tlačítek v režimu tabletu.</translation>
 <translation id="3473479545200714844">Lupa obrazovky</translation>
+<translation id="347394413229268704">Přečíst později</translation>
 <translation id="3475843873335999118">Otisk prstu stále nebyl rozpoznán. Zadejte prosím heslo.</translation>
 <translation id="3476303763173086583">Odesílat údaje o využití a diagnostice. Pomozte prostředí Android svého dítěte zlepšit tím, že necháte do Googlu automaticky odesílat diagnostické údaje a údaje o využití zařízení a aplikací. Tyto údaje nebudou používány ke zjištění totožnosti dítěte a pomohou nám se zvyšováním stability systému a aplikací a dalšími vylepšeními. Některá souhrnná data budou moci využít také naši partneři, např. vývojáři aplikací pro Android. Toto nastavení je <ph name="BEGIN_LINK1" />vyžadováno<ph name="END_LINK1" /> vlastníkem. Vlastník může zvolit, že se diagnostické údaje a údaje o využití z tohoto zařízení mají odesílat do Googlu. Pokud má dítě zapnuté dodatečné nastavení Aktivita na webu a v aplikacích, mohou se tato data ukládat do jeho účtu Google. <ph name="BEGIN_LINK2" />Další informace<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Jejda! Systému se nepodařilo načíst zásady pro vaše zařízení.</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">Identifikovat a vysouvat úložná zařízení</translation>
 <translation id="4109135793348361820">Přesunout okno k uživateli <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Stažení bylo dokončeno: <ph name="FILE_NAME" />. Stisknutím kombinace kláves Shift+F6 přejdete na lištu se staženými soubory.</translation>
+<translation id="4110686435123617899">Vyberte album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Prohlížejte internet v režimu vysokého kontrastu</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Síť je mimo dosah</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">Uložit stránku jako...</translation>
 <translation id="4785719467058219317">Používáte bezpečnostní klíč, který pro tento web není zaregistrován</translation>
 <translation id="4788092183367008521">Zkontrolujte připojení k síti a zkuste to znovu.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> fotka</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Nahlásit problém...</translation>
 <translation id="4794810983896241342">Aktualizace spravuje <ph name="BEGIN_LINK" />administrátor<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 8b03e96..33da42f8a 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -4596,7 +4596,7 @@
 <translation id="6691936601825168937">&amp;Vorwärts</translation>
 <translation id="6693745645188488741">{COUNT,plural, =1{1 Seite}other{{COUNT} Seiten}}</translation>
 <translation id="6697492270171225480">Vorschläge für ähnliche Seiten anzeigen, wenn eine Seite nicht gefunden werden kann</translation>
-<translation id="6697690052557311665">Wenn Sie Ordner freigeben möchten, rechtsklicken Sie in der App "Dateien" auf einen Ordner und wählen sie "Mit Linux teilen" aus.</translation>
+<translation id="6697690052557311665">Zur Freigabe eines Ordners rechtsklicken Sie ihn in der App "Dateien" und wählen "Mit Linux teilen" aus.</translation>
 <translation id="6698810901424468597">Eigene Daten auf <ph name="WEBSITE_1" /> und <ph name="WEBSITE_2" /> lesen und ändern</translation>
 <translation id="6699883973579689168">Sie können jetzt alle Ihre Google-Konten an einem Ort verwalten. Der Zugriff und die Berechtigungen, die Sie Apps, Websites und Erweiterungen in Chrome und Google Play gegeben haben, sind jetzt möglicherweise für alle Ihre angemeldeten Konten gültig. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation>
 <translation id="6700093763382332031">Sperre für SIM-Karte</translation>
@@ -4832,7 +4832,7 @@
 <translation id="6981982820502123353">Bedienungshilfen</translation>
 <translation id="6983507711977005608">Verbindung mit Instant Tethering-Netzwerk trennen</translation>
 <translation id="6983783921975806247">Registrierte OID</translation>
-<translation id="6984299437918708277">Wählen Sie ein Bild aus, das auf der Anmeldeseite für Ihr Konto zu sehen sein soll</translation>
+<translation id="6984299437918708277">Wählen Sie ein Bild für Ihr Konto aus, das auf der Anmeldeseite zu sehen sein soll</translation>
 <translation id="6985235333261347343">Microsoft Key Recovery Agent</translation>
 <translation id="698524779381350301">Automatisch Zugriff auf die folgenden Websites gewähren</translation>
 <translation id="6985607387932385770">Drucker</translation>
@@ -5153,7 +5153,7 @@
 <translation id="7392118418926456391">Fehler beim Virenscan</translation>
 <translation id="7392915005464253525">Geschlossenes Fenster wieder öffn&amp;en</translation>
 <translation id="7393472013449507620">Einstellungen mit dem Platzhalter "*" werden nicht mehr unterstützt. Kontaktieren Sie den Entwickler der Erweiterung oder Ihren Administrator, um <ph name="BEGIN_LINK" />diese Einstellungen zu ändern<ph name="END_LINK" />.</translation>
-<translation id="7396017167185131589">Geteilte Ordner werden hier angezeigt</translation>
+<translation id="7396017167185131589">Freigegebene Ordner erscheinen hier</translation>
 <translation id="7396845648024431313"><ph name="APP_NAME" /> wird beim Systemstart gestartet und auch dann weiter im Hintergrund ausgeführt, wenn Sie alle anderen <ph name="PRODUCT_NAME" />-Fenster geschlossen haben.</translation>
 <translation id="7399045143794278225">Synchronisierung anpassen</translation>
 <translation id="7400418766976504921">URL</translation>
@@ -6385,7 +6385,7 @@
 <translation id="8875520811099717934">Linux-Upgrade</translation>
 <translation id="8876307312329369159">Diese Einstellung kann nicht in einer Demositzung geändert werden.</translation>
 <translation id="8877448029301136595">[übergeordnetes Verzeichnis]</translation>
-<translation id="8879284080359814990">Tab "Anzeigen al&amp;s"</translation>
+<translation id="8879284080359814990">&amp;Als Tab anzeigen</translation>
 <translation id="8879921471468674457">Anmeldedaten speichern</translation>
 <translation id="8881020143150461183">Versuchen Sie es noch einmal. Für technischen Support wenden Sie sich bitte an <ph name="CARRIER_NAME" />.</translation>
 <translation id="8883273463630735858">Touchpadbeschleunigung aktivieren</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 7e31e7b7..e35b9a5d 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Agregar manualmente</translation>
 <translation id="1361655923249334273">No utilizado</translation>
 <translation id="1361872463926621533">Reproducir sonidos en el inicio</translation>
+<translation id="1362865166188278099">Hubo un problema mecánico. Verifica la impresora.</translation>
 <translation id="1363585519747660921">La impresora USB debe configurarse</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> administra tu <ph name="BEGIN_LINK" />navegador<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">Ejecuta IDE, editores y herramientas de Linux en tu <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Más información&lt;/a&gt;</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chrome no puede acceder a la imagen.</translation>
 <translation id="2637400434494156704">El PIN es incorrecto. Te queda un intento.</translation>
 <translation id="2638662041295312666">Imagen de acceso</translation>
+<translation id="2640549051766135490">Se seleccionó el álbum <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Conéctate a tu teléfono: diálogo</translation>
 <translation id="2641065435954454414">Preparando la descarga</translation>
 <translation id="2642111877055905627">Pelota de fútbol</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">Separador</translation>
 <translation id="338691029516748599">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%, administrada por tu administrador, conectar</translation>
 <translation id="3387614642886316601">Usar el corrector ortográfico mejorado</translation>
+<translation id="3388094447051599208">La bandeja de salida está casi completa</translation>
 <translation id="3388788256054548012">Este archivo está encriptado. Pídele al propietario que lo desencripte.</translation>
 <translation id="3390013585654699824">Detalles de la app</translation>
 <translation id="3390741581549395454">Se realizó correctamente la copia de seguridad de los archivos y las apps de Linux. En breve, se iniciará la actualización.</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">No se pueden usar los puertos HDMI y USB tipo C al mismo tiempo para transmitir video. Usa otro puerto de video.</translation>
 <translation id="3473241910002674503">Con los botones del modo tablet, puedes navegar hacia la pantalla de inicio, regresar y cambiar de apps.</translation>
 <translation id="3473479545200714844">Lupa</translation>
+<translation id="347394413229268704">Leer más tarde</translation>
 <translation id="3475843873335999118">No se puede reconocer tu huella digital. Ingresa tu contraseña.</translation>
 <translation id="3476303763173086583">Envía datos de uso y diagnóstico. Para ayudar a mejorar la experiencia de Android de tu hijo, envía a Google datos de diagnóstico y uso de dispositivos y apps de forma automática. Esta información no se usará para identificar a tu hijo y ayudará a lograr la estabilidad de las apps y el sistema, entre otras mejoras. Algunos datos agregados también ayudarán a las apps y los socios de Google, como los desarrolladores de Android. El propietario controla esta <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" />. Es posible que el propietario decida enviar a Google datos de uso y diagnóstico de este dispositivo. Si habilitaste la "Actividad de web y de aplicaciones adicional" en la Cuenta de Google de tu hijo, es posible que se almacenen estos datos en esa cuenta. <ph name="BEGIN_LINK2" />Más información<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">El sistema no pudo recuperar la política para tu dispositivo.</translation>
@@ -2592,6 +2596,7 @@
 <translation id="4107048419833779140">Identificar y expulsar los dispositivos de almacenamiento</translation>
 <translation id="4109135793348361820">Mover ventana a <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Se completó la descarga: <ph name="FILE_NAME" />. Presiona mayúscula + F6 para ir al área de la barra de descargas.</translation>
+<translation id="4110686435123617899">Seleccionar álbum <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Navegar en la Web en el modo de contraste alto</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (sin conexión)</translation>
 <translation id="4115002065223188701">La red está fuera de alcance</translation>
@@ -3078,6 +3083,7 @@
 <translation id="4780321648949301421">Guardar página como...</translation>
 <translation id="4785719467058219317">Estás usando una llave de seguridad que no se registró con este sitio web</translation>
 <translation id="4788092183367008521">Comprueba la conexión de red y vuelve a intentarlo.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">Informar de un &amp;problema...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />El administrador<ph name="END_LINK" /> gestiona las actualizaciones</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 9687110..269c4f3 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Añadir manualmente</translation>
 <translation id="1361655923249334273">Sin utilizar</translation>
 <translation id="1361872463926621533">Reproducir sonido al iniciar</translation>
+<translation id="1362865166188278099">Problema mecánico. Comprueba la impresora.</translation>
 <translation id="1363585519747660921">Es necesario configurar la impresora USB</translation>
 <translation id="1365180424462182382">El <ph name="BEGIN_LINK" />navegador está gestionado<ph name="END_LINK" /> por <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Ejecuta herramientas, editores e IDEs de Linux en tu <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Más información&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome no puede acceder a la imagen.</translation>
 <translation id="2637400434494156704">PIN incorrecto. Solo te queda un intento.</translation>
 <translation id="2638662041295312666">Imagen de inicio de sesión</translation>
+<translation id="2640549051766135490">Álbum <ph name="TITLE" /> (<ph name="DESC" />) seleccionado</translation>
 <translation id="264083724974021997">Conectar con tu teléfono (cuadro de diálogo)</translation>
 <translation id="2641065435954454414">Preparando descarga</translation>
 <translation id="2642111877055905627">Balón de fútbol</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Separador</translation>
 <translation id="338691029516748599">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" /> %, gestionada por el administrador, conectar</translation>
 <translation id="3387614642886316601">Usar la revisión ortográfica mejorada</translation>
+<translation id="3388094447051599208">La bandeja de salida está casi llena</translation>
 <translation id="3388788256054548012">Este archivo está cifrado. Pídele al propietario que lo descifre.</translation>
 <translation id="3390013585654699824">Información de la aplicación</translation>
 <translation id="3390741581549395454">La copia de seguridad de las aplicaciones y archivos de Linux se ha completado correctamente. La actualización empezará en breve.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">No se pueden usar los puertos HDMI y USB tipo C para vídeo al mismo tiempo. Usa otro puerto de vídeo.</translation>
 <translation id="3473241910002674503">Desplázate al menú de aplicaciones, vuelve atrás y cambia de aplicación con botones en el modo tablet.</translation>
 <translation id="3473479545200714844">Lupa</translation>
+<translation id="347394413229268704">Leer más adelante</translation>
 <translation id="3475843873335999118">Sigue sin reconocerse tu huella digital. Introduce la contraseña.</translation>
 <translation id="3476303763173086583">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. El propietario ha aplicado este <ph name="BEGIN_LINK1" />ajuste<ph name="END_LINK1" />. El propietario puede elegir si se envían a Google datos de uso y diagnóstico de este dispositivo. 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_LINK2" />Más información<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">¡Vaya! El sistema no ha podido recuperar la política para tu dispositivo.</translation>
@@ -2594,6 +2598,7 @@
 <translation id="4107048419833779140">Identificar y expulsar dispositivos de almacenamiento</translation>
 <translation id="4109135793348361820">Mover ventana a <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Descarga completa: <ph name="FILE_NAME" />. Pulsa Mayús+F6 para desplazarte al área de la barra de descargas.</translation>
+<translation id="4110686435123617899">Seleccionar álbum <ph name="TITLE" />: <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Navega por la Web con el modo de contraste alto</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (sin conexión)</translation>
 <translation id="4115002065223188701">La red está fuera del alcance</translation>
@@ -3080,6 +3085,7 @@
 <translation id="4780321648949301421">Guardar página como...</translation>
 <translation id="4785719467058219317">Estás usando una llave de seguridad que no se ha registrado en este sitio web</translation>
 <translation id="4788092183367008521">Revisa tu conexión de red y vuelve a intentarlo.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Notificar un error...</translation>
 <translation id="4794810983896241342">Las actualizaciones las gestiona <ph name="BEGIN_LINK" />tu administrador<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 193646e..7d3c1f2 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Gehitu eskuz</translation>
 <translation id="1361655923249334273">Erabili gabe</translation>
 <translation id="1361872463926621533">Erreproduzitu soinua abioan</translation>
+<translation id="1362865166188278099">Arazo mekanikoa. Egiaztatu inprimagailua.</translation>
 <translation id="1363585519747660921">USB bidezko inprimagailua konfiguratu egin behar da</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> da <ph name="BEGIN_LINK" />arakatzailearen kudeatzailea<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">Abiarazi Linux tresnak, editoreak eta IDEak <ph name="DEVICE_TYPE" /> gailuan. &lt;a target="_blank" href="<ph name="URL" />"&gt;Lortu informazio gehiago&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome-k ezin du irudia atzitu.</translation>
 <translation id="2637400434494156704">Okerreko PIN kodea. Saiakera bakarra geratzen zaizu.</translation>
 <translation id="2638662041295312666">Saioa hasteko irudia</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> (<ph name="DESC" />) albuma hautatu da</translation>
 <translation id="264083724974021997">Konektatu telefonora - Leihoa</translation>
 <translation id="2641065435954454414">Deskarga prestatzen</translation>
 <translation id="2642111877055905627">Futboleko baloia</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Bereizlea</translation>
 <translation id="338691029516748599"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> sarea. <ph name="NETWORK_NAME" /> (<ph name="SECURITY_STATUS" />). Seinalearen indarra: % <ph name="SIGNAL_STRENGTH" />. Administratzaileak kudeatua. Konektatu.</translation>
 <translation id="3387614642886316601">Erabili ortografia-zuzentzaile hobetua</translation>
+<translation id="3388094447051599208">Irteerako erretilua ia beteta dago</translation>
 <translation id="3388788256054548012">Fitxategia enkriptatuta dago. Eskatu jabeari hura desenkriptatzeko.</translation>
 <translation id="3390013585654699824">Aplikazioaren xehetasunak</translation>
 <translation id="3390741581549395454">Egin dira Linux aplikazio eta fitxategien babeskopiak. Laster hasiko da bertsio-berritzen.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI eta USB Type-C motako atakak ezin dira bideorako erabili aldi berean. Erabili beste bideo-ataka bat.</translation>
 <translation id="3473241910002674503">Tableta moduan, erabili botoiak orri nagusira joateko, atzera egiteko eta aplikazioz aldatzeko.</translation>
 <translation id="3473479545200714844">Lupa</translation>
+<translation id="347394413229268704">Irakurri geroago</translation>
 <translation id="3475843873335999118">Ez dugu ezagutu hatz-marka. Idatzi pasahitza.</translation>
 <translation id="3476303763173086583">Bidali erabilera- eta diagnostiko-datuak. Bidali diagnostikoak eta gailu zein aplikazioen erabilerari buruzko datuak Google-ri automatikoki haurrak darabiltzan Android zerbitzuak hobetzen laguntzeko. Informazio hori ez da erabiliko haurra identifikatzeko eta, hari esker, sistemaren eta aplikazioen egonkortasuna hobetuko da, besteak beste. Gainera, multzokatutako datu batzuk oso baliagarriak izango dira Google-ren aplikazioak hobetzeko eta bazkideei laguntzeko (adibidez, Android-en garatzaileei). Jabeak konfiguratu du <ph name="BEGIN_LINK1" />ezarpen<ph name="END_LINK1" /> hori. Gailu honen diagnostikoak eta erabilera-datuak Google-ri bidaltzea aukera dezake jabeak. Haurraren kontuko Sareko eta aplikazioetako jarduera gehigarriak ezarpena aktibatuta badago, baliteke datu horiek haren Google-ko kontuan gordetzea. <ph name="BEGIN_LINK2" />Lortu informazio gehiago<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Sistemak ezin izan ditu eskuratu gailuaren gidalerroak.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifikatu eta kanporatu memoria-gailuak</translation>
 <translation id="4109135793348361820">Eraman leihoa <ph name="USER_NAME" /> erabiltzailearen mahaigainera (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Deskargatu da: <ph name="FILE_NAME" />. Sakatu Maius + F6 deskargen barraren eremura iritsi arte.</translation>
+<translation id="4110686435123617899">Hautatu <ph name="TITLE" /> (<ph name="DESC" />) albuma</translation>
 <translation id="4110895898888439383">Arakatu sarea kontraste handiko moduan</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (deskonektatuta)</translation>
 <translation id="4115002065223188701">Sarea ez dago eskuragarri</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Gorde orria honela…</translation>
 <translation id="4785719467058219317">Webgune honetan erregistratuta ez dagoen segurtasun-giltza bat erabiltzen ari zara</translation>
 <translation id="4788092183367008521">Egiaztatu sarera konektatuta zaudela eta saiatu berriro.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> argazki</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">Eman a&amp;razo baten berri…</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />Administratzaileak<ph name="END_LINK" /> kudeatzen ditu eguneratzeak</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index be7fe53d..efd3aa68 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Lisää manuaalisesti</translation>
 <translation id="1361655923249334273">Käyttämätön</translation>
 <translation id="1361872463926621533">Toista ääni käynnistyksen yhteydessä</translation>
+<translation id="1362865166188278099">Mekaaninen ongelma. Tarkista tulostin</translation>
 <translation id="1363585519747660921">USB-tulostin on määritettävä</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Selaintasi ylläpitää<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Käytä Linux-työkaluja, muokkausohjelmia ja integroituja kehitysympäristöjä (<ph name="DEVICE_TYPE" />). &lt;a target="_blank" href="<ph name="URL" />"&gt;Lue lisää&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome ei voi käyttää tätä kuvaa.</translation>
 <translation id="2637400434494156704">Väärä PIN-koodi. Jäljellä on yksi yritys.</translation>
 <translation id="2638662041295312666">Kirjautumiskuva</translation>
+<translation id="2640549051766135490">Albumi <ph name="TITLE" /> <ph name="DESC" /> valittu</translation>
 <translation id="264083724974021997">Muodosta yhteys puhelimeen – valintaikkuna</translation>
 <translation id="2641065435954454414">Valmistellaan latausta</translation>
 <translation id="2642111877055905627">Jalkapallo</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Erotin</translation>
 <translation id="338691029516748599">Verkko <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, signaalin vahvuus <ph name="SIGNAL_STRENGTH" /> %, järjestelmänvalvojan hallinnoima, yhdistä</translation>
 <translation id="3387614642886316601">Käytä parannettua oikeinkirjoituksen tarkistusta</translation>
+<translation id="3388094447051599208">Tulostuslokero on melkein täynnä</translation>
 <translation id="3388788256054548012">Tämä tiedosto on salattu. Pyydä sen omistajaa purkamaan salaus.</translation>
 <translation id="3390013585654699824">Sovelluksen tiedot</translation>
 <translation id="3390741581549395454">Linux-sovellusten ja ‑tiedostojen varmuuskopiointi onnistui. Päivitys alkaa pian.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI- ja USB Type-C ‑portteja ei voi käyttää videota varten yhtä aikaa. Käytä toista videoporttia.</translation>
 <translation id="3473241910002674503">Tablettitilan painikkeilla voit siirtyä aloitusnäytölle, takaisin ja vaihtaa sovellusta.</translation>
 <translation id="3473479545200714844">Ruudun suurentaminen</translation>
+<translation id="347394413229268704">Lue myöhemmin</translation>
 <translation id="3475843873335999118">Sormenjälkeäsi ei tunnistettu vieläkään. Lisää salasana.</translation>
 <translation id="3476303763173086583">Lähetä käyttö- ja diagnostiikkadataa. Auta parantamaan lapsesi Android-käyttökokemusta lähettämällä diagnostiikkadataa sekä laitteen ja sovellusten käyttödataa automaattisesti Googlelle. Dataa ei käytetä lapsesi henkilöllisyyden selvittämiseen – sen avulla parannetaan esimerkiksi järjestelmän ja sovellusten vakautta. Kootusta datasta on hyötyä myös Googlen sovelluksille ja kumppaneille, kuten Android-kehittäjille. Omistaja on ottanut tämän <ph name="BEGIN_LINK1" />asetuksen<ph name="END_LINK1" /> käyttöön. Omistaja voi lähettää tätä laitetta koskevaa diagnostiikka- ja käyttödataa Googlelle. Jos muun verkko- ja sovellustoiminnan asetus on lapsella käytössä, tätä dataa voidaan tallentaa hänen Google-tililleen. <ph name="BEGIN_LINK2" />Lue lisää<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Hups! Järjestelmä ei onnistunut noutamaan käytäntöä laitteellesi.</translation>
@@ -2592,6 +2596,7 @@
 <translation id="4107048419833779140">Tunnistaa ja poistaa tallennuslaitteet</translation>
 <translation id="4109135793348361820">Siirrä ikkuna käyttäjälle <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Lataus valmis: <ph name="FILE_NAME" />. Paina Shift + F6 siirtyäksesi latauspalkkialueelle.</translation>
+<translation id="4110686435123617899">Valitse albumi <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Selaa internetiä Suuri kontrasti ‑tilassa</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Verkon kantama ei riitä</translation>
@@ -3078,6 +3083,7 @@
 <translation id="4780321648949301421">Tallenna sivu nimellä...</translation>
 <translation id="4785719467058219317">Käytät suojausavainta, jota ei ole rekisteröity tällä sivustolla.</translation>
 <translation id="4788092183367008521">Tarkista verkkoyhteys ja yritä uudelleen.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> kuva</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Ilmoita ongelmasta...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />Järjestelmänvalvoja<ph name="END_LINK" /> päättää päivityksistä</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 650302a..f96bf71 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Idagdag nang Manual</translation>
 <translation id="1361655923249334273">Hindi nagamit</translation>
 <translation id="1361872463926621533">Magpatugtog sa startup</translation>
+<translation id="1362865166188278099">Mekanikal na isyu. Tingnan ang printer</translation>
 <translation id="1363585519747660921">Kailangan ng pag-configure ng USB printer</translation>
 <translation id="1365180424462182382">Pinaapamahalaan ang iyong <ph name="BEGIN_LINK" />browser<ph name="END_LINK" /> ng <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Magpatakbo ng mga Linux tool, editor, at IDE sa iyong <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Matuto pa&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Hindi ma-access ng Chrome ang larawan.</translation>
 <translation id="2637400434494156704">Maling PIN. May isa kang pagtatangkang natitira.</translation>
 <translation id="2638662041295312666">Larawan sa pag-sign in</translation>
+<translation id="2640549051766135490">Pinili ang album na <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Kumonekta sa iyong telepono - Dialog</translation>
 <translation id="2641065435954454414">Inihahanda ang pag-download</translation>
 <translation id="2642111877055905627">Bola ng soccer</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Separator</translation>
 <translation id="338691029516748599">Network <ph name="NETWORK_INDEX" /> sa <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" />%, Pinapamahalaan ng iyong Administrator, Kumonekta</translation>
 <translation id="3387614642886316601">Gumamit ng pinahusay na pang-check ng pagbabaybay</translation>
+<translation id="3388094447051599208">Malapit nang mapuno ang tray para sa output</translation>
 <translation id="3388788256054548012">Naka-encrypt ang file na ito. Hilingin sa may-ari nitong i-decrypt ito.</translation>
 <translation id="3390013585654699824">Mga detalye ng app</translation>
 <translation id="3390741581549395454">Na-back up na ang mga app at file ng Linux. Magsisimula na ang pag-upgrade sa loob ng ilang sandali.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Hindi magagamit ang HDMI at USB Type-C port para sa video nang sabay. Gumamit ng ibang port para sa video.</translation>
 <translation id="3473241910002674503">Mag-navigate sa home, pabalik, at lumipat ng app gamit ang mga button sa tablet mode.</translation>
 <translation id="3473479545200714844">Screen magnifier</translation>
+<translation id="347394413229268704">Basahin sa ibang pagkakataon</translation>
 <translation id="3475843873335999118">Paumanhin, hindi pa rin nakikilala ang iyong fingerprint. Pakilagay ang password mo.</translation>
 <translation id="3476303763173086583">Magpadala ng data ng paggamit at diagnostic na data. Tumulong sa pagpapaganda ng karanasan ng iyong anak sa Android sa pamamagitan ng awtomatikong pagpapadala ng diagnostic na data, data ng device, at data ng paggamit sa app sa Google. Hindi ito gagamitin para tukuyin ang pagkakakilanlan ng iyong anak, at makakatulong ito sa stability ng system at ng app, at sa iba pang pagpapahusay. Makakatulong din ang ilang pinagsama-samang data sa mga app at partner ng Google, gaya ng mga developer ng Android. Ipinapatupad ng may-ari ang <ph name="BEGIN_LINK1" />setting<ph name="END_LINK1" /> na ito. Maaaring piliin ng may-aring magpadala ng diagnostic na data at data ng paggamit para sa device na ito sa Google. Kung naka-on ang karagdagang setting ng Aktibidad sa Web at App para sa iyong anak, maaaring ma-save ang data na ito sa kanyang Google account. <ph name="BEGIN_LINK2" />Matuto Pa<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Oops!  Hindi nakuha ng system ang patakaran para sa iyong device.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Kumilala at mag-eject ng mga storage device</translation>
 <translation id="4109135793348361820">Ilipat ang window sa <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Na-download na: <ph name="FILE_NAME" />. Pindutin ang Shift+F6 para mag-cycle sa lugar ng bar ng mga download.</translation>
+<translation id="4110686435123617899">Piliin ang album na <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">I-browse ang web sa high contrast mode</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Hindi nasasagap ang network</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">I-save ang Page Bilang...</translation>
 <translation id="4785719467058219317">Gumagamit ka ng security key na hindi nakarehistro sa website na ito</translation>
 <translation id="4788092183367008521">Pakisuri ang iyong koneksyon sa network at subukang muli.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> larawan</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Mag-ulat ng Isyu...</translation>
 <translation id="4794810983896241342">Pinapamahalaan ng <ph name="BEGIN_LINK" />iyong administrator<ph name="END_LINK" /> ang mga update</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 16077eb..f39f8de9 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Ajouter manuellement</translation>
 <translation id="1361655923249334273">Inutilisé</translation>
 <translation id="1361872463926621533">Émettre un son au démarrage</translation>
+<translation id="1362865166188278099">Problème mécanique. Vérifiez l'imprimante</translation>
 <translation id="1363585519747660921">L'imprimante USB doit être configurée</translation>
 <translation id="1365180424462182382">Votre <ph name="BEGIN_LINK" />navigateur est géré<ph name="END_LINK" /> par <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Exécutez les outils, les éditeurs et les environnements de conception intégrés de Linux sur votre <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;En savoir plus&lt;/a&gt;</translation>
@@ -1374,6 +1375,7 @@
 <translation id="2636625531157955190">Échec d'accès à l'image avec Google Chrome.</translation>
 <translation id="2637400434494156704">NIP incorrect. Il vous reste une tentative.</translation>
 <translation id="2638662041295312666">Image de connexion</translation>
+<translation id="2640549051766135490">Album <ph name="TITLE" /> <ph name="DESC" /> sélectionné</translation>
 <translation id="264083724974021997">Connexion à votre téléphone : boîte de dialogue</translation>
 <translation id="2641065435954454414">Préparation du téléchargement en cours…</translation>
 <translation id="2642111877055905627">Ballon de soccer</translation>
@@ -1959,6 +1961,7 @@
 <translation id="338583716107319301">Séparateur</translation>
 <translation id="338691029516748599">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, connexion</translation>
 <translation id="3387614642886316601">Utiliser le correcteur orthographique amélioré</translation>
+<translation id="3388094447051599208">Le plateau de sortie de l'imprimante est presque plein</translation>
 <translation id="3388788256054548012">Ce fichier est chiffré. Demandez à son propriétaire de le déchiffrer.</translation>
 <translation id="3390013585654699824">Renseignements sur l'application</translation>
 <translation id="3390741581549395454">Les applications et les fichiers Linux ont été sauvegardés. La mise à niveau commencera bientôt.</translation>
@@ -2036,6 +2039,7 @@
 <translation id="3471876058939596279">Les ports HDMI et USB de type C ne peuvent pas être utilisés simultanément pour la sortie vidéo. Utilisez un port vidéo différent.</translation>
 <translation id="3473241910002674503">Naviguer vers l'écran d'accueil ou vers l'arrière et basculer entre les applications grâce aux boutons en mode tablette.</translation>
 <translation id="3473479545200714844">Loupe d'écran</translation>
+<translation id="347394413229268704">Lire plus tard</translation>
 <translation id="3475843873335999118">Désolés, votre empreinte digitale n'a toujours pas été reconnue. Veuillez entrer votre mot de passe.</translation>
 <translation id="3476303763173086583">Envoyer les données d'utilisation et de diagnostic. Aidez-nous à améliorer l'expérience Android de votre enfant en envoyant automatiquement à Google des données de diagnostic, de l'appareil et d'utilisation des applications. L'envoi de ces données ne sera pas utilisé pour identifier votre enfant, mais pour assurer la stabilité du système et des applications, et pour apporter d'autres améliorations. Certaines données collectées contribueront également à améliorer les applications Google et aideront nos partenaires, comme les concepteurs Android. Ce <ph name="BEGIN_LINK1" />paramètre<ph name="END_LINK1" /> est appliqué par le propriétaire du compte. C'est à lui de choisir d'envoyer ou non à Google les données de diagnostic et d'utilisation de cet appareil. Si le paramètre relatif aux autres activités sur le Web et dans les applications est activé pour votre enfant, ces données peuvent être enregistrées dans son compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Oups! Le système n'a pas réussi à récupérer la politique pour votre appareil.</translation>
@@ -2596,6 +2600,7 @@
 <translation id="4107048419833779140">Identifier et éjecter la mémoire de stockage des appareils</translation>
 <translation id="4109135793348361820">Déplacer la fenêtre vers le bureau de <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Téléchargement terminé : <ph name="FILE_NAME" />. Appuyer sur Maj+F6 pour aller à la barre des téléchargements.</translation>
+<translation id="4110686435123617899">Sélectionner un album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Parcourir le Web en mode de contraste élevé</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (hors ligne)</translation>
 <translation id="4115002065223188701">Réseau hors de portée</translation>
@@ -3082,6 +3087,7 @@
 <translation id="4780321648949301421">Enregistrer la page sous…</translation>
 <translation id="4785719467058219317">Vous utilisez une clé de sécurité qui n'est pas enregistrée auprès de ce site Web</translation>
 <translation id="4788092183367008521">Veuillez vérifier votre connexion réseau et réessayer.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> photo</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Signaler un problème…</translation>
 <translation id="4794810983896241342">C'est <ph name="BEGIN_LINK" />votre administrateur<ph name="END_LINK" /> qui gère les mises à jour</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index fdef099b..5c3ed7f 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Ajouter manuellement</translation>
 <translation id="1361655923249334273">Non utilisé</translation>
 <translation id="1361872463926621533">Jouer un son au démarrage</translation>
+<translation id="1362865166188278099">Problème mécanique. Vérifiez l'imprimante</translation>
 <translation id="1363585519747660921">L'imprimante USB n'est pas configurée</translation>
 <translation id="1365180424462182382">Votre <ph name="BEGIN_LINK" />navigateur est géré<ph name="END_LINK" /> par <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Exécutez des outils, des éditeurs et des IDE Linux sur votre <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;En savoir plus&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Impossible d'accéder à l'image avec Google Chrome.</translation>
 <translation id="2637400434494156704">Code incorrect. Il vous reste une tentative.</translation>
 <translation id="2638662041295312666">Image de connexion</translation>
+<translation id="2640549051766135490">Album "<ph name="TITLE" />" (<ph name="DESC" />) sélectionné</translation>
 <translation id="264083724974021997">Connexion à votre téléphone – Boîte de dialogue</translation>
 <translation id="2641065435954454414">Préparation du téléchargement en cours</translation>
 <translation id="2642111877055905627">Ballon de football</translation>
@@ -1479,7 +1481,7 @@
 <translation id="2757338480560142065">Assurez-vous que le mot de passe que vous enregistrez correspond bien à votre mot de passe <ph name="WEBSITE" /></translation>
 <translation id="2762441749940182211">Caméra bloquée</translation>
 <translation id="2764786626780673772">Informations sur le VPN</translation>
-<translation id="2765217105034171413">Petite</translation>
+<translation id="2765217105034171413">Léger</translation>
 <translation id="2766006623206032690">Coller l'URL et y a&amp;ccéder</translation>
 <translation id="2766161002040448006">Demander à l'un des parents</translation>
 <translation id="2767127727915954024"><ph name="ORIGIN" /> pourra modifier le fichier <ph name="FILENAME" /> jusqu'à ce que vous fermiez tous les onglets de ce site</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Séparateur</translation>
 <translation id="338691029516748599">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, connexion</translation>
 <translation id="3387614642886316601">Utiliser le correcteur orthographique amélioré</translation>
+<translation id="3388094447051599208">Bac de sortie presque plein</translation>
 <translation id="3388788256054548012">Ce fichier étant chiffré, demandez à son propriétaire de le déchiffrer.</translation>
 <translation id="3390013585654699824">Informations sur l'application</translation>
 <translation id="3390741581549395454">Les applications et fichiers Linux ont bien été sauvegardés. La mise à niveau va bientôt commencer.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Les ports HDMI et USB Type-C ne peuvent pas être utilisés simultanément pour de la vidéo. Utilisez un autre port vidéo.</translation>
 <translation id="3473241910002674503">Utilisez les boutons pour accéder à la page d'accueil, revenir en arrière et changer d'application en mode tablette.</translation>
 <translation id="3473479545200714844">Loupe</translation>
+<translation id="347394413229268704">Lire plus tard</translation>
 <translation id="3475843873335999118">Désolé, votre empreinte digitale n'est toujours pas reconnue. Veuillez saisir votre mot de passe.</translation>
 <translation id="3476303763173086583">Envoyer des données d'utilisation et de diagnostic. Contribuez à l'amélioration de l'expérience de votre enfant sur Android en envoyant automatiquement à Google des données relatives aux diagnostics et à l'utilisation de l'appareil et des applications. Ces informations ne seront pas utilisées pour identifier votre enfant, mais elles nous aideront à améliorer, entre autres, la stabilité du système et des applications. Certaines données globales seront également utiles aux développeurs des applications Google et à nos partenaires, tels que les développeurs Android. Ce <ph name="BEGIN_LINK1" />paramètre<ph name="END_LINK1" /> est appliqué par le propriétaire. Le propriétaire de cet appareil peut choisir d'envoyer à Google des données de diagnostic et d'utilisation. Si vous activez le paramètre relatif à l'activité supplémentaire sur le Web et les applications pour votre enfant, ces données peuvent être enregistrées dans son compte Google. <ph name="BEGIN_LINK2" />En savoir plus<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Petit problème… Le système n'a pas réussi à récupérer les règles pour votre appareil.</translation>
@@ -2341,7 +2345,7 @@
 <translation id="3816118180265633665">Couleurs de Chrome</translation>
 <translation id="3817524650114746564">Accéder aux paramètres de proxy de votre ordinateur</translation>
 <translation id="3817579325494460411">Non indiqué</translation>
-<translation id="3819257035322786455">Sauvegardez</translation>
+<translation id="3819257035322786455">Sauvegarder</translation>
 <translation id="3819261658055281761">Échec de l'enregistrement du jeton d'accès aux API à long terme pour cet appareil.</translation>
 <translation id="3819800052061700452">&amp;Plein écran</translation>
 <translation id="3820749202859700794">Courbe elliptique SECG secp521r1 (également appelée "NIST P-521")</translation>
@@ -2381,7 +2385,7 @@
 <translation id="3855676282923585394">Importer les favoris et les paramètres...</translation>
 <translation id="3856096718352044181">Veuillez vérifier qu'il s'agit d'un fournisseur valide ou réessayer plus tard</translation>
 <translation id="3856800405688283469">Sélectionner un fuseau horaire</translation>
-<translation id="3857807444929313943">Lever le doigt, puis appuyer de nouveau</translation>
+<translation id="3857807444929313943">Levez le doigt, puis appuyez de nouveau</translation>
 <translation id="3860104611854310167"><ph name="PROFILE_NAME" /> : synchronisation en pause</translation>
 <translation id="3861638017150647085">Nom d'utilisateur "<ph name="USERNAME" />" non disponible</translation>
 <translation id="3862693525629180217">Valider via le capteur intégré</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifier et exclure des périphériques de stockage</translation>
 <translation id="4109135793348361820">Déplacer la fenêtre vers <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Téléchargement terminé : <ph name="FILE_NAME" />. Appuyez sur Maj+F6 pour accéder à la zone de la barre de téléchargements.</translation>
+<translation id="4110686435123617899">Sélectionner l'album "<ph name="TITLE" />" (<ph name="DESC" />)</translation>
 <translation id="4110895898888439383">Parcourir le Web en mode Contraste élevé</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (hors connexion)</translation>
 <translation id="4115002065223188701">Réseau hors de portée</translation>
@@ -2653,7 +2658,7 @@
 <translation id="4206144641569145248">Extraterrestre</translation>
 <translation id="4206323443866416204">Rapport de commentaires</translation>
 <translation id="4208390505124702064">Rechercher sur <ph name="SITE_NAME" /></translation>
-<translation id="4209092469652827314">Grand</translation>
+<translation id="4209092469652827314">Grande</translation>
 <translation id="4209251085232852247">Désactivé</translation>
 <translation id="4209464433672152343">Les documents sont <ph name="BEGIN_LINK_HELP" />envoyés à Google<ph name="END_LINK_HELP" /> afin d'être préparés pour l'impression. Consultez, modifiez et gérez vos imprimantes et leur historique dans le <ph name="BEGIN_LINK_DASHBOARD" />tableau de bord de Google Cloud Print<ph name="END_LINK_DASHBOARD" />.</translation>
 <translation id="4210048056321123003">Téléchargement de la machine virtuelle…</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Enregistrer la page sous...</translation>
 <translation id="4785719467058219317">La clé de sécurité n'est pas enregistrée auprès de ce site Web</translation>
 <translation id="4788092183367008521">Veuillez vérifier votre connexion réseau, puis réessayer.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> photo</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Signaler un problème...</translation>
 <translation id="4794810983896241342">Les mises à jour sont gérées par <ph name="BEGIN_LINK" />votre administrateur<ph name="END_LINK" /></translation>
@@ -4246,7 +4252,7 @@
 <translation id="6234474535228214774">Installation en attente</translation>
 <translation id="6237474966939441970">Application de prise de notes avec le stylet</translation>
 <translation id="6237816943013845465">Permet d'ajuster la résolution de l'écran</translation>
-<translation id="6238624845858322552">Connecter à un appareil Bluetooth</translation>
+<translation id="6238624845858322552">Connexion à un appareil Bluetooth</translation>
 <translation id="6238767809035845642">Texte partagé depuis un autre appareil</translation>
 <translation id="6238923052227198598">Conserver la dernière note sur l'écran de verrouillage</translation>
 <translation id="6239558157302047471">Actualiser le &amp;cadre</translation>
@@ -4669,7 +4675,7 @@
 <translation id="6781978626986383437">Sauvegarde Linux annulée</translation>
 <translation id="6782067259631821405">Code incorrect</translation>
 <translation id="6785518634832172390">Le code contient 12 chiffres au maximum</translation>
-<translation id="6785915470941880363">Inverser le défilement (<ph name="LINK_BEGIN" />en savoir plus<ph name="LINK_END" />)</translation>
+<translation id="6785915470941880363">Inverser le défilement <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation>
 <translation id="6786747875388722282">Extensions</translation>
 <translation id="6787839852456839824">Raccourcis clavier</translation>
 <translation id="6788210894632713004">Extension non empaquetée</translation>
@@ -4794,7 +4800,7 @@
 <translation id="6935286146439255109">Bac à papier manquant</translation>
 <translation id="693807610556624488">L'opération d'écriture dépasse la longueur maximale de l'attribut sur l'appareil <ph name="DEVICE_NAME" />.</translation>
 <translation id="6938386202199793006">Vous avez 1 imprimante enregistrée.</translation>
-<translation id="6938789263968032501">Contacts</translation>
+<translation id="6938789263968032501">Personnes</translation>
 <translation id="6939815295902433669">Examiner les logiciels de l'appareil</translation>
 <translation id="6941937518557314510">Connectez-vous à <ph name="TOKEN_NAME" /> pour vous authentifier auprès de <ph name="HOST_NAME" /> avec votre certificat.</translation>
 <translation id="6943060957016121200">Activer le partage de connexion instantané</translation>
@@ -5414,7 +5420,7 @@
 <translation id="7705276765467986571">Impossible de charger le modèle du favori.</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7707108266051544351">L'utilisation des capteurs de mouvement a été bloquée pour ce site.</translation>
-<translation id="7707922173985738739">Utiliser les données mobiles</translation>
+<translation id="7707922173985738739">Utilisera les données mobiles</translation>
 <translation id="7709152031285164251">Échec – <ph name="INTERRUPT_REASON" /></translation>
 <translation id="7710568461918838723">&amp;Caster…</translation>
 <translation id="7712836429117959503">Extension inconnue avec l'ID <ph name="EXTENSION_ID" /></translation>
@@ -5428,7 +5434,7 @@
 <translation id="7721179060400456005">Autoriser les fenêtres à occuper plusieurs écrans</translation>
 <translation id="7722040605881499779">Espace nécessaire pour la mise à jour : <ph name="NECESSARY_SPACE" /></translation>
 <translation id="7724603315864178912">Couper</translation>
-<translation id="7728570244950051353">Verrouiller l'écran depuis le mode veille</translation>
+<translation id="7728570244950051353">Écran de verrouillage depuis le mode veille</translation>
 <translation id="7728668285692163452">Le changement de version sera appliqué ultérieurement</translation>
 <translation id="7730449930968088409">Effectuer une capture d'écran</translation>
 <translation id="7730683939467795481">Cette page a été modifiée par l'extension "<ph name="EXTENSION_NAME" />"</translation>
@@ -6235,7 +6241,7 @@
 <translation id="8713570323158206935">Envoyer des <ph name="BEGIN_LINK1" />informations système<ph name="END_LINK1" /></translation>
 <translation id="8714838604780058252">Graphiques d'arrière-plan</translation>
 <translation id="8715480913140015283">Votre appareil photo est utilisé par un onglet d'arrière-plan</translation>
-<translation id="8716931980467311658">Supprimer toutes les applications et les données Linux de votre dossier "Fichiers Linux" sur ce type d'appareil : <ph name="DEVICE_TYPE" /> ?</translation>
+<translation id="8716931980467311658">Supprimer toutes les applications et les données Linux de votre dossier "Fichiers Linux" sur cet appareil <ph name="DEVICE_TYPE" /> ?</translation>
 <translation id="8717864919010420084">Copier le lien</translation>
 <translation id="8719472795285728850">Analyse des activités des extensions…</translation>
 <translation id="8719653885894320876">Échec du téléchargement de <ph name="PLUGIN_NAME" /></translation>
@@ -6605,7 +6611,7 @@
 <translation id="9148126808321036104">Nouvelle connexion</translation>
 <translation id="9149866541089851383">Modifier...</translation>
 <translation id="9150045010208374699">Utiliser votre caméra</translation>
-<translation id="9153934054460603056">Enregistrer l'authentification et le mot de passe</translation>
+<translation id="9153934054460603056">Enregistrer le nom d'utilisateur et le mot de passe</translation>
 <translation id="9154194610265714752">Mis à jour</translation>
 <translation id="91568222606626347">Créer un raccourci…</translation>
 <translation id="9157096865782046368">0,8 seconde</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index e0f7e1c3..4982631 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">મેન્યુઅલી ઉમેરો</translation>
 <translation id="1361655923249334273">બિનવપરાયેલ</translation>
 <translation id="1361872463926621533">પ્રારંભ થાય ત્યારે સાઉન્ડ ચાલુ કરો</translation>
+<translation id="1362865166188278099">મિકેનિકલ સમસ્યા. પ્રિન્ટર ચેક કરો</translation>
 <translation id="1363585519747660921">USB પ્રિન્ટર માટે ગોઠવણી જરૂરી છે</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" />તમારા <ph name="BEGIN_LINK" />બ્રાઉઝરને મેનેજ કરે છે<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">તમારા <ph name="DEVICE_TYPE" /> પર Linuxના સાધનો, એડિટર અને IDEs ચલાવો. &lt;a target="_blank" href="<ph name="URL" />"&gt;વધુ જાણો&lt;/a&gt;</translation>
@@ -321,7 +322,7 @@
 <translation id="1380028686461971526">નેટવર્ક સાથે ઑટોમૅટિક રીતે કનેક્ટ થાઓ</translation>
 <translation id="1380436189840894976">છૂપો મોડ બંધ કરી જ દઈએ?</translation>
 <translation id="1383861834909034572">પૂર્ણ થવા પર ખુલે છે</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1386387014181100145">હેલો.</translation>
 <translation id="1386791642444521222">વાસ્તવિક સિમને સક્રિય કરો</translation>
 <translation id="138784436342154190">ડિફૉલ્ટ સ્ટાર્ટઅપ પૃષ્ઠને પુનઃસ્થાપિત કરીએ?</translation>
@@ -1369,6 +1370,7 @@
 <translation id="2636625531157955190">Chrome છબી ઍક્સેસ કરી શકતું નથી.</translation>
 <translation id="2637400434494156704">ખોટો પિન. તમારી પાસે હવે એક પ્રયાસ બાકી છે.</translation>
 <translation id="2638662041295312666">સાઇન ઇન છબી</translation>
+<translation id="2640549051766135490">આલ્બમ <ph name="TITLE" /> <ph name="DESC" />ની પસંદગી કરી</translation>
 <translation id="264083724974021997">તમારા ફોન સાથે કનેક્ટ કરો - સંવાદ</translation>
 <translation id="2641065435954454414">ડાઉનલોડની તૈયારી કરી રહ્યા છીએ</translation>
 <translation id="2642111877055905627">સૉકર બૉલ</translation>
@@ -1954,6 +1956,7 @@
 <translation id="338583716107319301">વિભાજક</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />માંથી નેટવર્ક <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />%, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે, કનેક્ટ કરો</translation>
 <translation id="3387614642886316601">વધુ સારી બનાવાયેલી જોડણીની તપાસનો ઉપયોગ કરો</translation>
+<translation id="3388094447051599208">આઉટપુટ ટ્રે લગભગ ભરાઈ ગઈ છે</translation>
 <translation id="3388788256054548012">આ ફાઇલ એન્ક્રિપ્ટ કરેલી છે. તેના માલિકને તેને ડિક્રિપ્ટ કરવાનું કહો.</translation>
 <translation id="3390013585654699824">ઍપની વિગતો</translation>
 <translation id="3390741581549395454">Linux ઍપ અને ફાઇલોનું સફળતાપૂર્વક બૅકઅપ લીધું. ટૂંક સમયમાં અપગ્રેડ શરૂ થશે.</translation>
@@ -2031,6 +2034,7 @@
 <translation id="3471876058939596279">HDMI અને USB પ્રકાર-C પોર્ટનો ઉપયોગ સમાન સમયે વીડિયો માટે કરી શકાતો નથી. બીજા વીડિયો પોર્ટનો ઉપયોગ કરો.</translation>
 <translation id="3473241910002674503">હોમ અથવા પાછળ જવા નૅવિગેટ કરો તેમજ ટૅબ્લેટ મોડમાં ઍપને બટનથી સ્વિચ કરો.</translation>
 <translation id="3473479545200714844">સ્ક્રીન બૃહદદર્શક</translation>
+<translation id="347394413229268704">પછીથી વાંચો</translation>
 <translation id="3475843873335999118">માફ કરશો, તમારી ફિંગરપ્રિંટ હજી પણ ઓળખવામાં આવી નથી. કૃપા કરીને તમારો પાસવર્ડ દાખલ કરો.</translation>
 <translation id="3476303763173086583">વપરાશ અને નિદાનનો ડેટા મોકલો. Googleને નિદાન, ડિવાઇસ અને ઍપ વપરાશનો ડેટા ઑટોમૅટિક રીતે મોકલીને તમારા બાળકના Android અનુભવને બહેતર બનાવવામાં સહાય કરો. આનો ઉપયોગ તમારા બાળકને ઓળખવા માટે થશે નહીં અને સિસ્ટમ અને ઍપની સ્થિરતા અને અન્ય સુધારણાઓમાં સહાય કરશે. એકત્રીકરણ કરેલો કેટલોક ડેટા Google ઍપ અને ભાગીદારોને પણ મદદ કરશે, જેમ કે Android ડેવલપર. આ <ph name="BEGIN_LINK1" />સેટિંગ<ph name="END_LINK1" /> માલિક દ્વારા લાગુ કરવામાં આવેલ છે. માલિક, Googleને આ ડિવાઇસ માટે નિદાન અને વપરાશ ડેટા મોકલવાનું પસંદ કરી શકે છે. જો તમારા બાળક માટે વધારાની વેબ અને ઍપ પ્રવૃત્તિ સેટિંગ ચાલુ હોય, તો આ ડેટા તેમના Google એકાઉન્ટમાં સાચવવામાં આવી શકે છે. <ph name="BEGIN_LINK2" />વધુ જાણો<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">અરેરે!  તમારા ઉપકરણ માટે સિસ્ટમ નીતિ લાવવામાં નિષ્ફળ થયું.</translation>
@@ -2591,6 +2595,7 @@
 <translation id="4107048419833779140">સ્ટોરેજ ઉપકરણોને ઓળખો અને તેને બહાર કાઢો</translation>
 <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) પર વિંડો ખસેડો</translation>
 <translation id="4110490973560452005">ડાઉનલોડ પૂર્ણ થયું: <ph name="FILE_NAME" />. ડાઉનલોડ બાર ક્ષેત્રમાં પહોંચવા માટે Shift+F6 દબાવો.</translation>
+<translation id="4110686435123617899">પસંદ કરો આલ્બમ <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ઉચ્ચ કોન્ટ્રાસ્ટ મોડમાં વેબ બ્રાઉઝ કરો</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ઑફલાઇન)</translation>
 <translation id="4115002065223188701">નેટવર્ક પહોંચની બહાર છે</translation>
@@ -3077,6 +3082,7 @@
 <translation id="4780321648949301421">પેજ આ રીતે સાચવો...</translation>
 <translation id="4785719467058219317">તમે આ વેબસાઇટમાં રજિસ્ટર ન થયેલા સુરક્ષા કોડનો ઉપયોગ કરી રહ્યા છો</translation>
 <translation id="4788092183367008521">કૃપા કરીને તમારું નેટવર્ક કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ફોટો</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;સમસ્યાની જાણ કરો...</translation>
 <translation id="4794810983896241342">અપડેટ <ph name="BEGIN_LINK" />તમારા વ્યવસ્થાપક<ph name="END_LINK" /> દ્વારા મેનેજ કરવામાં આવે છે</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 8585b2c..22facd54 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">मैन्युअल रूप से जोड़ें</translation>
 <translation id="1361655923249334273">अप्रयुक्त</translation>
 <translation id="1361872463926621533">शुरू होने पर आवाज़ चालू करें</translation>
+<translation id="1362865166188278099">मशीन से जुड़ी समस्या. प्रिंटर जांचें</translation>
 <translation id="1363585519747660921">यूएसबी प्रिंटर को कॉन्फ़िगर करना होगा</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> आपके <ph name="BEGIN_LINK" />ब्राउज़र को प्रबंधित करता है<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">अपने <ph name="DEVICE_TYPE" /> पर Linux टूल, एडिटर और आईडीई चलाएं. &lt;a target="_blank" href="<ph name="URL" />"&gt;ज़्यादा जानें&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome, इमेज को एक्सेस नहीं कर पा रहा.</translation>
 <translation id="2637400434494156704">गलत पिन. आप एक बार और कोशिश कर सकते हैं.</translation>
 <translation id="2638662041295312666">साइन इन इमेज</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> एल्बम चुना गया</translation>
 <translation id="264083724974021997">अपने फ़ोन से जोड़ें - डायलॉग</translation>
 <translation id="2641065435954454414">डाउनलोड होने वाली है</translation>
 <translation id="2642111877055905627">सॉकर बॉल</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">विभाजक</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" /> में से <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%, आपका एडमिन प्रबंधित करता है, कनेक्ट करें</translation>
 <translation id="3387614642886316601">'बेहतर वर्तनी जाँच' का इस्तेमाल करें</translation>
+<translation id="3388094447051599208">आउटपुट ट्रे करीब-करीब भर गई है</translation>
 <translation id="3388788256054548012">यह फ़ाइल सुरक्षित की गई है. इसके मालिक से इसे सबकी पहुंच में लाने के लिए कहें.</translation>
 <translation id="3390013585654699824">ऐप्लिकेशन की जानकारी</translation>
 <translation id="3390741581549395454">Linux ऐप्लिकेशन और फ़ाइलों का बैक अप ले लिया गया है. जल्द ही बेहतर बनाने की प्रोसेस शुरू हो जाएगी.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">वीडियो के लिए एचडीएमआई पोर्ट और यूएसबी टाइप-सी पोर्ट को एक ही समय में इस्तेमाल नहीं किया जा सकता. कोई अलग पोर्ट इस्तेमाल करें.</translation>
 <translation id="3473241910002674503">टैबलेट मोड में बटन की मदद से, होम पेज पर जाएं, वापस जाएं, और एक ऐप्लिकेशन से दूसरे पर जाएं.</translation>
 <translation id="3473479545200714844">स्क्रीन आवर्द्धक</translation>
+<translation id="347394413229268704">बाद में पढ़ें</translation>
 <translation id="3475843873335999118">माफ़ कीजिए, आपके फ़िंगरप्रिंट की अब भी पहचान नहीं हुई हैैै. कृपया अपना पासवर्ड डालें.</translation>
 <translation id="3476303763173086583">इस्तेमाल और निदान से जुड़ा डेटा भेजें. Google को निदान, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने आप भेजकर, अपने बच्चे के Android अनुभव को बेहतर बनाने में मदद करें. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता और दूसरे सुधारों में मदद करेगा. कुछ एग्रीगेट डेटा Google ऐप्लिकेशन और पार्टनर, जैसे कि Android डेवलपरों की भी मदद करेगा. यह <ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> डिवाइस के मालिक ने लागू की है. डिवाइस का मालिक यह चुन सकता है कि निदान और इस डिवाइस के इस्तेमाल से जुड़ा डेटा Google को भेजना है. अगर आपके बच्चे के लिए दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है. <ph name="BEGIN_LINK2" />ज़्यादा जानें<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ओह!  सिस्टम आपके डिवाइस की नीति नहीं निकाल पाया.</translation>
@@ -2594,6 +2598,7 @@
 <translation id="4107048419833779140">मेमोरी डिवाइसों की पहचान करें और उन्हें निकालें</translation>
 <translation id="4109135793348361820">विंडो को <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) पर ले जाएं</translation>
 <translation id="4110490973560452005">डाउनलोड पूरा हो गया: <ph name="FILE_NAME" />. डाउनलोड बार वाले हिस्से पर जाने के लिए Shift+F6 दबाएं.</translation>
+<translation id="4110686435123617899">एल्बम चुनें <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">उच्च कंट्रास्ट मोड में वेब ब्राउज़ करें</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ऑफ़लाइन)</translation>
 <translation id="4115002065223188701">नेटवर्क नहीं मिल रहा है</translation>
@@ -3080,6 +3085,7 @@
 <translation id="4780321648949301421">पेज को इस रूप में सेव करें...</translation>
 <translation id="4785719467058219317">आप एक ऐसी 'सुरक्षा चाबी' इस्तेमाल कर रहे हैं जिसे इस वेबसाइट पर रजिस्टर नहीं किया गया है</translation>
 <translation id="4788092183367008521">कृपया अपना नेटवर्क कनेक्शन जाँच लें और फिर से कोशिश करें.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> फ़ोटो</translation>
 <translation id="4791037424585594169">(यूडीपी)</translation>
 <translation id="4792711294155034829">किसी समस्या की &amp;रिपोर्ट करें...</translation>
 <translation id="4794810983896241342">अपडेट को <ph name="BEGIN_LINK" />आपका एडमिन<ph name="END_LINK" /> प्रबंधित करता है</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index b76165f7..1005e56 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Hozzáadás manuálisan</translation>
 <translation id="1361655923249334273">Nem használt</translation>
 <translation id="1361872463926621533">Hang lejátszása indításkor</translation>
+<translation id="1362865166188278099">Mechanikai probléma. Ellenőrizze a nyomtatót.</translation>
 <translation id="1363585519747660921">Be kell állítani az USB-nyomtatót</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Böngészőjét<ph name="END_LINK" /> a(z) <ph name="ENROLLMENT_DOMAIN" /> felügyeli</translation>
 <translation id="1366177842110999534">Linuxos eszközöket, szerkesztőket és IDE-ket futtathat <ph name="DEVICE_TYPE" /> eszközén. &lt;a target="_blank" href="<ph name="URL" />"&gt;További információ&lt;/a&gt;.</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">A Chrome nem tudja elérni a képet.</translation>
 <translation id="2637400434494156704">Helytelen PIN-kód. Egy kísérlete maradt.</translation>
 <translation id="2638662041295312666">Bejelentkezési kép</translation>
+<translation id="2640549051766135490">A következő album kiválasztva: <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Csatlakozás a telefonhoz – párbeszédpanel</translation>
 <translation id="2641065435954454414">Letöltés előkészítése…</translation>
 <translation id="2642111877055905627">Focilabda</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Elválasztó</translation>
 <translation id="338691029516748599"><ph name="NETWORK_INDEX" />. hálózat (összesen <ph name="NETWORK_COUNT" />), <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, jelerősség: <ph name="SIGNAL_STRENGTH" />%, a rendszergazdája kezeli, csatlakozás</translation>
 <translation id="3387614642886316601">Továbbfejlesztett helyesírás-ellenőrzés használata</translation>
+<translation id="3388094447051599208">A kimeneti tálca majdnem tele van</translation>
 <translation id="3388788256054548012">A fájl titkosítva van. Kérje meg a tulajdonost, hogy oldja fel a titkosítását.</translation>
 <translation id="3390013585654699824">Az alkalmazás adatai</translation>
 <translation id="3390741581549395454">A rendszer biztonsági másolatot készített a Linux-alkalmazásokról és -fájlokról. Hamarosan indul a frissítés.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">A HDMI- és a C típusú USB-csatlakozók nem használhatók egyidejűleg videokimenetként. Használjon másik videocsatlakozót.</translation>
 <translation id="3473241910002674503">Táblagép módban gombok segítségével válthat alkalmazásokat, illetve léphet vissza és a kezdőképernyőre.</translation>
 <translation id="3473479545200714844">Képernyőnagyító</translation>
+<translation id="347394413229268704">Olvasás később</translation>
 <translation id="3475843873335999118">Sajnos az ujjlenyomatát továbbra sem sikerült felismerni. Adja meg jelszavát.</translation>
 <translation id="3476303763173086583">Használati és diagnosztikai adatok küldése. Segítsen gyermeke Android-élményének továbbfejlesztésében azzal, hogy automatikusan diagnosztikai, valamint eszköz- és alkalmazáshasználati adatokat küld a Google-nak. Az adatok a rendszer- és alkalmazásstabilitás javításában, valamint más fejlesztésekben segítenek, nem használjuk fel őket az Ön gyermekének azonosítására. Bizonyos összesített adatok a Google-alkalmazásoknak és -partnereknek, például az Android-fejlesztőknek is segítenek. Ezt a <ph name="BEGIN_LINK1" />beállítást<ph name="END_LINK1" /> kötelezővé tette az eszköz tulajdonosa. A tulajdonos dönthet úgy, hogy elküldi az eszközzel kapcsolatos diagnosztikai és használati adatokat a Google-nak. Ha az Internetes és alkalmazástevékenységek beállítás is be van kapcsolva a gyermekénél, akkor a rendszer ezeket az adatokat mentheti a gyermek Google-fiókjába. <ph name="BEGIN_LINK2" />További információ.<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Hoppá! A rendszer nem tudta lehívni az eszköz házirendjét.</translation>
@@ -2594,6 +2598,7 @@
 <translation id="4107048419833779140">Tárolóeszközök azonosítása és kiadása</translation>
 <translation id="4109135793348361820">Az ablak áthelyezése <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) asztalára</translation>
 <translation id="4110490973560452005">A letöltés befejeződött: <ph name="FILE_NAME" />. A Shift+F6 billentyűparancs lenyomásával a letöltéssáv területére léphet.</translation>
+<translation id="4110686435123617899">A következő album kiválasztása: <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Böngészhet az interneten kontrasztos megjelenítési módban</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">A hálózat kívül esik a hatókörön</translation>
@@ -3080,6 +3085,7 @@
 <translation id="4780321648949301421">Oldal mentése &amp;másként...</translation>
 <translation id="4785719467058219317">Olyan biztonsági hardverkulcsot használ, amely nincs regisztrálva ezen a webhelyen</translation>
 <translation id="4788092183367008521">Ellenőrizze a hálózati kapcsolatot, és próbálkozzon újra.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> fotó</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Hibabejelentés...</translation>
 <translation id="4794810983896241342">A frissítéseket a <ph name="BEGIN_LINK" />rendszergazdája<ph name="END_LINK" /> kezeli</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 80bd222..a34ac7c 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Tambahkan Secara Manual</translation>
 <translation id="1361655923249334273">Tidak digunakan</translation>
 <translation id="1361872463926621533">Putar suara saat dimulai</translation>
+<translation id="1362865166188278099">Masalah mekanis. Periksa printer</translation>
 <translation id="1363585519747660921">Printer USB membutuhkan konfigurasi</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Browser Anda dikelola<ph name="END_LINK" /> oleh <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Menjalankan IDE, editor, dan fitur Linux di <ph name="DEVICE_TYPE" /> Anda. &lt;a target="_blank" href="<ph name="URL" />"&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome tidak dapat mengakses gambar.</translation>
 <translation id="2637400434494156704">PIN salah. Anda memiliki satu kesempatan lagi.</translation>
 <translation id="2638662041295312666">Gambar login</translation>
+<translation id="2640549051766135490">Album <ph name="TITLE" /> <ph name="DESC" /> dipilih</translation>
 <translation id="264083724974021997">Hubungkan ke ponsel Anda - Dialog</translation>
 <translation id="2641065435954454414">Menyiapkan download</translation>
 <translation id="2642111877055905627">Bola sepak</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Pemisah</translation>
 <translation id="338691029516748599">Jaringan <ph name="NETWORK_INDEX" /> dari <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" />%, Dikelola oleh Administrator Anda, Sambungkan</translation>
 <translation id="3387614642886316601">Gunakan fitur periksa ejaan yang disempurnakan</translation>
+<translation id="3388094447051599208">Baki hasil cetak hampir penuh</translation>
 <translation id="3388788256054548012">File ini dienkripsi. Minta pemiliknya untuk mendekripsi.</translation>
 <translation id="3390013585654699824">Detail aplikasi</translation>
 <translation id="3390741581549395454">File dan aplikasi Linux berhasil dicadangkan. Upgrade akan segera dimulai.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Port HDMI dan USB Type-C tidak dapat digunakan untuk video secara bersamaan. Gunakan port video yang berbeda.</translation>
 <translation id="3473241910002674503">Buka layar utama, kembali, dan alihkan aplikasi dengan tombol dalam mode tablet.</translation>
 <translation id="3473479545200714844">Kaca pembesar layar</translation>
+<translation id="347394413229268704">Baca nanti</translation>
 <translation id="3475843873335999118">Maaf, sidik jari Anda masih tidak dapat dikenali. Masukkan sandi Anda.</translation>
 <translation id="3476303763173086583">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. <ph name="BEGIN_LINK1" />Setelan<ph name="END_LINK1" /> ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirim data diagnostik dan penggunaan untuk perangkat ini ke Google. Jika setelan Aktivitas Web &amp; Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. <ph name="BEGIN_LINK2" />Pelajari Lebih Lanjut<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Maaf!  Sistem gagal mengambil kebijakan untuk perangkat Anda.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifikasi dan keluarkan perangkat penyimpanan</translation>
 <translation id="4109135793348361820">Pindahkan jendela ke <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Download selesai: <ph name="FILE_NAME" />. Tekan Shift+F6 untuk masuk ke area kotak download</translation>
+<translation id="4110686435123617899">Pilih album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Akses web dalam mode kontras tinggi</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Jaringan di luar jangkauan</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Simpan Halaman Sebagai...</translation>
 <translation id="4785719467058219317">Anda menggunakan kunci keamanan yang tidak terdaftar di situs ini</translation>
 <translation id="4788092183367008521">Periksa koneksi jaringan Anda, lalu coba lagi.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">Lapo&amp;rkan Masalah...</translation>
 <translation id="4794810983896241342">Update dikelola oleh <ph name="BEGIN_LINK" />administrator Anda<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 6b3e34d4..ca6f8c87 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -17,7 +17,7 @@
 <translation id="1012876632442809908">Dispositivo USB-C (porta anteriore)</translation>
 <translation id="1013707859758800957">È stata consentita l'esecuzione di un plug-in senza sandbox in questa pagina.</translation>
 <translation id="1015318665228971643">Modifica nome cartella</translation>
-<translation id="1015578595646638936">{NUM_DAYS,plural, =1{Ultimo giorno per aggiornare <ph name="DEVICE_TYPE" />}other{Aggiorna <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni}}</translation>
+<translation id="1015578595646638936">{NUM_DAYS,plural, =1{Ultimo giorno per aggiornare questo <ph name="DEVICE_TYPE" />}other{Aggiorna questo <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni}}</translation>
 <translation id="1016437870506746108">{COUNT,plural, =0{Apri tutti in &amp;un'altra finestra}=1{Apri in &amp;un'altra finestra}other{Apri tutti (#) in &amp;un'altra finestra}}</translation>
 <translation id="1016566241875885511">Informazioni aggiuntive (facoltativo)</translation>
 <translation id="1017280919048282932">&amp;Aggiungi al dizionario</translation>
@@ -52,7 +52,7 @@
 <translation id="1049743911850919806">In incognito</translation>
 <translation id="1049795001945932310">&amp;Impostazioni lingua</translation>
 <translation id="1054153489933238809">Apri &amp;originale in nuova scheda</translation>
-<translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Aggiorna <ph name="DEVICE_TYPE" /> entro 1 settimana}other{Aggiorna <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimane}}</translation>
+<translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Aggiorna questo <ph name="DEVICE_TYPE" /> entro 1 settimana}other{Aggiorna questo <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimane}}</translation>
 <translation id="1055806300943943258">Ricerca di dispositivi Bluetooth e USB...</translation>
 <translation id="1056466516655540509">Ultimo aggiornamento: <ph name="MINUTES" /> min fa</translation>
 <translation id="1056775291175587022">Nessuna rete</translation>
@@ -444,7 +444,7 @@
 <translation id="1521442365706402292">Gestisci certificati</translation>
 <translation id="1521774566618522728">Attivo oggi</translation>
 <translation id="152234381334907219">Mai salvate</translation>
-<translation id="1523170391134722817">Non supportata a partire dal mese di dicembre</translation>
+<translation id="1523170391134722817">Non supportata a partire da fine dicembre</translation>
 <translation id="1523978563989812243">Motori di sintesi vocale</translation>
 <translation id="1524430321211440688">Tastiera</translation>
 <translation id="1524563461097350801">No, grazie</translation>
@@ -1577,7 +1577,7 @@
 <translation id="2876336351874743617">Dito 2</translation>
 <translation id="2876369937070532032">Invia a Google gli URL di alcune pagine che visiti quando la tua sicurezza è a rischio</translation>
 <translation id="2878782256107578644">Analisi in corso, aprire ora?</translation>
-<translation id="2878889940310164513">Aggiungi cellulare…</translation>
+<translation id="2878889940310164513">Aggiungi rete cellulare…</translation>
 <translation id="288042212351694283">Accesso ai tuoi dispositivi Universal 2nd Factor</translation>
 <translation id="2880660355386638022">Posizionamento delle finestre</translation>
 <translation id="2881076733170862447">Quando fai clic sull'estensione</translation>
@@ -1702,7 +1702,7 @@
 <translation id="3029466929721441205">Mostrare strumenti stilo nello shelf</translation>
 <translation id="3031417829280473749">Agente X</translation>
 <translation id="3031557471081358569">Seleziona elementi da importare:</translation>
-<translation id="3036327949511794916">Il termine ultimo per la restituzione di questo <ph name="DEVICE_TYPE" /> è scaduto.</translation>
+<translation id="3036327949511794916">Il termine per la restituzione di questo <ph name="DEVICE_TYPE" /> è scaduto.</translation>
 <translation id="3036546437875325427">Abilita Flash</translation>
 <translation id="3037754279345160234">Impossibile analizzare la configurazione per l'aggiunta al dominio. Contatta l'amministratore.</translation>
 <translation id="3038612606416062604">Aggiungi manualmente una stampante</translation>
@@ -2179,7 +2179,7 @@
 <translation id="3640214691812501263">Aggiungere "<ph name="EXTENSION_NAME" />" per <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Insegna all'assistente a riconoscere la tua voce</translation>
 <translation id="3645372836428131288">Muovi leggermente il dito per acquisire una parte diversa dell'impronta digitale.</translation>
-<translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ricevuti dal dispositivo <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ricevuti dal dispositivo <ph name="DEVICE_NAME" />}}</translation>
+<translation id="3647998456578545569">{COUNT,plural, =1{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}other{Ricezione di <ph name="ATTACHMENTS" /> dal dispositivo <ph name="DEVICE_NAME" /> completata}}</translation>
 <translation id="3648348069317717750">Rilevato dispositivo <ph name="USB_DEVICE_NAME" /></translation>
 <translation id="3649138363871392317">La foto è stata scattata</translation>
 <translation id="3649505501900178324">Aggiornamento scaduto</translation>
@@ -2919,7 +2919,7 @@
 <translation id="4563210852471260509">La lingua di input iniziale è il cinese</translation>
 <translation id="4563880231729913339">Dito 3</translation>
 <translation id="4565377596337484307">Nascondi password</translation>
-<translation id="4565577809484439917">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede il backup dei dati e la restituzione di questo <ph name="DEVICE_TYPE" /> oggi stesso.}other{<ph name="DOMAIN" /> richiede il backup dei dati e la restituzione di questo <ph name="DEVICE_TYPE" /> prima della scadenza.}}</translation>
+<translation id="4565577809484439917">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo <ph name="DEVICE_TYPE" /> oggi stesso.}other{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo <ph name="DEVICE_TYPE" /> prima della scadenza.}}</translation>
 <translation id="4565917129334815774">Archivia log di sistema</translation>
 <translation id="456717285308019641">Lingua della pagina da tradurre</translation>
 <translation id="4567533462991917415">Puoi aggiungere altre persone in qualsiasi momento dopo la configurazione. Ogni persona potrà personalizzare il proprio account e tenere privati i dati.</translation>
@@ -2983,7 +2983,7 @@
 <translation id="4638930039313743000">Attiva debug ADB</translation>
 <translation id="4641539339823703554">Impossibile impostare l'ora di sistema in Chrome. Controlla l'ora indicata sotto e correggila se necessario.</translation>
 <translation id="4643612240819915418">&amp;Apri video in un'altra scheda</translation>
-<translation id="4645551927492192497">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede la connessione a una rete Wi-Fi oggi stesso per scaricare un aggiornamento. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}other{<ph name="DOMAIN" /> richiede la connessione a una rete Wi-Fi per scaricare un aggiornamento prima della scadenza. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}}</translation>
+<translation id="4645551927492192497">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede la connessione a una rete Wi-Fi per scaricare un aggiornamento oggi stesso. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}other{<ph name="DOMAIN" /> richiede la connessione a una rete Wi-Fi per scaricare un aggiornamento prima della scadenza. In alternativa, puoi eseguire il download tramite una connessione a consumo (potrebbero essere applicati costi).}}</translation>
 <translation id="4645676300727003670">&amp;Conserva</translation>
 <translation id="4646675363240786305">Porte</translation>
 <translation id="4646949265910132906">Connessione Wi-Fi protetta</translation>
@@ -2996,7 +2996,7 @@
 <translation id="4651484272688821107">Impossibile caricare il componente online con le risorse della modalità demo.</translation>
 <translation id="4652935475563630866">La modifica dell'impostazione della videocamera richiede il riavvio di Parallels Desktop. Riavvia Parallels Desktop per continuare.</translation>
 <translation id="4653405415038586100">Errore durante la configurazione di Linux</translation>
-<translation id="4657810666108475055">Cerca scheda</translation>
+<translation id="4657810666108475055">Tab Search</translation>
 <translation id="465878909996028221">Per i reindirizzamenti del browser sono supportati solo http, https e i protocolli di file.</translation>
 <translation id="4659077111144409915">Account principale</translation>
 <translation id="4660476621274971848">Versione prevista: "<ph name="EXPECTED_VERSION" />", versione rilevata: "<ph name="NEW_ID" />"</translation>
@@ -3545,7 +3545,7 @@
 <translation id="5372579129492968947">Sblocca estensione</translation>
 <translation id="5376169624176189338">Fai clic per tornare indietro, tieni premuto per vedere la cronologia</translation>
 <translation id="5376931455988532197">File troppo grande</translation>
-<translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> inviati correttamente al dispositivo <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> inviati correttamente al dispositivo <ph name="DEVICE_NAME" />}}</translation>
+<translation id="5377721922656071359">{COUNT,plural, =1{Invio di <ph name="ATTACHMENTS" /> al dispositivo <ph name="DEVICE_NAME" /> completato}other{Invio di <ph name="ATTACHMENTS" /> al dispositivo <ph name="DEVICE_NAME" /> completato}}</translation>
 <translation id="537813040452600081">Le pagine visualizzate in questa finestra non verranno memorizzate nella cronologia del browser e non lasceranno altre tracce, ad esempio cookie, sul computer dopo l'uscita dall'account. I file scaricati e i Preferiti creati non verranno conservati.</translation>
 <translation id="5379140238605961210">Continua a impedire l'accesso al microfono</translation>
 <translation id="5382591305415226340">Gestisci i link supportati</translation>
@@ -4043,7 +4043,7 @@
 <translation id="5979156418378918004">{NUM_EXTENSIONS,plural, =1{Hai riattivato 1 estensione potenzialmente dannosa}other{Hai riattivato {NUM_EXTENSIONS} estensioni potenzialmente dannose}}</translation>
 <translation id="5979421442488174909">&amp;Traduci in <ph name="LANGUAGE" /></translation>
 <translation id="5979469435153841984">Per aggiungere una pagina ai preferiti, fai clic sulla stella nella barra degli indirizzi</translation>
-<translation id="5983642582671533177">Questa stampante non sarà più supportata a partire dal mese di dicembre. Contatta il tuo amministratore.</translation>
+<translation id="5983642582671533177">Questa stampante non sarà più supportata a partire da fine dicembre. Contatta il tuo amministratore.</translation>
 <translation id="5984222099446776634">Visitati di recente</translation>
 <translation id="598472838394900788">{0,plural, =1{In incognito}other{In incognito (#)}}</translation>
 <translation id="5985458664595100876">Formato dell'URL non valido. I formati supportati sono \\server\share e smb://server/share.</translation>
@@ -4183,7 +4183,7 @@
 <translation id="6150961653851236686">Questa lingua è utilizzata per la traduzione delle pagine</translation>
 <translation id="6151323131516309312">Premi <ph name="SEARCH_KEY" /> per cercare su <ph name="SITE_NAME" /></translation>
 <translation id="6151771661215463137">File già esistente nella cartella dei download.</translation>
-<translation id="6153808139779428578">Questa stampante non sarà più supportata a partire dal mese di dicembre. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation>
+<translation id="6153808139779428578">Questa stampante non sarà più supportata a partire da fine dicembre. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="6154240335466762404">Rimuovi tutte le porte</translation>
 <translation id="615436196126345398">Protocollo</translation>
 <translation id="6154697846084421647">Accesso eseguito</translation>
@@ -4627,7 +4627,7 @@
 <translation id="672609503628871915">Scopri le novità</translation>
 <translation id="67269783048918309">Invia dati diagnostici e sull'utilizzo. Questo dispositivo attualmente invia a Google dati diagnostici e sull'utilizzo delle app e del dispositivo. Non verranno utilizzati per identificare tuo figlio e contribuiranno alla stabilità di app e sistema, nonché ad altri miglioramenti. Alcuni dati aggregati saranno utili anche alle app e ai partner di Google, ad esempio agli sviluppatori Android. Questa <ph name="BEGIN_LINK1" />impostazione<ph name="END_LINK1" /> è applicata dal proprietario. Se l'impostazione Attività web e app aggiuntiva è attiva per tuo figlio, questi dati potrebbero essere salvati nel suo Account Google. <ph name="BEGIN_LINK2" />Ulteriori informazioni<ph name="END_LINK2" /></translation>
 <translation id="6727969043791803658">Dispositivo connesso. Livello batteria: <ph name="BATTERY_PERCENTAGE" />%</translation>
-<translation id="6731877319426971768">File riconoscimento vocale scaricati</translation>
+<translation id="6731877319426971768">File di riconoscimento vocale scaricati</translation>
 <translation id="6732801395666424405">Certificati non caricati</translation>
 <translation id="6732900235521116609">Impossibile rimuovere la scorciatoia</translation>
 <translation id="6734468588183300211">Con la modalità di navigazione in incognito, i siti non possono utilizzare i cookie per conoscere la tua attività di navigazione su siti diversi, ad esempio per personalizzare gli annunci. Le funzionalità su alcuni siti potrebbero non essere disponibili.</translation>
@@ -5210,7 +5210,7 @@
 <translation id="7456847797759667638">Apri percorso...</translation>
 <translation id="7458168200501453431">Consente di utilizzare lo stesso controllo ortografico utilizzato nella Ricerca Google. Il testo che digiti nel browser viene inviato a Google.</translation>
 <translation id="7460045493116006516">Tema installato attualmente</translation>
-<translation id="7461729991508684543">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo <ph name="DEVICE_TYPE" /> oggi stesso. <ph name="LINK_BEGIN" />Visualizza dettagli<ph name="LINK_END" />}other{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo<ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni. <ph name="LINK_BEGIN" />Visualizza dettagli<ph name="LINK_END" />}}</translation>
+<translation id="7461729991508684543">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo <ph name="DEVICE_TYPE" /> oggi stesso. <ph name="LINK_BEGIN" />Visualizza dettagli<ph name="LINK_END" />}other{<ph name="DOMAIN" /> richiede di effettuare il backup dei dati e di restituire questo <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni. <ph name="LINK_BEGIN" />Visualizza dettagli<ph name="LINK_END" />}}</translation>
 <translation id="7461924472993315131">Blocca</translation>
 <translation id="746216226901520237">La prossima volta potrai usare il tuo telefono per sbloccare il dispositivo <ph name="DEVICE_TYPE" />. Puoi disattivare Smart Lock nelle Impostazioni.</translation>
 <translation id="7463006580194749499">Aggiungi persona</translation>
@@ -5221,7 +5221,7 @@
 <translation id="747114903913869239">Errore: impossibile decodificare l'estensione</translation>
 <translation id="7473891865547856676">No grazie</translation>
 <translation id="747459581954555080">Ripristina tutto</translation>
-<translation id="747507174130726364">{NUM_DAYS,plural, =1{È richiesta la restituzione immediata}other{Restituisci <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni}}</translation>
+<translation id="747507174130726364">{NUM_DAYS,plural, =1{È richiesta la restituzione immediata}other{Restituisci questo <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni}}</translation>
 <translation id="7475671414023905704">URL password persa Netscape</translation>
 <translation id="7476454130948140105">Livello della batteria troppo basso per eseguire l'aggiornamento (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477793887173910789">Gestisci la tua musica, i tuoi video e altro ancora</translation>
@@ -5352,7 +5352,7 @@
 <translation id="7643932971554933646">Vuoi consentire al sito di visualizzare i file?</translation>
 <translation id="7644543211198159466">Colore e tema</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (proprietario)</translation>
-<translation id="7645300866575922143">Aggiungi cellulare</translation>
+<translation id="7645300866575922143">Aggiungi rete cellulare</translation>
 <translation id="7645681574855902035">Annullamento del backup di Linux</translation>
 <translation id="7646772052135772216">La sincronizzazione delle password non funziona</translation>
 <translation id="7647403192093989392">Nessuna attività recente</translation>
@@ -5373,7 +5373,7 @@
 <translation id="7664620655576155379">Dispositivo Bluetooth non supportato: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="7665082356120621510">Riserva dimensioni</translation>
 <translation id="7665369617277396874">Aggiungi account</translation>
-<translation id="7668002322287525834">{NUM_WEEKS,plural, =1{Restituisci <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimana}other{Restituisci <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimane}}</translation>
+<translation id="7668002322287525834">{NUM_WEEKS,plural, =1{Restituisci questo <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimana}other{Restituisci questo <ph name="DEVICE_TYPE" /> entro {NUM_WEEKS} settimane}}</translation>
 <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{PIN errato. Hai ancora a disposizione un tentativo.}other{PIN errato. Hai ancora a disposizione # tentativi.}}</translation>
 <translation id="7671130400130574146">Usa barra del titolo di sistema e bordi</translation>
 <translation id="767127784612208024">Tocca per confermare la reimpostazione</translation>
@@ -5556,7 +5556,7 @@
 <translation id="7855678561139483478">Sposta scheda in una nuova finestra</translation>
 <translation id="7857117644404132472">Aggiungi eccezione</translation>
 <translation id="7857949311770343000">È la pagina Nuova scheda prevista?</translation>
-<translation id="785948723952233770">Questa opzione non sarà più supportata a partire dal mese di dicembre. Contatta il tuo amministratore.</translation>
+<translation id="785948723952233770">Questa opzione non sarà più supportata a partire da fine dicembre. Contatta il tuo amministratore.</translation>
 <translation id="786073089922909430">Servizio: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;Download</translation>
 <translation id="7864539943188674973">Disattiva Bluetooth</translation>
@@ -6303,7 +6303,7 @@
 <translation id="8783834180813871000">Digita il codice di accoppiamento Bluetooth e premi Invio</translation>
 <translation id="8784626084144195648">Media raccolta</translation>
 <translation id="8785622406424941542">Stilo</translation>
-<translation id="8786697630358316925">Questa opzione non sarà più supportata a partire dal mese di dicembre. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation>
+<translation id="8786697630358316925">Questa opzione non sarà più supportata a partire da fine dicembre. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8787254343425541995">Consenti proxy per reti condivise</translation>
 <translation id="8791534160414513928">Invia una richiesta "Non tenere traccia" con il tuo traffico di navigazione</translation>
 <translation id="8794025342371547160">IP limitato</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index f1c9786..cec62891 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">ხელით დამატება</translation>
 <translation id="1361655923249334273">გამოუყენებელი</translation>
 <translation id="1361872463926621533">ხმის დაკვრა გაშვებისას</translation>
+<translation id="1362865166188278099">მექანიკური პრობლემაა. შეამოწმეთ პრინტერი</translation>
 <translation id="1363585519747660921">USB პრინტერი საჭიროებს კონფიგურაციას</translation>
 <translation id="1365180424462182382">თქვენს <ph name="BEGIN_LINK" />ბრაუზერს მართავს<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">გაუშვით Linux ხელსაწყოები, რედაქტორები და IDE-ები თქვენს <ph name="DEVICE_TYPE" />-ზე. &lt;a target="_blank" href="<ph name="URL" />"&gt;შეიტყვეთ მეტი&lt;/a&gt;</translation>
@@ -1372,6 +1373,7 @@
 <translation id="2636625531157955190">Chrome-მა ვერ მიიღო წვდომა გამოსახულებაზე.</translation>
 <translation id="2637400434494156704">PIN-კოდი არასწორია. დაგრჩათ ერთი მცდელობა.</translation>
 <translation id="2638662041295312666">შესვლის სურათი</translation>
+<translation id="2640549051766135490">არჩეულია ალბომი <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">დაუკავშირდით თქვენს ტელეფონს — დიალოგური ფანჯარა</translation>
 <translation id="2641065435954454414">მიმდინარეობს ჩამოსატვირთად მომზადება</translation>
 <translation id="2642111877055905627">ფეხბურთის ბურთი</translation>
@@ -1957,6 +1959,7 @@
 <translation id="338583716107319301">გამყოფი</translation>
 <translation id="338691029516748599">ქსელი <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />-დან, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />%, მართავს თქვენი ადმინისტრატორი, დაკავშირება</translation>
 <translation id="3387614642886316601">მართლწერის გაძლიერებული შემოწმების გამოყენება</translation>
+<translation id="3388094447051599208">გამომავალი ლანგარი თითქმის სავსეა</translation>
 <translation id="3388788256054548012">ეს ფაილი დაშიფრულია. სთხოვეთ მის მფლობელს დეშიფრაცია.</translation>
 <translation id="3390013585654699824">აპის შესახებ</translation>
 <translation id="3390741581549395454">Linux აპებისა და ფაილების სარეზერვო კოპირება წარმატებით დასრულდა ახალ ვერსიაზე გადასვლა მალე დაიწყება.</translation>
@@ -2034,6 +2037,7 @@
 <translation id="3471876058939596279">ვიდეოსთვის HDMI და USB Type-C პორტების ერთდროულად გამოყენება ვერ მოხერხდება. გამოიყენეთ განსხვავებული ვიდეოპორტი.</translation>
 <translation id="3473241910002674503">ნავიგაცია მთავარზე/უკან და აპებს შორის გადართვა ღილაკების მეშვეობით ტაბლეტის რეჟიმში.</translation>
 <translation id="3473479545200714844">ეკრანის ლუპა</translation>
+<translation id="347394413229268704">მოგვიანებით წაკითხვა</translation>
 <translation id="3475843873335999118">სამწუხაროდ, თქვენი თითის ანაბეჭდის ამოცნობა კვლავ ვერ მოხერხდა. გთხოვთ, შეიყვანოთ პაროლი.</translation>
 <translation id="3476303763173086583">გამოყენებისა და დიაგნოსტიკის მონაცემების გაგზავნა. ხელი შეუწყვეთ Android-ის გაუმჯობესებას თქვენი შვილისთვის, დიაგნოსტიკისა და მოწყობილობის/აპების გამოყენების მონაცემების ავტომატურად გაგზავნით Google-ში. აღნიშნული მონაცემები არ იქნება გამოყენებული თქვენი შვილის ვინაობის დასადგენად, არამედ დაგვეხმარება სისტემის/აპების სტაბილურობისა და სხვა ფუნქციების გაუმჯობესებაში. გარდა ამისა, გაერთიანებული მონაცემების ნაწილი ხელს შეუწყობს Google აპებსა და პარტნიორებს, მაგალითად, Android-ის დეველოპერებს. ეს <ph name="BEGIN_LINK1" />პარამეტრი<ph name="END_LINK1" /> არის იძულებით გააქტიურებული მფლობელის მიერ. მფლობელს შეუძლია ამ მოწყობილობის დიაგნოსტიკისა და გამოყენების მონაცემების Google-ისთვის გაგზავნის დაშვება. თუ თქვენი შვილისთვის ჩართულია ვებსა და აპებში დამატებითი აქტივობის პარამეტრი, აღნიშნული მონაცემები შესაძლოა შეინახოს მის Google ანგარიშში. <ph name="BEGIN_LINK2" />შეიტყვეთ მეტი<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">სამწუხაროდ, სისტემამ თქვენი მოწყობილობისთვის წესები ვერ გადმოიტანა.</translation>
@@ -2594,6 +2598,7 @@
 <translation id="4107048419833779140">მეხსიერების მოწყობილობების იდენტიფიცირება და ამოღება</translation>
 <translation id="4109135793348361820">ფანჯრის გადატანა <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">ჩამოტვირთვა დასრულდა: <ph name="FILE_NAME" />. ჩამოტვირთვების ზოლის არეზე გადასასვლელად დააჭირეთ კლავიშთა კომბინაციას: Shift+F6.</translation>
+<translation id="4110686435123617899">აირჩიეთ ალბომი <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">დაათვალიერეთ ვები მაღალკონტრასტულ რეჟიმში</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ხაზგარეშე)</translation>
 <translation id="4115002065223188701">ქსელი დიაპაზონს მიღმაა</translation>
@@ -3080,6 +3085,7 @@
 <translation id="4780321648949301421">გვერდის შენახვა, როგორც…</translation>
 <translation id="4785719467058219317">თქვენ მიერ გამოყენებული უსაფრთხოების გასაღები არ არის რეგისტრირებული ამ ვებსაიტზე</translation>
 <translation id="4788092183367008521">გთხოვთ, შეამოწმოთ თქვენი კავშირი ქსელთან და ხელახლა ცადოთ.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ფოტო</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;მოხსენება პრობლემის შესახებ…</translation>
 <translation id="4794810983896241342">განახლებებს მართავს <ph name="BEGIN_LINK" />თქვენი ადმინისტრატორი<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 29d4ca1..29bc94c 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Қолмен енгізу</translation>
 <translation id="1361655923249334273">Пайдаланылмаған</translation>
 <translation id="1361872463926621533">Іске қосу кезінде дыбыс ойнатылсын</translation>
+<translation id="1362865166188278099">Механикалық ақау. Принтерді тексеріңіз.</translation>
 <translation id="1363585519747660921">USB принтерін конфигурациялау қажет</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Браузеріңізді<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> басқарады.</translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" /> құрылғысында Linux құралдарын, редакторларын және интеграцияланған әзірлеу орталарын іске қосыңыз. &lt;a target="_blank" href="<ph name="URL" />"&gt;Толығырақ&lt;/a&gt;</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chrome кескінді пайдалана алмайды.</translation>
 <translation id="2637400434494156704">PIN коды дұрыс емес. Сізде бір мүмкіндік қалды.</translation>
 <translation id="2638662041295312666">Кіру суреті</translation>
+<translation id="2640549051766135490">"<ph name="TITLE" />" (<ph name="DESC" />) альбомы таңдалды.</translation>
 <translation id="264083724974021997">Телефонға қосылу – диалогтік терезе</translation>
 <translation id="2641065435954454414">Жүктеп алу үшін әзірленуде</translation>
 <translation id="2642111877055905627">Футбол добы</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">Бөлгіш</translation>
 <translation id="338691029516748599"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> желі, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, сигнал күші: <ph name="SIGNAL_STRENGTH" />%, әкімшіңіз басқарады, қосылу</translation>
 <translation id="3387614642886316601">Жетілдірілген емле тексеру құралын пайдалану</translation>
+<translation id="3388094447051599208">Шығыс науасы толуға жақын.</translation>
 <translation id="3388788256054548012">Бұл файл шифрланған. Иесінен шифрдан шығаруын сұраңыз.</translation>
 <translation id="3390013585654699824">Қолданба мәліметтері</translation>
 <translation id="3390741581549395454">Linux қолданбалары мен файлдарының сақтық көшірмесі жасалды. Жаңа нұсқа орнату көп ұзамай басталады.</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">HDMI және USB Type-C порттарын бір уақытта бейне үшін қолдануға болмайды. Басқа бейне ұяшығын қолданыңыз.</translation>
 <translation id="3473241910002674503">Планшет режимінде түймелердің көмегімен негізгі экранға, артқа өтіңіз және қолданбалар арасында ауысыңыз.</translation>
 <translation id="3473479545200714844">Экран ұлғайтқыш</translation>
+<translation id="347394413229268704">Кейін оқу</translation>
 <translation id="3475843873335999118">Кешіріңіз, саусақ ізі әлі танылмады. Құпия сөзіңізді енгізіңіз.</translation>
 <translation id="3476303763173086583">Пайдаланылуы және диагностикасы туралы деректерді жіберу. Диагностикалық деректерді, сондай-ақ құрылғы мен қолданбаларды пайдалану деректерін Google қызметіне автоматты түрде жіберу арқылы балаңыздың Android жүйесін пайдалану тәжірибесін жақсартуға көмектесіңіз. Бұл деректер баланың жеке басын анықтауға пайдаланылмайды. Олар жүйе мен қолданбаның тұрақты жұмыс істеуіне және басқа да жақсартулар енгізуге көмектеседі. Кейбір жиынтық деректер Google қолданбаларын жетілдіруге және Android әзірлеушілері сияқты серіктестердің жұмысына көмектеседі. Бұл <ph name="BEGIN_LINK1" />параметрді<ph name="END_LINK1" /> иесі орнатқан. Иесі бұл құрылғының диагностикасы және пайдаланылуы туралы деректерді Google қызметіне жіберуге рұқсат бере алады. Егер "Интернет пен қолданбаларды пайдаланудың қосымша тарихы" параметрі қосулы болса, бұл деректер балаңыздың Google есептік жазбасына сақталуы мүмкін. <ph name="BEGIN_LINK2" />Толығырақ<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Қап! Жүйе құрылғыңызға арналған саясатты ала алмады.</translation>
@@ -2592,6 +2596,7 @@
 <translation id="4107048419833779140">Жад құрылғыларын анықтау және шығару</translation>
 <translation id="4109135793348361820">Терезені <ph name="USER_NAME" /> пайдаланушысына (<ph name="USER_EMAIL" />) жылжыту</translation>
 <translation id="4110490973560452005">Жүктеп алу аяқталды: <ph name="FILE_NAME" />. Жүктеп алынғандар жолағы аумағына оралу үшін Shift+F6 пернелерін басыңыз.</translation>
+<translation id="4110686435123617899">"<ph name="TITLE" />" альбомын таңдаңыз (<ph name="DESC" />).</translation>
 <translation id="4110895898888439383">Беттерді жоғары контраст режимінде қараңыз</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (офлайн)</translation>
 <translation id="4115002065223188701">Желі қолжетімді емес</translation>
@@ -3078,6 +3083,7 @@
 <translation id="4780321648949301421">Бетті басқаша сақтау…</translation>
 <translation id="4785719467058219317">Веб-сайтта тіркелмеген қауіпсіздік кілтін пайдаланып жатырсыз.</translation>
 <translation id="4788092183367008521">Желі байланысын тексеріп, әрекетті қайталаңыз.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> фотосурет</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Мәселе туралы хабарлау…</translation>
 <translation id="4794810983896241342">Жаңартуларды <ph name="BEGIN_LINK" />әкімшіңіз<ph name="END_LINK" /> басқарады.</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 07e4a3f..b73d263 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">បន្ថែមដោយផ្ទាល់</translation>
 <translation id="1361655923249334273">មិនបានប្រើ</translation>
 <translation id="1361872463926621533">ចាក់សំឡេង​នៅពេលចាប់ផ្តើម</translation>
+<translation id="1362865166188278099">បញ្ហា​មេកានិច​។ សូមពិនិត្យមើល​ម៉ាស៊ីនបោះពុម្ព</translation>
 <translation id="1363585519747660921">ម៉ាស៊ីនបោះពុម្ព USB ត្រូវការ​ការកំណត់រចនាសម្ព័ន្ធ</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />កម្មវិធីរុករក​តាមអ៊ីនធឺណិត​របស់អ្នក​ស្ថិតក្រោមការ​គ្រប់គ្រង<ph name="END_LINK" />របស់ <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">ដំណើរការ​ឧបករណ៍ Linux, កម្មវិធីកែសម្រួល និង IDE នៅលើ <ph name="DEVICE_TYPE" /> របស់អ្នក។ &lt;a target="_blank" href="<ph name="URL" />"&gt;ស្វែងយល់បន្ថែម&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome មិនអាចចូលប្រើរូបភាពទេ។</translation>
 <translation id="2637400434494156704">កូដ PIN មិនត្រឹមត្រូវទេ។ អ្នកអាច​បញ្ចូលបានតែម្ដង​ទៀតប៉ុណ្ណោះ។</translation>
 <translation id="2638662041295312666">រូបភាពចូលគណនី</translation>
+<translation id="2640549051766135490">បានជ្រើសរើស​អាល់ប៊ុម <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">ភ្ជាប់ជាមួយ​ទូរសព្ទរបស់អ្នក៖ ប្រអប់បញ្ចូល</translation>
 <translation id="2641065435954454414">កំពុង​រៀបចំទាញ​យក</translation>
 <translation id="2642111877055905627">បាល់ទាត់</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">សញ្ញាបំបែក</translation>
 <translation id="338691029516748599">បណ្ដាញ <ph name="NETWORK_INDEX" /> នៃ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" />%, គ្រប់គ្រងដោយអ្នកគ្រប់គ្រងរបស់អ្នក, ភ្ជាប់</translation>
 <translation id="3387614642886316601">ប្រើការពិនិត្យ​អក្ខរាវិរុទ្ធដែលបាន​កែលម្អ</translation>
+<translation id="3388094447051599208">ថាសដាក់​ក្រដាស​បោះពុម្ព​ជិតពេញហើយ</translation>
 <translation id="3388788256054548012">ឯកសារ​នេះ​ត្រូវ​បាន​អ៊ីនគ្រីប។ សូមស្នើឱ្យម្ចាស់ឯកសារនេះឱ្យធ្វើការ​ឌិគ្រីប។</translation>
 <translation id="3390013585654699824">ព័ត៌មានលម្អិត​អំពី​កម្មវិធី</translation>
 <translation id="3390741581549395454">បានបម្រុងទុក​កម្មវិធី និង​ឯកសារ Linux ដោយ​ជោគជ័យ​ហើយ។ ការ​ដំឡើង​កំណែ​នឹង​ចាប់ផ្ដើម​ក្នុងពេល​បន្តិច​ទៀត​នេះ​។</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">មិនអាចប្រើរន្ធ HDMI និង USB ប្រភេទ C សម្រាប់​វីដេអូ​ក្នុងពេលតែមួយបានទេ។ សូមប្រើ​រន្ធវីដេអូផ្សេងគ្នា។</translation>
 <translation id="3473241910002674503">ចូលទៅទំព័រដើម ថយក្រោយ រួចប្ដូរកម្មវិធី​ដោយប្រើប៊ូតុងនៅក្នុងមុខងារថេប្លេត។</translation>
 <translation id="3473479545200714844">ឧបករណ៍ពង្រីកអេក្រង់</translation>
+<translation id="347394413229268704">អានពេលក្រោយ</translation>
 <translation id="3475843873335999118">សូម​ទោស នៅតែមិនស្គាល់ស្នាមម្រាមដៃ​របស់អ្នក​ដដែល។ សូម​បញ្ចូល​ពាក្យ​សម្ងាត់​របស់អ្នក។</translation>
 <translation id="3476303763173086583">បញ្ជូន​ទិន្នន័យ​ប្រើប្រាស់ និង​វិភាគ។ ជួយធ្វើឱ្យ​បទពិសោធន៍ប្រើប្រាស់ Android របស់កូនអ្នក​ប្រសើរឡើង ដោយ​បញ្ជូន​ទិន្នន័យ​នៃការ​វិភាគ ​​ឧបករណ៍ និង​ការប្រើប្រាស់កម្មវិធី​ទៅ Google ដោយ​ស្វ័យប្រវត្តិ។ សកម្មភាពនេះ​នឹងមិនត្រូវ​បានធ្វើឡើង ដើម្បី​កំណត់​អត្តសញ្ញាណ​កូន​របស់អ្នក​នោះទេ តែការធ្វើបែបនេះ​នឹងជួយដល់ស្ថិរភាពកម្មវិធី និងប្រព័ន្ធ ព្រមទាំង​ការកែលម្អ​ផ្សេងទៀត។ ទិន្នន័យ​ប្រមូលបាន​មួយចំនួន​ក៏នឹង​ជួយដល់​កម្មវិធី និង​ដៃគូ Google ដូចជា​អ្នកអភិវឌ្ឍន៍ Android ផងដែរ។ <ph name="BEGIN_LINK1" />ការកំណត់<ph name="END_LINK1" />នេះត្រូវបាន​អនុវត្ត​ដោយម្ចាស់។ ម្ចាស់អាចនឹង​ជ្រើសរើស ដើម្បីបញ្ជូនទិន្នន័យប្រើប្រាស់ និងវិភាគសម្រាប់​ឧបករណ៍នេះ​ទៅ Google ។ ប្រសិនបើ​ការកំណត់​សកម្មភាព​កម្មវិធី និង​គេហទំព័រ​បន្ថែម​ត្រូវបាន​បើកសម្រាប់​កូនរបស់អ្នក នោះទិន្នន័យនេះ​អាចត្រូវ​បានរក្សាទុក​ទៅក្នុង​គណនី Google របស់គាត់។ <ph name="BEGIN_LINK2" />ស្វែងយល់​បន្ថែម<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">អូ៎! ប្រព័ន្ធ​មិនអាចទាញយកគោលការណ៍​សម្រាប់ឧបករណ៍របស់អ្នកបានទេ។</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">កំណត់​អត្តសញ្ញាណ និងដក​ឧបករណ៍ផ្ទុកចេញ។</translation>
 <translation id="4109135793348361820">ផ្លាស់ទីផ្ទាំងទៅ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">ការទាញយក​បានបញ្ចប់៖ <ph name="FILE_NAME" /> ។ សូមចុច Shift+F6 ដើម្បីប្ដូរទៅផ្នែក​របាទាញយក។</translation>
+<translation id="4110686435123617899">ជ្រើសរើស​អាល់ប៊ុម <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">រុក​រក​បណ្ដាញ​ដោយប្រើ​មុខងារ​ភាពដិត​កម្រិត​ខ្ពស់</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (គ្មានអ៊ីនធឺណិត)</translation>
 <translation id="4115002065223188701">បណ្តាញ​នៅ​ក្រៅ​ដែន</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">រក្សាទុកទំព័រជា...</translation>
 <translation id="4785719467058219317">អ្នកកំពុងប្រើ​សោសុវត្ថិភាព​ដែលមិនបាន​ចុះឈ្មោះជាមួយ​គេហទំព័រនេះ</translation>
 <translation id="4788092183367008521">សូម​ពិនិត្យ​មើល​ការ​តភ្ជាប់​បណ្ដាញ​របស់​អ្នក​ រួច​ព្យាយាម​ម្ដង​ទៀត​។</translation>
+<translation id="4791000909649665275">រូបថត <ph name="NUMBER" /> សន្លឹក</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">រាយការណ៍បញ្ហា...</translation>
 <translation id="4794810983896241342">កំណែថ្មីៗ​ស្ថិតក្រោម​ការគ្រប់គ្រង​របស់<ph name="BEGIN_LINK" />អ្នកគ្រប់គ្រង​របស់អ្នក<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 84b59d5..081fdf2 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -17,6 +17,7 @@
 <translation id="1012876632442809908">USB-C ಸಾಧನ (ಮುಂದಿನ ಪೋರ್ಟ್)</translation>
 <translation id="1013707859758800957">ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್ ರದ್ದುಗೊಳಿಸಲಾಗಿರುವ ಪ್ಲಗ್-ಇನ್ ಅನ್ನು ಈ ಪುಟದಲ್ಲಿ ರನ್ ಮಾಡಲು ಅನುಮತಿಸಲಾಗಿದೆ.</translation>
 <translation id="1015318665228971643">ಫೋಲ್ಡರ್ ಹೆಸರು ಎಡಿಟ್ ಮಾಡಿ</translation>
+<translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲು ಕೊನೆಯ ದಿನ}one{{NUM_DAYS} ದಿನಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ}other{{NUM_DAYS} ದಿನಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ}}</translation>
 <translation id="1016437870506746108">{COUNT,plural, =0{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ}=1{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ}one{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಗಳನ್ನು ತೆರೆಯಿರಿ}other{&amp;ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲಾ (#) ಗಳನ್ನು ತೆರೆಯಿರಿ}}</translation>
 <translation id="1016566241875885511">ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿ (ಐಚ್ಛಿಕ)</translation>
 <translation id="1017280919048282932">ನಿಘಂಟಿಗೆ &amp;ಸೇರಿಸಿ</translation>
@@ -47,9 +48,11 @@
 <translation id="1047431265488717055">ಲಿಂಕ್ ಪ&amp;ಠ್ಯ ನಕಲಿಸಿ</translation>
 <translation id="1048286738600630630">ಪ್ರದರ್ಶನಗಳು</translation>
 <translation id="1048986595386481879">ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಹಂಚಲಾಗಿದೆ</translation>
+<translation id="1049324577536766607">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ಇಂದ <ph name="ATTACHMENTS" /> ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}one{<ph name="DEVICE_NAME" /> ಇಂದ <ph name="ATTACHMENTS" /> ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}other{<ph name="DEVICE_NAME" /> ಇಂದ <ph name="ATTACHMENTS" /> ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}}</translation>
 <translation id="1049743911850919806">ಅದೃಶ್ಯ</translation>
 <translation id="1049795001945932310">&amp;ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="1054153489933238809">ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಮೂಲ &amp;ಚಿತ್ರವನ್ನು ತೆರೆಯಿರಿ</translation>
+<translation id="1055274863771110134">{NUM_WEEKS,plural, =1{1 ವಾರದ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ}one{{NUM_WEEKS} ವಾರಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ}other{{NUM_WEEKS} ವಾರಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ}}</translation>
 <translation id="1055806300943943258">ಬ್ಲೂಟೂತ್‌ ಮತ್ತು USB ಸಾಧನಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1056466516655540509"><ph name="MINUTES" /> ನಿಮಿಷಗಳ ಹಿಂದೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="1056775291175587022">ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ</translation>
@@ -140,6 +143,7 @@
 <translation id="1166212789817575481">ಬಲಗಡೆಗೆ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿರಿ</translation>
 <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> ನಲ್ಲಿ ತೆರೆದುಕೊಳ್ಳುತ್ತಿದೆ...</translation>
 <translation id="1168100932582989117">Google ಹೆಸರು ಸರ್ವರ್‌ಗಳು</translation>
+<translation id="1170288591054440704">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾದ ಫಾಂಟ್‌ಗಳನ್ನು ಬಳಸಲು ಸೈಟ್ ಬಯಸಿದಾಗ ಸೂಚನೆ ನೀಡಿ</translation>
 <translation id="1171135284592304528">ಆಬ್ಜೆಕ್ಟ್ ಬದಲಾದಾಗ ಕೀಬೋರ್ಡ್ ಫೋಕಸ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ</translation>
 <translation id="1171515578268894665"><ph name="ORIGIN" /> HID ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="1172750555846831341">ಚಿಕ್ಕ ಅಂಚಿನಲ್ಲಿ ಫ್ಲಿಪ್ ಮಾಡಿ</translation>
@@ -303,6 +307,7 @@
 <translation id="1361164813881551742">ಹಸ್ತಚಾಲಿತವಾಗಿ ಸೇರಿಸು</translation>
 <translation id="1361655923249334273">ಬಳಸದ</translation>
 <translation id="1361872463926621533">ಪ್ರಾರಂಭಗೊಂಡಾಗ ಧ್ವನಿಯನ್ನು ಪ್ಲೇ ಮಾಡಿ</translation>
+<translation id="1362865166188278099">ಯಾಂತ್ರಿಕ ಸಮಸ್ಯೆ. ಪ್ರಿಂಟರ್ ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="1363585519747660921">USB ಪ್ರಿಂಟರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗಿದೆ</translation>
 <translation id="1365180424462182382">ನಿಮ್ಮ <ph name="BEGIN_LINK" />ಬ್ರೌಸರ್ ಅನ್ನು<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> ನಿರ್ವಹಿಸುತ್ತಿದೆ</translation>
 <translation id="1366177842110999534">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Linux ಪರಿಕರಗಳು, ಎಡಿಟರ್‌ಗಳು ಮತ್ತು IDE ಗಳನ್ನು ರನ್ ಮಾಡಿ. &lt;a target="_blank" href="<ph name="URL" />"&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
@@ -319,7 +324,9 @@
 <translation id="1383861834909034572">ಪೂರ್ಣಗೊಂಡಾಗ ತೆರೆಯುತ್ತದೆ</translation>
 <translation id="1383876407941801731">ಹುಡುಕಾಟ</translation>
 <translation id="1386387014181100145">ಹೇಗಿರುವಿರಿ.</translation>
+<translation id="1386791642444521222">ಭೌತಿಕ ಸಿಮ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="138784436342154190">ಡಿಫಾಲ್ಟ್‌ ಆರಂಭಿಕ ಪುಟವನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?</translation>
+<translation id="1388728792929436380">ಅಪ್‌ಡೇಟ್‌ಗಳು ಪೂರ್ಣವಾದಾಗ <ph name="DEVICE_TYPE" /> ಸಾಧನವು ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation>
 <translation id="1390548061267426325">ದಿನನಿತ್ಯದ ಟ್ಯಾಬ್ ಅಂತೆ ತೆರೆಯಿರಿ</translation>
 <translation id="1393283411312835250">ಸೂರ್ಯ ಮತ್ತು ಮೇಘಗಳು</translation>
 <translation id="1395730723686586365">ನವೀಕರಣವು ಪ್ರಾರಂಭಗೊಂಡಿದೆ</translation>
@@ -377,6 +384,7 @@
 <translation id="1451375123200651445">ವೆಬ್‌ಪುಟ, ಒಂದೇ ಫೈಲ್</translation>
 <translation id="1451917004835509682">ಮೇಲ್ವಿಚಾರಣೆ ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="1454223536435069390">ಸ್ಕ್ರೀ&amp;ನ್‌ಶಾಟ್‌ ತೆಗೆದುಕೊಳ್ಳಿ</translation>
+<translation id="1459693405370120464">ಹವಾಮಾನ</translation>
 <translation id="1459967076783105826">ವಿಸ್ತರಣೆಗಳಿಂದ ಸೇರಿಸಲಾದ ಇಂಜಿನ್‌ಗಳನ್ನು ಹುಡುಕಿರಿ</translation>
 <translation id="146000042969587795">ಈ ಫ್ರೇಮ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಏಕೆಂದರೆ ಅದು ಕೆಲವು ಅಸುರಕ್ಷಿತ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಿದೆ</translation>
 <translation id="146219525117638703">ONC ಸ್ಥಿತಿ</translation>
@@ -438,6 +446,7 @@
 <translation id="1521442365706402292">ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="1521774566618522728">ಇಂದು ಸಕ್ರಿಯ</translation>
 <translation id="152234381334907219">ಎಂದಿಗೂ ಉಳಿಸಿಲ್ಲ</translation>
+<translation id="1523170391134722817">ಡಿಸೆಂಬರ್ ನಂತರ ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="1523978563989812243">ಪಠ್ಯದಿಂದ ಧ್ವನಿ ಇಂಜಿನ್‌ಗಳು</translation>
 <translation id="1524430321211440688">ಕೀಬೋರ್ಡ್</translation>
 <translation id="1524563461097350801">ಬೇಡ</translation>
@@ -564,6 +573,7 @@
 <translation id="166278006618318542">ವಿಷಯ ಸಾರ್ವಜನಿಕ ಕೀಲಿ ಆಲ್ಗಾರಿದಮ್</translation>
 <translation id="166439687370499867">ಹಂಚಿದ ನೆಟ್‌ವರ್ಕ್‌ ಕಾನ್ಫಿಗರ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ</translation>
 <translation id="1668435968811469751">ಹಸ್ತಚಾಲಿತವಾಗಿ ನೋಂದಾಯಿಸಿ</translation>
+<translation id="1668979692599483141">ಸಲಹೆಗಳ ಕುರಿತು ತಿಳಿದುಕೊಳ್ಳಿ</translation>
 <translation id="1670399744444387456">ಮೂಲ</translation>
 <translation id="167160931442925455">ಇನ್ನಷ್ಟು ಜೋರಾಗಿ</translation>
 <translation id="1673137583248014546">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯ ತಯಾರಕರ ಬ್ರಾಂಡ್ ಹೆಸರು  ಮತ್ತು ಮಾದರಿಯನ್ನು <ph name="URL" /> ನೋಡಲು ಬಯಸುತ್ತದೆ</translation>
@@ -1026,6 +1036,7 @@
 <translation id="2227179592712503583">ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="2229161054156947610">1 ಗಂಟೆಗಿಂತಲೂ ಹೆಚ್ಚು ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="222931766245975952">ಫೈಲ್ ಅನ್ನು ಮೊಟಕುಗೊಳಿಸಲಾಗಿದೆ</translation>
+<translation id="2230005943220647148">ಸೆಲ್ಸಿಯಸ್</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2231238007119540260">ನೀವು ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸಿದರೆ, ನೀವು ಸಾಮಾನ್ಯ ಭದ್ರತೆ ಪರಿಶೀಲನೆಗಳನ್ನು ಆ ಸರ್ವರ್‌ಗಾಗಿ ನೀವು ಮರುಸಂಗ್ರಹಿಸುತ್ತೀರಿ ಮತ್ತು ಅದು ಮಾನ್ಯ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸುವುದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.</translation>
 <translation id="2232876851878324699">ಫೈಲ್ ಆಮದು ಮಾಡದೆ ಇರುವಂತಹ ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಒಳಗೊಂಡಿದೆ:</translation>
@@ -1304,6 +1315,7 @@
 <translation id="2553340429761841190"><ph name="NETWORK_ID" /> ಅನ್ನು ಸಂಪರ್ಕಿಸಲು <ph name="PRODUCT_NAME" /> ಗೆ ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಇನ್ನೊಂದು ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ ಅಥವಾ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2553440850688409052">ಈ ಪ್ಲಗ್‌ ಇನ್ ಅನ್ನು ಮರೆಮಾಡು</translation>
 <translation id="2554553592469060349">ಆಯ್ಕೆ ಮಾಡಿರುವ ಫೈಲ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ (ಗರಿಷ್ಠ ಗಾತ್ರ: 3mb).</translation>
+<translation id="2556820440303627606">{NUM_DAYS,plural, =1{<ph name="DOMAIN" />, ನೀವು ಅಪ್‌ಡೇಟ್ ಒಂದನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ನೀವು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿದಾಗ, ಅಪ್‌ಡೇಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತದೆ.}one{<ph name="DOMAIN" />, ನೀವು ಈ ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಗಡುವಿನ ಮೊದಲು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ನೀವು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿದಾಗ, ಅಪ್‌ಡೇಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತದೆ.}other{<ph name="DOMAIN" />, ನೀವು ಈ ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಗಡುವಿನ ಮೊದಲು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ನೀವು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿದಾಗ, ಅಪ್‌ಡೇಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತದೆ.}}</translation>
 <translation id="2558896001721082624">ಸಿಸ್ಟಂ ಮೆನುವಿನಲ್ಲಿ ಪ್ರವೇಶದ ಆಯ್ಕೆಗಳನ್ನು ಯಾವಾಗಲೂ ತೋರಿಸಿ</translation>
 <translation id="2562743677925229011"><ph name="SHORT_PRODUCT_NAME" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿಲ್ಲ</translation>
 <translation id="2564520396658920462">JavaScript ಅನ್ನು AppleScript ಮೂಲಕ ಎಕ್ಸಿಕ್ಯೂಟ್ ಮಾಡುವ ಸೌಲಭ್ಯವನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು, ಮೆನು ಬಾರ್‌ ಮೂಲಕ, ವೀಕ್ಷಣೆ &gt; ಡೆವಲಪರ್ &gt; Apple ಈವೆಂಟ್‌ಗಳಿಂದ JavaScript ಅನ್ನು ಅನುಮತಿಸಿಗೆ ಹೋಗಿ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ: https://support.google.com/chrome/?p=applescript</translation>
@@ -1362,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome ಚಿತ್ರವನ್ನು ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="2637400434494156704">ಪಿನ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ಇನ್ನೂ ಒಂದು ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.</translation>
 <translation id="2638662041295312666">ಸೈನ್ ಇನ್ ಚಿತ್ರ</translation>
+<translation id="2640549051766135490">ಆಲ್ಬಮ್ <ph name="TITLE" /> <ph name="DESC" /> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="264083724974021997">ನಿಮ್ಮ ಫೋನ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ - ಡಯಲಾಗ್</translation>
 <translation id="2641065435954454414">ಡೌನ್‌ಲೋಡ್‌ಗಾಗಿ ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2642111877055905627">ಸಾಕರ್ ಚೆಂಡು</translation>
@@ -1567,6 +1580,7 @@
 <translation id="2876336351874743617">ಬೆರಳು 2</translation>
 <translation id="2876369937070532032">ನಿಮ್ಮ ಭದ್ರತೆಯು ಅಪಾಯದಲ್ಲಿದ್ದಾಗ, ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವು ಪುಟಗಳ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="2878782256107578644">ಸ್ಕ್ಯಾನ್ ಪ್ರಗತಿಯಲ್ಲಿದೆ, ಈಗ ತೆರೆಯುವುದೇ?</translation>
+<translation id="2878889940310164513">ಸೆಲ್ಯುಲರ್ ಅನ್ನು ಸೇರಿಸಿ...</translation>
 <translation id="288042212351694283">ನಿಮ್ಮ ಯುನಿವರ್ಸಲ್ 2ನೇ ಫ್ಯಾಕ್ಟರ್ ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="2880660355386638022">ವಿಂಡೋ ಪ್ಲೇಸ್‌ಮೆಂಟ್</translation>
 <translation id="2881076733170862447">ನೀವು ವಿಸ್ತರಣೆಯನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation>
@@ -1691,6 +1705,7 @@
 <translation id="3029466929721441205">ಶೆಲ್ಫ್‌ನಲ್ಲಿ ಸ್ಟೈಲಸ್ ಪರಿಕರಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="3031417829280473749">ಏಜೆಂಟ್  X</translation>
 <translation id="3031557471081358569">ಆಮದು ಮಾಡಲು ಐಟಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ:</translation>
+<translation id="3036327949511794916">ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಹಿಂತಿರುಗಿಸುವ ಗಡುವು ಮೀರಿದೆ.</translation>
 <translation id="3036546437875325427">ಫ್ಲ್ಯಾಶ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="3037754279345160234">ಡೊಮೇನ್ ಜೋಡಣೆ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="3038612606416062604">ಹಸ್ತಚಾಲಿತವಾಗಿ ಪ್ರಿಂಟರ್ ಸೇರಿಸಿ</translation>
@@ -1746,6 +1761,7 @@
 <translation id="3115580024857770654">ಎಲ್ಲವನ್ನೂ ಕುಗ್ಗಿಸಿ</translation>
 <translation id="3116968597797150452">ಪ್ರಮಾಣಪತ್ರ ಪ್ರೊಫೈಲ್</translation>
 <translation id="3117362587799608430">ಡಾಕ್ ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ</translation>
+<translation id="3117791853215125017">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲು ವಿಫಲವಾಗಿದೆ}one{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲು ವಿಫಲವಾಗಿದೆ}other{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲು ವಿಫಲವಾಗಿದೆ}}</translation>
 <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> ಸಹಾಯ</translation>
 <translation id="3118654181216384296">ಕೆಲವು ಕ್ಷಣಗಳ ಬಳಿಕ, Linux ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3120430004221004537">ನೀಡಿರುವ ಕಾರ್ಯಾಚರಣೆಗೆ ಈ ಸಾಧನದಲ್ಲಿ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಸಾಕಷ್ಟಿಲ್ಲ: "<ph name="DEVICE_NAME" />".</translation>
@@ -1924,6 +1940,7 @@
 <translation id="3356580349448036450">ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
 <translation id="3359256513598016054">ಪ್ರಮಾಣಪತ್ರ ನೀತಿ ನಿರ್ಬಂಧಗಳು</translation>
 <translation id="3360297538363969800">ಮುದ್ರಣ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮುದ್ರಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="3361421571228286637">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}one{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}other{<ph name="DEVICE_NAME" /> ಸಾಧನವು ನಿಮ್ಮೊಂದಿಗೆ <ph name="ATTACHMENTS" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.}}</translation>
 <translation id="3364986687961713424">ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Ctrl ಅಥವಾ Alt ಬಳಸಿ</translation>
 <translation id="3367047597842238025">ನಿಮಗೆ ಬೇಕಾದ ರೀತಿಯಲ್ಲಿ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ, ಮತ್ತು ನಿಮ್ಮ ಬೆರಳ ತುದಿಯಲ್ಲಿರುವ ಅದ್ಭುತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ.</translation>
@@ -1943,6 +1960,7 @@
 <translation id="338583716107319301">ವಿಭಾಜಕ</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" /> ರಲ್ಲಿ <ph name="NETWORK_INDEX" /> ನೆಟ್‌ವರ್ಕ್, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ <ph name="SIGNAL_STRENGTH" />%, ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸಿದ್ದಾರೆ, ಕನೆಕ್ಟ್</translation>
 <translation id="3387614642886316601">ವರ್ಧಿತ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಬಳಸಿ</translation>
+<translation id="3388094447051599208">ಔಟ್‌ಪುಟ್ ಟ್ರೇ ಬಹುತೇಕ ಭರ್ತಿಯಾಗಿದೆ</translation>
 <translation id="3388788256054548012">ಈ ಫೈಲ್ ಅನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಅದನ್ನು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಅದರ ಮಾಲೀಕರಿಗೆ ಕೇಳಿ.</translation>
 <translation id="3390013585654699824">ಆ್ಯಪ್‌ ವಿವರಗಳು</translation>
 <translation id="3390741581549395454">Linux ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಫೈಲ್‌ಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗಿದೆ. ಅಪ್‌ಗ್ರೇಡ್ ಶೀಘ್ರದಲ್ಲೇ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation>
@@ -2020,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI ಮತ್ತು USB ಟೈಪ್-C ಪೋರ್ಟ್‌ಗಳನ್ನು ವೀಡಿಯೊಗಾಗಿ ಒಂದೇ ಸಮಯದಲ್ಲಿ ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಬೇರೆ ವೀಡಿಯೊ ಪೋರ್ಟ್ ಬಳಸಿ.</translation>
 <translation id="3473241910002674503">ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್‌ನಲ್ಲಿ, ಹೋಮ್‌ಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು, ಹಿಂತಿರುಗಲು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಬಟನ್‌ಗಳನ್ನು ಬಳಸಿ.</translation>
 <translation id="3473479545200714844">ಪರದೆ ವರ್ಧಕ</translation>
+<translation id="347394413229268704">ನಂತರ ಓದಿ</translation>
 <translation id="3475843873335999118">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಫಿಂಗರ್‌‌ಫ್ರಿಂಟ್‌ ಇನ್ನೂ ಗುರುತಿಸಲಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ.</translation>
 <translation id="3476303763173086583">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಮಗುವಿನ Android ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಿ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್‌ಗಳು. ಈ <ph name="BEGIN_LINK1" />ಸೆಟ್ಟಿಂಗ್<ph name="END_LINK1" />ಅನ್ನು ಮಾಲೀಕರೇ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ಈ ಸಾಧನದ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಮತ್ತು ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಕಳುಹಿಸಲು ಮಾಲೀಕರು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್‌ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ಓಹ್‌‌! ನಿಮ್ಮ ಸಾಧನಕ್ಕಾಗಿ ನೀತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಸಿಸ್ಟಂ ವಿಫಲಗೊಂಡಿದೆ.</translation>
@@ -2165,6 +2184,7 @@
 <translation id="3640214691812501263"><ph name="USER_NAME" /> ಬಳಕೆದಾರರಿಗೆ "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸುವುದೇ?</translation>
 <translation id="3640613767643722554">ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು ಗುರುತಿಸಲು ಕಲಿಸಿ</translation>
 <translation id="3645372836428131288">ಫಿಂಗರ್‌‌ಪ್ರಿಂಟ್‌‌ನ ಬೇರೊಂದು ಭಾಗವನ್ನು ಸೆರೆಹಿಡಿಯಲು ಬೆರಳನ್ನು ನಿಧಾನವಾಗಿ ಸರಿಸಿ.</translation>
+<translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ}one{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ}other{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="3649138363871392317">ಫೋಟೋವನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ</translation>
 <translation id="3649505501900178324">ಅಪ್‌ಡೇಟ್ ಬಾಕಿ ಉಳಿದಿದೆ</translation>
@@ -2274,6 +2294,7 @@
 <translation id="3761556954875533505">ಸೈಟ್ ಫೈಲ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಅನುಮತಿಸುವುದೇ?</translation>
 <translation id="3764314093345384080">ವಿವರವಾದ ಬಿಲ್ಡ್ ಮಾಹಿತಿ</translation>
 <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{USB ಸಾಧನದೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಿ}one{# USB ಸಾಧನಗಳೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಿ}other{# USB ಸಾಧನಗಳೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಿ}}</translation>
+<translation id="3764974059056958214">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ಅನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ}one{<ph name="ATTACHMENTS" /> ಅನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ}other{<ph name="ATTACHMENTS" /> ಅನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ}}</translation>
 <translation id="3765246971671567135">ಆಫ್‌ಲೈನ್ ಡೆಮೊ ಮೋಡ್ ಕಾರ್ಯನೀತಿಯನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="3766811143887729231"><ph name="REFRESH_RATE" /> Hz</translation>
 <translation id="377050016711188788">ಐಸ್ ಕ್ರೀಂ</translation>
@@ -2484,6 +2505,7 @@
 <translation id="3983586614702900908">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ ಸಾಧನಗಳು</translation>
 <translation id="3983764759749072418">Play Store ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಈ ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿವೆ.</translation>
 <translation id="3983769721878416534">ಕ್ಲಿಕ್ ಮಾಡುವ ಮೊದಲು ವಿಳಂಬ ಸಮಯ</translation>
+<translation id="3984135167056005094">ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಸೇರಿಸಬೇಡಿ</translation>
 <translation id="3984159763196946143">ಡೆಮೋ ಮೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="3984431586879874039">ನಿಮ್ಮ ಭದ್ರತೆ ಕೀ ಅನ್ನು ನೋಡಲು ಈ ಸೈಟ್‌ಗೆ ಅನುಮತಿಸುವುದೇ?</translation>
 <translation id="3986705137476756801">ಈಗ ಲೈವ್ ಕ್ಯಾಪ್ಶನ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ</translation>
@@ -2577,6 +2599,7 @@
 <translation id="4107048419833779140">ಸಂಗ್ರಹಣೆ ಸಾಧನಗಳನ್ನು ಗುರುತಿಸಿ ಮತ್ತು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="4109135793348361820">ವಿಂಡೋವನ್ನು <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) ಗೆ ಸರಿಸಿ</translation>
 <translation id="4110490973560452005">ಡೌನ್‌ಲೋಡ್‌‌ ಪೂರ್ಣಗೊಂಡಿದೆ: <ph name="FILE_NAME" />. ಡೌನ್‌ಲೋಡ್‌ ಪಟ್ಟಿಯ ಜಾಗಕ್ಕೆ ಹೋಗಲು Shift+F6 ಅನ್ನು ಒತ್ತಿ.</translation>
+<translation id="4110686435123617899">ಆಲ್ಬಮ್ ಆಯ್ಕೆ ಮಾಡಿ <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ಅಧಿಕ ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್‌ನಲ್ಲಿ ವೆಬ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ಆಫ್‌ಲೈನ್)</translation>
 <translation id="4115002065223188701">ನೆಟ್‌ವರ್ಕ್ ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ</translation>
@@ -2902,6 +2925,7 @@
 <translation id="4563210852471260509">ಚೈನೀಸ್‌ನ ಆರಂಭದ ಇನ್‌ಪುಟ್ ಭಾಷೆ</translation>
 <translation id="4563880231729913339">ಬೆರಳು 3</translation>
 <translation id="4565377596337484307">ಪಾಸ್‌ವರ್ಡ್ ಮರೆಮಾಡಿ</translation>
+<translation id="4565577809484439917">{NUM_DAYS,plural, =1{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.}one{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಗಡುವಿನ ಮೊದಲು ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.}other{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಗಡುವಿನ ಮೊದಲು ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.}}</translation>
 <translation id="4565917129334815774">ಸಿಸ್ಟಂ ಲಾಗ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ</translation>
 <translation id="456717285308019641">ಅನುವಾದಿಸಬೇಕಾದ ಪುಟದ ಭಾಷೆ</translation>
 <translation id="4567533462991917415">ಸೆಟಪ್‌ನ ನಂತರ ನೀವು ಯಾವಾಗಲೂ ಹೆಚ್ಚಿನ ಜನರನ್ನು ಸೇರಿಸಬಹುದು. ಪ್ರತಿಯೊಬ್ಬ ವ್ಯಕ್ತಿಯು ತಮ್ಮ ಖಾತೆಯನ್ನು ವೈಯಕ್ತೀಕರಿಸಬಹುದು ಮತ್ತು ಡೇಟಾವನ್ನು ಖಾಸಗಿಯಾಗಿರಿಸಿಕೊಳ್ಳಬಹುದು.</translation>
@@ -2965,6 +2989,7 @@
 <translation id="4638930039313743000">ADB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4641539339823703554">Chrome ಗೆ ಸಿಸ್ಟಂ ಸಮಯವನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಕೆಳಗಿನ ಸಮಯವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ ಅದನ್ನು ಸರಿಪಡಿಸಿ.</translation>
 <translation id="4643612240819915418">&amp;ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ವೀಡಿಯೊ ತೆರೆಯಿರಿ</translation>
+<translation id="4645551927492192497">{NUM_DAYS,plural, =1{<ph name="DOMAIN" />, ನೀವು ಇಂದು ವೈ-ಫೈಗೆ ಸಂಪರ್ಕ ಹೊಂದುವ ಮೂಲಕ ಅಪ್‌ಡೇಟ್ ಒಂದನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಸಂಪರ್ಕ ಒಂದರಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}one{<ph name="DOMAIN" />, ನೀವು ವೈ-ಫೈಗೆ ಸಂಪರ್ಕ ಹೊಂದುವ ಮೂಲಕ ಅಪ್‌ಡೇಟ್‌ ಒಂದನ್ನು ಗಡುವಿನ ಮೊದಲು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಸಂಪರ್ಕ ಒಂದರಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}other{<ph name="DOMAIN" />, ನೀವು ವೈ-ಫೈಗೆ ಸಂಪರ್ಕ ಹೊಂದುವ ಮೂಲಕ ಅಪ್‌ಡೇಟ್‌ ಒಂದನ್ನು ಗಡುವಿನ ಮೊದಲು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕೆಂದು ಬಯಸುತ್ತದೆ. ಅಥವಾ ಮಾಪನ ಮಾಡಲಾದ ಸಂಪರ್ಕ ಒಂದರಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಿ (ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು).}}</translation>
 <translation id="4645676300727003670">&amp;ಇರಿಸಿ</translation>
 <translation id="4646675363240786305">ಪೋರ್ಟ್‌ಗಳು</translation>
 <translation id="4646949265910132906">ಸುರಕ್ಷಿತ Wi-Fi ಸಂಪರ್ಕ</translation>
@@ -2977,6 +3002,7 @@
 <translation id="4651484272688821107">ಡೆಮೊ ಮೋಡ್ ಸಂಪನ್ಮೂಲಗಳೊಂದಿಗೆ ಆನ್‌ಲೈನ್ ಘಟಕವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="4652935475563630866">ಕ್ಯಾಮರಾ ಸೆಟ್ಟಿಂಗ್‌ನಲ್ಲಿರುವ ಬದಲಾವಣೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು Parallels Desktop ನ ಅಗತ್ಯವಿದೆ ಮುಂದುವರಿಯಲು, Parallels Desktop ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="4653405415038586100">Linux ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವಾಗ ದೋಷ ಉಂಟಾಗಿದೆ</translation>
+<translation id="4657810666108475055">ಟ್ಯಾಬ್ ಹುಡುಕಾಟ</translation>
 <translation id="465878909996028221">http, https ಮತ್ತು ಫೈಲ್ ಪ್ರೊಟೊಕಾಲ್‌ಗಳು ಮಾತ್ರವೇ ಬ್ರೌಸರ್ ಮರುನಿರ್ದೇಶನಗಳಿಗೆ ಬೆಂಬಲಿತವಾಗಿವೆ.</translation>
 <translation id="4659077111144409915">ಪ್ರಾಥಮಿಕ ಖಾತೆ</translation>
 <translation id="4660476621274971848">ನಿರೀಕ್ಷಿತ ಆವೃತ್ತಿ "<ph name="EXPECTED_VERSION" />", ಆದರೆ ಆವೃತ್ತಿಯು "<ph name="NEW_ID" />" ಆಗಿದೆ</translation>
@@ -3060,6 +3086,7 @@
 <translation id="4780321648949301421">ಇದರಂತೆ ಪುಟವನ್ನು ಉಳಿಸು...</translation>
 <translation id="4785719467058219317">ಈ ವೆಬ್‌ಸೈಟ್‌ನೊಂದಿಗೆ ನೋಂದಾಯಿಸಿಲ್ಲದ ಭದ್ರತೆ ಕೀಯನ್ನು ನೀವು ಬಳಸುತ್ತಿದ್ದೀರಿ</translation>
 <translation id="4788092183367008521">ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ಫೋಟೋ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;ಸಮಸ್ಯೆಯನ್ನು ವರದಿಮಾಡಿ...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />ನಿಮ್ಮ ನಿರ್ವಾಹಕರು<ph name="END_LINK" /> ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತಾರೆ</translation>
@@ -3102,6 +3129,7 @@
 <translation id="4842976633412754305">ದೃಢೀಕರಿಸದಿರುವ ಮೂಲಗಳಿಂದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಲೋಡ್‌ ಮಾಡಲು ಈ ಪುಟವು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="4844333629810439236">ಇತರ ಕೀಬೋರ್ಡ್‌ಗಳು</translation>
 <translation id="4846680374085650406">ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್‌ಗಾಗಿ ನಿರ್ವಾಹಕರ ಶಿಫಾರಸನ್ನು ಅನುಸರಿಸುತ್ತಿರುವಿರಿ.</translation>
+<translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ಅನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ, <ph name="TOPIC_SOURCE" /> ಆಲ್ಬಮ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲು Enter ಒತ್ತಿರಿ</translation>
 <translation id="4848191975108266266">Google Assistant "Ok Google"</translation>
 <translation id="4848518990323155912">ಸಿಮ್ ಕಾರ್ಡ್ ಲಾಕ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ (ಮೊಬೈಲ್ ಡೇಟಾ ಬಳಸಲು ಪಿನ್ ಅಗತ್ಯವಿದೆ)</translation>
 <translation id="4849286518551984791">ಕೋಆರ್ಡಿನೇಟೆಡ್ ಜಾಗತಿಕ ಸಮಯ (UTC/GMT)</translation>
@@ -3359,6 +3387,7 @@
 <translation id="5159419673777902220">ನಿಮ್ಮ ಪೋಷಕರು ವಿಸ್ತರಣೆಯ ಅನುಮತಿಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
 <translation id="5160634252433617617">ಭೌತಿಕ ಕೀಬೋರ್ಡ್</translation>
 <translation id="5160857336552977725">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನದಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
+<translation id="5162905305237671850"><ph name="DEVICE_TYPE" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="5166596762332123936">ಅವಧಿ ಮೀರಿರುವ ಕಾರಣ <ph name="PLUGIN_NAME" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="5170568018924773124">ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="5171045022955879922">ಹುಡುಕಾಟ ನಡೆಸಿ ಅಥವಾ URL ಅನ್ನು ಟೈಪ್‌ ಮಾಡಿ</translation>
@@ -3466,7 +3495,7 @@
 <translation id="5298219193514155779">ಇವರಿಂದ ಥೀಮ್ ರಚಿಸಲಾಗಿದೆ</translation>
 <translation id="5299109548848736476">ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಡಿ</translation>
 <translation id="5300287940468717207">ಸೈಟ್ ಅನುಮತಿಗಳನ್ನು ಮರುಹೊಂದಿಸುವುದೇ?</translation>
-<translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
+<translation id="5300589172476337783">ತೋರಿಸಿ</translation>
 <translation id="5300719150368506519">ನೀವು ಭೇಟಿ ನೀಡುವ ಪುಟಗಳ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸಿ</translation>
 <translation id="5301751748813680278">ಅತಿಥಿಯಾಗಿ ಪ್ರವೇಶಿಸಲಾಗಿದೆ.</translation>
 <translation id="5301954838959518834">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation>
@@ -3524,6 +3553,7 @@
 <translation id="5372579129492968947">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡಿ</translation>
 <translation id="5376169624176189338">ಹಿಂದಕ್ಕೆ ಹೋಗಲು ಕ್ಲಿಕ್ ಮಾಡಿ, ಇತಿಹಾಸ ವೀಕ್ಷಿಸಲು ಒತ್ತಿಹಿಡಿಯಿರಿ</translation>
 <translation id="5376931455988532197">ಫೈಲ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ</translation>
+<translation id="5377721922656071359">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಯಶಸ್ವಿಯಾಗಿ ಕಳುಹಿಸಲಾಗಿದೆ}one{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಯಶಸ್ವಿಯಾಗಿ ಕಳುಹಿಸಲಾಗಿದೆ}other{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ಗೆ ಯಶಸ್ವಿಯಾಗಿ ಕಳುಹಿಸಲಾಗಿದೆ}}</translation>
 <translation id="537813040452600081">ನೀವು ಈ ವಿಂಡೋದಲ್ಲಿ ವೀಕ್ಷಿಸುವ ಪುಟಗಳು ಬ್ರೌಸರ್ ಇತಿಹಾಸದಲ್ಲಿ ಗೋಚರಿಸುವುದಿಲ್ಲ ಮತ್ತು ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡಿದ ನಂತರ, ಅವುಗಳು ಕುಕೀಗಳಂತಹ ಇತರ ಗುರುತುಗಳನ್ನು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಬಿಡುವುದಿಲ್ಲ. ನೀವು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಫೈಲ್‌ಗಳು ಮತ್ತು ನೀವು ರಚಿಸಿದ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ರಕ್ಷಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5379140238605961210">ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ ನಿರ್ಬಂಧವನ್ನು ಮುಂದುವರಿಸಿ</translation>
 <translation id="5382591305415226340">ಬೆಂಬಲಿತ ಲಿಂಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
@@ -3627,6 +3657,7 @@
 <translation id="5499313591153584299">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿ ಆಗಿರಬಹುದು.</translation>
 <translation id="5499453227627332024">ನಿಮ್ಮ Linux ಕಂಟೇನರ್‌ಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಲಭ್ಯವಿದೆ. ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಆ್ಯಪ್ ಸಹಾಯದಿಂದಲೂ ನೀವು ನಂತರದಲ್ಲಿ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಬಹುದು.</translation>
 <translation id="5500709606820808700">ಸುರಕ್ಷತಾ ಪರಿಶೀಲನೆಯನ್ನು ಈ ದಿನ ನಡೆಸಲಾಗಿದೆ</translation>
+<translation id="5501809658163361512">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ}one{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ}other{<ph name="ATTACHMENTS" /> ಗಳನ್ನು <ph name="DEVICE_NAME" /> ನಿಂದ ಸ್ವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ}}</translation>
 <translation id="5502500733115278303">Firefox ಇಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಿದೆ</translation>
 <translation id="5503982651688210506">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಲು ಮತ್ತು ಸರಿಸಲು ಹಾಗೂ ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಬಳಸಲು <ph name="HOST" /> ಗೆ ಅನುಮತಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation>
 <translation id="5505264765875738116">ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಬಹುದೇ ಎಂದು ಸೈಟ್‌ಗಳು ಕೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
@@ -3898,6 +3929,7 @@
 <translation id="5840680448799937675">ಫೈಲ್‌ಗಳನ್ನು ಯಾವಾಗಲೂ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ</translation>
 <translation id="5841270259333717135">ಇಥರ್ನೆಟ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
 <translation id="5842497610951477805">ಬ್ಲೂಟೂತ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="5843706793424741864">ಫ್ಯಾರನ್‌ಹೀಟ್</translation>
 <translation id="5844574845205796324">ಎಕ್ಸ್‌ಪ್ಲೋರ್ ಮಾಡಲು ಹೊಸ ವಿಷಯವನ್ನು ಸೂಚಿಸಿ</translation>
 <translation id="5846200638699387931">ರಿಲೇಶನ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷ: <ph name="ERROR_LINE" /></translation>
 <translation id="5846807460505171493">ಅಪ್‌ಡೇಟ್‌ಗಳು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ. ಮುಂದುವರಿಯುವ ಮೂಲಕ, ಈ ಸಾಧನವು ಸಂಭಾವ್ಯವಾಗಿ ಸೆಲ್ಯುಲರ್ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು Google, ನಿಮ್ಮ ವಾಹಕ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ತಯಾರಕರ ಅಪ್‌ಡೇಟ್‌ಗಳು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಸಹ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಮತ್ತು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನೀವು ಒಪ್ಪಿಕೊಳ್ಳುವಿರಿ. ಇವುಗಳಲ್ಲಿ ಕೆಲವೊಂದು ಆ್ಯಪ್‌ಗಳು, ಆ್ಯಪ್‌ಗಳಲ್ಲಿ ಖರೀದಿಸುವ ಅವಕಾಶ ಒದಗಿಸಬಹುದು.</translation>
@@ -3938,6 +3970,7 @@
 <translation id="5877064549588274448">ಚಾನಲ್ ಬದಲಾಗಿದೆ. ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="5877584842898320529">ಆಯ್ಕೆಮಾಡಿದ ಪ್ರಿಂಟರ್ ಲಭ್ಯವಿಲ್ಲ ಅಥವಾ ಸರಿಯಾಗಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿಲ್ಲ. <ph name="BR" /> ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಪರೀಕ್ಷಿಸಿ ಅಥವಾ ಬೇರೊಂದು ಪ್ರಿಂಟರ್ ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="5882919346125742463">ತಿಳಿದಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳು</translation>
+<translation id="5883464818836130222">ಡಿಸೆಂಬರ್ 31 ರ ನಂತರ ಕ್ಲೌಡ್ ಮುದ್ರಣವನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="5884474295213649357">ಈ ಟ್ಯಾಬ್ USB ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ.</translation>
 <translation id="5886009770935151472">ಬೆರಳು 1</translation>
 <translation id="5889282057229379085">ಮಧ್ಯಂತರ CA ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ: <ph name="NUM_INTERMEDIATE_CA" /></translation>
@@ -4019,6 +4052,7 @@
 <translation id="5979156418378918004">{NUM_EXTENSIONS,plural, =1{ನೀವು 1 ಹಾನಿಕಾರಕ ವಿಸ್ತರಣೆಯನ್ನು ಪುನಃ ಆನ್ ಮಾಡಿದ್ದೀರಿ}one{ನೀವು {NUM_EXTENSIONS} ಹಾನಿಕಾರಕ ವಿಸ್ತರಣೆಗಳನ್ನು ಮರಳಿ ಆನ್ ಮಾಡಿದ್ದೀರಿ}other{ನೀವು {NUM_EXTENSIONS} ಹಾನಿಕಾರಕ ವಿಸ್ತರಣೆಗಳನ್ನು ಮರಳಿ ಆನ್ ಮಾಡಿದ್ದೀರಿ}}</translation>
 <translation id="5979421442488174909"><ph name="LANGUAGE" /> ಗೆ &amp;ಭಾಷಾಂತರಿಸಿ</translation>
 <translation id="5979469435153841984">ಪುಟಗಳನ್ನು ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲು, ವಿಳಾಸಪಟ್ಟಿಯಲ್ಲಿರುವ ನಕ್ಷತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
+<translation id="5983642582671533177">ಡಿಸೆಂಬರ್ ನಂತರ ಈ ಪ್ರಿಂಟರ್ ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="5984222099446776634">ಇತ್ತೀಚೆಗೆ ಭೇಟಿ ನೀಡಿದವು</translation>
 <translation id="598472838394900788">{0,plural, =1{ಅದೃಶ್ಯ}one{ಅದೃಶ್ಯ (#)}other{ಅದೃಶ್ಯ (#)}}</translation>
 <translation id="5985458664595100876">ಅಮಾನ್ಯ URL ಫಾರ್ಮ್ಯಾಟ್. \\server\share ಮತ್ತು smb://server/share ಫಾರ್ಮ್ಯಾಟ್‍ಗಳಿಗೆ ಬೆಂಬಲವಿದೆ.</translation>
@@ -4158,6 +4192,7 @@
 <translation id="6150961653851236686">ಪುಟಗಳನ್ನು ಅನುವಾದಿಸುತ್ತಿರುವಾಗ ಈ ಭಾಷೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ</translation>
 <translation id="6151323131516309312"><ph name="SITE_NAME" /> ಹುಡುಕಲು <ph name="SEARCH_KEY" /> ಒತ್ತಿ</translation>
 <translation id="6151771661215463137">ನಿಮ್ಮ ಡೌನ್‌ಲೋಡ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.</translation>
+<translation id="6153808139779428578">ಡಿಸೆಂಬರ್ ನಂತರ ಈ ಪ್ರಿಂಟರ್ ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="BEGIN_LINK_LEARN_MORE" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="6154240335466762404">ಎಲ್ಲಾ ಪೋರ್ಟ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="615436196126345398">ಪ್ರೊಟೊಕಾಲ್</translation>
 <translation id="6154697846084421647">ಪ್ರಸ್ತುತ ಸೈನ್ ಇನ್ ಆಗಲಾಗಿದೆ</translation>
@@ -4242,6 +4277,7 @@
 <translation id="625369703868467034">ನೆಟ್‌ವರ್ಕ್ ಹೆಲ್ತ್</translation>
 <translation id="6254503684448816922">ಕೀಲಿ ಹೊಂದಾಣಿಕೆ</translation>
 <translation id="6257602895346497974">ಸಿಂಕ್‌ ಆನ್‌ ಮಾಡಿ...</translation>
+<translation id="625895209797312329">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಲಾದ ಫಾಂಟ್‌ಗಳನ್ನು ಬಳಸದಂತೆ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="6259104249628300056">ನಿಮ್ಮ ಸ್ಥಳೀಯ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿನ ಸಾಧನಗಳನ್ನು ಶೋಧಿಸಿ.</translation>
 <translation id="6262371516389954471">ನಿಮ್ಮ ಬ್ಯಾಕಪ್‌ಗಳನ್ನು Google ನಲ್ಲಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="6263082573641595914">Microsoft CA ಆವೃತ್ತಿ</translation>
@@ -4372,6 +4408,7 @@
 <translation id="642469772702851743">ಈ ಸಾಧನವು (SN: <ph name="SERIAL_NUMBER" />) ಅದರ ಮಾಲೀಕರಿಂದ ಲಾಕ್ ಮಾಡಲ್ಪಟ್ಟಿದೆ.</translation>
 <translation id="6425556984042222041">ಪಠ್ಯದಿಂದ ಧ್ವನಿ ದರ</translation>
 <translation id="6426200009596957090">ChromeVox ಸೆಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
+<translation id="642654727595919401"><ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು 1 ವಾರದ ಒಳಗಾಗಿ ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.<ph name="LINK_BEGIN" />ವಿವರಗಳನ್ನು ನೋಡಿ<ph name="LINK_END" /></translation>
 <translation id="6428982734197629783">ಚಿತ್ರವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="6429384232893414837">ಅಪ್‌ಡೇಟ್ ದೋಷ</translation>
 <translation id="6430814529589430811">Base64-ಎನ್‌ಕೋಡ್ ಮಾಡಿದ ASCII, ಏಕ ಪ್ರಮಾಣಪತ್ರ</translation>
@@ -4599,6 +4636,7 @@
 <translation id="672609503628871915">ಹೊಸದೇನಿದೆ ನೋಡಿ</translation>
 <translation id="67269783048918309">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಪ್ರಸ್ತುತ ಈ ಸಾಧನವು ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ, ಮತ್ತು ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು Google ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುತ್ತಿದೆ. ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಮಗುವನ್ನು ಗುರುತಿಸುವುದಕ್ಕೆ ಬಳಸುವುದಿಲ್ಲ, ಹಾಗೂ ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಆ್ಯಪ್ ಸ್ಥಿರತೆಗೆ, ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಒಟ್ಟುಗೂಡಿಸಿದ ಡೇಟಾವು, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು ಪಾಲುದಾರರಿಗೂ ಸಹ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, Android ಡೆವಲಪರ್‌ಗಳು. ಈ <ph name="BEGIN_LINK1" />ಸೆಟ್ಟಿಂಗ್<ph name="END_LINK1" />ಅನ್ನು ಮಾಲೀಕರೇ ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಮಗುವಿಗಾಗಿ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಆನ್‌ ಮಾಡಿದ್ದಲ್ಲಿ, ಈ ಡೇಟಾವು ಅವರ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲ್ಪಡಬಹುದು. <ph name="BEGIN_LINK2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK2" /></translation>
 <translation id="6727969043791803658">ಸಂಪರ್ಕಗೊಂಡಿದೆ, <ph name="BATTERY_PERCENTAGE" />% ರಷ್ಟು ಬ್ಯಾಟರಿ ಲಭ್ಯವಿದೆ</translation>
+<translation id="6731877319426971768">ಧ್ವನಿ ಗುರುತಿಸುವಿಕೆ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="6732801395666424405">ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಲೋಡ್‌ ಮಾಡಲಾಗಲಿಲ್ಲ</translation>
 <translation id="6732900235521116609">ಶಾರ್ಟ್‌ಕಟ್‌ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="6734468588183300211">ಅದೃಶ್ಯ ಮೋಡ್‌ನಲ್ಲಿ ಇರುವಾಗ, ವಿವಿಧ ಸೈಟ್‌ಗಳಾದ್ಯಂತ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯನ್ನು ನೋಡಲು, ಉದಾಹರಣೆಗೆ, ಜಾಹೀರಾತುಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸುವುದಕ್ಕಾಗಿ ನಿಮ್ಮ ಕುಕೀಗಳನ್ನು ಬಳಸಲು ಸೈಟ್‌ಗಳಿಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಕೆಲವು ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿನ ವೈಶಿಷ್ಟ್ಯಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಬಹುದು.</translation>
@@ -4990,6 +5028,7 @@
 <translation id="7207457272187520234">ಬಳಕೆ ಮತ್ತು ಡಯಾಗ್ನಾಸ್ಟಿಕ್ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಿ. ಪ್ರಸ್ತುತ, ಈ ಸಾಧನವು ಡಯಾಗ್ನಾಸ್ಟಿಕ್, ಸಾಧನ ಹಾಗೂ ಆ್ಯಪ್ ಬಳಕೆಯ ಡೇಟಾವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ Google ಗೆ ಕಳುಹಿಸುತ್ತಿದೆ. ಇದು ಸಿಸ್ಟಂ ಮತ್ತು ಆ್ಯಪ್‌ನ ಸ್ಥಿರತೆ ಹಾಗೂ ಇತರ ಸುಧಾರಣೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಒಟ್ಟುಗೂಡಿಸಲಾದ ಕೆಲವೊಂದು ಡೇಟಾ, Google ಆ್ಯಪ್‌ಗಳಿಗೆ ಮತ್ತು Android ಡೆವಲಪರ್‌ಗಳಂತಹ ಪಾಲುದಾರರಿಗೂ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಮಾಲೀಕರು ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ. ನಿಮ್ಮ ಹೆಚ್ಚುವರಿ ವೆಬ್‌ ಮತ್ತು ಆ್ಯಪ್ ಚಟುವಟಿಕೆ ಸೆಟ್ಟಿಂಗ್ ಆನ್‌ ಆಗಿದ್ದರೆ, ಈ ಡೇಟಾವನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಬಹುದು.</translation>
 <translation id="7207631048330366454">ಆ್ಯಪ್‌ಗಳನ್ನು ಹುಡುಕಿ</translation>
 <translation id="7210499381659830293">ವಿಸ್ತರಣೆ ಪ್ರಿಂಟರ್‌ಗಳು</translation>
+<translation id="7211890396916697230">eSIM ಅನ್ನು ಸೆಟಪ್‌ ಮಾಡಿ</translation>
 <translation id="7212097698621322584">ಪಿನ್ ಬದಲಾಯಿಸಲು, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಪಿನ್ ಅನ್ನು ನಮೂದಿಸಿ. ನಿಮ್ಮ ಪಿನ್ ನಿಮಗೆ ಗೊತ್ತಿಲ್ಲದಿದ್ದರೆ, ನೀವು ಭದ್ರತೆ ಕೀ ಅನ್ನು ಮರುಹೊಂದಿಸಿ, ಆಮೇಲೆ ಹೊಸ ಪಿನ್ ಅನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="7216409898977639127">ಸೆಲ್ಯುಲಾರ್ ಒದಗಿಸುವವರು</translation>
 <translation id="7216595297012131718">ನಿಮ್ಮ ಆದ್ಯತೆಯನ್ನು ಆಧರಿಸಿ ಭಾಷೆಗಳನ್ನು ಕ್ರಮಗೊಳಿಸಿ</translation>
@@ -5181,6 +5220,7 @@
 <translation id="7456847797759667638">ಸ್ಥಳವನ್ನು ತೆರೆ...</translation>
 <translation id="7458168200501453431">Google ಹುಡುಕಾಟದಲ್ಲಿ ಬಳಸುವ ಕಾಗುಣಿತ ಪರೀಕ್ಷಕವನ್ನೇ ಬಳಸಿ. ನೀವು ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಟೈಪ್ ಮಾಡುವ ಪಠ್ಯವನ್ನು Google ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="7460045493116006516">ನೀವು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರುವ ಪ್ರಸ್ತುತ ಥೀಮ್</translation>
+<translation id="7461729991508684543">{NUM_DAYS,plural, =1{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಇಂದೇ ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.<ph name="LINK_BEGIN" />ವಿವರಗಳನ್ನು ನೋಡಿ<ph name="LINK_END" />}one{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು {NUM_DAYS} ಗಳ ಒಳಗಾಗಿ ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.<ph name="LINK_BEGIN" />ವಿವರಗಳನ್ನು ನೋಡಿ<ph name="LINK_END" />}other{<ph name="DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು {NUM_DAYS} ಗಳ ಒಳಗಾಗಿ ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.<ph name="LINK_BEGIN" />ವಿವರಗಳನ್ನು ನೋಡಿ<ph name="LINK_END" />}}</translation>
 <translation id="7461924472993315131">ಪಿನ್</translation>
 <translation id="746216226901520237">ಮುಂದಿನ ಬಾರಿ, ನಿಮ್ಮ ಫೋನ್ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುತ್ತದೆ. ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ Smart Lock ಅನ್ನು ಆಫ್ ಮಾಡಬಹುದು.</translation>
 <translation id="7463006580194749499">ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸು</translation>
@@ -5191,6 +5231,7 @@
 <translation id="747114903913869239">ದೋಷ: ವಿಸ್ತರಣೆಯನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="747459581954555080">ಎಲ್ಲವನ್ನು ಮರುಸಂಗ್ರಹಿಸಿ</translation>
+<translation id="747507174130726364">{NUM_DAYS,plural, =1{ತಕ್ಷಣ ಹಿಂತಿರುಗಿಸುವ ಅಗತ್ಯವಿದೆ}one{{NUM_DAYS} ದಿನಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ}other{{NUM_DAYS} ದಿನಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ}}</translation>
 <translation id="7475671414023905704">Netscape ಕಳೆದು ಹೋದ ಪಾಸ್‌ವರ್ಡ್ URL</translation>
 <translation id="7476454130948140105">ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲು ಬ್ಯಾಟರಿ <ph name="BATTERY_PERCENT" /> ತುಂಬಾ ಕಡಿಮೆ ಇದೆ</translation>
 <translation id="7477793887173910789">ನಿಮ್ಮ ಸಂಗೀತ, ವೀಡಿಯೊಗಳು ಹಾಗೂ ಇತ್ಯಾದಿಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ</translation>
@@ -5219,6 +5260,7 @@
 <translation id="7503985202154027481">ನೀವು ಈ ಸೈಟ್‌ಗೆ ಭೇಟಿ ನೀಡಿರುವ ಕುರಿತಾದ ದಾಖಲೆಗಳನ್ನು ನಿಮ್ಮ ಭದ್ರತೆ ಕೀಯಲ್ಲಿ ಉಳಿಸಲಾಗಿರುತ್ತದೆ.</translation>
 <translation id="750509436279396091">ಡೌನ್‌ಲೋಡ್‌ಗಳ ಫೋಲ್ಡರ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="7506093026325926984">ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ</translation>
+<translation id="7506130076368211615">ಹೊಸ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="7506541170099744506">ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆಗಾಗಿ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ದಾಖಲಿಸಲಾಗಿದೆ.</translation>
 <translation id="7507207699631365376">ಈ ಪೂರೈಕೆದಾರರ <ph name="BEGIN_LINK" />ಗೌಪ್ಯತೆ ನೀತಿಯನ್ನು<ph name="END_LINK" /> ನೋಡಿ</translation>
 <translation id="7507930499305566459">ಸ್ಥಿತಿ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation>
@@ -5320,6 +5362,7 @@
 <translation id="7643932971554933646">ಫೈಲ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸೈಟ್‌ಗೆ ಅನುಮತಿ ನೀಡಬೇಕೇ?</translation>
 <translation id="7644543211198159466">ಬಣ್ಣ ಮತ್ತು ಥೀಮ್</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (ಮಾಲೀಕರು)</translation>
+<translation id="7645300866575922143">ಸೆಲ್ಯುಲಾರ್ ಸೇರಿಸಿ</translation>
 <translation id="7645681574855902035">Linux ಬ್ಯಾಕಪ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="7646772052135772216">ಪಾಸ್‌ವರ್ಡ್ ಸಿಂಕ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ</translation>
 <translation id="7647403192093989392">ಯಾವುದೇ ಇತ್ತೀಚಿನ ಚಟುವಟಿಕೆಗಳಿಲ್ಲ</translation>
@@ -5340,6 +5383,7 @@
 <translation id="7664620655576155379">ಬೆಂಬಲಿಸದಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನ: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="7665082356120621510">ಗಾತ್ರವನ್ನು ಕಾಯ್ದಿರಿಸಿ</translation>
 <translation id="7665369617277396874">ಖಾತೆಯನ್ನು ಸೇರಿಸು</translation>
+<translation id="7668002322287525834">{NUM_WEEKS,plural, =1{{NUM_WEEKS} ವಾರದ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ}one{{NUM_WEEKS} ವಾರಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ}other{{NUM_WEEKS} ವಾರಗಳ ಒಳಗಾಗಿ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ}}</translation>
 <translation id="7669825497510425694">{NUM_ATTEMPTS,plural, =1{ಪಿನ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ಇನ್ನೂ ಒಂದು ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}one{ಪಿನ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ಇನ್ನೂ # ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}other{ಪಿನ್ ತಪ್ಪಾಗಿದೆ. ನೀವು ಇನ್ನೂ # ಬಾರಿ ಪ್ರಯತ್ನಿಸಬಹುದು.}}</translation>
 <translation id="7671130400130574146">ಸಿಸ್ಟಂ ಶೀರ್ಷಿಕೆ ಪಟ್ಟಿ ಮತ್ತು ಅಂಚುಗಳನ್ನು ಬಳಸಿ</translation>
 <translation id="767127784612208024">ಮರುಹೊಂದಿಸುವಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಲು ಸ್ಪರ್ಶಿಸಿ</translation>
@@ -5521,6 +5565,7 @@
 <translation id="7855678561139483478">ಟ್ಯಾಬ್ ಅನ್ನು ಹೊಸ ವಿಂಡೋಗೆ ಸರಿಸಿ</translation>
 <translation id="7857117644404132472">ವಿನಾಯಿತಿ ಸೇರಿಸು</translation>
 <translation id="7857949311770343000">ನೀವು ನಿರೀಕ್ಷಿಸುತ್ತಿರುವುದು ಈ ಹೊಸ ಟ್ಯಾಬ್ ಪುಟವೇ?</translation>
+<translation id="785948723952233770">ಡಿಸೆಂಬರ್ ನಂತರ ಈ ಆಯ್ಕೆಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="786073089922909430">ಸೇವೆ: <ph name="ARC_PROCESS_NAME" /></translation>
 <translation id="7861215335140947162">&amp;ಡೌನ್‌ಲೋಡ್‌ಗಳು</translation>
 <translation id="7864539943188674973">ಬ್ಲೂಟೂತ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
@@ -5545,6 +5590,7 @@
 <translation id="7893008570150657497">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಿಂದ ಫೋಟೋಗಳು, ಸಂಗೀತ ಮತ್ತು ಇತರೆ ಮಾಧ್ಯಮ ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="7893153962594818789">ಈ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ ಬ್ಲೂಟೂತ್‌ ಆಫ್‌ ಆಗಿದೆ. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ ಮತ್ತು ಬ್ಲೂಟೂತ್‌ ಆನ್‌ ಮಾಡಿ.</translation>
 <translation id="7893393459573308604"><ph name="ENGINE_NAME" /> (ಡಿಫಾಲ್ಟ್)</translation>
+<translation id="7897865097438730075">ಡಿಸೆಂಬರ್ 31 ರ ನಂತರ Google Cloud Print ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="7897900149154324287">ಇನ್ನು ಮುಂದೆ, ನಿಮ್ಮ ತೆಗೆದುಹಾಕುವಂತಹ ಸಾಧನಗಳನ್ನು ಹೊರತೆಗೆಯುವ ಮೊದಲು ಅದನ್ನು ಇಜೆಕ್ಟ್ ಮಾಡಲು ಖಚಿತವಾಗಿರಿ. ಇಲ್ಲದಿದ್ದರೆ, ನೀವು ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು.</translation>
 <translation id="7898627924844766532">ಪರಿಕರಪಟ್ಟಿಯಲ್ಲಿ ಇರಿಸು</translation>
 <translation id="7898725031477653577">ಯಾವಾಗಲೂ ಅನುವಾದಿಸು</translation>
@@ -5680,6 +5726,7 @@
 <translation id="8054563304616131773">ದಯವಿಟ್ಟು ಮಾನ್ಯವಾದ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="8054921503121346576">USB ಕೀಬೋರ್ಡ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="8058655154417507695">ಮುಕ್ತಾಯದ ವರ್ಷ</translation>
+<translation id="8058811362315390556">ಡಿಸೆಂಬರ್ 31 ರ ನಂತರ Google Cloud Print ಅನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="8059417245945632445">&amp;ಸಾಧನಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="8059456211585183827">ಉಳಿಸಲು ಯಾವುದೇ ಪ್ರಿಂಟರ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="8061091456562007989">ಹಳೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬದಲಾಯಿಸಿ</translation>
@@ -5753,6 +5800,7 @@
 <translation id="8141584439523427891">ಇದೀಗ ಪರ್ಯಾಯ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ತೆರೆಯಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8141725884565838206">ನಿನ್ನ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="8143442547342702591">ಅಮಾನ್ಯವಾದ ಅಪ್ಲಿಕೇಶನ್</translation>
+<translation id="8143951647992294073"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="8146177459103116374">ಈ ಸಾಧನದಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ನೋಂದಾಯಿಸಿದ್ದರೆ, ನೀವು <ph name="LINK2_START" />ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬಳಕೆದಾರನಂತೆ ಸೈನ್ ಇನ್<ph name="LINK2_END" /> ಮಾಡಬಹುದು.</translation>
 <translation id="8146793085009540321">ಸೈನ್-ಇನ್ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="8148760431881541277">ಸೈನ್ ಇನ್ ಅನ್ನು ಮಿತಿಗೊಳಿಸಿ</translation>
@@ -6141,6 +6189,7 @@
 <translation id="8648544143274677280"><ph name="SITE_NAME" />, ಇವುಗಳನ್ನು ಮಾಡಲು ಬಯಸುತ್ತಿದೆ: <ph name="FIRST_PERMISSION" />, <ph name="SECOND_PERMISSION" /> ಮತ್ತು ಇತ್ಯಾದಿ</translation>
 <translation id="8650543407998814195">ನಿಮ್ಮ ಹಳೆಯ ಪ್ರೊಫೈಲ್‌ಗೆ ಪ್ರವೇಶಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗದಿದ್ದರೂ, ಅದನ್ನು ನೀವು ತೆಗೆದುಹಾಕಬಹುದು.</translation>
 <translation id="8651585100578802546">ಈ ಪುಟವನ್ನು ಮರುಲೋಡ್ ಮಾಡಲು ಒತ್ತಾಯಿಸಿ</translation>
+<translation id="8651940856056821914">Chrome, ಲೈವ್ ಕ್ಯಾಪ್ಶನ್ ಬಳಸಿಕೊಂಡು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಶೀರ್ಷಿಕೆಗಳನ್ನು ರಚಿಸುತ್ತದೆ (ಪ್ರಸ್ತುತ ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿದೆ)</translation>
 <translation id="8652400352452647993">ಪ್ಯಾಕ್ ವಿಸ್ತರಣೆ ದೋಷ</translation>
 <translation id="8654151524613148204">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ಗೆ ನಿಭಾಯಿಸಲಾಗದಷ್ಟು ದೊಡ್ಡದಾಗಿದೆ ನಿಮ್ಮ ಫೈಲ್‌. ಕ್ಷಮಿಸಿ.</translation>
 <translation id="8655295600908251630">ಚಾನಲ್</translation>
@@ -6261,6 +6310,7 @@
 <translation id="8783834180813871000">ಬ್ಲೂಟೂತ್ ಜೋಡಣೆ ಕೋಡ್‌ ಟೈಪ್‌ ಮಾಡಿ ನಂತರ Return ಅಥವಾ Enter ಒತ್ತಿ.</translation>
 <translation id="8784626084144195648">ಶೇಖರಿಸಿದ ಸರಾಸರಿ</translation>
 <translation id="8785622406424941542">ಸ್ಟೈಲಸ್</translation>
+<translation id="8786697630358316925">ಡಿಸೆಂಬರ್ ನಂತರ ಈ ಆಯ್ಕೆಯನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="BEGIN_LINK_LEARN_MORE" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="8787254343425541995">ಹಂಚಿತ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ಪ್ರಾಕ್ಸಿಗಳನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="8791534160414513928">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್‍ ಟ್ರಾಫಿಕ್‍ನೊಂದಿಗೆ "ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಡ" ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸು</translation>
 <translation id="8794025342371547160">ನಿರ್ಬಂಧಿಸಲಾಗಿರುವ ಐಪಿ</translation>
@@ -6604,6 +6654,7 @@
 <translation id="9209563766569767417">Linux ಕಂಟೇನರ್ ಸೆಟಪ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="9209689095351280025">ವೆಬ್‌ನಾದ್ಯಂತ ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ಕುಕೀಗಳನ್ನು ವೆಬ್‌ಸೈಟ್‌ಗಳು ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="9211177926627870898">ಅಪ್‌ಡೇಟ್ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="9211904674129619383">ಡಿಸೆಂಬರ್ 31 ರ ನಂತರ ಕ್ಲೌಡ್ ಮುದ್ರಣವನ್ನು ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="BEGIN_LINK_LEARN_MORE" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="9214520840402538427">ಓಹ್! ಇನ್‌ಸ್ಟಾಲೇಶನ್-ಟೈಮ್-ಆ್ಯಟ್ರಿಬ್ಯೂಷನ್ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="9214695392875603905">Cupcake</translation>
 <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ಸೇರಿಸಲಾಗಿದೆ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 1e58cd4..e29e2ca8 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">직접 추가</translation>
 <translation id="1361655923249334273">사용되지 않음</translation>
 <translation id="1361872463926621533">시작 시 소리 재생</translation>
+<translation id="1362865166188278099">기술 문제입니다. 프린터를 확인하세요.</translation>
 <translation id="1363585519747660921">USB 프린터를 구성해야 함</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" />에서 <ph name="BEGIN_LINK" />관리하는 브라우저<ph name="END_LINK" />입니다.</translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" />에서 Linux 도구, 편집기, IDE를 실행하세요. &lt;a target="_blank" href="<ph name="URL" />"&gt;자세히 알아보기&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome에서 이미지에 액세스할 수 없습니다.</translation>
 <translation id="2637400434494156704">잘못된 PIN입니다. 앞으로 1번 더 시도할 수 있습니다.</translation>
 <translation id="2638662041295312666">로그인 이미지</translation>
+<translation id="2640549051766135490">앨범 <ph name="TITLE" /> <ph name="DESC" /> 선택됨</translation>
 <translation id="264083724974021997">휴대전화에 연결 - 대화상자</translation>
 <translation id="2641065435954454414">다운로드 준비 중</translation>
 <translation id="2642111877055905627">축구공</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">구분자</translation>
 <translation id="338691029516748599">네트워크 <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, 신호 강도 <ph name="SIGNAL_STRENGTH" />%, 관리자가 관리함, 연결</translation>
 <translation id="3387614642886316601">향상된 맞춤법 검사 기능 사용</translation>
+<translation id="3388094447051599208">배지대가 거의 가득 찼습니다.</translation>
 <translation id="3388788256054548012">암호화된 파일입니다. 소유자에게 복호화를 요청하세요.</translation>
 <translation id="3390013585654699824">앱 세부정보</translation>
 <translation id="3390741581549395454">Linux 앱 및 파일 백업이 완료되었습니다. 업그레이드가 곧 시작됩니다.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI 및 USB 타입-C 포트를 동시에 비디오용으로 사용할 수 없습니다. 다른 비디오 포트를 사용하세요.</translation>
 <translation id="3473241910002674503">태블릿 모드에서 버튼을 사용하여 홈이나 뒤로 이동하고 앱 간에 전환합니다.</translation>
 <translation id="3473479545200714844">화면 돋보기</translation>
+<translation id="347394413229268704">나중에 읽기</translation>
 <translation id="3475843873335999118">죄송합니다. 지문이 인식되지 않았습니다. 비밀번호를 입력하세요.</translation>
 <translation id="3476303763173086583">사용 및 진단 데이터를 보냅니다. 진단, 기기, 앱 사용 데이터를 Google에 자동으로 보내 자녀의 Android 사용 환경 개선에 참여합니다. 이 데이터는 자녀를 식별하는 용도로 사용되지 않으며, 시스템 및 앱 안정성 등을 개선하는 데 활용됩니다. 일부 수집 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움을 줍니다. 이 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />은 소유자가 지정합니다. 소유자가 이 기기의 진단 및 사용 데이터를 Google에 전송할지 선택할 수 있습니다. 자녀의 추가 웹 및 앱 활동이 사용 설정되어 있다면 이 데이터가 자녀의 Google 계정에 저장될 수 있습니다. <ph name="BEGIN_LINK2" />자세히 알아보기<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">시스템에서 기기 정책을 가져오지 못했습니다.</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">외부 저장장치 식별 및 제거</translation>
 <translation id="4109135793348361820">창을 <ph name="USER_NAME" />(<ph name="USER_EMAIL" />)님에게로 이동</translation>
 <translation id="4110490973560452005">다운로드 완료: <ph name="FILE_NAME" />. 다운로드바 영역으로 이동하려면 Shift+F6를 누르세요.</translation>
+<translation id="4110686435123617899">앨범 <ph name="TITLE" /> <ph name="DESC" /> 선택</translation>
 <translation id="4110895898888439383">고대비 모드로 웹 탐색</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" />(오프라인)</translation>
 <translation id="4115002065223188701">네트워크 범위를 벗어남</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">페이지를 다른 이름으로 저장...</translation>
 <translation id="4785719467058219317">이 웹사이트에 등록되지 않은 보안 키를 사용하고 있습니다.</translation>
 <translation id="4788092183367008521">네트워크 연결을 확인한 다음 다시 시도하세요.</translation>
+<translation id="4791000909649665275">사진 <ph name="NUMBER" />장</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">문제 신고(&amp;R)...</translation>
 <translation id="4794810983896241342">업데이트는 <ph name="BEGIN_LINK" />관리자<ph name="END_LINK" />가 관리합니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 9ae7f7b..26a33dc 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Кол менен кошуу</translation>
 <translation id="1361655923249334273">Колдонулбаган</translation>
 <translation id="1361872463926621533">Иштетилгенде добуш ойнотулсун</translation>
+<translation id="1362865166188278099">Механикалык маселе келип чыкты. Принтерди текшериңиз</translation>
 <translation id="1363585519747660921">USB принтери конфигурацияланышы керек</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Серепчиңиз<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> тарабынан башкарылууда</translation>
 <translation id="1366177842110999534">Linux куралдарын, түзөткүчтөрдү жана бирдиктүү колдонмо тутумдарын иштеп чыгуу куралдарын <ph name="DEVICE_TYPE" /> түзмөгүңүздө иштетиңиз. &lt;a target="_blank" href="<ph name="URL" />"&gt;Кеңири маалымат&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome сүрөттү колдоно албай жатат.</translation>
 <translation id="2637400434494156704">PIN код туура эмес. Дагы бир жолу аракет кыла аласыз.</translation>
 <translation id="2638662041295312666">Аккаунтка кирүү сүрөтү</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> альбому тандалды</translation>
 <translation id="264083724974021997">Телефонуңузга туташтырыңыз – Диалог</translation>
 <translation id="2641065435954454414">Сүрөттү жүктөп алуу даярдалууда</translation>
 <translation id="2642111877055905627">Футбол тобу</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Ажыраткыч</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" /> ичинен <ph name="NETWORK_INDEX" />-тармак, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Сигналдын күчү <ph name="SIGNAL_STRENGTH" />%, Администраторуңуз башкарат, Туташуу</translation>
 <translation id="3387614642886316601">Жакшыртылган орфографиялык текшерүү функциясын колдонуу</translation>
+<translation id="3388094447051599208">Принтердин түпкүчү толгону калды</translation>
 <translation id="3388788256054548012">Бул файл шифрленген. Анын ээсинен файлдын шифрин чечмелөөнү сураныңыз.</translation>
 <translation id="3390013585654699824">Колдонмонун чоо-жайы</translation>
 <translation id="3390741581549395454">Linux колдонмолору менен файлдарынын камдык көчүрмөлөрү ийгиликтүү сакталды. Жаңыртуу бир аздан кийин башталат.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI жана C тибиндеги USB оюкчаларын видео үчүн бир учурда колдонууга болбойт. Башка видео оюкчаны колдонуңуз.</translation>
 <translation id="3473241910002674503">Планшет режиминде баскычтарды басып, Башкы бетке, артка өтүп жана колдонмолорду которуштуруңуз.</translation>
 <translation id="3473479545200714844">Экран чоңойткуч</translation>
+<translation id="347394413229268704">Кийинчерээк окуу</translation>
 <translation id="3475843873335999118">Кечиресиз, манжа изиңиз дагы эле тааныла элек. Сырсөзүңүздү киргизиңиз.</translation>
 <translation id="3476303763173086583">Колдонуу жана мүчүлүштүктөрдү аныктоо дайындарын жөнөтүү. Балаңыздын Android'ди колдонуу тажрыйбасын жакшыртууга көмөктөшүп, мүчүлүштүктөрдү издөө жана түзмөк менен колдонмолорду пайдалануу дайындарын автоматтык түрдө Google'га жөнөтүүгө уруксат бериңиз. Бул маалымат балаңыздын өздүгүн аныктоо үчүн колдонулбайт жана тутум менен колдонмонун кыйла туруктуу иштешин камсыз кылууга жана башка нерселерди жакшыртууга көмөктөшөт. Айрым дайын-даректердин Google'дун өнөктөштөрүнө, мисалы, Android'ди иштеп чыгуучуларга да кереги тийиши мүмкүн. Бул <ph name="BEGIN_LINK1" />жөндөөнү<ph name="END_LINK1" /> түзмөктүн ээси иштетет. Түзмөктүн ээси бул түзмөктөн мүчүлүштүктөрдү аныктоо жана колдонуу дайындарын Google'га жөнөтүү мүмкүнчүлүгүн иштетиши мүмкүн. Эгер кошумча Колдонмолор жана Интернеттеги аракеттер таржымалы балаңыз үчүн күйгүзүлгөн болсо, бул дайындар анын Google аккаунтуна сакталышы мүмкүн. <ph name="BEGIN_LINK2" />Кеңири маалымат<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Ой!  Тутум бул түзмөк үчүн саясатты ала албай калды.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Сактагыч түзмөктөрү аныкталып, чыгарылсын</translation>
 <translation id="4109135793348361820">Терезени буга <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) жылдыруу</translation>
 <translation id="4110490973560452005">Жүктөп алуу аяктады: <ph name="FILE_NAME" />. Жүктөлүп алынган файлдар тилкесине өтүү үчүн Shift+F6 баскычтарын басыңыз.</translation>
+<translation id="4110686435123617899">Альбом тандаңыз <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Интернетти жогорку контраст режиминде серептеңиз</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (оффлайн)</translation>
 <translation id="4115002065223188701">Тармак көрүнбөй калды</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Бетти төмөнкүдөй сактоо…</translation>
 <translation id="4785719467058219317">Бул вебсайтта катталбаган коопсуздук ачкычын колдонуп жатасыз</translation>
 <translation id="4788092183367008521">Тармактык туташууңузду текшерип, дагы бир жолу аракет кылыңыз.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> сүрөт</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">Маселе жөнүндө &amp;кабар берүү…</translation>
 <translation id="4794810983896241342">Жаңыртууларды <ph name="BEGIN_LINK" />администраторуңуз<ph name="END_LINK" /> башкарат</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index c4d4a6d..c2e4a808 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">ເພີ່ມໃສ່ດ້ວຍຕົນເອງ</translation>
 <translation id="1361655923249334273">ບໍ່​ໄດ້​ໃຊ້</translation>
 <translation id="1361872463926621533">ຫຼິ້ນສຽງໃນເວລາເປີດເຄື່ອງ</translation>
+<translation id="1362865166188278099">ບັນຫາກົນໄກ. ກວດສອບເຄື່ອງພິມ</translation>
 <translation id="1363585519747660921">ເຄື່ອງພິມ USB ຈໍາເປັນຕ້ອງກຳນົດຄ່າ</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />ໂປຣແກຣມທ່ອງເວັບຂອງທ່ານຖືກຈັດການ<ph name="END_LINK" /> ໂດຍ <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">ເປີດເຄື່ອງມື Linux, ຕົວແກ້ໄຂ ແລະ IDE ໃນ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. &lt;a target="_blank" href="<ph name="URL" />"&gt;ສຶກສາເພີ່ມເຕີມ&lt;/a&gt;</translation>
@@ -1371,6 +1372,7 @@
 <translation id="2636625531157955190">Chrome ບໍ່​ສາ​ມາດ​ເຂົ້າ​ຫາຮູບໄດ້.</translation>
 <translation id="2637400434494156704">PIN ບໍ່ຖືກຕ້ອງ. ທ່ານຍັງເຫຼືອຄວາມພະຍາຍາມອີກໜຶ່ງຄັ້ງ.</translation>
 <translation id="2638662041295312666">ຮູບການເຂົ້າສູ່ລະບົບ</translation>
+<translation id="2640549051766135490">ເລືອກອະລະບໍ້າ <ph name="TITLE" /> <ph name="DESC" /> ແລ້ວ</translation>
 <translation id="264083724974021997">ເຊື່ອມຕໍ່ກັບໂທລະສັບຂອງທ່ານ - ກ່ອງໂຕ້ຕອບ</translation>
 <translation id="2641065435954454414">ກຳລັງກະກຽມການດາວໂຫລດ</translation>
 <translation id="2642111877055905627">ໝາກບານເຕະ</translation>
@@ -1956,6 +1958,7 @@
 <translation id="338583716107319301">ຕົວແຍກ</translation>
 <translation id="338691029516748599">ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ສັນຍານຄວາມແຮງ <ph name="SIGNAL_STRENGTH" />%, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ, ເຊື່ອມຕໍ່</translation>
 <translation id="3387614642886316601">ໃຊ້ການກວດການສະກົດຄຳທີ່ປັບປຸງດີຂຶ້ນແລ້ວ</translation>
+<translation id="3388094447051599208">ຖາດກະດາດອອກໃກ້ເຕັມແລ້ວ</translation>
 <translation id="3388788256054548012">ໄຟລ໌ນີ້ມີການເຂົ້າລະຫັດໄວ້. ຂໍໃຫ້ເຈົ້າຂອງມັນຖອດລະຫັດ.</translation>
 <translation id="3390013585654699824">ລາຍລະອຽດແອັບ</translation>
 <translation id="3390741581549395454">ສຳຮອງຂໍ້ມູນແອັບ ແລະ ໄຟລ໌ Linux ສຳເລັດແລ້ວ. ການອັບເກຣດຈະເລີ່ມໃນໄວໆນີ້.</translation>
@@ -2033,6 +2036,7 @@
 <translation id="3471876058939596279">ບໍ່ສາມາດໃຊ້ຜອດ HDMI ແລະ USB ປະເພດ C ສຳລັບວິດີໂອໃນເວລາພ້ອມກັນໄດ້. ໃຊ້ຜອດວິດີໂອອື່ນ.</translation>
 <translation id="3473241910002674503">ໄປຫາໜ້າຫຼັກ, ກັບຄືນ ແລະ ສະຫຼັບແອັບດ້ວຍປຸ່ມໃນໂໝດແທັບເລັດ.</translation>
 <translation id="3473479545200714844">ເຄື່ອງຂະຫຍາຍໜ້າຈໍ</translation>
+<translation id="347394413229268704">ອ່ານໃນພາຍຫຼັງ</translation>
 <translation id="3475843873335999118">ຂໍອະໄພ, ຍັງຄົງບໍ່ຮັບຮູ້ລາຍນິ້ວມືຂອງທ່ານເທື່ອ. ກະລຸນາປ້ອນລະຫັດຜ່ານຂອງທ່ານແທນ.</translation>
 <translation id="3476303763173086583">ສົ່ງຂໍ້ມູນການນຳໃຊ້ ແລະ ການວິເຄາະ. ຊ່ວຍປັບປຸງປະສົບການ Android ຂອງລູກທ່ານໂດຍການສົ່ງຂໍ້ມູນການວິເຄາະ, ຂໍ້ມູນອຸປະກອນ ແລະ ການໃຊ້ແອັບໃຫ້ Google ໂດຍອັດຕະໂນມັດ. ຂໍ້ມູນນີ້ຈະບໍ່ຖືກໃຊ້ເພື່ອລະບຸຕົວລູກຂອງທ່ານ ແລະ ຈະຊ່ວຍປັບປຸງຄວາມສະຖຽນຂອງລະບົບ ແລະ ແອັບ ແລະ ການປັບປຸງອື່ນໆ. ບາງຂໍ້ມູນແບບຮວມກັນຍັງຈະຊ່ວຍແອັບ ແລະ ຮຸ້ນສ່ວນຂອງ Google ນຳອີກ ເຊັ່ນ: ຜູ້ພັດທະນາ Android. ເຈົ້າຂອງບັງຄັບໃຊ້ <ph name="BEGIN_LINK1" />ການຕັ້ງຄ່າ<ph name="END_LINK1" /> ນີ້. ເຈົ້າຂອງອາດຈະເລືອກສົ່ງຂໍ້ມູນການວິເຄາະ ແລະ ການໃຊ້ສຳລັບອຸປະກອນນີ້ໃຫ້ Google ກໍໄດ້. ຖ້າເປີດການຕັ້ງຄ່າການເຄື່ອນໄຫວເວັບ ແລະ ແອັບເພີ່ມເຕີມສໍາລັບລູກຂອງທ່ານ, ລະບົບອາດຈະບັນທຶກຂໍ້ມູນນີ້ໄວ້ໃນບັນຊີ Google ຂອງເຂົາເຈົ້າ. <ph name="BEGIN_LINK2" />ສຶກສາ​ເພີ່ມ​ເຕີມ<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ອຸ້ຍ!  ລະບົບດຶງຂໍ້ມູນນະໂຍບາຍສຳລັບອຸປະກອນຂອງທ່ານບໍ່ສຳເລັດ.</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">ລະບຸ ແລະ ປະຕິເສດອຸປະກອນເກັບຂໍ້ມູນ</translation>
 <translation id="4109135793348361820">ຍ້າຍໜ້າຕ່າງໄປຫາ <ph name="USER_NAME" /> ( <ph name="USER_EMAIL" /> )</translation>
 <translation id="4110490973560452005">ການດາວໂຫຼດສຳເລັດແລ້ວ: <ph name="FILE_NAME" />. ກົດ Shift+F6 ເພື່ອໝຸນວົນໄປຫາບໍລິເວນແຖບການດາວໂຫຼດ.</translation>
+<translation id="4110686435123617899">ເລືອກອະລະບ້ຳ <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ທ່ອງເວັບໃນໂໝດຄົມຊັດສູງ</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ອອບລາຍ)</translation>
 <translation id="4115002065223188701">ຢູ່ນອກເຂດສັນຍານເຄືອຂ່າຍ</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">ບັນທຶກໜ້າເປັນ...</translation>
 <translation id="4785719467058219317">ທ່ານກຳລັງໃຊ້ກະແຈຄວາມປອດໄພທີ່ບໍ່ໄດ້ລົງທະບຽນນຳເວັບໄຊນີ້</translation>
 <translation id="4788092183367008521">ກະລຸນາກວດເບິ່ງການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານ ແລ້ວລອງອີກຄັ້ງ.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ຮູບ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">ລາຍ​ງານ​ບັນ​ຫາ...</translation>
 <translation id="4794810983896241342">ການອັບເດດຈັດການໂດຍ <ph name="BEGIN_LINK" />ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 27f6ac31..ed22cb135 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Pridėti neautomatiškai</translation>
 <translation id="1361655923249334273">Nenaudota</translation>
 <translation id="1361872463926621533">Leisti garsą paleidžiant</translation>
+<translation id="1362865166188278099">Mechaninė problema. Patikrinkite spausdintuvą</translation>
 <translation id="1363585519747660921">Reikia konfigūruoti USB spausdintuvą</translation>
 <translation id="1365180424462182382">Jūsų <ph name="BEGIN_LINK" />naršyklę tvarko<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Paleiskite „Linux“ įrankius, redagavimo priemones ir IDE savo „<ph name="DEVICE_TYPE" />“. &lt;a target="_blank" href="<ph name="URL" />"&gt;Sužinokite daugiau&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">„Chrome“ negali pasiekti vaizdo.</translation>
 <translation id="2637400434494156704">Neteisingas PIN kodas. Jums liko vienas bandymas.</translation>
 <translation id="2638662041295312666">Prisijungimo vaizdas</translation>
+<translation id="2640549051766135490">Pasirinktas albumas „<ph name="TITLE" />“ (<ph name="DESC" />)</translation>
 <translation id="264083724974021997">Susiejimas su telefonu – dialogo langas</translation>
 <translation id="2641065435954454414">Ruošiamasi atsisiųsti</translation>
 <translation id="2642111877055905627">Futbolo kamuolys</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Skyriklis</translation>
 <translation id="338691029516748599"><ph name="NETWORK_INDEX" /> tinklas iš <ph name="NETWORK_COUNT" />, „<ph name="NETWORK_NAME" />“, <ph name="SECURITY_STATUS" />, signalo stiprumas <ph name="SIGNAL_STRENGTH" /> %, tvarko administratorius, prisijungti</translation>
 <translation id="3387614642886316601">Naudoti patobulintą rašybos tikrinimą</translation>
+<translation id="3388094447051599208">Išvesties dėklas beveik pilnas</translation>
 <translation id="3388788256054548012">Šis failas šifruotas. Paprašykite jo savininko iššifruoti.</translation>
 <translation id="3390013585654699824">Išsami programos informacija</translation>
 <translation id="3390741581549395454">Sėkmingai sukurta „Linux“ programų ir failų atsarginė kopija. Netrukus bus pradėta naujovinti.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI ir „Type-C“ USB prievadų tuo pačiu metu negalima naudoti kaip vaizdo įvesties. Naudokite kitą vaizdo prievadą.</translation>
 <translation id="3473241910002674503">Eikite į pagrindinį puslapį, naršykite atgal ir perjunkite programas naudodami mygtukus planšetinio kompiuterio režimu.</translation>
 <translation id="3473479545200714844">Ekrano didintuvas</translation>
+<translation id="347394413229268704">Skaityti vėliau</translation>
 <translation id="3475843873335999118">Deja, piršto antspaudas vis dar neatpažintas. Įveskite slaptažodį.</translation>
 <translation id="3476303763173086583">Siųskite naudojimo ir diagnostikos duomenis. Padėkite tobulinti vaiko „Android“ funkcijas automatiškai siųsdami „Google“ diagnostikos, įrenginio ir programų naudojimo duomenis. Tai nebus naudojama siekiant nustatyti jūsų vaiko tapatybę ir padės pagerinti sistemos bei programos stabilumą ir teikti kitus patobulinimus. Kai kurie sukaupti duomenys taip pat bus naudingi „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams. Šį <ph name="BEGIN_LINK1" />nustatymą<ph name="END_LINK1" /> taiko savininkas. Savininkas gali pasirinkti siųsti šio įrenginio diagnostikos ir naudojimo duomenis „Google“. Jei papildomas „Žiniatinklio ir programų veiklos“ nustatymas įjungtas vaiko įrenginyje, šie duomenys gali būti išsaugoti vaiko „Google“ paskyroje. <ph name="BEGIN_LINK2" />Sužinokite daugiau<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Oi! Sistemai nepavyko pateikti įrenginio politikos.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifikuoti ir pašalinti saugyklos įrenginius</translation>
 <translation id="4109135793348361820">Perkelti langą <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Atsisiuntimas baigtas: <ph name="FILE_NAME" />. Kad perjungtumėte į atsisiuntimų juostą, paspauskite „Shift“ + F6.</translation>
+<translation id="4110686435123617899">Pasirinkti albumą „<ph name="TITLE" />“ (<ph name="DESC" />)</translation>
 <translation id="4110895898888439383">Žiniatinklio naršymas didelio kontrasto režimu</translation>
 <translation id="4112194537011183136">„<ph name="DEVICE_NAME" />“ (neprisijungta)</translation>
 <translation id="4115002065223188701">Tinklas nepasiekiamas</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Išsaugoti puslapį kaip...</translation>
 <translation id="4785719467058219317">Naudojate saugos raktą, kuris nėra užregistruotas šioje svetainėje</translation>
 <translation id="4788092183367008521">Patikrinkite tinklo ryšį ir bandykite dar kartą.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> nuotrauk.</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Pranešti apie problemą...</translation>
 <translation id="4794810983896241342">Naujinius tvarko <ph name="BEGIN_LINK" />administratorius<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index e2ece7f..f1c6525a 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">നേരിട്ട് ചേർക്കുക</translation>
 <translation id="1361655923249334273">ഉപയോഗിക്കാത്ത</translation>
 <translation id="1361872463926621533">ആരംഭിക്കുമ്പോൾ ശബ്‌ദം പ്ലേ ചെയ്യുക</translation>
+<translation id="1362865166188278099">മെക്കാനിക്കൽ പ്രശ്‌നം. പ്രിന്റർ പരിശോധിക്കുക</translation>
 <translation id="1363585519747660921">USB പ്രിൻ്ററിന് കോൺഫിഗറേഷൻ ആവശ്യമുണ്ട്</translation>
 <translation id="1365180424462182382">നിങ്ങളുടെ <ph name="BEGIN_LINK" />ബ്രൗസർ മാനേജ് ചെയ്യുന്നത്<ph name="END_LINK" /><ph name="ENROLLMENT_DOMAIN" /> ആണ്</translation>
 <translation id="1366177842110999534">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> എന്ന ഉപകരണത്തിലെ Linux ടൂളുകൾ, എഡിറ്ററുകൾ, IDE-കൾ എന്നിവ റൺ ചെയ്യുക. &lt;a target="_blank" href="<ph name="URL" />"&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chrome-ന് ചിത്രം ആക്‌സസ് ചെയ്യാനാവില്ല.</translation>
 <translation id="2637400434494156704">പിൻ തെറ്റാണ്. ഒരു ശ്രമം ശേഷിക്കുന്നു.</translation>
 <translation id="2638662041295312666">സൈൻ ഇൻ ചിത്രം</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> ആൽബം തിരഞ്ഞെടുത്തു</translation>
 <translation id="264083724974021997">നിങ്ങളുടെ ഫോണിലേക്ക് കണക്റ്റ് ചെയ്യുക - ഡയലോഗ്</translation>
 <translation id="2641065435954454414">ഡൗൺലോഡ് ചെയ്യാൻ തയ്യാറെടുക്കുന്നു</translation>
 <translation id="2642111877055905627">സോക്കർ ബോൾ</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">സെപ്പറേറ്റര്‍</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />-ൽ <ph name="NETWORK_INDEX" /> നെറ്റ്‌വർക്ക്, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, സിഗ്‌നൽ ശക്തി <ph name="SIGNAL_STRENGTH" />%, നിങ്ങളുടെ അഡ്‌മിൻ മാനേജ് ചെയ്യുന്നത്, കണക്‌റ്റ് ചെയ്യുക</translation>
 <translation id="3387614642886316601">മെച്ചപ്പെട്ട അക്ഷരത്തെറ്റ് പരിശോധന ഉപയോഗിക്കുക</translation>
+<translation id="3388094447051599208">ഔട്ട്പുട്ട് ട്രേ ഏകദേശം നിറഞ്ഞിരിക്കുന്നു</translation>
 <translation id="3388788256054548012">ഈ ഫയൽ എൻക്രിപ്റ്റ് ചെയ്‌തതാണ്. ഡീക്രിപ്റ്റ് ചെയ്യാൻ അതിന്റെ ഉടമയോട് ആവശ്യപ്പെടുക.</translation>
 <translation id="3390013585654699824">ആപ്പ് വിശദാംശങ്ങൾ</translation>
 <translation id="3390741581549395454">Linux ആപ്പുകളും ഫയലുകളും വിജയകരമായി ബാക്കപ്പ് ചെയ്‌തു. അപ്‌ഗ്രേഡ് ചെയ്യൽ ഉടൻ ആരംഭിക്കും.</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">വീഡിയോയ്‌ക്കായി HDMI, USB ടൈപ്പ്-C പോർട്ടുകൾ ഒരേ സമയം ഉപയോഗിക്കാനാവില്ല. മറ്റൊരു വീഡിയോ പോർട്ട് ഉപയോഗിക്കുക.</translation>
 <translation id="3473241910002674503">ടാബ്‌ലെറ്റ് മോഡിൽ ബട്ടണുകൾ ഉപയോഗിച്ച് ഹോമിലേക്ക് നാവിഗേറ്റ് ചെയ്യുക, മടങ്ങുക, ആപ്പുകൾ മാറുക.</translation>
 <translation id="3473479545200714844">സ്‌ക്രീൻ മാഗ്‌നിഫയർ</translation>
+<translation id="347394413229268704">പിന്നീട് വായിക്കുക</translation>
 <translation id="3475843873335999118">ക്ഷമിക്കണം, ഇതുവരെ നിങ്ങളുടെ വിരലടയാളം തിരിച്ചറിയാനായില്ല. പാസ്‌വേഡ് നൽകുക.</translation>
 <translation id="3476303763173086583">ഉപയോഗവും പ്രശ്‌നനിർണ്ണയവുമായി ബന്ധപ്പെട്ട ഡാറ്റ അയയ്ക്കുക. പ്രശ്‌നനിർണ്ണയം, ഉപകരണം, ആപ്പ് ഉപയോഗം എന്നിവയുമായി ബന്ധപ്പെട്ട ഡാറ്റ സ്വയമേവ Google-ന് അയച്ച്, കുട്ടിയുടെ Android അനുഭവം മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. കുട്ടിയെ തിരിച്ചറിയാൻ ഇത് ഉപയോഗിക്കില്ല, സിസ്‌റ്റം, ആപ്പ് സ്ഥിരത, മറ്റ് മെച്ചപ്പെടുത്തൽ എന്നിവയ്ക്ക് സഹായിക്കുകയും ചെയ്യും. ചില സംഗ്രഹ ഡാറ്റ, Google ആപ്പുകളെയും Android ഡെവലപ്പർമാരെപ്പോലുള്ള പങ്കാളികളെയും സഹായിക്കുകയും ചെയ്യും. ഈ <ph name="BEGIN_LINK1" />ക്രമീകരണം<ph name="END_LINK1" /> നടപ്പിലാക്കുന്നത് ഉടമയാണ്. ഈ ഉപകരണത്തിലെ പ്രശ്‌നനിർണ്ണയവും ഉപയോഗവുമായി ബന്ധപ്പെട്ട ഡാറ്റ Google-ന് അയയ്ക്കാൻ ഉടമ തീരുമാനിച്ചേക്കാം. കുട്ടിയുടെ അധിക വെബ്, ആപ്പ് ആക്‌റ്റിവിറ്റി ക്രമീകരണം ഓണാക്കിയിട്ടുണ്ടെങ്കിൽ, ഈ ഡാറ്റ അവരുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കപ്പെട്ടേക്കാം. <ph name="BEGIN_LINK2" />കൂടുതലറിയുക<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ക്ഷമിക്കണം! സിസ്‌റ്റത്തിന് നിങ്ങളുടെ ഉപകരണത്തിനുള്ള നയം ലഭ്യമാക്കാനായില്ല.</translation>
@@ -2591,6 +2595,7 @@
 <translation id="4107048419833779140">സ്‌റ്റോറേജ് ​​ഉപകരണം തിരിച്ചറിഞ്ഞ് ഒഴിവാക്കുക</translation>
 <translation id="4109135793348361820">വിൻഡോ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) എന്നതിലേക്ക് നീക്കുക</translation>
 <translation id="4110490973560452005">ഡൗൺലോഡ് പൂർത്തിയായി: <ph name="FILE_NAME" />. ഡൗണ്‍ലോഡ് വിവരങ്ങളുടെ ബാര്‍ ഏരിയയിലേക്ക് പോകാൻ, Shift+F6 അമർത്തുക.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> ആൽബം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="4110895898888439383">ഉയർന്ന ദൃശ്യതീവ്രതാ മോഡിൽ വെബ് ബ്രൗസ് ചെയ്യുക</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ഓഫ്‌ലൈൻ)</translation>
 <translation id="4115002065223188701">നെറ്റ്‌വർക്ക് പരിധിക്ക് പുറത്താണ്</translation>
@@ -3077,6 +3082,7 @@
 <translation id="4780321648949301421">പേജ് ഇതുപോലെ സംരക്ഷിക്കുക...</translation>
 <translation id="4785719467058219317">ഈ വെബ്സൈറ്റിൽ രജിസ്‌റ്റർ ചെയ്‌തിട്ടില്ലാത്ത ഒരു സുരക്ഷാ കീ ആണ് നിങ്ങൾ ഉപയോഗിക്കുന്നത്</translation>
 <translation id="4788092183367008521">നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷൻ പരിശോധിച്ച്, വീണ്ടും ശ്രമിക്കുക.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ഫോട്ടോ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;ഒരു പ്രശ്നം റിപ്പോര്‍ട്ടുചെയ്യുക...</translation>
 <translation id="4794810983896241342">അപ്‌ഡേറ്റുകൾ മാനേജ് ചെയ്യുന്നത് <ph name="BEGIN_LINK" />നിങ്ങളുടെ അഡ്‌മിനാണ്<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index e965ed5..dfb075e 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Гараар нэмэх</translation>
 <translation id="1361655923249334273">Ашиглагдаагүй</translation>
 <translation id="1361872463926621533">Эхлүүлэхэд дуу тоглуулах</translation>
+<translation id="1362865166188278099">Механик асуудал. Хэвлэгчийг шалгана уу</translation>
 <translation id="1363585519747660921">USB хэвлэгчид тохируулга хийх шаардлагатай</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" />-с таны <ph name="BEGIN_LINK" />хөтчийг удирдаж байна<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" /> дээр Linux-н хэрэгслүүд, засварлагч болон IDE-г ажиллуулна уу. &lt;a target="_blank" href="<ph name="URL" />"&gt;Нэмэлт мэдээлэл авах&lt;/a&gt;</translation>
@@ -1368,6 +1369,7 @@
 <translation id="2636625531157955190">Chrome нь зураг руу нэвтэрч чадахгүй байна.</translation>
 <translation id="2637400434494156704">ПИН буруу байна. Танд нэг оролдлого үлдлээ.</translation>
 <translation id="2638662041295312666">Нэвтрэх зураг</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> цомгийг <ph name="DESC" /> сонгосон</translation>
 <translation id="264083724974021997">Утсандаа холбогдох - харилцах цонх</translation>
 <translation id="2641065435954454414">Татахад бэлтгэж байна</translation>
 <translation id="2642111877055905627">Хөлбөмбөгийн бөмбөг</translation>
@@ -1953,6 +1955,7 @@
 <translation id="338583716107319301">Тусгаарлагч</translation>
 <translation id="338691029516748599">Сүлжээ: <ph name="NETWORK_COUNT" />-н <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, дохионы хүч <ph name="SIGNAL_STRENGTH" />%, таны администратор удирддаг, холбогдох</translation>
 <translation id="3387614642886316601">Зөв бичгийн алдаа шалгах сайжруулсан онцлогийг ашиглах</translation>
+<translation id="3388094447051599208">Гарах цаасны тэвш бараг дүүрсэн байна</translation>
 <translation id="3388788256054548012">Энэ файлыг шифрлэсэн байна. Өмчлөгчөөс нь үүний кодыг тайлахыг хүснэ үү.</translation>
 <translation id="3390013585654699824">Аппын дэлгэрэнгүй</translation>
 <translation id="3390741581549395454">Linux аппууд болон файлуудыг амжилттай хуулбарлалаа. Тун удахгүй дэвшүүлэлтийг эхлүүлнэ.</translation>
@@ -2030,6 +2033,7 @@
 <translation id="3471876058939596279">HDMI болон USB C-Төрлийн портыг нэгэн зэрэг видеонд ашиглах боломжгүй. Өөр видео порт ашиглана уу.</translation>
 <translation id="3473241910002674503">Таблет горимд товчлуур ашиглан нүүр лүү шилжих, буцах, аппуудын хооронд сэлгэх.</translation>
 <translation id="3473479545200714844">Дэлгэц Томруулах</translation>
+<translation id="347394413229268704">Дараа унших</translation>
 <translation id="3475843873335999118">Уучлаарай, таны хурууны хээг танихгүй байна. Нууц үгээ оруулна уу.</translation>
 <translation id="3476303763173086583">Ашиглалт болон оношилгооны өгөгдлийг илгээнэ үү. Оношилгоо, төхөөрөмж болон аппын ашиглалтын өгөгдлийг Google-д автоматаар илгээж, хүүхдийнхээ Android-н хэрэглээг сайжруулахад тусална уу. Үүнийг таны хүүхдийг тодорхойлоход ашиглахгүй бөгөөд энэ нь систем, аппын тогтвортой байдал болон бусад зүйлийг сайжруулахад тусална. Зарим хуримтлуулсан өгөгдөл нь Google аппууд болон Android хөгжүүлэгч зэрэг түншүүдэд мөн адил тусална. Энэ <ph name="BEGIN_LINK1" />тохиргоог<ph name="END_LINK1" /> хэрэглэгчийн зүгээс хэрэгжүүлнэ. Энэ төхөөрөмжийн оношилгоо болон ашиглалтын өгөгдлийг Google-д илгээх эсэхийг хэрэглэгч өөрөө сонгож болно. Хэрэв таны хүүхдийн Вэб, Аппын нэмэлт үйл ажиллагааны тохиргоо асаалттай байвал энэ өгөгдлийг тэдний Google бүртгэлд хадгалж болзошгүй. <ph name="BEGIN_LINK2" />Нэмэлт мэдээлэл авах<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Уучлаарай!  Систем таны төхөөрөмжийн удирдамжийг татаж чадсангүй.</translation>
@@ -2589,6 +2593,7 @@
 <translation id="4107048419833779140">Хадгалах төхөөрөмжийг таних, салгах</translation>
 <translation id="4109135793348361820">Цонхыг  <ph name="USER_NAME" /> ( <ph name="USER_EMAIL" /> ) руу зөөх</translation>
 <translation id="4110490973560452005">Татаж дууссан: <ph name="FILE_NAME" />. Татаж авсан файл хадгалах эсвэл нээх хэсэгт гүйлгэхийн тулд Shift+F6-г дарна уу.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> цомгийг <ph name="DESC" /> сонгох</translation>
 <translation id="4110895898888439383">Вэбийг өндөр нягтшилтай горимд хөтлөх</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (офлайн)</translation>
 <translation id="4115002065223188701">Сүлжээний хүрээнээс гарсан</translation>
@@ -3075,6 +3080,7 @@
 <translation id="4780321648949301421">Хуудсыг... хэлбэрээр хадгалах</translation>
 <translation id="4785719467058219317">Та энэ вэб сайтад бүртгүүлээгүй аюулгүй байдлын түлхүүрийг ашиглаж байна</translation>
 <translation id="4788092183367008521">Сүлжээний холболтоо шалгаад дахин оролдоно уу.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> зураг</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Асуудлыг тайлагнах...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />Таны администратор<ph name="END_LINK" /> шинэчлэлтүүдийг удирддаг</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index c8758a0..8c4dfa8 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">व्यक्तिचलितपणे जोडा</translation>
 <translation id="1361655923249334273">न वापरलेले</translation>
 <translation id="1361872463926621533">स्टार्टअपवर ध्वनी प्ले करा</translation>
+<translation id="1362865166188278099">यांत्रिकी समस्या. प्रिंटर तपासा</translation>
 <translation id="1363585519747660921">USB प्रिंटर कॉन्फिगर करणे आवश्यक आहे</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" />ने तुमचा <ph name="BEGIN_LINK" />ब्राउझर व्यवस्थापित केला आहे<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">तुमच्या <ph name="DEVICE_TYPE" /> वर Linux टूल, संपादक आणि IDE रन करा. &lt;a target="_blank" href="<ph name="URL" />"&gt;अधिक जाणून घ्या&lt;/a&gt;</translation>
@@ -1372,6 +1373,7 @@
 <translation id="2636625531157955190">Chrome इमेजला ॲक्सेस करू शकत नाही.</translation>
 <translation id="2637400434494156704">चुकीचा पिन. तुमच्याकडे एक प्रयत्न शिल्लक आहे.</translation>
 <translation id="2638662041295312666">साइन इन इमेज</translation>
+<translation id="2640549051766135490">अल्‍बम <ph name="TITLE" /> <ph name="DESC" /> निवडला</translation>
 <translation id="264083724974021997">तुमच्या फोनशी कनेक्ट करा - डायलॉग</translation>
 <translation id="2641065435954454414">डाउनलोड तयार करत आहे</translation>
 <translation id="2642111877055905627">सॉकर बॉल</translation>
@@ -1957,6 +1959,7 @@
 <translation id="338583716107319301">विभाजक</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" /> पैकी <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%, तुमच्या अ‍ॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले, कनेक्ट करा</translation>
 <translation id="3387614642886316601">वर्धित केलेले स्पेल चेक वापरा</translation>
+<translation id="3388094447051599208">आउटपुट ट्रे जवळजवळ पूर्ण भरला आहे</translation>
 <translation id="3388788256054548012">ही फाइल एंक्रिप्ट केलेली आहे. तिच्या मालकाला ती डिक्रिप्ट करण्यास सांगा.</translation>
 <translation id="3390013585654699824">अ‍ॅपचे तपशील</translation>
 <translation id="3390741581549395454">Linux अ‍ॅप्स आणि फाइलचा यशस्वीरीत्या बॅकअप घेतला. अपग्रेड लवकरच सुरू होईल.</translation>
@@ -2034,6 +2037,7 @@
 <translation id="3471876058939596279">व्हिडिओसाठी HDMI आणि USB केबल एकाच वेळी वापरता येत नाहीत. वेगळी व्हिडिओ पोर्ट वापरा.</translation>
 <translation id="3473241910002674503">टॅबलेट मोडमध्ये बटणांनी होम, परत जा वर नेव्हिगेट करा आणि अ‍ॅप्स स्विच करा.</translation>
 <translation id="3473479545200714844">स्क्रीन भिंग</translation>
+<translation id="347394413229268704">नंतर वाचा</translation>
 <translation id="3475843873335999118">सॉरी, तुमचे फिंगरप्रिंट अद्याप ओळखले नाही. कृपया तुमचा पासवर्ड एंटर करा.</translation>
 <translation id="3476303763173086583">वापर आणि निदान डेटा पाठवा. Google ला आपोआप निदान आणि डिव्हाइस आणि अ‍ॅप वापर डेटा पाठवून तुमच्या लहान मुलाचा Android अनुभव सुधारण्यात मदत करा. हे तुमच्या लहान मुलाला ओळखण्यासाठी वापरले जाणार नाही आणि सिस्ट्म आणि अ‍ॅप स्थिरता आणि इतर सुधारणा करण्यात मदत करेल. काही एकत्रित केलेला डेटा Google अ‍ॅप्स आणि Android डेव्हलपर सारख्या भागीदारांना देखील मदत करेल. या <ph name="BEGIN_LINK1" />सेटिंगची<ph name="END_LINK1" /> मालकाद्वारे अंमलबजावणी केली जाते. मालक या डिव्हाइससाठी निदान आणि वापर डेटा Google ला पाठवणे निवडू शकतो. तुमच्या लहान मुलासाठी अतिरिक्त वेब आणि अ‍ॅप अ‍ॅक्टिव्हिटी सुरू केलेली असल्यास, ही माहिती त्याच्या Google खात्यामध्ये स्टोअर केली जाऊ शकते. <ph name="BEGIN_LINK2" />अधिक जाणून घ्या<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">अरेरे! तुमच्या डीव्हाइससाठी धोरण आणण्यात सिस्टम अयशस्वी झाली.</translation>
@@ -2592,6 +2596,7 @@
 <translation id="4107048419833779140">स्टोरेज डिव्हाइस ओळखा आणि बाहेर काढून टाका</translation>
 <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) वर विंडो हलवा</translation>
 <translation id="4110490973560452005">डाउनलोड पूर्ण: <ph name="FILE_NAME" />. डाउनलोड बार भागाकडे जाण्यासाठी Shift+F6 दाबा.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /><ph name="DESC" /> अल्बम निवडा</translation>
 <translation id="4110895898888439383">उच्च कॉन्ट्रास्ट मोडमध्ये वेब ब्राउझ करा</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ऑफलाइन)</translation>
 <translation id="4115002065223188701">नेटवर्क रेंजमध्‍ये नाही</translation>
@@ -3078,6 +3083,7 @@
 <translation id="4780321648949301421">पेज या फॉरमॅटमध्ये सेव्ह करा...</translation>
 <translation id="4785719467058219317">तुम्ही या वेबसाइटवर नोंदणीकृत नसलेली सिक्युरिटी की वापरत आहात</translation>
 <translation id="4788092183367008521">कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> फोटो</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;समस्या नोंदवणे...</translation>
 <translation id="4794810983896241342">अपडेट <ph name="BEGIN_LINK" />तुमचा अ‍ॅडमिनिस्ट्रेटर<ph name="END_LINK" /> व्यवस्‍थापित करतो</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index c27bd2c..a7fee331 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Tambahkan Secara Manual</translation>
 <translation id="1361655923249334273">Tidak digunakan</translation>
 <translation id="1361872463926621533">Mainkan bunyi semasa permulaan</translation>
+<translation id="1362865166188278099">Masalah mekanikal. Semak pencetak</translation>
 <translation id="1363585519747660921">Pencetak USB memerlukan konfigurasi</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Penyemak imbas anda diurus<ph name="END_LINK" /> oleh <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Jalankan alatan, editor dan IDE Linux pada <ph name="DEVICE_TYPE" /> anda. &lt;a target="_blank" href="<ph name="URL" />"&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome tidak dapat mengakses imej.</translation>
 <translation id="2637400434494156704">PIN salah. Anda mempunyai satu percubaan lagi.</translation>
 <translation id="2638662041295312666">Imej log masuk</translation>
+<translation id="2640549051766135490">Album <ph name="TITLE" /> <ph name="DESC" /> dipilih</translation>
 <translation id="264083724974021997">Sambungkan kepada telefon anda - Dialog</translation>
 <translation id="2641065435954454414">Menyediakan muat turun</translation>
 <translation id="2642111877055905627">Bola sepak</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Pemisah</translation>
 <translation id="338691029516748599">Rangkaian <ph name="NETWORK_INDEX" /> daripada <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />%, Diurus oleh Pentadbir anda, Sambung</translation>
 <translation id="3387614642886316601">Gunakan semak ejaan yang dipertingkatkan</translation>
+<translation id="3388094447051599208">Dulang output hampir penuh</translation>
 <translation id="3388788256054548012">Fail ini disulitkan. Minta pemilik menyahsulitkan fail ini.</translation>
 <translation id="3390013585654699824">Butiran apl</translation>
 <translation id="3390741581549395454">Apl dan fail Linux telah berjaya disandarkan. Peningkatan akan bermula tidak lama lagi.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Port HDMI dan USB Jenis-C tidak boleh digunakan untuk video pada masa yang sama. Gunakan port video yang berbeza.</translation>
 <translation id="3473241910002674503">Navigasi ke laman utama, ke halaman sebelumnya dan bertukar apl dengan menggunakan butang dalam mod tablet.</translation>
 <translation id="3473479545200714844">Penggadang skrin</translation>
+<translation id="347394413229268704">Baca kemudian</translation>
 <translation id="3475843873335999118">Maaf, cap jari anda masih tidak dikenali. Sila masukkan kata laluan anda.</translation>
 <translation id="3476303763173086583">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. <ph name="BEGIN_LINK1" />Tetapan<ph name="END_LINK1" /> ini dikuatkuasakan oleh pemilik. Pemilik mungkin memilih untuk menghantar data diagnostik dan penggunaan bagi peranti ini kepada Google. Jika tetapan Aktiviti Web &amp; Apl tambahan dihidupkan untuk anak anda, data ini mungkin disimpan ke akaun Googlenya. <ph name="BEGIN_LINK2" />Ketahui Lebih Lanjut<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Op!  Sistem gagal mengambil dasar untuk peranti anda.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Kenal pasti dan keluarkan peranti storan</translation>
 <translation id="4109135793348361820">Alihkan tetingkap ke <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Muat turun selesai: <ph name="FILE_NAME" />. Tekan Shift+F6 untuk pergi ke kawasan bar muat turun.</translation>
+<translation id="4110686435123617899">Pilih album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Semak imbas web dalam mod kontras tinggi</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (luar talian)</translation>
 <translation id="4115002065223188701">Rangkaian di luar liputan</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Simpan Halaman Sebagai...</translation>
 <translation id="4785719467058219317">Anda menggunakan kunci keselamatan yang tidak berdaftar dengan tapak web ini</translation>
 <translation id="4788092183367008521">Sila semak sambungan rangkaian dan cuba lagi.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Laporkan Isu...</translation>
 <translation id="4794810983896241342">Kemas kini diurus oleh <ph name="BEGIN_LINK" />pentadbir anda<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 7d769c44..814cc1b 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -301,6 +301,7 @@
 <translation id="1361164813881551742">म्यानुअल तरिकाले थप्नुहोस्</translation>
 <translation id="1361655923249334273">प्रयोग नगरिएको</translation>
 <translation id="1361872463926621533">सुरुवातमा ध्वनि प्ले गर्नुहोस्</translation>
+<translation id="1362865166188278099">मेकानिकल समस्या भयो। प्रिन्टर जाँच्नुहोस्</translation>
 <translation id="1363585519747660921">USB प्रिन्टरलाई कन्फिगर गर्नु पर्छ</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> ले तपाईंको <ph name="BEGIN_LINK" />ब्राउजरको व्यवस्थापन गर्छ<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534">आफ्नो <ph name="DEVICE_TYPE" />मा Linux का उपकरण, सम्पादनसम्बन्धी सफ्टवेयर र IDE हरू सञ्चालन गर्नुहोस्। &lt;a target="_blank" href="<ph name="URL" />"&gt;थप जान्नुहोस्&lt;/a&gt;</translation>
@@ -1358,6 +1359,7 @@
 <translation id="2636625531157955190">Chrome ले छवि पहुँच गर्न सक्दैन।</translation>
 <translation id="2637400434494156704">PIN मिलेन। तपाईं अब एक पटक मात्र प्रयास गर्न सक्नुहुन्छ।</translation>
 <translation id="2638662041295312666">प्रोफाइल फोटो</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> एल्बम चयन गरियो</translation>
 <translation id="264083724974021997">आफ्नो फोनमा जोडिनुहोस् - संवाद</translation>
 <translation id="2641065435954454414">डाउनलोड गर्ने तयारी गर्दै</translation>
 <translation id="2642111877055905627">सकर बल</translation>
@@ -1940,6 +1942,7 @@
 <translation id="338583716107319301">विभाजक</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" /> मध्ये नेटवर्क <ph name="NETWORK_INDEX" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />%, तपाईंका प्रशासकले व्यवस्थित गर्नुभएको छ, जोड्नुहोस्</translation>
 <translation id="3387614642886316601">हिज्जे जाँचसम्बन्धी परिष्कृत सुविधा प्रयोग गर्नुहोस्</translation>
+<translation id="3388094447051599208">आउटपुट ट्रे लगभग भरिएको छ</translation>
 <translation id="3388788256054548012">यो फाइल इन्क्रिप्ट गरिएको छ। यसका मालिकलाई डिक्रिप्ट गर्न लगाउनुहोस्।</translation>
 <translation id="3390013585654699824">एपका विवरणहरू</translation>
 <translation id="3390741581549395454">Linux एप र फाइलहरू सफलतापूर्वक ब्याकअप गरिएका छन्। स्तरवृद्धि गर्ने कार्य छिट्टै सुरु हुने छ।</translation>
@@ -2017,6 +2020,7 @@
 <translation id="3471876058939596279">भिडियोसम्बन्धी प्रयोजनका लागि HDMI र USB Type-C पोर्टहरू एकै समयमा प्रयोग गर्न मिल्दैन। कुनै अर्को भिडियो पोर्ट प्रयोग गर्नुहोस्।</translation>
 <translation id="3473241910002674503">ट्याब्लेट मोडमा हुँदा बटनहरूको प्रयोग गरी गृह स्क्रिनमा जानुहोस्, पछाडि फर्कनुहोस् र एउटा अनुप्रयोगबाट अर्को अनुप्रयोगमा जानुहोस्।</translation>
 <translation id="3473479545200714844">स्क्रिन म्याग्निफायर</translation>
+<translation id="347394413229268704">पछि पढ्नुहोस्</translation>
 <translation id="3475843873335999118">माफ गर्नुहोस्, तपाईंको फिंगरप्रिन्ट अझै पहिचान भएन। कृपया आफ्नो पासवर्ड प्रविष्टि गर्नुहोस्।</translation>
 <translation id="3476303763173086583">प्रयोग तथा निदानसम्बन्धी डेटा पठाउनुहोस्। निदान, यन्त्र र एपको उपयोगसम्बन्धी डेटा स्वतः Google मा पठाएर आफ्ना बालकको Android सम्बन्धी अनुभवलाई सुधार गर्न मद्दत गर्नुहोस्। यस्तो डेटा तपाईंका बालकको पहिचान गर्ने प्रयोजनका लागि प्रयोग गरिने छैन र यसले प्रणाली तथा एपको स्थिरता र थप कुराहरू सुधार गर्न मद्दत गर्ने छ। केही एकीकृत डेटाले Google का एप तथा Android का विकासकर्ता जस्ता साझेदारहरूलाई पनि मद्दत गर्ने छ। मालिकले यो <ph name="BEGIN_LINK1" />सेटिङ<ph name="END_LINK1" /> लागू गर्नुभएको हो। मालिकले यस यन्त्रको निदान तथा प्रयोगसम्बन्धी डेटा Google मा पठाउने विकल्प छनौट गर्न सक्नुहुन्छ। तपाईंका बालकको खातामा वेब तथा एपसम्बन्धी अतिरिक्त क्रियाकलापको सेटिङ सक्रिय गरिएको छ भने यो डेटा उनको Google खातामा सुरक्षित गरिन सक्छ। <ph name="BEGIN_LINK2" />थप जान्नुहोस्<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">हत्तेरिका! प्रणालीले तपाईंको यन्त्रको नीति प्राप्त गर्न सकेन।</translation>
@@ -2573,6 +2577,7 @@
 <translation id="4107048419833779140">भण्डारण यन्त्रहरू पहिचान गर्नुहोस् तथा निकाल्नुहोस्‌</translation>
 <translation id="4109135793348361820">विण्डोलाई <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) मा सार्नुहोस्</translation>
 <translation id="4110490973560452005">डाउनलोड सम्पन्न भयो: <ph name="FILE_NAME" />। डाउनलोडहरूको पट्टीमा जान Shift+F6 थिच्नुहोस्।</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> एल्बम चयन गर्नुहोस्</translation>
 <translation id="4110895898888439383">उच्च कन्ट्रास्ट मोडमा वेब ब्राउज गर्नुहोस्</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (अफलाइन)</translation>
 <translation id="4115002065223188701">नेटवर्क पहुँचको दायराभन्दा बाहिर छ</translation>
@@ -3056,6 +3061,7 @@
 <translation id="4780321648949301421">पृष्ठलाई निम्न रूपमा बचत गर्नुहोस्...</translation>
 <translation id="4785719467058219317">तपाईं यस वेबसाइटमा दर्ता नगरिएको सुरक्षा साँचो प्रयोग गर्दै हुनुहुन्छ</translation>
 <translation id="4788092183367008521">कृपया आफ्नो इन्टरनेटको जाँच गरी फेरि प्रयास गर्नुहोस्।</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> फोटो</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">एउटा मामिला रिपोर्ट गर्नुहोस्...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />तपाईंका प्रशासक<ph name="END_LINK" /> ले अध्यावधिकसम्बन्धी काम गर्छन्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 0a1df4f..ba4d49d 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Handmatig toevoegen</translation>
 <translation id="1361655923249334273">Ongebruikt</translation>
 <translation id="1361872463926621533">Geluid afspelen bij opstarten</translation>
+<translation id="1362865166188278099">Mechanisch probleem. Controleer de printer.</translation>
 <translation id="1363585519747660921">USB-printer moet worden geconfigureerd</translation>
 <translation id="1365180424462182382">Je <ph name="BEGIN_LINK" />browser wordt beheerd<ph name="END_LINK" /> door <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Gebruik Linux-tools, editors en IDE's op je <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Meer informatie&lt;/a&gt;</translation>
@@ -613,7 +614,7 @@
 <translation id="1714644264617423774">Schakel toegankelijkheidsfuncties in om je apparaat gebruiksvriendelijker te maken. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation>
 <translation id="1717218214683051432">Bewegingssensoren</translation>
 <translation id="1718835860248848330">Afgelopen uur</translation>
-<translation id="1719312230114180055">Opmerking: Je vingerafdruk is mogelijk minder beveiligd dan een sterk wachtwoord of sterke pincode.</translation>
+<translation id="1719312230114180055">Opmerking: Je vingerafdruk is mogelijk minder veilig dan een sterk wachtwoord of sterke pincode.</translation>
 <translation id="1720318856472900922">TLS WWW-serververificatie</translation>
 <translation id="1721312023322545264">Je hebt rechten van <ph name="NAME" /> nodig om deze site te bezoeken</translation>
 <translation id="1721937473331968728">Je kunt klassieke printers die zijn aangesloten op je computer, toevoegen aan <ph name="CLOUD_PRINT_NAME" />.</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome heeft geen toegang tot de afbeelding.</translation>
 <translation id="2637400434494156704">Onjuiste pincode. Je hebt nog één poging over.</translation>
 <translation id="2638662041295312666">Inlogafbeelding</translation>
+<translation id="2640549051766135490">Album geselecteerd: <ph name="TITLE" /> (<ph name="DESC" />)</translation>
 <translation id="264083724974021997">Verbinding maken met je telefoon: dialoogvenster</translation>
 <translation id="2641065435954454414">Download voorbereiden</translation>
 <translation id="2642111877055905627">Voetbal</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Separator</translation>
 <translation id="338691029516748599">Netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, signaalsterkte <ph name="SIGNAL_STRENGTH" />%, beheerd door je beheerder, verbinden</translation>
 <translation id="3387614642886316601">Verbeterde spellingcontrole gebruiken</translation>
+<translation id="3388094447051599208">Uitvoervak is bijna vol</translation>
 <translation id="3388788256054548012">Dit bestand is versleuteld. Vraag de eigenaar om het te ontsleutelen.</translation>
 <translation id="3390013585654699824">App-gegevens</translation>
 <translation id="3390741581549395454">Er is een back-up gemaakt van Linux-apps en -bestanden. De upgrade wordt binnenkort gestart.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI- en USB Type-C-poorten kunnen niet tegelijkertijd worden gebruikt voor video. Gebruik een andere videopoort.</translation>
 <translation id="3473241910002674503">Ga terug of naar de homepage en schakel tussen apps met knoppen in de tabletmodus.</translation>
 <translation id="3473479545200714844">Vergrootglas</translation>
+<translation id="347394413229268704">Later lezen</translation>
 <translation id="3475843873335999118">Je vingerafdruk wordt nog steeds niet herkend. Geef je wachtwoord op.</translation>
 <translation id="3476303763173086583">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. Deze <ph name="BEGIN_LINK1" />instelling<ph name="END_LINK1" /> wordt afgedwongen door de eigenaar. De eigenaar kan ervoor kiezen diagnostische en gebruiksgegevens voor dit apparaat naar Google te verzenden. 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_LINK2" />Meer informatie<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Het systeem kan het beleid voor je apparaat niet ophalen.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Opslagapparaten identificeren en verwijderen</translation>
 <translation id="4109135793348361820">Venster verplaatsen naar <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Download voltooid: <ph name="FILE_NAME" />. Druk op Shift+F6 om naar het gedeelte met de downloadbalk te gaan.</translation>
+<translation id="4110686435123617899">Album selecteren: <ph name="TITLE" /> (<ph name="DESC" />)</translation>
 <translation id="4110895898888439383">Surf op internet in de modus voor hoog contrast</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Netwerk buiten bereik</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Bewaar pagina als...</translation>
 <translation id="4785719467058219317">Je gebruikt een beveiligingssleutel die niet is geregistreerd voor deze website</translation>
 <translation id="4788092183367008521">Controleer de netwerkverbinding en probeer het opnieuw.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Een probleem melden...</translation>
 <translation id="4794810983896241342">Updates worden beheerd door <ph name="BEGIN_LINK" />je beheerder<ph name="END_LINK" /></translation>
@@ -3868,7 +3874,7 @@
 <translation id="5772114492540073460">Met <ph name="PARALLELS_NAME" /> kun je Windows®-apps uitvoeren op je Chromebook. Er wordt <ph name="MINIMUM_SPACE" /> vrije ruimte aanbevolen voor de installatie.</translation>
 <translation id="5772265531560382923">{NUM_PAGES,plural, =1{Je kunt wachten tot de pagina reageert of de pagina afsluiten.}other{Je kunt wachten tot de pagina's reageren of de pagina's afsluiten.}}</translation>
 <translation id="577322787686508614">Leesbewerking is niet toegestaan op: <ph name="DEVICE_NAME" />.</translation>
-<translation id="5774295353725270860">Files-app openen</translation>
+<translation id="5774295353725270860">App Bestanden openen</translation>
 <translation id="577624874850706961">Cookies zoeken</translation>
 <translation id="5777468213129569553">Chrome openen</translation>
 <translation id="5778747455497889540">Hieronder staat het willekeurig gegenereerde wachtwoord voor de beveiligde module dat aan je computer is toegewezen:</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index cb2d72d0..6571bf5e 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Legg til manuelt</translation>
 <translation id="1361655923249334273">Ubrukt</translation>
 <translation id="1361872463926621533">Spill av lyd ved oppstart</translation>
+<translation id="1362865166188278099">Mekanisk feil. Sjekk skriveren</translation>
 <translation id="1363585519747660921">USB-skriveren må konfigureres</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Nettleseren administreres<ph name="END_LINK" /> av <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Kjør Linux-verktøy, redigeringsverktøy og IDE-er på <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Finn ut mer&lt;/a&gt;</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chrome kan ikke få tilgang til bildet.</translation>
 <translation id="2637400434494156704">Feil PIN-kode. Du har ett forsøk igjen.</translation>
 <translation id="2638662041295312666">Påloggingsbilde</translation>
+<translation id="2640549051766135490">Albumet <ph name="TITLE" /> med <ph name="DESC" /> er valgt</translation>
 <translation id="264083724974021997">Koble til telefonen din – dialogboks</translation>
 <translation id="2641065435954454414">Klargjør for nedlasting</translation>
 <translation id="2642111877055905627">Fotball</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">Skillelinje</translation>
 <translation id="338691029516748599">Nettverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" /> – <ph name="NETWORK_NAME" /> – <ph name="SECURITY_STATUS" /> – signalstyrke <ph name="SIGNAL_STRENGTH" /> % – administreres av administratoren din – koble til</translation>
 <translation id="3387614642886316601">Bruk forbedret stavekontroll</translation>
+<translation id="3388094447051599208">Utskriftsskuffen er nesten full</translation>
 <translation id="3388788256054548012">Denne filen er kryptert. Spør eieren om å dekryptere den.</translation>
 <translation id="3390013585654699824">Informasjon om appen</translation>
 <translation id="3390741581549395454">Linux-apper og -filer er sikkerhetskopiert. Oppgraderingen begynner straks.</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">HDMI- og USB-C-porter kan ikke brukes til video samtidig. Bruk en annen videoport.</translation>
 <translation id="3473241910002674503">Bruk knapper til å navigere hjem og tilbake samt bytte app i nettbrettmodus.</translation>
 <translation id="3473479545200714844">Skjermforstørrer</translation>
+<translation id="347394413229268704">Les senere</translation>
 <translation id="3475843873335999118">Fingeravtrykket ditt ble fortsatt ikke gjenkjent. Skriv inn passordet ditt.</translation>
 <translation id="3476303763173086583">Send bruks- og diagnostikkdata. Hjelp til med å gjøre Android-opplevelsen bedre for barnet ditt ved å sende diagnostikk-, enhets- og appbruksdata til Google automatisk. Disse dataene brukes ikke til å identifisere barnet ditt, men bidrar til å gjøre systemet og appene bedre og mer stabile. Noen aggregerte data hjelper også Google-apper og -partnere, for eksempel Android-utviklere. Denne <ph name="BEGIN_LINK1" />innstillingen<ph name="END_LINK1" /> håndheves av eieren. Eieren kan velge å sende diagnostikk- og bruksdata for denne enheten til Google. Hvis du har slått på innstillingen for annen nett- og appaktivitet for barnet ditt, kan disse dataene bli lagret i barnets Google-konto. <ph name="BEGIN_LINK2" />Finn ut mer<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Beklager. Systemet kunne ikke hente reglene for enheten din.</translation>
@@ -2590,6 +2594,7 @@
 <translation id="4107048419833779140">Identifiser og løs ut lagringsenheter</translation>
 <translation id="4109135793348361820">Flytt vinduet til <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Nedlastingen er fullført: <ph name="FILE_NAME" />. Trykk på Shift+F6 for å gå til nedlastingsraden.</translation>
+<translation id="4110686435123617899">Velg albumet <ph name="TITLE" /> med <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Surf på nettet i høykontrastmodus</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (uten nett)</translation>
 <translation id="4115002065223188701">Nettverket er utenfor rekkevidde</translation>
@@ -3076,6 +3081,7 @@
 <translation id="4780321648949301421">L&amp;agre side som</translation>
 <translation id="4785719467058219317">Du bruker en sikkerhetsnøkkel som ikke er registrert på dette nettstedet</translation>
 <translation id="4788092183367008521">Sjekk nettverkstilkoblingen din, og prøv på nytt.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> bilde</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Rapporter et problem</translation>
 <translation id="4794810983896241342">Oppdateringer administreres av <ph name="BEGIN_LINK" />administratoren din<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index cbb92aeab..706e74ea 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">ਹੱਥੀਂ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="1361655923249334273">ਬਿਨਾਂ ਵਰਤਿਆ</translation>
 <translation id="1361872463926621533">ਸ਼ੁਰੂ ਹੋਣ ਵੇਲੇ ਧੁਨੀ ਵਜਾਓ</translation>
+<translation id="1362865166188278099">ਮਕੈਨਿਕਲ ਸਮੱਸਿਆ। ਪ੍ਰਿੰਟਰ ਚੈੱਕ ਕਰੋ</translation>
 <translation id="1363585519747660921">USB ਪ੍ਰਿੰਟਰ ਨੂੰ ਸੰਰੂਪਣ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="1365180424462182382">ਤੁਹਾਡੇ <ph name="BEGIN_LINK" />ਬ੍ਰਾਊਜ਼ਰ ਦਾ ਪ੍ਰਬੰਧਨ<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="1366177842110999534">ਆਪਣੇ <ph name="DEVICE_TYPE" /> 'ਤੇ Linux ਦੇ ਟੂਲ, ਸੰਪਾਦਕ ਅਤੇ IDE ਚਲਾਓ। &lt;a target="_blank" href="<ph name="URL" />"&gt;ਹੋਰ ਜਾਣੋ&lt;/a&gt;</translation>
@@ -1372,6 +1373,7 @@
 <translation id="2636625531157955190">Chrome ਚਿੱਤਰ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦਾ।</translation>
 <translation id="2637400434494156704">ਗਲਤ ਪਿੰਨ। ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਕੋਸ਼ਿਸ਼ ਬਾਕੀ ਹੈ।</translation>
 <translation id="2638662041295312666">ਸਾਈਨ-ਇਨ ਚਿੱਤਰ</translation>
+<translation id="2640549051766135490">ਐਲਬਮ <ph name="TITLE" /> <ph name="DESC" /> ਚੁਣੀ ਗਈ</translation>
 <translation id="264083724974021997">ਆਪਣੇ ਫ਼ੋਨ ਨਾਲ ਕਨੈਕਟ ਕਰੋ - ਵਿੰਡੋ</translation>
 <translation id="2641065435954454414">ਡਾਊਨਲੋਡ ਦੀ ਤਿਆਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ</translation>
 <translation id="2642111877055905627">ਫੁੱਟਬਾਲ</translation>
@@ -1956,6 +1958,7 @@
 <translation id="338583716107319301">ਸੈਪਰੇਟਰ</translation>
 <translation id="338691029516748599">ਨੈੱਟਵਰਕ <ph name="NETWORK_COUNT" /> ਵਿੱਚੋਂ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ <ph name="SIGNAL_STRENGTH" />%, ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਕਨੈਕਟ ਕਰੋ</translation>
 <translation id="3387614642886316601">ਵਿਸਤ੍ਰਿਤ ਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ ਵਰਤੋ</translation>
+<translation id="3388094447051599208">ਆਊਟਪੁੱਟ ਟ੍ਰੇਅ ਲਗਭਗ ਭਰ ਗਈ ਹੈ</translation>
 <translation id="3388788256054548012">ਇਹ ਫ਼ਾਈਲ ਇਨਕ੍ਰਿਪਟਡ ਹੈ। ਇਸਦੇ ਮਾਲਕ ਨੂੰ ਡਿਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਕਹੋ।</translation>
 <translation id="3390013585654699824">ਐਪ ਸੰਬੰਧੀ ਵੇਰਵੇ</translation>
 <translation id="3390741581549395454">Linux ਐਪਾਂ ਅਤੇ ਫ਼ਾਈਲਾਂ ਦਾ ਸਫਲਤਾਪੂਰਵਕ ਬੈਕਅੱਪ ਲੈ ਲਿਆ ਗਿਆ ਹੈ। ਅੱਪਗ੍ਰੇਡ ਜਲਦ ਹੀ ਸ਼ੁਰੂ ਹੋਵੇਗਾ।</translation>
@@ -2033,6 +2036,7 @@
 <translation id="3471876058939596279">HDMI ਅਤੇ USB ਪ੍ਰਕਾਰ-C ਪੋਰਟਾਂ ਨੂੰ ਇੱਕੋ ਵੇਲੇ ਵੀਡੀਓ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਵੱਖਰਾ ਵੀਡੀਓ ਪੋਰਟ ਵਰਤੋ।</translation>
 <translation id="3473241910002674503">ਟੈਬਲੈੱਟ ਮੋਡ ਵਿੱਚ ਬਟਨਾਂ ਨਾਲ ਹੋਮ 'ਤੇ ਜਾਓ, ਵਾਪਸ ਜਾਓ ਅਤੇ ਐਪਾਂ ਬਦਲੋ।</translation>
 <translation id="3473479545200714844">ਸਕ੍ਰੀਨ ਵਿਸਤਾਰਕ</translation>
+<translation id="347394413229268704">ਬਾਅਦ ਵਿੱਚ ਪੜ੍ਹੋ</translation>
 <translation id="3475843873335999118">ਮਾਫ਼ ਕਰਨਾ, ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਅਜੇ ਪਛਾਣ ਨਹੀਂ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।</translation>
 <translation id="3476303763173086583">ਵਰਤੋਂ ਅਤੇ ਤਸ਼ਖੀਸ ਡਾਟਾ ਭੇਜੋ। Google ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸ਼ਖੀਸ, ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਵਰਤੋਂ ਡਾਟਾ ਭੇਜ ਕੇ ਆਪਣੇ ਬੱਚੇ ਦਾ Android ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ। ਇਸਦੀ ਵਰਤੋਂ ਤੁਹਾਡੇ ਬੱਚੇ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ ਅਤੇ ਸਿਸਟਮ ਅਤੇ ਐਪ ਸਥਿਰਤਾ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲੇਗੀ। ਕੁਝ ਏਕੀਕ੍ਰਿਤ ਜਾਣਕਾਰੀ Google ਐਪਾਂ ਅਤੇ ਪਾਰਟਨਰਾਂ, ਜਿਵੇਂ ਕਿ Android ਵਿਕਾਸਕਾਰਾਂ, ਦੀ ਵੀ ਮਦਦ ਕਰੇਗੀ। ਇਹ <ph name="BEGIN_LINK1" />ਸੈਟਿੰਗ<ph name="END_LINK1" /> ਮਾਲਕ ਵੱਲੋਂ ਲਾਗੂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਮਾਲਕ ਇਸ ਡੀਵਾਈਸ ਦੇ ਤਸ਼ਖੀਸ ਅਤੇ ਵਰਤੋਂ ਡਾਟੇ ਨੂੰ Google ਨੂੰ ਭੇਜਣਾ ਚੁਣ ਸਕਦਾ ਹੈ। ਜੇ ਤੁਹਾਡੇ ਬੱਚੇ ਲਈ ਵਧੀਕ 'ਵੈੱਬ ਅਤੇ ਐਪ ਸਰਗਰਮੀ' ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਇਹ ਡਾਟਾ ਉਸਦੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। <ph name="BEGIN_LINK2" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">ਓਹੋ! ਸਿਸਟਮ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਲਈ ਨੀਤੀ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ।</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">ਸਟੋਰੇਜ ਡੀਵਾਈਸਾਂ ਪਛਾਣੋ ਅਤੇ ਬਾਹਰ ਕੱਢੋ</translation>
 <translation id="4109135793348361820">window ਨੂੰ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) ਵਿੱਚ ਮੂਵ ਕਰੋ</translation>
 <translation id="4110490973560452005">ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ ਹੋਇਆ: <ph name="FILE_NAME" />. ਡਾਊਨਲੋਡ ਬਾਰ ਖੇਤਰ ਵਿੱਚ ਜਾਣ ਲਈ Shift+F6 ਦਬਾਓ।</translation>
+<translation id="4110686435123617899">ਐਲਬਮ ਚੁਣੋ <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ਉੱਚ ਕੰਟ੍ਰਾਸਟ ਮੋਡ ਵਿੱਚ ਵੈੱਬ ਬ੍ਰਾਊਜ਼ ਕਰੋ</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ਆਫ਼ਲਾਈਨ)</translation>
 <translation id="4115002065223188701">ਨੈੱਟਵਰਕ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਹੈ</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">ਪੰਨੇ ਨੂੰ ਇਸ ਵਜੋਂ ਰੱਖਿਅਤ ਕਰੋ...</translation>
 <translation id="4785719467058219317">ਤੁਸੀਂ ਇੱਕ ਅਜਿਹੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਵਰਤ ਰਹੇ ਹੋ ਜੋ ਇਸ ਵੈੱਬਸਾਈਟ ਨਾਲ ਰਜਿਸਟਰ ਨਹੀਂ ਹੈ</translation>
 <translation id="4788092183367008521">ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ਫ਼ੋਟੋ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;ਇੱਕ ਸਮੱਸਿਆ ਦੀ ਰਿਪੋਰਟ ਕਰੋ...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ<ph name="END_LINK" /> ਵੱਲੋਂ ਅੱਪਡੇਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 49e6764a..64de6f31 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Adaugă manual</translation>
 <translation id="1361655923249334273">Neutilizat</translation>
 <translation id="1361872463926621533">Redă sunetul la pornire</translation>
+<translation id="1362865166188278099">Defecțiune mecanică. Verifică imprimanta.</translation>
 <translation id="1363585519747660921">Imprimanta USB necesită configurare</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Browserul tău este gestionat<ph name="END_LINK" /> de <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Rulează instrumentele, aplicațiile de editare și IDE-urile Linux pe <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Află mai multe&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome nu poate accesa imaginea.</translation>
 <translation id="2637400434494156704">Codul PIN este incorect. Mai ai o încercare.</translation>
 <translation id="2638662041295312666">Imagine de autentificare</translation>
+<translation id="2640549051766135490">S-a selectat albumul <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Conectează-te la telefon – dialog</translation>
 <translation id="2641065435954454414">Se pregătește descărcarea</translation>
 <translation id="2642111877055905627">Minge de fotbal</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Separator</translation>
 <translation id="338691029516748599">Rețeaua <ph name="NETWORK_INDEX" /> din <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /> %, gestionată de administratorul tău, conectează-te</translation>
 <translation id="3387614642886316601">Folosește verificarea îmbunătățită a ortografiei</translation>
+<translation id="3388094447051599208">Tava de ieșire este aproape plină</translation>
 <translation id="3388788256054548012">Fișierul este criptat. Solicită-i proprietarului să îl decripteze.</translation>
 <translation id="3390013585654699824">Detalii despre aplicație</translation>
 <translation id="3390741581549395454">S-a făcut backup pentru aplicațiile și fișierele Linux. Upgrade-ul va începe în scurt timp.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Porturile HDMI și USB Type-C nu pot fi folosite simultan pentru conținut video. Folosește alt port video.</translation>
 <translation id="3473241910002674503">Navighează la ecranul de pornire, înapoi și comută între aplicații folosind butoanele în modul tabletă.</translation>
 <translation id="3473479545200714844">Lupă de ecran</translation>
+<translation id="347394413229268704">Citește mai târziu</translation>
 <translation id="3475843873335999118">Ne pare rău, amprenta nu este recunoscută. Introdu parola.</translation>
 <translation id="3476303763173086583">Trimite date de utilizare și diagnosticare. Contribuie la îmbunătățirea experienței Android a copilului trimițând automat la Google date de diagnosticare și utilizare a dispozitivului și a aplicațiilor. Acestea nu vor fi folosite la identificarea copilului și vor ajuta la stabilitatea sistemului, a aplicațiilor și altele. Unele date cumulate vor ajuta aplicațiile și partenerii Google, cum ar fi dezvoltatorii Android. Această <ph name="BEGIN_LINK1" />setare<ph name="END_LINK1" /> este impusă de proprietar. Proprietarul poate alege să trimită date de diagnosticare și utilizare a dispozitivului la Google. Dacă ai activat setarea Activitatea suplimentară de pe web și din aplicații pentru copilul tău, aceste date pot fi salvate în Contul său Google. <ph name="BEGIN_LINK2" />Află mai multe<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Hopa! Sistemul nu a putut prelua politica pentru dispozitivul tău.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifică și elimină dispozitivele de stocare</translation>
 <translation id="4109135793348361820">Mutați fereastra la <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Descărcare finalizată: <ph name="FILE_NAME" />. Apasă Shift+F6 ca să revii la zona barei de descărcări.</translation>
+<translation id="4110686435123617899">Selectează albumul <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Navighează pe web în modul Contrast ridicat</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Rețea în afara ariei de acoperire</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Salvează pagina ca...</translation>
 <translation id="4785719467058219317">Folosești o cheie de securitate care nu este înregistrată pe acest site</translation>
 <translation id="4788092183367008521">Verifică conexiunea la rețea și încearcă din nou.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> fotografie</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Raportează o problemă...</translation>
 <translation id="4794810983896241342">Actualizările sunt gestionate de <ph name="BEGIN_LINK" />administrator<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 7b662497..770acce 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1222,7 +1222,7 @@
 <translation id="2471469610750100598">Черный (по умолчанию)</translation>
 <translation id="2473195200299095979">Перевести эту страницу</translation>
 <translation id="2475982808118771221">Произошел сбой.</translation>
-<translation id="2476578072172137802">Настройки сайта</translation>
+<translation id="2476578072172137802">Настройки сайтов</translation>
 <translation id="2476974672882258506">Чтобы удалить <ph name="PARALLELS_DESKTOP" />, завершите работу Windows.</translation>
 <translation id="2478176599153288112"><ph name="EXTENSION" />: доступ к медиафайлам</translation>
 <translation id="247949520305900375">Общий доступ к аудио</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 869f3bbc..f3d67a6 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">හස්තීයව එක් කරන්න</translation>
 <translation id="1361655923249334273">භාවිතා නොකළ</translation>
 <translation id="1361872463926621533">අැරඹුමෙහි ශබ්ද වාදන කරන්න</translation>
+<translation id="1362865166188278099">කාර්මික ගැටලුවකි. මුද්‍රණ යන්ත්‍රය පරීක්ෂා කරන්න</translation>
 <translation id="1363585519747660921">USB මුද්‍රකයට වින්‍යාස කිරීම අවශ්‍යයි</translation>
 <translation id="1365180424462182382">ඔබේ <ph name="BEGIN_LINK" />බ්‍රවුසරය කළමනා කෙරෙන්නේ<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> විසිනි</translation>
 <translation id="1366177842110999534">ඔබේ <ph name="DEVICE_TYPE" /> මත ලිනක්ස් මෙවලම්, සංස්කාරක, සහ IDE ධාවන කරන්න. &lt;a target="_blank" href="<ph name="URL" />"&gt;තවත් දැන ගන්න&lt;/a&gt;</translation>
@@ -1370,6 +1371,7 @@
 <translation id="2636625531157955190">Chrome හට රූපය වෙත පිවිසිය නොහැක.</translation>
 <translation id="2637400434494156704">වැරදි රහස් අංකය. ඔබට එක ප්‍රයත්නයක් ඉතිරිව ඇත.</translation>
 <translation id="2638662041295312666">පුරන රූපය</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> ඇල්බමය තෝරන ලදි</translation>
 <translation id="264083724974021997">ඔබේ දුරකථනය සම්බන්ධ කරන්න - සංවාදය</translation>
 <translation id="2641065435954454414">බාගැනීමට සූදානම් කෙරේ</translation>
 <translation id="2642111877055905627">පාපන්දුව</translation>
@@ -1955,6 +1957,7 @@
 <translation id="338583716107319301">විභේදකය</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />න් <ph name="NETWORK_INDEX" /> වැනි ජාලය, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, සංඥා ප්‍රබලතාව <ph name="SIGNAL_STRENGTH" />%, ඔබේ පරිපාලකයා විසින් කළමනාකරණය කරයි, සබඳින්න</translation>
 <translation id="3387614642886316601">උසස් අක්‍ෂර පරීක්‍ෂාව භාවිත කරන්න</translation>
+<translation id="3388094447051599208">ප්‍රතිදාන තැටිය දැනටමත් පාහේ පිරී ඇත</translation>
 <translation id="3388788256054548012">මෙම ගොනුව සංකේතිතයි. එහි හිමිකරුට විකේතන කිරිමට කියන්න.</translation>
 <translation id="3390013585654699824">යෙදුම් විස්තර</translation>
 <translation id="3390741581549395454">ලිනක්ස් යෙදුම් සහ ගොනු සාර්ථකව උපස්ථ කරන ලදි. උත්ශ්‍රේණිය ඉක්මනින් ඇරඹේ.</translation>
@@ -2032,6 +2035,7 @@
 <translation id="3471876058939596279">HDMI සහ USB Type-C තොට එක වරම වීඩියෝව සඳහා භාවිත නොකළ හැක. වෙනත් වීඩියෝ තොටක් භාවිත කරන්න.</translation>
 <translation id="3473241910002674503">ටැබ්ලට් ප්‍රකාරය තුළ බොත්තම් මඟින් නිවසට සංචලන වීම, ආපසු යාම, සහ යෙදුම් මාරු කිරීම.</translation>
 <translation id="3473479545200714844">තිර විශාලකය</translation>
+<translation id="347394413229268704">පසුව කියවන්න</translation>
 <translation id="3475843873335999118">කනගාටුයි, ඔබේ ඇඟිලි සලකුණ තවම හඳුනා ගෙන නැත. කරුණාකර ඔබගේ මුරපදය ඇතුළු කරන්න.</translation>
 <translation id="3476303763173086583">භාවිත සහ දෝෂ නිර්ණ දත්ත යවන්න. ස්වයංක්‍රියව රෝග විනිශ්චය, උපාංග සහ යෙදුම් භාවිත දත්ත Google වෙත යැවීමෙන් ඔබගේ දරුවාගේ Android අත්දැකීම වැඩි දියුණු කර ගැනීමට උපකාරී වන්න. මෙය ඔබේ දරුවා හඳුනා ගැනීමට භාවිත නොකෙරෙන අතර, පද්ධති සහ යෙදුම් ස්ථායිතාවට සහ අනෙකුත් වැඩිදියුණු කිරීම්වලට උදවු කරයි. සමහර එකතු කළ දත්ත Google යෙදුම්වලට සහ Android සංවර්ධකයින් වැනි හවුල්කරුවන්ට ද උදවු කරති. මෙම <ph name="BEGIN_LINK1" />සැකසීම<ph name="END_LINK1" /> හිමිකරු විසින් බලාත්මක කෙරේ. හිමිකරුට Google වෙත ස්වයංක්‍රියව දෝෂ නිර්ණ සහ භාවිත දත්ත යැවීමට තේරිය හැක. ඔබේ දරුවා සඳහා අමතර වෙබ් සහ යෙදුම් ක්‍රියාකාරකම් සැකසීම සක්‍රීය කර තිබේ නම්, මෙම දත්ත ඔවුන්ගේ Google ගිණුමට සුරැකිය හැක. <ph name="BEGIN_LINK2" />තවත් දැන ගන්න<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">අපොයි! ඔබගේ උපාංගය සඳහා ප්‍රතිපත්තිය ලබා ගැනීමට පද්ධතිය අසමත් විය.</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">ආචයන උපාංග හඳුනා ගෙන බැහැර කරන්න</translation>
 <translation id="4109135793348361820">කවුළුව <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) වෙත ගෙනයන්න</translation>
 <translation id="4110490973560452005">බාගැනීම සම්පූර්ණයි: <ph name="FILE_NAME" />. බාගැනීම් තීරු ප්‍රදේශයට මාරු වීමට Shift+F6 ඔබන්න.</translation>
+<translation id="4110686435123617899">ඇල්බමය තෝරන්න <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ඉහළ අසමානතා ප්‍රකාරයෙන් වෙබය බ්‍රවුස් කරන්න</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (නොබැඳි)</translation>
 <translation id="4115002065223188701">ජාලය පරාසයෙන් බැහැරය</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">පිටුව මෙලෙස සුරකින්න...</translation>
 <translation id="4785719467058219317">ඔබ මෙම වෙබ් අඩවිය සමඟ ලියාපදිංචි නොකළ ආරක්‍ෂක යතුරක් භාවිත කරයි</translation>
 <translation id="4788092183367008521">ඔබගේ අන්තර්ජාල සම්බන්ධතාව පරීක්‍ෂා කර නැවත උත්සාහ කරන්න.</translation>
+<translation id="4791000909649665275">ඡායාරූප <ph name="NUMBER" />ක්</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">ගැටළුවක් වාර්තා කරන්න...</translation>
 <translation id="4794810983896241342">යාවත්කාලීන <ph name="BEGIN_LINK" />ඔබේ පරිපාලකයා<ph name="END_LINK" /> විසින් කළමනා කෙරේ</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 2da25af1..ebd2c6b 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Ročno dodajanje</translation>
 <translation id="1361655923249334273">Neuporabljeno</translation>
 <translation id="1361872463926621533">Predvajaj zvok ob zagonu</translation>
+<translation id="1362865166188278099">Mehanska težava. Preverite tiskalnik.</translation>
 <translation id="1363585519747660921">Tiskalnik USB je treba konfigurirati</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Brskalnik upravlja<ph name="END_LINK" /> domena <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Izvajanje orodij, urejevalnikov in vdelanih orodij za razvoj programske opreme (IDE) za Linux v napravi <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Več o tem&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome ne more dostopati do slike.</translation>
 <translation id="2637400434494156704">Napačna koda PIN. Imate še en poskus.</translation>
 <translation id="2638662041295312666">Slika za prijavo</translation>
+<translation id="2640549051766135490">Album <ph name="TITLE" /> <ph name="DESC" /> je bil izbran</translation>
 <translation id="264083724974021997">Povezovanje s telefonom – pogovorno okno</translation>
 <translation id="2641065435954454414">Priprava prenosa</translation>
 <translation id="2642111877055905627">Nogometna žoga</translation>
@@ -1578,7 +1580,7 @@
 <translation id="2876336351874743617">Prst 2</translation>
 <translation id="2876369937070532032">Googlu pošlje URL-je nekaterih strani, ki jih obiščete, kadar je ogrožena vaša varnost</translation>
 <translation id="2878782256107578644">Poteka pregled. Želite odpreti prenos?</translation>
-<translation id="2878889940310164513">Dodaj mobilno omrežje …</translation>
+<translation id="2878889940310164513">Dodaj mobilno povezavo …</translation>
 <translation id="288042212351694283">Dostop do naprav z univerzalnim drugim dejavnikom</translation>
 <translation id="2880660355386638022">Postavitev oken</translation>
 <translation id="2881076733170862447">Ko kliknete razširitev</translation>
@@ -1938,7 +1940,7 @@
 <translation id="3356580349448036450">Dokončano</translation>
 <translation id="3359256513598016054">Omejitve pravilnika potrdila</translation>
 <translation id="3360297538363969800">Tiskanje ni uspelo. Preverite tiskalnik in poskusite znova.</translation>
-<translation id="3361421571228286637">{COUNT,plural, =1{Naprava <ph name="DEVICE_NAME" /> z vami deli <ph name="ATTACHMENTS" />.}one{Naprava <ph name="DEVICE_NAME" /> z vami deli <ph name="ATTACHMENTS" />.}two{Naprava <ph name="DEVICE_NAME" /> z vami deli <ph name="ATTACHMENTS" />.}few{Naprava <ph name="DEVICE_NAME" /> z vami deli <ph name="ATTACHMENTS" />.}other{Naprava <ph name="DEVICE_NAME" /> z vami deli <ph name="ATTACHMENTS" />.}}</translation>
+<translation id="3361421571228286637">{COUNT,plural, =1{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}one{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}two{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}few{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}other{Naprava <ph name="DEVICE_NAME" /> z vami deli priloge (<ph name="ATTACHMENTS" />).}}</translation>
 <translation id="3364986687961713424">Od skrbnika: <ph name="ADMIN_MESSAGE" /></translation>
 <translation id="3365598184818502391">Uporabite Ctrl ali Alt</translation>
 <translation id="3367047597842238025">Nastavite napravo <ph name="DEVICE_TYPE" /> po željah in odkrijte izjemne zmogljivosti na dosegu prstov.</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Ločilo</translation>
 <translation id="338691029516748599">Omrežje <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, moč signala je <ph name="SIGNAL_STRENGTH" /> %, upravlja ga vaš skrbnik, vzpostavitev povezave</translation>
 <translation id="3387614642886316601">Uporaba izboljšanega preverjanja črkovanja</translation>
+<translation id="3388094447051599208">Izhodni pladenj je skoraj poln</translation>
 <translation id="3388788256054548012">Ta datoteka je šifrirana. Lastnika datoteke prosite, da jo dešifrira.</translation>
 <translation id="3390013585654699824">Podrobnosti o aplikaciji</translation>
 <translation id="3390741581549395454">Aplikacije in datoteke za Linux so uspešno varnostno kopirane. Nadgradnja se bo začela v kratkem.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Vrat HDMI in USB Type-C ni mogoče hkrati uporabljati za sliko. Uporabite druga vrata za sliko.</translation>
 <translation id="3473241910002674503">Premikanje na začetni zaslon in nazaj ter preklop med aplikacijami z gumbi v načinu tabličnega računalnika.</translation>
 <translation id="3473479545200714844">Lupa</translation>
+<translation id="347394413229268704">Poznejše branje</translation>
 <translation id="3475843873335999118">Prstni odtis še vedno ni prepoznan. Vnesite geslo.</translation>
 <translation id="3476303763173086583">Pošiljanje podatkov o uporabi in diagnostičnih podatkov. Pomagajte izboljšati otrokovo izkušnjo z Androidom s samodejnim pošiljanjem diagnostičnih podatkov ter podatkov o uporabi naprave in aplikacij Googlu. Teh podatkov ne bomo uporabljali, da bi prepoznali vašega otroka, temveč za izboljšanje stabilnosti sistema in izvajanja aplikacij ter drugega. Nekateri združeni podatki bodo pomagali tudi Googlovim aplikacijam in partnerjem, na primer razvijalcem za Android. To <ph name="BEGIN_LINK1" />nastavitev<ph name="END_LINK1" /> je uveljavil lastnik naprave. Lastnik bo morda izbral, da se za to napravo pošiljajo diagnostični podatki in podatki o uporabi Googlu. Če ste za otroka vklopili dodatno beleženje dejavnosti v spletu in aplikacijah, bodo ti podatki morda shranjeni v njegovem računu za Google. <ph name="BEGIN_LINK2" />Več o tem<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Ojoj. Sistemu ni uspelo prenesti pravilnika za napravo.</translation>
@@ -2180,7 +2184,7 @@
 <translation id="3640214691812501263">Želite dodati »<ph name="EXTENSION_NAME" />« za uporabnika <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Naučite Pomočnika prepoznati vaš glas</translation>
 <translation id="3645372836428131288">Rahlo premaknite prst, da bo zajet drug del prstnega odtisa.</translation>
-<translation id="3647998456578545569">{COUNT,plural, =1{Priloge (<ph name="ATTACHMENTS" />), prejete iz naprave <ph name="DEVICE_NAME" />}one{Priloge (<ph name="ATTACHMENTS" />), prejete iz naprave <ph name="DEVICE_NAME" />}two{Priloge (<ph name="ATTACHMENTS" />), prejete iz naprave <ph name="DEVICE_NAME" />}few{Priloge (<ph name="ATTACHMENTS" />), prejete iz naprave <ph name="DEVICE_NAME" />}other{Priloge (<ph name="ATTACHMENTS" />), prejete iz naprave <ph name="DEVICE_NAME" />}}</translation>
+<translation id="3647998456578545569">{COUNT,plural, =1{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}one{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}two{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}few{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}other{Priloge (<ph name="ATTACHMENTS" />) so prejete iz naprave <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Zaznana naprava USB: <ph name="USB_DEVICE_NAME" /></translation>
 <translation id="3649138363871392317">Fotografija je bila posneta</translation>
 <translation id="3649505501900178324">Posodobitev bi že morali izvesti</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Prepoznavanje in izmet naprav za shranjevanje</translation>
 <translation id="4109135793348361820">Premakni okno uporabniku <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Prenos je končan: <ph name="FILE_NAME" />. Pritisnite Shift + F6, če želite krožiti do območja vrstice s prenosi.</translation>
+<translation id="4110686435123617899">Izberite album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Brskajte po spletu v visokokontrastnem načinu</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (brez povezave)</translation>
 <translation id="4115002065223188701">Omrežje zunaj dosega</translation>
@@ -2920,7 +2925,7 @@
 <translation id="4563210852471260509">Prvotni jezik vnosa je kitajščina</translation>
 <translation id="4563880231729913339">Prst 3</translation>
 <translation id="4565377596337484307">Skrij geslo</translation>
-<translation id="4565577809484439917">{NUM_DAYS,plural, =1{Domena <ph name="DOMAIN" /> zahteva, da varnostno kopirate podatke in vrnete to napravo <ph name="DEVICE_TYPE" /> še danes.}one{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}two{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}few{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}other{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}}</translation>
+<translation id="4565577809484439917">{NUM_DAYS,plural, =1{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> še danes.}one{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}two{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}few{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}other{<ph name="DOMAIN" /> zahteva, da naredite varnostno kopijo podatkov in vrnete to napravo <ph name="DEVICE_TYPE" /> pred rokom.}}</translation>
 <translation id="4565917129334815774">Shrani sistemske dnevnike</translation>
 <translation id="456717285308019641">Jezik strani za prevajanje</translation>
 <translation id="4567533462991917415">Po nastavitvi lahko dodate več ljudi. Vsak lahko individualno prilagodi svoj račun in poskrbi za zasebnost podatkov.</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Shrani stran &amp;kot ...</translation>
 <translation id="4785719467058219317">Varnostni ključ, ki ga uporabljate, ni registriran na tem spletnem mestu</translation>
 <translation id="4788092183367008521">Preverite omrežno povezavo in poskusite znova.</translation>
+<translation id="4791000909649665275">Fotografije (<ph name="NUMBER" />)</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Prijavite težavo ...</translation>
 <translation id="4794810983896241342">Posodobitve upravlja <ph name="BEGIN_LINK" />skrbnik<ph name="END_LINK" /></translation>
@@ -5355,7 +5361,7 @@
 <translation id="7643932971554933646">Dovolite spletnemu mestu ogled datotek?</translation>
 <translation id="7644543211198159466">Barva in tema</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (lastnik)</translation>
-<translation id="7645300866575922143">Dodaj mobilno omrežje</translation>
+<translation id="7645300866575922143">Dodaj mobilno povezavo</translation>
 <translation id="7645681574855902035">Preklic varnostnega kopiranja vsebnika za Linux</translation>
 <translation id="7646772052135772216">Sinhronizacija gesel ne deluje</translation>
 <translation id="7647403192093989392">Ni nedavnih dejavnosti</translation>
@@ -6186,7 +6192,7 @@
 <translation id="8648544143274677280"><ph name="SITE_NAME" /> želi: <ph name="FIRST_PERMISSION" />, <ph name="SECOND_PERMISSION" /> in drugo</translation>
 <translation id="8650543407998814195">Čeprav ne morete več dostopati do starega profila, ga lahko še vedno odstranite.</translation>
 <translation id="8651585100578802546">Vsili ponovno nalaganje te strani</translation>
-<translation id="8651940856056821914">Chrome samodejno ustvari podnapise s samodejnimi podnapisi (trenutno na voljo samo za angleščino)</translation>
+<translation id="8651940856056821914">Chrome samodejno ustvari podnapise (trenutno na voljo samo za angleščino)</translation>
 <translation id="8652400352452647993">Napaka pri pakiranju razširitve</translation>
 <translation id="8654151524613148204">Datoteka je prevelika in je računalnik ne more obdelati. Oprostite.</translation>
 <translation id="8655295600908251630">Kanal</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 4398888b..1a696fe 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Lägg till manuellt</translation>
 <translation id="1361655923249334273">Oanvänd</translation>
 <translation id="1361872463926621533">Spela upp ljud vid start</translation>
+<translation id="1362865166188278099">Mekaniskt fel. Kontrollera skrivaren</translation>
 <translation id="1363585519747660921">USB-skrivaren behöver konfigureras</translation>
 <translation id="1365180424462182382">Din <ph name="BEGIN_LINK" />webbläsare hanteras<ph name="END_LINK" /> av <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Kör Linux-verktyg, redigerare och IDE:er på <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Läs mer&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome har inte åtkomst till bilden.</translation>
 <translation id="2637400434494156704">Fel pinkod. Du har ett försök kvar.</translation>
 <translation id="2638662041295312666">Inloggningsbild</translation>
+<translation id="2640549051766135490">Detta album har markerats: <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Anslut till telefonen – dialogruta</translation>
 <translation id="2641065435954454414">Nedladdningen förbereds</translation>
 <translation id="2642111877055905627">Fotboll</translation>
@@ -1918,7 +1920,7 @@
 <translation id="3323295311852517824">{NUM_FILES,plural, =0{Det finns känsligt eller skadligt innehåll i denna data. Ta bort det och försök igen.}=1{Filen har känsligt eller skadligt innehåll. Ta bort det och försök igen.}other{Filerna har känsligt eller skadligt innehåll. Ta bort det och försök igen.}}</translation>
 <translation id="3323521181261657960">Bonus! Du har fått mer skärmtid</translation>
 <translation id="3325910708063135066">Kamera och mikrofon har inaktiverats i systeminställningarna för Mac.</translation>
-<translation id="3328489342742826322">Om du återställer från säkerhetskopia raderas befintliga Linux-program och all data i mappen för Linux-filer.</translation>
+<translation id="3328489342742826322">Om du återställer från en säkerhetskopia raderas befintliga Linux-program och all data i mappen för Linux-filer.</translation>
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Appinformation</translation>
 <translation id="3333190335304955291">Du kan inaktivera den här tjänsten i Inställningar.</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Avgränsare</translation>
 <translation id="338691029516748599">Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> %, hanteras av administratören, anslut</translation>
 <translation id="3387614642886316601">Använd förbättrad stavningskontroll</translation>
+<translation id="3388094447051599208">Utmatningsfacket är nästan fullt</translation>
 <translation id="3388788256054548012">Den här filen är krypterad. Be ägaren att dekryptera den.</translation>
 <translation id="3390013585654699824">Information om appen</translation>
 <translation id="3390741581549395454">Säkerhetskopieringen av Linux-appar och Linux-filer är klar. Uppgraderingen startar snart.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI- och USB Type-C-portar kan inte användas till video och dockningsstation samtidigt. Använd en annan videoport.</translation>
 <translation id="3473241910002674503">Navigera till startsidan, tillbaka och byt appar med knappar i surfplatteläget.</translation>
 <translation id="3473479545200714844">Skärmförstorare</translation>
+<translation id="347394413229268704">Läs senare</translation>
 <translation id="3475843873335999118">Fingeravtrycket känns fortfarande inte igen. Ange ditt lösenord.</translation>
 <translation id="3476303763173086583">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. Ägaren har gjort denna <ph name="BEGIN_LINK1" />inställning<ph name="END_LINK1" /> obligatorisk. Ägaren kan ange att diagnostik- och användningsdata om den här enheten ska skickas till Google. Om ytterligare webb- och appaktivitet har aktiverats för ditt barn kan denna data sparas i Google-kontot. <ph name="BEGIN_LINK2" />Läs mer<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Hoppsan! Det gick inte att hämta enhetsprincipen.</translation>
@@ -2187,7 +2191,7 @@
 <translation id="3650753875413052677">Registreringsfel</translation>
 <translation id="3650845953328929506">Uppladdning av loggfil väntar.</translation>
 <translation id="3650952250015018111">Ge ”<ph name="APP_NAME" />” åtkomstbehörighet till:</translation>
-<translation id="3651488188562686558">Koppla från Wi-Fi</translation>
+<translation id="3651488188562686558">Enheten kopplas från Wi-Fi</translation>
 <translation id="3651952061994655768">Byt namn</translation>
 <translation id="3652817283076144888">Initierar</translation>
 <translation id="3653160965917900914">Filresurser i nätverk</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Identifiera och mata ut lagringsenheter</translation>
 <translation id="4109135793348361820">Flytta fönster till <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Nedladdningen är klar: <ph name="FILE_NAME" />. Stega till nedladdningsfältet med Skift+F6.</translation>
+<translation id="4110686435123617899">Välj detta album: <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Surfa på webben i högkontrastläge</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (offline)</translation>
 <translation id="4115002065223188701">Nätverket är utanför räckvidden</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Spara sida som...</translation>
 <translation id="4785719467058219317">Säkerhetsnyckeln som du använder är inte registrerad på den här webbplatsen</translation>
 <translation id="4788092183367008521">Kontrollera nätverksanslutningen och försök igen.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> foto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Rapportera ett problem...</translation>
 <translation id="4794810983896241342">Uppdateringar hanteras av <ph name="BEGIN_LINK" />administratören<ph name="END_LINK" /></translation>
@@ -3868,7 +3874,7 @@
 <translation id="5772114492540073460">Med <ph name="PARALLELS_NAME" /> kan du köra Windows®-appar på Chromebook. Minst <ph name="MINIMUM_SPACE" /> ledigt utrymme rekommenderas för installationen.</translation>
 <translation id="5772265531560382923">{NUM_PAGES,plural, =1{Du kan vänta och se om sidan svarar eller lämna den.}other{Du kan vänta och se om sidorna svarar eller lämna dem.}}</translation>
 <translation id="577322787686508614">Läsbehörigheten för åtgärden saknas på: <ph name="DEVICE_NAME" />.</translation>
-<translation id="5774295353725270860">Appen Öppna filer</translation>
+<translation id="5774295353725270860">Öppna appen Filer</translation>
 <translation id="577624874850706961">Sök efter cookies</translation>
 <translation id="5777468213129569553">Öppna Chrome</translation>
 <translation id="5778747455497889540">Nedan visas det slumpmässigt genererade lösenordet för den säkra modulen som har tilldelats din dator:</translation>
@@ -5413,7 +5419,7 @@
 <translation id="7705276765467986571">Det gick inte att läsa in bokmärkesmodellen.</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7707108266051544351">Den här webbplatsen har blockerats från att använda rörelsesensorerna.</translation>
-<translation id="7707922173985738739">Använd mobildata</translation>
+<translation id="7707922173985738739">Mobildata används</translation>
 <translation id="7709152031285164251">Misslyckades – <ph name="INTERRUPT_REASON" /></translation>
 <translation id="7710568461918838723">&amp;Casta …</translation>
 <translation id="7712836429117959503">Okänt tillägg med id <ph name="EXTENSION_ID" /></translation>
@@ -5583,7 +5589,7 @@
 <translation id="7893153962594818789">Bluetooth är inaktiverat på <ph name="DEVICE_TYPE" />. Ange lösenordet och aktivera Bluetooth.</translation>
 <translation id="7893393459573308604"><ph name="ENGINE_NAME" /> (Standard)</translation>
 <translation id="7897865097438730075">Stödet för Google Cloud Print upphör den 31 december. Kontakta administratören.</translation>
-<translation id="7897900149154324287">Tänk på att mata ut löstagbara enheter i appen Arkiv innan du kopplar loss dem. Annars kan det hända att data förloras.</translation>
+<translation id="7897900149154324287">Tänk på att mata ut löstagbara enheter i appen Filer innan du kopplar loss dem. Annars kan det hända att data förloras.</translation>
 <translation id="7898627924844766532">Spara i verktygsfältet</translation>
 <translation id="7898725031477653577">Översätt alltid</translation>
 <translation id="790040513076446191">Ändra sekretessrelaterade inställningar</translation>
@@ -6101,7 +6107,7 @@
 <translation id="8545575359873600875">Det gick inte att verifiera lösenordet. Den som hanterar denna kontrollerade användare kan ha ändrat lösenordet nyligen. I så fall kommer det nya lösenordet att börja gälla nästa gång du loggar in. Testa med det gamla lösenordet.</translation>
 <translation id="8546186510985480118">Enheten har ont om diskutrymme</translation>
 <translation id="8546306075665861288">Cacheminne för bilder</translation>
-<translation id="854655314928502177">Webbadress för automatisk identifiering av webbproxy</translation>
+<translation id="854655314928502177">Webbadress för automatisk identifiering av webbproxy:</translation>
 <translation id="8546930481464505581">Anpassa pekfältet</translation>
 <translation id="8547013269961688403">Aktivera helskärmsförstorare</translation>
 <translation id="85486688517848470">Håll ned söktangenten om du vill ändra funktionen för tangenterna på översta raden</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 111849d..bfbac6e 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">கைமுறையாகச் சேர்</translation>
 <translation id="1361655923249334273">பயன்படுத்தாத</translation>
 <translation id="1361872463926621533">தொடக்கத்தில் ஒலியை இயக்கு</translation>
+<translation id="1362865166188278099">இயந்திரக் கோளாறு. பிரிண்டரைச் சரிபார்க்கவும்</translation>
 <translation id="1363585519747660921">USB பிரிண்டரை உள்ளமைக்க வேண்டும்</translation>
 <translation id="1365180424462182382">உங்கள் <ph name="BEGIN_LINK" />உலாவியை நிர்வகிப்பது<ph name="END_LINK" />: <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">உங்கள் <ph name="DEVICE_TYPE" /> சாதனத்தில் Linux கருவிகள், எடிட்டர்கள், IDEகள் போன்றவற்றை இயக்கும். &lt;a target="_blank" href="<ph name="URL" />"&gt;மேலும் அறிக&lt;/a&gt;</translation>
@@ -321,7 +322,7 @@
 <translation id="1380028686461971526">நெட்வொர்க்குடன் தானாக இணை</translation>
 <translation id="1380436189840894976">எனினும் மறைநிலைப் பயன்முறையை மூடவா?</translation>
 <translation id="1383861834909034572">முடித்ததும் திறக்கிறது</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1386387014181100145">நலமா.</translation>
 <translation id="1386791642444521222">SIMமை இயக்குதல்</translation>
 <translation id="138784436342154190">இயல்புத் துவக்கப் பக்கத்தை மீட்டமைக்கவா?</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chromeமால் படத்தை அணுக முடியவில்லை.</translation>
 <translation id="2637400434494156704">தவறான பின். இன்னும் ஒருமுறை முயலலாம்.</translation>
 <translation id="2638662041295312666">உள்நுழைவுப் படம்</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> ஆல்பம் தேர்ந்தெடுக்கப்பட்டது</translation>
 <translation id="264083724974021997">உங்கள் மொபைலுடன் இணைக்கவும் - உரையாடல்</translation>
 <translation id="2641065435954454414">பதிவிறக்கத் தயார்படுத்துகிறது</translation>
 <translation id="2642111877055905627">கால்பந்து</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">பிரிப்பான்</translation>
 <translation id="338691029516748599">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />%, உங்கள் நிர்வாகி நிர்வகிக்கிறார், இணை</translation>
 <translation id="3387614642886316601">'மேம்பட்ட எழுத்துப் பிழை சரிபார்க்கும்' அம்சத்தைப் பயன்படுத்து</translation>
+<translation id="3388094447051599208">பிரிண்ட் வெளியே வரும் டிரே கிட்டத்தட்ட நிரம்பிவிட்டது</translation>
 <translation id="3388788256054548012">இந்தக் கோப்பு என்க்ரிப்ஷன் செய்யப்பட்டுள்ளது. டீக்ரிப்ட் செய்யுமாறு அதன் உரிமையாளரிடம் கேட்கவும்.</translation>
 <translation id="3390013585654699824">ஆப்ஸ் விவரங்கள்</translation>
 <translation id="3390741581549395454">Linux ஆப்ஸும் கோப்புகளும் காப்புப் பிரதி எடுக்கப்பட்டன. மேம்படுத்தல் விரைவில் துவங்கும்.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">வீடியோவைக் காட்சிப்படுத்துவதற்கு HDMI மற்றும் USB டைப்-சி போர்ட்டுகளை ஒரே நேரத்தில் பயன்படுத்த இயலாது. வேறொரு வீடியோ போர்ட்டைப் பயன்படுத்தவும்.</translation>
 <translation id="3473241910002674503">டேப்லெட் பயன்முறையில் பட்டன்களைப் பயன்படுத்தி முகப்பிற்குச் செல்லலாம், பின்செல்லலாம், ஆப்ஸுக்கு இடையே மாறலாம்.</translation>
 <translation id="3473479545200714844">திரை உருப்பெருக்கி</translation>
+<translation id="347394413229268704">பின்னர் படிக்கலாம்</translation>
 <translation id="3475843873335999118">உங்கள் கைரேகையை இன்னும் அடையாளங்காண முடியவில்லை. கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="3476303763173086583">உபயோகம் &amp; கண்டறிதல் தரவை அனுப்புக. கண்டறிதல் தரவு, சாதனம் மற்றும் ஆப்ஸ் உபயோகத் தரவு போன்றவற்றை Googleளுக்குத் தானாக அனுப்புவதன் மூலம் உங்கள் பிள்ளையின் Android அனுபவத்தை மேம்படுத்த உதவுக. இது உங்கள் பிள்ளையை அடையாளம் கண்டறியப் பயன்படுத்தப்படாது, இது சிஸ்டம் மற்றும் ஆப்ஸின் நிலைத்தன்மையை மேம்படுத்தவும் பிற மேம்பாடுகளைச் செய்யவும் உதவும். ஒருங்கிணைக்கப்பட்ட சில தரவுகள், Google ஆப்ஸ் மற்றும் Android டெவெலப்பர்கள் போன்ற கூட்டாளர்களுக்கும் உதவும். உரிமையாளர் இந்த <ph name="BEGIN_LINK1" />அமைப்பைச்<ph name="END_LINK1" /> செயல்படுத்தியுள்ளார். உரிமையாளர் இந்தச் சாதனத்தின் கண்டறிதல் தரவையும் உபயோகத் தரவையும் Googleளுக்கு அனுப்புவதற்குத் தேர்வுசெய்யலாம். உங்கள் பிள்ளையின் கணக்கில் கூடுதல் ’இணையம் &amp; ஆப்ஸ் செயல்பாடு’ அமைப்பு இயக்கப்பட்டிருந்தால், இந்தத் தரவு அவரது Google கணக்கில் சேமிக்கப்படலாம். <ph name="BEGIN_LINK2" />மேலும் அறிக<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">அச்சச்சோ!  உங்கள் சாதனத்திற்கான கொள்கையைப் பெற முடியவில்லை.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">சேமிப்பகச் சாதனங்களைக் கண்டறிந்து, வெளியேற்றுதல்</translation>
 <translation id="4109135793348361820"><ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) க்குச் சாளரத்தை நகர்த்து</translation>
 <translation id="4110490973560452005">பதிவிறக்கம் முடிந்தது: <ph name="FILE_NAME" />. பதிவிறக்கங்கள் பட்டிப் பகுதிக்குச் சுழற்ற, Shift+F6 விசைகளை அழுத்தவும்.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> ஆல்பத்தைத் தேர்வுசெய்யும்</translation>
 <translation id="4110895898888439383">அதிக ஒளி மாறுபாட்டுப் பயன்முறையில் இணையத்தில் உலாவுதல்</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ஆஃப்லைன்)</translation>
 <translation id="4115002065223188701">நெட்வொர்க் தொடர்பு எல்லைக்கு வெளியே உள்ளது</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">பக்கத்தை இவ்வாறு சேமி...</translation>
 <translation id="4785719467058219317">இந்த இணையதளத்தில் பதிவுசெய்யப்படாத பாதுகாப்பு விசையைப் பயன்படுத்துகிறீர்கள்</translation>
 <translation id="4788092183367008521">நெட்வொர்க் இணைப்பைச் சரிபார்த்து, மீண்டும் முயலவும்.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> படம்</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;சிக்கலைப் புகார் செய்க...</translation>
 <translation id="4794810983896241342">புதுப்பிப்புகள் <ph name="BEGIN_LINK" />உங்கள் நிர்வாகியால்<ph name="END_LINK" /> நிர்வகிக்கப்படுகின்றன</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index a275df3..1019382 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">మాన్యువల్‌గా జోడించండి</translation>
 <translation id="1361655923249334273">ఉపయోగించనిది</translation>
 <translation id="1361872463926621533">ప్రారంభంలో ధ్వనిని ప్లే చేయండి</translation>
+<translation id="1362865166188278099">మెషీన్‌లో సమస్య. ప్రింటర్‌ను తనిఖీ చేయండి</translation>
 <translation id="1363585519747660921">USB ప్రింటర్ కోసం తప్పక కాన్ఫిగర్ చేయాలి</translation>
 <translation id="1365180424462182382">మీ <ph name="BEGIN_LINK" />బ్రౌజర్ నిర్వహణ<ph name="END_LINK" /> <ph name="ENROLLMENT_DOMAIN" /> ద్వారా చేయబడుతోంది</translation>
 <translation id="1366177842110999534">మీ <ph name="DEVICE_TYPE" />లో Linux సాధనాలు, ఎడిటర్‌లు, IDEలను అమలు చేయండి. &lt;a target="_blank" href="<ph name="URL" />"&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
@@ -321,7 +322,7 @@
 <translation id="1380028686461971526">నెట్‌వర్క్‌కు ఆటోమేటిక్‌గా కనెక్ట్ చేయడం</translation>
 <translation id="1380436189840894976">ఏదేమైనా అజ్ఞాత మోడ్ నుండి నిష్క్రమించాలా?</translation>
 <translation id="1383861834909034572">పూర్తి అయిన తర్వాత తెరవబడుతుంది</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1386387014181100145">హాయ్.</translation>
 <translation id="1386791642444521222">ఫిజికల్ SIMని యాక్టివేట్ చేయండి</translation>
 <translation id="138784436342154190">డిఫాల్ట్ ప్రారంభ పేజీని పునరుద్ధరించాలా?</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">చిత్రాన్ని Chrome యాక్సెస్ చేయడం సాధ్యపడదు.</translation>
 <translation id="2637400434494156704">పిన్ తప్పు. మీకు 1 ప్రయత్నం మిగిలి ఉంది.</translation>
 <translation id="2638662041295312666">సైన్ ఇన్ ఇమేజ్</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> ఆల్బమ్ ఎంచుకోబడింది</translation>
 <translation id="264083724974021997">మీ ఫోన్‌కు కనెక్ట్ చేయండి - డైలాగ్</translation>
 <translation id="2641065435954454414">డౌన్‌లోడ్‌ను సిద్ధం చేస్తోంది</translation>
 <translation id="2642111877055905627">సాకర్ బంతి</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">విభాగిని</translation>
 <translation id="338691029516748599"><ph name="NETWORK_COUNT" />లో <ph name="NETWORK_INDEX" /> నెట్‌వర్క్, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, సిగ్నల్ సామర్థ్యం <ph name="SIGNAL_STRENGTH" />%, మీ అడ్మినిస్ట్రేటర్ ద్వారా నిర్వహించబడుతోంది, కనెక్ట్ చేయండి</translation>
 <translation id="3387614642886316601">మెరుగైన స్పెల్ చెక్‌ను ఉపయోగించు</translation>
+<translation id="3388094447051599208">అవుట్‌పుట్ ట్రే దాదాపు నిండింది</translation>
 <translation id="3388788256054548012">ఈ ఫైల్ ఎన్‌క్రిప్ట్ చేయబడింది. డీక్రిప్ట్ చేయమని ఫైల్ యజమానిని అడగండి.</translation>
 <translation id="3390013585654699824">యాప్ వివరాలు</translation>
 <translation id="3390741581549395454">Linux యాప్‌లు, ఫైల్‌లు విజయవంతంగా బ్యాకప్ చేయబడ్డాయి. అప్‌గ్రేడ్ కాసేపట్లో మొదలవుతుంది.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">వీడియో కోసం HDMIని, USB రకం-C పోర్ట్‌లను ఒకే సమయంలో ఉపయోగించకూడదు. వేరే వీడియో పోర్ట్‌ను ఉపయోగించండి.</translation>
 <translation id="3473241910002674503">టాబ్లెట్ మోడ్‌లో బటన్‌లతో హోమ్, వెనుకకు, స్విచ్ యాప్‌లను నావిగేట్ చేయండి.</translation>
 <translation id="3473479545200714844">స్క్రీన్ మాగ్నిఫైయర్</translation>
+<translation id="347394413229268704">తర్వాత చదవండి</translation>
 <translation id="3475843873335999118">క్షమించండి, మీ వేలిముద్ర ఇప్పటికీ గుర్తించబడలేదు. దయచేసి మీ పాస్‌వర్డ్‌ను నమోదు చేయండి.</translation>
 <translation id="3476303763173086583">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. సమస్య విశ్లేషణ, పరికరం, యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకి పంపడం ద్వారా మీ చిన్నారి Android అనుభవాన్ని మెరుగుపరచడంలో సహాయపడండి. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ <ph name="BEGIN_LINK1" />సెట్టింగ్‌<ph name="END_LINK1" />ని యజమాని అమలు చేసారు. ఈ పరికరానికి సంబంధించిన విశ్లేషణ, వినియోగ డేటాను Googleకి పంపేలా యజమాని ఎంచుకోవచ్చు. మీ చిన్నారి కోసం అదనపు వెబ్ &amp; యాప్ కార్యకలాపం సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">అయ్యో! మీ పరికరానికి సంబంధించిన విధానాన్ని పొందడంలో సిస్టమ్ విఫలమైంది.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">నిల్వ డివైజ్‌లను గుర్తించి, తొలగించండి</translation>
 <translation id="4109135793348361820">విండోను <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)కు తరలించు</translation>
 <translation id="4110490973560452005">డౌన్‌లోడ్ పూర్తయింది: <ph name="FILE_NAME" />. డౌన్‌లోడ్‌ల బార్ ప్రాంతంలోకి వెళ్లడం కోసం Shift+F6 నొక్కండి.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> ఆల్బమ్‌ను ఎంచుకోండి</translation>
 <translation id="4110895898888439383">అధిక కాంట్రాస్ట్ మోడ్‌లో వెబ్‌ను బ్రౌజ్ చేయండి</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ఆఫ్‌లైన్)</translation>
 <translation id="4115002065223188701">నెట్‌వర్క్ అందుబాటులో లేదు</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">ఇలా పేజీని సేవ్ చేయి...</translation>
 <translation id="4785719467058219317">మీరు ఈ వెబ్‌సైట్‌తో నమోదు కాని సెక్యూరిటీ కీని ఉపయోగిస్తున్నారు</translation>
 <translation id="4788092183367008521">దయచేసి మీ నెట్‌వర్క్ కనెక్షన్‌ను తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ఫోటో</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;ఒక సమస్యను నివేదించండి...</translation>
 <translation id="4794810983896241342">అప్‌డేట్‌లను <ph name="BEGIN_LINK" />మీ అడ్మినిస్ట్రేటర్<ph name="END_LINK" /> మేనేజ్ చేస్తారు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 6bd1350..02171f22 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">เพิ่มด้วยตนเอง</translation>
 <translation id="1361655923249334273">ไม่ได้ใช้</translation>
 <translation id="1361872463926621533">เปิดเสียงเมื่อเริ่มใช้</translation>
+<translation id="1362865166188278099">ปัญหาด้านกลไก ตรวจสอบเครื่องพิมพ์</translation>
 <translation id="1363585519747660921">เครื่องพิมพ์ USB ต้องการการกำหนดค่า</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />เบราว์เซอร์ของคุณได้รับการจัดการ<ph name="END_LINK" />โดย <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">เรียกใช้เครื่องมือ ตัวแก้ไข และ IDE สำหรับ Linux ใน <ph name="DEVICE_TYPE" /> &lt;a target="_blank" href="<ph name="URL" />"&gt;ดูข้อมูลเพิ่มเติม&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome ไม่สามารถเข้าถึงภาพ</translation>
 <translation id="2637400434494156704">PIN ไม่ถูกต้อง คุณป้อน PIN ได้อีก 1 ครั้ง</translation>
 <translation id="2638662041295312666">รูปภาพการลงชื่อเข้าใช้</translation>
+<translation id="2640549051766135490">เลือกอัลบั้ม <ph name="TITLE" /> <ph name="DESC" /> อยู่</translation>
 <translation id="264083724974021997">เชื่อมต่อโทรศัพท์ของคุณ - กล่องโต้ตอบ</translation>
 <translation id="2641065435954454414">กำลังเตรียมการดาวน์โหลด</translation>
 <translation id="2642111877055905627">ลูกฟุตบอล</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">ตัวแยก</translation>
 <translation id="338691029516748599">เครือข่ายที่ <ph name="NETWORK_INDEX" /> จาก <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />%, จัดการโดยผู้ดูแลระบบ, เชื่อมต่อ</translation>
 <translation id="3387614642886316601">ใช้ฟีเจอร์ตรวจตัวสะกดที่ได้รับการปรับปรุง</translation>
+<translation id="3388094447051599208">ถาดกระดาษออกใกล้เต็มแล้ว</translation>
 <translation id="3388788256054548012">ไฟล์นี้มีการเข้ารหัส ขอให้เจ้าของไฟล์ถอดรหัส</translation>
 <translation id="3390013585654699824">รายละเอียดแอป</translation>
 <translation id="3390741581549395454">สำรองข้อมูลแอปและไฟล์ Linux เรียบร้อยแล้ว การอัปเกรดจะเริ่มในไม่ช้า</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">ใช้พอร์ต HDMI และ USB Type-C สำหรับวิดีโอพร้อมกันไม่ได้ โปรดใช้พอร์ตวิดีโออื่น</translation>
 <translation id="3473241910002674503">ไปยังหน้าแรก ย้อนกลับ และสลับแอปด้วยปุ่มในโหมดแท็บเล็ต</translation>
 <translation id="3473479545200714844">แว่นขยายหน้าจอ</translation>
+<translation id="347394413229268704">อ่านภายหลัง</translation>
 <translation id="3475843873335999118">ขออภัย ระบบยังคงไม่รู้จักลายนิ้วมือของคุณ โปรดป้อนรหัสผ่าน</translation>
 <translation id="3476303763173086583">ส่งข้อมูลการใช้งานและการวินิจฉัย ช่วยปรับปรุงประสบการณ์การใช้งาน Android ของบุตรหลานให้ดีขึ้นด้วยการส่งข้อมูลการวินิจฉัย อุปกรณ์ และการใช้งานแอปไปยัง Google โดยอัตโนมัติ โดยจะไม่มีการใช้ข้อมูลนี้ในการระบุชื่อบุตรหลานของคุณ และจะช่วยปรับปรุงความเสถียรของแอปและระบบ และอื่นๆ ข้อมูลที่รวบรวมมาบางส่วนจะมีประโยชน์ต่อแอปและพาร์ทเนอร์ของ Google ด้วย เช่น นักพัฒนาซอฟต์แวร์ Android เจ้าของเป็นผู้บังคับใช้<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" />นี้ เจ้าของอาจเลือกที่จะส่งข้อมูลการวินิจฉัยและการใช้งานสำหรับอุปกรณ์นี้ไปยัง Google หากเปิดการตั้งค่ากิจกรรมเพิ่มเติมบนเว็บและแอปสำหรับบุตรหลาน ระบบอาจบันทึกข้อมูลนี้ไว้ในบัญชี Google ของบุตรหลาน <ph name="BEGIN_LINK2" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">อ๊ะ! ระบบไม่สามารถดึงข้อมูลนโยบายจากอุปกรณ์</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">ระบุและยกเลิกการต่อเชื่อมอุปกรณ์จัดเก็บข้อมูล</translation>
 <translation id="4109135793348361820">ย้ายหน้าต่างไปยัง <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">ดาวน์โหลดเสร็จสมบูรณ์: <ph name="FILE_NAME" /> กด Shift+F6 เพื่อวนกลับไปยังบริเวณแถบดาวน์โหลด</translation>
+<translation id="4110686435123617899">เลือกอัลบั้ม <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">ท่องเว็บในโหมดคอนทราสต์สูง</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (ออฟไลน์)</translation>
 <translation id="4115002065223188701">เครือข่ายอยู่นอกช่วงสัญญาณ</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">บันทึกหน้าเป็น...</translation>
 <translation id="4785719467058219317">คุณกำลังใช้คีย์ความปลอดภัยที่ไม่ได้ลงทะเบียนกับเว็บไซต์นี้</translation>
 <translation id="4788092183367008521">โปรดตรวจสอบการเชื่อมต่อเครือข่ายแล้วลองอีกครั้ง</translation>
+<translation id="4791000909649665275">รูปภาพ <ph name="NUMBER" /> รูป</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;รายงานปัญหา...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />ผู้ดูแลระบบของคุณ<ph name="END_LINK" />เป็นผู้จัดการการอัปเดตต่างๆ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 14d01d5..20910c29 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Manuel Olarak Ekle</translation>
 <translation id="1361655923249334273">Kullanılmıyor</translation>
 <translation id="1361872463926621533">Başlangıçta ses çal</translation>
+<translation id="1362865166188278099">Mekanik sorun. Yazıcıyı kontrol edin</translation>
 <translation id="1363585519747660921">USB yazıcının yapılandırılması gerekiyor</translation>
 <translation id="1365180424462182382"><ph name="BEGIN_LINK" />Tarayıcınız<ph name="END_LINK" />, <ph name="ENROLLMENT_DOMAIN" /> tarafından yönetilmektedir</translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" /> cihazınızda Linux araçlarını, düzenleyicilerini ve IDE'lerini çalıştırın. &lt;a target="_blank" href="<ph name="URL" />"&gt;Daha fazla bilgi&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome resme erişemiyor.</translation>
 <translation id="2637400434494156704">Yanlış PIN. Tek bir deneme hakkınız kaldı.</translation>
 <translation id="2638662041295312666">Oturum açma resmi</translation>
+<translation id="2640549051766135490"><ph name="TITLE" /> <ph name="DESC" /> albümü seçildi</translation>
 <translation id="264083724974021997">Telefonunuza bağlama - İletişim kutusu</translation>
 <translation id="2641065435954454414">İndirme işlemi hazırlanıyor</translation>
 <translation id="2642111877055905627">Futbol topu</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Ayırıcı</translation>
 <translation id="338691029516748599">Ağ <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, %<ph name="SIGNAL_STRENGTH" /> Sinyal Gücü, Yöneticiniz tarafından yönetiliyor, Bağlan</translation>
 <translation id="3387614642886316601">Gelişmiş yazım denetimini kullan</translation>
+<translation id="3388094447051599208">Çıkış tepsisi neredeyse dolu</translation>
 <translation id="3388788256054548012">Bu dosya şifrelenmiş. Dosyanın sahibinden şifreyi çözmesini isteyin.</translation>
 <translation id="3390013585654699824">Uygulama ayrıntıları</translation>
 <translation id="3390741581549395454">Linux uygulamaları ve dosyaları başarıyla yedeklendi. Yeni sürüme geçirme işlemi birazdan başlayacak.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">HDMI ve USB Type-C bağlantı noktası video için aynı anda kullanılamaz. Farklı bir video bağlantı noktası kullanın.</translation>
 <translation id="3473241910002674503">Tablet modunda düğmelerle ana ekrana gidin, geri dönün ve uygulamalar arasında geçiş yapın.</translation>
 <translation id="3473479545200714844">Ekran büyüteci</translation>
+<translation id="347394413229268704">Daha sonra oku</translation>
 <translation id="3475843873335999118">Maalesef parmak iziniz hâlâ tanınamadı. Lütfen şifrenizi girin.</translation>
 <translation id="3476303763173086583">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. Bu <ph name="BEGIN_LINK1" />ayar<ph name="END_LINK1" />, cihazın sahibi tarafından zorunlu kılınmıştır. Cihazın sahibi bu cihazın teşhis ve kullanım verilerini Google'a göndermeyi seçebilir. Çocuğunuz için ek Web ve Uygulama Etkinliği açıksa bu veriler çocuğunuzun Google hesabına kaydedilebilir. <ph name="BEGIN_LINK2" />Daha Fazla Bilgi<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Hay aksi! Sistem, cihazınıza ait politikayı getiremedi.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Depolama cihazlarını tanımlama ve çıkarma</translation>
 <translation id="4109135793348361820">Pencereyi <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) kullanıcısına taşı</translation>
 <translation id="4110490973560452005">İndirme işlemi tamamlandı: <ph name="FILE_NAME" />. İndirme çubuğu alanına gitmek için Üst Karakter+F6 tuşlarına basın.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> albümünü seçin</translation>
 <translation id="4110895898888439383">Web'e yüksek karşıtlık modunda göz atın</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (çevrimdışı)</translation>
 <translation id="4115002065223188701">Ağ, kapsama alanı dışında</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Sayfayı Farklı Kaydet...</translation>
 <translation id="4785719467058219317">Bu web sitesine kaydettirilmemiş bir anahtar kullanıyorsunuz</translation>
 <translation id="4788092183367008521">Lütfen ağ bağlantınızı kontrol edin ve tekrar deneyin.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> fotoğraf</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Sorun Bildirin...</translation>
 <translation id="4794810983896241342">Güncellemeler <ph name="BEGIN_LINK" />yöneticiniz<ph name="END_LINK" /> tarafından yönetilmektedir</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 9cebf62..f55b63f 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Додати вручну</translation>
 <translation id="1361655923249334273">Не використаний</translation>
 <translation id="1361872463926621533">Відтворювати звук під час запуску</translation>
+<translation id="1362865166188278099">Механічна помилка. Перевірте принтер</translation>
 <translation id="1363585519747660921">USB-принтер потрібно налаштувати</translation>
 <translation id="1365180424462182382">Вашим <ph name="BEGIN_LINK" />веб-переглядачем керує<ph name="END_LINK" /> домен <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="1366177842110999534">Користуйтесь інструментами, редакторами й ІСР Linux на <ph name="DEVICE_TYPE" />. &lt;a target="_blank" href="<ph name="URL" />"&gt;Докладніше&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome не може отримати доступ до зображення.</translation>
 <translation id="2637400434494156704">Неправильний PIN-код. У вас залишилася одна спроба.</translation>
 <translation id="2638662041295312666">Зображення облікового запису</translation>
+<translation id="2640549051766135490">Вибрано альбом "<ph name="TITLE" />" з описом "<ph name="DESC" />"</translation>
 <translation id="264083724974021997">Підключіться до телефона – діалогове вікно</translation>
 <translation id="2641065435954454414">Підготовка завантаження</translation>
 <translation id="2642111877055905627">Футбольний м’яч</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Розділювач</translation>
 <translation id="338691029516748599">Мережа <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, рівень сигналу – <ph name="SIGNAL_STRENGTH" />%. Мережею керує адміністратор. Підключитися</translation>
 <translation id="3387614642886316601">Використовувати покращену перевірку орфографії</translation>
+<translation id="3388094447051599208">Вихідний лоток майже заповнено</translation>
 <translation id="3388788256054548012">Цей файл зашифровано. Попросіть власника файлу розшифрувати його.</translation>
 <translation id="3390013585654699824">Дані про додаток</translation>
 <translation id="3390741581549395454">Створено резервні копії додатків і файлів Linux. Оновлення почнеться незабаром.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Порти HDMI та USB Type-C не можна використовувати для відео одночасно. Скористайтесь іншим відеопортом.</translation>
 <translation id="3473241910002674503">Переходьте на головну сторінку й назад і перемикайте додатки за допомогою кнопок у режимі планшета.</translation>
 <translation id="3473479545200714844">Лупа</translation>
+<translation id="347394413229268704">Читати пізніше</translation>
 <translation id="3475843873335999118">Не вдається розпізнати ваш відбиток пальця. Введіть пароль.</translation>
 <translation id="3476303763173086583">Надсилати дані про використання й діагностику. Допоможіть покращити роботу Android для вашої дитини, автоматично надсилаючи в Google дані про діагностику та використання пристрою і додатків. Ця інформація не використовуватиметься для встановлення особи вашої дитини, а допоможе покращити стабільність системи, додатків тощо. Деякі зведені дані також корисні для додатків і партнерів Google, як-от розробників Android. Це <ph name="BEGIN_LINK1" />налаштування<ph name="END_LINK1" /> застосовує власник. Власник може ввімкнути надсилання в Google даних про діагностику й використання цього пристрою. Якщо ввімкнено додаткову Історію додатків і веб-пошуку, ці дані зберігаються в обліковому записі Google дитини. <ph name="BEGIN_LINK2" />Докладніше<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">На жаль, системі не вдалось отримати правило для вашого пристрою.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Виявляти й вилучати пристрої пам’яті</translation>
 <translation id="4109135793348361820">Перемістити вікно на робочий стіл користувача <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Завантажено: <ph name="FILE_NAME" />. Натисніть Shift+F6, щоб перейти на панель завантажень.</translation>
+<translation id="4110686435123617899">Вибрати альбом "<ph name="TITLE" />" з описом "<ph name="DESC" />"</translation>
 <translation id="4110895898888439383">Переглядати сторінки в режимі високого контрасту</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (офлайн)</translation>
 <translation id="4115002065223188701">Мережа недосяжна</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Зберегти сторінку як...</translation>
 <translation id="4785719467058219317">Ви використовуєте ключ безпеки, не зареєстрований на цьому веб-сайті</translation>
 <translation id="4788092183367008521">Перевірте з’єднання з мережею та повторіть спробу.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> фото</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Повідомити про проблему...</translation>
 <translation id="4794810983896241342">Оновленнями керує <ph name="BEGIN_LINK" />адміністратор<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 8986d75..fd989ca 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -308,6 +308,7 @@
 <translation id="1361164813881551742">O‘zingiz qo‘shing</translation>
 <translation id="1361655923249334273">Foydalanilmayapti</translation>
 <translation id="1361872463926621533">Ochilganda tovush ijro etish</translation>
+<translation id="1362865166188278099">Mexanik muammo. Printerni tekshirish</translation>
 <translation id="1363585519747660921">USB printer sozlanishi kerak</translation>
 <translation id="1365180424462182382">Brauzeringiz <ph name="ENROLLMENT_DOMAIN" /> <ph name="BEGIN_LINK" />domenida boshqariladi<ph name="END_LINK" /></translation>
 <translation id="1366177842110999534"><ph name="DEVICE_TYPE" /> qurilmangizda Linux va dasturlash vositalari, tahrirlash dasturlarini ishga tushiring. &lt;a target=“_blank” href=”<ph name="URL" />“&gt;Batafsil&lt;/a&gt;</translation>
@@ -1371,6 +1372,7 @@
 <translation id="2636625531157955190">Chrome rasmni ko‘ra olmadi.</translation>
 <translation id="2637400434494156704">PIN kod xato. Yana bir marta urinishingiz mumkin.</translation>
 <translation id="2638662041295312666">Kirish sahifasidagi rasm</translation>
+<translation id="2640549051766135490">Albom: <ph name="TITLE" /> <ph name="DESC" /> tanlandi</translation>
 <translation id="264083724974021997">Telefonga ulanish – muloqot oynasi</translation>
 <translation id="2641065435954454414">Yuklab olishga tayyorlanmoqda</translation>
 <translation id="2642111877055905627">Futbol to‘pi</translation>
@@ -1956,6 +1958,7 @@
 <translation id="338583716107319301">Ajratuvchi</translation>
 <translation id="338691029516748599">Tarmoq: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, Nomi: <ph name="NETWORK_NAME" />, Himoya: <ph name="SECURITY_STATUS" />, Signal darajasi: <ph name="SIGNAL_STRENGTH" />%, Administrator boshqaruvida, Ulanish</translation>
 <translation id="3387614642886316601">Kengaytirilgan imlo tekshiruvini ishlatish</translation>
+<translation id="3388094447051599208">Chiquvchi tarnov deyarli toʻla</translation>
 <translation id="3388788256054548012">Bu fayl shifrlangan. Egasidan uning shifrini yechishini soʻrang.</translation>
 <translation id="3390013585654699824">Ilova axboroti</translation>
 <translation id="3390741581549395454">Linux ilova va fayllari yangi nusxalarga zaxiralandi. Yangilanish tez orada boshlanadi.</translation>
@@ -2033,6 +2036,7 @@
 <translation id="3471876058939596279">HDMI va USB Type-C portlari birdaniga video chiqara olmaydi. Boshqa video portga ulang.</translation>
 <translation id="3473241910002674503">Planshet rejimida bosh ekranga oʻtish, oldingi ekranga qaytish va ilovalararo almashish uchun tugmalar chiqadi.</translation>
 <translation id="3473479545200714844">Ekran lupasi</translation>
+<translation id="347394413229268704">Keyinroq oʻqish</translation>
 <translation id="3475843873335999118">Barmoq izi aniqlanmadi. Parolingizni kiriting.</translation>
 <translation id="3476303763173086583">Foydalanish va diagnostika axborotini yuborish. Diagnostika hamda qurilma va ilovadan foydalanish statistikasini Google kompaniyasiga avtomatik yuborish orqali Androidni yaxshilashga yordam bering. Ushbu axborotdan farzandingiz shaxsini aniqlash uchun foydalanilmaydi. Ular tizim va ilovalar barqarorligi kabilarni yaxshilash uchun ishlatiladi. Ayrim toʻplangan maʼlumotlar Android dasturchilar kabi hamkorlarimizga ham oʻz ilovalari va mahsulotlarini yanada yaxshilashga yordam beradi. Bu <ph name="BEGIN_LINK1" />parametr<ph name="END_LINK1" /> qurilma egasi tomonidan oʻrnatilgan. Qurilma egasi undagi foydalanish haqidagi va diagnostika axborotini Google serverlariga avtomatik yuborilishini tayinlashi mumkin. Agar farzandingiz uchun Kengaytirilgan veb-qidiruv va ilovalar tarixi yoqilgan boʻlsa, bu maʼlumotlar uning Google hisobiga saqlanadi. <ph name="BEGIN_LINK2" />Batafsil<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Tizim qurilmangiz uchun qoidalarni aniqlay olmadi.</translation>
@@ -2593,6 +2597,7 @@
 <translation id="4107048419833779140">Xotira qurilmalarini aniqlash va uzib qo‘yish</translation>
 <translation id="4109135793348361820">Oynani <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) foydalanuvchisi ish stoliga ko‘chirish</translation>
 <translation id="4110490973560452005">Yuklab olindi: <ph name="FILE_NAME" />. Yuklanmalar paneliga qaytish uchun Shift+F6 tugmalarini bosing.</translation>
+<translation id="4110686435123617899"><ph name="TITLE" /> <ph name="DESC" /> nomli albomni tanlang</translation>
 <translation id="4110895898888439383">Internetni yuqori kontrastli rejimda kezish</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (oflayn)</translation>
 <translation id="4115002065223188701">Tarmoq diapazondan tashqarida</translation>
@@ -3079,6 +3084,7 @@
 <translation id="4780321648949301421">Sahifani saqlab olish...</translation>
 <translation id="4785719467058219317">Elektron kalitingiz bu sayt roʻyxatidan oʻtkazilmagan</translation>
 <translation id="4788092183367008521">Tarmoq ulanishini tekshiring va qaytadan urining.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ta rasm</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Muammo haqida xabar qilish...</translation>
 <translation id="4794810983896241342">Yangilanishlar <ph name="BEGIN_LINK" />administrator<ph name="END_LINK" /> tomonidan boshqariladi.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index c8a99ae4..0d32cd88 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">Thêm thủ công</translation>
 <translation id="1361655923249334273">Không sử dụng</translation>
 <translation id="1361872463926621533">Phát âm thanh khi khởi động</translation>
+<translation id="1362865166188278099">Vấn đề về máy móc. Hãy kiểm tra máy in</translation>
 <translation id="1363585519747660921">Máy in USB cần định cấu hình</translation>
 <translation id="1365180424462182382"><ph name="ENROLLMENT_DOMAIN" /> <ph name="BEGIN_LINK" />quản lý trình duyệt<ph name="END_LINK" /> của bạn</translation>
 <translation id="1366177842110999534">Chạy các công cụ, trình chỉnh sửa và môi trường phát triển được tích hợp (IDE) của Linux trên <ph name="DEVICE_TYPE" /> của bạn. &lt;a target="_blank" href="<ph name="URL" />"&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
@@ -1373,6 +1374,7 @@
 <translation id="2636625531157955190">Chrome không thể truy cập hình ảnh.</translation>
 <translation id="2637400434494156704">Mã PIN không chính xác. Bạn còn một lần thử.</translation>
 <translation id="2638662041295312666">Hình ảnh đăng nhập</translation>
+<translation id="2640549051766135490">Đã chọn album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">Kết nối với điện thoại của bạn – Hộp thoại</translation>
 <translation id="2641065435954454414">Đang chuẩn bị tải xuống</translation>
 <translation id="2642111877055905627">Bóng đá</translation>
@@ -1958,6 +1960,7 @@
 <translation id="338583716107319301">Dấu phân tách</translation>
 <translation id="338691029516748599">Mạng <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />%, Do quản trị viên của bạn quản lý, Kết nối</translation>
 <translation id="3387614642886316601">Sử dụng tính năng kiểm tra lỗi chính tả nâng cao</translation>
+<translation id="3388094447051599208">Khay giấy ra sắp đầy</translation>
 <translation id="3388788256054548012">Tệp này đã được mã hóa. Hãy yêu cầu chủ sở hữu tệp giải mã.</translation>
 <translation id="3390013585654699824">Thông tin chi tiết về ứng dụng</translation>
 <translation id="3390741581549395454">Đã sao lưu thành công các ứng dụng và tệp Linux. Quá trình nâng cấp sẽ bắt đầu sau giây lát.</translation>
@@ -2035,6 +2038,7 @@
 <translation id="3471876058939596279">Không thể sử dụng đồng thời cổng USB Type-C và HDMI cho video. Hãy sử dụng một cổng video khác.</translation>
 <translation id="3473241910002674503">Chuyển về trang chủ, quay lại và chuyển đổi ứng dụng bằng các nút ở chế độ máy tính bảng.</translation>
 <translation id="3473479545200714844">Phóng to màn hình</translation>
+<translation id="347394413229268704">Đọc sau</translation>
 <translation id="3475843873335999118">Rất tiếc, vân tay của bạn vẫn chưa được nhận dạng. Vui lòng nhập mật khẩu của bạn.</translation>
 <translation id="3476303763173086583">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. Mục <ph name="BEGIN_LINK1" />cài đặt<ph name="END_LINK1" /> này do chủ sở hữu thực thi. Chủ sở hữu có thể chọn gửi dữ liệu chẩn đoán và dữ liệu về mức sử dụng của thiết bị này cho Google. Nếu bạn bật mục cài đặt bổ sung Hoạt động trên 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_LINK2" />Tìm hiểu thêm<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">Rất tiếc! Hệ thống không tìm nạp được chính sách cho thiết bị của bạn.</translation>
@@ -2595,6 +2599,7 @@
 <translation id="4107048419833779140">Nhận dạng và ngắt kết nối thiết bị lưu trữ</translation>
 <translation id="4109135793348361820">Di chuyển cửa sổ đến <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">Đã tải xuống xong: <ph name="FILE_NAME" />. Nhấn tổ hợp phím Shift + F6 để chuyển tới khu vực thanh Tệp đã tải xuống.</translation>
+<translation id="4110686435123617899">Chọn album <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">Duyệt web trong chế độ tương phản cao</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (không kết nối Internet)</translation>
 <translation id="4115002065223188701">Mạng nằm ngoài phạm vi</translation>
@@ -3081,6 +3086,7 @@
 <translation id="4780321648949301421">Lưu trang làm...</translation>
 <translation id="4785719467058219317">Bạn đang sử dụng một khóa bảo mật chưa đăng ký với trang web này</translation>
 <translation id="4788092183367008521">Vui lòng kiểm tra kết nối mạng và thử lại.</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> ảnh</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">&amp;Báo cáo sự cố...</translation>
 <translation id="4794810983896241342"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> sẽ quản lý các bản cập nhật</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 0b72934..e7838d3 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">手动添加</translation>
 <translation id="1361655923249334273">未使用</translation>
 <translation id="1361872463926621533">启动时播放声音</translation>
+<translation id="1362865166188278099">发生机械问题,请检查打印机</translation>
 <translation id="1363585519747660921">USB 打印机需要配置</translation>
 <translation id="1365180424462182382">您的<ph name="BEGIN_LINK" />浏览器<ph name="END_LINK" />由 <ph name="ENROLLMENT_DOMAIN" /> 管理</translation>
 <translation id="1366177842110999534">在 <ph name="DEVICE_TYPE" /> 上运行 Linux 工具、编辑器和 IDE。&lt;a target="_blank" href="<ph name="URL" />"&gt;了解详情&lt;/a&gt;</translation>
@@ -1369,6 +1370,7 @@
 <translation id="2636625531157955190">Chrome 无法访问这张图片。</translation>
 <translation id="2637400434494156704">PIN 码不正确。您还剩 1 次尝试机会。</translation>
 <translation id="2638662041295312666">登录帐号图片</translation>
+<translation id="2640549051766135490">已选择影集“<ph name="TITLE" />”(<ph name="DESC" />)</translation>
 <translation id="264083724974021997">连接到您的手机 - 对话框</translation>
 <translation id="2641065435954454414">正在准备下载</translation>
 <translation id="2642111877055905627">足球</translation>
@@ -1954,6 +1956,7 @@
 <translation id="338583716107319301">分隔符</translation>
 <translation id="338691029516748599">第 <ph name="NETWORK_INDEX" /> 个网络(共 <ph name="NETWORK_COUNT" /> 个),<ph name="NETWORK_NAME" />,<ph name="SECURITY_STATUS" />,信号强度为 <ph name="SIGNAL_STRENGTH" />%,由您的管理员管理,连接</translation>
 <translation id="3387614642886316601">使用增强的“拼写检查”功能</translation>
+<translation id="3388094447051599208">出纸盘快满了</translation>
 <translation id="3388788256054548012">这个文件已加密。请让它的所有者进行解密。</translation>
 <translation id="3390013585654699824">应用详细信息</translation>
 <translation id="3390741581549395454">已成功备份 Linux 应用和文件。即将开始升级。</translation>
@@ -2031,6 +2034,7 @@
 <translation id="3471876058939596279">HDMI 端口和 USB C 型端口无法同时用于视频。请另选一个视频端口。</translation>
 <translation id="3473241910002674503">在平板电脑模式下,使用相应按钮转到主屏幕、返回以及切换应用。</translation>
 <translation id="3473479545200714844">屏幕放大镜</translation>
+<translation id="347394413229268704">稍后阅读</translation>
 <translation id="3475843873335999118">抱歉,系统仍无法识别您的指纹。请输入您的密码。</translation>
 <translation id="3476303763173086583">发送使用情况数据和诊断数据。通过自动向 Google 发送诊断数据、设备数据和应用使用情况数据,帮助改善您孩子的 Android 使用体验。这些数据不会被用来辨识您孩子的身份,而是会被用来帮助提高系统和应用的稳定性以及实现其他方面的改进。部分汇总数据也会对 Google 应用和合作伙伴(例如 Android 开发者)有所帮助。这项<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />是由此设备的所有者强制指定的。此设备的所有者可以选择向 Google 发送此设备的诊断数据和使用情况数据。如果您已为孩子开启“其他网络与应用活动记录”设置,这些数据可能会被保存到其 Google 帐号中。<ph name="BEGIN_LINK2" />了解详情<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">糟糕!系统未能成功抓取您设备的政策。</translation>
@@ -2590,6 +2594,7 @@
 <translation id="4107048419833779140">识别并弹出存储设备</translation>
 <translation id="4109135793348361820">将窗口移至<ph name="USER_NAME" />(<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">下载完成:<ph name="FILE_NAME" />。按 Shift+F6 可切换到下载内容栏区域。</translation>
+<translation id="4110686435123617899">选择影集“<ph name="TITLE" />”(<ph name="DESC" />)</translation>
 <translation id="4110895898888439383">以高反差模式浏览网页</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" />(离线)</translation>
 <translation id="4115002065223188701">检测不到网络</translation>
@@ -3076,6 +3081,7 @@
 <translation id="4780321648949301421">页面存储为...</translation>
 <translation id="4785719467058219317">您使用的安全密钥尚未在此网站注册</translation>
 <translation id="4788092183367008521">请检查您的网络连接,然后重试。</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> 张照片</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">报告问题(&amp;R)...</translation>
 <translation id="4794810983896241342">更新由<ph name="BEGIN_LINK" />您的管理员<ph name="END_LINK" />管理</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 97da0bc..21da6da5 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -307,6 +307,7 @@
 <translation id="1361164813881551742">手動新增</translation>
 <translation id="1361655923249334273">未使用</translation>
 <translation id="1361872463926621533">啟動時播放音效</translation>
+<translation id="1362865166188278099">發生機件故障。請檢查打印機</translation>
 <translation id="1363585519747660921">USB 列印機需要設定</translation>
 <translation id="1365180424462182382">您的<ph name="BEGIN_LINK" />瀏覽器由 <ph name="END_LINK" /><ph name="ENROLLMENT_DOMAIN" /> 管理</translation>
 <translation id="1366177842110999534">在您的 <ph name="DEVICE_TYPE" /> 執行 Linux 工具、編輯器和整合開發環境 (IDE)。&lt;a target="_blank" href="<ph name="URL" />"&gt;瞭解詳情&lt;/a&gt;</translation>
@@ -1372,6 +1373,7 @@
 <translation id="2636625531157955190">Chrome 無法存取這張圖片。</translation>
 <translation id="2637400434494156704">PIN 不正確。您還可再試 1 次。</translation>
 <translation id="2638662041295312666">登入圖片</translation>
+<translation id="2640549051766135490">揀咗相簿 <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="264083724974021997">連接去你部手機 - 對話框</translation>
 <translation id="2641065435954454414">正在準備下載</translation>
 <translation id="2642111877055905627">足球</translation>
@@ -1957,6 +1959,7 @@
 <translation id="338583716107319301">分隔符號</translation>
 <translation id="338691029516748599">第 <ph name="NETWORK_INDEX" /> 個網絡,一共有 <ph name="NETWORK_COUNT" /> 個網絡,<ph name="NETWORK_NAME" />,<ph name="SECURITY_STATUS" />,訊號強度係 <ph name="SIGNAL_STRENGTH" />%,由管理員管理,連接</translation>
 <translation id="3387614642886316601">使用進階拼字檢查功能</translation>
+<translation id="3388094447051599208">輸出紙匣將滿</translation>
 <translation id="3388788256054548012">此檔案已加密。請要求擁有者解密。</translation>
 <translation id="3390013585654699824">應用程式詳情</translation>
 <translation id="3390741581549395454">已成功備份 Linux 應用程式和檔案。升級即將開始。</translation>
@@ -2034,6 +2037,7 @@
 <translation id="3471876058939596279">HDMI 和 USB Type-C 連接埠無法同時用於影片。請使用其他影片連接埠。</translation>
 <translation id="3473241910002674503">在平板電腦模式中,使用按鈕前往主畫面、返回及切換應用程式。</translation>
 <translation id="3473479545200714844">放大鏡</translation>
+<translation id="347394413229268704">稍後閱讀</translation>
 <translation id="3475843873335999118">很抱歉,系統仍然無法識別您的指紋,請輸入您的密碼。</translation>
 <translation id="3476303763173086583">傳送使用情況和診斷資料。自動將診斷、裝置及應用程式的使用情況資料傳送至 Google,協助改善您子女的 Android 使用體驗。這些資料不會用來識別您子女的身分,而是用於改善系統和應用程式的穩定性和其他效能。部分彙整資料也會用於協助 Google 應用程式與合作夥伴 (例如 Android 開發人員)。擁有者可強制執行此<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />。擁有者可選擇是否將此裝置的診斷和使用情況資料傳送給 Google。如果已為子女開啟其他「網絡及應用程式活動記錄」設定,系統可能會將此資料儲存至其 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation>
 <translation id="347670947055184738">抱歉!系統無法擷取裝置政策。</translation>
@@ -2594,6 +2598,7 @@
 <translation id="4107048419833779140">識別並退出儲存裝置</translation>
 <translation id="4109135793348361820">將視窗傳送給 <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
 <translation id="4110490973560452005">下載完成 :<ph name="FILE_NAME" />。按住 Shift+F6 鍵即可切換至下載內容列的位置。</translation>
+<translation id="4110686435123617899">揀相簿 <ph name="TITLE" /> <ph name="DESC" /></translation>
 <translation id="4110895898888439383">以高對比模式瀏覽網頁</translation>
 <translation id="4112194537011183136"><ph name="DEVICE_NAME" /> (離線)</translation>
 <translation id="4115002065223188701">網絡超出範圍</translation>
@@ -3080,6 +3085,7 @@
 <translation id="4780321648949301421">另存網頁…</translation>
 <translation id="4785719467058219317">您目前使用的安全密鑰並未在此網站註冊</translation>
 <translation id="4788092183367008521">請檢查你的網絡連線,然後再試一次。</translation>
+<translation id="4791000909649665275"><ph name="NUMBER" /> 張相片</translation>
 <translation id="4791037424585594169">(UDP)</translation>
 <translation id="4792711294155034829">報告問題(&amp;R)…</translation>
 <translation id="4794810983896241342">更新由<ph name="BEGIN_LINK" />您的管理員<ph name="END_LINK" />管理</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index db7bc3a..4a97807 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220">‏يمكنك المساعدة في تحسين Chrome بالإبلاغ عن <ph name="BEGIN_LINK" />الإعدادات الحالية<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">‏يُرجى إعادة تشغيل Chrome الآن</translation>
 <translation id="2246246234298806438">‏لا يمكن لـ Google Chrome عرض معاينة الطباعة عندما يكون عارض PDF المضمّن مفقودًا.</translation>
+<translation id="226038281051944330">‏لقد سجَّلت الدخول إلى ملف <ph name="EXISTING_USER" /> الشخصي باستخدام حساب جديد. هل تريد إنشاء ملف شخصي جديد على Chrome space للمستخدم <ph name="NEW_USER" /> حتى تُبقي بياناتك منفصلة؟</translation>
 <translation id="2290014774651636340">‏مفاتيح واجهة برمجة تطبيقات Google مفقودة. وسيترتب على ذلك توقف بعض وظائف Google Chrome عن العمل.</translation>
 <translation id="2290095356545025170">‏هل تريد فعلًا إزالة Google Chrome؟</translation>
 <translation id="2309047409763057870">‏هذا تثبيت ثانوي من Google Chrome، ولا يمكن جعله متصفحك التلقائي.</translation>
@@ -144,12 +145,14 @@
 <translation id="4895437082222824641">‏فتح الرابط في علامة تبويب جديدة في Chrome</translation>
 <translation id="4953650215774548573">‏تعيين Google Chrome المتصفح التلقائي</translation>
 <translation id="495931528404527476">‏في Chrome</translation>
+<translation id="4960472897514318257">‏لقد سجَّلت الدخول باستخدام حساب عمل. هل تريد إنشاء ملف شخصي جديد على Chrome space للمستخدم <ph name="NEW_USER" /> حتى تُبقي بياناتك الشخصية منفصلة؟</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">‏إعادة تشغيل نظام التشغيل Chrome</translation>
 <translation id="5132929315877954718">‏يمكنك اكتشاف تطبيقات، وألعاب، وإضافات، ومظاهر رائعة لمتصفح Google Chrome.</translation>
 <translation id="5170938038195470297">‏لا يمكن استخدام ملفك الشخصي نظرًا لأنه من إصدار أحدث من Google Chrome.
 
 قد تكون بعض الميزات غير متاحة. يُرجى تحديد دليل ملف شخصي مختلف أو استخدام إصدار أحدث من Chrome.</translation>
+<translation id="5171117065011130146">‏هل تريد إنشاء مساحة عمل جديدة على متصفِّح Chrome؟</translation>
 <translation id="5193136243808726294">‏يتعذر على نظام التشغيل Google Chrome فتح هذه الصفحة.</translation>
 <translation id="5251420635869119124">‏يمكن للضيف استخدام Chrome بدون أن يترك أي أثر وراءه.</translation>
 <translation id="532046782124376502">‏تحذير: يتعذّر على Google Chrome منع الإضافات من تسجيل سجل تصفحك. لإيقاف هذه الإضافة في وضع التصفح المتخفي، ألغِ تحديد هذا الخيار.</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">‏إصدار Chrome قديم</translation>
 <translation id="8834965163890861871">‏يحاول Google Chrome تعديل كلمات المرور. للسماح بذلك، يُرجى كتابة كلمة مرور Windows الخاصة بك.</translation>
 <translation id="884296878221830158">‏كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chrome أو النقر على زر الصفحة الرئيسية.</translation>
+<translation id="8859948767482842016">‏لقد سجَّلت الدخول إلى ملف <ph name="EXISTING_USER" /> الشخصي باستخدام حساب عمل. هل تريد إنشاء ملف شخصي جديد على Chrome space للمستخدم <ph name="WORK_DOMAIN" /> حتى تُبقي بياناتك منفصلة؟</translation>
 <translation id="8862326446509486874">لا تملك الحقوق الكافية للتثبيت على مستوى النظام. جرّب تشغيل المثبِّت بصفة مشرف.</translation>
+<translation id="8877586659207810298">‏هل تريد إنشاء ملف شخصي جديد على Chrome space للمستخدم <ph name="NEW_USER" />؟</translation>
 <translation id="8914504000324227558">‏إعادة تشغيل Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{‏يتوفر تحديث لمتصفح Chrome}=1{‏يتوفر تحديث لمتصفح Chrome}two{‏يتوفر تحديث لمتصفح Chrome منذ يومين}few{‏يتوفر تحديث لمتصفح Chrome منذ # أيام}many{‏يتوفر تحديث لمتصفح Chrome منذ # يومًا}other{‏يتوفر تحديث لمتصفح Chrome منذ # يوم}}</translation>
 <translation id="9026991721384951619">‏تعذر على نظام التشغيل Chrome مزامنة البيانات نظرًا لأن تفاصيل تسجيل الدخول إلى حسابك قديمة.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_as.xtb b/chrome/app/resources/google_chrome_strings_as.xtb
index 70f7601..7bf9cfb 100644
--- a/chrome/app/resources/google_chrome_strings_as.xtb
+++ b/chrome/app/resources/google_chrome_strings_as.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />বর্তমানৰ ছেটিংসমূহ<ph name="END_LINK" />ৰ সম্পর্কে প্ৰতিবেদন দি Chromeক উন্নত কৰাত সহায় কৰক</translation>
 <translation id="2151406531797534936">অনুগ্ৰহ কৰি Chrome এতিয়া ৰিষ্টাৰ্ট কৰক</translation>
 <translation id="2246246234298806438">অন্তৰ্নিমিত PDF ভিউৱাৰ নাথাকিলে Google Chromeএ প্ৰিণ্টৰ পূর্বদর্শন দেখুৱাব নোৱাৰে।</translation>
+<translation id="226038281051944330">আপুনি <ph name="EXISTING_USER" />ৰ স্পেচত এটা নতুন একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ডেটা বেলেগে ৰাখিবলৈ <ph name="NEW_USER" />ৰ বাবে Chromeৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="2290014774651636340">Google API কীসমূহ নাই। Google Chromeৰ কিছুমান কার্যক্ৰম অক্ষম কৰা হ’ব।</translation>
 <translation id="2290095356545025170">আপুনি Google Chrome আনইনষ্টল কৰিবলৈ বিচাৰে বুলি নিশ্চিতনে?</translation>
 <translation id="2309047409763057870">এয়া Google Chromeৰ এক গৌণ ইনষ্টলেশ্বন আৰু ইয়াক আপোনাৰ ডিফ’ল্ট ব্ৰাউজাৰ কৰিব নোৱাৰি।</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Chromeৰ নতুন টে&amp;বত লিংক খোলক</translation>
 <translation id="4953650215774548573">আপোনাৰ ডিফ'ল্ট ব্ৰাউজাৰ হিচাপে Google Chromeক ছেট কৰক</translation>
 <translation id="495931528404527476">Chromeত</translation>
+<translation id="4960472897514318257">আপুনি এটা কৰ্মস্থানৰ একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ব্যক্তিগত ডেটা বেলেগে ৰাখিবলৈ <ph name="NEW_USER" />ৰ বাবে Chromeৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS ৰিষ্টার্ট কৰক</translation>
 <translation id="5132929315877954718">Google Chromeৰ বাবে উত্তম এপ্, গে’ম, এক্সটেনশ্বন আৰু থীম বিচাৰক৷</translation>
 <translation id="5170938038195470297">আপোনাৰ প্ৰ’ফাইল ব্যৱহাৰ কৰিব নোৱাৰি কাৰণ এয়া Google Chromeৰ এক নতুন সংস্কৰণ।
 
 কিছুমান সুবিধা নাথাকিব পাৰে। অনুগ্ৰহ কৰি অন্য কোনো প্ৰ’ফাইল ডাইৰেক্টৰী নির্দিষ্ট কৰক বা Chromeৰ নতুন সংস্কৰণ ব্যৱহাৰ কৰক।</translation>
+<translation id="5171117065011130146">Chromeৰ নতুন ৱৰ্ক স্পেচ সৃষ্টি কৰিবনে?</translation>
 <translation id="5193136243808726294">Google Chrome OSএ এই পৃষ্ঠাটো খুলিব নোৱাৰে।</translation>
 <translation id="5251420635869119124">অতিথিসকলে কোনো সুবিধা বাদ নিদিয়াকৈ Chrome ব্যৱহাৰ কৰিব পাৰে।</translation>
 <translation id="532046782124376502">সর্তকবার্তা: Google Chromeএ এক্সটেনশ্বনক আপোনাৰ ব্ৰাউজিঙৰ ইতিহাস ৰেকৰ্ড কৰাত বাধা দিব নোৱাৰে। এই এক্সটেনশ্বনটো ইনক’গনিট’ ম’ডত অক্ষম কৰিবলৈ এই বিকল্পটো বাছনিৰ পৰা বাদ দিয়ক।</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chromeটো অতি পুৰণি</translation>
 <translation id="8834965163890861871">Google Chromeএ পাছৱর্ডসমূহ সম্পাদনা কৰিবলৈ চেষ্টা কৰি আছে। এই কার্যৰ বাবে অনুমতি দিবলৈ আপোনাৰ Windowsৰ পাছৱৰ্ডটো টাইপ কৰক।</translation>
 <translation id="884296878221830158">এইটোৱে লগতে আপুনি Chromeৰ ব্যৱহাৰ কৰিলে বা গৃহপৃষ্ঠা বুটামটো ক্লিক কৰিলে কি পৃষ্ঠা দেখুওৱা হয় সেয়াও নিয়ন্ত্ৰণ কৰে।</translation>
+<translation id="8859948767482842016">আপুনি <ph name="EXISTING_USER" />ৰ স্পেচত এটা কৰ্মস্থানৰ একাউণ্টেৰে ছাইন ইন কৰিছে। আপুনি নিজৰ ডেটা বেলেগে ৰাখিবলৈ <ph name="WORK_DOMAIN" />ৰ বাবে Chromeৰ এটা নতুন স্পেচ সৃষ্টি কৰিব বিচাৰেনে?</translation>
 <translation id="8862326446509486874">ছিষ্টেম-পৰ্যায়ৰ ইনষ্টলৰ বাবে আপোনাৰ সঠিক অধিকাৰ নাই। প্রশাসক হিচাপে ইনষ্টলাৰটো পুনৰ চলাই চাওক।</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />ৰ বাবে Chromeৰ নতুন স্পেচ সৃষ্টি কৰিবনে?</translation>
 <translation id="8914504000324227558">Chrome পুনৰ লঞ্চ কৰক</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chromeৰ এটা আপডে’ট উপলব্ধ}=1{Chromeৰ এটা আপডে’ট উপলব্ধ}one{# দিনৰ বাবে Chromeৰ এটা আপডে’ট উপলব্ধ}other{# দিনৰ বাবে Chromeৰ এটা আপডে’ট উপলব্ধ}}</translation>
 <translation id="9026991721384951619">আপোনাৰ একাউণ্টৰ ছাইন ইনৰ সবিশেষ তথ্যৰ ম্যাদ উকলি যোৱাৰ বাবে Chrome OS আপোনাৰ ডেটা ছিংক কৰিব নোৱাৰিলে।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb
index 4dce543..ee90974 100644
--- a/chrome/app/resources/google_chrome_strings_az.xtb
+++ b/chrome/app/resources/google_chrome_strings_az.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />Cari ayarları<ph name="END_LINK" /> bildirməklə Chrome'u təkmilləşdirməyə kömək edin</translation>
 <translation id="2151406531797534936">İndi Chrome'u yenidən başladın</translation>
 <translation id="2246246234298806438">Daxili PDF izləyici olmayanda Google Chrome çap önizləməsi göstərə bilməz.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> sahəsində yeni hesab ilə daxil olmusunuz. Datanızı ayrı saxlamaq üçün <ph name="NEW_USER" /> üçün yeni Chrome sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="2290014774651636340">Google API açarları çatışmır. Google Chrome'un bəzi funksionallığı deaktiv ediləcək.</translation>
 <translation id="2290095356545025170">Google Chrome'u silmək istəyirsiniz?</translation>
 <translation id="2309047409763057870">Bu Chromium'un ikinci quraşdırmasıdır və defolt brauzer kimi ayarlana bilmir.</translation>
@@ -144,12 +145,14 @@
 <translation id="4895437082222824641">Linki yeni Chrome tabında açın</translation>
 <translation id="4953650215774548573">Google Chrome'u defolt brauzer təyin edin</translation>
 <translation id="495931528404527476">Chrome'da</translation>
+<translation id="4960472897514318257">İş hesabı ilə daxil olmusunuz. Şəxsi datanızı ayrı saxlamaq üçün <ph name="NEW_USER" /> üçün yeni Chrome sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome ƏS-ni yenidən başladın</translation>
 <translation id="5132929315877954718">Google Chrome üçün möhtəşəm tətbiqlər, artırmalar və temalar kəşf edin.</translation>
 <translation id="5170938038195470297">Profiliniz yeni versiya Google Chrome'dan olduğu üçün istifadə edilə bilməz.
 
 Bəzi funksiyalar əlçatmaz ola bilər. Xüsusi profil direktoriyası göstərin və ya yeni Chrome versiyası işlədin.</translation>
+<translation id="5171117065011130146">Yeni Chrome İş sahəsi yaradılsın?</translation>
 <translation id="5193136243808726294">Google Chrome OS bu səhifəni aça bilməz.</translation>
 <translation id="5251420635869119124">Qonaqlar geridə heç nə buraxmadan Chrome istifadə edə bilər.</translation>
 <translation id="532046782124376502">Xəbərdarlıq: Chromium artırmanın axtarış tarixçəsini qeyd etməsinin qarşısını ala bilməz. Bu artırmanı gizli rejimdə deaktiv etmək üçün bu seçimi silin.</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">Chrome'un vaxtı keçib</translation>
 <translation id="8834965163890861871">Google Chrome parolları redaktə etməyə çalışır. Buna icazə vermək üçün Windows parolunuzu yazın.</translation>
 <translation id="884296878221830158">Həmçinin, Chrome'a başlayanda və ya Əsas səhifə düyməsinə klikləyəndə göstəriləsi səhifəyə nəzarət edir.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> sahəsində İş hesabı ilə daxil olmusunuz. Datanızı ayrı saxlamaq üçün <ph name="WORK_DOMAIN" /> üçün yeni Chrome sahəsi yaratmaq istərdinizmi?</translation>
 <translation id="8862326446509486874">Sistem səviyyəli quraşdırma üçün uyğun hüquqlarınız yoxdur. Quraşdırıcını yenidən Administrator olaraq işə salmağa cəhd edin.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> üçün yeni Chrome sahəsi yaradılsın?</translation>
 <translation id="8914504000324227558">Chrome'u yenidən başladın</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome güncəlləməsi əlçatandır}=1{Chrome güncəlləməsi əlçatandır}other{Chrome güncəlləməsi # gün əlçatan olub}}</translation>
 <translation id="9026991721384951619">Chrome OS datanızı sinxronizasiya edə bilmir, çünki hesaba giriş məlumatlarınız köhnədir.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_be.xtb b/chrome/app/resources/google_chrome_strings_be.xtb
index ed335feb..d5b46416 100644
--- a/chrome/app/resources/google_chrome_strings_be.xtb
+++ b/chrome/app/resources/google_chrome_strings_be.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Дапамажыце палепшыць Chrome, паведаміўшы <ph name="BEGIN_LINK" />бягучыя налады<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Перазапусціце Chrome</translation>
 <translation id="2246246234298806438">Google Chrome не можа паказаць перадпрагляд друку: убудаваны сродак прагляду PDF адсутнічае.</translation>
+<translation id="226038281051944330">Вы ўвайшлі ў профіль карыстальніка <ph name="EXISTING_USER" />, выкарыстаўшы новы ўліковы запіс. Ці не хочаце стварыць новы профіль Chrome Space для карыстальніка <ph name="NEW_USER" />, каб трымаць свае даныя асобна?</translation>
 <translation id="2290014774651636340">Адсутнічаюць ключы Google API. Некаторыя функцыі Google Chrome будуць выключаны.</translation>
 <translation id="2290095356545025170">Сапраўды выдаліць Google Chrome?</translation>
 <translation id="2309047409763057870">Гэта другасны ўсталяваны экзэмпляр Google Chrome – яго нельга зрабіць стандартным браўзерам.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Адкрыць спасылку ў новай &amp;укладцы Chrome</translation>
 <translation id="4953650215774548573">Зрабіць Google Chrome стандартным браўзерам</translation>
 <translation id="495931528404527476">У браўзеры Chrome</translation>
+<translation id="4960472897514318257">Вы ўвайшлі ў працоўны ўліковы запіс. Ці не хочаце стварыць новы профіль Chrome Space для карыстальніка <ph name="NEW_USER" />, каб трымаць свае асабістыя даныя асобна?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Перазапусціце Chrome OS</translation>
 <translation id="5132929315877954718">Адкрывайце для сябе выдатныя праграмы, гульні, пашырэнні і тэмы для Google Chrome.</translation>
 <translation id="5170938038195470297">Ваш профіль нельга выкарыстоўваць, бо ён з навейшай версіі Google Chrome.
 
 Некаторыя функцыі могуць быць недаступныя. Укажыце іншы каталог профілю або выкарыстайце навейшую версію Chrome.</translation>
+<translation id="5171117065011130146">Сварыць новы працоўны профіль Chrome Space?</translation>
 <translation id="5193136243808726294">Google Chrome OS не можа адкрыць гэту старонку.</translation>
 <translation id="5251420635869119124">Госці могуць выкарыстоўваць Chrome, не пакідаючы нічога пасля сябе.</translation>
 <translation id="532046782124376502">Увага! Google Chrome не можа забараніць пашырэнням весці запіс вашай гісторыі праглядаў сайтаў. Скасуйце выбар гэтай налады, каб выключыць гэта пашырэнне ў рэжыме інкогніта.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Ваша версія Chrome састарэла</translation>
 <translation id="8834965163890861871">Google Chrome спрабуе змяніць паролі. Каб дазволіць гэта, увядзіце пароль Windows.</translation>
 <translation id="884296878221830158">Таксама вызначае, якая старонка паказваецца пры запуску браўзера Chrome або націсканні кнопкі галоўнай старонкі.</translation>
+<translation id="8859948767482842016">Вы ўвайшлі ў профіль карыстальніка <ph name="EXISTING_USER" />, выкарыстаўшы працоўны ўліковы запіс. Ці не хочаце стварыць новы профіль Chrome Space для дамена <ph name="WORK_DOMAIN" />, каб трымаць свае даныя асобна?</translation>
 <translation id="8862326446509486874">Для ўсталявання на сістэмным узроўні ў вас няма неабходных правоў. Паспрабуйце запусціць усталёўшчык ад імені адміністратара.</translation>
+<translation id="8877586659207810298">Сварыць новы профіль Chrome Space для карыстальніка <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Перазапусціць Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Ёсць абнаўленне Chrome}=1{Ёсць абнаўленне Chrome}one{Абнаўленне Chrome выйшла ўжо # дзень таму}few{Абнаўленне Chrome выйшла # дні таму}many{Абнаўленне Chrome выйшла # дзён таму}other{Абнаўленне Chrome выйшла # дня таму}}</translation>
 <translation id="9026991721384951619">Сінхранізаваць даныя ў сістэме Chrome OS не ўдалося: даныя ўліковага запісу для ўваходу састарэлі.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index d6acbf8b..49ef2b4 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />বর্তমান সেটিংস<ph name="END_LINK" />-এর রিপোর্ট করে Chrome-কে আরও ভাল করে তুলতে সাহায্য করুন</translation>
 <translation id="2151406531797534936">এখনই Chrome রিস্টার্ট করুন</translation>
 <translation id="2246246234298806438">বিলট-ইন PDF viewer অনুপস্থিত থাকার সময়ে Google Chrome প্রিন্ট প্রিভিউ দেখাতে পারে না৷</translation>
+<translation id="226038281051944330">আপনি <ph name="EXISTING_USER" />-এর স্পেসে নতুন অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। নিজের ডেটা আলাদা রাখতে আপনি কি <ph name="NEW_USER" />-এর জন্য নতুন Chrome স্পেস তৈরি করতে চান?</translation>
 <translation id="2290014774651636340">Google এপিআই কীগুলি অনুপস্থিত৷ Google Chrome-এর কিছু বৈশিষ্ট্য নিষ্ক্রিয় হয়ে যাবে৷</translation>
 <translation id="2290095356545025170">আপনি কি Google Chrome আনইনস্টল করার ব্যাপারে নিষ্চিত ?</translation>
 <translation id="2309047409763057870">এটা Google Chrome-এর সেকেন্ডারি ইনস্টলেশন এবং একে আপনার ডিফল্ট ব্রাউজার করা যাবে না।</translation>
@@ -144,12 +145,14 @@
 <translation id="4895437082222824641">নতুন Chrome ট্যাবে লিঙ্ক খুলুন</translation>
 <translation id="4953650215774548573">আপনার ডিফল্ট ব্রাউজার হিসাবে Google Chrome-কে সেট করুন</translation>
 <translation id="495931528404527476">Chrome-এ</translation>
+<translation id="4960472897514318257">আপনি অফিস অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। ব্যক্তিগত ডেটা আলাদা রাখতে আপনি কি <ph name="NEW_USER" />-এর জন্য নতুন Chrome স্পেস তৈরি করতে চান?</translation>
 <translation id="4990567037958725628">Google Chrome  ক্যানারি</translation>
 <translation id="5062123544085870375">Chrome OS রিস্টার্ট করুন</translation>
 <translation id="5132929315877954718">Google Chrome-এর দুর্দান্ত অ্যাপ্লিকেশান, গেম, এক্সটেনশান এবং থিম আবিষ্কার করুন৷</translation>
 <translation id="5170938038195470297">আপনার প্রোফাইল ব্যবহার করা যাবে কারণ এটি Google Chrome-এর একটি নতুন ভার্সনে গঠিত৷ 
 
 কিছু বৈশিষ্ট্য অনুপলভ্য হতে পারে৷ একটি ভিন্ন প্রোফাইল নির্দেশিকা সুনির্দিষ্টভাবে উল্লেখ করুন অথবা Chrome এর নতুন ভার্সন ব্যবহার করুন৷</translation>
+<translation id="5171117065011130146">নতুন Chrome অফিস স্পেস তৈরি করতে চান?</translation>
 <translation id="5193136243808726294">Google Chrome OS এই পৃষ্ঠা খুলতে পারছে না।</translation>
 <translation id="5251420635869119124">অতিথিগণ কোনো কিছুর জন্য অভাব বোধ না করেই Chrome ব্যবহার করতে পারবেন৷</translation>
 <translation id="532046782124376502">সতর্কতা: Google Chrome কোনও এক্সটেনশনকে আপনার ব্রাউজিং ইতিহাস রেকর্ড করা থেকে আটকাতে পারে না। ছদ্মবেশী মোডে এই এক্সটেনশনটি বন্ধ করার জন্য এই বিকল্পটি বন্ধ করুন।</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">Chrome পুরানো হয়ে গেছে</translation>
 <translation id="8834965163890861871">Google Chrome আপনার পাসওয়ার্ড এডিট করার অনুমতি চাইছে। অনুমতি দিতে আপনার Windows পাসওয়ার্ড টাইপ করুন।</translation>
 <translation id="884296878221830158">আপনি Chrome শুরু করলে বা হোম বোতামটি ক্লিক করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
+<translation id="8859948767482842016">আপনি <ph name="EXISTING_USER" />-এর স্পেসে অফিস অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করেছেন। নিজের ডেটা আলাদা রাখতে আপনি কি <ph name="WORK_DOMAIN" /> ডোমেনের জন্য নতুন Chrome স্পেস তৈরি করতে চান?</translation>
 <translation id="8862326446509486874">সিস্টেম-স্তরীয় ইনস্টলের জন্য আপনার কাছে যথাযথ অধিকারগুলি নেই৷ অ্যাডমিনিস্ট্রেটর হিসেবে আবার ইনস্টলারটি চালানোর চেষ্টা করুন৷</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />-এর জন্য নতুন Chrome স্পেস তৈরি করতে চান?</translation>
 <translation id="8914504000324227558">Chrome আবার লঞ্চ করুন</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome-এর একটি আপডেট উপলভ্য আছে}=1{Chrome-এর একটি আপডেট উপলভ্য আছে}one{Chrome-এর একটি আপডেট # দিন ধরে উপলভ্য আছে}other{Chrome-এর একটি আপডেট # দিন ধরে উপলভ্য আছে}}</translation>
 <translation id="9026991721384951619">আপনার অ্যাকাউন্টের সাইন-ইনের বিবরণটি পুরনো হওয়ায় Chrome OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index abc9bc6..677faf33 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Pomozte s vylepšováním prohlížeče Chrome tím, že nahlásíte <ph name="BEGIN_LINK" />aktuální nastavení<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Restartujte Chrome</translation>
 <translation id="2246246234298806438">Pokud chybí integrovaný program k zobrazení souborů PDF, nemůže Google Chrome zobrazit náhled tisku.</translation>
+<translation id="226038281051944330">V prostoru uživatele <ph name="EXISTING_USER" /> jste se přihlásili pomocí nového účtu. Chcete v prohlížeči Chrome pro doménu <ph name="NEW_USER" /> vytvořit nový prostor, aby data zůstala oddělená?</translation>
 <translation id="2290014774651636340">Chybí klíče rozhraní Google API. Některé funkce Google Chrome nebudou k dispozici.</translation>
 <translation id="2290095356545025170">Opravdu chcete odinstalovat Google Chrome?</translation>
 <translation id="2309047409763057870">Toto je druhá instalace prohlížeče Google Chrome. Tuto instalaci nelze nastavit jako výchozí prohlížeč.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Otevřít odkaz na nové kar&amp;tě Chrome</translation>
 <translation id="4953650215774548573">Nastavit Google Chrome jako výchozí prohlížeč</translation>
 <translation id="495931528404527476">V Chromu</translation>
+<translation id="4960472897514318257">Přihlásili jste se pomocí pracovního účtu. Chcete v prohlížeči Chrome pro doménu <ph name="NEW_USER" /> vytvořit nový prostor, aby osobní data zůstala oddělená?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Restartujte systém Chrome OS</translation>
 <translation id="5132929315877954718">Objevte skvělé aplikace, hry, rozšíření a motivy prohlížeče Google Chrome.</translation>
 <translation id="5170938038195470297">Nelze použít váš profil, protože byl vytvořen v novější verzi aplikace Google Chrome.
 
 Některé funkce mohou být nedostupné. Zadejte prosím jiný adresář profilu, nebo používejte novější verzi aplikace Chrome.</translation>
+<translation id="5171117065011130146">Vytvořit v Chromu nový pracovní prostor?</translation>
 <translation id="5193136243808726294">Google Chrome OS tuto stránku nedokáže otevřít.</translation>
 <translation id="5251420635869119124">Hosté mohou Chrome používat, aniž by po nich zůstaly jakékoliv stopy.</translation>
 <translation id="532046782124376502">Upozornění: Google Chrome nemůže rozšířením zabránit v zaznamenávání vaší historie prohlížení. Chcete-li toto rozšíření v anonymním režimu deaktivovat, zrušte výběr této možnosti.</translation>
@@ -265,7 +268,9 @@
 <translation id="8823341990149967727">Chrome je zastaralý</translation>
 <translation id="8834965163890861871">Google Chrome se pokouší upravit hesla. Tato akce vyžaduje zadání hesla systému Windows.</translation>
 <translation id="884296878221830158">Také řídí, která stránka se zobrazí při spuštění Chromu nebo po kliknutí na tlačítko Domovská stránka.</translation>
+<translation id="8859948767482842016">V prostoru uživatele <ph name="EXISTING_USER" /> jste se přihlásili pomocí pracovního účtu. Chcete v prohlížeči Chrome pro doménu <ph name="WORK_DOMAIN" /> vytvořit nový prostor, aby data zůstala oddělená?</translation>
 <translation id="8862326446509486874">Nemáte práva nutná k provádění instalací na úrovni systému. Zkuste spustit instalační program jako správce.</translation>
+<translation id="8877586659207810298">Vytvořit v Chromu nový prostor pro uživatele <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Znovu spustit Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Je k dispozici aktualizace Chromu}=1{Je k dispozici aktualizace Chromu}few{Již # dny je k dispozici aktualizace Chromu}many{Již # dne je k dispozici aktualizace Chromu}other{Již # dní je k dispozici aktualizace Chromu}}</translation>
 <translation id="9026991721384951619">Chrome OS vaše data nemohl synchronizovat, protože vaše přihlašovací údaje nejsou aktuální.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 34e52c024..0b200e6 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Informa tu <ph name="BEGIN_LINK" />configuración actual<ph name="END_LINK" /> para ayudarnos a mejorar Chrome</translation>
 <translation id="2151406531797534936">Reinicia Chrome ahora</translation>
 <translation id="2246246234298806438">Google Chrome no puede mostrar la vista previa de impresión si falta el visor de PDF incorporado.</translation>
+<translation id="226038281051944330">Accediste con una cuenta nueva en el espacio de <ph name="EXISTING_USER" />. ¿Deseas crear un nuevo espacio de Chrome para <ph name="NEW_USER" /> a fin de que tus datos se conserven separados?</translation>
 <translation id="2290014774651636340">Faltan las claves de la API de Google. Se inhabilitarán algunas funciones de Google Chrome.</translation>
 <translation id="2290095356545025170">¿Estás seguro de que deseas desinstalar Google Chrome?</translation>
 <translation id="2309047409763057870">Como esta es una instalación secundaria de Google Chrome, no puede establecerse como tu navegador predeterminado.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Abrir vínculo en una pes&amp;taña nueva de Chrome</translation>
 <translation id="4953650215774548573">Establecer Google Chrome como navegador predeterminado</translation>
 <translation id="495931528404527476">En Chrome</translation>
+<translation id="4960472897514318257">Accediste con una cuenta de trabajo. ¿Deseas crear un nuevo espacio de Chrome para <ph name="NEW_USER" /> a fin de que tus datos personales se conserven separados?</translation>
 <translation id="4990567037958725628">Google Chrome Canario</translation>
 <translation id="5062123544085870375">Reiniciar el Sistema operativo Chrome</translation>
 <translation id="5132929315877954718">Descubre aplicaciones, juegos, extensiones y temas geniales para Google Chrome.</translation>
 <translation id="5170938038195470297">No se puede usar tu perfil porque pertenece a una nueva versión de Google Chrome. Es posible que algunas características no estén disponibles. Especifica un directorio de perfil diferente o usa una nueva versión de Chrome.</translation>
+<translation id="5171117065011130146">¿Deseas crear un nuevo espacio de trabajo de Chrome?</translation>
 <translation id="5193136243808726294">El Sistema operativo Google Chrome no puede abrir esta página.</translation>
 <translation id="5251420635869119124">Los invitados pueden utilizar Chrome sin dejar nada detrás.</translation>
 <translation id="532046782124376502">Advertencia: Google Chrome no puede impedir que las extensiones guarden tu historial de navegación. Para inhabilitar esta extensión en modo de navegación incógnito, desmarca esta opción.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome no actualizado</translation>
 <translation id="8834965163890861871">Google Chrome está intentando editar contraseñas. Para permitirlo, ingresa tu contraseña de Windows.</translation>
 <translation id="884296878221830158">También controla qué página se muestra al iniciar Chrome o al hacer clic en el botón de página principal.</translation>
+<translation id="8859948767482842016">Accediste con una cuenta de trabajo en el espacio de <ph name="EXISTING_USER" />. ¿Deseas crear un nuevo espacio de Chrome para <ph name="WORK_DOMAIN" /> a fin de que tus datos se conserven separados?</translation>
 <translation id="8862326446509486874">No tienes los derechos que se requieren para realizar la instalación al nivel del sistema. Intenta ejecutar el instalador nuevamente como Administrador.</translation>
+<translation id="8877586659207810298">¿Deseas crear un nuevo espacio de Chrome para <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Volver a iniciar Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Hay una actualización de Chrome disponible}=1{Hay una actualización de Chrome disponible}other{Hay una actualización de Chrome disponible hace # días}}</translation>
 <translation id="9026991721384951619">El Sistema operativo Chrome no pudo sincronizar los datos porque la información de acceso de la cuenta está desactualizada.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index a2cd565..c695454 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Genera un informe de la <ph name="BEGIN_LINK" />configuración actual<ph name="END_LINK" /> para ayudar a mejorar Chrome</translation>
 <translation id="2151406531797534936">Reinicia Chrome ahora</translation>
 <translation id="2246246234298806438">Google Chrome no puede mostrar la vista previa de impresión si falta el visor de PDFs integrado.</translation>
+<translation id="226038281051944330">Has iniciado sesión con otra cuenta en el espacio de <ph name="EXISTING_USER" />. ¿Quieres crear un espacio Chrome para <ph name="NEW_USER" /> y mantener tus datos de forma separada?</translation>
 <translation id="2290014774651636340">Faltan las claves de la API de Google. Se inhabilitarán algunas funciones de Google Chrome.</translation>
 <translation id="2290095356545025170">¿Seguro que quieres desinstalar Google Chrome?</translation>
 <translation id="2309047409763057870">Esta instalación de Google Chrome es secundaria, por lo que no se puede establecer como navegador predeterminado.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Abrir enlace en una pes&amp;taña nueva de Chrome</translation>
 <translation id="4953650215774548573">Establecer Google Chrome como navegador predeterminado</translation>
 <translation id="495931528404527476">En Chrome</translation>
+<translation id="4960472897514318257">Has iniciado sesión con una cuenta de trabajo. ¿Quieres crear un espacio Chrome para <ph name="NEW_USER" /> y mantener tus datos de forma separada?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Reiniciar Chrome OS</translation>
 <translation id="5132929315877954718">Descubre formidables aplicaciones, juegos, extensiones y temas para Google Chrome.</translation>
 <translation id="5170938038195470297">No se puede usar tu perfil porque se corresponde con una versión más reciente de Google Chrome.
 
 Puede que algunas funciones no estén disponibles. Especifica otro directorio de perfil o usa una versión más reciente de Chrome.</translation>
+<translation id="5171117065011130146">¿Crear espacio de trabajo Chrome?</translation>
 <translation id="5193136243808726294">Google Chrome OS no puede abrir esta página.</translation>
 <translation id="5251420635869119124">Los invitados pueden utilizar Chrome sin dejar nada atrás.</translation>
 <translation id="532046782124376502">Advertencia: Google Chrome no puede evitar que las extensiones registren el historial de navegación. Para inhabilitar esta extensión en modo de incógnito, desactiva esta opción.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome no está actualizado</translation>
 <translation id="8834965163890861871">Google Chrome está intentando cambiar contraseñas. Para permitirlo, escribe tu contraseña de Windows.</translation>
 <translation id="884296878221830158">También controla qué página se muestra al iniciar Chrome o hacer clic en el botón Página de inicio.</translation>
+<translation id="8859948767482842016">Has iniciado sesión con una cuenta de trabajo en el espacio de <ph name="EXISTING_USER" />. ¿Quieres crear un espacio Chrome para <ph name="WORK_DOMAIN" /> y mantener tus datos de forma separada?</translation>
 <translation id="8862326446509486874">No dispones de los derechos necesarios para la instalación en el sistema. Intenta ejecutar de nuevo el programa de instalación como administrador.</translation>
+<translation id="8877586659207810298">¿Crear espacio Chrome para <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Volver a iniciar Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Hay una actualización de Chrome disponible}=1{Hay una actualización de Chrome disponible}other{Hay una actualización de Chrome disponible desde hace # días}}</translation>
 <translation id="9026991721384951619">Chrome OS no ha podido sincronizar los datos porque la información de inicio de sesión de tu cuenta está obsoleta.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_eu.xtb b/chrome/app/resources/google_chrome_strings_eu.xtb
index f473bf9..2119c1e 100644
--- a/chrome/app/resources/google_chrome_strings_eu.xtb
+++ b/chrome/app/resources/google_chrome_strings_eu.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Lagundu Chrome hobetzen <ph name="BEGIN_LINK" />uneko ezarpenen<ph name="END_LINK" /> berri emanda</translation>
 <translation id="2151406531797534936">Berrabiarazi Chrome</translation>
 <translation id="2246246234298806438">Google Chrome-k ezin du erakutsi inprimatze-aurrebista PDF dokumentuen ikustaile inkorporatua falta bada.</translation>
+<translation id="226038281051944330">Beste kontu batekin hasi duzu saioa <ph name="EXISTING_USER" /> erabiltzailearen eremuan. Datuak bereiz gordetzeko <ph name="NEW_USER" /> erabiltzailearentzat Chrome-ko eremu bat sortu nahi duzu?</translation>
 <translation id="2290014774651636340">Google APIaren gakoak falta dira. Agian Google Chrome-ren funtzio batzuk desgaituta egongo dira.</translation>
 <translation id="2290095356545025170">Ziur Google Chrome desinstalatu nahi duzula?</translation>
 <translation id="2309047409763057870">Google Chrome-ren bigarren mailako instalazio bat da hau; beraz, ezin duzu ezarri arakatzaile lehenetsi gisa.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Ireki esteka Chrome-ko beste &amp;fitxa batean</translation>
 <translation id="4953650215774548573">Ezarri Google Chrome arakatzaile lehenetsi gisa</translation>
 <translation id="495931528404527476">Chrome-n</translation>
+<translation id="4960472897514318257">Laneko kontu batekin hasi duzu saioa. Datu pertsonalak bereiz gordetzeko <ph name="NEW_USER" /> erabiltzailearentzat Chrome-ko eremu bat sortu nahi duzu?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Berrabiarazi Chrome OS</translation>
 <translation id="5132929315877954718">Ezagutu Google Chrome-rako aplikazio, joko, luzapen eta gai bikainak.</translation>
 <translation id="5170938038195470297">Ezin da profila erabili Google Chrome-ren bertsio berriago batekoa delako.
 
 Agian eginbide batzuk ez dira erabilgarri egongo. Zehaztu profilaren beste direktorio bat edo erabili Chrome-ren bertsio berriagoa.</translation>
+<translation id="5171117065011130146">Laneko Chrome eremu bat sortu nahi duzu?</translation>
 <translation id="5193136243808726294">Google Chrome OS sistemak ezin du ireki orri hau.</translation>
 <translation id="5251420635869119124">Gonbidatuek Chrome erabil dezakete aztarnarik utzi gabe.</translation>
 <translation id="532046782124376502">Abisua: Google Chrome-k ezin die eragotzi luzapenei zure arakatze-historia erregistratzea. Luzapena ezkutuko moduan desgaitzeko, desautatu aukera hau.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome zaharkituta dago</translation>
 <translation id="8834965163890861871">Pasahitzak editatzen saiatzen ari da Google Chrome. Hori baimentzeko, idatzi Windows-eko pasahitza.</translation>
 <translation id="884296878221830158">Chrome abiarazten duzunean edo Hasiera botoia sakatzen duzunean erakusten den orria ere kontrolatzen du.</translation>
+<translation id="8859948767482842016">Laneko kontu batekin hasi duzu saioa <ph name="EXISTING_USER" /> erabiltzailearen eremuan. Datuak bereiz gordetzeko <ph name="WORK_DOMAIN" /> domeinurako Chrome-ko eremu bat sortu nahi duzu?</translation>
 <translation id="8862326446509486874">Ez dituzu eskubide egokiak sistema mailako instalazio bat egiteko. Saiatu instalatzailea administratzaile gisa abiarazten.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> erabiltzailearentzat Chrome-ko eremu bat sortu nahi duzu?</translation>
 <translation id="8914504000324227558">Berrabiarazi Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome arakatzailearen eguneratze bat dago erabilgarri}=1{Chrome arakatzailearen eguneratze bat dago erabilgarri}other{Chrome arakatzailearen eguneratze batek # egun daramatza erabilgarri}}</translation>
 <translation id="9026991721384951619">Chrome OS sistemak ezin izan ditu zure datuak sinkronizatu kontuan saioa hasteko datuak iraungi egin direlako.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index 524a4c6..ef8b717 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Auta parantamaan Chromea ilmoittamalla <ph name="BEGIN_LINK" />nykyiset asetukset<ph name="END_LINK" />.</translation>
 <translation id="2151406531797534936">Käynnistä Chrome uudelleen nyt</translation>
 <translation id="2246246234298806438">Google Chrome ei voi näyttää tulostusesikatselua, koska PDF-katseluohjelma puuttuu.</translation>
+<translation id="226038281051944330">Kirjauduit sisään uudella tilillä käyttäjän <ph name="EXISTING_USER" /> tilaan. Haluatko luoda uuden Chrome-tilan käyttäjälle <ph name="NEW_USER" /> pitääksesi datasi erillisenä?</translation>
 <translation id="2290014774651636340">Googlen sovellusliittymän avaimet puuttuvat. Jotkin Google Chromen toiminnoista poistetaan käytöstä.</translation>
 <translation id="2290095356545025170">Haluatko varmasti poistaa Google Chromen?</translation>
 <translation id="2309047409763057870">Tämä on Google Chromen toissijainen asennus, eikä sitä voi asettaa oletusselaimeksi.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Avaa linkki uudella Chromen välilehdellä</translation>
 <translation id="4953650215774548573">Aseta Google Chrome oletusselaimeksi</translation>
 <translation id="495931528404527476">Chromessa</translation>
+<translation id="4960472897514318257">Kirjauduit sisään työtilillä. Haluatko luoda uuden Chrome-tilan käyttäjälle <ph name="NEW_USER" /> pitääksesi henkilökohtaiset tietosi erillisinä?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Käynnistä Chrome OS uudelleen</translation>
 <translation id="5132929315877954718">Löydät hienoja sovelluksia, pelejä ja teemoja Google Chromelle.</translation>
 <translation id="5170938038195470297">Profiiliasi ei voi käyttää, koska se on peräisin uudemmasta Google Chromen versiosta. Kaikkia toimintoja ei välttämättä voi käyttää. Määritä toinen profiilihakemisto tai käytä uudempaa Chromen versiota.</translation>
+<translation id="5171117065011130146">Luodaanko uusi Chromen työtila?</translation>
 <translation id="5193136243808726294">Google Chrome ‑käyttöjärjestelmä ei voi avata tätä sivua.</translation>
 <translation id="5251420635869119124">Vierailijat voivat käyttää Chromea jälkiä jättämättä.</translation>
 <translation id="532046782124376502">Varoitus: Google Chrome ei voi estää laajennuksia tallentamasta selaushistoriaasi. Voit poistaa tämän laajennuksen käytöstä incognito-tilassa poistamalla tämän valinnan.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome on vanhentunut</translation>
 <translation id="8834965163890861871">Google Chrome yrittää muuttaa salasanoja. Salli tämä kirjoittamalla Windows-salasanasi.</translation>
 <translation id="884296878221830158">Määrittää myös Chromen aloitussivun ja Etusivu-painikkeella avattavan sivun.</translation>
+<translation id="8859948767482842016">Kirjauduit sisään työtilillä käyttäjän <ph name="EXISTING_USER" /> tilaan. Haluatko luoda uuden Chrome-tilan (<ph name="WORK_DOMAIN" />) pitääksesi datasi erillisenä?</translation>
 <translation id="8862326446509486874">Sinulla ei ole käyttöoikeuksia järjestelmätason asennukseen. Kokeile asennusohjelman suorittamista uudelleen järjestelmänvalvojana.</translation>
+<translation id="8877586659207810298">Luodaanko uusi Chrome-tila käyttäjälle <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Käynnistä Chrome uudelleen</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome-päivitys on saatavilla}=1{Chrome-päivitys on saatavilla}other{Chrome-päivitys on ollut saatavilla # vuorokauden ajan}}</translation>
 <translation id="9026991721384951619">Chrome-käyttöjärjestelmä ei voi synkronoida tietoja, sillä tilin kirjautumistiedot ovat vanhentuneet.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index 245a5773..939c0e3 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Tulungang pahusayin ang Chrome sa pamamagitan ng pag-ulat sa <ph name="BEGIN_LINK" />mga kasalukuyang setting<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Paki-restart ang Chrome ngayon</translation>
 <translation id="2246246234298806438">Hindi maipapakita ng Google Chrome ang preview sa pag-print kapag nawawala ang built-in na PDF viewer.</translation>
+<translation id="226038281051944330">Nag-sign in ka gamit ang isang bagong account sa space ni <ph name="EXISTING_USER" />. Gusto mo bang gumawa ng bagong Chrome space para kay <ph name="NEW_USER" /> para mapanatiling nakahiwalay ang iyong data?</translation>
 <translation id="2290014774651636340">Nawawala ang mga Google API key. Madi-disable ang ilang pagpapagana ng Google Chrome.</translation>
 <translation id="2290095356545025170">Sigurado ka bang nais mong i-uninstall ang Google Chrome?</translation>
 <translation id="2309047409763057870">Pangalawang pag-install ito ng Google Chrome at hindi ito maaaring gawing iyong default na browser.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Buksan ang link sa bagong &amp;tab ng Chrome</translation>
 <translation id="4953650215774548573">Itakda ang Google Chrome bilang iyong default na browser</translation>
 <translation id="495931528404527476">Sa Chrome</translation>
+<translation id="4960472897514318257">Nag-sign in ka gamit ang isang account sa trabaho. Gusto mo bang gumawa ng bagong Chrome space para kay <ph name="NEW_USER" /> para mapanatiling nakahiwalay ang iyong personal na data?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">I-restart ang Chrome OS</translation>
 <translation id="5132929315877954718">Tumuklas ng mahuhusay na app, laro, extension at tema para sa Google Chrome.</translation>
 <translation id="5170938038195470297">Hindi magagamit ang iyong profile dahil mula ito sa isang mas bagong bersyon ng Google Chrome.
 
 Maaaring hindi available ang ilang tampok. Mangyaring tumukoy ng ibang direktoryo ng profile o gumamit ng mas bagong bersyon ng Chrome.</translation>
+<translation id="5171117065011130146">Gumawa ng bagong Chrome Work space?</translation>
 <translation id="5193136243808726294">Hindi mabuksan ng Google Chrome OS ang page na ito.</translation>
 <translation id="5251420635869119124">Makakagamit ng Chrome ang mga bisita nang hindi nag-iiwan ng anumang bakas.</translation>
 <translation id="532046782124376502">Babala: Hindi mapipigilan ng Google Chrome ang pagtatala ng mga extension sa iyong history ng pag-browse. Upang i-disable ang extension na ito sa incognito mode, alisin sa pagkakapili ang opsyong ito.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Luma na ang Chrome</translation>
 <translation id="8834965163890861871">Sinusubukan ng Google Chrome na i-edit ang mga password. I-type ang iyong password sa Windows para payagan ito.</translation>
 <translation id="884296878221830158">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chrome o na-click ang button ng Home.</translation>
+<translation id="8859948767482842016">Nag-sign in ka gamit ang isang Account sa trabaho sa space ni <ph name="EXISTING_USER" />. Gusto mo bang gumawa ng bagong Chrome space para sa <ph name="WORK_DOMAIN" /> para mapanatiling nakahiwalay ang iyong data?</translation>
 <translation id="8862326446509486874">Wala kang naaangkop na mga karapatan para sa pag-install sa antas ng system. Subukan muling patakbuhin ang installer bilang Administrator.</translation>
+<translation id="8877586659207810298">Gumawa ng bagong Chrome space para kay <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Muling ilunsad ang Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{May available na update sa Chrome}=1{May available na update sa Chrome}one{# araw nang may available na update sa Chrome}other{# na araw nang may available na update sa Chrome}}</translation>
 <translation id="9026991721384951619">Hindi ma-sync ng Chrome OS ang iyong data dahil hindi napapanahon ang mga detalye sa pag-sign in sa iyong account.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr-CA.xtb b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
index 76ed91c2..a6bbee1 100644
--- a/chrome/app/resources/google_chrome_strings_fr-CA.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr-CA.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Aidez-nous à améliorer Google Chrome en nous signalant les <ph name="BEGIN_LINK" />paramètres actuels<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Veuillez redémarrer Chrome maintenant</translation>
 <translation id="2246246234298806438">Google Chrome ne peut pas afficher l'aperçu avant impression lorsque le visualiseur de documents PDF intégré n'est pas installé.</translation>
+<translation id="226038281051944330">Vous vous êtes connecté à l'aide d'un nouveau compte dans l'espace de <ph name="EXISTING_USER" />. Voulez-vous créer un espace Chrome pour <ph name="NEW_USER" /> afin de garder vos données distinctes?</translation>
 <translation id="2290014774651636340">Les clés d'API Google sont manquantes. Certaines fonctionnalités de Google Chrome seront désactivées.</translation>
 <translation id="2290095356545025170">Voulez-vous vraiment désinstaller Google Chrome?</translation>
 <translation id="2309047409763057870">Cette installation de Google Chrome est secondaire. Celui-ci ne peut donc pas servir de navigateur par défaut.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Ouvrir le lien dans un nouvel ongle&amp;t Chrome</translation>
 <translation id="4953650215774548573">Sélectionner Google Chrome comme navigateur par défaut</translation>
 <translation id="495931528404527476">Dans Chrome</translation>
+<translation id="4960472897514318257">Vous vous êtes connecté à l'aide d'un compte professionnel. Voulez-vous créer un espace Chrome pour <ph name="NEW_USER" /> afin de garder vos données personnelles distinctes?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Redémarrer Chrome OS</translation>
 <translation id="5132929315877954718">Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels conçus pour Google Chrome.</translation>
 <translation id="5170938038195470297">Votre profil ne peut pas être utilisé parce qu'il provient d'une version plus récente de Google Chrome.
 
 Certaines fonctionnalités peuvent être inaccessibles. Veuillez spécifier un répertoire de profil différent ou utiliser une version plus récente de Google Chrome.</translation>
+<translation id="5171117065011130146">Créer un espace professionnel Chrome?</translation>
 <translation id="5193136243808726294">Google Chrome OS ne peut pas ouvrir cette page.</translation>
 <translation id="5251420635869119124">Les invités peuvent utiliser Google Chrome sans rien laisser derrière eux.</translation>
 <translation id="532046782124376502">Avertissement : Google Chrome ne peut pas empêcher les extensions d'enregistrer votre historique de navigation. Pour désactiver cette extension en mode de navigation privée, désélectionnez cette option.</translation>
@@ -265,7 +268,9 @@
 <translation id="8823341990149967727">Google Chrome n'est plus à jour</translation>
 <translation id="8834965163890861871">Google Chrome essaie de modifier des mots de passe. Pour autoriser cette action, entrez votre mot de passe Windows.</translation>
 <translation id="884296878221830158">Elle définit également la page qui s'affiche au démarrage de Chrome ou lorsque vous cliquez sur le bouton Accueil.</translation>
+<translation id="8859948767482842016">Vous vous êtes connecté à l'aide d'un compte professionnel dans l'espace de <ph name="EXISTING_USER" />. Voulez-vous créer un espace Chrome pour <ph name="WORK_DOMAIN" /> afin de garder vos données distinctes?</translation>
 <translation id="8862326446509486874">Vous ne disposez pas des droits requis pour faire une installation sur le système. Relancez l'installation une fois que vous serez connecté comme administrateur.</translation>
+<translation id="8877586659207810298">Créer un espace Chrome pour <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Relancer Google Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Une mise à jour de Chrome est proposée}=1{Une mise à jour de Chrome est proposée}one{Une mise à jour de Chrome est proposée depuis # jour}other{Une mise à jour de Chrome est proposée depuis # jours}}</translation>
 <translation id="9026991721384951619">Chrome OS n'a pas pu synchroniser vos données, car vos renseignements de connexion ne sont plus à jour.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index 79e2b27..a87a66b 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -47,6 +47,7 @@
 <translation id="2123055963409958220">Aidez-nous à améliorer Chrome en nous signalant vos <ph name="BEGIN_LINK" />paramètres actuels<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Veuillez redémarrer Chrome maintenant</translation>
 <translation id="2246246234298806438">Impossible d'afficher l'aperçu d'impression dans Google Chrome, car la visionneuse de documents PDF intégrée est absente.</translation>
+<translation id="226038281051944330">Vous vous êtes connecté avec un nouveau compte dans l'espace d'un autre utilisateur (<ph name="EXISTING_USER" />). Souhaitez-vous créer un espace Chrome pour <ph name="NEW_USER" /> afin de séparer vos données ?</translation>
 <translation id="2290014774651636340">Les clés API Google sont manquantes. Certaines fonctionnalités de Google Chrome vont être désactivées.</translation>
 <translation id="2290095356545025170">Voulez-vous vraiment désinstaller Google Chrome ?</translation>
 <translation id="2309047409763057870">Ceci est une installation secondaire de Google Chrome. Vous ne pouvez pas le définir comme navigateur par défaut.</translation>
@@ -145,12 +146,14 @@
 <translation id="4895437082222824641">Ouvrir le lien dans un nouvel ongle&amp;t Chrome</translation>
 <translation id="4953650215774548573">Définir Google Chrome en tant que navigateur par défaut</translation>
 <translation id="495931528404527476">Dans Chrome</translation>
+<translation id="4960472897514318257">Vous vous êtes connecté avec un compte professionnel. Souhaitez-vous créer un espace Chrome pour <ph name="NEW_USER" /> afin de séparer vos données à caractère personnel ?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Redémarrer Chrome OS</translation>
 <translation id="5132929315877954718">Découvrez des applications, des jeux, des extensions et des thèmes exceptionnels pour Google Chrome.</translation>
 <translation id="5170938038195470297">Votre profil ne peut pas être utilisé parce qu'il vient d'une version plus récente de Google Chrome. 
 
 Certaines fonctionnalités peuvent être indisponibles. Veuillez spécifier un répertoire de profil différent ou utiliser une version plus récente de Google Chrome.</translation>
+<translation id="5171117065011130146">Créer un espace professionnel Chrome ?</translation>
 <translation id="5193136243808726294">Google Chrome OS ne peut pas ouvrir cette page</translation>
 <translation id="5251420635869119124">Les invités peuvent utiliser Chrome sans laisser aucune trace.</translation>
 <translation id="532046782124376502">Avertissement : Google Chrome ne peut pas empêcher les extensions d'enregistrer votre historique de navigation. Pour désactiver cette extension en mode navigation privée, désélectionnez-la.</translation>
@@ -264,7 +267,9 @@
 <translation id="8823341990149967727">Version de Chrome obsolète</translation>
 <translation id="8834965163890861871">Google Chrome tente de modifier les mots de passe. Pour autoriser cette action, saisissez votre mot de passe Windows.</translation>
 <translation id="884296878221830158">Elle contrôle également la page qui s'affiche au démarrage de Chrome ou lorsque vous cliquez sur le bouton Accueil.</translation>
+<translation id="8859948767482842016">Vous vous êtes connecté avec un compte professionnel dans l'espace d'un autre utilisateur (<ph name="EXISTING_USER" />). Souhaitez-vous créer un espace Chrome pour <ph name="WORK_DOMAIN" /> afin de séparer vos données ?</translation>
 <translation id="8862326446509486874">Vous ne disposez pas des droits requis pour installer la version système. Relancez l'installation en vous connectant comme administrateur.</translation>
+<translation id="8877586659207810298">Créer un espace Chrome pour <ph name="NEW_USER" /> ?</translation>
 <translation id="8914504000324227558">Relancer Google Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Une mise à jour de Chrome est disponible}=1{Une mise à jour de Chrome est disponible}one{Une mise à jour de Chrome est disponible depuis # jour}other{Une mise à jour de Chrome est disponible depuis # jours}}</translation>
 <translation id="9026991721384951619">Impossible de synchroniser vos données dans Chrome OS, car les informations de connexion de votre compte ne sont plus à jour.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index 98dac6b1..601762c 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />વર્તમાન સેટિંગ્સ<ph name="END_LINK" />ની જાણ કરીને Chrome ને બહેતર બનાવવામાં સહાય કરો</translation>
 <translation id="2151406531797534936">કૃપા કરીને હવે Chrome ફરી શરૂ કરો</translation>
 <translation id="2246246234298806438">જ્યારે બિલ્ટ-ઇન PDF વ્યૂઅર ગૂમ હોય ત્યારે Google Chrome પ્રિન્ટ પ્રીવ્યૂ બતાવી શકતું નથી.</translation>
+<translation id="226038281051944330">તમે <ph name="EXISTING_USER" />ની સ્પેસમાં નવા એકાઉન્ટ વડે સાઇન ઇન કર્યું છે. તમારો ડેટા અલગ રાખવા માટે, શું તમે <ph name="NEW_USER" /> માટે નવી Chrome સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="2290014774651636340">Google API કીઝ ખૂટે છે. Google Chrome ની કેટલીક કાર્યક્ષમતા અક્ષમ થશે.</translation>
 <translation id="2290095356545025170">શું તમને ખાતરી છે કે તમારે Google Chromeને અનઇન્સ્ટૉલ કરવું છે?</translation>
 <translation id="2309047409763057870">આ Google Chrome નું દ્વિતીય ઇન્સ્ટૉલેશન છે અને આને તમારું ડિફૉલ્ટ બ્રાઉઝર બનાવી શકાતું નથી.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">નવા Chrome &amp;ટૅબમાં લિંક ખોલો</translation>
 <translation id="4953650215774548573">Google Chrome ને તમારા ડિફોલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation>
 <translation id="495931528404527476">Chrome માં</translation>
+<translation id="4960472897514318257">તમે ઑફિસના એકાઉન્ટ વડે લૉગ ઇન કર્યું છે. તમારો વ્યક્તિગત ડેટા અલગ રાખવા માટે, શું તમે <ph name="NEW_USER" /> માટે નવી Chrome સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="4990567037958725628">Google Chrome કૅનેરી</translation>
 <translation id="5062123544085870375">Chrome OS ફરી શરૂ કરો</translation>
 <translation id="5132929315877954718">Google Chrome માટે શ્રેષ્ઠ ઍપ્લિકેશનો, રમતો, એક્સટેન્શન્સ અને થીમ્સ શોધો</translation>
 <translation id="5170938038195470297">તમારી પ્રોફાઇલનો ઉપયોગ કરી શકાતો નથી કારણ કે તે Google Chromeના નવા વર્ઝન તરફથી છે.
 
 કેટલીક સુવિધાઓ ઉપલબ્ધ થઈ શકે છે. કૃપા કરીને અલગ પ્રોફાઇલ ડિરેક્ટરીનો ઉલ્લેખ કરો અથવા Chromeના નવા વર્ઝનનો ઉપયોગ કરો.</translation>
+<translation id="5171117065011130146">નવી Chrome ઑફિસ સ્પેસ બનાવીએ?</translation>
 <translation id="5193136243808726294">Google Chrome OS, આ પેજને ખોલી શકતું નથી.</translation>
 <translation id="5251420635869119124">અતિથિઓ કંઈપણ પાછળ છોડ્યાં વિના Chrome નો ઉપયોગ કરી શકે છે.</translation>
 <translation id="532046782124376502">ચેતવણી: Google Chrome તમારો બ્રાઉઝિંગ ઇતિહાસ રેકોર્ડ કરવાથી એક્સ્ટેંશનને અટકાવી શકતું નથી. છુપા મોડમાં આ એક્સ્ટેંશનને બંધ કરવા માટે, આ વિકલ્પની પસંદગીને નાપસંદ કરો.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome જૂનું થઈ ગયું છે</translation>
 <translation id="8834965163890861871">Google Chrome પાસવર્ડમાં ફેરફાર કરવાનો પ્રયાસ કરે છે. આની મંજૂરી આપવા માટે તમારો Windows પાસવર્ડ લખો.</translation>
 <translation id="884296878221830158">જ્યારે તમે Chrome શરૂ કરો અથવા હોમ બટન ક્લિક કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
+<translation id="8859948767482842016">તમે <ph name="EXISTING_USER" />ની સ્પેસમાં ઑફિસના એકાઉન્ટ વડે સાઇન ઇન કર્યું છે. તમારો ડેટા અલગ રાખવા માટે, શું તમે <ph name="WORK_DOMAIN" /> માટે નવી Chrome સ્પેસ બનાવવા માગો છો?</translation>
 <translation id="8862326446509486874">તમારી પાસે સિસ્ટમ-સ્તરનાં ઇન્સ્ટોલ માટે ઉચિત અધિકારો નથી. એડમિન તરીકે ઇન્સ્ટૉલરને ફરીથી ચલાવવનો પ્રયાસ કરો.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />માટે નવી Chrome સ્પેસ બનાવીએ?</translation>
 <translation id="8914504000324227558">Chrome ફરીથી લોંચ કરો</translation>
 <translation id="8999208279178790196">{0,plural, =0{એક Chrome અપડેટ ઉપલબ્ધ છે}=1{એક Chrome અપડેટ ઉપલબ્ધ છે}one{Chrome અપડેટ # દિવસ માટે ઉપલબ્ધ છે}other{Chrome અપડેટ # દિવસ માટે ઉપલબ્ધ છે}}</translation>
 <translation id="9026991721384951619">સાઇન ઇન વિગતો જૂની હોવાને કારણે Chrome OS તમારા ડેટાને સિંક કરી શક્યું નથી.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 9599efb..ed12d60 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />अभी वाली सेटिंग<ph name="END_LINK" /> की रिपोर्ट करके Chrome को बेहतर बनाने में सहायता करें</translation>
 <translation id="2151406531797534936">कृपया Chrome को अभी रीस्टार्ट करें</translation>
 <translation id="2246246234298806438">अगर Google Chrome के साथ ही आने वाला PDF व्यूअर मौजूद नहीं होगा तो, Google Chrome प्रिंट करने से पहले की झलक नहीं दिखा पाएगा.</translation>
+<translation id="226038281051944330">आपने <ph name="EXISTING_USER" /> के स्पेस में नए खाते से साइन इन किया था. क्या आप अपने डेटा को अलग रखने के लिए, <ph name="NEW_USER" /> के लिए नया Chrome स्पेस बनाना चाहते हैं?</translation>
 <translation id="2290014774651636340">Google API (एपीआई) कुंजियां मौजूद नहीं हैं. Google Chrome के कुछ फ़ंक्शन बंद कर दिए जाएंगे.</translation>
 <translation id="2290095356545025170">क्या आप वाकई Google Chrome को विस्थापित करना चाहते हैं?</translation>
 <translation id="2309047409763057870">यह Google Chrome का द्वितीयक इंस्टॉलेशन है और इसे आपका डिफ़ॉल्ट ब्राउज़र नहीं बनाया जा सकता.</translation>
@@ -142,12 +143,14 @@
 <translation id="4895437082222824641">नए Chrome &amp;टैब में लिंक खोलें</translation>
 <translation id="4953650215774548573">Google Chrome को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करना</translation>
 <translation id="495931528404527476">Chrome में</translation>
+<translation id="4960472897514318257">आपने काम से जुड़े खाते से साइन इन किया है. क्या आप अपने निजी डेटा को अलग रखने के लिए, <ph name="NEW_USER" /> के लिए नया Chrome स्पेस बनाना चाहते हैं?</translation>
 <translation id="4990567037958725628">Google Chrome कैनरी</translation>
 <translation id="5062123544085870375">Chrome OS को रीस्टार्ट करें</translation>
 <translation id="5132929315877954718">Google Chrome के लिए बेहतरीन ऐप्स ,गेम, एक्सटेंशन और थीम खोजें.</translation>
 <translation id="5170938038195470297">आपकी प्रोफ़ाइल का उपयोग नहीं किया जा सकता क्‍योंकि यह Google Chrome के किसी नए वर्शन से है.
 
 कुछ विशेषताएं अनुपलब्‍ध हो सकती हैं. कृपया कोई भिन्‍न प्रोफ़ाइल निर्देशिका बताएं या Chrome के किसी नए वर्शन का उपयोग करें.</translation>
+<translation id="5171117065011130146">क्या आप Chrome पर काम से जुड़ा नया स्पेस बनाना चाहते हैं?</translation>
 <translation id="5193136243808726294">Google Chrome OS यह पेज नहीं खोल सकता.</translation>
 <translation id="5251420635869119124">अतिथि कोई पदचिह्न छोड़े बिना Chrome का उपयोग कर सकते हैं.</translation>
 <translation id="532046782124376502">चेतावनी: Google Chrome आपका ब्राउज़िंग इतिहास रिकॉर्ड करने से एक्‍सटेंशन को नहीं रोक सकता है. गुप्त मोड में इस एक्‍सटेंशन को बंद करने के लिए, इस विकल्‍प को चुना जाना हटाएं.</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">Chrome पुराना हो गया है</translation>
 <translation id="8834965163890861871">Google Chrome, पासवर्ड में बदलाव करने की कोशिश कर रहा है. इसकी अनुमति देने के लिए Windows का पासवर्ड डालें.</translation>
 <translation id="884296878221830158">इससे यह भी नियंत्रित होता है कि जब आप Chrome शुरू करते हैं या होम बटन पर क्लिक करते हैं तब कौन सा पेज दिखाया जाए.</translation>
+<translation id="8859948767482842016">आपने <ph name="EXISTING_USER" /> के स्पेस में, काम से जुड़े खाते से साइन इन किया था. क्या आप अपने डेटा को अलग रखने के लिए, <ph name="WORK_DOMAIN" /> के लिए नया Chrome स्पेस बनाना चाहते हैं?</translation>
 <translation id="8862326446509486874">सिस्टम-स्तर स्थापना के लिए आपके पास उचित अधिकार नहीं हैं. इंस्टॉलर को व्यवस्थापक के रूप में फिर से चलाने का प्रयास करें.</translation>
+<translation id="8877586659207810298">क्या आप <ph name="NEW_USER" /> के लिए नया Chrome स्पेस बनाना चाहते हैं?</translation>
 <translation id="8914504000324227558">Chrome को फिर से लॉन्‍च करें</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome का एक अपडेट उपलब्ध है}=1{Chrome का एक अपडेट उपलब्ध है}one{Chrome का अपडेट # दिनों से उपलब्ध है}other{Chrome का अपडेट # दिनों से उपलब्ध है}}</translation>
 <translation id="9026991721384951619">Chrome OS आपका डेटा सिंक नहीं कर सका क्योंकि आपके खाता साइन इन विवरण की समय सीमा पूरी हो चुकी है.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index 8048c55b..711009f 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Segítsen a Chrome fejlesztésében a <ph name="BEGIN_LINK" />jelenlegi beállítások<ph name="END_LINK" /> elküldésével</translation>
 <translation id="2151406531797534936">Indítsa újra most a Chrome-ot</translation>
 <translation id="2246246234298806438">A Google Chrome nem tudja megjeleníteni a nyomtatási előnézetet, ha nincs beépített PDF-megjelenítő.</translation>
+<translation id="226038281051944330">Új fiókkal jelentkezett be <ph name="EXISTING_USER" /> Space-profiljába. Szeretne új Chrome Space-profilt létrehozni <ph name="NEW_USER" /> felhasználóhoz, hogy adatait elkülönítve tárolhassa?</translation>
 <translation id="2290014774651636340">Hiányoznak Google API-kulcsok. A Google Chrome egyes funkciói kikapcsolnak.</translation>
 <translation id="2290095356545025170">Biztos benne, hogy eltávolítja a Google Chrome-ot?</translation>
 <translation id="2309047409763057870">Ez a Google Chrome második telepítése, amelyet nem állíthat be az alapértelmezett böngészővé.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Link megnyi&amp;tása új Chrome-lapon</translation>
 <translation id="4953650215774548573">A Google Chrome beállítása alapértelmezett böngészőként</translation>
 <translation id="495931528404527476">A Chrome-ban</translation>
+<translation id="4960472897514318257">Ön munkahelyi fiókkal jelentkezett be. Szeretne új Chrome Space-profilt létrehozni <ph name="NEW_USER" /> felhaszálóhoz, hogy személyes adatait elkülönítve tárolhassa?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">A Chrome OS újraindítása</translation>
 <translation id="5132929315877954718">Fedezzen fel nagyszerű alkalmazásokat, játékokat, bővítményeket és témákat a Google Chrome-hoz.</translation>
 <translation id="5170938038195470297">A profilja nem használható, mivel a Google Chrome egy újabb verziójából származik. Előfordulhat, hogy egyes funkciók nem érhetők el. Kérjük, adjon meg egy másik profilmappát, vagy használja a Google Chrome újabb verzióját.</translation>
+<translation id="5171117065011130146">Új munkahelyi Chrome Space-profilt szeretne létrehozni?</translation>
 <translation id="5193136243808726294">A Google Chrome OS nem tudja megnyitni ezt az oldalt.</translation>
 <translation id="5251420635869119124">A vendégek úgy használhatják a Chrome-ot, hogy nem hagynak hátra semmit.</translation>
 <translation id="532046782124376502">Figyelmeztetés: A Google Chrome nem tudja megakadályozni, hogy a bővítmények rögzítsék a böngészési előzményeket. A bővítmény inkognitó módban való használatának letiltásához törölje e lehetőség bejelölését.</translation>
@@ -257,7 +260,9 @@
 <translation id="8823341990149967727">A Chrome elavult</translation>
 <translation id="8834965163890861871">A Google Chrome szerkeszteni próbálja a jelszavakat. Az engedélyezéshez adja meg Windows-jelszavát.</translation>
 <translation id="884296878221830158">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chrome indításakor vagy a Kezdőlap gombra történő kattintáskor.</translation>
+<translation id="8859948767482842016">Ön munkahelyi fiókkal jelentkezett be <ph name="EXISTING_USER" /> Space-profiljába. Szeretne új Chrome Space-profilt létrehozni a(z) <ph name="WORK_DOMAIN" /> domainhez, hogy adatait elkülönítve tárolhassa?</translation>
 <translation id="8862326446509486874">Nincsenek meg a megfelelő jogai a rendszerszintű telepítéshez. Indítsa újra a telepítőt rendszergazdaként.</translation>
+<translation id="8877586659207810298">Létrehoz új Chrome Space-profilt <ph name="NEW_USER" /> számára?</translation>
 <translation id="8914504000324227558">A Chrome újraindítása</translation>
 <translation id="8999208279178790196">{0,plural, =0{Rendelkezésre áll egy Chrome-frissítés}=1{Rendelkezésre áll egy Chrome-frissítés}other{# napja rendelkezésre áll egy Chrome-frissítés}}</translation>
 <translation id="9026991721384951619">A Chrome OS nem tudta szinkronizálni az adatokat, mert a fiók bejelentkezési adatai elavultak.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index 13171bd..47cc2da 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Bantu Chrome jadi lebih baik dengan melaporkan <ph name="BEGIN_LINK" />setelan saat ini<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Mulai ulang Chrome sekarang</translation>
 <translation id="2246246234298806438">Google Chrome tidak dapat menampilkan pratinjau cetak jika penampil PDF default hilang.</translation>
+<translation id="226038281051944330">Anda login dengan akun baru di space <ph name="EXISTING_USER" />. Ingin membuat space Chrome baru untuk <ph name="NEW_USER" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="2290014774651636340">Kunci API Google tidak ada. Beberapa fungsi Google Chrome tidak akan berfungsi.</translation>
 <translation id="2290095356545025170">Apakah Anda yakin ingin mencopot penginstalan Google Chrome?</translation>
 <translation id="2309047409763057870">Ini adalah pemasangan Google Chrome sekunder, dan tidak dapat digunakan sebagai browser default.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Buka link di &amp;tab Chrome baru</translation>
 <translation id="4953650215774548573">Setel Google Chrome sebagai browser default Anda</translation>
 <translation id="495931528404527476">Di Chrome</translation>
+<translation id="4960472897514318257">Anda login dengan akun kerja. Ingin membuat space Chrome baru untuk <ph name="NEW_USER" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Mulai ulang Chrome OS</translation>
 <translation id="5132929315877954718">Temukan aplikasi, game, ekstensi, dan tema yang hebat untuk Google Chrome.</translation>
 <translation id="5170938038195470297">Profil Anda tidak dapat digunakan karena berasal dari versi terbaru Google Chrome. Beberapa fitur mungkin tidak tersedia. Tentukan direktori profil yang berbeda atau gunakan versi Chrome yang lebih anyar.</translation>
+<translation id="5171117065011130146">Buat space Chrome Work baru?</translation>
 <translation id="5193136243808726294">Google Chrome OS tidak dapat membuka halaman ini.</translation>
 <translation id="5251420635869119124">Tamu dapat menggunakan Chrome tanpa meninggalkan apa pun.</translation>
 <translation id="532046782124376502">Peringatan: Google Chrome tidak dapat mencegah ekstensi merekam histori browsing Anda. Untuk menonaktifkan ekstensi ini dalam mode samaran, batalkan memilih opsi ini.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome Terlalu Lawas</translation>
 <translation id="8834965163890861871">Google Chrome mencoba mengedit sandi. Ketik sandi Windows Anda untuk mengizinkannya.</translation>
 <translation id="884296878221830158">Juga mengontrol halaman apa yang ditampilkan saat Anda memulai Chrome atau mengeklik tombol Beranda.</translation>
+<translation id="8859948767482842016">Anda login dengan Akun kerja di space <ph name="EXISTING_USER" />. Ingin membuat space Chrome baru untuk <ph name="WORK_DOMAIN" /> agar data pribadi dan data kerja tetap terpisah?</translation>
 <translation id="8862326446509486874">Anda tidak memiliki hak yang diperlukan untuk pemasangan tingkat sistem. Coba jalankan lagi pemasang saat login sebagai Administrator.</translation>
+<translation id="8877586659207810298">Buat space Chrome baru untuk <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Luncurkan Ulang Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Update Chrome tersedia}=1{Update Chrome tersedia}other{Update Chrome telah tersedia selama # hari}}</translation>
 <translation id="9026991721384951619">Chrome OS tidak dapat menyinkronkan data karena detail ID masuk akun Anda belum diperbarui.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index 8ae1cf914..5575a15 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">ხელი შეუწყვეთ Chrome-ის გაუმჯობესებას <ph name="BEGIN_LINK" />მიმდინარე პარამეტრების<ph name="END_LINK" /> გამოგზავნის მეშვეობით</translation>
 <translation id="2151406531797534936">გთხოვთ, ახლავე გადატვირთოთ Chrome</translation>
 <translation id="2246246234298806438">Google Chrome-ს არ შეუძლია აჩვენოს ნახვა ამობეჭდვამდე როდესაც ჩაშენებული PDF მნახველი არ არის.</translation>
+<translation id="226038281051944330">თქვენ ახალი ანგარიშით შეხვედით <ph name="EXISTING_USER" />-ის სივრცეში. გსურთ, მონაცემების განსაცალკევებლად, შექმნათ ახალი სივრცე Chrome-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="2290014774651636340">Google API გასაღები გამოტოვებულია. Google Chrome-ის ზოგიერთი ფუნქცია გამორთული იქნება.</translation>
 <translation id="2290095356545025170">ნამდვილად გსურთ მოახდინოთ Google Chrome-ის დეინსტალაცია?</translation>
 <translation id="2309047409763057870">ეს Google Chrome-ის მეორადი ინსტალაცია არის და ნაგულისხმევ ბრაუზერად ის ვერ დაყენდება.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">ბმულის გახსნა Chrome-ის ახალ ჩა&amp;ნართში</translation>
 <translation id="4953650215774548573">Google Chrome-ის დაყენება ნაგულისხმევ ბრაუზერად</translation>
 <translation id="495931528404527476">Chrome-ში</translation>
+<translation id="4960472897514318257">თქვენ შეხვედით სამსახურის ანგარიშით. გსურთ, პერსონალური მონაცემების განსაცალკევებლად, შექმნათ ახალი სივრცე Chrome-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">გადატვირთეთ Chrome OS</translation>
 <translation id="5132929315877954718">აღმოაჩინეთ დიდებული აპები, თამაშები, გაფართოებები და თემები Google Chrome-ისთვის.</translation>
 <translation id="5170938038195470297">თქვენი პროფილის გამოყენება შეუძლებელია, რადგან იგი მიღებულია Google Chrome-ის უფრო ახალი ვერსიიდან.
 
 ზოგიერთი ფუნქცია შეიძლება მიუწვდომელი იყოს. მიუთითეთ პროფილის სხვა დირექტორია ან გამოიყენეთ Chrome-ის უფრო ახალი ვერსია.</translation>
+<translation id="5171117065011130146">შეიქმნას ახალი სამუშაო სივრცე Chrome-ში?</translation>
 <translation id="5193136243808726294">Google Chrome OS ვერ ხსნის ამ გვერდს.</translation>
 <translation id="5251420635869119124">სტუმრებს შეუძლიათ Chrome-ის გამოყენება და მისი ყველა ფუნქციით სარგებლობა.</translation>
 <translation id="532046782124376502">გაფრთხილება: Google Chrome ვერ შეუშლის ხელს გაფართოებებს ვების დათვალიერების ისტორიის შენახვაში. ამ გაფართოების ინკოგნიტო რეჟიმში გამოსართავად მოხსენით მონიშვნა ამ ვარიანტზე.</translation>
@@ -265,7 +268,9 @@
 <translation id="8823341990149967727">Chrome მოძველებულია</translation>
 <translation id="8834965163890861871">Google Chrome ცდილობს პაროლების რედაქტირებას. აღნიშნულის დასაშვებად აკრიფეთ თქვენი Windows-ის პაროლი ამის დასაშვებად.</translation>
 <translation id="884296878221830158">ასევე აკონტროლებს, თუ რომელი გვერდი გამოჩნდება Chrome-ის გაშვებისას ან როცა დააწკაპუნებთ ღილაკზე „საწყისი“.</translation>
+<translation id="8859948767482842016">თქვენ სამსახურის ანგარიშით შეხვედით <ph name="EXISTING_USER" />-ის სივრცეში. გსურთ, მონაცემების განსაცალკევებლად, შექმნათ ახალი სივრცე Chrome-ში <ph name="WORK_DOMAIN" />-ისთვის?</translation>
 <translation id="8862326446509486874">თქვენ არ გაქვთ შესაბამისი უფლებები სისტემის დონეზე ინსტალაციისთვის. სცადეთ ინსტალაციის პროგრამის ხელახლა გაშვება ადმინისტრატორის სტატუსით.</translation>
+<translation id="8877586659207810298">შეიქმნას ახალი სივრცე Chrome-ში <ph name="NEW_USER" />-ისთვის?</translation>
 <translation id="8914504000324227558">Chrome-ის ხელახლა გაშვება</translation>
 <translation id="8999208279178790196">{0,plural, =0{ხელმისაწვდომია Chrome-ის განახლება}=1{ხელმისაწვდომია Chrome-ის განახლება}other{უკვე # დღეა, რაც ხელმისაწვდომია Chrome-ის განახლება}}</translation>
 <translation id="9026991721384951619">Chrome OS-მა ვერ დაასინქრონა თქვენი მონაცემები, რადგან თქვენი ანგარიშის შესვლის დეტალები მოძველდა.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb
index d794aca..482334042 100644
--- a/chrome/app/resources/google_chrome_strings_kk.xtb
+++ b/chrome/app/resources/google_chrome_strings_kk.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />Ағымдағы параметрлерді<ph name="END_LINK" /> хабарлау арқылы Chrome браузерін жақсартуға көмектесіңіз</translation>
 <translation id="2151406531797534936">Chrome браузерін өшіріп, қайта қосыңыз</translation>
 <translation id="2246246234298806438">Ендірілген PDF көру құралы жоқ болса, Google Chrome басып шығарылатын беттерді алдын ала көрсете алмайды.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> жұмыс орнына жаңа есептік жазбаңызбен кірдіңіз. Деректеріңіз бөлек сақталуы үшін, <ph name="NEW_USER" /> үшін жаңа Chrome жұмыс орнын жасағыңыз келе ме?</translation>
 <translation id="2290014774651636340">Google API пернелері жоқ. Кейбір Google Chrome функционалдықтары өшіріледі.</translation>
 <translation id="2290095356545025170">Google Chrome жою қажет пе?</translation>
 <translation id="2309047409763057870">Бұл – Google Chrome браузерінің қайта орнатылған нұсқасы және әдепкі браузер бола алмайды.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Сілтемені жаңа Chrome қойындысында ашу</translation>
 <translation id="4953650215774548573">Әдепкі браузеріңіз ретінде Google Chrome орнату</translation>
 <translation id="495931528404527476">Chrome ішінде</translation>
+<translation id="4960472897514318257">Жұмыс есептік жазбасымен кірдіңіз. Жеке деректеріңіз бөлек сақталуы үшін, <ph name="NEW_USER" /> деген пайдаланушыға жаңа Chrome жұмыс орнын жасағыңыз келе ме?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS жүйесін қайта қосу</translation>
 <translation id="5132929315877954718">Google Chrome браузеріне арналған тамаша қолданбаларды, ойындарды және тақырыптарды табыңыз.</translation>
 <translation id="5170938038195470297">Профиліңізді пайдалану мүмкін емес, себебі ол жаңарақ Google Chrome нұсқасынан.
 
 Кейбір мүмкіндіктер қолжетімсіз болуы мүмкін. Басқа профиль каталогін көрсетіңіз немесе жаңарақ Chrome нұсқасын пайдаланыңыз.</translation>
+<translation id="5171117065011130146">Жаңа Chrome жұмыс орнын жасау керек пе?</translation>
 <translation id="5193136243808726294">Google Chrome ОЖ бұл бетті аша алмайды.</translation>
 <translation id="5251420635869119124">Қонақтар Chrome қолданбасын ешқандай дерек қалдырмай пайдалана алады.</translation>
 <translation id="532046782124376502">Ескерту: Google Chrome браузері кеңейтімдердің шолу журналыңызды жазып алуына тыйым сала алмайды. Бұл кеңейтімді инкогнито режимінде өшіру үшін осы опцияның құсбелгісін алып тастаңыз.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome ескірген</translation>
 <translation id="8834965163890861871">Google Chrome құпия сөздерді өзгерткісі келеді. Бұған рұқсат беру үшін Windows құпия сөзіңізді теріңіз.</translation>
 <translation id="884296878221830158">Сонымен қатар ол Chrome іске қосқанда немесе "Негізгі бет" түймесін басқанда көрсетілетін бетті басқарады.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> жұмыс орнына жұмыс есептік жазбаңызбен кірдіңіз. Деректеріңіз бөлек сақталуы үшін, <ph name="WORK_DOMAIN" /> доменіне жаңа Chrome жұмыс орны жасалсын ба?</translation>
 <translation id="8862326446509486874">Жүйе деңгейінде орнату үшін тиісті құқықтарыңыз жоқ. Әкімші ретінде орнату құралын қайта іске қосып көріңіз.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> үшін жаңа Chrome жұмыс орны жасалсын ба?</translation>
 <translation id="8914504000324227558">Chrome қолданбасын қайта іске қосу</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome браузерінің жаңартылған нұсқасы қолжетімді}=1{Chrome браузерінің жаңартылған нұсқасы қолжетімді}other{Chrome браузерінің жаңартылған нұсқасы # күннен бері қолжетімді}}</translation>
 <translation id="9026991721384951619">Chrome OS деректеріңізді синхрондай алмайды, себебі есептік жазбаңызға кіру мәліметтері ескірген.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index 0c29032..3ef519f2 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">ជួយ​ធ្វើឲ្យ Chrome ប្រសើរ​ជាងមុន​ដោយ​រាយការណ៍​អំពី <ph name="BEGIN_LINK" />ការកំណត់​បច្ចុប្បន្ន<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">សូមចាប់ផ្ដើម Chrome ឡើងវិញ​ឥឡូវនេះ</translation>
 <translation id="2246246234298806438">Google Chrome មិនអាចបង្ហាញការពិនិត្យមើលការបោះពុម្ពទេ នៅពេលដែលកម្មវិធីមើល PDF ដែលភ្ជាប់មកជាមួយបានបាត់បង់។</translation>
+<translation id="226038281051944330">អ្នក​បានចូល​ដោយប្រើ​គណនីថ្មី​នៅក្នុង​កន្លែង​របស់ <ph name="EXISTING_USER" />។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chrome ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="2290014774651636340">សោ Google API បានបាត់។ មុខងារមួយចំនួននៃ Google Chrome នឹងត្រូវបានបិទដំណើរការ។</translation>
 <translation id="2290095356545025170">តើអ្នកប្រាកដថាចង់លុបការតំឡើង Google Chrome ទេ?</translation>
 <translation id="2309047409763057870">នេះគឺជាការដំឡើេង Google Chrome បន្ទាប់បន្សំ ហើយវាមិនអាចធ្វើជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នកបានទេ។</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">បើក​តំណ​នៅក្នុង​ផ្ទាំង Chrome ថ្មី</translation>
 <translation id="4953650215774548573">កំណត់ Google Chrome ជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នក</translation>
 <translation id="495931528404527476">នៅក្នុង Chrome</translation>
+<translation id="4960472897514318257">អ្នក​បានចូល​ដោយប្រើ​គណនី​ការងារ​។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chrome ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​ផ្ទាល់ខ្លួន​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">ចាប់ផ្តើម Chrome OS ឡើងវិញ</translation>
 <translation id="5132929315877954718">ស្វែងយល់ពីកម្មវិធី ហ្គេម កម្មវិធីបន្ថែម និងធីមដ៏អស្ចារ្យសម្រាប់ Google Chrome។</translation>
 <translation id="5170938038195470297">ទម្រង់របស់អ្នកមិនអាចត្រូវបានប្រើទេ ពីព្រោះវាចេញមកពីកំណែថ្មីជាងមុននៃ Google Chrome។
 
 លក្ខណៈពិសេសមួយចំនួនមិនមានទេ។ សូមបញ្ជាក់ពីថតឯកសារទម្រង់ផ្សេង ឬប្រើកំណែ Chrome ថ្មីជាងមុន។</translation>
+<translation id="5171117065011130146">បង្កើត​កន្លែង​ការងារ Chrome ថ្មីឬ​?</translation>
 <translation id="5193136243808726294">Google Chrome OS មិនអាចបើកទំព័រនេះបានទេ។</translation>
 <translation id="5251420635869119124">ភ្ញៀវអាចប្រើ Chrome ដោយមិនមានបន្សល់ទុកអ្វីឡើយ។</translation>
 <translation id="532046782124376502">ការព្រមាន៖ Google Chrome មិនអាច​ទប់ស្កាត់​កម្មវិធី​បន្ថែមមិន​ឱ្យកត់ត្រា​ប្រវត្តិ​រុករក​របស់អ្នក​បានទេ។ ដើម្បី​បិទ​កម្មវិធី​បន្ថែមនេះ​នៅក្នុង​មុខងារ​ឯកជន សូមដក​ការជ្រើសរើស​ជម្រើស​នេះ។</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome ហួសសម័យហើយ</translation>
 <translation id="8834965163890861871">Google Chrome កំពុង​ព្យាយាម​កែ​ពាក្យសម្ងាត់​។ សូម​វាយបញ្ចូល​ពាក្យសម្ងាត់ Windows របស់អ្នក ដើម្បី​អនុញ្ញាត​ការកែនេះ​។</translation>
 <translation id="884296878221830158">វាក៏គ្រប់គ្រងអ្វីដែលទំព័របានបង្ហាញផងដែរ នៅពេលដែលអ្នកចាប់ផ្តើម Chrome ឬចុចប៊ូតុង ទំព័រដើម។</translation>
+<translation id="8859948767482842016">អ្នក​បានចូល​ដោយប្រើ​គណនីការងារ​នៅក្នុង​កន្លែង​របស់ <ph name="EXISTING_USER" />។ តើអ្នក​ចង់​បង្កើត​កន្លែង Chrome ថ្មី​សម្រាប់ <ph name="WORK_DOMAIN" /> ដើម្បី​រក្សាទុក​ទិន្នន័យ​របស់អ្នក​ដាច់ដោយឡែក​ដែរទេ​?</translation>
 <translation id="8862326446509486874">អ្នកមិនមានសិទ្ធិសមស្របក្នុងការតំឡើងកម្រិតប្រព័ន្ធទេ។ សាកល្បងដំណើរការកម្មវិធីតំឡើងម្តងទៀតក្នុងរបៀបអ្នកគ្រប់គ្រង។</translation>
+<translation id="8877586659207810298">បង្កើត​កន្លែង Chrome ថ្មី​សម្រាប់ <ph name="NEW_USER" /> ឬ?</translation>
 <translation id="8914504000324227558">ដំណើរការ Chrome ឡើងវិញ</translation>
 <translation id="8999208279178790196">{0,plural, =0{មាន​កំណែថ្មី​របស់ Chrome ហើយ}=1{មាន​កំណែថ្មី​របស់ Chrome ហើយ}other{មាន​កំណែថ្មី​របស់ Chrome រយៈពេល # ថ្ងៃហើយ}}</translation>
 <translation id="9026991721384951619">Chrome OS មិនអាចធ្វើសមកម្មទិន្នន័យរបស់អ្នកទេ ពីព្រោះព័ត៌មានលំអិតគណនីចូលរបស់អ្នកហួសសម័យហើយ។</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index e71f4439..1610df00 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು<ph name="END_LINK" /> ವರದಿ ಮಾಡುವುದರ ಮೂಲಕ Chrome ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="2151406531797534936">ಇದೀಗ Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2246246234298806438">ಬಿಲ್ಟ್ ಇನ್ PDF ವೀಕ್ಷಣೆಯು ಕಾಣೆಯಾಗಿರುವಾಗ Google Chrome ಮುದ್ರಣ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ತೋರಿಸುವುದಿಲ್ಲ.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> ಅವರ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ನೀವು ಹೊಸ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chrome ಸ್ಪೇಸ್ ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="2290014774651636340">Google API ಕೀಗಳು ಕಾಣೆಯಾಗಿವೆ. Google Chrome ನ ಕೆಲವು ಕಾರ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="2290095356545025170">ನೀವು ಖಚಿತವಾಗಿ Google Chrome ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="2309047409763057870">ಇದು Google Chrome ನ ದ್ವಿತೀಯ ಸ್ಥಾಪನೆಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
@@ -144,10 +145,12 @@
 <translation id="4895437082222824641">ಹೊಸ Chrome &amp;ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಲಿಂಕ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="4953650215774548573">Google Chrome ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್‌ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation>
 <translation id="495931528404527476">Chrome ನಲ್ಲಿ</translation>
+<translation id="4960472897514318257">ನೀವು ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chrome ಸ್ಪೇಸ್ ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="5132929315877954718">Google Chrome ಸಲುವಾಗಿ ಉತ್ಕೃಷ್ಟಮಟ್ಟದ ಅಪ್ಲಿಕೇಶನ್‌‌ಗಳು, ಗೇಮ್‌ಗಳು, ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಥೀಮ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ</translation>
 <translation id="5170938038195470297">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ Google Chrome ನ ಹೊಸ ಆವೃತ್ತಿಯಿಂದ ಆಗಿರುವ ಕಾರಣ ಅದನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು. ದಯವಿಟ್ಟು ಬೇರೆಯ ಪ್ರೊಫೈಲ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ ಅಥವಾ Chrome ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿ.</translation>
+<translation id="5171117065011130146">ಹೊಸ Chrome ವರ್ಕ್ ಸ್ಪೇಸ್ ರಚಿಸಬೇಕೇ?</translation>
 <translation id="5193136243808726294">Google Chrome OS ಗೆ ಈ ಪುಟ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5251420635869119124">ಅತಿಥಿಗಳು ಏನನ್ನೂ ಉಳಿಸದೇ Chrome ಬಳಸಬಹುದು.</translation>
 <translation id="532046782124376502">ಎಚ್ಚರಿಕೆ: ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್‌ ಇತಿಹಾಸದಲ್ಲಿ ರೆಕಾರ್ಡಿಂಗ್‌ನಿಂದ ವಿಸ್ತರಣೆಗಳನ್ನು ತಡೆಯುವುದಿಲ್ಲ. ಅಜ್ಞಾತ ಮೋಡ್‌ನಲ್ಲಿ ವಿಸ್ತರಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಈ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಬೇಡಿ.</translation>
@@ -260,7 +263,9 @@
 <translation id="8823341990149967727">Chrome ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
 <translation id="8834965163890861871">Google Chrome, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="884296878221830158">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಹೋಮ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
+<translation id="8859948767482842016">ನೀವು <ph name="EXISTING_USER" /> ಅವರ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು <ph name="WORK_DOMAIN" /> ಅವರಿಗಾಗಿ ಹೊಸ Chrome ಸ್ಪೇಸ್ ರಚಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
 <translation id="8862326446509486874">ಸಿಸ್ಟಂ ಮಟ್ಟದ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ನೀವು ಸರಿಯಾದ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಿಲ್ಲ. ನಿರ್ವಾಹಕರಂತೆ ಮತ್ತೆ ಇನ್‌ಸ್ಟಾಲರ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> ಅವರಿಗಾಗಿ ಹೊಸ Chrome ಸ್ಪೇಸ್ ರಚಿಸಬೇಕೇ?</translation>
 <translation id="8914504000324227558">Chrome ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chrome ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳ ಮಟ್ಟಿಗೆ Chrome ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳ ಮಟ್ಟಿಗೆ Chrome ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation>
 <translation id="9026991721384951619">ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳು ಹಳೆಯದಾಗಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 1065cd6..787904b 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />현재 설정<ph name="END_LINK" />을 보고하여 Chrome 개선에 참여</translation>
 <translation id="2151406531797534936">지금 Chrome을 다시 시작하세요</translation>
 <translation id="2246246234298806438">기본 제공되는 PDF 뷰어가 없는 경우 Chrome에서 인쇄 미리보기를 표시할 수 없습니다.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" />님의 공간에 새 계정으로 로그인했습니다. 데이터를 별도로 유지하기 위해 <ph name="NEW_USER" />용 Chrome 공간을 새로 만드시겠습니까?</translation>
 <translation id="2290014774651636340">Google API 키가 누락되었습니다. Chrome의 일부 기능이 사용 중지됩니다.</translation>
 <translation id="2290095356545025170">Chrome을 제거하시겠습니까?</translation>
 <translation id="2309047409763057870">Chrome의 보조 설치이며 기본 브라우저로 설정할 수 없습니다.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">새 Chrome 탭에서 링크 열기(&amp;T)</translation>
 <translation id="4953650215774548573">Chrome을 기본 브라우저로 설정</translation>
 <translation id="495931528404527476">Chrome</translation>
+<translation id="4960472897514318257">직장 계정으로 로그인했습니다. 개인 데이터를 별도로 유지하기 위해 <ph name="NEW_USER" />님을 위한 Chrome 공간을 새로 만드시겠습니까?</translation>
 <translation id="4990567037958725628">Chrome 카나리아</translation>
 <translation id="5062123544085870375">Chrome OS 다시 시작</translation>
 <translation id="5132929315877954718">Chrome에 사용할 유용한 애플리케이션, 게임, 확장 프로그램 및 테마를 찾아보세요.</translation>
 <translation id="5170938038195470297">최신 버전의 Chrome에서 가져온 사용자 프로필이기 때문에 사용할 수 없습니다.
 
 일부 기능은 사용하지 못할 수 있습니다. 다른 프로필 디렉터리를 지정하거나 최신 버전의 Chrome을 사용하세요.</translation>
+<translation id="5171117065011130146">새로운 Chrome 작업 공간을 만드시겠습니까?</translation>
 <translation id="5193136243808726294">Chrome OS에서 이 페이지를 열 수 없음</translation>
 <translation id="5251420635869119124">게스트로 사용 기록을 남기지 않고 Chrome을 사용할 수 있습니다.</translation>
 <translation id="532046782124376502">경고: Chrome에서는 확장 프로그램에 인터넷 사용 기록이 저장될 수 있습니다. 시크릿 모드에서 이 확장 프로그램을 사용 중지하려면 옵션을 선택 취소하세요.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome이 이전 버전임</translation>
 <translation id="8834965163890861871">Chrome에서 비밀번호를 수정하려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요.</translation>
 <translation id="884296878221830158">또한 Chrome을 시작하거나 홈 버튼을 클릭할 때 표시되는 페이지를 설정합니다.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" />님의 공간에 직장 계정으로 로그인했습니다. 데이터를 별도로 유지하기 위해 <ph name="WORK_DOMAIN" />용 Chrome 공간을 새로 만드시겠습니까?</translation>
 <translation id="8862326446509486874">시스템 수준의 설치 권한이 없습니다. 관리자 권한으로 설치 프로그램을 다시 실행해 보세요.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />님을 위한 Chrome 공간을 새로 만드시겠습니까?</translation>
 <translation id="8914504000324227558">Chrome 다시 시작</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome 업데이트 출시}=1{Chrome 업데이트 출시}other{Chrome 업데이트가 출시된 지 #일 지남}}</translation>
 <translation id="9026991721384951619">계정의 로그인 세부정보가 오래되어 Chrome OS에서 데이터를 동기화하지 못했습니다.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb
index e60bc57..74c19f05 100644
--- a/chrome/app/resources/google_chrome_strings_ky.xtb
+++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />Учурдагы жөндөөлөр<ph name="END_LINK" /> жөнүндө кабар берип, Chrome'ду өркүндөтүүгө кол кабыш кылыңыз</translation>
 <translation id="2151406531797534936">Chrome'ду азыр өчүрүп күйгүзүңүз</translation>
 <translation id="2246246234298806438">Камтылган PDF көрсөткүчү жок болсо, Google Chrome басылып чыга турган нерсени алдын ала көрсөтө албайт.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> мейкиндигине жаңы аккаунт менен кирдиңиз. <ph name="NEW_USER" /> үчүн жаңы Chrome мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="2290014774651636340">Google API ачкычтары жок. Google Chrome'дун айрым функциялары өчүрүлөт.</translation>
 <translation id="2290095356545025170">Google Chrome'ду чын эле орнотуудан чыгаргыңыз келеби?</translation>
 <translation id="2309047409763057870">Бул Chromium'дун кошумча орнотулушу болгондуктан, аны демейки серепчиңиз катары тандай албайсыз.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Шилтемени жаңы Chrome &amp;өтмөгүндө ачуу</translation>
 <translation id="4953650215774548573">Google Chrome'ду демейки серепчи катары коюу</translation>
 <translation id="495931528404527476">Chrome ичинде</translation>
+<translation id="4960472897514318257">Жумуш аккаунту менен кирдиңиз. <ph name="NEW_USER" /> үчүн жаңы Chrome мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS'ту өчүрүп-күйгүзүңүз</translation>
 <translation id="5132929315877954718">Google Chrome'дун мыкты колдонмолор, оюндар, кеңейтүүлөр жана темалар дүйнөсүн ачыңыз.</translation>
 <translation id="5170938038195470297">Профилиңиз Google Chrome'дун акыркы версиясынан болгондуктан, колдонулбайт.
 
 Айрым мүмкүнчүлүктөрдү колдоно албашыңыз мүмкүн. Башка профиль каталогун көрсөтүңүз же Chrome'дун жаңыраак версиясын колдонуңуз.</translation>
+<translation id="5171117065011130146">Chrome'до жаңы Жумуш мейкиндигин ачасызбы?</translation>
 <translation id="5193136243808726294">Google Chrome OS бул баракты ача албайт.</translation>
 <translation id="5251420635869119124">Коноктор Chrome'ду артында эч нерсе калтырбай колдоно алышат.</translation>
 <translation id="532046782124376502">Эскертүү: Google Chrome кеңейтүүлөргө серептөө таржымалыңызды жазып алуусуна тыюу сала албайт. Бул кеңейтүүнү жашыруун режимде өчүрүү үчүн, бул параметрди тандоодон чыгарыңыз.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome эскирип калган.</translation>
 <translation id="8834965163890861871">Google Chrome сырсөздөрдү өзгөртүүгө аракет кылып жатат. Ага уруксат берүү үчүн Windows сырсөзүңүздү териңиз.</translation>
 <translation id="884296878221830158">Chrome'ду иштетип баштаганда же Башкы бет баскычы чыкылдатылганда, кайсы бет көрсөтүлө тургандыгын көзөмөлдөйт.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> мейкиндигине Жумуш аккаунту менен кирдиңиз. <ph name="WORK_DOMAIN" /> үчүн жаңы Chrome мейкиндигин түзүп, маалыматты өзүнчө сактагыңыз келеби?</translation>
 <translation id="8862326446509486874">Тутум деңгээлинде орнотууга тийиштүү укугуңуз жок. Орноткучту Администратор катары кайра иштетип көрүңүз.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> үчүн жаңы Chrome мейкиндиги түзүлсүнбү?</translation>
 <translation id="8914504000324227558">Chrome'ду кайрадан ишке киргизүү</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome'дун жаңы версиясы жеткиликтүү}=1{Chrome'дун жаңы версиясы жеткиликтүү}other{Chrome'дун жаңы версиясы # күндөн бери жеткиликтүү}}</translation>
 <translation id="9026991721384951619">Аккаунтуңуздун кирүү чоо-жайы эскирип калгандыктан, Chrome OS дайын-даректериңизди шайкештештире алган жок.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lo.xtb b/chrome/app/resources/google_chrome_strings_lo.xtb
index 906eb75b..57e2a8e4 100644
--- a/chrome/app/resources/google_chrome_strings_lo.xtb
+++ b/chrome/app/resources/google_chrome_strings_lo.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">ຊ່ວຍເຮັດໃຫ້ Chrome ດີຂຶ້ນໂດຍການລາຍງານ <ph name="BEGIN_LINK" />ການຕັ້ງຄ່າປັດຈຸບັນ<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">ກະລຸນາປິດເປີດ Chrome ຄືນໃໝ່ຕອນນີ້ເລີຍ</translation>
 <translation id="2246246234298806438">Google Chrome ບໍ່ສາມາດສະແດງຕົວຢ່າງເບິ່ງກ່ອນພິມໄດ້ ເມື່ອຂາດຕົວເບິ່ງ PDF ມາກັບເຄື່ອງໄປ.</translation>
+<translation id="226038281051944330">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີໃໝ່ໃນພື້ນທີ່ຂອງ <ph name="EXISTING_USER" />. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chrome ໃໝ່ສຳລັບ <ph name="NEW_USER" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="2290014774651636340">ລະຫັດ Google API ຫາຍໄປ. ການເຮັດໜ້າທີ່ບາງອັນຂອງ  Google Chrom ຈະປິດໃຊ້ງານ.</translation>
 <translation id="2290095356545025170">ທ່ານແນ່ໃຈບໍວ່າ ທ່ານຕ້ອງການຖອນຕິດຕັ້ງ Google Chrome?</translation>
 <translation id="2309047409763057870">ນີ້ແມ່ນການຕິດຕັ້ງສຳຮອງຂອງ Google Chrome ແລະ ບໍ່ສາມາດຕັ້ງໃຫ້ເປັນໂປຣແກຣມທ່ອງເວັບເລີ່ມຕົ້ນຂອງທ່ານໄດ້.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">ເປີດລິ້ງໃນແຖບ Chrome ໃໝ່</translation>
 <translation id="4953650215774548573">ຕັ້ງ Google Chrome ເປັນບຣາວ​ເຊີມາດຕະຖານຂອງທ່ານ</translation>
 <translation id="495931528404527476">ຢູ່ໃນ Chrome</translation>
+<translation id="4960472897514318257">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີບ່ອນເຮັດວຽກ. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chrome ໃໝ່ສຳລັບ <ph name="NEW_USER" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">ປິດເປີດ Chrome OS ຄືນໃໝ່</translation>
 <translation id="5132929315877954718">ຄົ້ນພົບແອັບຯ, ເກມ, ສ່ວນຂະຫຍາຍ ແລະ ຮູບແບບສີສັນສຳລັບ Google Chrome.</translation>
 <translation id="5170938038195470297">ບໍ່ສາມາດໃຊ້ໂປຣໄຟລ໌ຂອງທ່ານໄດ້ ເພາະວ່າມັນມາຈາກ Google Chrome ລຸ້ນໃໝ່.
 
 ອາດຈະບໍ່ມີບາງຄຸນສົມບັດຢູ່. ກະລຸນາລະບຸໄດເຣັກຕໍຣີໂປຣໄຟລ໌ອື່ນ ຫຼືໃຊ້ Chrome ລຸ້ນໃໝ່ກ່ວາ.</translation>
+<translation id="5171117065011130146">ສ້າງພື້ນທີ່ວຽກໃໝ່ໃນ Chrome ບໍ?</translation>
 <translation id="5193136243808726294">Google Chrome OS ບໍ່ສາມາດເປີດໜ້ານີ້ໄດ້.</translation>
 <translation id="5251420635869119124">ແຂກສາມາດໃຊ້  Chrome ໂດຍ​ບໍ່​ມີ​ການປະອັນໃດໄວ້ເບື້ອງຫຼັງໄດ້.</translation>
 <translation id="532046782124376502">ຄຳເຕືອນ: Google Chrome ບໍ່ສາມາດປ້ອງກັນບໍ່ໃຫ້ສ່ວນຂະຫຍາຍບັນທຶກປະຫວັດການທ່ອງເວັບຂອງທ່ານໄດ້. ເພື່ອປິດນຳໃຊ້ສ່ວນຂະຫຍາຍນີ້ໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ, ກະລຸນາຍົກເລີກການເລືອກຕົວເລືອກນີ້.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome ລ້າສະໄໝແລ້ວ</translation>
 <translation id="8834965163890861871">Google Chrome ກໍາລັງພະຍາຍາມແກ້ໄຂລະຫັດຜ່ານ. ພິມລະຫັດຜ່ານ Windows ຂອງທ່ານ ເພື່ອອະນຸຍາດອັນນີ້.</translation>
 <translation id="884296878221830158">ມັນຍັງຄວບຄຸມວ່າຈະໃຫ້ສະແດງໜ້າໃດຂຶ້ນ ເມື່ອທ່ານເລີ່ມຕົ້ນເປີດ Chrome ຫຼືຄລິກປຸ່ມໂຮມ.</translation>
+<translation id="8859948767482842016">ທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີບ່ອນເຮັດວຽກໃນພື້ນທີ່ຂອງ <ph name="EXISTING_USER" />. ທ່ານຕ້ອງການສ້າງພື້ນທີ່ Chrome ໃໝ່ສຳລັບ <ph name="WORK_DOMAIN" /> ເພື່ອເກັບຮັກສາຂໍ້ມູນຂອງທ່ານແຍກໄວ້ຕ່າງຫາກບໍ?</translation>
 <translation id="8862326446509486874">ທ່ານບໍ່ມີສິດທິທີ່ເໝາະສົມສໍາລັບຕິດຕັ້ງ​ໃນລະດັບລະບົບ. ລອງແລ່ນຕົວຕິດຕັ້ງນີ້ອີກ​ໃນ​ຖານະ​ເປັນ​ຜູ້ຄວບຄຸມ.</translation>
+<translation id="8877586659207810298">ສ້າງພື້ນທີ່ໃໝ່ໃນ Chrome ສຳລັບ <ph name="NEW_USER" /> ບໍ?</translation>
 <translation id="8914504000324227558">ເປີດໃຊ້ Chrome ຄືນໃໝ່</translation>
 <translation id="8999208279178790196">{0,plural, =0{ມີການອັບເດດ Chrome}=1{ມີການອັບເດດ Chrome}other{ມີການອັບເດດ Chrome ເປັນເວລາ # ມື້ແລ້ວ}}</translation>
 <translation id="9026991721384951619">Chrome OS ບໍ່​ສາ​ມາດຊິງຄ໌ຂໍ້​ມູນ​ຂອງ​ທ່ານໄດ້ ​ເພາະ​ວ່າ​ລາຍລະອຽດການລົງຊື່ເຂົ້າບັນ​ຊີຂອງທ່ານຫຼ້າສະໄໝແລ້ວ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 297ceb8..9665be90 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Padėkite tobulinti „Chrome“ pateikę ataskaitą apie <ph name="BEGIN_LINK" />dabartinius nustatymus<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Dabar iš naujo paleiskite „Chrome“</translation>
 <translation id="2246246234298806438">„Google Chrome“ negali rodyti spaudinio peržiūros, kai nėra integruotos PDF žiūryklės.</translation>
+<translation id="226038281051944330">Prisijungėte naudodami naują paskyrą naudotojo (<ph name="EXISTING_USER" />) srityje. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą naudotojui (<ph name="NEW_USER" />), kad jūsų duomenys būtų saugomi atskirai?</translation>
 <translation id="2290014774651636340">Trūksta „Google“ API raktų. Bus išjungtos kai kurios „Google Chrome“ funkcijos.</translation>
 <translation id="2290095356545025170">Ar tikrai norite pašalinti „Google Chrome“?</translation>
 <translation id="2309047409763057870">Tai yra antrinis „Google Chrome“ diegimas, todėl ji negali būti nustatyta kaip numatytoji naršyklė.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Atidaryti nuorodą naujame „Chrome“ &amp;skirtuke</translation>
 <translation id="4953650215774548573">Nustatyti „Google Chrome“ kaip numatytąją naršyklę</translation>
 <translation id="495931528404527476">Naudojant „Chrome“</translation>
+<translation id="4960472897514318257">Prisijungėte naudodami darbo paskyrą. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą naudotojui (<ph name="NEW_USER" />), kad jūsų asmeniniai duomenys būtų saugomi atskirai?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">„Chrome“ OS paleidimas iš naujo</translation>
 <translation id="5132929315877954718">Suraskite puikių „Google Chrome“ programų, žaidimų, plėtinių ir temų.</translation>
 <translation id="5170938038195470297">Jūsų profilio negalima naudoti, nes jis iš naujesnės „Google Chrome“ versijos.
 
 Kai kurios funkcijos gali būti nepasiekiamos. Nurodykite kitą profilio katalogą arba naudokite naujesnės versijos „Chrome“.</translation>
+<translation id="5171117065011130146">Kurti naują „Chrome“ darbo sritį?</translation>
 <translation id="5193136243808726294">„Google Chrome“ OS negali atidaryti šio puslapio.</translation>
 <translation id="5251420635869119124">Svečiai gali naudoti „Chrome“ nepalikdami jokių duomenų.</translation>
 <translation id="532046782124376502">Įspėjimas: „Google Chrome“ negali neleisti plėtiniams įrašyti naršymo istorijos. Jei norite neleisti šio plėtinio inkognito režimu, panaikinkite šios parinkties žymėjimą.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">„Chrome“ versija yra pasenusi</translation>
 <translation id="8834965163890861871">„Google Chrome“ bando redaguoti slaptažodžius. Įveskite „Windows“ slaptažodį, kad tai leistumėte.</translation>
 <translation id="884296878221830158">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chrome“ ar spustelėjate pagrindinio puslapio mygtuką.</translation>
+<translation id="8859948767482842016">Prisijungėte naudodami darbo paskyrą naudotojo (<ph name="EXISTING_USER" />) srityje. Ar norėtumėte sukurti naują „Chromium“ sritį, skirtą <ph name="WORK_DOMAIN" />, kad jūsų duomenys būtų saugomi atskirai?</translation>
 <translation id="8862326446509486874">Neturite reikiamų teisių sistemai įdiegti. Pamėginkite įdiegimo priemonę dar kartą paleisti kaip administratorius.</translation>
+<translation id="8877586659207810298">Kurti naują „Chome“ sritį, skirtą naudotojui (<ph name="NEW_USER" />)?</translation>
 <translation id="8914504000324227558">Iš naujo paleisti „Chrome“</translation>
 <translation id="8999208279178790196">{0,plural, =0{Pasiekiamas „Chrome“ naujinys}=1{Pasiekiamas „Chrome“ naujinys}one{„Chrome“ naujinys pasiekiamas # dieną}few{„Chrome“ naujinys pasiekiamas # dienas}many{„Chrome“ naujinys pasiekiamas # dienos}other{„Chrome“ naujinys pasiekiamas # dienų}}</translation>
 <translation id="9026991721384951619">„Chrome“ OS negali sinchronizuoti duomenų, nes paskyros išsami prisijungimo informacija yra pasenusi.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 7810f3d..cbf7ccb0 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />നിലവിലെ ക്രമീകരണം<ph name="END_LINK" /> റിപ്പോർട്ട് ചെയ്‌തുകൊണ്ട് Chrome മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="2151406531797534936">Chrome ഇപ്പോൾ റീസ്‌റ്റാർട്ട് ചെയ്യുക</translation>
 <translation id="2246246234298806438">ബിൽറ്റ്-ഇൻ PDF വ്യൂവർ കാണുന്നില്ലെങ്കിൽ Google Chrome-ന് പ്രിന്റ് പ്രിവ്യു കാണിക്കാൻ കഴിയില്ല.</translation>
+<translation id="226038281051944330">നിങ്ങൾ ഒരു പുതിയ അക്കൗണ്ട് ഉപയോഗിച്ച് <ph name="EXISTING_USER" /> എന്നയാളുടെ സ്പെയ്‌സിൽ സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="NEW_USER" /> എന്നതിനായി പുതിയൊരു Chrome സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="2290014774651636340">Google API കീകൾ നഷ്‌ടമായി. Google Chrome-ന്‍റെ ചില പ്രവർത്തനങ്ങൾ പ്രവർത്തനരഹിതമാകും.</translation>
 <translation id="2290095356545025170">Google Chrome അണിന്‍സ്റ്റാള്‍ ചെയ്യണമെന്ന് നിങ്ങള്‍ക്കുറപ്പാണോ?</translation>
 <translation id="2309047409763057870">ഇത് Google Chrome-ന്റെ ദ്വിതീയ ഇൻസ്‌റ്റലേഷനായതിനാൽ, നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറാക്കാൻ കഴിയില്ല.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">പുതിയ Chrome &amp;ടാബിൽ ലിങ്ക് തുറക്കുക</translation>
 <translation id="4953650215774548573">Google Chrome-നെ നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറായി സജ്ജീകരിക്കുക</translation>
 <translation id="495931528404527476">Chrome-ൽ</translation>
+<translation id="4960472897514318257">നിങ്ങൾ ഒരു ഔദ്യോഗിക അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ വ്യക്തിപരമായ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="NEW_USER" /> എന്നയാൾക്കായി പുതിയൊരു Chrome സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS പുനഃരാരംഭിക്കുക</translation>
 <translation id="5132929315877954718">Google Chrome-നായി മികച്ച അപ്ലിക്കേഷനുകളും വിപുലീകരണങ്ങളും തീമുകളും കണ്ടെത്തുക.</translation>
 <translation id="5170938038195470297">നിങ്ങളുടെ പ്രൊഫൈൽ Google Chrome-ന്റെ ഒരു പുതിയ പതിപ്പിൽ നിന്നായതിനാൽ ഉപയോഗിക്കാൻ കഴിയില്ല.
 
 ചില സവിശേഷതകൾ ലഭ്യമല്ലാതായിരിക്കാം. ദയവായി ഒരു വ്യത്യസ്തമായ പ്രൊഫൈൽ ഡയറക്ടറി വ്യക്തമാക്കുക അല്ലെങ്കിൽ Chrome-ന്റെ ഒരു പുതിയ പതിപ്പ് ഉപയോഗിക്കുക.</translation>
+<translation id="5171117065011130146">പുതിയൊരു Chrome വർക്ക്‌സ്‌പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="5193136243808726294">Google Chrome OS-ന് ഈ പേജ് തുറക്കാനാവില്ല.</translation>
 <translation id="5251420635869119124">അതിഥികൾക്ക് ഒന്നും ശേഷിപ്പിക്കാതെ തന്നെ Chrome ഉപയോഗിക്കാനാവും.</translation>
 <translation id="532046782124376502">മുന്നറിയിപ്പ്: നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം റെക്കോർഡ് ചെയ്യുന്നതിൽ നിന്ന് വിപുലീകരണങ്ങളെ തടയാൻ Google Chrome-ന് കഴിയില്ല. അദൃശ്യ മോഡിൽ ഈ വിപുലീകരണം പ്രവർത്തനരഹിതമാക്കാൻ, ഈ ഓപ്‌ഷൻ തിരഞ്ഞെടുത്തത് മാറ്റുക.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome കാലഹരണപ്പെട്ടതാണ്</translation>
 <translation id="8834965163890861871">പാസ്‌വേഡുകൾ എഡിറ്റ് ചെയ്യാൻ Google Chrome ശ്രമിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്‌വേഡ് ടൈപ്പ് ചെയ്യുക.</translation>
 <translation id="884296878221830158">നിങ്ങൾ Chrome ആരംഭിക്കുമ്പോഴോ ഹോം ബട്ടൺ ക്ലിക്ക് ചെയ്യുമ്പോഴോ ഏത് പേജാണ് കാണിക്കേണ്ടതെന്നും അത് നിയന്ത്രിയ്ക്കുന്നു.</translation>
+<translation id="8859948767482842016">നിങ്ങൾ ഒരു ഔദ്യോഗിക അക്കൗണ്ട് ഉപയോഗിച്ച് <ph name="EXISTING_USER" /> എന്നയാളുടെ സ്പെയ്‌സിൽ സൈൻ ഇൻ ചെയ്‌തു. നിങ്ങളുടെ ഡാറ്റ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ <ph name="WORK_DOMAIN" /> എന്നതിനായി പുതിയൊരു Chrome സ്പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="8862326446509486874">സിസ്റ്റം തലത്തിൽ ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുന്നതിന് നിങ്ങള്‍‌ക്ക് ഉചിതമായ അവകാശങ്ങളില്ല. അഡ്‌മിനിസ്‌ട്രേറ്ററായി ഇന്‍‌സ്റ്റാളര്‍‌ റണ്‍ ചെയ്യിക്കാൻ വീണ്ടും ശ്രമിക്കൂ.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> എന്നയാൾക്കായി പുതിയൊരു Chrome സ്‌പെയ്‌സ് സൃഷ്‌ടിക്കണോ?</translation>
 <translation id="8914504000324227558">Chrome വീണ്ടും സമാരംഭിക്കുക</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}=1{Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}other{# ദിവസമായി Chrome-നൊരു അപ്‌ഡേറ്റ് ലഭ്യമാണ്}}</translation>
 <translation id="9026991721384951619">നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index 647b44f..5a824877 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />Одоогийн тохиргоог<ph name="END_LINK" /> мэдэгдэж Chrome-г сайжруулахад тусална уу</translation>
 <translation id="2151406531797534936">Chrome-г одоо дахин эхлүүлнэ үү</translation>
 <translation id="2246246234298806438">built-in PDF нээгч байхгүй байхад Google Chrome хэвлэхийн өмнөх харагдах байдлыг үзүүлэх боломжгүй байна.</translation>
+<translation id="226038281051944330">Та <ph name="EXISTING_USER" />-н орон зайд шинэ бүртгэлээр нэвтэрсэн байна. Өгөгдлөө тусад нь хадгалахын тулд та <ph name="NEW_USER" />-д зориулсан Chrome-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="2290014774651636340">Google-ийн API түлхүүр байхгүй байна. Google Chrome-ийн зарим функц идэвхгүй болно.</translation>
 <translation id="2290095356545025170">Та Google Chrome-ыг устгах гэж байгаадаа итгэлтэй байна уу?</translation>
 <translation id="2309047409763057870">Энэ нь Google Chrome-н хоёр дахь суулгалт тул таны өгөгдмөл хөтчөөр сонгох боломжгүй.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Холбоосыг шинэ Chrome-н чихтэй хуудсанд нээх</translation>
 <translation id="4953650215774548573">Google Chrome-ыг өөрийн анхдагч вэб хөтөч болгон тохируулна уу</translation>
 <translation id="495931528404527476">Chrome-д</translation>
+<translation id="4960472897514318257">Та ажлын бүртгэлээр нэвтэрсэн байна. Хувийн мэдээллээ тусад нь хадгалахын тулд та <ph name="NEW_USER" />-д зориулсан Chrome-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="4990567037958725628">Google Chrome цайвар шаргал өнгө</translation>
 <translation id="5062123544085870375">Chrome OS-г дахин эхлүүлэх</translation>
 <translation id="5132929315877954718">Google Кромын шилдэг апп, тоглоом, өргөтгөл болон загварыг ашиглах боломжтой.</translation>
 <translation id="5170938038195470297">Таны профайл Google Chrome-ийн шинэ хувилбарынх тул ашиглаж болохгүй.
 
 Зарим функц ажиллахгүй байж болох юм. Өөр профайл тодорхойл эсвэл Chrome-ийн шинэ хувилбарыг хэрэглэнэ үү.</translation>
+<translation id="5171117065011130146">Chrome-н ажлын шинэ орон зай үүсгэх үү?</translation>
 <translation id="5193136243808726294">Google Chrome үйлдлийн систем энэ хуудсыг нээх боломжгүй</translation>
 <translation id="5251420635869119124">Зочид ч бусдаас хоцролгүй Chrome-ийг бүх талаар нь ашиглах боломжтой.</translation>
 <translation id="532046782124376502">Анхааруулга: Google Chrome таны өргөтгөлийг хөтчийн түүх бичихээс сэргийлэх боломжгүй. Энэ өргөтгөлийг үл танигдах горимд идэвхгүй болгохын тулд энэ сонголтыг сонгохгүй орхино уу.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome хуучирсан байна.</translation>
 <translation id="8834965163890861871">Google Chrome нь нууц үгсийг засах гэж оролдож байна. Үүнийг зөвшөөрөхийн тулд Windows-н нууц үгээ бичнэ үү.</translation>
 <translation id="884296878221830158">Энэ нь мөн таныг Chrome-ыг эхлүүлэх эсвэл Home товчийг дарах үед гарч ирсэн хуудсыг хянаж байдаг.</translation>
+<translation id="8859948767482842016">Та <ph name="EXISTING_USER" />-н орон зайд Ажлын бүртгэлээр нэвтэрсэн байна. Өгөгдлөө тусад нь хадгалахын тулд та <ph name="WORK_DOMAIN" />-д зориулсан Chrome-н шинэ орон зай үүсгэмээр байна уу?</translation>
 <translation id="8862326446509486874">Танд системийн түвшинд суулгах зохих эрх байхгүй байна. Суулгагчийг админы хувиар дахин ажиллуулахыг оролдож үзнэ үү.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />-д зориулсан Chrome-н шинэ орон зай үүсгэх үү?</translation>
 <translation id="8914504000324227558">Chrome-г дахин эхлүүлэх</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome-н шинэчлэлт боломжтой байна}=1{Chrome-н шинэчлэлт боломжтой байна}other{Chromium-н шинэчлэлт # хоногийн турш боломжтой байсаар байна}}</translation>
 <translation id="9026991721384951619">Таны бүртгэлийн мэдээлэл хуучирсан учраас Chrome OS нь таны өгөгдлийг sync хийж чадсангүй.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index e5ea551..8cbf0ed 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -47,6 +47,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />वर्तमान सेटिंग्ज<ph name="END_LINK" /> चा अहवाल देऊन Chrome ला आणखी चांगले बनविण्यात मदत करा</translation>
 <translation id="2151406531797534936">कृपया आता Chrome रीस्टार्ट करा</translation>
 <translation id="2246246234298806438">बिल्ट-इन पीडीएफ व्ह्यूअर गहाळ असताना Google Chrome प्रिंट पूर्वावलोकन दाखवू शकत नाही.</translation>
+<translation id="226038281051944330">तुम्ही <ph name="EXISTING_USER" /> यांच्या स्पेसमध्ये नवीन खाते वापरून साइन इन केले आहे. तुमचा डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="NEW_USER" /> करिता नवीन Chrome स्पेस तयार करायची आहे का?</translation>
 <translation id="2290014774651636340">Google API की गहाळ आहेत. Google Chrome ची काही कार्यक्षमता अक्षम केली जाईल.</translation>
 <translation id="2290095356545025170">तुमची खात्री आहे की तुम्ही Google Chrome अनइंस्टॉल करू इच्छिता?</translation>
 <translation id="2309047409763057870">ही Google Chrome ची दुय्यम स्थापना असून त्यास तुमचा डीफॉल्ट ब्राउझर बनवू शकत नाही.</translation>
@@ -145,11 +146,13 @@
 <translation id="4895437082222824641">लिंक नवीन Chrome &amp;टॅबमध्ये उघडा</translation>
 <translation id="4953650215774548573">तुमचा डीफॉल्ट ब्राउझर म्हणून Google Chrome सेट करा</translation>
 <translation id="495931528404527476">Chrome मध्ये</translation>
+<translation id="4960472897514318257">तुम्ही ऑफिस खाते वापरून साइन इन केले आहे. तुमचा वैयक्तिक डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="NEW_USER" /> करिता नवीन Chrome स्पेस तयार करायची आहे का?</translation>
 <translation id="4990567037958725628">Google Chrome कॅनरी</translation>
 <translation id="5062123544085870375">Chrome OS रीस्टार्ट करा</translation>
 <translation id="5132929315877954718">Google Chrome साठी उत्कृष्ट ॲप, खेळ, विस्तार आणि थीम शोधा.</translation>
 <translation id="5170938038195470297">तुमचे प्रोफाइल वापरले जाणे शक्य नाही कारण ते Google Chrome च्या नवीनतम आवृत्तीमधील आहे.
 काही वैशिष्‍ट्ये अनुपलब्ध असू शकतात. कृपया एक भिन्न प्रोफाइल डिरेक्टरी नमूद करा किंवा Google Chrome ची नवीनतम आवृत्ती वापरा.</translation>
+<translation id="5171117065011130146">नवीन Chrome कार्य स्पेस तयार करायची आहे का?</translation>
 <translation id="5193136243808726294">Google Chrome OS हे पृष्ठ उघडू शकत नाही.</translation>
 <translation id="5251420635869119124">अतिथी कोणतीही गोष्ट मागे न सोडता Chrome वापरू शकतात.</translation>
 <translation id="532046782124376502">चेतावणी: Google Chrome हे एक्स्टेंशनना तुमचा ब्राउझिंग इतिहास रेकॉर्ड करून ठेवण्यापासून रोखू शकत नाही. हे एक्स्टेंशन बंद करण्यासाठी गुप्त मोडमधील या पर्यायाची निवड रद्द करा.</translation>
@@ -264,7 +267,9 @@
 <translation id="8823341990149967727">Chrome कालबाह्य आहे</translation>
 <translation id="8834965163890861871">Google Chrome पासवर्ड संपादित करण्याचा प्रयत्‍न करत आहे. हे करू देण्यासाठी तुमचा Windows पासवर्ड टाइप करा.</translation>
 <translation id="884296878221830158">तुम्ही Chrome सुरू करता किंवा होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते ते देखील हे नियंत्रित करते.</translation>
+<translation id="8859948767482842016">तुम्ही <ph name="EXISTING_USER" /> यांच्या स्पेसमध्ये ऑफिस खाते वापरून साइन इन केले आहे. तुमचा डेटा स्वतंत्र ठेवण्यासाठी तुम्हाला <ph name="WORK_DOMAIN" /> करिता नवीन Chrome स्पेस तयार करायची आहे का?</translation>
 <translation id="8862326446509486874">तुमच्याकडे सिस्टम स्तरावरील इंस्टॉलसाठी योग्य अधिकार नाहीत. ॲडमिनिस्ट्रेटर म्हणून पुन्हा इंस्टॉलर चालविण्याचा प्रयत्न करा.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> साठी नवीन Chrome स्पेस तयार करायची आहे का?</translation>
 <translation id="8914504000324227558">Chrome रीलाँच करा</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome अपडेट उपलब्ध आहे}=1{Chrome अपडेट उपलब्ध आहे}other{Chrome अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation>
 <translation id="9026991721384951619">तुमचे खाते साइन इन तपशील कालबाह्य झाल्यामुळे Chrome OS तुमचा डेटा संकालित करू शकले नाही.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 415b7dd..8d026a7 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Bantu jadikan Chrome lebih baik dengan melaporkan <ph name="BEGIN_LINK" />tetapan semasa<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Sila mulakan semula Chrome sekarang</translation>
 <translation id="2246246234298806438">Google Chrome tidak dapat memaparkan pratonton cetakan apabila pemapar PDF terbina dalam tiada.</translation>
+<translation id="226038281051944330">Anda dilog masuk dengan akaun baharu di ruang <ph name="EXISTING_USER" />. Adakah anda mahu membuat ruang Chrome baharu untuk <ph name="NEW_USER" /> untuk mengasingkan data anda?</translation>
 <translation id="2290014774651636340">Kunci API Google tiada. Sesetengah fungsi Google Chrome akan dilumpuhkan.</translation>
 <translation id="2290095356545025170">Adakah anda pasti anda mahu menyahpasang Google Chrome?</translation>
 <translation id="2309047409763057870">Ini adalah pemasangan kedua Google Chrome dan tidak boleh dijadikan penyemak imbas lalai anda.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Buka pautan dalam &amp;tab Chrome baharu</translation>
 <translation id="4953650215774548573">Tetapkan Google Chrome sebagai penyemak imbas lalai anda</translation>
 <translation id="495931528404527476">Dalam Chrome</translation>
+<translation id="4960472897514318257">Anda dilog masuk dengan akaun kerja. Adakah anda mahu membuat ruang Chrome baharu untuk <ph name="NEW_USER" /> untuk mengasingkan data peribadi anda?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Mulakan semula OS Chrome</translation>
 <translation id="5132929315877954718">Temui apl, permainan, sambungan dan tema hebat untuk Google Chrome.</translation>
 <translation id="5170938038195470297">Profil anda tidak boleh digunakan kerana ia adalah dari versi Google Chrome yang lebih baharu. Beberapa ciri mungkin tidak tersedia. Sila tetapkan direktori profil lain atau gunakan versi Chrome yang lebih baharu.</translation>
+<translation id="5171117065011130146">Buka ruang Kerja Chrome baharu?</translation>
 <translation id="5193136243808726294">OS Google Chrome tidak boleh membuka halaman ini.</translation>
 <translation id="5251420635869119124">Tetamu boleh menggunakan Chrome tanpa meninggalkan apa-apa.</translation>
 <translation id="532046782124376502">Amaran: Google Chrome tidak dapat menghalang sambungan daripada merakamkan sejarah penyemakan imbas anda. Untuk melumpuhkan sambungan ini dalam mod inkognito, nyahpilih pilihan ini.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome sudah Usang</translation>
 <translation id="8834965163890861871">Google Chrome cuba mengedit kata laluan. Taip kata laluan Windows anda untuk membenarkan tindakan ini.</translation>
 <translation id="884296878221830158">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chrome atau mengklik butang Laman Utama.</translation>
+<translation id="8859948767482842016">Anda dilog masuk dengan akaun Kerja di ruang <ph name="EXISTING_USER" />. Adakah anda mahu membuat ruang Chrome baharu untuk <ph name="WORK_DOMAIN" /> untuk mengasingkan data anda?</translation>
 <translation id="8862326446509486874">Anda tidak mempunyai hak wajar untuk pemasangan peringkat sistem. Cuba jalankan pemasang semula sebagai Pentadbir.</translation>
+<translation id="8877586659207810298">Buat ruang Chrome baharu untuk <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Lancarkan semula Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Kemas kini Chrome tersedia}=1{Kemas kini Chrome tersedia}other{Kemas kini Chrome telah tersedia selama # hari}}</translation>
 <translation id="9026991721384951619">OS Chrome tidak dapat menyegerakkan data anda kerana butiran log masuk akaun anda sudah lapuk.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ne.xtb b/chrome/app/resources/google_chrome_strings_ne.xtb
index 4b66001c..bc28e950 100644
--- a/chrome/app/resources/google_chrome_strings_ne.xtb
+++ b/chrome/app/resources/google_chrome_strings_ne.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />हालका सेटिङहरू<ph name="END_LINK" /> को रिपोर्ट गरेर Chrome लाई अझ राम्रो बनाउन मद्दत गर्नुहोस्</translation>
 <translation id="2151406531797534936">कृपया अहिले नै Chrome पुनः सुरु गर्नुहोस्</translation>
 <translation id="2246246234298806438">अन्तर्निर्मित PDF दर्शक नहुँदा Google Chrome प्रिन्ट पूर्वावलोकन देखाउन सक्दैन।</translation>
+<translation id="226038281051944330">तपाईंले <ph name="EXISTING_USER" /> को स्पेसमा नयाँ खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो डेटा छुट्टै राख्न Chrome मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="2290014774651636340">गूगल API कुञ्जीहरू हराइरहेका छन्। Google Chrome का केही कार्यक्षमता अक्षम हुनेछन्।</translation>
 <translation id="2290095356545025170">के तपाइँ पक्का हुनुहुन्छ कि तपाइँ Google Chrome विस्थापित गर्न चाहनुहुन्छ?</translation>
 <translation id="2309047409763057870">यो Google Chrome को एउटा सहायक स्थापना हो र यसलाई तपाईँको पूर्वनिर्धारित ब्राउजर बनाउन सकिँदैन।</translation>
@@ -144,10 +145,12 @@
 <translation id="4895437082222824641">लिंकलाई Chrome को नयाँ ट्याबमा खोल्नुहोस्</translation>
 <translation id="4953650215774548573">Google Chrome लाई तपाइँको पूर्वनिर्धारित ब्राउजरको रूपमा सेट गर्नुहोस्</translation>
 <translation id="495931528404527476">Chrome मा</translation>
+<translation id="4960472897514318257">तपाईंले कार्य खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो व्यक्तिगत डेटा छुट्टै राख्न Chrome मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="4990567037958725628">Google Chrome क्यानरी</translation>
 <translation id="5062123544085870375">Chrome OS पुनः सुरु गर्नुहोस्</translation>
 <translation id="5132929315877954718">Google Chrome को लागि उत्कृष्ट एप्स, खेलहरू, एक्स्टेन्सनहरू र थिमहरू पत्ता लगाउनुहोस्।</translation>
 <translation id="5170938038195470297">तपाईंको प्रोफाइल प्रयोग गर्न सकिंदैन किनकी यो Google Chrome को नयाँ संस्करणबाट छ। केही सुविधाहरू अनुपलब्ध हुन सक्नेछन्। कृपया भिन्न प्रोफाइल डाइरेकटरी निर्दिष्ट गर्नुहोस् वा क्रोम को एक नयाँ संस्करण प्रयोग गर्नुहोस्।</translation>
+<translation id="5171117065011130146">Chrome मा नयाँ कार्य स्पेस बनाउने हो?</translation>
 <translation id="5193136243808726294">Google Chrome OS ले यो पृष्ठ खोल्न सक्दैन।</translation>
 <translation id="5251420635869119124">अतिथिहरूले केही पनि पछाडि नछोडिकन Chrome प्रयोग गर्न सक्नुहुन्छ।</translation>
 <translation id="532046782124376502">चेतावनी: Google Chrome ले विस्तारहरूलाई तपाईंको ब्राउजिङसम्बन्धी इतिहास रेकर्ड गर्नमाथि रोक लगाउन सक्दैन। यस विस्तारलाई इन्कोग्निटो मोडमा असक्षम पार्न यो विकल्पको चयन रद्द गर्नुहोस्।</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">Chrome को मिति समाप्त भएको छ</translation>
 <translation id="8834965163890861871">Google Chrome ले पासवर्डहरू बदल्ने प्रयास गर्दैछ। यसो गर्ने अनुमति दिन आफूले Windows मा प्रयोग गरेको पासवर्ड टाइप गर्नुहोस्।</translation>
 <translation id="884296878221830158">तपाइँले Chrome सुरु गर्दा वा गृह बटन क्लिक गर्दा यसले कुन पृष्ठ देखाउँछ भनेर पनि नियन्त्रण गर्छ।</translation>
+<translation id="8859948767482842016">तपाईंले <ph name="EXISTING_USER" /> को स्पेसमा कार्य खाता प्रयोग गरी साइन इन गर्नुभएको छ। तपाईं आफ्नो डेटा छुट्टै राख्न Chrome मा <ph name="WORK_DOMAIN" /> का लागि नयाँ स्पेस बनाउन चाहनुहुन्छ?</translation>
 <translation id="8862326446509486874">तपाईंसँग सिस्टम-स्तरको स्थापनाको लागि उपयुक्त अधिकारहरू छैनन्। स्थापकलाई व्यवस्थापकको रूपमा पुन: चलाउने प्रयास गर्नुहोस्।</translation>
+<translation id="8877586659207810298">Chrome मा <ph name="NEW_USER" /> का लागि नयाँ स्पेस बनाउने हो?</translation>
 <translation id="8914504000324227558">Chrome पुनः सुरु गर्नुहोस्</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome को अद्यावधिक उपलब्ध छ}=1{Chrome को अद्यावधिक उपलब्ध छ}other{Chrome को अद्यावधिक # दिनदेखि उपलब्ध छ}}</translation>
 <translation id="9026991721384951619">Chrome OS ले तपाइँको लगत समक्रमण गर्न सकेन किनभने तपाइँको खाता साइन-इन विवरणहरूको मिति सिधिएको छ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 6b52c89b..567440d 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Help Chrome beter te maken door de <ph name="BEGIN_LINK" />huidige instellingen<ph name="END_LINK" /> te melden</translation>
 <translation id="2151406531797534936">Chrome nu opnieuw opstarten</translation>
 <translation id="2246246234298806438">Google Chrome kan het afdrukvoorbeeld niet weergeven wanneer de ingebouwde pdf-viewer ontbreekt.</translation>
+<translation id="226038281051944330">Je bent ingelogd met een nieuw-account in de ruimte van <ph name="EXISTING_USER" />. Wil je een nieuwe Chrome-ruimte voor <ph name="NEW_USER" /> maken zodat je je gegevens gescheiden kunt houden?</translation>
 <translation id="2290014774651636340">Google API-sleutels ontbreken. Sommige functies van Google Chrome worden uitgeschakeld.</translation>
 <translation id="2290095356545025170">Weet je zeker dat je Google Chrome wilt verwijderen?</translation>
 <translation id="2309047409763057870">Dit is een tweede installatie van Google Chrome en kan niet als standaardbrowser worden ingesteld.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Link openen op een nieuw Chrome-&amp;tabblad</translation>
 <translation id="4953650215774548573">Google Chrome instellen als je standaardbrowser</translation>
 <translation id="495931528404527476">In Chrome</translation>
+<translation id="4960472897514318257">Je bent ingelogd met een werkaccount. Wil je een nieuwe Chrome-ruimte voor <ph name="NEW_USER" /> maken zodat je je persoonlijke gegevens gescheiden kunt houden?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS opnieuw opstarten</translation>
 <translation id="5132929315877954718">Ontdek fantastische apps, games, extensies en thema's voor Google Chrome.</translation>
 <translation id="5170938038195470297">Je profiel kan niet worden gebruikt omdat dit afkomstig is van een nieuwere versie van Google Chrome.
 
 Sommige functies zijn wellicht niet beschikbaar. Geef een andere profieldirectory op of gebruik een nieuwere versie van Chrome.</translation>
+<translation id="5171117065011130146">Nieuwe werkruimte in Chrome maken?</translation>
 <translation id="5193136243808726294">Google Chrome OS kan deze pagina niet openen.</translation>
 <translation id="5251420635869119124">Gasten kunnen Chrome gebruiken zonder iets achter te laten.</translation>
 <translation id="532046782124376502">Waarschuwing: Google Chrome kan niet voorkomen dat extensies je browsegeschiedenis registreren. Als je deze extensie in de incognitomodus wilt uitschakelen, verwijder je het vinkje bij deze optie.</translation>
@@ -263,7 +266,9 @@
 <translation id="8823341990149967727">Chrome is verouderd</translation>
 <translation id="8834965163890861871">Google Chrome probeert wachtwoorden te bewerken. Geef je Windows-wachtwoord op om dit toe te staan.</translation>
 <translation id="884296878221830158">Hiermee wordt ook gecontroleerd welke pagina wordt weergegeven wanneer je Chrome start of op de knop 'Homepage' klikt.</translation>
+<translation id="8859948767482842016">Je bent ingelogd met een werkaccount in de ruimte van <ph name="EXISTING_USER" />. Wil je een nieuwe Chrome-ruimte voor <ph name="WORK_DOMAIN" /> maken zodat je je gegevens gescheiden kunt houden?</translation>
 <translation id="8862326446509486874">Je hebt geen rechten om op systeemniveau te installeren. Meld je aan als beheerder en voer het installatieprogramma opnieuw uit.</translation>
+<translation id="8877586659207810298">Nieuwe Chrome-ruimte voor <ph name="NEW_USER" /> maken?</translation>
 <translation id="8914504000324227558">Chrome opnieuw starten</translation>
 <translation id="8999208279178790196">{0,plural, =0{Er is een Chrome-update beschikbaar}=1{Er is een Chrome-update beschikbaar}other{Er is al # dagen een Chrome-update beschikbaar}}</translation>
 <translation id="9026991721384951619">Chrome OS kan je gegevens niet synchroniseren omdat de inloggegevens voor je account zijn verouderd.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index bf62cc0..75ed5855 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Bidra til å gjøre Chrome bedre ved å rapportere de <ph name="BEGIN_LINK" />nåværende innstillingene<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Start Chrome på nytt nå</translation>
 <translation id="2246246234298806438">Google Chrome kan ikke vise forhåndsvisningen av utskrift når det innebygde PDF-visningsprogrammet mangler.</translation>
+<translation id="226038281051944330">Du har logget på med en ny konto på området til <ph name="EXISTING_USER" />. Vil du opprette et nytt Chrome-område for <ph name="NEW_USER" /> for å holde dataene dine atskilt?</translation>
 <translation id="2290014774651636340">API-nøkler for Google mangler. Noe funksjonalitet i Google Chrome blir deaktivert.</translation>
 <translation id="2290095356545025170">Er du sikker på at du vil avinstallere Google Chrome?</translation>
 <translation id="2309047409763057870">Dette er en sekundær installering av Google Chrome. Den kan ikke brukes som standardnettleser.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Åpne linken i en ny &amp;fane i Chrome</translation>
 <translation id="4953650215774548573">Bruk Google Chrome som standard nettleser</translation>
 <translation id="495931528404527476">I Chrome</translation>
+<translation id="4960472897514318257">Du har logget på med en jobbkonto. Vil du opprette et nytt Chrome-område for <ph name="NEW_USER" /> for å holde de personlige dataene dine atskilt?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Start Chrome OS på nytt</translation>
 <translation id="5132929315877954718">Oppdag flotte apper, spill, utvidelser og temaer for Google Chrome.</translation>
 <translation id="5170938038195470297">Profilen din kan ikke brukes fordi den er fra en nyere versjon av Google Chrome. Enkelte funksjoner kan være utilgjengelige. Angi en annen profilkatalog, eller bruk en nyere versjon av Chrome.</translation>
+<translation id="5171117065011130146">Vil du opprette et nytt Chrome-arbeidsområde?</translation>
 <translation id="5193136243808726294">Google Chrome OS kan ikke åpne denne siden</translation>
 <translation id="5251420635869119124">Gjester kan bruke Chrome uten å etterlate seg spor.</translation>
 <translation id="532046782124376502">Advarsel: Google Chrome kan ikke hindre utvidelser i å registrere nettlesingsloggen din. Du kan deaktivere utvidelsen i inkognitomodus ved å fjerne avmerkingen for dette alternativet.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome er utdatert</translation>
 <translation id="8834965163890861871">Google Chrome prøver å redigere passord. Skriv inn Windows-passordet ditt for å tillate dette.</translation>
 <translation id="884296878221830158">Den styrer også hvilken side som vises når du starter Chrome eller klikker på Startside-knappen.</translation>
+<translation id="8859948767482842016">Du har logget på med en jobbkonto på området til <ph name="EXISTING_USER" />. Vil du opprette et nytt Chrome-område for <ph name="WORK_DOMAIN" /> for å holde dataene dine atskilt?</translation>
 <translation id="8862326446509486874">Du har ikke de nødvendige rettighetene for å installere på systemnivå. Prøv å kjøre installasjonsprogrammet som administrator.</translation>
+<translation id="8877586659207810298">Vil du opprette et nytt Chrome-område for <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Start Chrome på nytt</translation>
 <translation id="8999208279178790196">{0,plural, =0{En Chrome-oppdatering er tilgjengelig}=1{En Chrome-oppdatering er tilgjengelig}other{En Chrome-oppdatering har vært tilgjengelig i # dager}}</translation>
 <translation id="9026991721384951619">Chrome OS kunne ikke synkronisere dataene fordi påloggingsopplysningene dine er foreldede.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index 42bd730c..e037a8a 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />ਵਰਤਮਾਨ ਸੈਟਿੰਗਾਂ<ph name="END_LINK" /> ਦੀ ਰਿਪੋਰਟ ਕਰਕੇ Chrome ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ</translation>
 <translation id="2151406531797534936">ਕਿਰਪਾ ਕਰਕੇ ਹੁਣੇ Chrome ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="2246246234298806438">ਬਿਲਟ-ਇਨ PDF ਵਿਊਅਰ ਮੌਜੂਦ ਨਾ ਹੋਣ 'ਤੇ Google Chrome ਪ੍ਰਿੰਟ ਦੀ ਪੂਰਵ-ਝਲਕ ਨਹੀਂ ਦਿਖਾ ਸਕਦਾ।</translation>
+<translation id="226038281051944330">ਤੁਸੀਂ <ph name="EXISTING_USER" /> ਦੀ ਜਗ੍ਹਾ 'ਤੇ ਨਵੇਂ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="NEW_USER" /> ਵਾਸਤੇ ਨਵੀਂ Chrome ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="2290014774651636340">Google API ਕੁੰਜੀਆਂ ਮੌਜੂਦ ਨਹੀਂ ਹਨ। Google Chrome ਦੀ ਕੁਝ ਫੰਕਸ਼ਨੈਲਿਟੀ ਬੰਦ ਕੀਤੀ ਜਾਵੇਗੀ।</translation>
 <translation id="2290095356545025170">ਕੀ ਤੁਸੀਂ ਪੱਕਾ Google Chrome ਨੂੰ ਅਣਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="2309047409763057870">ਇਹ Google Chrome ਦੀ ਇੱਕ ਸੈਕੰਡਰੀ ਸਥਾਪਨਾ ਹੈ, ਅਤੇ ਇਸਨੂੰ ਤੁਹਾਡਾ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਨਹੀਂ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">ਨਵੀਂ Chrome &amp;ਟੈਬ ਵਿੱਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</translation>
 <translation id="4953650215774548573">Google Chrome ਨੂੰ ਆਪਣੇ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਵਜੋਂ ਸੈੱਟ ਕਰੋ</translation>
 <translation id="495931528404527476">Chrome ਵਿੱਚ</translation>
+<translation id="4960472897514318257">ਤੁਸੀਂ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਨਿੱਜੀ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="NEW_USER" /> ਵਾਸਤੇ ਨਵੀਂ Chrome ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ</translation>
 <translation id="5132929315877954718">Google Chrome ਲਈ ਸ਼ਾਨਦਾਰ ਐਪਾਂ, ਗੇਮਾਂ, ਐਕਸਟੈਂਸ਼ਨਾਂ ਅਤੇ ਵਿਸ਼ੇ ਖੋਜੋ।</translation>
 <translation id="5170938038195470297">ਤੁਹਾਡੀ ਪ੍ਰੋਫਾਈਲ ਨਹੀਂ ਵਰਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇਹ Chromium ਦੇ ਨਵੇਂ ਵਰਜਨ ਤੋਂ ਹੈ।
 
 ਸ਼ਾਇਦ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਉਪਲਬਧ ਨਾ ਹੋਣ। ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਵੱਖ ਪ੍ਰੋਫਾਈਲ ਡਾਇਰੈਕਟਰੀ ਜਾਂ Chromium ਦਾ ਨਵਾਂ ਵਰਜਨ ਵਰਤੋ।</translation>
+<translation id="5171117065011130146">ਕੀ ਨਵੀਂ Chrome ਕਾਰਜ ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਹੈ?</translation>
 <translation id="5193136243808726294">Google Chrome OS ਇਸ ਪੰਨੇ ਨੂੰ ਨਹੀਂ ਖੋਲ੍ਹ ਸਕਦਾ।</translation>
 <translation id="5251420635869119124">ਮਹਿਮਾਨ ਕੁਝ ਵੀ ਪਿੱਛੇ ਛੱਡੇ ਬਿਨਾਂ Chrome ਵਰਤ ਸਕਦੇ ਹਨ।</translation>
 <translation id="532046782124376502">ਚਿਤਾਵਨੀ: Google Chrome ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਤੋਂ ਨਹੀਂ ਰੋਕ ਸਕਦਾ। ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਵਿੱਚ ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ, ਇਸ ਵਿਕਲਪ ਨੂੰ ਅਣਚੁਣਿਆ ਕਰੋ।</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome ਪੁਰਾਣਾ ਹੈ</translation>
 <translation id="8834965163890861871">Google Chrome ਪਾਸਵਰਡਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ। ਇਸਦੀ ਆਗਿਆ ਦੇਣ ਲਈ ਆਪਣਾ Windows ਪਾਸਵਰਡ ਟਾਈਪ ਕਰੋ।</translation>
 <translation id="884296878221830158">ਇਹ ਇਸ ਨੂੰ ਵੀ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ Chrome ਨੂੰ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ ਜਾਂ ਹੋਮ ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਪੰਨਾ ਦਿਖਾਇਆ ਜਾਵੇ।</translation>
+<translation id="8859948767482842016">ਤੁਸੀਂ <ph name="EXISTING_USER" /> ਦੀ ਜਗ੍ਹਾ 'ਤੇ ਕਾਰਜ ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ <ph name="WORK_DOMAIN" /> ਵਾਸਤੇ ਨਵੀਂ Chrome ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਚਾਹੋਗੇ?</translation>
 <translation id="8862326446509486874">ਤੁਹਾਡੇ ਕੋਲ ਸਿਸਟਮ-ਪੱਧਰ ਸਥਾਪਤ ਕਰਨ ਲਈ ਉਚਿਤ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਪ੍ਰਬੰਧਕ ਦੇ ਤੌਰ 'ਤੇ ਦੁਬਾਰਾ ਸਥਾਪਨਾਕਾਰ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
+<translation id="8877586659207810298">ਕੀ <ph name="NEW_USER" /> ਲਈ ਨਵੀਂ Chrome ਜਗ੍ਹਾ ਬਣਾਉਣੀ ਹੈ?</translation>
 <translation id="8914504000324227558">Chrome ਨੂੰ ਮੁੜ-ਲਾਂਚ ਕਰੋ</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome ਅੱਪਡੇਟ ਉਪਲਬਧ ਹੈ}=1{Chrome ਅੱਪਡੇਟ ਉਪਲਬਧ ਹੈ}other{Chrome ਅੱਪਡੇਟ # ਦਿਨਾਂ ਤੋਂ ਉਪਲਬਧ ਹੈ}}</translation>
 <translation id="9026991721384951619">Chrome OS ਤੁਹਾਡਾ ਡਾਟਾ ਸਿੰਕ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿਉਂਕਿ ਤੁਹਾਡੇ ਖਾਤਾ ਸਾਈਨ-ਇਨ ਵੇਰਵੇ ਪੁਰਾਣੇ ਹਨ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 2f3644d4..a40875d 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Contribuie la îmbunătățirea browserului Chrome raportând <ph name="BEGIN_LINK" />setările actuale<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Repornește Chrome acum</translation>
 <translation id="2246246234298806438">Google Chrome nu poate afișa previzualizarea înainte de printare când vizualizatorul PDF încorporat lipsește.</translation>
+<translation id="226038281051944330">Te-ai conectat cu un cont de serviciu la spațiul utilizatorului <ph name="EXISTING_USER" />. Vrei să creezi un spațiu în Chrome pentru <ph name="NEW_USER" /> ca să păstrezi datele separat?</translation>
 <translation id="2290014774651636340">Lipsesc chei pentru API-ul Google. Unele funcționalități Google Chrome vor fi dezactivate.</translation>
 <translation id="2290095356545025170">Sigur vrei să dezinstalezi Google Chrome?</translation>
 <translation id="2309047409763057870">Aceasta este o instalare secundară a browserului Google Chrome și nu poate fi setat ca browser prestabilit.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Deschide linkul într-o &amp;filă Chrome nouă</translation>
 <translation id="4953650215774548573">Setați Google Chrome ca browser prestabilit</translation>
 <translation id="495931528404527476">În Chrome</translation>
+<translation id="4960472897514318257">Te-ai conectat cu un cont de serviciu. Vrei să creezi un spațiu în Chrome pentru <ph name="NEW_USER" /> ca să păstrezi datele cu caracter personal separat?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Repornește sistemul de operare Chrome</translation>
 <translation id="5132929315877954718">Descoperă aplicații, jocuri, extensii și teme extraordinare pentru Google Chrome.</translation>
 <translation id="5170938038195470297">Profilul dvs. nu poate fi utilizat, deoarece provine de la o versiune Google Chrome mai recentă. Este posibil ca unele funcții să nu fie disponibile. Specificați un director de profil diferit sau utilizați o versiune Chrome mai nouă.</translation>
+<translation id="5171117065011130146">Creezi un spațiu de lucru în Chrome?</translation>
 <translation id="5193136243808726294">Sistemul de operare Google Chrome nu poate deschide pagina.</translation>
 <translation id="5251420635869119124">Invitații pot folosi Chrome fără a lăsa nicio urmă.</translation>
 <translation id="532046782124376502">Avertisment: Google Chrome nu poate împiedica extensiile să înregistreze istoricul de navigare. Pentru a dezactiva această extensie în modul incognito, debifează această opțiune.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome nu este actualizat</translation>
 <translation id="8834965163890861871">Google Chrome încearcă să modifice parolele. Pentru a permite acest lucru, introdu parola pentru Windows.</translation>
 <translation id="884296878221830158">Stabilește și ce pagină se afișează când pornești Chrome sau dai clic pe butonul Pagina principală.</translation>
+<translation id="8859948767482842016">Te-ai conectat cu un cont de serviciu la spațiul utilizatorului <ph name="EXISTING_USER" />. Vrei să creezi un spațiu în Chrome pentru <ph name="WORK_DOMAIN" /> ca să păstrezi datele separat?</translation>
 <translation id="8862326446509486874">Nu ai drepturile adecvate pentru instalarea la nivel de sistem. Încearcă să rulezi din nou programul de instalare ca Administrator.</translation>
+<translation id="8877586659207810298">Creezi un spațiu în Chrome pentru <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Relansați Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Este disponibilă o actualizare Chrome}=1{Este disponibilă o actualizare Chrome}few{O actualizare Chrome este disponibilă de # zile}other{O actualizare Chrome este disponibilă de # de zile}}</translation>
 <translation id="9026991721384951619">Sistemul de operare Chrome nu a putut sincroniza datele, deoarece detaliile de conectare pentru contul dvs. nu sunt actualizate.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_si.xtb b/chrome/app/resources/google_chrome_strings_si.xtb
index ef1daee1..23616ed 100644
--- a/chrome/app/resources/google_chrome_strings_si.xtb
+++ b/chrome/app/resources/google_chrome_strings_si.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />වත්මන් සැකසීම්<ph name="END_LINK" /> වාර්තා කිරීමෙන් Chrome වඩා යහපත් කිරීමට උදවු වන්න</translation>
 <translation id="2151406531797534936">දැන් Chrome යළි අරඹන්න</translation>
 <translation id="2246246234298806438">Google Chrome හට මුද්‍රණ පෙරදැක්ම පෙන්විය නොහැක්කේ තිළැලි PDF දර්ශකය නොපවතින බැවිනි.</translation>
+<translation id="226038281051944330">ඔබ <ph name="EXISTING_USER" />ගේ ඉඩ තුළ නව ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ දත්ත වෙන්ව තබා ගැනීමට <ph name="NEW_USER" /> සඳහා නව Chrome ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="2290014774651636340">Google API යතුරු අහිමිව ඇත. Google Chrome හි ඇතැම් ක්‍රියාකාරීත්ව අක්‍රීය වනු ඇත.</translation>
 <translation id="2290095356545025170">ඔබට Google Chrome ඉවත්කිරීමට අවශ්‍ය බව විශ්වාසද?</translation>
 <translation id="2309047409763057870">මෙය Google Chrome හි දෙවන ස්ථාපනයක් වන අතර, ඔබේ පෙරනිමි බ්‍රව්සරය කළ නොහැකිය.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">සබැඳිය නව Chrome ප&amp;ටිත්තක විවෘත කරන්න</translation>
 <translation id="4953650215774548573">ඔබේ පෙරනිමි බ්‍රව්සරය ලෙස Google Chrome සකසන්න</translation>
 <translation id="495931528404527476">Chrome තුළ</translation>
+<translation id="4960472897514318257">ඔබ කාර්යාල ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ පුද්ගලික දත්ත වෙන්ව තබා ගැනීමට <ph name="NEW_USER" /> සඳහා නව Chrome ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS යළි අරඹන්න</translation>
 <translation id="5132929315877954718">Google Chrome සඳහා විශිෂ්ට යෙදුම්, ක්‍රීඩා, දිගු සහ තේමා සොයා ගන්න.</translation>
 <translation id="5170938038195470297">ඔබේ පැතිකඩ Google Chrome නව සංස්කරණයකින් එන බැවින් භාවිත කළ නොහැක.
 
 ඇතැම් විශේෂාංග නොපවතිනු ඇත. කරුණාකර Chrome නි නව සංස්කරණය භාවිතයට වෙනස් පැතිකඩ නාමාවලියක් භාවිත කරන්න.</translation>
+<translation id="5171117065011130146">නව Chrome කාර්ය ඉඩක් තනන්නද?</translation>
 <translation id="5193136243808726294">Google Chrome OS හට මෙම පිටුව විවෘත කළ නොහැකිය.</translation>
 <translation id="5251420635869119124">අමුත්තන්ට කිසිවක් තබා යෑමෙන් තොරව Chrome භාවිත කළ හැක.</translation>
 <translation id="532046782124376502">අනතුරු ඇඟවීමයි: Google Chrome හට ඔබේ බ්‍රවුස් කිරීමේ ඉතිහාසය පටිගත කිරීමෙන් දිගු වැළැක්විය නොහැක. මෙම දිගුව අප්‍රසිද්ධ ප්‍රකාරය තුළ අබල කිරීමට, මෙම විකල්පය තේරීම්හරණය කරන්න.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome යල් පැන ගොස් ඇත</translation>
 <translation id="8834965163890861871">Google Chrome මුරපද සංස්කරණ කිරීමට උත්සහ කරයි. එයට ඉඩදීම සඳහා Windows මුරපදය යොදන්න.</translation>
 <translation id="884296878221830158">ඔබ ක්‍රෝම් ආරම්භ කළ විට හෝ මුල්පිටු බොත්තම ක්ලික් කළ විට පෙන්විය යුත්තේ කුමන පිටුවදැයි එමඟින් පාලනය කරයි.</translation>
+<translation id="8859948767482842016">ඔබ <ph name="EXISTING_USER" />ගේ ඉඩ තුළ කාර්යාල ගිණුමක් සමගින් පුරා ඇත. ඔබ ඔබගේ දත්ත වෙන්ව තබා ගැනීමට <ph name="WORK_DOMAIN" /> සඳහා නව Chrome ඉඩක් තැනීමට කැමතිද?</translation>
 <translation id="8862326446509486874">ඔබට පද්ධති මට්ටමේ ස්ථානපයකට අයිතිය නැත. නැවත පරිපාලක වශයෙන් ස්ථාපකය ධාවනය කිරීමට උත්සාහ කරන්න.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> සඳහා නව Chrome ඉඩක් තනන්න?</translation>
 <translation id="8914504000324227558">Chrome නැවත දියත් කරන්න</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome යාවත්කාලීනයක් තිබේ}=1{Chrome යාවත්කාලීනයක් තිබේ}one{දින # කට Chrome යාවත්කාලීනයක් ලැබී ඇත}other{දින # කට Chrome යාවත්කාලීනයක් ලැබී ඇත}}</translation>
 <translation id="9026991721384951619">පිවිසුම් දත්ත කල් ඉකුත්වී ඇති බැවින් Chrome OS හට ඔබේ දත්ත සම්මුහු කළ නොහැකි විය.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index 6e269fe..8425763 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Pomagajte izboljšati Google Chrome s <ph name="BEGIN_LINK" />poročanjem trenutnih nastavitev<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Znova zaženite Chrome</translation>
 <translation id="2246246234298806438">Google Chrome ne more odpreti predogleda tiskanja, če ni vgrajenega pregledovalnika datotek PDF.</translation>
+<translation id="226038281051944330">V prostor uporabnika <ph name="EXISTING_USER" /> ste se prijavili z novim računom. Ali želite ustvariti nov prostor v Chromu za uporabnika <ph name="NEW_USER" />, da bodo podatki ločeni?</translation>
 <translation id="2290014774651636340">Manjkajo ključi za Google API. Nekatere funkcije Google Chroma bodo onemogočene.</translation>
 <translation id="2290095356545025170">Ali ste prepričani, da želite odstraniti Google Chrome?</translation>
 <translation id="2309047409763057870">To je sekundarna namestitev Google Chroma in ga ni mogoče nastaviti kot privzeti brskalnik.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Odpiranje povezave na novem &amp;zavihku v Chromu</translation>
 <translation id="4953650215774548573">Nastavitev Google Chroma za privzeti brskalnik</translation>
 <translation id="495931528404527476">V Chromu</translation>
+<translation id="4960472897514318257">Prijavili ste se s službenim računom. Ali želite ustvariti nov prostor v Chromu za uporabnika <ph name="NEW_USER" />, da bodo osebni podatki ločeni?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Vnovičen zagon OS-a Chrome</translation>
 <translation id="5132929315877954718">Odkrijte zanimive aplikacije, igre, razširitve in teme za Google Chrome.</translation>
 <translation id="5170938038195470297">Vašega profila ni mogoče uporabiti, ker je iz novejše različice Google Chroma.
 
 Nekatere funkcije morda ne bodo na voljo. Navedite drug imenik profila ali uporabite novejšo različico Google Chroma.</translation>
+<translation id="5171117065011130146">Želite ustvariti nov službeni prostor v Chromu?</translation>
 <translation id="5193136243808726294">Googlov OS Chrome ne more odpreti te strani.</translation>
 <translation id="5251420635869119124">Gostje lahko uporabljajo Chrome, ne da bi za seboj pustili kar koli.</translation>
 <translation id="532046782124376502">Opozorilo: Google Chrome razširitvam ne more preprečiti beleženja zgodovine brskanja. Če želite onemogočiti to razširitev v načinu brez beleženja zgodovine, počistite to možnost.</translation>
@@ -266,7 +269,9 @@
 <translation id="8823341990149967727">Chrome je zastarel</translation>
 <translation id="8834965163890861871">Google Chrome poskuša urejati gesla. Če želite to omogočiti, vnesite geslo za Windows.</translation>
 <translation id="884296878221830158">Določa tudi, katera stran je prikazana, ko zaženete Chrome ali kliknete gumb za domačo stran.</translation>
+<translation id="8859948767482842016">V prostor uporabnika <ph name="EXISTING_USER" /> ste se prijavili s službenim računom. Ali želite ustvariti nov prostor v Chromu za domeno <ph name="WORK_DOMAIN" />, da bodo podatki ločeni?</translation>
 <translation id="8862326446509486874">Nimate ustreznih pravic za namestitev na ravni sistema. Poskusite znova zagnati namestitveni program kot skrbnik.</translation>
+<translation id="8877586659207810298">Želite ustvariti nov prostor v Chromu za uporabnika <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Znova zaženi Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Posodobitev za Chrome je na voljo}=1{Posodobitev za Chrome je na voljo}one{Posodobitev za Chrome je na voljo že # dan}two{Posodobitev za Chrome je na voljo že # dneva}few{Posodobitev za Chrome je na voljo že # dni}other{Posodobitev za Chrome je na voljo že # dni}}</translation>
 <translation id="9026991721384951619">Chrome OS ni mogel sinhronizirati podatkov, ker so podatki za prijavo v račun zastareli.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index 4475625..0446ed3 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">Hjälp oss att förbättra Chrome genom att rapportera <ph name="BEGIN_LINK" />dina aktuella inställningar<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Starta om Chrome nu</translation>
 <translation id="2246246234298806438">Förhandsgranskningen av utskriften kan inte visas i Google Chrome eftersom den inbyggda PDF-läsaren saknas.</translation>
+<translation id="226038281051944330">Du har loggat in med ett nytt konto i profilen som tillhör <ph name="EXISTING_USER" /> Vill du skapa en ny Chrome-profil för <ph name="NEW_USER" /> så att uppgifterna hålls åtskilda?</translation>
 <translation id="2290014774651636340">Googles API-nycklar saknas. Vissa funktioner i Google Chrome kommer att vara inaktiverade.</translation>
 <translation id="2290095356545025170">Är du säker på att du vill avinstallera Google Chrome?</translation>
 <translation id="2309047409763057870">Det här är en sekundär installation av Google Chrome. Det går inte att göra den till standardwebbläsare.</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">Öppna länkar i en ny flik i Chrome</translation>
 <translation id="4953650215774548573">Ange Google Chrome som standardwebbläsare</translation>
 <translation id="495931528404527476">I Chrome</translation>
+<translation id="4960472897514318257">Du har loggat in med ett jobbkonto. Vill du skapa en ny Chrome-profil för <ph name="NEW_USER" /> så att privata uppgifter hålls för sig?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Starta om Chrome OS</translation>
 <translation id="5132929315877954718">Upptäck fantastiska program, spel, tillägg och teman för Google Chrome.</translation>
 <translation id="5170938038195470297">Profilen kan inte användas eftersom den tillhör en nyare version av Google Chrome.
 
 Vissa funktioner är kanske inte tillgängliga. Ange en annan profilkatalog om du vill använda en nyare version av Chrome.</translation>
+<translation id="5171117065011130146">VIll du skapa en ny jobbprofil i Chrome?</translation>
 <translation id="5193136243808726294">Det går inte att öppna den här sidan i Google Chrome OS.</translation>
 <translation id="5251420635869119124">Gäster kan använda Chrome utan att lämna spår.</translation>
 <translation id="532046782124376502">Varning! Google Chrome kan inte förhindra tillägg från att registrera din webbhistorik. Om du vill inaktivera det här tillägget i inkognitoläge avmarkerar du detta alternativ.</translation>
@@ -267,7 +270,9 @@
 <translation id="8823341990149967727">Den här versionen av Chrome är inaktuell</translation>
 <translation id="8834965163890861871">Skriv ditt Windows-lösenord om du tillåter att lösenorden i Google Chrome redigeras.</translation>
 <translation id="884296878221830158">Det styr också vilken sida som visas när du startar Chrome eller klickar på hemknappen.</translation>
+<translation id="8859948767482842016">Du loggade in med ett jobbkonto i den profil som tillhör <ph name="EXISTING_USER" />. Vill du skapa en ny Chrome-profil för <ph name="WORK_DOMAIN" /> så att uppgifterna hålls åtskilda?</translation>
 <translation id="8862326446509486874">Du har inte behörighet att göra en installation på systemnivå. Försök köra installationsprogrammet igen som administratör.</translation>
+<translation id="8877586659207810298">Vill du skapa en ny Chrome-profil för <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Starta om Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Det finns en uppdatering för Chrome}=1{Det finns en uppdatering för Chrome}other{Det finns en uppdatering för Chrome sedan # dagar}}</translation>
 <translation id="9026991721384951619">Det gick inte att synkronisera data med Chrome OS eftersom inloggningsuppgifterna för kontot är inaktuella.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index 0bb4d6e..6d2d3de 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />தற்போதைய அமைப்புகளைப்<ph name="END_LINK" />பற்றிய அறிக்கையை அனுப்பி, Chromeஐ இன்னும் சிறந்ததாக்க உதவவும்</translation>
 <translation id="2151406531797534936">Chromeமை இப்போது மீண்டும் தொடங்கவும்</translation>
 <translation id="2246246234298806438">உள்ளமைக்கப்பட்ட PDF வியூவர் இல்லையென்றால், Google Chrome அச்சிடல் மாதிரிக்காட்சியைக் காண்பிக்காது.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> இன் ஸ்பேஸில் புதிய கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="NEW_USER" /> டொமைனுக்கான புதிய Chrome ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="2290014774651636340">Google API விசைகள் காணப்படவில்லை. Google Chrome இன் சில செயல்பாடுகள் முடக்கப்படும்.</translation>
 <translation id="2290095356545025170">Google Chrome நிறுவல் நீக்கம் செய்வதில் உறுதியாக உள்ளீர்களா?</translation>
 <translation id="2309047409763057870">இது Google Chrome இன் இரண்டாம் நிலை நிறுவல் என்பதால், அதை இயல்புநிலை உலாவியாக அமைக்க முடியாது.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">புதிய Chrome &amp;தாவலில் இணைப்பைத் திற</translation>
 <translation id="4953650215774548573">Google Chrome ஐ உங்கள் இயல்புநிலை உலாவியாக அமைக்கவும்</translation>
 <translation id="495931528404527476">Chrome இல்</translation>
+<translation id="4960472897514318257">பணிக் கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தனிப்பட்ட தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="NEW_USER" /> டொமைனுக்குப் புதிய Chrome ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OSஸை மீண்டும் தொடங்கவும்</translation>
 <translation id="5132929315877954718">Google Chrome க்கான சிறந்த ஆப்ஸ், கேம்ஸ், நீட்டிப்புகள் மற்றும் தீம்களைக் கண்டறியவும்.</translation>
 <translation id="5170938038195470297">Google Chrome இன் புத்தம் புதிய பதிப்பு என்பதால், உங்கள் சுயவிவரத்தைப் பயன்படுத்த முடியாது. சில அம்சங்கள் கிடைக்காமல் போகலாம். வேறு சுயவிவர கோப்பகத்தைக் குறிப்பிடுக அல்லது Chrome இன் புதிய பதிப்பைப் பயன்படுத்துக.</translation>
+<translation id="5171117065011130146">புதிய Chrome பணியிடத்தை உருவாக்கவா?</translation>
 <translation id="5193136243808726294">Google Chrome OS ஆல் இந்தப் பக்கத்தைத் திறக்க முடியாது.</translation>
 <translation id="5251420635869119124">எதையும் விட்டுசெல்லாமல் கெஸ்ட் பயனர்கள் Chrome ஐப் பயன்படுத்தலாம்.</translation>
 <translation id="532046782124376502">எச்சரிக்கை: நீட்டிப்புகள் உங்கள் உலாவல் வரலாற்றைப் பதிவுசெய்வதை Google Chrome ஆல் தடுக்க முடியவில்லை. மறைநிலையில் இந்த நீட்டிப்பை முடக்க, இந்த விருப்பத்தைத் தேர்வுநீக்கவும்.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome காலாவதியானது</translation>
 <translation id="8834965163890861871">Google Chrome கடவுச்சொற்களைத் திருத்த முயல்கிறது. இதை அனுமதிக்க உங்கள் Windows கடவுச்சொல்லை உள்ளிடவும்.</translation>
 <translation id="884296878221830158">Chromeமைத் தொடங்கும்போது அல்லது முகப்புப் பொத்தானைக் கிளிக் செய்யும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> இன் ஸ்பேஸில் பணிக் கணக்கின் மூலம் உள்நுழைந்துள்ளீர்கள். உங்கள் தரவைத் தனிப்பட்டதாக வைத்திருக்கும் வகையில் <ph name="WORK_DOMAIN" /> டொமைனுக்கான புதிய Chrome ஸ்பேஸை உருவாக்க விரும்புகிறீர்களா?</translation>
 <translation id="8862326446509486874">கம்ப்யூட்டர்-சார்ந்த நிறுவலுக்கான முறையான உரிமைகள் உங்களிடம் இல்லை. அதனால் நிர்வாகியாக மீண்டும் நிறுவலை இயக்க முயற்சி செய்க.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" />க்குப் புதிய Chrome ஸ்பேஸை உருவாக்கவா?</translation>
 <translation id="8914504000324227558">Chrome ஐ மீண்டும் தொடங்கு</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chromeமிற்கான புதுப்பிப்பு உள்ளது}=1{Chromeமிற்கான புதுப்பிப்பு உள்ளது}other{Chromeமிற்கான புதுப்பிப்பு வந்து # நாட்களாகிறது}}</translation>
 <translation id="9026991721384951619">உங்கள் கணக்கின் உள்நுழைவு விவரங்கள் காலாவதியாகிவிட்டதால், உங்கள் தரவை Chrome OS ஆல் ஒத்திசைக்க முடியவில்லை.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index b96e9ff..aea9140 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />ప్రస్తుత సెట్టింగ్‌లను<ph name="END_LINK" /> నివేదించడం ద్వారా Chromeను మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="2151406531797534936">దయచేసి Chromeను ఇప్పుడే మళ్ళీ ప్రారంభించండి</translation>
 <translation id="2246246234298806438">అంతర్గత PDF వ్యూవర్ లేనప్పుడు Google Chrome ముద్రణ ప్రివ్యూను చూపించదు.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> ప్రదేశంలో కొత్త ఖాతాతో మీరు సైన్ ఇన్ చేశారు. మీ డేటాను వేరుగా సేవ్ చేయడానికి <ph name="NEW_USER" /> కోసం కొత్త Chrome ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="2290014774651636340">Google API కీలు లేవు. Google Chrome కార్యాచరణలో కొంత భాగం నిలిపివేయబడుతుంది.</translation>
 <translation id="2290095356545025170">మీరు Google Chromeను ఖచ్చితంగా అన్‌ఇన్‌స్టాల్ చేయాలని అనుకుంటున్నారా?</translation>
 <translation id="2309047409763057870">ఇది Google Chrome యొక్క రెండవ ఇన‌స్ట‌లేష‌న్. దీన్ని మీ డిఫాల్ట్ బ్రౌజర్‌గా చేయడం సాధ్యపడదు.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">కొత్త Chrome &amp;ట్యాబ్‌లో లింక్‌ను తెరువు</translation>
 <translation id="4953650215774548573">Google Chromeను మీ డిఫాల్ట్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="495931528404527476">Chromeలో</translation>
+<translation id="4960472897514318257">మీరు కార్యాలయ ఖాతాతో సైన్ ఇన్ చేశారు. మీ వ్యక్తిగత డేటాను వేరుగా సేవ్ చేయడానికి <ph name="NEW_USER" /> కోసం కొత్త Chrome ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="4990567037958725628">Google Chrome కేనరీ</translation>
 <translation id="5062123544085870375">Chrome OSను మళ్లీ ప్రారంభించండి</translation>
 <translation id="5132929315877954718">Google Chrome కోసం గొప్ప అనువర్తనాలు, ఆటలు, పొడిగింపులు మరియు థీమ్‌లను కనుగొనండి.</translation>
 <translation id="5170938038195470297">మీ ప్రొఫైల్‌ను ఉపయోగించడం సాధ్యపడదు, ఎందుకంటే ఇది ఒక కొత్త Google Chrome వెర్షన్ నుండి తీసుకోబడింది. కొన్ని ఫీచర్‌లు అందుబాటులో ఉండకపోవచ్చు. దయచేసి వేరొక ప్రొఫైల్ డైరెక్టరీని పేర్కొనండి లేదా Chrome కొత్త వెర్షన్‌ను ఉపయోగించండి.</translation>
+<translation id="5171117065011130146">కొత్త Chrome వర్క్ స్పేస్‌ను క్రియేట్ చేయాలా?</translation>
 <translation id="5193136243808726294">Google Chrome OS ఈ పేజీని తెరవలేదు.</translation>
 <translation id="5251420635869119124">అతిథులు ఎటువంటి చరిత్రను వదలకుండానే Chromeను ఉపయోగించవచ్చు.</translation>
 <translation id="532046782124376502">హెచ్చరిక: Google Chrome మీ బ్రౌజింగ్ చరిత్రను రికార్డ్ చేయకుండా ఎక్స్‌టెన్ష‌న్‌లను నివారించలేదు. ఈ ఎక్స్‌టెన్ష‌న్‌ను అజ్ఞాత మోడ్‌లో నిలిపివేయడానికి, ఈ ఎంపికను రద్దు చేయండి.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome కాలం చెల్లినది</translation>
 <translation id="8834965163890861871">పాస్‌వర్డ్‌లను ఎడిట్ చేయడానికి Google Chrome ప్రయత్నిస్తోంది. దీన్ని అనుమతించడానికి మీ Windows పాస్‌వర్డ్‌ను టైప్ చేయండి.</translation>
 <translation id="884296878221830158">ఇది మీరు Chromeను ప్రారంభించేటప్పుడు లేదా హోమ్ బటన్‌ను క్లిక్ చేసేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> ప్రదేశంలో కార్యాలయ ఖాతాతో మీరు సైన్ ఇన్ చేశారు. మీ డేటాను వేరుగా సేవ్ చేయడానికి <ph name="WORK_DOMAIN" /> కోసం కొత్త Chrome ప్రదేశాన్ని క్రియేట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="8862326446509486874">సిస్టమ్-స్థాయిలో ఇన్‌స్టాల్‌ చేయ‌డానికి మీకు సరైన హక్కులు లేవు. నిర్వాహకుడి లాగా ఇన్‌స్టాలర్‌ను మ‌ళ్లీ రన్ చేయ‌డానికి ప్రయత్నించండి.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> కోసం కొత్త Chrome ప్రదేశాన్ని క్రియేట్ చేయాలా?</translation>
 <translation id="8914504000324227558">Chromeను పునఃప్రారంభించు</translation>
 <translation id="8999208279178790196">{0,plural, =0{ఒక Chrome అప్‌డేట్ అందుబాటులో ఉంది}=1{ఒక Chrome అప్‌డేట్ అందుబాటులో ఉంది}other{ఒక Chrome అప్‌డేట్ # రోజులుగా అందుబాటులో ఉంది}}</translation>
 <translation id="9026991721384951619">మీ ఖాతా సైన్-ఇన్ వివరాల గడువు ముగిసినందున Chrome OS మీ డేటాను సింక్ చేయ‌లేకపోయింది.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 4ebb10e..4c1b381 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">ช่วยให้ Chrome ดียิ่งขึ้นด้วยการรายงาน<ph name="BEGIN_LINK" />การตั้งค่าปัจจุบัน<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">โปรดรีสตาร์ท Chrome ตอนนี้เลย</translation>
 <translation id="2246246234298806438">Google Chrome ไม่สามารถแสดงหน้าตัวอย่างก่อนพิมพ์หากไม่มีโปรแกรมดู PDF ในตัว</translation>
+<translation id="226038281051944330">คุณลงชื่อเข้าใช้ด้วยบัญชีใหม่ในพื้นที่ของ <ph name="EXISTING_USER" /> คุณต้องการสร้างพื้นที่ใหม่ใน Chrome เพื่อให้ <ph name="NEW_USER" /> เก็บข้อมูลของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="2290014774651636340">คีย์ API ของ Google หายไป การทำงานบางอย่างของ Google Chrome จะถูกปิดใช้งาน</translation>
 <translation id="2290095356545025170">คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการติดตั้ง Google Chrome</translation>
 <translation id="2309047409763057870">นี่เป็นการติดตั้ง Google Chrome แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">เปิดลิงก์ใน Chrome แท็บใหม่</translation>
 <translation id="4953650215774548573">ตั้ง Google Chrome เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="495931528404527476">ใน Chrome</translation>
+<translation id="4960472897514318257">คุณลงชื่อเข้าใช้ด้วยบัญชีงาน คุณต้องการสร้างพื้นที่ใหม่ใน Chrome เพื่อให้ <ph name="NEW_USER" /> เก็บข้อมูลส่วนตัวของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">รีสตาร์ท Chrome OS</translation>
 <translation id="5132929315877954718">พบกับแอป เกม ส่วนขยาย และธีมเด็ดๆ สำหรับ Google Chrome</translation>
 <translation id="5170938038195470297">โปรไฟล์ของคุณไม่สามารถใช้ได้เพราะมาจากรุ่นที่ใหม่กว่าของ Google Chrome ฟีเจอร์บางอย่างอาจจะไม่พร้อมใช้งาน โปรดระบุไดเรกทอรีของโปรไฟล์อื่นหรือใช้ Chrome รุ่นที่ใหม่กว่า</translation>
+<translation id="5171117065011130146">สร้างพื้นที่งานใหม่ใน Chrome ไหม</translation>
 <translation id="5193136243808726294">Google Chrome OS ไม่สามารถเปิดหน้านี้</translation>
 <translation id="5251420635869119124">ผู้เยี่ยมชมสามารถใช้ Chrome ได้โดยไม่ทิ้งร่องรอยไว้</translation>
 <translation id="532046782124376502">คำเตือน: Google Chrome ไม่สามารถป้องกันไม่ให้ส่วนขยายบันทึกประวัติการเข้าชม หากต้องการปิดใช้ส่วนขยายนี้ในโหมดไม่ระบุตัวตน ให้ยกเลิกการเลือกตัวเลือกนี้</translation>
@@ -257,7 +260,9 @@
 <translation id="8823341990149967727">Chrome ล้าสมัย</translation>
 <translation id="8834965163890861871">Google Chrome กำลังพยายามแก้ไขรหัสผ่าน โปรดพิมพ์รหัสผ่าน Windows ของคุณเพื่ออนุญาต</translation>
 <translation id="884296878221830158">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณเปิด Chrome หรือคลิกปุ่ม "หน้าแรก"</translation>
+<translation id="8859948767482842016">คุณลงชื่อเข้าใช้ด้วยบัญชีงานในพื้นที่ของ <ph name="EXISTING_USER" /> คุณต้องการสร้างพื้นที่ใหม่ใน Chrome เพื่อให้ <ph name="WORK_DOMAIN" /> เก็บข้อมูลของคุณแยกไว้ต่างหากไหม</translation>
 <translation id="8862326446509486874">คุณไม่มีสิทธิ์ในการติดตั้งระดับระบบ ทดลองใช้งานโปรแกรมติดตั้งอีกครั้งโดยกำหนดให้เป็นผู้ดูแลระบบ</translation>
+<translation id="8877586659207810298">สร้างพื้นที่ใหม่ใน Chrome สำหรับ <ph name="NEW_USER" /> ไหม</translation>
 <translation id="8914504000324227558">เปิด Chrome ขึ้นใหม่</translation>
 <translation id="8999208279178790196">{0,plural, =0{มีอัปเดต Chrome พร้อมให้ใช้งาน}=1{มีอัปเดต Chrome พร้อมให้ใช้งาน}other{อัปเดต Chrome พร้อมให้ใช้งานมาแล้ว # วัน}}</translation>
 <translation id="9026991721384951619">Chrome OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากรายละเอียดการลงชื่อเข้าใช้บัญชีของคุณล้าสมัย</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 3a988df8..3bcc7e3 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220"><ph name="BEGIN_LINK" />Mevcut ayarlarınızı<ph name="END_LINK" /> bildirerek Chrome'u daha iyi hale getirmemize yardımcı olun</translation>
 <translation id="2151406531797534936">Lütfen Chrome'u şimdi yeniden başlatın</translation>
 <translation id="2246246234298806438">Google Chrome, dahili PDF görüntüleyici yokken baskı önizlemeyi gösteremez.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> adlı kullanıcının alanında yeni bir hesapla oturum açtınız. Verilerinizi ayrı tutmak amacıyla, <ph name="NEW_USER" /> için yeni bir Chrome alanı oluşturmak ister misiniz?</translation>
 <translation id="2290014774651636340">Google API anahtarları eksik. Google Chrome'un bazı işlevleri devre dışı bırakılacak.</translation>
 <translation id="2290095356545025170">Google Chrome'u kaldırmak istediğinizden emin misiniz?</translation>
 <translation id="2309047409763057870">Bu, Google Chrome'un ikincil bir yüklemesidir ve varsayılan tarayıcınız yapılamaz.</translation>
@@ -142,12 +143,14 @@
 <translation id="4895437082222824641">Bağlantıyı yeni Chrome &amp;sekmesinde aç</translation>
 <translation id="4953650215774548573">Google Chrome'u varsayılan tarayıcım olarak ayarla</translation>
 <translation id="495931528404527476">Chrome'da</translation>
+<translation id="4960472897514318257">İş hesabıyla oturum açtınız. Kişisel verilerinizi ayrı tutmak amacıyla, <ph name="NEW_USER" /> için yeni bir Chrome alanı oluşturmak ister misiniz?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS'i yeniden başlat</translation>
 <translation id="5132929315877954718">Google Chrome'a özgü harika uygulamaları, oyunları, uzantıları ve temaları keşfedin.</translation>
 <translation id="5170938038195470297">Profiliniz daha yeni bir Google Chrome sürümünden geldiği için kullanılamıyor.
 
 Bazı özellikler kullanılamayabilir. Lütfen farklı bir profil dizini belirtin veya daha yeni bir Chrome sürümü kullanın.</translation>
+<translation id="5171117065011130146">Yeni Chrome İş alanı oluşturulsun mu?</translation>
 <translation id="5193136243808726294">Google Chrome OS bu sayfayı açamıyor.</translation>
 <translation id="5251420635869119124">Misafirler Chrome'u geride hiçbir şey bırakmadan kullanabilirler.</translation>
 <translation id="532046782124376502">Uyarı: Google Chrome, uzantıların göz atma geçmişinizi kaydetmesini önleyemez. Gizli modda bu uzantıyı devre dışı bırakmak için bu seçeneğin onay işaretini kaldırın.</translation>
@@ -260,7 +263,9 @@
 <translation id="8823341990149967727">Chrome Sürümü Eski</translation>
 <translation id="8834965163890861871">Google Chrome şifreleri düzenlemeye çalışıyor. Buna izin vermek için Windows şifrenizi yazın.</translation>
 <translation id="884296878221830158">Ayrıca Chrome'u başlattığınızda veya Ana Sayfa düğmesini tıkladığınızda gösterilecek sayfayı da denetler.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> adlı kullanıcının alanında bir İş hesabıyla oturum açtınız. Verilerinizi ayrı tutmak amacıyla, <ph name="WORK_DOMAIN" /> için yeni bir Chrome alanı oluşturmak ister misiniz?</translation>
 <translation id="8862326446509486874">Sistem düzeyinde yükleme için gerekli haklara sahip değilsiniz. Yükleyiciyi Yönetici olarak tekrar çalıştırmayı deneyin.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> için yeni Chrome alanı oluşturulsun mu?</translation>
 <translation id="8914504000324227558">Chrome'u Yeniden Başlat</translation>
 <translation id="8999208279178790196">{0,plural, =0{Bir Chrome güncellemesi var}=1{Bir Chrome güncellemesi var}other{# gün önce kullanıma sunulmuş bir Chrome güncellemesi var}}</translation>
 <translation id="9026991721384951619">Hesap oturum açma ayrıntılarınız güncel olmadığından Chrome OS, verilerinizi senkronize edemedi.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index c8ad899..ca3a5bd 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">Допоможіть покращити Chrome, надсилаючи звіти про <ph name="BEGIN_LINK" />поточні налаштування<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Перезапустіть Chrome</translation>
 <translation id="2246246234298806438">Google Chrome не може відобразити попередній перегляд версії для друку, якщо немає вбудованого переглядача PDF.</translation>
+<translation id="226038281051944330">Ви ввійшли в новий обліковий запис у профілі, яким користується <ph name="EXISTING_USER" />. Створити новий профіль Chrome, яким користуватиметься <ph name="NEW_USER" />, щоб зберігати ваші дані окремо?</translation>
 <translation id="2290014774651636340">Ключі API Google відсутні. Деякі функції Google Chrome буде вимкнено.</translation>
 <translation id="2290095356545025170">Ви дійсно хочете видалити Google Chrome?</translation>
 <translation id="2309047409763057870">Це додаткове встановлення Google Chrome. Його не можна зробити вашим веб-переглядачем за умовчанням.</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">Відкрити посилання в новій &amp;вкладці Chrome</translation>
 <translation id="4953650215774548573">Зробити Google Chrome веб-переглядачем за умовчанням</translation>
 <translation id="495931528404527476">У Chrome</translation>
+<translation id="4960472897514318257">Ви ввійшли в робочий обліковий запис. Створити новий профіль Chrome, яким користуватиметься <ph name="NEW_USER" />, щоб зберігати ваші персональні дані окремо?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Перезапустіть ОС Chrome</translation>
 <translation id="5132929315877954718">Знаходьте чудові додатки, ігри, розширення й теми для Google Chrome.</translation>
 <translation id="5170938038195470297">Ваш профіль не можна використати, оскільки його створено в новішій версії Google Chrome. Деякі функції можуть бути недоступними. Укажіть інший каталог профілю чи скористайтеся новішою версією Chrome.</translation>
+<translation id="5171117065011130146">Створити новий робочий профіль Chrome?</translation>
 <translation id="5193136243808726294">Неможливо відкрити цю сторінку в ОС Google Chrome.</translation>
 <translation id="5251420635869119124">Гості можуть анонімно користуватися Chrome.</translation>
 <translation id="532046782124376502">Застереження. Google Chrome не може заборонити розширенням реєструвати історію веб-перегляду. Щоб розширення не працювало в режимі анонімного перегляду, зніміть прапорець біля цієї опції.</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Версія Chrome застаріла</translation>
 <translation id="8834965163890861871">Google Chrome намагається змінити паролі. Щоб дозволити, введіть свій пароль Windows.</translation>
 <translation id="884296878221830158">Розширення також змінило сторінку, яка відкривається під час запуску Chrome або натискання кнопки "Домашня сторінка".</translation>
+<translation id="8859948767482842016">Ви ввійшли в робочий обліковий запис у профілі, яким користується <ph name="EXISTING_USER" />. Створити новий профіль Chrome для домену <ph name="WORK_DOMAIN" />, щоб зберігати ваші дані окремо?</translation>
 <translation id="8862326446509486874">У вас немає відповідних прав для встановлення на рівні системи. Спробуйте запустити програму встановлення, увійшовши з правами адміністратора.</translation>
+<translation id="8877586659207810298">Створити новий профіль Chrome, яким користуватиметься <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Перезапустити Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Доступне оновлення Chrome}=1{Доступне оновлення Chrome}one{Оновлення Chrome доступне вже # день}few{Оновлення Chrome доступне вже # дні}many{Оновлення Chrome доступне вже # днів}other{Оновлення Chrome доступне вже # дня}}</translation>
 <translation id="9026991721384951619">ОС Chrome не вдалося синхронізувати ваші дані, оскільки дані для входу в обліковий запис застаріли.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb
index ab5dc00..e55077c 100644
--- a/chrome/app/resources/google_chrome_strings_uz.xtb
+++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -45,6 +45,7 @@
 <translation id="2123055963409958220">Chrome brauzerining <ph name="BEGIN_LINK" />joriy sozlamalari<ph name="END_LINK" /> asosida hisobot yuboring va brauzerning ishlashini yaxshilashga yordamlashing</translation>
 <translation id="2151406531797534936">Chromeni hozir qayta ishga tushiring</translation>
 <translation id="2246246234298806438">Agar ichki PDF hujjatlarini ko‘rish dasturi mavjud bo‘lmasa, Google Chrome‘da oldindan ko‘rsatish imkoniyati bo‘lmaydi.</translation>
+<translation id="226038281051944330"><ph name="EXISTING_USER" /> ishchi maydoniga yangi hisob bilan kirgansiz. Axborotlarni alohida saqlash maqsadida <ph name="NEW_USER" /> uchun yangi Chrome maydonini yaratishni istaysizmi?</translation>
 <translation id="2290014774651636340">Google API kalitlari topilmadi. Google Chrome’ning ba’zi funksiyalari o‘chirib qo‘yiladi.</translation>
 <translation id="2290095356545025170">Haqiqatan ham Google Chrome brauzerini o‘chirib tashlamoqchimisiz?</translation>
 <translation id="2309047409763057870">Google Chrome takroran o‘rnatilgan, shuning uchun u asosiy brauzer bo‘la olmaydi.</translation>
@@ -143,12 +144,14 @@
 <translation id="4895437082222824641">&amp;Havolani yangi varaqda ochish</translation>
 <translation id="4953650215774548573">Google Chrome‘ni standart brauzer etib tayinlash</translation>
 <translation id="495931528404527476">Chrome brauzerida</translation>
+<translation id="4960472897514318257">Ishchi hisobingiz bilan kirgansiz. Shaxsiy maʼlumotlaringnizni alohida saqlash maqsadida <ph name="NEW_USER" /> uchun yangi Chrome maydonini yaratishni istaysizmi?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Chrome OS tizimini qayta ishga tushirish</translation>
 <translation id="5132929315877954718">Google Chrome uchun zo‘r ilovalar, o‘yinlar, kengaytmalar va mavzular bilan tanishing.</translation>
 <translation id="5170938038195470297">Profilingizdan foydalanib bo‘lmaydi, chunki u yanada yangiroq Google Chrome versiyasiga ta’luqli.
 
 Ba’zi imkoniyatlar ishlamasligi mumkin. Profilni saqlash uchun boshqa jild tanlang yoki yangiroq Google Chrome versiyasini o‘rnating.</translation>
+<translation id="5171117065011130146">Yangi Chrome ish maydoni yaratilsinmi?</translation>
 <translation id="5193136243808726294">Google Chrome OS bu sahifani ocha olmadi.</translation>
 <translation id="5251420635869119124">Agar tashrif buyurgan saytlaringiz haqidagi ma’lumotlar saqlanmasligini xohlasangiz, Chrome mehmon rejimidan foydalaning.</translation>
 <translation id="532046782124376502">Diqqat: Google Chrome kengaytmalar kezish tarixini yozib olishiga to‘sqinlik qilolmaydi. Bu kengaytmani inkognito rejimida o‘chirish uchun ushbu parametrdan belgini olib tashlang.</translation>
@@ -263,7 +266,9 @@
 <translation id="8823341990149967727">Chrome versiyasi eskirdi</translation>
 <translation id="8834965163890861871">Google Chrome parollarni tahrirlashga urinmoqda. Ruxsat berish uchun Windows parolingizni kiriting.</translation>
 <translation id="884296878221830158">Bundan tashqari kengaytma Chrome ochilganida yoki Bosh sahifa tugmasi bosilganida qaysi sahifa ko‘rsatilishini nazorat qiladi.</translation>
+<translation id="8859948767482842016"><ph name="EXISTING_USER" /> ishchi maydoniga ishchi hisob bilan kirgansiz. Axborotlarni alohida saqlash maqsadida <ph name="WORK_DOMAIN" /> uchun yangi Chrome maydonini yaratishni istaysizmi?</translation>
 <translation id="8862326446509486874">Sizda tizim darajasida o‘rnatish uchun yetarli ruxsatlar yo‘q. O‘rnatish dasturini administrator nomidan qayta ishga tushiring.</translation>
+<translation id="8877586659207810298"><ph name="NEW_USER" /> uchun yangi Chrome ishchi maydonni yaratilsinmi?</translation>
 <translation id="8914504000324227558">Chrome’ni qayta ishga tushiring</translation>
 <translation id="8999208279178790196">{0,plural, =0{Chrome uchun yangilanish mavjud}=1{Chrome uchun yangilanish mavjud}other{Chrome uchun yangilanish mavjud (# kun)}}</translation>
 <translation id="9026991721384951619">Hisob ma’lumotlaringiz eskirganligi tufayli sinxronlash amali bajarilmadi.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 0f0f286..a1e049cd 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -46,6 +46,7 @@
 <translation id="2123055963409958220">Giúp cải thiện Chrome bằng cách báo cáo <ph name="BEGIN_LINK" />cài đặt hiện tại<ph name="END_LINK" /></translation>
 <translation id="2151406531797534936">Vui lòng khởi động lại Chrome ngay bây giờ</translation>
 <translation id="2246246234298806438">Google Chrome không thể hiển thị xem trước bản in khi thiếu trình xem PDF được cài sẵn.</translation>
+<translation id="226038281051944330">Bạn đã đăng nhập bằng tài khoản mới trong không gian của <ph name="EXISTING_USER" />. Bạn có muốn tạo một không gian mới trên Chrome cho <ph name="NEW_USER" /> để lưu giữ dữ liệu riêng biệt không?</translation>
 <translation id="2290014774651636340">Khóa API của Google bị thiếu. Một số chức năng của Google Chrome sẽ bị tắt.</translation>
 <translation id="2290095356545025170">Bạn có chắc chắn muốn gỡ cài đặt Google Chrome không?</translation>
 <translation id="2309047409763057870">Đây là cài đặt thứ cấp của Google Chrome và không thể trở thành trình duyệt mặc định của bạn.</translation>
@@ -144,12 +145,14 @@
 <translation id="4895437082222824641">Mở liên kết trong thẻ mới của Chrome</translation>
 <translation id="4953650215774548573">Đặt Google Chrome làm trình duyệt mặc định của bạn</translation>
 <translation id="495931528404527476">Trong Chrome</translation>
+<translation id="4960472897514318257">Bạn đã đăng nhập bằng tài khoản công việc. Bạn có muốn tạo một không gian mới trên Chrome cho <ph name="NEW_USER" /> để lưu giữ dữ liệu cá nhân riêng biệt không?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">Khởi động lại Chrome OS</translation>
 <translation id="5132929315877954718">Khám phá các ứng dụng, trò chơi, tiện ích và chủ đề tuyệt vời cho Google Chrome.</translation>
 <translation id="5170938038195470297">Không thể sử dụng hồ sơ của bạn vì hồ sơ được tạo từ phiên bản Google Chrome mới hơn.
 
 Một số tính năng có thể không khả dụng. Vui lòng chỉ định thư mục hồ sơ khác hoặc sử dụng phiên bản Chrome mới hơn.</translation>
+<translation id="5171117065011130146">Tạo không gian làm việc mới trên Chrome?</translation>
 <translation id="5193136243808726294">Google Chrome OS không thể mở trang này.</translation>
 <translation id="5251420635869119124">Khách có thể sử dụng Chrome mà không phải thoát khỏi bất cứ nội dung nào.</translation>
 <translation id="532046782124376502">Cảnh báo: Google Chrome không thể ngăn các tiện ích ghi lại lịch sử duyệt web của bạn. Để tắt tiện ích này trong chế độ ẩn danh, hãy bỏ chọn tùy chọn này.</translation>
@@ -262,7 +265,9 @@
 <translation id="8823341990149967727">Chrome đã lỗi thời</translation>
 <translation id="8834965163890861871">Google Chrome đang cố gắng chỉnh sửa mật khẩu. Hãy nhập mật khẩu Windows của bạn để cho phép việc này.</translation>
 <translation id="884296878221830158">Tiện ích này cũng điều khiển trang nào được hiển thị khi bạn khởi động Chrome hoặc nhấp vào nút Trang chủ.</translation>
+<translation id="8859948767482842016">Bạn đã đăng nhập bằng tài khoản công việc trong không gian của <ph name="EXISTING_USER" />. Bạn có muốn tạo một không gian mới trên Chrome cho <ph name="WORK_DOMAIN" /> để lưu giữ dữ liệu riêng biệt không?</translation>
 <translation id="8862326446509486874">Bạn không có quyền thích hợp để cài đặt cấp hệ thống. Thử chạy lại trình cài đặt với vai trò Quản trị viên.</translation>
+<translation id="8877586659207810298">Tạo không gian mới trên Chrome cho <ph name="NEW_USER" />?</translation>
 <translation id="8914504000324227558">Chạy lại Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{Đã có bản cập nhật Chrome}=1{Đã có bản cập nhật Chrome}other{Đã có bản cập nhật Chrome từ # ngày trước}}</translation>
 <translation id="9026991721384951619">Chrome OS không thể đồng bộ hóa dữ liệu của bạn do chi tiết đăng nhập tài khoản của bạn đã lỗi thời.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index 174b2441..0e5c5c1 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -44,6 +44,7 @@
 <translation id="2123055963409958220">报告<ph name="BEGIN_LINK" />当前设置<ph name="END_LINK" />,协助我们改进 Chrome</translation>
 <translation id="2151406531797534936">请立即重启 Chrome</translation>
 <translation id="2246246234298806438">在缺少内置 PDF 查看器的情况下,Google Chrome 浏览器无法显示打印预览。</translation>
+<translation id="226038281051944330">您已在<ph name="EXISTING_USER" />的空间中使用新帐号登录。想为<ph name="NEW_USER" />创建一个新的 Chrome 空间来单独保存您的数据吗?</translation>
 <translation id="2290014774651636340">缺少 Google API 密钥,因此 Google Chrome 的部分功能将无法使用。</translation>
 <translation id="2290095356545025170">确定要卸载 Google Chrome 浏览器吗?</translation>
 <translation id="2309047409763057870">这是 Google Chrome 的并行安装,您无法将此浏览器设为默认浏览器。</translation>
@@ -142,10 +143,12 @@
 <translation id="4895437082222824641">在 Chrome 新标签页中打开链接(&amp;T)</translation>
 <translation id="4953650215774548573">将Google Chrome设为默认浏览器</translation>
 <translation id="495931528404527476">在 Chrome 中</translation>
+<translation id="4960472897514318257">您已使用工作帐号登录。想为<ph name="NEW_USER" />创建一个新的 Chrome 空间来单独保存您的个人数据吗?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">重启 Chrome 操作系统</translation>
 <translation id="5132929315877954718">查找适用于Google Chrome的精彩应用、游戏、扩展程序和主题背景。</translation>
 <translation id="5170938038195470297">您的个人资料来自新版 Google Chrome 浏览器,因此无法使用。某些功能可能无法使用。请指定其他个人资料目录,或使用新版 Chrome 浏览器。</translation>
+<translation id="5171117065011130146">要创建新的 Chrome 工作空间?</translation>
 <translation id="5193136243808726294">Google Chrome 操作系统无法打开此网页。</translation>
 <translation id="5251420635869119124">访客使用Chrome不会留下任何痕迹。</translation>
 <translation id="532046782124376502">警告:Google Chrome 无法阻止扩展程序记录您的浏览活动。要在无痕模式下停用该扩展程序,请取消选中此选项。</translation>
@@ -258,7 +261,9 @@
 <translation id="8823341990149967727">Chrome版本太旧</translation>
 <translation id="8834965163890861871">Google Chrome 正在尝试修改密码。请输入您的 Windows 密码以允许此操作。</translation>
 <translation id="884296878221830158">它还能够控制您启动Chrome或点击“主页”按钮后系统显示的页面。</translation>
+<translation id="8859948767482842016">您已在<ph name="EXISTING_USER" />的空间中使用工作帐号登录。想为<ph name="WORK_DOMAIN" />创建一个新的 Chrome 空间来单独保存您的数据吗?</translation>
 <translation id="8862326446509486874">您的权限不足,无法进行系统级安装。请尝试以管理员身份再次运行安装程序。</translation>
+<translation id="8877586659207810298">要为<ph name="NEW_USER" />创建新的 Chrome 空间?</translation>
 <translation id="8914504000324227558">重启 Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{有一项可用的 Chrome 更新}=1{有一项可用的 Chrome 更新}other{有一项可用的 Chrome 更新(已发布 # 天)}}</translation>
 <translation id="9026991721384951619">您的帐号登录详细信息已过期,Chrome操作系统无法同步您的数据。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index 4eb35cb..4dbd8eb 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -48,6 +48,7 @@
 <translation id="2123055963409958220">只要報告<ph name="BEGIN_LINK" />目前的設定<ph name="END_LINK" />,就能助我們一臂之力,讓 Chrome 更臻完美</translation>
 <translation id="2151406531797534936">請立即重新啟動 Chrome</translation>
 <translation id="2246246234298806438">缺乏內置的 PDF 檢視器時,Google Chrome 無法顯示列印預覽。</translation>
+<translation id="226038281051944330">您已使用新帳戶登入<ph name="EXISTING_USER" />的空間。要為<ph name="NEW_USER" />建立新的 Chrome 空間以分開保留資料嗎?</translation>
 <translation id="2290014774651636340">缺少 Google API 金鑰,系統將停用 Google Chrome 的部分功能。</translation>
 <translation id="2290095356545025170">確定要解除安裝 Google Chrome 嗎?</translation>
 <translation id="2309047409763057870">這是以並行形式安裝的第二個 Google Chrome,因此無法設定為您的預設瀏覽器。</translation>
@@ -146,12 +147,14 @@
 <translation id="4895437082222824641">在 Chrome 新分頁中開啟連結(&amp;T)</translation>
 <translation id="4953650215774548573">將 Google Chrome 設為預設瀏覽器</translation>
 <translation id="495931528404527476">在 Chrome 中</translation>
+<translation id="4960472897514318257">您已使用公司帳戶登入。要為<ph name="NEW_USER" />建立新的 Chrome 空間以分開保留個人資料嗎?</translation>
 <translation id="4990567037958725628">Google Chrome Canary</translation>
 <translation id="5062123544085870375">重新啟動 Chrome 作業系統</translation>
 <translation id="5132929315877954718">為您的 Google Chrome 探索各種實用有趣的應用程式、遊戲、擴充功能和主題。</translation>
 <translation id="5170938038195470297">由於您的設定檔是來自較新版本的 Google Chrome,所以系統無法使用該檔案。
 
 這表示您可能無法使用部分功能。請指定另一個設定檔目錄,或使用較新版本的 Chrome。</translation>
+<translation id="5171117065011130146">要建立新的 Chrome 工作空間嗎?</translation>
 <translation id="5193136243808726294">Google Chrome 作業系統無法開啟此網頁。</translation>
 <translation id="5251420635869119124">以訪客身分使用 Chrome 不會留下任何記錄。</translation>
 <translation id="532046782124376502">警告:Google Chrome 無法阻止擴充程式記錄您的瀏覽活動。如要在無痕模式中停用這個擴充程式,請取消選取這個選項。</translation>
@@ -265,7 +268,9 @@
 <translation id="8823341990149967727">Chrome 版本過舊</translation>
 <translation id="8834965163890861871">Google Chrome 正在嘗試編輯密碼。如果您同意,請輸入 Windows 密碼。</translation>
 <translation id="884296878221830158">這個擴充功能也會管制 Chrome 啟動時或您按一下 [主頁] 按鈕時所顯示的網頁。</translation>
+<translation id="8859948767482842016">您已使用公司帳戶登入<ph name="EXISTING_USER" />的空間。要為<ph name="WORK_DOMAIN" />建立新的 Chrome 空間以分開保留資料嗎?</translation>
 <translation id="8862326446509486874">您沒有在系統層級進行安裝的權限,請以管理員的身分執行安裝程式。</translation>
+<translation id="8877586659207810298">要為<ph name="NEW_USER" />建立新的 Chrome 空間嗎?</translation>
 <translation id="8914504000324227558">重新啟動 Chrome</translation>
 <translation id="8999208279178790196">{0,plural, =0{有可用的 Chrome 更新}=1{有可用的 Chrome 更新}other{Chrome 更新已發佈 # 天}}</translation>
 <translation id="9026991721384951619">您的帳戶登入詳情尚未更新,因此 Chrome 作業系統無法同步處理您的數據。</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 9a31b8d..3dacbd17 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -143,6 +143,8 @@
     "autofill/autocomplete_history_manager_factory.h",
     "autofill/autofill_gstatic_reader.cc",
     "autofill/autofill_gstatic_reader.h",
+    "autofill/autofill_offer_manager_factory.cc",
+    "autofill/autofill_offer_manager_factory.h",
     "autofill/autofill_profile_validator_factory.cc",
     "autofill/autofill_profile_validator_factory.h",
     "autofill/personal_data_manager_factory.cc",
@@ -841,6 +843,8 @@
     "navigation_predictor/navigation_predictor_keyed_service_factory.h",
     "navigation_predictor/navigation_predictor_preconnect_client.cc",
     "navigation_predictor/navigation_predictor_preconnect_client.h",
+    "navigation_predictor/navigation_predictor_renderer_warmup_client.cc",
+    "navigation_predictor/navigation_predictor_renderer_warmup_client.h",
     "navigation_predictor/search_engine_preconnector.cc",
     "navigation_predictor/search_engine_preconnector.h",
     "net/chrome_cookie_notification_details.h",
@@ -3273,6 +3277,8 @@
       "media/kaleidoscope/constants.h",
       "media/kaleidoscope/kaleidoscope_data_provider_impl.cc",
       "media/kaleidoscope/kaleidoscope_data_provider_impl.h",
+      "media/kaleidoscope/kaleidoscope_prefs.cc",
+      "media/kaleidoscope/kaleidoscope_prefs.h",
       "media/kaleidoscope/kaleidoscope_switches.cc",
       "media/kaleidoscope/kaleidoscope_switches.h",
       "media/kaleidoscope/kaleidoscope_tab_helper.cc",
@@ -4599,6 +4605,10 @@
     sources += [
       "device_identity/device_oauth2_token_store_desktop.cc",
       "device_identity/device_oauth2_token_store_desktop.h",
+      "enterprise/remote_commands/cbcm_remote_commands_factory.cc",
+      "enterprise/remote_commands/cbcm_remote_commands_factory.h",
+      "enterprise/remote_commands/clear_browsing_data_job.cc",
+      "enterprise/remote_commands/clear_browsing_data_job.h",
       "first_run/upgrade_util.cc",
       "first_run/upgrade_util.h",
       "lifetime/switch_utils.cc",
@@ -4616,8 +4626,6 @@
       "notifications/screen_lock_notification_blocker.cc",
       "notifications/screen_lock_notification_blocker.h",
       "platform_util.cc",
-      "policy/cbcm_remote_commands_factory.cc",
-      "policy/cbcm_remote_commands_factory.h",
       "policy/chrome_browser_cloud_management_controller_desktop.cc",
       "policy/chrome_browser_cloud_management_controller_desktop.h",
       "policy/chrome_browser_cloud_management_register_watcher.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 0d6118d..92368e6a 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3692,10 +3692,12 @@
      FEATURE_VALUE_TYPE(omnibox::kOmniboxTabSwitchSuggestions)},
 #endif  // defined(OS_ANDROID)
 
-    {"omnibox-clobber-is-zero-suggest-entrypoint",
-     flag_descriptions::kOmniboxClobberIsZeroSuggestEntrypointName,
-     flag_descriptions::kOmniboxClobberIsZeroSuggestEntrypointDescription,
-     kOsAll, FEATURE_VALUE_TYPE(omnibox::kClobberIsZeroSuggestEntrypoint)},
+    {"omnibox-clobber-triggers-contextual-web-zero-suggest",
+     flag_descriptions::kOmniboxClobberTriggersContextualWebZeroSuggestName,
+     flag_descriptions::
+         kOmniboxClobberTriggersContextualWebZeroSuggestDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(omnibox::kClobberTriggersContextualWebZeroSuggest)},
 
     {"omnibox-focus-gesture-triggers-contextual-web-zero-suggest",
      flag_descriptions::
@@ -6298,6 +6300,15 @@
      FEATURE_VALUE_TYPE(features::kCpuAffinityRestrictToLittleCores)},
 #endif  // OS_ANDROID
 
+#if defined(OS_ANDROID)
+    {"enable-autofill-credit-card-cvc-prompt-google-logo",
+     flag_descriptions::kEnableAutofillCreditCardCvcPromptGoogleLogoName,
+     flag_descriptions::kEnableAutofillCreditCardCvcPromptGoogleLogoDescription,
+     kOsAndroid,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillDownstreamCvcPromptUseGooglePayLogo)},
+#endif
+
 #if defined(OS_CHROMEOS)
     {"enable-auto-select", flag_descriptions::kEnableAutoSelectName,
      flag_descriptions::kEnableAutoSelectDescription, kOsCrOS,
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
index e90ea488..304a579 100644
--- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
@@ -86,7 +86,7 @@
       return metrics::OmniboxInputType::QUERY;
 
     case ExternalProtocolHandler::UNKNOWN: {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
       // Linux impl of GetApplicationNameForProtocol doesn't distinguish
       // between URL schemes with handers and those without. This will
       // make the default behaviour be search on Linux.
@@ -99,7 +99,7 @@
           shell_integration::GetApplicationNameForProtocol(url);
       return application_name.empty() ? metrics::OmniboxInputType::EMPTY
                                       : metrics::OmniboxInputType::URL;
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
     }
   }
   NOTREACHED();
diff --git a/chrome/browser/autofill/autofill_offer_manager_factory.cc b/chrome/browser/autofill/autofill_offer_manager_factory.cc
new file mode 100644
index 0000000..5817ccec
--- /dev/null
+++ b/chrome/browser/autofill/autofill_offer_manager_factory.cc
@@ -0,0 +1,42 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/autofill/autofill_offer_manager_factory.h"
+
+#include "base/memory/singleton.h"
+#include "chrome/browser/profiles/profile.h"
+#include "components/autofill/core/browser/payments/autofill_offer_manager.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
+
+namespace autofill {
+
+namespace payments {
+
+// static
+AutofillOfferManager* AutofillOfferManagerFactory::GetForProfile(
+    Profile* profile) {
+  return static_cast<AutofillOfferManager*>(
+      GetInstance()->GetServiceForBrowserContext(profile, true));
+}
+
+// static
+AutofillOfferManagerFactory* AutofillOfferManagerFactory::GetInstance() {
+  return base::Singleton<AutofillOfferManagerFactory>::get();
+}
+
+AutofillOfferManagerFactory::AutofillOfferManagerFactory()
+    : BrowserContextKeyedServiceFactory(
+          "AutofillOfferManager",
+          BrowserContextDependencyManager::GetInstance()) {}
+
+AutofillOfferManagerFactory::~AutofillOfferManagerFactory() = default;
+
+KeyedService* AutofillOfferManagerFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  return new AutofillOfferManager();
+}
+
+}  // namespace payments
+
+}  // namespace autofill
diff --git a/chrome/browser/autofill/autofill_offer_manager_factory.h b/chrome/browser/autofill/autofill_offer_manager_factory.h
new file mode 100644
index 0000000..8898b80
--- /dev/null
+++ b/chrome/browser/autofill/autofill_offer_manager_factory.h
@@ -0,0 +1,52 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_OFFER_MANAGER_FACTORY_H_
+#define CHROME_BROWSER_AUTOFILL_AUTOFILL_OFFER_MANAGER_FACTORY_H_
+
+#include "base/compiler_specific.h"
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+namespace base {
+template <typename T>
+struct DefaultSingletonTraits;
+}
+
+class Profile;
+
+namespace autofill {
+
+namespace payments {
+
+class AutofillOfferManager;
+
+// Singleton that owns all AutofillOfferManager and associates them with
+// Profiles.
+class AutofillOfferManagerFactory : public BrowserContextKeyedServiceFactory {
+ public:
+  AutofillOfferManagerFactory(const AutofillOfferManagerFactory&) = delete;
+  AutofillOfferManagerFactory& operator=(const AutofillOfferManagerFactory&) =
+      delete;
+
+  static AutofillOfferManager* GetForProfile(Profile* profile);
+
+  static AutofillOfferManagerFactory* GetInstance();
+
+ private:
+  friend struct base::DefaultSingletonTraits<AutofillOfferManagerFactory>;
+
+  AutofillOfferManagerFactory();
+  ~AutofillOfferManagerFactory() override;
+
+  // BrowserContextKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* profile) const override;
+};
+
+}  // namespace payments
+
+}  // namespace autofill
+
+#endif  // CHROME_BROWSER_AUTOFILL_AUTOFILL_OFFER_MANAGER_FACTORY_H_
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn
index c80d703..f136281 100644
--- a/chrome/browser/chromeos/BUILD.gn
+++ b/chrome/browser/chromeos/BUILD.gn
@@ -118,6 +118,7 @@
     "//chromeos/components/print_management/mojom",
     "//chromeos/components/proximity_auth",
     "//chromeos/components/quick_answers/public/cpp:prefs",
+    "//chromeos/components/scanning",
     "//chromeos/components/smbfs",
     "//chromeos/components/smbfs/mojom",
     "//chromeos/components/string_matching",
@@ -173,6 +174,7 @@
     "//chromeos/login/login_state",
     "//chromeos/login/session",
     "//chromeos/network",
+    "//chromeos/resources:scanning_app_resources_grit",
     "//chromeos/services/assistant/public/cpp",
     "//chromeos/services/cfm/public/buildflags",
     "//chromeos/services/cros_healthd/public/cpp",
@@ -1816,6 +1818,8 @@
     "login/users/user_manager_interface.h",
     "login/version_info_updater.cc",
     "login/version_info_updater.h",
+    "login/version_updater/update_time_estimator.cc",
+    "login/version_updater/update_time_estimator.h",
     "login/version_updater/version_updater.cc",
     "login/version_updater/version_updater.h",
     "login/wizard_context.cc",
@@ -1856,8 +1860,8 @@
     "net/network_diagnostics/has_secure_wifi_connection_routine.h",
     "net/network_diagnostics/lan_connectivity_routine.cc",
     "net/network_diagnostics/lan_connectivity_routine.h",
-    "net/network_diagnostics/network_diagnostics_impl.cc",
-    "net/network_diagnostics/network_diagnostics_impl.h",
+    "net/network_diagnostics/network_diagnostics.cc",
+    "net/network_diagnostics/network_diagnostics.h",
     "net/network_diagnostics/network_diagnostics_routine.cc",
     "net/network_diagnostics/network_diagnostics_routine.h",
     "net/network_diagnostics/signal_strength_routine.cc",
@@ -2072,10 +2076,10 @@
     "policy/external_data_handlers/device_wallpaper_image_external_data_handler.h",
     "policy/external_data_handlers/device_wilco_dtc_configuration_external_data_handler.cc",
     "policy/external_data_handlers/device_wilco_dtc_configuration_external_data_handler.h",
-    "policy/external_data_handlers/native_printers_external_data_handler.cc",
-    "policy/external_data_handlers/native_printers_external_data_handler.h",
     "policy/external_data_handlers/print_servers_external_data_handler.cc",
     "policy/external_data_handlers/print_servers_external_data_handler.h",
+    "policy/external_data_handlers/printers_external_data_handler.cc",
+    "policy/external_data_handlers/printers_external_data_handler.h",
     "policy/external_data_handlers/user_avatar_image_external_data_handler.cc",
     "policy/external_data_handlers/user_avatar_image_external_data_handler.h",
     "policy/external_data_handlers/wallpaper_image_external_data_handler.cc",
@@ -2639,6 +2643,8 @@
     "web_applications/crosh_loader_factory.cc",
     "web_applications/crosh_loader_factory.h",
     "web_applications/default_web_app_ids.h",
+    "web_applications/scanning_system_web_app_info.cc",
+    "web_applications/scanning_system_web_app_info.h",
     "web_applications/system_web_app_install_utils.cc",
     "web_applications/system_web_app_install_utils.h",
     "web_applications/terminal_source.cc",
@@ -3294,6 +3300,7 @@
     "login/users/affiliation_unittest.cc",
     "login/users/multi_profile_user_controller_unittest.cc",
     "login/users/user_manager_unittest.cc",
+    "login/version_updater/update_time_estimator_unittest.cc",
     "login/version_updater/version_updater_unittest.cc",
     "mobile/mobile_activator_unittest.cc",
     "net/client_cert_store_chromeos_unittest.cc",
@@ -3304,8 +3311,8 @@
     "net/network_diagnostics/gateway_can_be_pinged_routine_unittest.cc",
     "net/network_diagnostics/has_secure_wifi_connection_routine_unittest.cc",
     "net/network_diagnostics/lan_connectivity_routine_unittest.cc",
-    "net/network_diagnostics/network_diagnostics_impl_unittest.cc",
     "net/network_diagnostics/network_diagnostics_routine_unittest.cc",
+    "net/network_diagnostics/network_diagnostics_unittest.cc",
     "net/network_diagnostics/signal_strength_routine_unittest.cc",
     "net/network_health/network_health_unittest.cc",
     "net/network_portal_detector_impl_unittest.cc",
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.cc b/chrome/browser/chromeos/crostini/crostini_manager.cc
index dfd2e1a..9d6973b 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.cc
+++ b/chrome/browser/chromeos/crostini/crostini_manager.cc
@@ -2102,6 +2102,31 @@
   }
 }
 
+void CrostiniManager::GetVshSession(const ContainerId& container_id,
+                                    int32_t host_vsh_pid,
+                                    VshSessionCallback callback) {
+  vm_tools::cicerone::GetVshSessionRequest request;
+  request.set_vm_name(container_id.vm_name);
+  request.set_container_name(container_id.container_name);
+  request.set_owner_id(CryptohomeIdForProfile(profile_));
+  request.set_host_vsh_pid(host_vsh_pid);
+
+  GetCiceroneClient()->GetVshSession(
+      request, base::BindOnce(
+                   [](VshSessionCallback callback,
+                      base::Optional<vm_tools::cicerone::GetVshSessionResponse>
+                          response) {
+                     if (!response) {
+                       std::move(callback).Run(false, "Empty response", 0);
+                     } else {
+                       std::move(callback).Run(response->success(),
+                                               response->failure_reason(),
+                                               response->container_shell_pid());
+                     }
+                   },
+                   std::move(callback)));
+}
+
 CrostiniManager::RestartId CrostiniManager::RestartCrostini(
     ContainerId container_id,
     CrostiniResultCallback callback,
diff --git a/chrome/browser/chromeos/crostini/crostini_manager.h b/chrome/browser/chromeos/crostini/crostini_manager.h
index e866d3e..f2424b8 100644
--- a/chrome/browser/chromeos/crostini/crostini_manager.h
+++ b/chrome/browser/chromeos/crostini/crostini_manager.h
@@ -455,6 +455,15 @@
   void AddFileChangeObserver(CrostiniFileChangeObserver* observer);
   void RemoveFileChangeObserver(CrostiniFileChangeObserver* observer);
 
+  // Lookup vsh session from pid. Used by terminal to open new tabs in cwd.
+  using VshSessionCallback =
+      base::OnceCallback<void(bool success,
+                              const std::string& failure_reason,
+                              int32_t container_shell_pid)>;
+  void GetVshSession(const ContainerId& container_id,
+                     int32_t host_vsh_pid,
+                     VshSessionCallback callback);
+
   // Runs all the steps required to restart the given crostini vm and container.
   // The optional |observer| tracks progress. If provided, it must be alive
   // until the restart completes (i.e. when |callback| is called) or the restart
diff --git a/chrome/browser/chromeos/input_method/emoji_suggester.cc b/chrome/browser/chromeos/input_method/emoji_suggester.cc
index 8f6c170a..83a734cd 100644
--- a/chrome/browser/chromeos/input_method/emoji_suggester.cc
+++ b/chrome/browser/chromeos/input_method/emoji_suggester.cc
@@ -6,6 +6,7 @@
 
 #include "base/files/file_util.h"
 #include "base/i18n/number_formatting.h"
+#include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/string_number_conversions.h"
@@ -17,6 +18,7 @@
 #include "base/task/thread_pool.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/ash/keyboard/chrome_keyboard_controller_client.h"
+#include "chromeos/constants/chromeos_features.h"
 #include "chromeos/constants/chromeos_pref_names.h"
 #include "chromeos/services/ime/constants.h"
 #include "components/prefs/scoped_user_pref_update.h"
@@ -31,8 +33,7 @@
     "emoji_suggester.show_setting_count";
 const int kMaxCandidateSize = 5;
 const char kSpaceChar = ' ';
-const base::FilePath::CharType kEmojiMapFilePath[] =
-    FILE_PATH_LITERAL("/emoji/emoji-map.csv");
+constexpr char kEmojiMapFilePathTemplateName[] = "/emoji/emoji-map%s.csv";
 const int kMaxSuggestionIndex = 31;
 const int kMaxSuggestionSize = kMaxSuggestionIndex + 1;
 const char kShowEmojiSuggestionMessage[] =
@@ -48,7 +49,11 @@
 
   std::string emoji_data;
   base::FilePath::StringType path(ime::kBundledInputMethodsDirPath);
-  path.append(kEmojiMapFilePath);
+  std::string value = base::GetFieldTrialParamValueByFeature(
+      chromeos::features::kEmojiSuggestAddition, "map");
+  std::string file_path =
+      base::StringPrintf(kEmojiMapFilePathTemplateName, value.c_str());
+  path.append(FILE_PATH_LITERAL(file_path));
   if (!base::ReadFileToString(base::FilePath(path), &emoji_data))
     LOG(WARNING) << "Emoji map file missing.";
   return emoji_data;
diff --git a/chrome/browser/chromeos/kerberos/kerberos_credentials_manager_test.cc b/chrome/browser/chromeos/kerberos/kerberos_credentials_manager_test.cc
index 6fe28ec4..3140b8c 100644
--- a/chrome/browser/chromeos/kerberos/kerberos_credentials_manager_test.cc
+++ b/chrome/browser/chromeos/kerberos/kerberos_credentials_manager_test.cc
@@ -1160,7 +1160,9 @@
 
 // UpdateAccountsFromPref retries multiple times to add account if addition
 // fails multiple times for network related errors.
-TEST_F(KerberosCredentialsManagerTest, UpdateAccountsFromPrefMultipleRetries) {
+// Disable for being flaky. crbug.com/1116500
+TEST_F(KerberosCredentialsManagerTest,
+       DISABLED_UpdateAccountsFromPrefMultipleRetries) {
   // Starting with Kerberos enabled.
   SetPref(prefs::kKerberosEnabled, base::Value(true));
 
@@ -1200,8 +1202,9 @@
 
 // UpdateAccountsFromPref retries to add multiple accounts if addition fails for
 // network related errors.
+// Disable for being flaky. crbug.com/1116500
 TEST_F(KerberosCredentialsManagerTest,
-       UpdateAccountsFromPrefRetryMultipleAccounts) {
+       DISABLED_UpdateAccountsFromPrefRetryMultipleAccounts) {
   // Starting with Kerberos enabled.
   SetPref(prefs::kKerberosEnabled, base::Value(true));
 
@@ -1246,7 +1249,9 @@
 
 // UpdateAccountsFromPref stops retrying after a certain number of network
 // related errors.
-TEST_F(KerberosCredentialsManagerTest, UpdateAccountsFromPrefStopsRetrying) {
+// Disable for being flaky. crbug.com/1116500
+TEST_F(KerberosCredentialsManagerTest,
+       DISABLED_UpdateAccountsFromPrefStopsRetrying) {
   // Starting with Kerberos enabled.
   SetPref(prefs::kKerberosEnabled, base::Value(true));
 
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
index 30beda3a8..574053c2 100644
--- a/chrome/browser/chromeos/login/session/user_session_manager.cc
+++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -1434,7 +1434,10 @@
 void UserSessionManager::UserProfileInitialized(Profile* profile,
                                                 bool is_incognito_profile,
                                                 const AccountId& account_id) {
-  os_sync_util::MigrateOsSyncPreferences(profile->GetPrefs());
+  // Only migrate sync prefs for existing users. New users are given the choice
+  // to turn on OS sync in OOBE, so they get the default sync pref values.
+  if (!IsNewProfile(profile))
+    os_sync_util::MigrateOsSyncPreferences(profile->GetPrefs());
 
   // http://crbug/866790: After Supervised Users are deprecated, remove this.
   bool is_supervised_user =
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
index 7e8f48d..33c6623a 100644
--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
@@ -54,8 +54,8 @@
 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
 #include "chrome/browser/chromeos/policy/device_network_configuration_updater.h"
 #include "chrome/browser/chromeos/policy/external_data_handlers/crostini_ansible_playbook_external_data_handler.h"
-#include "chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.h"
 #include "chrome/browser/chromeos/policy/external_data_handlers/print_servers_external_data_handler.h"
+#include "chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.h"
 #include "chrome/browser/chromeos/policy/external_data_handlers/user_avatar_image_external_data_handler.h"
 #include "chrome/browser/chromeos/policy/external_data_handlers/wallpaper_image_external_data_handler.h"
 #include "chrome/browser/chromeos/policy/user_network_configuration_updater.h"
@@ -375,7 +375,7 @@
       std::make_unique<policy::WallpaperImageExternalDataHandler>(
           cros_settings_, device_local_account_policy_service));
   cloud_external_data_policy_handlers_.push_back(
-      std::make_unique<policy::NativePrintersExternalDataHandler>(
+      std::make_unique<policy::PrintersExternalDataHandler>(
           cros_settings_, device_local_account_policy_service));
   cloud_external_data_policy_handlers_.push_back(
       std::make_unique<policy::PrintServersExternalDataHandler>(
diff --git a/chrome/browser/chromeos/login/version_updater/update_time_estimator.cc b/chrome/browser/chromeos/login/version_updater/update_time_estimator.cc
new file mode 100644
index 0000000..4db330c0
--- /dev/null
+++ b/chrome/browser/chromeos/login/version_updater/update_time_estimator.cc
@@ -0,0 +1,169 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/login/version_updater/update_time_estimator.h"
+
+#include <utility>
+
+#include "base/time/default_tick_clock.h"
+#include "base/time/time.h"
+
+namespace chromeos {
+
+namespace {
+
+// Estimation time needed for each stage to complete in seconds.
+constexpr base::TimeDelta kDownloadTime = base::TimeDelta::FromMinutes(50);
+constexpr base::TimeDelta kVerifyingTime = base::TimeDelta::FromMinutes(5);
+constexpr base::TimeDelta kFinalizingTime = base::TimeDelta::FromMinutes(5);
+
+struct StageTimeExpectation {
+  update_engine::Operation stage_;
+  base::TimeDelta time_estimation_;
+};
+
+// Stages for which |estimated_time_left| should be calculated.
+constexpr StageTimeExpectation kStages[] = {
+    {update_engine::Operation::DOWNLOADING, kDownloadTime},
+    {update_engine::Operation::VERIFYING, kVerifyingTime},
+    {update_engine::Operation::FINALIZING, kFinalizingTime},
+};
+
+// Minimum timestep between two consecutive measurements for the download rates.
+constexpr const base::TimeDelta kMinTimeStep = base::TimeDelta::FromSeconds(1);
+
+// Smooth factor that is used for the average downloading speed
+// estimation.
+// avg_speed = smooth_factor * cur_speed + (1.0 - smooth_factor) *
+// avg_speed.
+const double kDownloadSpeedSmoothFactor = 0.1;
+
+// Minimum allowed value for the average downloading speed.
+const double kDownloadAverageSpeedDropBound = 1e-8;
+
+// An upper bound for possible downloading time left estimations.
+constexpr const base::TimeDelta kMaxTimeLeft = base::TimeDelta::FromDays(1);
+
+}  // anonymous namespace
+
+UpdateTimeEstimator::UpdateTimeEstimator()
+    : tick_clock_(base::DefaultTickClock::GetInstance()) {}
+
+void UpdateTimeEstimator::Update(const update_engine::StatusResult& status) {
+  if (status.current_operation() == update_engine::Operation::DOWNLOADING) {
+    UpdateForDownloadingTimeLeftEstimation(status);
+  }
+  UpdateForTotalTimeLeftEstimation(status.current_operation());
+}
+
+bool UpdateTimeEstimator::HasDownloadTime() const {
+  return has_download_time_estimation_;
+}
+
+bool UpdateTimeEstimator::HasTotalTime(update_engine::Operation stage) const {
+  for (const auto& el : kStages) {
+    if (el.stage_ == stage) {
+      return true;
+    }
+  }
+  return false;
+}
+
+base::TimeDelta UpdateTimeEstimator::GetDownloadTimeLeft() const {
+  return download_time_left_;
+}
+
+base::TimeDelta UpdateTimeEstimator::GetTimeLeft() const {
+  base::TimeDelta time_left_estimation;
+  bool stage_found = false;
+  for (const auto& el : kStages) {
+    if (stage_found) {
+      time_left_estimation += el.time_estimation_;
+    }
+    if (el.stage_ != current_stage_)
+      continue;
+
+    stage_found = true;
+    // Time spent and left in the current stage.
+    const base::TimeDelta time_spent =
+        tick_clock_->NowTicks() - stage_started_time_;
+    const base::TimeDelta time_left =
+        std::max(el.time_estimation_ - time_spent, base::TimeDelta());
+    if (current_stage_ == update_engine::Operation::DOWNLOADING &&
+        has_download_time_estimation_) {
+      const base::TimeDelta time_left_speed_estimation =
+          download_time_left_ - (tick_clock_->NowTicks() - download_last_time_);
+      time_left_estimation += time_left_speed_estimation;
+    } else {
+      time_left_estimation += time_left;
+    }
+  }
+  return time_left_estimation;
+}
+
+void UpdateTimeEstimator::UpdateForTotalTimeLeftEstimation(
+    update_engine::Operation stage) {
+  if (current_stage_ != stage) {
+    current_stage_ = stage;
+    stage_started_time_ = tick_clock_->NowTicks();
+  }
+}
+
+void UpdateTimeEstimator::UpdateForDownloadingTimeLeftEstimation(
+    const update_engine::StatusResult& status) {
+  if (!is_downloading_update_) {
+    is_downloading_update_ = true;
+
+    download_start_time_ = download_last_time_ = tick_clock_->NowTicks();
+    download_start_progress_ = status.progress();
+    download_last_progress_ = status.progress();
+    is_download_average_speed_computed_ = false;
+    download_average_speed_ = 0.0;
+  }
+
+  base::TimeTicks download_current_time = tick_clock_->NowTicks();
+  if (download_current_time < download_last_time_ + kMinTimeStep)
+    return;
+
+  // Estimate downloading rate.
+  double progress_delta =
+      std::max(status.progress() - download_last_progress_, 0.0);
+  double time_delta =
+      (download_current_time - download_last_time_).InSecondsF();
+  double download_rate = status.new_size() * progress_delta / time_delta;
+
+  download_last_time_ = download_current_time;
+  download_last_progress_ = status.progress();
+
+  // Estimate time left.
+  double progress_left = std::max(1.0 - status.progress(), 0.0);
+  if (!is_download_average_speed_computed_) {
+    download_average_speed_ = download_rate;
+    is_download_average_speed_computed_ = true;
+  }
+  download_average_speed_ =
+      kDownloadSpeedSmoothFactor * download_rate +
+      (1.0 - kDownloadSpeedSmoothFactor) * download_average_speed_;
+  if (download_average_speed_ < kDownloadAverageSpeedDropBound) {
+    time_delta = (download_current_time - download_start_time_).InSecondsF();
+    download_average_speed_ = status.new_size() * progress_delta / time_delta;
+  }
+  double work_left = progress_left * status.new_size();
+  // time_left is in seconds.
+  double time_left = work_left / download_average_speed_;
+  // If |download_average_speed_| is 0.
+  if (isnan(time_left)) {
+    has_download_time_estimation_ = false;
+    return;
+  }
+  // |time_left| may be large enough or even +infinity. So we must
+  // |bound possible estimations.
+  time_left = std::min(time_left, kMaxTimeLeft.InSecondsF());
+
+  has_download_time_estimation_ = true;
+  download_time_left_ =
+      base::TimeDelta::FromSeconds(static_cast<int>(round(time_left)));
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/login/version_updater/update_time_estimator.h b/chrome/browser/chromeos/login/version_updater/update_time_estimator.h
new file mode 100644
index 0000000..03162bc
--- /dev/null
+++ b/chrome/browser/chromeos/login/version_updater/update_time_estimator.h
@@ -0,0 +1,75 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_VERSION_UPDATER_UPDATE_TIME_ESTIMATOR_H_
+#define CHROME_BROWSER_CHROMEOS_LOGIN_VERSION_UPDATER_UPDATE_TIME_ESTIMATOR_H_
+
+#include "base/time/time.h"
+#include "chromeos/dbus/update_engine_client.h"
+
+namespace base {
+class TickClock;
+}
+
+namespace chromeos {
+
+// Helper class that gives time left expectations.
+class UpdateTimeEstimator {
+ public:
+  UpdateTimeEstimator();
+
+  // Updates data needed for estimation.
+  void Update(const update_engine::StatusResult& status);
+
+  bool HasDownloadTime() const;
+
+  bool HasTotalTime(update_engine::Operation stage) const;
+
+  // Estimate time left for a downloading stage to complete.
+  base::TimeDelta GetDownloadTimeLeft() const;
+
+  // Estimate time left for an update to complete.
+  base::TimeDelta GetTimeLeft() const;
+
+  void set_tick_clock_for_testing(const base::TickClock* tick_clock) {
+    tick_clock_ = tick_clock;
+  }
+
+ private:
+  // Starts timer that refreshes time left estimation for non-error stages.
+  void UpdateForTotalTimeLeftEstimation(update_engine::Operation stage);
+
+  // Updates downloading stats (remaining time and downloading
+  // progress), which are stored in update_info_.
+  void UpdateForDownloadingTimeLeftEstimation(
+      const update_engine::StatusResult& status);
+
+  bool has_download_time_estimation_ = false;
+  base::TimeDelta download_time_left_;
+
+  // Time of the first notification from the downloading stage.
+  base::TimeTicks download_start_time_;
+  double download_start_progress_ = 0;
+
+  // Time of the last notification from the downloading stage.
+  base::TimeTicks download_last_time_;
+  double download_last_progress_ = 0;
+
+  bool is_download_average_speed_computed_ = false;
+  // Average speed in bytes per second.
+  double download_average_speed_ = 0;
+
+  // Flag that is used to detect when update download has just started.
+  bool is_downloading_update_ = false;
+
+  // Time when stage for which total time estimation is calculated started.
+  base::TimeTicks stage_started_time_;
+  update_engine::Operation current_stage_ = update_engine::Operation::IDLE;
+
+  const base::TickClock* tick_clock_ = nullptr;
+};
+
+}  // namespace chromeos
+
+#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_VERSION_UPDATER_UPDATE_TIME_ESTIMATOR_H_
diff --git a/chrome/browser/chromeos/login/version_updater/update_time_estimator_unittest.cc b/chrome/browser/chromeos/login/version_updater/update_time_estimator_unittest.cc
new file mode 100644
index 0000000..04d9476
--- /dev/null
+++ b/chrome/browser/chromeos/login/version_updater/update_time_estimator_unittest.cc
@@ -0,0 +1,78 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/login/version_updater/update_time_estimator.h"
+
+#include "base/test/simple_test_tick_clock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+constexpr int kFinalizingTimeInSeconds = 5 * 60;
+
+constexpr base::TimeDelta kTimeAdvanceSeconds10 =
+    base::TimeDelta::FromSeconds(10);
+constexpr base::TimeDelta kZeroTime = base::TimeDelta();
+
+}  // anonymous namespace
+
+namespace chromeos {
+
+class UpdateTimeEstimatorUnitTest : public testing::Test {
+ public:
+  UpdateTimeEstimatorUnitTest() = default;
+
+  void SetUp() override {
+    time_estimator_.set_tick_clock_for_testing(&tick_clock_);
+  }
+
+  update_engine::StatusResult CreateStatusResult(update_engine::Operation stage,
+                                                 double image_size,
+                                                 double progress) {
+    update_engine::StatusResult status;
+    status.set_current_operation(stage);
+    status.set_new_size(image_size);
+    status.set_progress(progress);
+    return status;
+  }
+
+  UpdateTimeEstimator time_estimator_;
+
+  base::SimpleTestTickClock tick_clock_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(UpdateTimeEstimatorUnitTest);
+};
+
+TEST_F(UpdateTimeEstimatorUnitTest, DownloadingTimeLeft) {
+  update_engine::StatusResult status =
+      CreateStatusResult(update_engine::Operation::DOWNLOADING, 1.0, 0.0);
+  time_estimator_.Update(status);
+
+  tick_clock_.Advance(kTimeAdvanceSeconds10);
+  status.set_progress(0.01);
+  time_estimator_.Update(status);
+  EXPECT_EQ(time_estimator_.GetDownloadTimeLeft().InSeconds(), 990);
+
+  tick_clock_.Advance(kTimeAdvanceSeconds10);
+  status.set_progress(0.10);
+  time_estimator_.Update(status);
+  EXPECT_EQ(time_estimator_.GetDownloadTimeLeft().InSeconds(), 500);
+}
+
+TEST_F(UpdateTimeEstimatorUnitTest, TotalTimeLeft) {
+  update_engine::StatusResult status =
+      CreateStatusResult(update_engine::Operation::FINALIZING, 0.0, 0.0);
+  time_estimator_.Update(status);
+
+  tick_clock_.Advance(kTimeAdvanceSeconds10);
+  EXPECT_EQ(time_estimator_.GetTimeLeft(),
+            base::TimeDelta::FromSeconds(kFinalizingTimeInSeconds) -
+                kTimeAdvanceSeconds10);
+
+  tick_clock_.Advance(base::TimeDelta::FromSeconds(kFinalizingTimeInSeconds));
+  EXPECT_EQ(time_estimator_.GetTimeLeft(), kZeroTime);
+}
+
+}  // namespace chromeos
diff --git a/chrome/browser/chromeos/login/version_updater/version_updater.cc b/chrome/browser/chromeos/login/version_updater/version_updater.cc
index 0ac7092..fc0ac14 100644
--- a/chrome/browser/chromeos/login/version_updater/version_updater.cc
+++ b/chrome/browser/chromeos/login/version_updater/version_updater.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/chromeos/login/version_updater/version_updater.h"
 
 #include <algorithm>
+#include <memory>
 #include <string>
 #include <utility>
 
@@ -12,6 +13,8 @@
 #include "base/logging.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/default_tick_clock.h"
+#include "base/time/time.h"
+#include "chrome/browser/chromeos/login/version_updater/update_time_estimator.h"
 #include "chrome/grit/chromium_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -38,23 +41,11 @@
 const int kBeforeFinalizingProgress = 81;
 const int kProgressComplete = 100;
 
-// Minimum timestep between two consecutive measurements for the download rates.
-constexpr const base::TimeDelta kMinTimeStep = base::TimeDelta::FromSeconds(1);
-
 // Defines what part of update progress does download part takes.
 const int kDownloadProgressIncrement = 60;
 
-// Smooth factor that is used for the average downloading speed
-// estimation.
-// avg_speed = smooth_factor * cur_speed + (1.0 - smooth_factor) *
-// avg_speed.
-const double kDownloadSpeedSmoothFactor = 0.1;
-
-// Minimum allowed value for the average downloading speed.
-const double kDownloadAverageSpeedDropBound = 1e-8;
-
-// An upper bound for possible downloading time left estimations.
-constexpr const base::TimeDelta kMaxTimeLeft = base::TimeDelta::FromDays(1);
+// Period of time between planned updates.
+constexpr const base::TimeDelta kUpdateTime = base::TimeDelta::FromSeconds(1);
 
 }  // anonymous namespace
 
@@ -73,12 +64,7 @@
 }
 
 void VersionUpdater::Init() {
-  download_start_progress_ = 0;
-  download_last_progress_ = 0;
-  is_download_average_speed_computed_ = false;
-  download_average_speed_ = 0;
-  is_downloading_update_ = false;
-  ignore_idle_status_ = true;
+  time_estimator_ = UpdateTimeEstimator();
   is_first_detection_notification_ = true;
   update_info_ = UpdateInfo();
 }
@@ -197,6 +183,8 @@
     ignore_idle_status_ = false;
   }
 
+  time_estimator_.Update(status);
+
   bool exit_update = false;
   switch (status.current_operation()) {
     case update_engine::Operation::CHECKING_FOR_UPDATE:
@@ -209,19 +197,15 @@
       update_info_.progress_unavailable = false;
       break;
     case update_engine::Operation::DOWNLOADING:
-      if (!is_downloading_update_) {
-        is_downloading_update_ = true;
-
-        download_start_time_ = download_last_time_ = tick_clock_->NowTicks();
-        download_start_progress_ = status.progress();
-        download_last_progress_ = status.progress();
-        is_download_average_speed_computed_ = false;
-        download_average_speed_ = 0.0;
-        update_info_.progress_message =
-            l10n_util::GetStringUTF16(IDS_INSTALLING_UPDATE);
-        update_info_.progress_unavailable = false;
-      }
-      UpdateDownloadingStats(status);
+      update_info_.progress_message =
+          l10n_util::GetStringUTF16(IDS_INSTALLING_UPDATE);
+      update_info_.progress_unavailable = false;
+      update_info_.progress =
+          kBeforeDownloadProgress +
+          static_cast<int>(status.progress() * kDownloadProgressIncrement);
+      update_info_.show_estimated_time_left = time_estimator_.HasDownloadTime();
+      update_info_.estimated_time_left_in_secs =
+          time_estimator_.GetDownloadTimeLeft().InSeconds();
       break;
     case update_engine::Operation::VERIFYING:
       update_info_.progress = kBeforeVerifyingProgress;
@@ -268,54 +252,28 @@
       NOTREACHED();
   }
 
+  if (time_estimator_.HasTotalTime(status.current_operation())) {
+    update_info_.total_time_left = time_estimator_.GetTimeLeft();
+    if (!refresh_timer_) {
+      refresh_timer_ = std::make_unique<base::RepeatingTimer>(tick_clock_);
+      refresh_timer_->Start(FROM_HERE, kUpdateTime, this,
+                            &VersionUpdater::RefreshTimeLeftEstimation);
+    }
+  } else {
+    if (refresh_timer_) {
+      refresh_timer_->Stop();
+      refresh_timer_.reset();
+    }
+  }
+
   delegate_->UpdateInfoChanged(update_info_);
   if (exit_update)
     StartExitUpdate(Result::UPDATE_NOT_REQUIRED);
 }
 
-void VersionUpdater::UpdateDownloadingStats(
-    const update_engine::StatusResult& status) {
-  base::TimeTicks download_current_time = tick_clock_->NowTicks();
-  if (download_current_time >= download_last_time_ + kMinTimeStep) {
-    // Estimate downloading rate.
-    double progress_delta =
-        std::max(status.progress() - download_last_progress_, 0.0);
-    double time_delta =
-        (download_current_time - download_last_time_).InSecondsF();
-    double download_rate = status.new_size() * progress_delta / time_delta;
-
-    download_last_time_ = download_current_time;
-    download_last_progress_ = status.progress();
-
-    // Estimate time left.
-    double progress_left = std::max(1.0 - status.progress(), 0.0);
-    if (!is_download_average_speed_computed_) {
-      download_average_speed_ = download_rate;
-      is_download_average_speed_computed_ = true;
-    }
-    download_average_speed_ =
-        kDownloadSpeedSmoothFactor * download_rate +
-        (1.0 - kDownloadSpeedSmoothFactor) * download_average_speed_;
-    if (download_average_speed_ < kDownloadAverageSpeedDropBound) {
-      time_delta = (download_current_time - download_start_time_).InSecondsF();
-      download_average_speed_ = status.new_size() *
-                                (status.progress() - download_start_progress_) /
-                                time_delta;
-    }
-    double work_left = progress_left * status.new_size();
-    // time_left is in seconds.
-    double time_left = work_left / download_average_speed_;
-    // |time_left| may be large enough or even +infinity. So we must
-    // |bound possible estimations.
-    time_left = std::min(time_left, kMaxTimeLeft.InSecondsF());
-
-    update_info_.show_estimated_time_left = true;
-    update_info_.estimated_time_left_in_secs = static_cast<int>(time_left);
-  }
-
-  int download_progress =
-      static_cast<int>(status.progress() * kDownloadProgressIncrement);
-  update_info_.progress = kBeforeDownloadProgress + download_progress;
+void VersionUpdater::RefreshTimeLeftEstimation() {
+  update_info_.total_time_left = time_estimator_.GetTimeLeft();
+  delegate_->UpdateInfoChanged(update_info_);
 }
 
 void VersionUpdater::OnPortalDetectionCompleted(
diff --git a/chrome/browser/chromeos/login/version_updater/version_updater.h b/chrome/browser/chromeos/login/version_updater/version_updater.h
index 33bfe6a8..eae57c5 100644
--- a/chrome/browser/chromeos/login/version_updater/version_updater.h
+++ b/chrome/browser/chromeos/login/version_updater/version_updater.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_VERSION_UPDATER_VERSION_UPDATER_H_
 #define CHROME_BROWSER_CHROMEOS_LOGIN_VERSION_UPDATER_VERSION_UPDATER_H_
 
+#include <memory>
 #include <string>
 
 #include "base/macros.h"
@@ -12,6 +13,7 @@
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "chrome/browser/chromeos/login/screens/network_error.h"
+#include "chrome/browser/chromeos/login/version_updater/update_time_estimator.h"
 #include "chromeos/dbus/update_engine_client.h"
 #include "chromeos/network/portal_detector/network_portal_detector.h"
 
@@ -48,7 +50,11 @@
 
     update_engine::StatusResult status;
 
-    // Estimated time left, in seconds.
+    // Time left for an update to finish in seconds.
+    base::TimeDelta total_time_left;
+
+    // Estimated time left for only downloading stage, in seconds.
+    // TODO(crbug.com/1101317): Remove when better update is launched.
     int estimated_time_left_in_secs = 0;
     bool show_estimated_time_left = false;
 
@@ -110,6 +116,8 @@
   void StartNetworkCheck();
   void StartUpdateCheck();
 
+  void RefreshTimeLeftEstimation();
+
   void SetUpdateOverCellularOneTimePermission();
   void RejectUpdateOverCellular();
   void RebootAfterUpdate();
@@ -122,6 +130,7 @@
 
   void set_tick_clock_for_testing(const base::TickClock* tick_clock) {
     tick_clock_ = tick_clock;
+    time_estimator_.set_tick_clock_for_testing(tick_clock);
   }
 
   void set_wait_for_reboot_time_for_testing(
@@ -140,10 +149,6 @@
   // UpdateEngineClient::Observer implementation:
   void UpdateStatusChanged(const update_engine::StatusResult& status) override;
 
-  // Updates downloading stats (remaining time and downloading
-  // progress), which are stored in update_info_.
-  void UpdateDownloadingStats(const update_engine::StatusResult& status);
-
   // NetworkPortalDetector::Observer implementation:
   void OnPortalDetectionCompleted(
       const NetworkState* network,
@@ -168,21 +173,7 @@
   // Pointer to delegate that owns this VersionUpdater instance.
   Delegate* delegate_;
 
-  // Time of the first notification from the downloading stage.
-  base::TimeTicks download_start_time_;
-  double download_start_progress_ = 0;
-
-  // Time of the last notification from the downloading stage.
-  base::TimeTicks download_last_time_;
-  double download_last_progress_ = 0;
-
-  bool is_download_average_speed_computed_ = false;
-  double download_average_speed_ = 0;
-
-  // Flag that is used to detect when update download has just started.
-  bool is_downloading_update_ = false;
-  // Ignore fist IDLE status that is sent before VersionUpdater initiated check.
-  bool ignore_idle_status_ = true;
+  std::unique_ptr<base::RepeatingTimer> refresh_timer_;
 
   // Timer for the interval to wait for the reboot.
   // If reboot didn't happen - ask user to reboot manually.
@@ -196,11 +187,16 @@
   // about state for the default network.
   bool is_first_detection_notification_ = true;
 
+  // Ignore fist IDLE status that is sent before VersionUpdater initiated check.
+  bool ignore_idle_status_ = true;
+
   // Stores information about current downloading process, update progress and
   // state. It is sent to Delegate on each UpdateInfoChanged call, and also can
   // be obtained with corresponding getter.
   UpdateInfo update_info_;
 
+  UpdateTimeEstimator time_estimator_;
+
   const base::TickClock* tick_clock_;
 
   base::WeakPtrFactory<VersionUpdater> weak_ptr_factory_{this};
diff --git a/chrome/browser/chromeos/login/version_updater/version_updater_unittest.cc b/chrome/browser/chromeos/login/version_updater/version_updater_unittest.cc
index 007b54e..62d24c08 100644
--- a/chrome/browser/chromeos/login/version_updater/version_updater_unittest.cc
+++ b/chrome/browser/chromeos/login/version_updater/version_updater_unittest.cc
@@ -9,8 +9,11 @@
 #include "base/command_line.h"
 #include "base/optional.h"
 #include "base/test/scoped_mock_time_message_loop_task_runner.h"
+#include "base/test/task_environment.h"
+#include "base/time/time.h"
 #include "chrome/browser/chromeos/login/startup_utils.h"
 #include "chrome/browser/chromeos/login/version_updater/mock_version_updater_delegate.h"
+#include "chrome/browser/chromeos/login/version_updater/update_time_estimator.h"
 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
 #include "chrome/browser/chromeos/settings/cros_settings.h"
 #include "chrome/browser/chromeos/settings/device_settings_service.h"
@@ -28,12 +31,27 @@
 
 using testing::_;
 using testing::AnyNumber;
+using testing::Mock;
 using testing::Return;
 
 namespace chromeos {
 
 namespace {
+
+constexpr int kDownloadTimeInSeconds = 50 * 60;
+constexpr int kVerifyingTimeInSeconds = 5 * 60;
+constexpr int kFinalizingTimeInSeconds = 5 * 60;
+
 constexpr const char kNetworkGuid[] = "test_network";
+
+MATCHER_P(TimeLeftEq, time_in_seconds, "") {
+  return arg.total_time_left == base::TimeDelta::FromSeconds(time_in_seconds);
+}
+
+MATCHER_P2(DowloadingTimeLeftEq, can_be_used, time, "") {
+  return arg.show_estimated_time_left == can_be_used &&
+         arg.estimated_time_left_in_secs == time;
+}
 }  // anonymous namespace
 
 class VersionUpdaterUnitTest : public testing::Test {
@@ -120,9 +138,10 @@
   std::unique_ptr<NetworkPortalDetectorTestImpl> fake_network_portal_detector_;
   FakeUpdateEngineClient* fake_update_engine_client_;
 
+  base::test::SingleThreadTaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+
  private:
-  // Test versions of core browser infrastructure.
-  content::BrowserTaskEnvironment task_environment_;
   ScopedTestingLocalState local_state_;
 
   int checks_count_ = 0;
@@ -174,6 +193,113 @@
   EXPECT_EQ(fake_update_engine_client_->reboot_after_update_call_count(), 1);
 }
 
+// Simple time left test case expectation which does not cover using download
+// speed estimation.
+TEST_F(VersionUpdaterUnitTest, TimeLeftExpectation) {
+  SetUpMockNetworkPortalDetector();
+
+  EXPECT_CALL(*mock_delegate_, PrepareForUpdateCheck()).Times(1);
+  version_updater_->StartNetworkCheck();
+  // Verify that the DUT checks for an update.
+  EXPECT_EQ(fake_update_engine_client_->request_update_check_call_count(), 1);
+
+  EXPECT_CALL(*mock_delegate_, UpdateInfoChanged(TimeLeftEq(0)));
+  SetUpdateEngineStatus(update_engine::Operation::CHECKING_FOR_UPDATE);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // All time variables here and below in seconds.
+  int time_left = kDownloadTimeInSeconds + kVerifyingTimeInSeconds +
+                  kFinalizingTimeInSeconds;
+
+  EXPECT_CALL(*mock_delegate_, UpdateInfoChanged(TimeLeftEq(0.0)));
+  SetUpdateEngineStatus(update_engine::Operation::UPDATE_AVAILABLE);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // DOWNLOADING starts.
+  EXPECT_CALL(*mock_delegate_, UpdateInfoChanged(TimeLeftEq(time_left)));
+  SetUpdateEngineStatus(update_engine::Operation::DOWNLOADING);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  const int time_spent_on_downloading = 50;
+  for (int seconds = 0; seconds < time_spent_on_downloading; seconds++) {
+    EXPECT_CALL(*mock_delegate_,
+                UpdateInfoChanged(TimeLeftEq(time_left - seconds - 1)));
+  }
+  task_environment_.FastForwardBy(
+      base::TimeDelta::FromSeconds(time_spent_on_downloading));
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // VERIFYING starts.
+  time_left -= kDownloadTimeInSeconds;
+  EXPECT_CALL(*mock_delegate_, UpdateInfoChanged(TimeLeftEq(time_left)));
+  SetUpdateEngineStatus(update_engine::Operation::VERIFYING);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // Spent more than expected:
+  const int over_time = 20;
+  const int time_spent_on_verifying = kVerifyingTimeInSeconds + over_time;
+  for (int seconds = 0; seconds < kVerifyingTimeInSeconds - 1; seconds++) {
+    EXPECT_CALL(*mock_delegate_,
+                UpdateInfoChanged(TimeLeftEq(time_left - seconds - 1)));
+  }
+  EXPECT_CALL(
+      *mock_delegate_,
+      UpdateInfoChanged(TimeLeftEq(time_left - kVerifyingTimeInSeconds)))
+      .Times(over_time + 1);
+  task_environment_.FastForwardBy(
+      base::TimeDelta::FromSeconds(time_spent_on_verifying));
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // FINALIZING starts.
+  time_left -= kVerifyingTimeInSeconds;
+  EXPECT_CALL(*mock_delegate_, UpdateInfoChanged(TimeLeftEq(time_left)));
+  SetUpdateEngineStatus(update_engine::Operation::FINALIZING);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  SetStatusWithChecks(update_engine::Operation::UPDATED_NEED_REBOOT);
+
+  EXPECT_EQ(fake_update_engine_client_->reboot_after_update_call_count(), 0);
+  version_updater_->RebootAfterUpdate();
+  EXPECT_EQ(fake_update_engine_client_->reboot_after_update_call_count(), 1);
+}
+
+TEST_F(VersionUpdaterUnitTest, SimpleTimeLeftExpectationDownloadinStage) {
+  SetUpMockNetworkPortalDetector();
+
+  EXPECT_CALL(*mock_delegate_, PrepareForUpdateCheck()).Times(1);
+  version_updater_->StartNetworkCheck();
+  // Verify that the DUT checks for an update.
+  EXPECT_EQ(fake_update_engine_client_->request_update_check_call_count(), 1);
+
+  EXPECT_CALL(*mock_delegate_,
+              UpdateInfoChanged(DowloadingTimeLeftEq(false, 0)));
+  SetUpdateEngineStatus(update_engine::Operation::CHECKING_FOR_UPDATE);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  EXPECT_CALL(*mock_delegate_,
+              UpdateInfoChanged(DowloadingTimeLeftEq(false, 0)));
+  SetUpdateEngineStatus(update_engine::Operation::UPDATE_AVAILABLE);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+
+  // DOWNLOADING starts.
+  update_engine::StatusResult status;
+  status.set_current_operation(update_engine::Operation::DOWNLOADING);
+  status.set_progress(0.0);
+  status.set_new_size(1.0);
+  EXPECT_CALL(*mock_delegate_,
+              UpdateInfoChanged(DowloadingTimeLeftEq(false, 0)));
+  fake_update_engine_client_->NotifyObserversThatStatusChanged(status);
+  EXPECT_CALL(*mock_delegate_,
+              UpdateInfoChanged(DowloadingTimeLeftEq(false, 0)));
+  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
+
+  status.set_progress(0.01);
+  EXPECT_CALL(*mock_delegate_,
+              UpdateInfoChanged(DowloadingTimeLeftEq(true, 99)));
+  fake_update_engine_client_->NotifyObserversThatStatusChanged(status);
+  Mock::VerifyAndClearExpectations(&mock_delegate_);
+}
+
 TEST_F(VersionUpdaterUnitTest, HandlesCancelUpdateOnUpdateAvailable) {
   SetUpMockNetworkPortalDetector();
 
diff --git a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.cc b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.cc
similarity index 89%
rename from chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.cc
rename to chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.cc
index 2e853a1..dd0b6e2 100644
--- a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.cc
+++ b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h"
+#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h"
 
 #include <memory>
 #include <utility>
@@ -22,7 +22,7 @@
 namespace chromeos {
 namespace network_diagnostics {
 
-NetworkDiagnosticsImpl::NetworkDiagnosticsImpl(
+NetworkDiagnostics::NetworkDiagnostics(
     chromeos::DebugDaemonClient* debug_daemon_client) {
   DCHECK(debug_daemon_client);
   if (debug_daemon_client) {
@@ -30,15 +30,15 @@
   }
 }
 
-NetworkDiagnosticsImpl::~NetworkDiagnosticsImpl() {}
+NetworkDiagnostics::~NetworkDiagnostics() {}
 
-void NetworkDiagnosticsImpl::BindReceiver(
+void NetworkDiagnostics::BindReceiver(
     mojo::PendingReceiver<mojom::NetworkDiagnosticsRoutines> receiver) {
-  NET_LOG(EVENT) << "NetworkDiagnosticsImpl::BindReceiver()";
+  NET_LOG(EVENT) << "NetworkDiagnostics::BindReceiver()";
   receivers_.Add(this, std::move(receiver));
 }
 
-void NetworkDiagnosticsImpl::LanConnectivity(LanConnectivityCallback callback) {
+void NetworkDiagnostics::LanConnectivity(LanConnectivityCallback callback) {
   auto routine = std::make_unique<LanConnectivityRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
   // This ensures that the routine stays alive when it makes asynchronous mojo
@@ -50,7 +50,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::SignalStrength(SignalStrengthCallback callback) {
+void NetworkDiagnostics::SignalStrength(SignalStrengthCallback callback) {
   auto routine = std::make_unique<SignalStrengthRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
   // This ensures that the routine stays alive when it makes asynchronous mojo
@@ -64,7 +64,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::GatewayCanBePinged(
+void NetworkDiagnostics::GatewayCanBePinged(
     GatewayCanBePingedCallback callback) {
   auto routine =
       std::make_unique<GatewayCanBePingedRoutine>(debug_daemon_client_);
@@ -80,7 +80,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::HasSecureWiFiConnection(
+void NetworkDiagnostics::HasSecureWiFiConnection(
     HasSecureWiFiConnectionCallback callback) {
   auto routine = std::make_unique<HasSecureWiFiConnectionRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
@@ -96,7 +96,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::DnsResolverPresent(
+void NetworkDiagnostics::DnsResolverPresent(
     DnsResolverPresentCallback callback) {
   auto routine = std::make_unique<DnsResolverPresentRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
@@ -111,7 +111,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::DnsLatency(DnsLatencyCallback callback) {
+void NetworkDiagnostics::DnsLatency(DnsLatencyCallback callback) {
   auto routine = std::make_unique<DnsLatencyRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
   // This ensures that the routine stays alive when it makes asynchronous mojo
@@ -125,7 +125,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::DnsResolution(DnsResolutionCallback callback) {
+void NetworkDiagnostics::DnsResolution(DnsResolutionCallback callback) {
   auto routine = std::make_unique<DnsResolutionRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
   // This ensures that the routine stays alive when it makes asynchronous mojo
@@ -139,7 +139,7 @@
       std::move(routine), std::move(callback)));
 }
 
-void NetworkDiagnosticsImpl::CaptivePortal(CaptivePortalCallback callback) {
+void NetworkDiagnostics::CaptivePortal(CaptivePortalCallback callback) {
   auto routine = std::make_unique<CaptivePortalRoutine>();
   // RunRoutine() takes a lambda callback that takes ownership of the routine.
   // This ensures that the routine stays alive when it makes asynchronous mojo
diff --git a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h
similarity index 70%
rename from chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h
rename to chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h
index fb05504..8f4a1cc 100644
--- a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h
+++ b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_IMPL_H_
-#define CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_IMPL_H_
+#ifndef CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_H_
+#define CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_H_
 
 #include "base/memory/weak_ptr.h"
 #include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom.h"
@@ -15,17 +15,14 @@
 
 namespace network_diagnostics {
 
-class NetworkDiagnosticsImpl : public mojom::NetworkDiagnosticsRoutines {
+class NetworkDiagnostics : public mojom::NetworkDiagnosticsRoutines {
  public:
-  explicit NetworkDiagnosticsImpl(
-      chromeos::DebugDaemonClient* debug_daemon_client);
-  NetworkDiagnosticsImpl(const NetworkDiagnosticsImpl&) = delete;
-  NetworkDiagnosticsImpl& operator=(const NetworkDiagnosticsImpl&) = delete;
-  ~NetworkDiagnosticsImpl() override;
+  explicit NetworkDiagnostics(chromeos::DebugDaemonClient* debug_daemon_client);
+  NetworkDiagnostics(const NetworkDiagnostics&) = delete;
+  NetworkDiagnostics& operator=(const NetworkDiagnostics&) = delete;
+  ~NetworkDiagnostics() override;
 
-  // Binds this instance, an implementation of
-  // chromeos::network_diagnostics::mojom::NetworkDiagnosticsRoutines, to
-  // multiple mojom::NetworkDiagnosticsRoutines receivers.
+  // Binds this instance to |receiver|.
   void BindReceiver(
       mojo::PendingReceiver<mojom::NetworkDiagnosticsRoutines> receiver);
 
@@ -41,13 +38,13 @@
   void CaptivePortal(CaptivePortalCallback callback) override;
 
  private:
-  mojo::ReceiverSet<mojom::NetworkDiagnosticsRoutines> receivers_;
   // An unowned pointer to the DebugDaemonClient instance.
   chromeos::DebugDaemonClient* debug_daemon_client_;
-  base::WeakPtrFactory<NetworkDiagnosticsImpl> weak_factory_{this};
+  // Receivers for external requests (WebUI, Feedback, CrosHealthdClient).
+  mojo::ReceiverSet<mojom::NetworkDiagnosticsRoutines> receivers_;
 };
 
 }  // namespace network_diagnostics
 }  // namespace chromeos
 
-#endif  // CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_IMPL_H_
+#endif  // CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_NETWORK_DIAGNOSTICS_H_
diff --git a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl_unittest.cc b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_unittest.cc
similarity index 87%
rename from chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl_unittest.cc
rename to chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_unittest.cc
index 8fe32d4..28a7eb0 100644
--- a/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl_unittest.cc
+++ b/chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h"
+#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h"
 
 #include <memory>
 #include <utility>
@@ -83,15 +83,15 @@
 
 }  // namespace
 
-class NetworkDiagnosticsImplTest : public ::testing::Test {
+class NetworkDiagnosticsTest : public ::testing::Test {
  public:
-  NetworkDiagnosticsImplTest() {
+  NetworkDiagnosticsTest() {
     // Set TestDebugDaemonClient
     test_debug_daemon_client_ = std::make_unique<TestDebugDaemonClient>();
-    network_diagnostics_impl_ = std::make_unique<NetworkDiagnosticsImpl>(
-        test_debug_daemon_client_.get());
-    network_diagnostics_impl_->BindReceiver(
-        network_diagnostics_.BindNewPipeAndPassReceiver());
+    network_diagnostics_ =
+        std::make_unique<NetworkDiagnostics>(test_debug_daemon_client_.get());
+    network_diagnostics_->BindReceiver(
+        network_diagnostics_remote_.BindNewPipeAndPassReceiver());
 
     // Initialize the ManagedNetworkConfigurationHandler and any associated
     // properties.
@@ -100,7 +100,7 @@
     InitializeManagedNetworkConfigurationHandler();
     // Note that |cros_network_config_test_helper_| must be initialized before
     // any routine is initialized (routine initialization is done in
-    // NetworkDiagnosticsImpl). This is because |g_network_config_override| in
+    // NetworkDiagnostics). This is because |g_network_config_override| in
     // OverrideInProcessInstanceForTesting() must be set up before the routines
     // invoke BindToInProcessInstance(). See
     // chromeos/services/network_config/in_process_instance.cc for further
@@ -114,7 +114,7 @@
     SetUpWiFi();
   }
 
-  ~NetworkDiagnosticsImplTest() override {
+  ~NetworkDiagnosticsTest() override {
     NetworkCertLoader::Shutdown();
     LoginState::Shutdown();
     managed_network_configuration_handler_.reset();
@@ -227,12 +227,12 @@
     return cros_network_config_test_helper_.network_state_helper();
   }
 
-  base::WeakPtr<NetworkDiagnosticsImplTest> weak_ptr() {
+  base::WeakPtr<NetworkDiagnosticsTest> weak_ptr() {
     return weak_factory_.GetWeakPtr();
   }
 
-  NetworkDiagnosticsImpl* network_diagnostics_impl() {
-    return network_diagnostics_impl_.get();
+  NetworkDiagnostics* network_diagnostics() {
+    return network_diagnostics_.get();
   }
 
   TestDebugDaemonClient* test_debug_daemon_client() {
@@ -256,17 +256,17 @@
   // InitializeManagedNetworkConfigurationHandler().
   network_config::CrosNetworkConfigTestHelper cros_network_config_test_helper_{
       false};
-  mojo::Remote<mojom::NetworkDiagnosticsRoutines> network_diagnostics_;
-  std::unique_ptr<NetworkDiagnosticsImpl> network_diagnostics_impl_;
-  base::WeakPtrFactory<NetworkDiagnosticsImplTest> weak_factory_{this};
+  mojo::Remote<mojom::NetworkDiagnosticsRoutines> network_diagnostics_remote_;
+  std::unique_ptr<NetworkDiagnostics> network_diagnostics_;
+  base::WeakPtrFactory<NetworkDiagnosticsTest> weak_factory_{this};
 };
 
-// Test whether NetworkDiagnosticsImpl can successfully invoke the
+// Test whether NetworkDiagnostics can successfully invoke the
 // LanConnectivity routine.
-TEST_F(NetworkDiagnosticsImplTest, LanConnectivityReachability) {
+TEST_F(NetworkDiagnosticsTest, LanConnectivityReachability) {
   mojom::RoutineVerdict received_verdict;
   base::RunLoop run_loop;
-  network_diagnostics_impl()->LanConnectivity(base::BindOnce(
+  network_diagnostics()->LanConnectivity(base::BindOnce(
       [](mojom::RoutineVerdict* received_verdict,
          base::OnceClosure quit_closure, mojom::RoutineVerdict actual_verdict) {
         *received_verdict = actual_verdict;
@@ -277,13 +277,13 @@
   EXPECT_EQ(received_verdict, mojom::RoutineVerdict::kNoProblem);
 }
 
-// Test whether NetworkDiagnosticsImpl can successfully invoke the
+// Test whether NetworkDiagnostics can successfully invoke the
 // SignalStrength routine.
-TEST_F(NetworkDiagnosticsImplTest, SignalStrengthReachability) {
+TEST_F(NetworkDiagnosticsTest, SignalStrengthReachability) {
   mojom::RoutineVerdict received_verdict;
   std::vector<mojom::SignalStrengthProblem> received_problems;
   base::RunLoop run_loop;
-  network_diagnostics_impl()->SignalStrength(base::BindOnce(
+  network_diagnostics()->SignalStrength(base::BindOnce(
       [](mojom::RoutineVerdict* received_verdict,
          std::vector<mojom::SignalStrengthProblem>* received_problems,
          base::OnceClosure quit_closure, mojom::RoutineVerdict actual_verdict,
@@ -299,14 +299,14 @@
   EXPECT_EQ(received_problems, no_problems);
 }
 
-// Test whether NetworkDiagnosticsImpl can successfully invoke the
+// Test whether NetworkDiagnostics can successfully invoke the
 // GatewayCanBePinged routine.
-TEST_F(NetworkDiagnosticsImplTest, GatewayCanBePingedReachability) {
+TEST_F(NetworkDiagnosticsTest, GatewayCanBePingedReachability) {
   test_debug_daemon_client()->set_icmp_output(kFakeValidICMPOutput);
   mojom::RoutineVerdict received_verdict;
   std::vector<mojom::GatewayCanBePingedProblem> received_problems;
   base::RunLoop run_loop;
-  network_diagnostics_impl()->GatewayCanBePinged(base::BindOnce(
+  network_diagnostics()->GatewayCanBePinged(base::BindOnce(
       [](mojom::RoutineVerdict* received_verdict,
          std::vector<mojom::GatewayCanBePingedProblem>* received_problems,
          base::OnceClosure quit_closure, mojom::RoutineVerdict actual_verdict,
@@ -322,13 +322,13 @@
   EXPECT_EQ(received_problems, no_problems);
 }
 
-// Test whether NetworkDiagnosticsImpl can successfully invoke the
+// Test whether NetworkDiagnostics can successfully invoke the
 // HasSecureWiFiConnection routine.
-TEST_F(NetworkDiagnosticsImplTest, HasSecureWiFiConnectionReachability) {
+TEST_F(NetworkDiagnosticsTest, HasSecureWiFiConnectionReachability) {
   mojom::RoutineVerdict received_verdict;
   std::vector<mojom::HasSecureWiFiConnectionProblem> received_problems;
   base::RunLoop run_loop;
-  network_diagnostics_impl()->HasSecureWiFiConnection(base::BindOnce(
+  network_diagnostics()->HasSecureWiFiConnection(base::BindOnce(
       [](mojom::RoutineVerdict* received_verdict,
          std::vector<mojom::HasSecureWiFiConnectionProblem>* received_problems,
          base::OnceClosure quit_closure, mojom::RoutineVerdict actual_verdict,
@@ -345,16 +345,16 @@
   EXPECT_EQ(received_problems, no_problems);
 }
 
-// Test whether NetworkDiagnosticsImpl can successfully invoke the
+// Test whether NetworkDiagnostics can successfully invoke the
 // DnsResolverPresent routine.
-TEST_F(NetworkDiagnosticsImplTest, DnsResolverPresentReachability) {
+TEST_F(NetworkDiagnosticsTest, DnsResolverPresentReachability) {
   // Attach nameservers to the IPConfigs.
   SetUpNameServers(kWellFormedDnsServers);
 
   mojom::RoutineVerdict received_verdict;
   std::vector<mojom::DnsResolverPresentProblem> received_problems;
   base::RunLoop run_loop;
-  network_diagnostics_impl()->DnsResolverPresent(base::BindOnce(
+  network_diagnostics()->DnsResolverPresent(base::BindOnce(
       [](mojom::RoutineVerdict* received_verdict,
          std::vector<mojom::DnsResolverPresentProblem>* received_problems,
          base::OnceClosure quit_closure, mojom::RoutineVerdict actual_verdict,
@@ -370,17 +370,17 @@
   EXPECT_EQ(received_problems, no_problems);
 }
 
-// TODO(khegde): Test whether NetworkDiagnosticsImpl can successfully invoke the
+// TODO(khegde): Test whether NetworkDiagnostics can successfully invoke the
 // DnsLatency routine. This would require a way to fake and inject the following
 // into the DnsLatency routine: base::TickClock, network::mojom::HostResolver,
 // and network::TestNetworkContext.
-// TEST_F(NetworkDiagnosticsImplTest, DnsLatencyReachability) {}
+// TEST_F(NetworkDiagnosticsTest, DnsLatencyReachability) {}
 
-// TODO(khegde): Test whether NetworkDiagnosticsImpl can successfully invoke the
+// TODO(khegde): Test whether NetworkDiagnostics can successfully invoke the
 // DnsResolution routine. This would require a way to fake and inject the
 // following into the DnsResolution routine: network::mojom::HostResolver and
 // network::TestNetworkContext.
-// TEST_F(NetworkDiagnosticsImplTest, DnsResolutionReachability) {}
+// TEST_F(NetworkDiagnosticsTest, DnsResolutionReachability) {}
 
 }  // namespace network_diagnostics
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/net/network_health/network_health.cc b/chrome/browser/chromeos/net/network_health/network_health.cc
index fbfdf19..e3b384a 100644
--- a/chrome/browser/chromeos/net/network_health/network_health.cc
+++ b/chrome/browser/chromeos/net/network_health/network_health.cc
@@ -88,6 +88,54 @@
 
 NetworkHealth::~NetworkHealth() = default;
 
+void NetworkHealth::BindReceiver(
+    mojo::PendingReceiver<mojom::NetworkHealthService> receiver) {
+  receivers_.Add(this, std::move(receiver));
+}
+
+const mojom::NetworkHealthStatePtr NetworkHealth::GetNetworkHealthState() {
+  NET_LOG(EVENT) << "Network Health State Requested";
+  return network_health_state_.Clone();
+}
+
+void NetworkHealth::GetNetworkList(GetNetworkListCallback callback) {
+  std::move(callback).Run(mojo::Clone(network_health_state_.networks));
+}
+
+void NetworkHealth::GetHealthSnapshot(GetHealthSnapshotCallback callback) {
+  std::move(callback).Run(network_health_state_.Clone());
+}
+
+void NetworkHealth::OnNetworkStateListChanged() {
+  RequestNetworkStateList();
+}
+
+void NetworkHealth::OnDeviceStateListChanged() {
+  RequestDeviceStateList();
+}
+
+void NetworkHealth::OnActiveNetworksChanged(
+    std::vector<network_config::mojom::NetworkStatePropertiesPtr>) {}
+
+void NetworkHealth::OnNetworkStateChanged(
+    network_config::mojom::NetworkStatePropertiesPtr) {}
+
+void NetworkHealth::OnVpnProvidersChanged() {}
+
+void NetworkHealth::OnNetworkCertificatesChanged() {}
+
+void NetworkHealth::OnNetworkStateListReceived(
+    std::vector<network_config::mojom::NetworkStatePropertiesPtr> props) {
+  network_properties_.swap(props);
+  CreateNetworkHealthState();
+}
+
+void NetworkHealth::OnDeviceStateListReceived(
+    std::vector<network_config::mojom::DeviceStatePropertiesPtr> props) {
+  device_properties_.swap(props);
+  CreateNetworkHealthState();
+}
+
 void NetworkHealth::CreateNetworkHealthState() {
   // If the device information has not been collected, the NetworkHealthState
   // cannot be created.
@@ -135,49 +183,11 @@
   }
 }
 
-void NetworkHealth::BindReceiver(
-    mojo::PendingReceiver<mojom::NetworkHealthService> receiver) {
-  receivers_.Add(this, std::move(receiver));
-}
-
-const mojom::NetworkHealthStatePtr NetworkHealth::GetNetworkHealthState() {
-  NET_LOG(EVENT) << "Network Health State Requested";
-  return network_health_state_.Clone();
-}
-
 void NetworkHealth::RefreshNetworkHealthState() {
   RequestNetworkStateList();
   RequestDeviceStateList();
 }
 
-void NetworkHealth::GetNetworkList(GetNetworkListCallback callback) {
-  std::move(callback).Run(mojo::Clone(network_health_state_.networks));
-}
-
-void NetworkHealth::GetHealthSnapshot(GetHealthSnapshotCallback callback) {
-  std::move(callback).Run(network_health_state_.Clone());
-}
-
-void NetworkHealth::OnNetworkStateListReceived(
-    std::vector<network_config::mojom::NetworkStatePropertiesPtr> props) {
-  network_properties_.swap(props);
-  CreateNetworkHealthState();
-}
-
-void NetworkHealth::OnDeviceStateListReceived(
-    std::vector<network_config::mojom::DeviceStatePropertiesPtr> props) {
-  device_properties_.swap(props);
-  CreateNetworkHealthState();
-}
-
-void NetworkHealth::OnNetworkStateListChanged() {
-  RequestNetworkStateList();
-}
-
-void NetworkHealth::OnDeviceStateListChanged() {
-  RequestDeviceStateList();
-}
-
 void NetworkHealth::RequestNetworkStateList() {
   remote_cros_network_config_->GetNetworkStateList(
       network_config::mojom::NetworkFilter::New(
diff --git a/chrome/browser/chromeos/net/network_health/network_health.h b/chrome/browser/chromeos/net/network_health/network_health.h
index c84e408..4c1e007 100644
--- a/chrome/browser/chromeos/net/network_health/network_health.h
+++ b/chrome/browser/chromeos/net/network_health/network_health.h
@@ -24,13 +24,28 @@
 
   ~NetworkHealth() override;
 
-  // Function to bind a NetworkHealthService |receiver|.
+  // Binds this instance to |receiver|.
   void BindReceiver(
       mojo::PendingReceiver<mojom::NetworkHealthService> receiver);
 
   // Returns the current NetworkHealthState.
   const mojom::NetworkHealthStatePtr GetNetworkHealthState();
 
+  // NetworkHealthService
+  void GetNetworkList(GetNetworkListCallback) override;
+  void GetHealthSnapshot(GetHealthSnapshotCallback) override;
+
+  // CrosNetworkConfigObserver
+  void OnNetworkStateListChanged() override;
+  void OnDeviceStateListChanged() override;
+  void OnActiveNetworksChanged(
+      std::vector<network_config::mojom::NetworkStatePropertiesPtr>) override;
+  void OnNetworkStateChanged(
+      network_config::mojom::NetworkStatePropertiesPtr) override;
+  void OnVpnProvidersChanged() override;
+  void OnNetworkCertificatesChanged() override;
+
+ private:
   // Handler for receiving the network state list.
   void OnNetworkStateListReceived(
       std::vector<network_config::mojom::NetworkStatePropertiesPtr>);
@@ -39,23 +54,6 @@
   void OnDeviceStateListReceived(
       std::vector<network_config::mojom::DeviceStatePropertiesPtr>);
 
-  // NetworkHealthService implementation
-  void GetNetworkList(GetNetworkListCallback) override;
-  void GetHealthSnapshot(GetHealthSnapshotCallback) override;
-
-  // CrosNetworkConfigObserver implementation
-  void OnNetworkStateListChanged() override;
-  void OnDeviceStateListChanged() override;
-
-  // CrosNetworkConfigObserver unimplemented callbacks
-  void OnActiveNetworksChanged(
-      std::vector<network_config::mojom::NetworkStatePropertiesPtr>) override {}
-  void OnNetworkStateChanged(
-      network_config::mojom::NetworkStatePropertiesPtr) override {}
-  void OnVpnProvidersChanged() override {}
-  void OnNetworkCertificatesChanged() override {}
-
- private:
   // Creates the NetworkHealthState structure from cached network information.
   void CreateNetworkHealthState();
 
@@ -64,17 +62,16 @@
   void RequestNetworkStateList();
   void RequestDeviceStateList();
 
+  // Remote for sending requests to the CrosNetworkConfig service.
   mojo::Remote<network_config::mojom::CrosNetworkConfig>
       remote_cros_network_config_;
+  // Receiver for the CrosNetworkConfigObserver events.
   mojo::Receiver<network_config::mojom::CrosNetworkConfigObserver>
       cros_network_config_observer_receiver_{this};
-  mojo::Receiver<network_health::mojom::NetworkHealthService>
-      network_health_receiver_{this};
-
+  // Receivers for external requests (WebUI, Feedback, CrosHealthdClient).
   mojo::ReceiverSet<mojom::NetworkHealthService> receivers_;
 
   mojom::NetworkHealthState network_health_state_;
-
   std::vector<network_config::mojom::DeviceStatePropertiesPtr>
       device_properties_;
   std::vector<network_config::mojom::NetworkStatePropertiesPtr>
diff --git a/chrome/browser/chromeos/net/network_health/network_health_service.cc b/chrome/browser/chromeos/net/network_health/network_health_service.cc
index 30bbc0f..7a04a13 100644
--- a/chrome/browser/chromeos/net/network_health/network_health_service.cc
+++ b/chrome/browser/chromeos/net/network_health/network_health_service.cc
@@ -5,14 +5,17 @@
 #include "chrome/browser/chromeos/net/network_health/network_health_service.h"
 
 #include "base/no_destructor.h"
+#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics.h"
+#include "chrome/browser/chromeos/net/network_health/network_health.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 
 namespace chromeos {
 namespace network_health {
 
 NetworkHealthService::NetworkHealthService() {
+  network_health_ = std::make_unique<NetworkHealth>();
   network_diagnostics_ =
-      std::make_unique<network_diagnostics::NetworkDiagnosticsImpl>(
+      std::make_unique<network_diagnostics::NetworkDiagnostics>(
           chromeos::DBusThreadManager::Get()->GetDebugDaemonClient());
 }
 
@@ -33,7 +36,7 @@
 
 void NetworkHealthService::BindHealthReceiver(
     mojo::PendingReceiver<mojom::NetworkHealthService> receiver) {
-  network_health_.BindReceiver(std::move(receiver));
+  network_health_->BindReceiver(std::move(receiver));
 }
 
 void NetworkHealthService::BindDiagnosticsReceiver(
diff --git a/chrome/browser/chromeos/net/network_health/network_health_service.h b/chrome/browser/chromeos/net/network_health/network_health_service.h
index ea4bef8..93c8987 100644
--- a/chrome/browser/chromeos/net/network_health/network_health_service.h
+++ b/chrome/browser/chromeos/net/network_health/network_health_service.h
@@ -5,13 +5,20 @@
 #ifndef CHROME_BROWSER_CHROMEOS_NET_NETWORK_HEALTH_NETWORK_HEALTH_SERVICE_H_
 #define CHROME_BROWSER_CHROMEOS_NET_NETWORK_HEALTH_NETWORK_HEALTH_SERVICE_H_
 
-#include "chrome/browser/chromeos/net/network_diagnostics/network_diagnostics_impl.h"
-#include "chrome/browser/chromeos/net/network_health/network_health.h"
+#include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom.h"
+#include "chromeos/services/network_health/public/mojom/network_health.mojom.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 
 namespace chromeos {
+
+namespace network_diagnostics {
+class NetworkDiagnostics;
+}
+
 namespace network_health {
 
+class NetworkHealth;
+
 class NetworkHealthService {
  public:
   static NetworkHealthService* GetInstance();
@@ -31,9 +38,8 @@
           network_diagnostics::mojom::NetworkDiagnosticsRoutines> receiver);
 
  private:
-  NetworkHealth network_health_;
-  std::unique_ptr<network_diagnostics::NetworkDiagnosticsImpl>
-      network_diagnostics_;
+  std::unique_ptr<NetworkHealth> network_health_;
+  std::unique_ptr<network_diagnostics::NetworkDiagnostics> network_diagnostics_;
 };
 
 }  // namespace network_health
diff --git a/chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.cc b/chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.cc
similarity index 73%
rename from chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.cc
rename to chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.cc
index dfc17e99..6bf6d58 100644
--- a/chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.cc
+++ b/chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.h"
+#include "chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.h"
 
 #include <utility>
 
@@ -28,20 +28,19 @@
 
 }  // namespace
 
-NativePrintersExternalDataHandler::NativePrintersExternalDataHandler(
+PrintersExternalDataHandler::PrintersExternalDataHandler(
     chromeos::CrosSettings* cros_settings,
     DeviceLocalAccountPolicyService* policy_service)
-    : native_printers_observer_(cros_settings,
-                                policy_service,
-                                key::kPrintersBulkConfiguration,
-                                this) {
-  native_printers_observer_.Init();
+    : printers_observer_(cros_settings,
+                         policy_service,
+                         key::kPrintersBulkConfiguration,
+                         this) {
+  printers_observer_.Init();
 }
 
-NativePrintersExternalDataHandler::~NativePrintersExternalDataHandler() =
-    default;
+PrintersExternalDataHandler::~PrintersExternalDataHandler() = default;
 
-void NativePrintersExternalDataHandler::OnExternalDataSet(
+void PrintersExternalDataHandler::OnExternalDataSet(
     const std::string& policy,
     const std::string& user_id) {
   auto calculator = GetBulkPrintersCalculator(user_id);
@@ -50,7 +49,7 @@
   }
 }
 
-void NativePrintersExternalDataHandler::OnExternalDataCleared(
+void PrintersExternalDataHandler::OnExternalDataCleared(
     const std::string& policy,
     const std::string& user_id) {
   auto calculator = GetBulkPrintersCalculator(user_id);
@@ -59,7 +58,7 @@
   }
 }
 
-void NativePrintersExternalDataHandler::OnExternalDataFetched(
+void PrintersExternalDataHandler::OnExternalDataFetched(
     const std::string& policy,
     const std::string& user_id,
     std::unique_ptr<std::string> data,
@@ -70,7 +69,7 @@
   }
 }
 
-void NativePrintersExternalDataHandler::RemoveForAccountId(
+void PrintersExternalDataHandler::RemoveForAccountId(
     const AccountId& account_id) {
   auto* factory = chromeos::BulkPrintersCalculatorFactory::Get();
   if (factory) {
diff --git a/chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.h b/chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.h
similarity index 61%
rename from chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.h
rename to chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.h
index e7ce24c..ba5181c 100644
--- a/chrome/browser/chromeos/policy/external_data_handlers/native_printers_external_data_handler.h
+++ b/chrome/browser/chromeos/policy/external_data_handlers/printers_external_data_handler.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_NATIVE_PRINTERS_EXTERNAL_DATA_HANDLER_H_
-#define CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_NATIVE_PRINTERS_EXTERNAL_DATA_HANDLER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_PRINTERS_EXTERNAL_DATA_HANDLER_H_
+#define CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_PRINTERS_EXTERNAL_DATA_HANDLER_H_
 
 #include <memory>
 #include <string>
@@ -18,13 +18,15 @@
 
 class DeviceLocalAccountPolicyService;
 
-class NativePrintersExternalDataHandler
-    : public CloudExternalDataPolicyHandler {
+class PrintersExternalDataHandler : public CloudExternalDataPolicyHandler {
  public:
-  NativePrintersExternalDataHandler(
-      chromeos::CrosSettings* cros_settings,
-      DeviceLocalAccountPolicyService* policy_service);
-  ~NativePrintersExternalDataHandler() override;
+  PrintersExternalDataHandler(chromeos::CrosSettings* cros_settings,
+                              DeviceLocalAccountPolicyService* policy_service);
+  ~PrintersExternalDataHandler() override;
+
+  PrintersExternalDataHandler(const PrintersExternalDataHandler&) = delete;
+  PrintersExternalDataHandler& operator=(const PrintersExternalDataHandler&) =
+      delete;
 
   // CloudExternalDataPolicyHandler:
   void OnExternalDataSet(const std::string& policy,
@@ -38,11 +40,9 @@
   void RemoveForAccountId(const AccountId& account_id) override;
 
  private:
-  CloudExternalDataPolicyObserver native_printers_observer_;
-
-  DISALLOW_COPY_AND_ASSIGN(NativePrintersExternalDataHandler);
+  CloudExternalDataPolicyObserver printers_observer_;
 };
 
 }  // namespace policy
 
-#endif  // CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_NATIVE_PRINTERS_EXTERNAL_DATA_HANDLER_H_
+#endif  // CHROME_BROWSER_CHROMEOS_POLICY_EXTERNAL_DATA_HANDLERS_PRINTERS_EXTERNAL_DATA_HANDLER_H_
diff --git a/chrome/browser/chromeos/sync/os_sync_util.cc b/chrome/browser/chromeos/sync/os_sync_util.cc
index 4048b2a..d16746edb 100644
--- a/chrome/browser/chromeos/sync/os_sync_util.cc
+++ b/chrome/browser/chromeos/sync/os_sync_util.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/chromeos/sync/os_sync_util.h"
 
 #include "base/metrics/histogram_functions.h"
+#include "chrome/browser/ui/webui/settings/chromeos/pref_names.h"
 #include "chromeos/constants/chromeos_features.h"
 #include "chromeos/constants/chromeos_pref_names.h"
 #include "components/prefs/pref_service.h"
@@ -16,13 +17,16 @@
 // Returns true if the prefs were migrated.
 bool MaybeMigratePreferences(PrefService* prefs) {
   // Migration code can be removed when SplitSettingsSync has been fully
-  // deployed to stable channel, likely in July 2020. When doing this, change
+  // deployed to stable channel, likely December 2020. When doing this, change
   // the pref kOsSyncFeatureEnabled to default to true and delete the pref
   // kOsSyncPrefsMigrated.
   if (!chromeos::features::IsSplitSettingsSyncEnabled()) {
     // Reset the migration flag because this might be a rollback of the feature.
     // We want migration to happen again when the feature is enabled.
     prefs->SetBoolean(syncer::prefs::kOsSyncPrefsMigrated, false);
+    // Reset the OS sync pref to its default state, such that we get the same
+    // migration behavior next time SplitSettingsSync is enabled.
+    prefs->SetBoolean(syncer::prefs::kOsSyncFeatureEnabled, false);
     return false;
   }
 
@@ -32,13 +36,31 @@
 
   // OS sync model types get their initial state from the corresponding browser
   // model types.
-  prefs->SetBoolean(
-      syncer::prefs::kSyncAllOsTypes,
-      prefs->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced));
-  prefs->SetBoolean(syncer::prefs::kSyncOsApps,
-                    prefs->GetBoolean(syncer::prefs::kSyncApps));
-  prefs->SetBoolean(syncer::prefs::kSyncOsPreferences,
-                    prefs->GetBoolean(syncer::prefs::kSyncPreferences));
+  bool sync_all = prefs->GetBoolean(syncer::prefs::kSyncKeepEverythingSynced);
+  prefs->SetBoolean(syncer::prefs::kSyncAllOsTypes, sync_all);
+
+  bool sync_apps = prefs->GetBoolean(syncer::prefs::kSyncApps);
+  prefs->SetBoolean(syncer::prefs::kSyncOsApps, sync_apps);
+
+  bool sync_preferences = prefs->GetBoolean(syncer::prefs::kSyncPreferences);
+  prefs->SetBoolean(syncer::prefs::kSyncOsPreferences, sync_preferences);
+
+  // Wallpaper requires both theme sync (called "Themes & Wallpaper" in sync
+  // settings) and app sync (to actually sync the data from the wallpaper app).
+  bool sync_wallpaper =
+      sync_apps && prefs->GetBoolean(syncer::prefs::kSyncThemes);
+  prefs->SetBoolean(chromeos::settings::prefs::kSyncOsWallpaper,
+                    sync_wallpaper);
+
+  // No need to migrate Wi-Fi. There's not a separate OS pref for it.
+  bool sync_wifi = prefs->GetBoolean(syncer::prefs::kSyncWifiConfigurations);
+
+  // Enable the OS sync feature if any OS data type is enabled. Otherwise the
+  // user would stop syncing a type that they were syncing before.
+  if (sync_all || sync_apps || sync_preferences || sync_wallpaper ||
+      sync_wifi) {
+    prefs->SetBoolean(syncer::prefs::kOsSyncFeatureEnabled, true);
+  }
 
   prefs->SetBoolean(syncer::prefs::kOsSyncPrefsMigrated, true);
   return true;
diff --git a/chrome/browser/chromeos/sync/os_sync_util_unittest.cc b/chrome/browser/chromeos/sync/os_sync_util_unittest.cc
index 422c13d4..949b3c7 100644
--- a/chrome/browser/chromeos/sync/os_sync_util_unittest.cc
+++ b/chrome/browser/chromeos/sync/os_sync_util_unittest.cc
@@ -6,6 +6,8 @@
 
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h"
+#include "chrome/browser/ui/webui/settings/chromeos/pref_names.h"
 #include "chromeos/constants/chromeos_features.h"
 #include "components/sync/base/pref_names.h"
 #include "components/sync/base/sync_prefs.h"
@@ -13,12 +15,14 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace sp = syncer::prefs;
+namespace csp = chromeos::settings::prefs;
 
 class OsSyncUtilTest : public testing::Test {
  public:
   OsSyncUtilTest() {
     feature_list_.InitAndEnableFeature(chromeos::features::kSplitSettingsSync);
     syncer::SyncPrefs::RegisterProfilePrefs(prefs_.registry());
+    chromeos::settings::OSSettingsUI::RegisterProfilePrefs(prefs_.registry());
   }
 
   base::test::ScopedFeatureList feature_list_;
@@ -28,6 +32,7 @@
 TEST_F(OsSyncUtilTest, SimpleMigration) {
   os_sync_util::MigrateOsSyncPreferences(&prefs_);
   EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncPrefsMigrated));
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
   EXPECT_TRUE(prefs_.GetBoolean(sp::kSyncAllOsTypes));
 }
 
@@ -36,6 +41,7 @@
   prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
   prefs_.SetBoolean(sp::kSyncApps, true);
   prefs_.SetBoolean(sp::kSyncPreferences, true);
+  prefs_.SetBoolean(sp::kSyncThemes, true);
 
   os_sync_util::MigrateOsSyncPreferences(&prefs_);
 
@@ -43,6 +49,45 @@
   EXPECT_FALSE(prefs_.GetBoolean(sp::kSyncAllOsTypes));
   EXPECT_TRUE(prefs_.GetBoolean(sp::kSyncOsApps));
   EXPECT_TRUE(prefs_.GetBoolean(sp::kSyncOsPreferences));
+  EXPECT_TRUE(prefs_.GetBoolean(csp::kSyncOsWallpaper));
+}
+
+TEST_F(OsSyncUtilTest, MigrationForWallpaperRequiresApps) {
+  prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
+  ASSERT_FALSE(prefs_.GetBoolean(sp::kSyncApps));
+  prefs_.SetBoolean(sp::kSyncThemes, true);
+  os_sync_util::MigrateOsSyncPreferences(&prefs_);
+  EXPECT_FALSE(prefs_.GetBoolean(csp::kSyncOsWallpaper));
+}
+
+TEST_F(OsSyncUtilTest, SyncAppsEnablesOsSyncFeature) {
+  prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
+  prefs_.SetBoolean(sp::kSyncApps, true);
+  os_sync_util::MigrateOsSyncPreferences(&prefs_);
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
+}
+
+TEST_F(OsSyncUtilTest, SyncPreferencesEnablesOsSyncFeature) {
+  prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
+  prefs_.SetBoolean(sp::kSyncPreferences, true);
+  os_sync_util::MigrateOsSyncPreferences(&prefs_);
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
+}
+
+TEST_F(OsSyncUtilTest, SyncWallpaperEnablesOsSyncFeature) {
+  prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
+  prefs_.SetBoolean(sp::kSyncApps, true);
+  prefs_.SetBoolean(sp::kSyncThemes, true);
+  os_sync_util::MigrateOsSyncPreferences(&prefs_);
+  ASSERT_TRUE(prefs_.GetBoolean(csp::kSyncOsWallpaper));
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
+}
+
+TEST_F(OsSyncUtilTest, SyncWifiEnablesOsSyncFeature) {
+  prefs_.SetBoolean(sp::kSyncKeepEverythingSynced, false);
+  prefs_.SetBoolean(sp::kSyncWifiConfigurations, true);
+  os_sync_util::MigrateOsSyncPreferences(&prefs_);
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
 }
 
 TEST_F(OsSyncUtilTest, MigrationOnlyHappensOnce) {
@@ -72,6 +117,7 @@
   // Do initial migration.
   os_sync_util::MigrateOsSyncPreferences(&prefs_);
   EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncPrefsMigrated));
+  EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
 
   {
     // Simulate disabling the feature (e.g. disabling via Finch).
@@ -81,6 +127,7 @@
 
     // OS sync is marked as not migrated.
     EXPECT_FALSE(prefs_.GetBoolean(sp::kOsSyncPrefsMigrated));
+    EXPECT_FALSE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
   }
 
   // Simulate re-enabling the feature.
@@ -91,6 +138,7 @@
 
     // OS sync is marked as migrated.
     EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncPrefsMigrated));
+    EXPECT_TRUE(prefs_.GetBoolean(sp::kOsSyncFeatureEnabled));
   }
 }
 
diff --git a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
index bca6e9c0..23b54e1 100644
--- a/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
+++ b/chrome/browser/chromeos/system/tray_accessibility_browsertest.cc
@@ -213,7 +213,7 @@
 };
 
 // Fails on linux-chromeos-dbg see crbug/1027919.
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_ShowMenu DISABLED_ShowMenu
 #else
 #define MAYBE_ShowMenu ShowMenu
@@ -378,7 +378,7 @@
 }
 
 // Fails on linux-chromeos-dbg see crbug/1027919.
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_ShowMenuWithShowMenuOption DISABLED_ShowMenuWithShowMenuOption
 #else
 #define MAYBE_ShowMenuWithShowMenuOption ShowMenuWithShowMenuOption
diff --git a/chrome/browser/chromeos/web_applications/help_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/help_app_integration_browsertest.cc
index 97209ab0..809cc7d 100644
--- a/chrome/browser/chromeos/web_applications/help_app_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/help_app_integration_browsertest.cc
@@ -180,8 +180,11 @@
                               ->GetVisibleURL());
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         HelpAppIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    HelpAppIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc
index c3ae4a1..6dcdd74a 100644
--- a/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc
@@ -453,14 +453,20 @@
   // test mixed file types.
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         MediaAppIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    MediaAppIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         MediaAppIntegrationWithFilesAppTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    MediaAppIntegrationWithFilesAppTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/chromeos/web_applications/print_management_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/print_management_app_integration_browsertest.cc
index ac670bc..5ec3cb6 100644
--- a/chrome/browser/chromeos/web_applications/print_management_app_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/print_management_app_integration_browsertest.cc
@@ -30,8 +30,11 @@
       web_app::SystemAppType::PRINT_MANAGEMENT, url, "Print Jobs"));
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         PrintManagementAppIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    PrintManagementAppIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/chromeos/web_applications/sample_system_web_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/sample_system_web_app_integration_browsertest.cc
index 64c13454..6c9df83 100644
--- a/chrome/browser/chromeos/web_applications/sample_system_web_app_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/sample_system_web_app_integration_browsertest.cc
@@ -18,8 +18,11 @@
       web_app::SystemAppType::SAMPLE, url, "Sample System Web App"));
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SampleSystemWebAppIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SampleSystemWebAppIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kWebAppInfoInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/chromeos/web_applications/scanning_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/scanning_app_integration_browsertest.cc
new file mode 100644
index 0000000..5a15da6
--- /dev/null
+++ b/chrome/browser/chromeos/web_applications/scanning_app_integration_browsertest.cc
@@ -0,0 +1,37 @@
+// Copyright 2020 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/test/scoped_feature_list.h"
+#include "chrome/browser/chromeos/web_applications/system_web_app_integration_test.h"
+#include "chrome/browser/web_applications/system_web_app_manager.h"
+#include "chromeos/components/scanning/url_constants.h"
+#include "chromeos/constants/chromeos_features.h"
+#include "content/public/test/browser_test.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+class ScanningAppIntegrationTest : public SystemWebAppIntegrationTest {
+ public:
+  ScanningAppIntegrationTest() {
+    scoped_feature_list_.InitWithFeatures({chromeos::features::kScanningUI},
+                                          {});
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+// Test that the Scanning App installs and launches correctly by running some
+// spot checks on the manifest.
+IN_PROC_BROWSER_TEST_P(ScanningAppIntegrationTest, ScanningAppInLauncher) {
+  const GURL url(chromeos::kChromeUIScanningAppUrl);
+  EXPECT_NO_FATAL_FAILURE(
+      ExpectSystemWebAppValid(web_app::SystemAppType::SCANNING, url, "Scan"));
+}
+
+INSTANTIATE_TEST_SUITE_P(All,
+                         ScanningAppIntegrationTest,
+                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                                           web_app::ProviderType::kWebApps),
+                         web_app::ProviderTypeParamToString);
diff --git a/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.cc b/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.cc
new file mode 100644
index 0000000..2cde068
--- /dev/null
+++ b/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.cc
@@ -0,0 +1,33 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h"
+
+#include <memory>
+
+#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h"
+#include "chrome/common/web_application_info.h"
+#include "chromeos/components/scanning/url_constants.h"
+#include "chromeos/grit/chromeos_scanning_app_resources.h"
+#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
+#include "url/gurl.h"
+
+std::unique_ptr<WebApplicationInfo> CreateWebAppInfoForScanningSystemWebApp() {
+  std::unique_ptr<WebApplicationInfo> info =
+      std::make_unique<WebApplicationInfo>();
+  info->app_url = GURL(chromeos::kChromeUIScanningAppUrl);
+  info->scope = GURL(chromeos::kChromeUIScanningAppUrl);
+  // TODO(jschettler): |title| should come from a resource string once the
+  // string is finalized.
+  info->title = base::UTF8ToUTF16("Scan");
+  web_app::CreateIconInfoForSystemWebApp(info->app_url, "app_icon_192.png", 192,
+                                         IDR_SCANNING_APP_ICON, *info);
+  info->theme_color = 0xFFFFFFFF;
+  info->background_color = 0xFFFFFFFF;
+  info->display_mode = blink::mojom::DisplayMode::kStandalone;
+  info->open_as_window = true;
+
+  return info;
+}
diff --git a/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h b/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h
new file mode 100644
index 0000000..a59d5a86
--- /dev/null
+++ b/chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h
@@ -0,0 +1,15 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_SCANNING_SYSTEM_WEB_APP_INFO_H_
+#define CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_SCANNING_SYSTEM_WEB_APP_INFO_H_
+
+#include <memory>
+
+struct WebApplicationInfo;
+
+// Returns a WebApplicationInfo used to install the app.
+std::unique_ptr<WebApplicationInfo> CreateWebAppInfoForScanningSystemWebApp();
+
+#endif  // CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_SCANNING_SYSTEM_WEB_APP_INFO_H_
diff --git a/chrome/browser/chromeos/web_applications/settings_app_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/settings_app_integration_browsertest.cc
index a12a15dc..c80edaed 100644
--- a/chrome/browser/chromeos/web_applications/settings_app_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/settings_app_integration_browsertest.cc
@@ -57,8 +57,11 @@
             web_contents->GetTitle());
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SettingsAppIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SettingsAppIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/chromeos/web_applications/telemetry_extension_integration_browsertest.cc b/chrome/browser/chromeos/web_applications/telemetry_extension_integration_browsertest.cc
index 4552c3d..aea3e38 100644
--- a/chrome/browser/chromeos/web_applications/telemetry_extension_integration_browsertest.cc
+++ b/chrome/browser/chromeos/web_applications/telemetry_extension_integration_browsertest.cc
@@ -75,12 +75,6 @@
   EXPECT_TRUE(content::NavigateToURL(web_contents, registered_resource_gurl));
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         TelemetryExtensionIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
-
 // A Test suite that use the switch "--telemetry-extension-dir".
 class TelemetryExtensionWithDirIntegrationTest
     : public TelemetryExtensionIntegrationTest {
@@ -97,6 +91,17 @@
   }
 };
 
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    TelemetryExtensionIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        // TODO: Change this ::testing::Value(false) to
+        // ::testing::Bool() when a WebApplicationProvider is ready
+        ::testing::Values(false)),
+    web_app::ProviderAndInstallationTypeToString);
+
 // Tests that TelemetryExtensionUntrustedSource can successfully load a resource
 // from disk.
 IN_PROC_BROWSER_TEST_P(TelemetryExtensionWithDirIntegrationTest,
@@ -133,8 +138,14 @@
       content::NavigateToURL(web_contents, non_existent_resource_gurl));
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         TelemetryExtensionWithDirIntegrationTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    TelemetryExtensionWithDirIntegrationTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        // TODO: Change this ::testing::Values(kManifestInstall) to
+        // ::testing::Values(kManifestInstall, kWebAppInfoInstall) when a
+        // WebApplicationProvider is ready
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/component_updater/pepper_flash_component_installer.cc b/chrome/browser/component_updater/pepper_flash_component_installer.cc
index 69da4d6..47420e0 100644
--- a/chrome/browser/component_updater/pepper_flash_component_installer.cc
+++ b/chrome/browser/component_updater/pepper_flash_component_installer.cc
@@ -56,7 +56,7 @@
 #include "chromeos/dbus/dbus_method_call_status.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/image_loader_client.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "chrome/common/component_flash_hint_file_linux.h"
 #endif  // defined(OS_CHROMEOS)
 
@@ -155,7 +155,8 @@
 #endif  // defined(OS_CHROMEOS)
 #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
 
-#if !defined(OS_LINUX) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#if (!defined(OS_LINUX) && !defined(OS_CHROMEOS)) && \
+    BUILDFLAG(GOOGLE_CHROME_BRANDING)
 bool MakePepperFlashPluginInfo(const base::FilePath& flash_path,
                                const base::Version& flash_version,
                                bool out_of_process,
@@ -240,7 +241,8 @@
 void UpdatePathService(const base::FilePath& path) {
   base::PathService::Override(chrome::DIR_PEPPER_FLASH_PLUGIN, path);
 }
-#endif  // !defined(OS_LINUX) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
+#endif  // (!defined(OS_LINUX) && !defined(OS_CHROMEOS)) &&
+        // BUILDFLAG(GOOGLE_CHROME_BRANDING)
 
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
 class FlashComponentInstallerPolicy : public ComponentInstallerPolicy {
@@ -295,7 +297,7 @@
   content::GetUIThreadTaskRunner({})->PostTask(
       FROM_HERE,
       base::BindOnce(&ImageLoaderRegistration, version, install_dir));
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
   const base::FilePath flash_path =
       install_dir.Append(chrome::kPepperFlashPluginFilename);
   // Populate the component updated flash hint file so that the zygote can
@@ -304,7 +306,7 @@
                                                     version)) {
     return update_client::ToInstallerResult(FlashError::HINT_FILE_RECORD_ERROR);
   }
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
   return update_client::CrxInstaller::Result(update_client::InstallError::NONE);
 }
 
@@ -314,7 +316,7 @@
     const base::Version& version,
     const base::FilePath& path,
     std::unique_ptr<base::DictionaryValue> manifest) {
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_CHROMEOS)
   // Installation is done. Now tell the rest of chrome. Both the path service
   // and to the plugin service. On Linux, a restart is required to use the new
   // Flash version, so we do not do this.
@@ -323,7 +325,7 @@
   base::ThreadPool::PostTask(
       FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()},
       base::BindOnce(&UpdatePathService, path));
-#endif  // !defined(OS_LINUX)
+#endif  // !defined(OS_LINUX) && !defined(OS_CHROMEOS)
 }
 
 bool FlashComponentInstallerPolicy::VerifyInstallation(
diff --git a/chrome/browser/component_updater/widevine_cdm_component_installer.cc b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
index cefd7fa..18594d6c 100644
--- a/chrome/browser/component_updater/widevine_cdm_component_installer.cc
+++ b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
@@ -34,7 +34,7 @@
 #include "third_party/widevine/cdm/buildflags.h"
 #include "third_party/widevine/cdm/widevine_cdm_common.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "chrome/common/media/component_widevine_cdm_hint_file_linux.h"
 #endif
 
@@ -87,7 +87,7 @@
   return base_path.AppendASCII("_platform_specific").AppendASCII(platform_arch);
 }
 
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_CHROMEOS)
 // On Linux the Widevine CDM is loaded at startup before the zygote is locked
 // down. As a result there is no need to register the CDM with Chrome as it
 // can't be used until Chrome is restarted. Instead we simply update the hint
@@ -116,7 +116,7 @@
                        cdm_path, kWidevineCdmFileSystemId,
                        std::move(capability), kWidevineKeySystem, false));
 }
-#endif  // !defined(OS_LINUX)
+#endif  // !defined(OS_LINUX) && !defined(OS_CHROMEOS)
 
 }  // namespace
 
@@ -244,7 +244,7 @@
     return;
   }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   VLOG(1) << "Updating hint file with Widevine CDM " << cdm_version;
 
   // This is running on a thread that allows IO, so simply update the hint file.
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
index 0367045..fbea49934 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.cc
@@ -289,7 +289,7 @@
   return data_reduction_proxy::Client::CHROME_MAC;
 #elif defined(OS_CHROMEOS)
   return data_reduction_proxy::Client::CHROME_CHROMEOS;
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
   return data_reduction_proxy::Client::CHROME_LINUX;
 #elif defined(OS_WIN)
   return data_reduction_proxy::Client::CHROME_WINDOWS;
diff --git a/chrome/browser/data_saver/subresource_redirect_browsertest.cc b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
index 46aeaa2..5d928f0 100644
--- a/chrome/browser/data_saver/subresource_redirect_browsertest.cc
+++ b/chrome/browser/data_saver/subresource_redirect_browsertest.cc
@@ -1232,9 +1232,10 @@
   VerifyImageCompressionPageInfoState(false);
 }
 
-IN_PROC_BROWSER_TEST_F(
-    SubresourceRedirectBrowserTest,
-    DISABLE_ON_WIN_MAC_CHROMEOS(TestBypassOn503LoadShedFailure)) {
+// This used to be DISABLE_ON_WIN_MAC_CHROMEOS(), but now it is disabled on all
+// platforms, since the test is also flaky on Linux. crbug.com/1114038
+IN_PROC_BROWSER_TEST_F(SubresourceRedirectBrowserTest,
+                       DISABLED_TestBypassOn503LoadShedFailure) {
   g_browser_process->network_quality_tracker()
       ->ReportEffectiveConnectionTypeForTesting(
           net::EFFECTIVE_CONNECTION_TYPE_2G);
diff --git a/chrome/browser/enterprise/remote_commands/OWNERS b/chrome/browser/enterprise/remote_commands/OWNERS
new file mode 100644
index 0000000..daea350
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/OWNERS
@@ -0,0 +1 @@
+anthonyvd@chromium.org
diff --git a/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc b/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc
new file mode 100644
index 0000000..e47f103
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.cc
@@ -0,0 +1,29 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.h"
+
+#include "base/notreached.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "components/policy/core/common/remote_commands/remote_command_job.h"
+
+namespace enterprise_commands {
+
+std::unique_ptr<policy::RemoteCommandJob>
+CBCMRemoteCommandsFactory::BuildJobForType(
+    enterprise_management::RemoteCommand_Type type,
+    policy::RemoteCommandsService* service) {
+  switch (type) {
+    case enterprise_management::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA:
+      return std::make_unique<ClearBrowsingDataJob>(
+          g_browser_process->profile_manager());
+    default:
+      NOTREACHED() << "Received an unsupported remote command type: " << type;
+      return nullptr;
+  }
+}
+
+}  // namespace enterprise_commands
diff --git a/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.h b/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.h
new file mode 100644
index 0000000..6cb97b3
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.h
@@ -0,0 +1,27 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CBCM_REMOTE_COMMANDS_FACTORY_H_
+#define CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CBCM_REMOTE_COMMANDS_FACTORY_H_
+
+#include "components/policy/core/common/remote_commands/remote_commands_factory.h"
+
+namespace enterprise_commands {
+
+// A remote commands factory meant to be used with RemoteCommandService on
+// Chrome Browser Cloud Management-enrolled browsers.
+class CBCMRemoteCommandsFactory : public policy::RemoteCommandsFactory {
+ public:
+  CBCMRemoteCommandsFactory() = default;
+  ~CBCMRemoteCommandsFactory() override = default;
+
+  // RemoteCommandsFactory:
+  std::unique_ptr<policy::RemoteCommandJob> BuildJobForType(
+      enterprise_management::RemoteCommand_Type type,
+      policy::RemoteCommandsService* service) override;
+};
+
+}  // namespace enterprise_commands
+
+#endif  // CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CBCM_REMOTE_COMMANDS_FACTORY_H_
diff --git a/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.cc b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.cc
new file mode 100644
index 0000000..1cfa219
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.cc
@@ -0,0 +1,153 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h"
+
+#include "base/bind.h"
+#include "base/json/json_reader.h"
+#include "base/json/json_writer.h"
+#include "base/optional.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "base/values.h"
+#include "build/build_config.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
+#include "chrome/browser/profiles/profile_manager.h"
+
+namespace enterprise_commands {
+
+const char kFailedTypesPath[] = "failed_data_types";
+
+const char kProfilePathField[] = "profile_path";
+const char kClearCacheField[] = "clear_cache";
+const char kClearCookiesField[] = "clear_cookies";
+
+ClearBrowsingDataJob::ResultPayload::ResultPayload(uint64_t failed_data_types)
+    : failed_data_types_(failed_data_types) {}
+
+ClearBrowsingDataJob::ResultPayload::~ResultPayload() = default;
+
+std::unique_ptr<std::string> ClearBrowsingDataJob::ResultPayload::Serialize() {
+  base::Value root(base::Value::Type::DICTIONARY);
+  base::Value failed_types_list(base::Value::Type::LIST);
+
+  if (failed_data_types_ & content::BrowsingDataRemover::DATA_TYPE_CACHE)
+    failed_types_list.Append(static_cast<int>(CACHE));
+
+  if (failed_data_types_ & content::BrowsingDataRemover::DATA_TYPE_COOKIES)
+    failed_types_list.Append(static_cast<int>(COOKIES));
+
+  root.SetPath(kFailedTypesPath, std::move(failed_types_list));
+
+  std::string payload;
+  base::JSONWriter::Write(root, &payload);
+  return std::make_unique<std::string>(std::move(payload));
+}
+
+ClearBrowsingDataJob::ClearBrowsingDataJob(ProfileManager* profile_manager)
+    : profile_manager_(profile_manager) {}
+
+ClearBrowsingDataJob::~ClearBrowsingDataJob() = default;
+
+enterprise_management::RemoteCommand_Type ClearBrowsingDataJob::GetType()
+    const {
+  return enterprise_management::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA;
+}
+
+bool ClearBrowsingDataJob::ParseCommandPayload(
+    const std::string& command_payload) {
+  base::Optional<base::Value> root(base::JSONReader::Read(command_payload));
+  if (!root)
+    return false;
+
+  if (!root->is_dict())
+    return false;
+
+  std::string* path = root->FindStringKey(kProfilePathField);
+  if (!path)
+    return false;
+
+  // On Windows, file paths are wstring as opposed to string on other platforms.
+  // On POSIX platforms other than MacOS and ChromeOS, the encoding is unknown.
+  //
+  // This path is sent from the server, which obtained it from Chrome in a
+  // previous report, and Chrome casts the path as UTF8 using UTF8Unsafe before
+  // sending it (see BrowserReportGeneratorDesktop::GenerateProfileInfo).
+  // Because of that, the best thing we can do everywhere is try to get the
+  // path from UTF8, and ending up with an invalid path will fail later in
+  // RunImpl when we attempt to get the profile from the path.
+  profile_path_ = base::FilePath::FromUTF8Unsafe(*path);
+
+  // Not specifying these fields is equivalent to setting them to false.
+  clear_cache_ = root->FindBoolKey(kClearCacheField).value_or(false);
+  clear_cookies_ = root->FindBoolKey(kClearCookiesField).value_or(false);
+
+  return true;
+}
+
+void ClearBrowsingDataJob::RunImpl(CallbackWithResult succeeded_callback,
+                                   CallbackWithResult failed_callback) {
+  DCHECK(profile_manager_);
+
+  uint64_t types = 0;
+  if (clear_cache_)
+    types |= content::BrowsingDataRemover::DATA_TYPE_CACHE;
+
+  if (clear_cookies_)
+    types |= content::BrowsingDataRemover::DATA_TYPE_COOKIES;
+
+  Profile* profile = profile_manager_->GetProfileByPath(profile_path_);
+  if (!profile) {
+    // If the payload's profile path doesn't correspond to an existing profile,
+    // there's nothing to do. The most likely scenario is that the profile was
+    // deleted by the time the command was received.
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(failed_callback),
+                                  std::make_unique<ResultPayload>(types)));
+    return;
+  }
+
+  succeeded_callback_ = std::move(succeeded_callback);
+  failed_callback_ = std::move(failed_callback);
+
+  if (types == 0) {
+    // There's nothing to clear, invoke the success callback and be done.
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(succeeded_callback_),
+                                  std::make_unique<ResultPayload>(
+                                      /* failed_types= */ 0)));
+    return;
+  }
+
+  content::BrowsingDataRemover* remover =
+      content::BrowserContext::GetBrowsingDataRemover(profile);
+  remover->AddObserver(this);
+
+  remover->RemoveAndReply(
+      base::Time(), base::Time::Max(), types,
+      content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB, this);
+}
+
+void ClearBrowsingDataJob::OnBrowsingDataRemoverDone(
+    uint64_t failed_data_types) {
+  Profile* profile = profile_manager_->GetProfileByPath(profile_path_);
+  DCHECK(profile);
+
+  content::BrowsingDataRemover* remover =
+      content::BrowserContext::GetBrowsingDataRemover(profile);
+  remover->RemoveObserver(this);
+
+  auto payload = std::make_unique<ResultPayload>(failed_data_types);
+
+  if (failed_data_types != 0) {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(std::move(failed_callback_), std::move(payload)));
+  } else {
+    base::ThreadTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE,
+        base::BindOnce(std::move(succeeded_callback_), std::move(payload)));
+  }
+}
+
+}  // namespace enterprise_commands
diff --git a/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h
new file mode 100644
index 0000000..a7bea525
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h
@@ -0,0 +1,75 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CLEAR_BROWSING_DATA_JOB_H_
+#define CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CLEAR_BROWSING_DATA_JOB_H_
+
+#include "base/files/file_path.h"
+#include "components/policy/core/common/remote_commands/remote_command_job.h"
+#include "content/public/browser/browsing_data_remover.h"
+
+class ProfileManager;
+
+namespace enterprise_commands {
+
+// A remote command for clearing browsing data associated with a specific
+// profile.
+class ClearBrowsingDataJob : public policy::RemoteCommandJob,
+                             public content::BrowsingDataRemover::Observer {
+ public:
+  explicit ClearBrowsingDataJob(ProfileManager* profile_manager);
+  ~ClearBrowsingDataJob() override;
+
+ private:
+  class ResultPayload : public RemoteCommandJob::ResultPayload {
+   public:
+    explicit ResultPayload(uint64_t failed_data_types);
+    ~ResultPayload() override;
+
+   private:
+    // Define the possibly failed data types here for 2 reasons:
+    //
+    // 1. This will be easier to keep in sync with the server, as the latter
+    // doesn't care about *all* the types in BrowsingDataRemover.
+    //
+    // 2. Centralize handling the underlying type of the values here.
+    // BrowsingDataRemover represents failed types as uint64_t, which isn't
+    // natively supported by base::Value, so this class needs to convert to a
+    // type that's supported. This will also allow us to use a list instead of a
+    // bit mask, which will be easier to parse gracefully on the server in case
+    // more types are added.
+    enum DataTypes {
+      CACHE = 0,
+      COOKIES = 1,
+    };
+
+    std::unique_ptr<std::string> Serialize() override;
+
+    uint64_t failed_data_types_;
+  };
+
+  // RemoteCommandJob:
+  enterprise_management::RemoteCommand_Type GetType() const override;
+  bool ParseCommandPayload(const std::string& command_payload) override;
+  void RunImpl(CallbackWithResult succeeded_callback,
+               CallbackWithResult failed_callback) override;
+
+  // content::BrowsingDataRemover::Observer:
+  void OnBrowsingDataRemoverDone(uint64_t failed_data_types) override;
+
+  base::FilePath profile_path_;
+  bool clear_cache_;
+  bool clear_cookies_;
+
+  // RunImpl callbacks which will be invoked by OnBrowsingDataRemoverDone.
+  CallbackWithResult succeeded_callback_;
+  CallbackWithResult failed_callback_;
+
+  // Non-owned pointer to the ProfileManager of the current browser process.
+  ProfileManager* profile_manager_;
+};
+
+}  // namespace enterprise_commands
+
+#endif  // CHROME_BROWSER_ENTERPRISE_REMOTE_COMMANDS_CLEAR_BROWSING_DATA_JOB_H_
diff --git a/chrome/browser/enterprise/remote_commands/clear_browsing_data_job_unittest.cc b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job_unittest.cc
new file mode 100644
index 0000000..d1f43df0
--- /dev/null
+++ b/chrome/browser/enterprise/remote_commands/clear_browsing_data_job_unittest.cc
@@ -0,0 +1,284 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/enterprise/remote_commands/clear_browsing_data_job.h"
+
+#include "base/json/json_writer.h"
+#include "base/run_loop.h"
+#include "base/test/bind_test_util.h"
+#include "base/values.h"
+#include "chrome/browser/nacl_host/nacl_browser_delegate_impl.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
+#include "components/nacl/browser/nacl_browser.h"
+#include "components/nacl/common/buildflags.h"
+#include "content/public/test/browser_task_environment.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace enterprise_commands {
+namespace {
+
+const char kProfileName[] = "test";
+const policy::RemoteCommandJob::UniqueIDType kUniqueID = 123456789;
+base::FilePath::StringType kTestProfilePath =
+    FILE_PATH_LITERAL("/path/to/profile");
+
+const char kProfilePathField[] = "profile_path";
+const char kClearCacheField[] = "clear_cache";
+const char kClearCookiesField[] = "clear_cookies";
+
+enterprise_management::RemoteCommand CreateCommandProto(
+    const base::FilePath::StringType& profile_path,
+    bool clear_cache,
+    bool clear_cookies) {
+  enterprise_management::RemoteCommand command_proto;
+  command_proto.set_type(
+      enterprise_management::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA);
+  command_proto.set_command_id(kUniqueID);
+
+  base::Value root(base::Value::Type::DICTIONARY);
+  root.SetStringKey(kProfilePathField, profile_path);
+  root.SetBoolKey(kClearCacheField, clear_cache);
+  root.SetBoolKey(kClearCookiesField, clear_cookies);
+
+  std::string payload;
+  base::JSONWriter::Write(root, &payload);
+  command_proto.set_payload(payload);
+  return command_proto;
+}
+
+std::unique_ptr<ClearBrowsingDataJob> CreateJob(
+    enterprise_management::RemoteCommand command_proto,
+    ProfileManager* profile_manager) {
+  auto job = std::make_unique<ClearBrowsingDataJob>(profile_manager);
+  EXPECT_TRUE(job->Init(base::TimeTicks::Now(), command_proto, nullptr));
+  EXPECT_EQ(kUniqueID, job->unique_id());
+  EXPECT_EQ(policy::RemoteCommandJob::NOT_STARTED, job->status());
+
+  return job;
+}
+
+}  // namespace
+
+class ClearBrowsingDataJobTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    ::testing::Test::SetUp();
+
+    task_environment_ = std::make_unique<content::BrowserTaskEnvironment>();
+
+    profile_manager_ = std::make_unique<TestingProfileManager>(
+        TestingBrowserProcess::GetGlobal());
+    EXPECT_TRUE(profile_manager_->SetUp());
+
+#if BUILDFLAG(ENABLE_NACL)
+    // Clearing Cache will clear PNACL cache, which needs this delegate set.
+    nacl::NaClBrowser::SetDelegate(
+        std::make_unique<NaClBrowserDelegateImpl>(profile_manager()));
+#endif
+  }
+
+  void TearDown() override {
+    profile_manager_.reset();
+    task_environment_.reset();
+
+#if BUILDFLAG(ENABLE_NACL)
+    // Clearing Cache will clear PNACL cache, which needs this delegate set.
+    nacl::NaClBrowser::ClearAndDeleteDelegateForTest();
+#endif
+
+    ::testing::Test::TearDown();
+  }
+
+  ProfileManager* profile_manager() {
+    return profile_manager_->profile_manager();
+  }
+
+  void RunUntilIdle() { task_environment_->RunUntilIdle(); }
+
+  void AddTestingProfile() {
+    profile_manager_->CreateTestingProfile(kProfileName);
+  }
+
+  base::FilePath GetTestProfilePath() {
+    return profile_manager_->profiles_dir().AppendASCII(kProfileName);
+  }
+
+ private:
+  std::unique_ptr<content::BrowserTaskEnvironment> task_environment_;
+  std::unique_ptr<TestingProfileManager> profile_manager_;
+};
+
+TEST_F(ClearBrowsingDataJobTest, CanParseWithMissingDataTypes) {
+  base::RunLoop run_loop;
+
+  enterprise_management::RemoteCommand command_proto;
+  command_proto.set_type(
+      enterprise_management::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA);
+  command_proto.set_command_id(kUniqueID);
+
+  base::Value root(base::Value::Type::DICTIONARY);
+  root.SetStringKey(kProfilePathField, kTestProfilePath);
+
+  std::string payload;
+  base::JSONWriter::Write(root, &payload);
+  command_proto.set_payload(payload);
+
+  auto job = std::make_unique<ClearBrowsingDataJob>(profile_manager());
+  EXPECT_TRUE(job->Init(base::TimeTicks::Now(), command_proto, nullptr));
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::FAILED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+TEST_F(ClearBrowsingDataJobTest, DontInitWhenMissingProfilePath) {
+  enterprise_management::RemoteCommand command_proto;
+  command_proto.set_type(
+      enterprise_management::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA);
+  command_proto.set_command_id(kUniqueID);
+
+  base::Value root(base::Value::Type::DICTIONARY);
+  root.SetBoolKey(kClearCacheField, true);
+  root.SetBoolKey(kClearCookiesField, true);
+
+  std::string payload;
+  base::JSONWriter::Write(root, &payload);
+  command_proto.set_payload(payload);
+
+  auto job = std::make_unique<ClearBrowsingDataJob>(profile_manager());
+  EXPECT_FALSE(job->Init(base::TimeTicks::Now(), command_proto, nullptr));
+}
+
+TEST_F(ClearBrowsingDataJobTest, FailureWhenProfileDoesntExist) {
+  base::RunLoop run_loop;
+
+  auto job =
+      CreateJob(CreateCommandProto(kTestProfilePath, /* clear_cache= */ true,
+                                   /* clear_cookies= */ true),
+                profile_manager());
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::FAILED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+TEST_F(ClearBrowsingDataJobTest, SuccessClearCookies) {
+  base::RunLoop run_loop;
+
+  AddTestingProfile();
+  auto job = CreateJob(CreateCommandProto(GetTestProfilePath().value(),
+                                          /* clear_cache= */ false,
+                                          /* clear_cookies= */ true),
+                       profile_manager());
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::SUCCEEDED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+TEST_F(ClearBrowsingDataJobTest, SuccessClearBoth) {
+  base::RunLoop run_loop;
+
+  AddTestingProfile();
+  auto job = CreateJob(CreateCommandProto(GetTestProfilePath().value(),
+                                          /* clear_cache= */ true,
+                                          /* clear_cookies= */ false),
+                       profile_manager());
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::SUCCEEDED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+TEST_F(ClearBrowsingDataJobTest, SuccessClearCache) {
+  base::RunLoop run_loop;
+
+  AddTestingProfile();
+  auto job = CreateJob(CreateCommandProto(GetTestProfilePath().value(),
+                                          /* clear_cache= */ true,
+                                          /* clear_cookies= */ false),
+                       profile_manager());
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::SUCCEEDED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+TEST_F(ClearBrowsingDataJobTest, SuccessClearNeither) {
+  base::RunLoop run_loop;
+
+  AddTestingProfile();
+  auto job = CreateJob(CreateCommandProto(GetTestProfilePath().value(),
+                                          /* clear_cache= */ false,
+                                          /* clear_cookies= */ false),
+                       profile_manager());
+
+  bool done = false;
+  // Run should return true because the command will be successfully posted,
+  // but status of the command will be |FAILED| when |finished_callback| is
+  // invoked.
+  EXPECT_TRUE(job->Run(base::Time::Now(), base::TimeTicks::Now(),
+                       base::BindLambdaForTesting([&] {
+                         EXPECT_EQ(policy::RemoteCommandJob::SUCCEEDED,
+                                   job->status());
+                         done = true;
+                         run_loop.Quit();
+                       })));
+  run_loop.Run();
+  EXPECT_TRUE(done);
+}
+
+}  // namespace enterprise_commands
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 651b116..0dfe322 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1195,6 +1195,11 @@
     "expiry_milestone": 87
   },
   {
+    "name": "enable-autofill-credit-card-cvc-prompt-google-logo",
+    "owners": [ "annelim@google.com, payments-autofill-team@google.com" ],
+    "expiry_milestone": 90
+  },
+  {
     "name": "enable-autofill-credit-card-upload",
     "owners": [ "jsaul@google.com" ],
     // This flag is heavily used by the testing team that can't easily use the
@@ -3246,7 +3251,7 @@
     "expiry_milestone": 95
   },
   {
-    "name": "omnibox-clobber-is-zero-suggest-entrypoint",
+    "name": "omnibox-clobber-triggers-contextual-web-zero-suggest",
     "owners": [ "tommycli", "chrome-omnibox-team@google.com" ],
     "expiry_milestone": 95
   },
@@ -4116,7 +4121,9 @@
   {
     "name": "smooth-scrolling",
     "owners": [ "bokan", "input-dev" ],
-    "expiry_milestone": 85
+    // This needs to continue to be extended until the UI contains a proper
+    // option for it, see crbug.com/817814.
+    "expiry_milestone": 95
   },
   {
     "name": "sms-receiver-cross-device",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 1f609954..fd9336e4 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -566,6 +566,11 @@
     "authenticator (if available) to verify card ownership when retrieving "
     "credit cards from Google Payments.";
 
+const char kEnableAutofillCreditCardCvcPromptGoogleLogoName[] =
+    "Enable Google Pay branding on CVC prompt on Android";
+const char kEnableAutofillCreditCardCvcPromptGoogleLogoDescription[] =
+    "If enabled, show the Google Pay logo on CVC prompt on Android.";
+
 const char kEnableAutofillCreditCardUploadFeedbackName[] =
     "Enable feedback for credit card upload flow";
 const char kEnableAutofillCreditCardUploadFeedbackDescription[] =
@@ -1480,14 +1485,12 @@
     "Allows autocompleting bookmark, history, and document suggestions when the"
     " user input is a prefix of their titles, as opposed to their URLs.";
 
-const char kOmniboxClobberIsZeroSuggestEntrypointName[] =
-    "Omnibox Clobber is ZeroSuggest Entrypoint";
-const char kOmniboxClobberIsZeroSuggestEntrypointDescription[] =
+const char kOmniboxClobberTriggersContextualWebZeroSuggestName[] =
+    "Omnibox Clobber Triggers Contextual Web ZeroSuggest";
+const char kOmniboxClobberTriggersContextualWebZeroSuggestDescription[] =
     "If enabled, when the user clears the whole omnibox text (i.e. via "
-    "Backspace), Chrome will request ZeroSuggest suggestions. Note, this flag "
-    "merely adds a new ZeroSuggest entrypoint. ZeroSuggest still must be "
-    "enabled on the proper page classification (either by default or via a "
-    "separate flag), or else this flag will do nothing.";
+    "Backspace), Chrome will request ZeroSuggest suggestions for the OTHER "
+    "page classification (contextual web).";
 
 const char kOmniboxFocusGestureTriggersContextualWebZeroSuggestName[] =
     "Omnibox Focus Gesture Triggers Contextual Web ZeroSuggest";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 60f35e1..3c86125 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -342,6 +342,9 @@
 extern const char kEnableAutofillCreditCardAuthenticationName[];
 extern const char kEnableAutofillCreditCardAuthenticationDescription[];
 
+extern const char kEnableAutofillCreditCardCvcPromptGoogleLogoName[];
+extern const char kEnableAutofillCreditCardCvcPromptGoogleLogoDescription[];
+
 extern const char kEnableAutofillCreditCardUploadFeedbackName[];
 extern const char kEnableAutofillCreditCardUploadFeedbackDescription[];
 
@@ -868,8 +871,8 @@
 extern const char kOmniboxAutocompleteTitlesName[];
 extern const char kOmniboxAutocompleteTitlesDescription[];
 
-extern const char kOmniboxClobberIsZeroSuggestEntrypointName[];
-extern const char kOmniboxClobberIsZeroSuggestEntrypointDescription[];
+extern const char kOmniboxClobberTriggersContextualWebZeroSuggestName[];
+extern const char kOmniboxClobberTriggersContextualWebZeroSuggestDescription[];
 
 extern const char kOmniboxFocusGestureTriggersContextualWebZeroSuggestName[];
 extern const char
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index 4a3ed1c..f77708b 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -64,6 +64,7 @@
 // in other locations in the code base (e.g. chrome/, components/, etc).
 const base::Feature* kFeaturesExposedToJava[] = {
     &autofill::features::kAutofillCreditCardAuthentication,
+    &autofill::features::kAutofillDownstreamCvcPromptUseGooglePayLogo,
     &autofill::features::kAutofillKeyboardAccessory,
     &autofill::features::kAutofillManualFallbackAndroid,
     &autofill::features::kAutofillRefreshStyleAndroid,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index 4cfe36a..85811a7 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -195,6 +195,8 @@
             "AutofillAllowNonHttpActivation";
     public static final String AUTOFILL_CREDIT_CARD_AUTHENTICATION =
             "AutofillCreditCardAuthentication";
+    public static final String AUTOFILL_DOWNSTREAM_CVC_PROMPT_USE_GOOGLE_LOGO =
+            "AutofillDownstreamCvcPromptUseGooglePayLogo";
     public static final String AUTOFILL_ENABLE_CARD_NICKNAME_MANAGEMENT =
             "AutofillEnableCardNicknameManagement";
     public static final String AUTOFILL_ENABLE_COMPANY_NAME = "AutofillEnableCompanyName";
diff --git a/chrome/browser/idle/idle_browsertest.cc b/chrome/browser/idle/idle_browsertest.cc
index e0bee85..3cadc6d 100644
--- a/chrome/browser/idle/idle_browsertest.cc
+++ b/chrome/browser/idle/idle_browsertest.cc
@@ -10,19 +10,17 @@
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/content_settings_types.h"
 #include "content/public/browser/content_browser_client.h"
-#include "content/public/browser/idle_manager.h"
-#include "content/public/browser/render_process_host.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
+#include "content/public/test/idle_test_utils.h"
 
 #include "content/public/test/content_browser_test_utils.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
-using content::RenderFrameHost;
 using ::testing::NiceMock;
 
 namespace {
@@ -67,13 +65,6 @@
                                      std::string(), CONTENT_SETTING_ALLOW);
   ui_test_utils::NavigateToURL(browser(), url);
 
-  auto mock_time_provider = std::make_unique<NiceMock<MockIdleTimeProvider>>();
-
-  content::RenderFrameHost* const frame =
-      browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame();
-
-  content::IdleManager* idle_mgr = frame->GetIdleManager();
-
   // Test that statuses are updated after idleDetector.start().
   std::string script = R"(
     (async () => {
@@ -93,6 +84,8 @@
     }) ();
   )";
 
+  auto mock_time_provider = std::make_unique<NiceMock<MockIdleTimeProvider>>();
+
   EXPECT_CALL(*mock_time_provider, CalculateIdleTime())
       // Simulates a user going idle.
       .WillOnce(testing::Return(base::TimeDelta::FromSeconds(60)))
@@ -109,7 +102,9 @@
       // Simulates an unlocked screen as user goes back to active.
       .WillRepeatedly(testing::Return(false));
 
-  idle_mgr->SetIdleTimeProviderForTest(std::move(mock_time_provider));
+  content::IdleManagerHelper::SetIdleTimeProviderForTest(
+      browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(),
+      std::move(mock_time_provider));
 
   std::string result =
       EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), script)
diff --git a/chrome/browser/media/history/media_history_store.cc b/chrome/browser/media/history/media_history_store.cc
index 96f95860..a139f14 100644
--- a/chrome/browser/media/history/media_history_store.cc
+++ b/chrome/browser/media/history/media_history_store.cc
@@ -315,8 +315,8 @@
   // In some edge cases the DB might be corrupted and unrecoverable so we should
   // delete the database and recreate it.
   if (result != InitResult::kSuccess) {
-    if (db_->is_open())
-      db_->Close();
+    db_ = std::make_unique<sql::Database>();
+    meta_table_ = std::make_unique<sql::MetaTable>();
 
     sql::Database::Delete(db_path_);
 
diff --git a/chrome/browser/media/kaleidoscope/constants.cc b/chrome/browser/media/kaleidoscope/constants.cc
index 6cb9c4a..cd01810 100644
--- a/chrome/browser/media/kaleidoscope/constants.cc
+++ b/chrome/browser/media/kaleidoscope/constants.cc
@@ -10,3 +10,5 @@
 
 const char kKaleidoscopeUntrustedContentUIURL[] =
     "chrome-untrusted://kaleidoscope/";
+
+const int kKaleidoscopeFirstRunLatestVersion = 1;
diff --git a/chrome/browser/media/kaleidoscope/constants.h b/chrome/browser/media/kaleidoscope/constants.h
index 714251d..0a5a3530 100644
--- a/chrome/browser/media/kaleidoscope/constants.h
+++ b/chrome/browser/media/kaleidoscope/constants.h
@@ -11,4 +11,7 @@
 
 extern const char kKaleidoscopeUntrustedContentUIURL[];
 
+// The current latest version of the first run experience.
+extern const int kKaleidoscopeFirstRunLatestVersion;
+
 #endif  // CHROME_BROWSER_MEDIA_KALEIDOSCOPE_CONSTANTS_H_
diff --git a/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.cc b/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.cc
index 5303883..3cece14 100644
--- a/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.cc
+++ b/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.cc
@@ -11,10 +11,12 @@
 #include "chrome/browser/media/history/media_history_keyed_service.h"
 #include "chrome/browser/media/history/media_history_keyed_service_factory.h"
 #include "chrome/browser/media/kaleidoscope/constants.h"
+#include "chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/ui/chrome_pages.h"
 #include "chrome/common/channel_info.h"
+#include "components/prefs/pref_service.h"
 #include "components/signin/public/identity_manager/access_token_info.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "components/signin/public/identity_manager/primary_account_access_token_fetcher.h"
@@ -122,6 +124,46 @@
       signin::ConsentLevel::kNotRequired);
 }
 
+void KaleidoscopeDataProviderImpl::GetShouldShowFirstRunExperience(
+    GetShouldShowFirstRunExperienceCallback cb) {
+  // If the flag for forcing the first run experience to show is set, then just
+  // show it.
+  if (base::FeatureList::IsEnabled(
+          media::kKaleidoscopeForceShowFirstRunExperience)) {
+    std::move(cb).Run(true);
+    return;
+  }
+
+  // Otherwise, check to see if the user has already completed the latest first
+  // run experience.
+  auto* prefs = profile_->GetPrefs();
+  if (!prefs) {
+    std::move(cb).Run(true);
+    return;
+  }
+
+  // If the pref is unset or lower than the current version, then we haven't
+  // shown the current first run experience before and we should show it now.
+  const base::Value* pref = prefs->GetUserPrefValue(
+      kaleidoscope::prefs::kKaleidoscopeFirstRunCompleted);
+  if (!pref || pref->GetInt() < kKaleidoscopeFirstRunLatestVersion) {
+    std::move(cb).Run(true);
+    return;
+  }
+
+  // Otherwise, we have shown it and don't need to.
+  std::move(cb).Run(false);
+}
+
+void KaleidoscopeDataProviderImpl::SetFirstRunExperienceCompleted() {
+  auto* prefs = profile_->GetPrefs();
+  if (!prefs)
+    return;
+
+  prefs->SetInteger(kaleidoscope::prefs::kKaleidoscopeFirstRunCompleted,
+                    kKaleidoscopeFirstRunLatestVersion);
+}
+
 void KaleidoscopeDataProviderImpl::GetHighWatchTimeOrigins(
     GetHighWatchTimeOriginsCallback cb) {
   GetMediaHistoryService()->GetHighWatchTimeOrigins(kProviderHighWatchTimeMin,
diff --git a/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.h b/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.h
index 2a534a3..978a8e9 100644
--- a/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.h
+++ b/chrome/browser/media/kaleidoscope/kaleidoscope_data_provider_impl.h
@@ -47,6 +47,9 @@
       media::mojom::KaleidoscopeTab tab,
       GetContinueWatchingMediaFeedItemsCallback callback) override;
   void GetCredentials(GetCredentialsCallback cb) override;
+  void GetShouldShowFirstRunExperience(
+      GetShouldShowFirstRunExperienceCallback cb) override;
+  void SetFirstRunExperienceCompleted() override;
   void GetHighWatchTimeOrigins(GetHighWatchTimeOriginsCallback cb) override;
   void SendFeedback() override;
 
diff --git a/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.cc b/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.cc
new file mode 100644
index 0000000..61cfd6ff
--- /dev/null
+++ b/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.cc
@@ -0,0 +1,20 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h"
+
+#include "components/prefs/pref_registry_simple.h"
+
+namespace kaleidoscope {
+namespace prefs {
+
+const char kKaleidoscopeFirstRunCompleted[] =
+    "kaleidoscope.first_run_completed";
+
+void RegisterProfilePrefs(PrefRegistrySimple* registry) {
+  registry->RegisterIntegerPref(kKaleidoscopeFirstRunCompleted, 0);
+}
+
+}  // namespace prefs
+}  // namespace kaleidoscope
diff --git a/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h b/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h
new file mode 100644
index 0000000..5a20b185
--- /dev/null
+++ b/chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h
@@ -0,0 +1,22 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_MEDIA_KALEIDOSCOPE_KALEIDOSCOPE_PREFS_H_
+#define CHROME_BROWSER_MEDIA_KALEIDOSCOPE_KALEIDOSCOPE_PREFS_H_
+
+class PrefRegistrySimple;
+
+namespace kaleidoscope {
+namespace prefs {
+
+// Stores the latest version of the first run experience that was completed
+// successfully by the user.
+extern const char kKaleidoscopeFirstRunCompleted[];
+
+void RegisterProfilePrefs(PrefRegistrySimple* registry);
+
+}  // namespace prefs
+}  // namespace kaleidoscope
+
+#endif  // CHROME_BROWSER_MEDIA_KALEIDOSCOPE_KALEIDOSCOPE_PREFS_H_
diff --git a/chrome/browser/media/kaleidoscope/mojom/kaleidoscope.mojom b/chrome/browser/media/kaleidoscope/mojom/kaleidoscope.mojom
index 7d766a3..946863c 100644
--- a/chrome/browser/media/kaleidoscope/mojom/kaleidoscope.mojom
+++ b/chrome/browser/media/kaleidoscope/mojom/kaleidoscope.mojom
@@ -52,6 +52,12 @@
   // Retrieves the current credentials.
   GetCredentials() => (Credentials? credentials, CredentialsResult result);
 
+  // Returns true if the first run experience should be shown.
+  GetShouldShowFirstRunExperience() => (bool should_show_first_run);
+
+  // Called when the user successfully completes the first run experience.
+  SetFirstRunExperienceCompleted();
+
   // Returns all the watch time origins from media history store that have
   // watch time above a threshold.
   GetHighWatchTimeOrigins() => (array<url.mojom.Origin> origins);
diff --git a/chrome/browser/media/router/mojo/media_router_desktop_unittest.cc b/chrome/browser/media/router/mojo/media_router_desktop_unittest.cc
index 14c9ffc..a7d88bda 100644
--- a/chrome/browser/media/router/mojo/media_router_desktop_unittest.cc
+++ b/chrome/browser/media/router/mojo/media_router_desktop_unittest.cc
@@ -72,9 +72,11 @@
     feature_list_.InitAndDisableFeature(kDialMediaRouteProvider);
     cast_media_sink_service = std::make_unique<MockCastMediaSinkService>();
     cast_media_sink_service_ = cast_media_sink_service.get();
-    media_sink_service_ = std::unique_ptr<DualMediaSinkService>(
-        new DualMediaSinkService(std::move(cast_media_sink_service),
-                                 std::make_unique<MockDialMediaSinkService>()));
+    media_sink_service_ =
+        std::unique_ptr<DualMediaSinkService>(new DualMediaSinkService(
+            std::move(cast_media_sink_service),
+            std::make_unique<MockDialMediaSinkService>(),
+            std::make_unique<MockCastAppDiscoveryService>()));
     return std::unique_ptr<MediaRouterDesktop>(
         new MediaRouterDesktop(profile(), media_sink_service_.get()));
   }
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
index 3b06c1f..30dc58f1 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/media/router/providers/cast/cast_app_discovery_service.h"
 
 #include "base/bind.h"
+#include "base/strings/strcat.h"
 #include "base/time/tick_clock.h"
 #include "chrome/browser/media/router/providers/cast/cast_media_route_provider_metrics.h"
 #include "components/cast_channel/cast_message_handler.h"
@@ -15,6 +16,8 @@
 
 namespace {
 
+constexpr char kLoggerComponent[] = "CastAppDiscoveryService";
+
 // The minimum time that must elapse before an app availability result can be
 // force refreshed.
 static constexpr base::TimeDelta kRefreshThreshold =
@@ -79,7 +82,15 @@
         cast_channel::CastSocket* socket =
             socket_service_->GetSocket(channel_id);
         if (!socket) {
-          DVLOG(1) << "Socket not found for id " << channel_id;
+          if (logger_.is_bound()) {
+            logger_->LogError(
+                mojom::LogCategory::kDiscovery, kLoggerComponent,
+                base::StringPrintf(
+                    "Socket not found for channel id: %d when starting "
+                    "discovery for source.",
+                    channel_id),
+                sink.first, source.source_id(), "");
+          }
           continue;
         }
 
@@ -98,18 +109,36 @@
   // being iterated.
   for (const auto& sink : sinks) {
     for (const auto& app_id : app_ids) {
-        int channel_id = sink.second.cast_data().cast_channel_id;
-        cast_channel::CastSocket* socket =
-            socket_service_->GetSocket(channel_id);
-        if (!socket) {
-          DVLOG(1) << "Socket not found for id " << channel_id;
-          continue;
+      int channel_id = sink.second.cast_data().cast_channel_id;
+      cast_channel::CastSocket* socket = socket_service_->GetSocket(channel_id);
+      if (!socket) {
+        if (logger_.is_bound()) {
+          logger_->LogError(
+              mojom::LogCategory::kDiscovery, kLoggerComponent,
+              base::StringPrintf(
+                  "Socket not found for channel id: %d when refreshing "
+                  "the discovery state.",
+                  channel_id),
+              sink.first, "", "");
         }
-        RequestAppAvailability(socket, app_id, sink.first);
+        continue;
       }
+      RequestAppAvailability(socket, app_id, sink.first);
+    }
   }
 }
 
+void CastAppDiscoveryServiceImpl::BindLogger(
+    mojo::PendingRemote<mojom::Logger> pending_remote) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  logger_.Bind(std::move(pending_remote));
+}
+
+scoped_refptr<base::SequencedTaskRunner>
+CastAppDiscoveryServiceImpl::task_runner() {
+  return socket_service_->task_runner();
+}
+
 void CastAppDiscoveryServiceImpl::MaybeRemoveSinkQueryEntry(
     const CastMediaSource& source) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -174,8 +203,13 @@
   if (!media_sink_service_->GetSinkById(sink_id))
     return;
 
-  DVLOG(1) << "App " << app_id << " on sink " << sink_id << " is "
-           << ToString(availability);
+  if (availability != cast_channel::GetAppAvailabilityResult::kAvailable &&
+      logger_.is_bound()) {
+    logger_->LogInfo(
+        mojom::LogCategory::kDiscovery, kLoggerComponent,
+        base::StrCat({"App ", app_id, " on sink is ", ToString(availability)}),
+        sink_id, "", "");
+  }
 
   UpdateSinkQueries(availability_tracker_.UpdateAppAvailability(
       sink_id, app_id, {availability, clock_->NowTicks()}));
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
index 16a3be56..69ff5950a 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
@@ -20,8 +20,10 @@
 #include "chrome/common/media_router/discovery/media_sink_service_base.h"
 #include "chrome/common/media_router/media_sink.h"
 #include "chrome/common/media_router/media_source.h"
+#include "chrome/common/media_router/mojom/logger.mojom.h"
 #include "chrome/common/media_router/providers/cast/cast_media_source.h"
 #include "components/cast_channel/cast_message_util.h"
+#include "mojo/public/cpp/bindings/remote.h"
 
 namespace base {
 class TickClock;
@@ -58,6 +60,14 @@
   // this method when the user initiates a user gesture (such as opening the
   // Media Router dialog).
   virtual void Refresh() = 0;
+
+  // Binds |pending_remote| to the Mojo Remote owned by |impl_|.
+  virtual void BindLogger(
+      mojo::PendingRemote<mojom::Logger> pending_remote) = 0;
+
+  // Returns the SequencedTaskRunner that should be used to invoke methods on
+  // this instance. Can be invoked on any thread.
+  virtual scoped_refptr<base::SequencedTaskRunner> task_runner() = 0;
 };
 
 // Keeps track of sink queries and listens to CastMediaSinkServiceImpl for sink
@@ -82,6 +92,10 @@
   // pairs whose status is kUnavailable or kUnknown.
   void Refresh() override;
 
+  void BindLogger(mojo::PendingRemote<mojom::Logger> pending_remote) override;
+
+  scoped_refptr<base::SequencedTaskRunner> task_runner() override;
+
  private:
   friend class CastAppDiscoveryServiceImplTest;
 
@@ -136,6 +150,10 @@
   CastAppAvailabilityTracker availability_tracker_;
 
   const base::TickClock* const clock_;
+  // Mojo Remote to the logger owned by the Media Router. The Remote is not
+  // bound until |BindLogger()| is called. Always check if |logger_.is_bound()|
+  // is true before using.
+  mojo::Remote<mojom::Logger> logger_;
 
   SEQUENCE_CHECKER(sequence_checker_);
   base::WeakPtrFactory<CastAppDiscoveryServiceImpl> weak_ptr_factory_{this};
diff --git a/chrome/browser/media/router/providers/cast/dual_media_sink_service.cc b/chrome/browser/media/router/providers/cast/dual_media_sink_service.cc
index f37ad54..6704cf4 100644
--- a/chrome/browser/media/router/providers/cast/dual_media_sink_service.cc
+++ b/chrome/browser/media/router/providers/cast/dual_media_sink_service.cc
@@ -89,9 +89,11 @@
 
 DualMediaSinkService::DualMediaSinkService(
     std::unique_ptr<CastMediaSinkService> cast_media_sink_service,
-    std::unique_ptr<DialMediaSinkService> dial_media_sink_service)
+    std::unique_ptr<DialMediaSinkService> dial_media_sink_service,
+    std::unique_ptr<CastAppDiscoveryService> cast_app_discovery_service)
     : dial_media_sink_service_(std::move(dial_media_sink_service)),
-      cast_media_sink_service_(std::move(cast_media_sink_service)) {}
+      cast_media_sink_service_(std::move(cast_media_sink_service)),
+      cast_app_discovery_service_(std::move(cast_app_discovery_service)) {}
 
 DualMediaSinkService::~DualMediaSinkService() = default;
 
@@ -116,6 +118,16 @@
   mojo::PendingRemote<mojom::Logger> dial_pending_remote;
   logger_impl->Bind(dial_pending_remote.InitWithNewPipeAndPassReceiver());
   dial_media_sink_service_->BindLogger(std::move(dial_pending_remote));
+  if (!CastMediaRouteProviderEnabled())
+    return;
+  mojo::PendingRemote<mojom::Logger> cast_discovery_pending_remote;
+  logger_impl->Bind(
+      cast_discovery_pending_remote.InitWithNewPipeAndPassReceiver());
+  cast_app_discovery_service_->task_runner()->PostTask(
+      FROM_HERE,
+      base::BindOnce(&CastAppDiscoveryService::BindLogger,
+                     base::Unretained(cast_app_discovery_service_.get()),
+                     std::move(cast_discovery_pending_remote)));
 }
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/providers/cast/dual_media_sink_service.h b/chrome/browser/media/router/providers/cast/dual_media_sink_service.h
index d539c334..aae31ad 100644
--- a/chrome/browser/media/router/providers/cast/dual_media_sink_service.h
+++ b/chrome/browser/media/router/providers/cast/dual_media_sink_service.h
@@ -77,7 +77,8 @@
   // |dial_media_sink_service_|.
   // The binding should be done once and the method is a no-op after the first
   // call.
-  void BindLogger(LoggerImpl* logger_impl);
+  // Marked virtual for testing.
+  virtual void BindLogger(LoggerImpl* logger_impl);
 
   virtual void OnUserGesture();
 
@@ -89,7 +90,8 @@
   // Used by tests.
   DualMediaSinkService(
       std::unique_ptr<CastMediaSinkService> cast_media_sink_service,
-      std::unique_ptr<DialMediaSinkService> dial_media_sink_service);
+      std::unique_ptr<DialMediaSinkService> dial_media_sink_service,
+      std::unique_ptr<CastAppDiscoveryService> cast_app_discovery_service);
   virtual ~DualMediaSinkService();
 
  private:
diff --git a/chrome/browser/media/router/providers/cast/dual_media_sink_service_unittest.cc b/chrome/browser/media/router/providers/cast/dual_media_sink_service_unittest.cc
index 731c382..6b8b7496 100644
--- a/chrome/browser/media/router/providers/cast/dual_media_sink_service_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/dual_media_sink_service_unittest.cc
@@ -16,11 +16,15 @@
   DualMediaSinkServiceTest() {
     auto cast_media_sink_service = std::make_unique<MockCastMediaSinkService>();
     auto dial_media_sink_service = std::make_unique<MockDialMediaSinkService>();
+    auto cast_app_discovery_service =
+        std::make_unique<MockCastAppDiscoveryService>();
     cast_media_sink_service_ = cast_media_sink_service.get();
     dial_media_sink_service_ = dial_media_sink_service.get();
+    cast_app_discovery_service_ = cast_app_discovery_service.get();
     dual_media_sink_service_ = std::unique_ptr<DualMediaSinkService>(
         new DualMediaSinkService(std::move(cast_media_sink_service),
-                                 std::move(dial_media_sink_service)));
+                                 std::move(dial_media_sink_service),
+                                 std::move(cast_app_discovery_service)));
   }
 
   ~DualMediaSinkServiceTest() override = default;
@@ -42,6 +46,7 @@
  private:
   MockCastMediaSinkService* cast_media_sink_service_;
   MockDialMediaSinkService* dial_media_sink_service_;
+  MockCastAppDiscoveryService* cast_app_discovery_service_;
   std::unique_ptr<DualMediaSinkService> dual_media_sink_service_;
 };
 
diff --git a/chrome/browser/media/router/providers/cast/mirroring_activity.cc b/chrome/browser/media/router/providers/cast/mirroring_activity.cc
index f1d4ad1..37b7ae2 100644
--- a/chrome/browser/media/router/providers/cast/mirroring_activity.cc
+++ b/chrome/browser/media/router/providers/cast/mirroring_activity.cc
@@ -49,6 +49,14 @@
     "MediaRouter.CastStreaming.Session.Launch";
 constexpr char kHistogramSessionLength[] =
     "MediaRouter.CastStreaming.Session.Length";
+constexpr char kHistogramSessionLengthScreen[] =
+    "MediaRouter.CastStreaming.Session.Length.Screen";
+constexpr char kHistogramSessionLengthFile[] =
+    "MediaRouter.CastStreaming.Session.Length.File";
+constexpr char kHistogramSessionLengthOffscreenTab[] =
+    "MediaRouter.CastStreaming.Session.Length.OffscreenTab";
+constexpr char kHistogramSessionLengthTab[] =
+    "MediaRouter.CastStreaming.Session.Length.Tab";
 constexpr char kHistogramStartFailureNative[] =
     "MediaRouter.CastStreaming.Start.Failure.Native";
 constexpr char kHistogramStartSuccess[] =
@@ -133,10 +141,34 @@
 }
 
 MirroringActivity::~MirroringActivity() {
-  if (did_start_mirroring_timestamp_) {
-    base::UmaHistogramLongTimes(
-        kHistogramSessionLength,
-        base::Time::Now() - *did_start_mirroring_timestamp_);
+  if (!did_start_mirroring_timestamp_) {
+    return;
+  }
+
+  auto cast_duration = base::Time::Now() - *did_start_mirroring_timestamp_;
+  base::UmaHistogramLongTimes(kHistogramSessionLength, cast_duration);
+
+  if (route().media_source().IsLocalFileSource()) {
+    base::UmaHistogramLongTimes(kHistogramSessionLengthFile, cast_duration);
+    return;
+  }
+
+  if (!mirroring_type_) {
+    // The mirroring activity should always be set by now, but check anyway
+    // to avoid risk of a segfault.
+    return;
+  }
+  switch (*mirroring_type_) {
+    case MirroringType::kTab:
+      base::UmaHistogramLongTimes(kHistogramSessionLengthTab, cast_duration);
+      break;
+    case MirroringType::kDesktop:
+      base::UmaHistogramLongTimes(kHistogramSessionLengthScreen, cast_duration);
+      break;
+    case MirroringType::kOffscreenTab:
+      base::UmaHistogramLongTimes(kHistogramSessionLengthOffscreenTab,
+                                  cast_duration);
+      break;
   }
 }
 
diff --git a/chrome/browser/media/router/providers/cast/mirroring_activity_unittest.cc b/chrome/browser/media/router/providers/cast/mirroring_activity_unittest.cc
index 0259b29..db1e084 100644
--- a/chrome/browser/media/router/providers/cast/mirroring_activity_unittest.cc
+++ b/chrome/browser/media/router/providers/cast/mirroring_activity_unittest.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/media/router/providers/cast/mirroring_activity.h"
 
 #include "base/test/bind_test_util.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/mock_callback.h"
 #include "base/test/values_test_util.h"
 #include "chrome/browser/media/router/providers/cast/cast_activity_test_base.h"
@@ -27,6 +28,18 @@
 constexpr char kDesktopMediaId[] = "theDesktopMediaId";
 constexpr char kPresentationId[] = "thePresentationId";
 
+// Metrics constants.
+constexpr char kHistogramSessionLength[] =
+    "MediaRouter.CastStreaming.Session.Length";
+constexpr char kHistogramSessionLengthDesktop[] =
+    "MediaRouter.CastStreaming.Session.Length.Screen";
+constexpr char kHistogramSessionLengthFile[] =
+    "MediaRouter.CastStreaming.Session.Length.File";
+constexpr char kHistogramSessionLengthOffscreenTab[] =
+    "MediaRouter.CastStreaming.Session.Length.OffscreenTab";
+constexpr char kHistogramSessionLengthTab[] =
+    "MediaRouter.CastStreaming.Session.Length.Tab";
+
 class MockMirroringServiceHost : public mirroring::mojom::MirroringServiceHost {
  public:
   MOCK_METHOD4(
@@ -115,30 +128,61 @@
                         testing::Values(mirroring::mojom::kWebRtcNamespace,
                                         mirroring::mojom::kRemotingNamespace));
 
-TEST_F(MirroringActivityTest, CreateMojoBindingsForDesktop) {
+TEST_F(MirroringActivityTest, MirrorDesktop) {
+  base::HistogramTester uma_recorder;
   EXPECT_CALL(media_router_,
               GetMirroringServiceHostForDesktop(_, kDesktopMediaId, _));
   MediaSource source = MediaSource::ForDesktop(kDesktopMediaId);
   ASSERT_TRUE(source.IsDesktopMirroringSource());
   MakeActivity(source);
+
+  activity_->DidStart();
+  activity_.reset();
+
+  uma_recorder.ExpectTotalCount(kHistogramSessionLength, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthDesktop, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthFile, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthTab, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthOffscreenTab, 0);
 }
 
-TEST_F(MirroringActivityTest, CreateMojoBindingsForTab) {
+TEST_F(MirroringActivityTest, MirrorTab) {
+  base::HistogramTester uma_recorder;
   EXPECT_CALL(media_router_, GetMirroringServiceHostForTab(kTabId, _));
   MediaSource source = MediaSource::ForTab(kTabId);
   ASSERT_TRUE(source.IsTabMirroringSource());
   MakeActivity(source, kTabId);
+
+  activity_->DidStart();
+  activity_.reset();
+
+  uma_recorder.ExpectTotalCount(kHistogramSessionLength, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthDesktop, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthFile, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthTab, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthOffscreenTab, 0);
 }
 
 TEST_F(MirroringActivityTest, CreateMojoBindingsForTabWithCastAppUrl) {
+  base::HistogramTester uma_recorder;
   GURL url(kMirroringAppUri);
   EXPECT_CALL(media_router_, GetMirroringServiceHostForTab(kTabId, _));
   MediaSource source = MediaSource::ForPresentationUrl(url);
   ASSERT_TRUE(source.IsCastPresentationUrl());
   MakeActivity(source, kTabId);
+
+  activity_->DidStart();
+  activity_.reset();
+
+  uma_recorder.ExpectTotalCount(kHistogramSessionLength, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthDesktop, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthFile, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthTab, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthOffscreenTab, 0);
 }
 
-TEST_F(MirroringActivityTest, CreateMojoBindingsForOffscreenTab) {
+TEST_F(MirroringActivityTest, MirrorOffscreenTab) {
+  base::HistogramTester uma_recorder;
   static constexpr char kUrl[] = "http://wikipedia.org";
   GURL url(kUrl);
   EXPECT_CALL(media_router_,
@@ -146,6 +190,32 @@
   MediaSource source = MediaSource::ForPresentationUrl(url);
   ASSERT_FALSE(source.IsCastPresentationUrl());
   MakeActivity(source);
+
+  activity_->DidStart();
+  activity_.reset();
+
+  uma_recorder.ExpectTotalCount(kHistogramSessionLength, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthDesktop, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthFile, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthTab, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthOffscreenTab, 1);
+}
+
+TEST_F(MirroringActivityTest, MirrorFile) {
+  base::HistogramTester uma_recorder;
+  EXPECT_CALL(media_router_, GetMirroringServiceHostForTab(kTabId, _));
+  MediaSource source = MediaSource::ForLocalFile();
+  ASSERT_TRUE(source.IsLocalFileSource());
+  MakeActivity(source);
+
+  activity_->DidStart();
+  activity_.reset();
+
+  uma_recorder.ExpectTotalCount(kHistogramSessionLength, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthDesktop, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthFile, 1);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthTab, 0);
+  uma_recorder.ExpectTotalCount(kHistogramSessionLengthOffscreenTab, 0);
 }
 
 TEST_F(MirroringActivityTest, OnError) {
diff --git a/chrome/browser/media/router/test/noop_dual_media_sink_service.cc b/chrome/browser/media/router/test/noop_dual_media_sink_service.cc
index d4dcd61..d65be7f8 100644
--- a/chrome/browser/media/router/test/noop_dual_media_sink_service.cc
+++ b/chrome/browser/media/router/test/noop_dual_media_sink_service.cc
@@ -6,12 +6,14 @@
 
 #include "chrome/browser/media/router/discovery/dial/dial_media_sink_service.h"
 #include "chrome/browser/media/router/discovery/mdns/cast_media_sink_service.h"
+#include "chrome/browser/media/router/providers/cast/cast_app_discovery_service.h"
 
 namespace media_router {
 
 NoopDualMediaSinkService::NoopDualMediaSinkService()
     : DualMediaSinkService(std::unique_ptr<CastMediaSinkService>(nullptr),
-                           std::unique_ptr<DialMediaSinkService>(nullptr)) {}
+                           std::unique_ptr<DialMediaSinkService>(nullptr),
+                           std::unique_ptr<CastAppDiscoveryService>(nullptr)) {}
 NoopDualMediaSinkService::~NoopDualMediaSinkService() = default;
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/test/test_helper.cc b/chrome/browser/media/router/test/test_helper.cc
index 319eac5..9d9af75d 100644
--- a/chrome/browser/media/router/test/test_helper.cc
+++ b/chrome/browser/media/router/test/test_helper.cc
@@ -12,6 +12,8 @@
 
 #if !defined(OS_ANDROID)
 #include "base/json/json_reader.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
 #include "services/network/public/cpp/simple_url_loader.h"
 #include "url/gurl.h"
 #endif
@@ -38,7 +40,7 @@
 MockPresentationConnectionProxy::~MockPresentationConnectionProxy() {}
 
 #if !defined(OS_ANDROID)
-MockDialMediaSinkService::MockDialMediaSinkService() : DialMediaSinkService() {}
+MockDialMediaSinkService::MockDialMediaSinkService() = default;
 MockDialMediaSinkService::~MockDialMediaSinkService() = default;
 
 MockCastMediaSinkService::MockCastMediaSinkService() : CastMediaSinkService() {}
@@ -54,6 +56,10 @@
   DoStartObservingMediaSinks(source);
   return callbacks_.Add(callback);
 }
+scoped_refptr<base::SequencedTaskRunner>
+MockCastAppDiscoveryService::task_runner() {
+  return base::CreateSingleThreadTaskRunner({content::BrowserThread::IO});
+}
 
 MockDialAppDiscoveryService::MockDialAppDiscoveryService() = default;
 
diff --git a/chrome/browser/media/router/test/test_helper.h b/chrome/browser/media/router/test/test_helper.h
index b4af439f..eccbdc1 100644
--- a/chrome/browser/media/router/test/test_helper.h
+++ b/chrome/browser/media/router/test/test_helper.h
@@ -28,6 +28,7 @@
 #include "chrome/browser/media/router/providers/dial/dial_activity_manager.h"
 #include "chrome/browser/media/router/providers/dial/dial_internal_message_util.h"
 #include "chrome/common/media_router/discovery/media_sink_internal.h"
+#include "chrome/common/media_router/mojom/logger.mojom.h"
 #include "net/base/ip_endpoint.h"
 #include "services/network/test/test_url_loader_factory.h"
 #endif  // !defined(OS_ANDROID)
@@ -117,8 +118,10 @@
   Subscription StartObservingMediaSinks(
       const CastMediaSource& source,
       const SinkQueryCallback& callback) override;
+  scoped_refptr<base::SequencedTaskRunner> task_runner() override;
   MOCK_METHOD1(DoStartObservingMediaSinks, void(const CastMediaSource&));
   MOCK_METHOD0(Refresh, void());
+  MOCK_METHOD1(BindLogger, void(mojo::PendingRemote<mojom::Logger>));
 
   SinkQueryCallbackList& callbacks() { return callbacks_; }
 
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
index ab120687..19c11f6 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
+++ b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.cc
@@ -8,6 +8,8 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/histogram_macros_local.h"
 #include "build/build_config.h"
+#include "chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h"
+#include "chrome/browser/profiles/profile.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
@@ -119,7 +121,10 @@
 
 NavigationPredictorKeyedService::NavigationPredictorKeyedService(
     content::BrowserContext* browser_context)
-    : search_engine_preconnector_(browser_context) {
+    : search_engine_preconnector_(browser_context),
+      renderer_warmup_client_(
+          std::make_unique<NavigationPredictorRendererWarmupClient>(
+              Profile::FromBrowserContext(browser_context))) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(!browser_context->IsOffTheRecord());
 
@@ -127,6 +132,8 @@
   // Start preconnecting to the search engine.
   search_engine_preconnector_.StartPreconnecting(/*with_startup_delay=*/true);
 #endif
+
+  AddObserver(renderer_warmup_client_.get());
 }
 
 NavigationPredictorKeyedService::~NavigationPredictorKeyedService() {
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h
index cbbad03..afe7866 100644
--- a/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h
+++ b/chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h
@@ -5,6 +5,7 @@
 #ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_NAVIGATION_PREDICTOR_KEYED_SERVICE_H_
 #define CHROME_BROWSER_NAVIGATION_PREDICTOR_NAVIGATION_PREDICTOR_KEYED_SERVICE_H_
 
+#include <memory>
 #include <vector>
 
 #include "base/macros.h"
@@ -20,6 +21,8 @@
 class WebContents;
 }  // namespace content
 
+class NavigationPredictorRendererWarmupClient;
+
 // Keyed service that can be used to receive notifications about the URLs for
 // the next predicted navigation.
 class NavigationPredictorKeyedService : public KeyedService {
@@ -144,6 +147,10 @@
   // Manages preconnecting to the user's default search engine.
   SearchEnginePreconnector search_engine_preconnector_;
 
+  // Manages warming up a spare renderer based on predictions.
+  std::unique_ptr<NavigationPredictorRendererWarmupClient>
+      renderer_warmup_client_;
+
   DISALLOW_COPY_AND_ASSIGN(NavigationPredictorKeyedService);
 };
 
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc
new file mode 100644
index 0000000..0c1cfc0
--- /dev/null
+++ b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc
@@ -0,0 +1,128 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h"
+
+#include <algorithm>
+#include <vector>
+
+#include "base/feature_list.h"
+#include "base/metrics/field_trial_params.h"
+#include "base/system/sys_info.h"
+#include "base/time/default_tick_clock.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "components/search_engines/template_url_service.h"
+#include "content/public/browser/render_process_host.h"
+#include "url/gurl.h"
+#include "url/origin.h"
+
+namespace {
+const base::Feature kNavigationPredictorRendererWarmup{
+    "NavigationPredictorRendererWarmup", base::FEATURE_DISABLED_BY_DEFAULT};
+}
+
+NavigationPredictorRendererWarmupClient::
+    ~NavigationPredictorRendererWarmupClient() = default;
+NavigationPredictorRendererWarmupClient::
+    NavigationPredictorRendererWarmupClient(Profile* profile,
+                                            const base::TickClock* clock)
+    : profile_(profile),
+      counterfactual_(base::GetFieldTrialParamByFeatureAsBool(
+          kNavigationPredictorRendererWarmup,
+          "counterfactual",
+          false)),
+      mem_threshold_mb_(base::GetFieldTrialParamByFeatureAsInt(
+          kNavigationPredictorRendererWarmup,
+          "mem_threshold_mb",
+          1024)),
+      cooldown_duration_(base::TimeDelta::FromMilliseconds(
+          base::GetFieldTrialParamByFeatureAsInt(
+              kNavigationPredictorRendererWarmup,
+              "cooldown_duration_ms",
+              60 * 1000))) {
+  if (clock) {
+    tick_clock_ = clock;
+  } else {
+    tick_clock_ = base::DefaultTickClock::GetInstance();
+  }
+}
+
+void NavigationPredictorRendererWarmupClient::OnPredictionUpdated(
+    const base::Optional<NavigationPredictorKeyedService::Prediction>
+        prediction) {
+  if (!prediction) {
+    return;
+  }
+
+  if (prediction->prediction_source() !=
+      NavigationPredictorKeyedService::PredictionSource::
+          kAnchorElementsParsedFromWebPage) {
+    return;
+  }
+
+  if (!prediction->source_document_url()) {
+    return;
+  }
+
+  if (!prediction->source_document_url()->is_valid()) {
+    return;
+  }
+
+  if (!IsEligibleForWarmupOnCommonCriteria()) {
+    return;
+  }
+
+  // TODO(robertogden): Actually use the predicted URLs.
+
+  RecordMetricsAndMaybeDoWarmup();
+}
+
+void NavigationPredictorRendererWarmupClient::DoRendererWarmpup() {
+  content::RenderProcessHost::WarmupSpareRenderProcessHost(profile_);
+}
+
+bool NavigationPredictorRendererWarmupClient::BrowserHasSpareRenderer() const {
+  for (content::RenderProcessHost::iterator iter(
+           content::RenderProcessHost::AllHostsIterator());
+       !iter.IsAtEnd(); iter.Advance()) {
+    if (iter.GetCurrentValue()->IsUnused()) {
+      return true;
+    }
+  }
+  return false;
+}
+
+bool NavigationPredictorRendererWarmupClient::
+    IsEligibleForWarmupOnCommonCriteria() const {
+  if (!base::FeatureList::IsEnabled(kNavigationPredictorRendererWarmup)) {
+    return false;
+  }
+
+  base::TimeDelta duration_since_last_warmup =
+      tick_clock_->NowTicks() - last_warmup_time_;
+  if (cooldown_duration_ >= duration_since_last_warmup) {
+    return false;
+  }
+
+  if (mem_threshold_mb_ >= base::SysInfo::AmountOfPhysicalMemoryMB()) {
+    return false;
+  }
+
+  if (BrowserHasSpareRenderer()) {
+    return false;
+  }
+
+  return true;
+}
+
+void NavigationPredictorRendererWarmupClient::RecordMetricsAndMaybeDoWarmup() {
+  last_warmup_time_ = tick_clock_->NowTicks();
+
+  if (counterfactual_) {
+    return;
+  }
+
+  DoRendererWarmpup();
+}
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h
new file mode 100644
index 0000000..2dd1a07
--- /dev/null
+++ b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h
@@ -0,0 +1,72 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NAVIGATION_PREDICTOR_NAVIGATION_PREDICTOR_RENDERER_WARMUP_CLIENT_H_
+#define CHROME_BROWSER_NAVIGATION_PREDICTOR_NAVIGATION_PREDICTOR_RENDERER_WARMUP_CLIENT_H_
+
+#include "base/macros.h"
+#include "base/optional.h"
+#include "base/time/tick_clock.h"
+#include "base/time/time.h"
+#include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h"
+
+class Profile;
+
+// A client of Navigation Predictor that uses predictions to initiate a renderer
+// warmup (in the form of starting a spare renderer process) when it is likely
+// the user will soon do a cross-origin navigation.
+class NavigationPredictorRendererWarmupClient
+    : public NavigationPredictorKeyedService::Observer {
+ public:
+  // If |clock| is null, then the default clock will be used.
+  explicit NavigationPredictorRendererWarmupClient(
+      Profile* profile,
+      const base::TickClock* clock = nullptr);
+  ~NavigationPredictorRendererWarmupClient() override;
+
+  // NavigationPredictorKeyedService::Observer:
+  void OnPredictionUpdated(
+      const base::Optional<NavigationPredictorKeyedService::Prediction>
+          prediction) override;
+
+ protected:
+  // Virtual for testing.
+  virtual void DoRendererWarmpup();
+
+  // Returns true if there is a spare renderer in the browser. Virtual for
+  // testing.
+  virtual bool BrowserHasSpareRenderer() const;
+
+ private:
+  // Checks if there is already a spare renderer or we requested a spare
+  // renderer too recently.
+  bool IsEligibleForWarmupOnCommonCriteria() const;
+
+  // Records class state and metrics before checking |counterfactual_| and then
+  // calling |DoRendererWarmpup| if |counterfactual_| is false.
+  void RecordMetricsAndMaybeDoWarmup();
+
+  Profile* profile_;
+
+  // Whether we are in a counterfactual experiment and so the renderer warmup
+  // should not be done.
+  const bool counterfactual_;
+
+  // The minimum amount of memory the devices is required to have to enable
+  // renderer warmup.
+  const int mem_threshold_mb_;
+
+  // The tick clock used within this class.
+  const base::TickClock* tick_clock_;
+
+  // The timestamp of the last renderer warmup.
+  base::TimeTicks last_warmup_time_;
+
+  // The amount of time to wait in-between doing a renderer warmup.
+  const base::TimeDelta cooldown_duration_;
+
+  DISALLOW_COPY_AND_ASSIGN(NavigationPredictorRendererWarmupClient);
+};
+
+#endif  // CHROME_BROWSER_NAVIGATION_PREDICTOR_NAVIGATION_PREDICTOR_RENDERER_WARMUP_CLIENT_H_
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_browsertest.cc b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_browsertest.cc
new file mode 100644
index 0000000..c19d2a9c
--- /dev/null
+++ b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_browsertest.cc
@@ -0,0 +1,111 @@
+// Copyright 2020 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/test/scoped_feature_list.h"
+#include "build/build_config.h"
+#include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service.h"
+#include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/render_process_host.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_base.h"
+#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/test_utils.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace {
+const base::Feature kNavigationPredictorRendererWarmup{
+    "NavigationPredictorRendererWarmup", base::FEATURE_DISABLED_BY_DEFAULT};
+}
+
+// Occasional flakes on Windows (https://crbug.com/1045971).
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_CHROMEOS)
+#define DISABLE_ON_WIN_MAC_CHROMEOS(x) DISABLED_##x
+#else
+#define DISABLE_ON_WIN_MAC_CHROMEOS(x) x
+#endif
+
+class NavigationPredictorRendererWarmupClientBrowserTest
+    : public InProcessBrowserTest {
+ public:
+  NavigationPredictorRendererWarmupClientBrowserTest() = default;
+  ~NavigationPredictorRendererWarmupClientBrowserTest() override = default;
+
+  void SetUp() override {
+    scoped_feature_list_.InitAndEnableFeature(
+        kNavigationPredictorRendererWarmup);
+    InProcessBrowserTest::SetUp();
+  }
+
+  size_t SpareRendererCount() const {
+    size_t count = 0;
+    for (content::RenderProcessHost::iterator iter(
+             content::RenderProcessHost::AllHostsIterator());
+         !iter.IsAtEnd(); iter.Advance()) {
+      if (iter.GetCurrentValue()->IsUnused()) {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  void MakeSpareRenderer() {
+    content::RenderProcessHost::WarmupSpareRenderProcessHost(
+        browser()->profile());
+  }
+
+  content::WebContents* GetWebContents() const {
+    return browser()->tab_strip_model()->GetActiveWebContents();
+  }
+
+  void MakeEligibleNavigationPrediction() {
+    NavigationPredictorKeyedServiceFactory::GetForProfile(browser()->profile())
+        ->OnPredictionUpdated(
+            GetWebContents(), GURL("https://www.google.com/search?q=test"),
+            NavigationPredictorKeyedService::PredictionSource::
+                kAnchorElementsParsedFromWebPage,
+            {});
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+IN_PROC_BROWSER_TEST_F(NavigationPredictorRendererWarmupClientBrowserTest,
+                       DISABLE_ON_WIN_MAC_CHROMEOS(StartsSpareRenderer)) {
+  // Navigate to a site so that the default renderer is used.
+  embedded_test_server()->ServeFilesFromSourceDirectory("chrome/test/data");
+  ASSERT_TRUE(embedded_test_server()->Start());
+  ui_test_utils::NavigateToURL(browser(),
+                               embedded_test_server()->GetURL("/simple.html"));
+
+  MakeEligibleNavigationPrediction();
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(SpareRendererCount(), 1U);
+}
+
+IN_PROC_BROWSER_TEST_F(NavigationPredictorRendererWarmupClientBrowserTest,
+                       DISABLE_ON_WIN_MAC_CHROMEOS(PreexistingSpareRenderer)) {
+  // Navigate to a site so that the default renderer is used.
+  embedded_test_server()->ServeFilesFromSourceDirectory("chrome/test/data");
+  ASSERT_TRUE(embedded_test_server()->Start());
+  ui_test_utils::NavigateToURL(browser(),
+                               embedded_test_server()->GetURL("/simple.html"));
+
+  MakeSpareRenderer();
+  base::RunLoop().RunUntilIdle();
+  EXPECT_EQ(SpareRendererCount(), 1U);
+
+  MakeEligibleNavigationPrediction();
+  base::RunLoop().RunUntilIdle();
+
+  EXPECT_EQ(SpareRendererCount(), 1U);
+}
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_unittest.cc b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_unittest.cc
new file mode 100644
index 0000000..26ab948
--- /dev/null
+++ b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client_unittest.cc
@@ -0,0 +1,228 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.h"
+
+#include <memory>
+#include <vector>
+
+#include "base/optional.h"
+#include "base/test/scoped_feature_list.h"
+#include "base/test/simple_test_tick_clock.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace {
+
+constexpr char kGoogleSearchURL[] = "https://www.google.com/search?q=test";
+
+const base::Feature kNavigationPredictorRendererWarmup{
+    "NavigationPredictorRendererWarmup", base::FEATURE_DISABLED_BY_DEFAULT};
+
+NavigationPredictorKeyedService::Prediction CreateValidPrediction(
+    const GURL& src_url,
+    const std::vector<GURL>& predicted_urls) {
+  return NavigationPredictorKeyedService::Prediction(
+      nullptr, src_url, base::nullopt,
+      NavigationPredictorKeyedService::PredictionSource::
+          kAnchorElementsParsedFromWebPage,
+      predicted_urls);
+}
+
+class TestNavigationPredictorRendererWarmupClient
+    : public NavigationPredictorRendererWarmupClient {
+ public:
+  TestNavigationPredictorRendererWarmupClient(Profile* profile,
+                                              const base::TickClock* clock)
+      : NavigationPredictorRendererWarmupClient(profile, clock) {}
+  ~TestNavigationPredictorRendererWarmupClient() override = default;
+
+  bool DidDoRendererWarmup() const { return did_renderer_warmup_; }
+
+  void Reset() { did_renderer_warmup_ = false; }
+
+  void SetBrowserHasSpareRenderer(bool has_spare) { has_spare_ = has_spare; }
+
+ protected:
+  void DoRendererWarmpup() override { did_renderer_warmup_ = true; }
+  bool BrowserHasSpareRenderer() const override { return has_spare_; }
+
+ private:
+  bool did_renderer_warmup_ = false;
+  bool has_spare_ = false;
+};
+
+class NavigationPredictorRendererWarmupClientTest
+    : public ChromeRenderViewHostTestHarness {
+ public:
+  NavigationPredictorRendererWarmupClientTest() = default;
+  ~NavigationPredictorRendererWarmupClientTest() override = default;
+
+  void SetUp() override {
+    ChromeRenderViewHostTestHarness::SetUp();
+
+    TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
+        profile(),
+        base::BindRepeating(&TemplateURLServiceFactory::BuildInstanceFor));
+
+    // Set the clock to a non-zero value.
+    clock_.SetNowTicks(base::TimeTicks::Now());
+  }
+
+  TestNavigationPredictorRendererWarmupClient* client() {
+    if (!client_) {
+      client_ = std::make_unique<TestNavigationPredictorRendererWarmupClient>(
+          profile(), &clock_);
+    }
+    return client_.get();
+  }
+
+  base::SimpleTestTickClock* clock() { return &clock_; }
+
+ private:
+  base::SimpleTestTickClock clock_;
+  std::unique_ptr<TestNavigationPredictorRendererWarmupClient> client_;
+};
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, SuccessCase) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_TRUE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, SuccessCase_AfterCooldown) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "100"},
+                                          });
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_TRUE(client()->DidDoRendererWarmup());
+
+  client()->Reset();
+
+  clock()->Advance(base::TimeDelta::FromMilliseconds(101));
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_TRUE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, NullPrediction) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->OnPredictionUpdated(base::nullopt);
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, BadPredictionSrc) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->OnPredictionUpdated(NavigationPredictorKeyedService::Prediction(
+      nullptr, base::nullopt, std::vector<std::string>{""},
+      NavigationPredictorKeyedService::PredictionSource::kExternalAndroidApp,
+      {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, CoolDown) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_TRUE(client()->DidDoRendererWarmup());
+
+  client()->Reset();
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, HasSpareRenderer) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "false"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->SetBrowserHasSpareRenderer(true);
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, FeatureOff) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(kNavigationPredictorRendererWarmup);
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, Counterfactual) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup, {
+                                              {"counterfactual", "true"},
+                                              {"mem_threshold_mb", "0"},
+                                              {"cooldown_duration_ms", "60000"},
+                                          });
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+TEST_F(NavigationPredictorRendererWarmupClientTest, MemThreshold) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeatureWithParameters(
+      kNavigationPredictorRendererWarmup,
+      {
+          {"counterfactual", "true"},
+          {"mem_threshold_mb", "99999999999"},
+          {"cooldown_duration_ms", "60000"},
+      });
+
+  client()->OnPredictionUpdated(
+      CreateValidPrediction(GURL(kGoogleSearchURL), {}));
+  EXPECT_FALSE(client()->DidDoRendererWarmup());
+}
+
+}  // namespace
diff --git a/chrome/browser/nearby_sharing/certificates/common_unittest.cc b/chrome/browser/nearby_sharing/certificates/common_unittest.cc
index 226e565..cb8d46d86 100644
--- a/chrome/browser/nearby_sharing/certificates/common_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/common_unittest.cc
@@ -68,7 +68,8 @@
 TEST(NearbyShareCertificatesCommonTest, ValidityPeriod_PublicCertificate) {
   NearbyShareDecryptedPublicCertificate cert =
       *NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
+          GetNearbyShareTestPublicCertificate(
+              NearbyShareVisibility::kAllContacts),
           GetNearbyShareTestEncryptedMetadataKey());
   const bool use_public_certificate_tolerance = true;
 
diff --git a/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.cc b/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.cc
index ec8b5db..8f4cb202 100644
--- a/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.cc
+++ b/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.cc
@@ -50,6 +50,13 @@
   return GetNearbyShareTestPrivateCertificate(visibility);
 }
 
+std::vector<nearbyshare::proto::PublicCertificate>
+FakeNearbyShareCertificateManager::GetPrivateCertificatesAsPublicCertificates(
+    NearbyShareVisibility visibility) {
+  ++num_get_private_certificates_as_public_certificates_calls_;
+  return GetNearbyShareTestPublicCertificateList(visibility);
+}
+
 void FakeNearbyShareCertificateManager::GetDecryptedPublicCertificate(
     NearbyShareEncryptedMetadataKey encrypted_metadata_key,
     CertDecryptedCallback callback) {
diff --git a/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.h b/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.h
index 9f3f800..276b36e 100644
--- a/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.h
+++ b/chrome/browser/nearby_sharing/certificates/fake_nearby_share_certificate_manager.h
@@ -13,6 +13,7 @@
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.h"
+#include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h"
 
 // A fake implementation of NearbyShareCertificateManager, along with a fake
 // factory, to be used in tests.
@@ -64,6 +65,9 @@
   // NearbyShareCertificateManager:
   NearbySharePrivateCertificate GetValidPrivateCertificate(
       NearbyShareVisibility visibility) override;
+  std::vector<nearbyshare::proto::PublicCertificate>
+  GetPrivateCertificatesAsPublicCertificates(
+      NearbyShareVisibility visibility) override;
   void GetDecryptedPublicCertificate(
       NearbyShareEncryptedMetadataKey encrypted_metadata_key,
       CertDecryptedCallback callback) override;
@@ -77,6 +81,10 @@
     return num_get_valid_private_certificate_calls_;
   }
 
+  size_t num_get_private_certificates_as_public_certificates_calls() {
+    return num_get_private_certificates_as_public_certificates_calls_;
+  }
+
   size_t num_download_public_certificates_calls() {
     return num_download_public_certificates_calls_;
   }
@@ -92,6 +100,7 @@
   void OnStop() override;
 
   size_t num_get_valid_private_certificate_calls_ = 0;
+  size_t num_get_private_certificates_as_public_certificates_calls_ = 0;
   size_t num_download_public_certificates_calls_ = 0;
   std::vector<GetDecryptedPublicCertificateCall>
       get_decrypted_public_certificate_calls_;
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager.h b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager.h
index 70ba07f..35a11757 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager.h
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager.h
@@ -5,6 +5,8 @@
 #ifndef CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_CERTIFICATE_MANAGER_H_
 #define CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_CERTIFICATE_MANAGER_H_
 
+#include <vector>
+
 #include "base/callback.h"
 #include "base/observer_list.h"
 #include "base/observer_list_types.h"
@@ -13,6 +15,7 @@
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h"
+#include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h"
 
 // The Nearby Share certificate manager maintains the local device's private
 // certificates and contacts' public certificates. The manager communicates with
@@ -50,6 +53,16 @@
   virtual NearbySharePrivateCertificate GetValidPrivateCertificate(
       NearbyShareVisibility visibility) = 0;
 
+  // Returns all local device private certificates of |visibility| converted to
+  // public certificates. The public certificates' for_selected_contacts fields
+  // will be set to reflect the |visibility|. NOTE: Only certificates with the
+  // requested visibility will be returned; if selected-contacts visibility is
+  // passed in, the all-contacts visibility certificates will *not* be returned
+  // as well.
+  virtual std::vector<nearbyshare::proto::PublicCertificate>
+  GetPrivateCertificatesAsPublicCertificates(
+      NearbyShareVisibility visibility) = 0;
+
   // Returns in |callback| the public certificate that is able to be decrypted
   // using |encrypted_metadata_key|, and returns base::nullopt if no such public
   // certificate exists.
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
index 3163507..e4cfd0967 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.cc
@@ -46,6 +46,13 @@
                                        nearbyshare::proto::EncryptedMetadata());
 }
 
+std::vector<nearbyshare::proto::PublicCertificate>
+NearbyShareCertificateManagerImpl::GetPrivateCertificatesAsPublicCertificates(
+    NearbyShareVisibility visibility) {
+  NOTIMPLEMENTED();
+  return std::vector<nearbyshare::proto::PublicCertificate>();
+}
+
 void NearbyShareCertificateManagerImpl::GetDecryptedPublicCertificate(
     NearbyShareEncryptedMetadataKey encrypted_metadata_key,
     CertDecryptedCallback callback) {
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.h b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.h
index 8c73d47..a860de8 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.h
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager_impl.h
@@ -6,11 +6,13 @@
 #define CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_CERTIFICATE_MANAGER_IMPL_H_
 
 #include <memory>
+#include <vector>
 
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_certificate_manager.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate.h"
 #include "chrome/browser/nearby_sharing/certificates/nearby_share_visibility.h"
+#include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h"
 
 // TODO(nohle): Add description after class is fully implemented.
 class NearbyShareCertificateManagerImpl : public NearbyShareCertificateManager {
@@ -36,6 +38,9 @@
   // NearbyShareCertificateManager:
   NearbySharePrivateCertificate GetValidPrivateCertificate(
       NearbyShareVisibility visibility) override;
+  std::vector<nearbyshare::proto::PublicCertificate>
+  GetPrivateCertificatesAsPublicCertificates(
+      NearbyShareVisibility visibility) override;
   void GetDecryptedPublicCertificate(
       NearbyShareEncryptedMetadataKey encrypted_metadata_key,
       CertDecryptedCallback callback) override;
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
index ee8b95a..dd60d31 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_decrypted_public_certificate_unittest.cc
@@ -10,23 +10,31 @@
 #include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace {
+
+// The for_selected_contacts field of a public certificate proto is irrelevant
+// for remote device certificates. Even if set, it is meaningless. It only has
+// meaning for private certificates converted to public certificates and
+// uploaded to the Nearby server.
+const NearbyShareVisibility kTestPublicCertificateVisibility =
+    NearbyShareVisibility::kNoOne;
+
+}  // namespace
+
 TEST(NearbyShareDecryptedPublicCertificateTest, Decrypt) {
+  nearbyshare::proto::PublicCertificate proto_cert =
+      GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility);
+
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
       NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
-          GetNearbyShareTestEncryptedMetadataKey());
+          proto_cert, GetNearbyShareTestEncryptedMetadataKey());
   EXPECT_TRUE(cert);
-  EXPECT_EQ(
-      base::Time::FromJavaTime(
-          GetNearbyShareTestPublicCertificate().start_time().seconds() * 1000),
-      cert->not_before());
-  EXPECT_EQ(
-      base::Time::FromJavaTime(
-          GetNearbyShareTestPublicCertificate().end_time().seconds() * 1000),
-      cert->not_after());
-  EXPECT_EQ(std::vector<uint8_t>(
-                GetNearbyShareTestPublicCertificate().secret_id().begin(),
-                GetNearbyShareTestPublicCertificate().secret_id().end()),
+  EXPECT_EQ(base::Time::FromJavaTime(proto_cert.start_time().seconds() * 1000),
+            cert->not_before());
+  EXPECT_EQ(base::Time::FromJavaTime(proto_cert.end_time().seconds() * 1000),
+            cert->not_after());
+  EXPECT_EQ(std::vector<uint8_t>(proto_cert.secret_id().begin(),
+                                 proto_cert.secret_id().end()),
             cert->id());
   EXPECT_EQ(GetNearbyShareTestMetadata().SerializeAsString(),
             cert->unencrypted_metadata().SerializeAsString());
@@ -35,7 +43,7 @@
 TEST(NearbyShareDecryptedPublicCertificateTest, Decrypt_IncorrectKeyFailure) {
   // Input incorrect metadata encryption key.
   EXPECT_FALSE(NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-      GetNearbyShareTestPublicCertificate(),
+      GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility),
       NearbyShareEncryptedMetadataKey(
           std::vector<uint8_t>(kNearbyShareNumBytesMetadataEncryptionKeySalt,
                                0x00),
@@ -47,7 +55,7 @@
      Decrypt_MetadataDecryptionFailure) {
   // Use metadata that cannot be decrypted with the given key.
   nearbyshare::proto::PublicCertificate proto_cert =
-      GetNearbyShareTestPublicCertificate();
+      GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility);
   proto_cert.set_encrypted_metadata_bytes("invalid metadata");
   EXPECT_FALSE(NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
       proto_cert, GetNearbyShareTestEncryptedMetadataKey()));
@@ -57,7 +65,7 @@
   // Do not accept the input PublicCertificate because the validity period does
   // not make sense.
   nearbyshare::proto::PublicCertificate proto_cert =
-      GetNearbyShareTestPublicCertificate();
+      GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility);
   proto_cert.mutable_end_time()->set_seconds(proto_cert.start_time().seconds() -
                                              1);
   EXPECT_FALSE(NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
@@ -67,7 +75,7 @@
 TEST(NearbyShareDecryptedPublicCertificateTest, Verify) {
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
       NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
+          GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility),
           GetNearbyShareTestEncryptedMetadataKey());
   EXPECT_TRUE(cert->VerifySignature(GetNearbyShareTestPayloadToSign(),
                                     GetNearbyShareTestSampleSignature()));
@@ -76,7 +84,7 @@
 TEST(NearbyShareDecryptedPublicCertificateTest, Verify_InitFailure) {
   // Public key has invalid SubjectPublicKeyInfo format.
   nearbyshare::proto::PublicCertificate proto_cert =
-      GetNearbyShareTestPublicCertificate();
+      GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility);
   proto_cert.set_public_key("invalid public key");
 
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
@@ -90,7 +98,7 @@
 TEST(NearbyShareDecryptedPublicCertificateTest, Verify_WrongSignature) {
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
       NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
+          GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility),
           GetNearbyShareTestEncryptedMetadataKey());
   EXPECT_FALSE(
       cert->VerifySignature(GetNearbyShareTestPayloadToSign(),
@@ -100,7 +108,7 @@
 TEST(NearbyShareDecryptedPublicCertificateTest, HashAuthenticationToken) {
   base::Optional<NearbyShareDecryptedPublicCertificate> cert =
       NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
+          GetNearbyShareTestPublicCertificate(kTestPublicCertificateVisibility),
           GetNearbyShareTestEncryptedMetadataKey());
   EXPECT_EQ(GetNearbyShareTestPayloadHashUsingSecretKey(),
             cert->HashAuthenticationToken(GetNearbyShareTestPayloadToSign()));
diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate_unittest.cc b/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate_unittest.cc
index 4d79060..6e5b9c0f 100644
--- a/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate_unittest.cc
+++ b/chrome/browser/nearby_sharing/certificates/nearby_share_private_certificate_unittest.cc
@@ -104,12 +104,15 @@
 
 TEST(NearbySharePrivateCertificateTest, PublicCertificateConversion) {
   NearbySharePrivateCertificate private_certificate =
-      GetNearbyShareTestPrivateCertificate(NearbyShareVisibility::kAllContacts);
+      GetNearbyShareTestPrivateCertificate(
+          NearbyShareVisibility::kSelectedContacts);
   private_certificate.offset_for_testing() = GetNearbyShareTestValidityOffset();
   base::Optional<nearbyshare::proto::PublicCertificate> public_certificate =
       private_certificate.ToPublicCertificate();
   ASSERT_TRUE(public_certificate);
-  EXPECT_EQ(GetNearbyShareTestPublicCertificate().SerializeAsString(),
+  EXPECT_EQ(GetNearbyShareTestPublicCertificate(
+                NearbyShareVisibility::kSelectedContacts)
+                .SerializeAsString(),
             public_certificate->SerializeAsString());
 }
 
diff --git a/chrome/browser/nearby_sharing/certificates/test_util.cc b/chrome/browser/nearby_sharing/certificates/test_util.cc
index d73b5f9..b664e6c 100644
--- a/chrome/browser/nearby_sharing/certificates/test_util.cc
+++ b/chrome/browser/nearby_sharing/certificates/test_util.cc
@@ -229,10 +229,11 @@
 }
 
 NearbySharePrivateCertificate GetNearbyShareTestPrivateCertificate(
-    NearbyShareVisibility visibility) {
+    NearbyShareVisibility visibility,
+    base::Time not_before) {
   NearbySharePrivateCertificate cert(
-      visibility, GetNearbyShareTestNotBefore(),
-      GetNearbyShareTestNotBefore() + kNearbyShareCertificateValidityPeriod,
+      visibility, not_before,
+      not_before + kNearbyShareCertificateValidityPeriod,
       GetNearbyShareTestP256KeyPair(), GetNearbyShareTestSecretKey(),
       GetNearbyShareTestMetadataEncryptionKey(),
       GetNearbyShareTestCertificateId(), GetNearbyShareTestMetadata(),
@@ -241,49 +242,64 @@
   return cert;
 }
 
-const nearbyshare::proto::PublicCertificate&
-GetNearbyShareTestPublicCertificate() {
-  static const base::NoDestructor<nearbyshare::proto::PublicCertificate> cert(
-      [] {
-        nearbyshare::proto::PublicCertificate cert;
-        cert.set_secret_id(
-            std::string(GetNearbyShareTestCertificateId().begin(),
-                        GetNearbyShareTestCertificateId().end()));
-        cert.set_secret_key(GetNearbyShareTestSecretKey()->key());
-        cert.set_public_key(
-            std::string(GetNearbyShareTestP256PublicKey().begin(),
-                        GetNearbyShareTestP256PublicKey().end()));
-        cert.mutable_start_time()->set_seconds(
-            (GetNearbyShareTestNotBefore() - GetNearbyShareTestValidityOffset())
-                .ToJavaTime() /
-            1000);
-        cert.mutable_end_time()->set_seconds(
-            (GetNearbyShareTestNotBefore() +
-             kNearbyShareCertificateValidityPeriod +
-             GetNearbyShareTestValidityOffset())
-                .ToJavaTime() /
-            1000);
-        cert.set_for_selected_contacts(false);
-        cert.set_metadata_encryption_key(
-            std::string(GetNearbyShareTestMetadataEncryptionKey().begin(),
-                        GetNearbyShareTestMetadataEncryptionKey().end()));
-        cert.set_encrypted_metadata_bytes(
-            std::string(GetNearbyShareTestEncryptedMetadata().begin(),
-                        GetNearbyShareTestEncryptedMetadata().end()));
-        cert.set_metadata_encryption_key_tag(
-            std::string(GetNearbyShareTestMetadataEncryptionKeyTag().begin(),
-                        GetNearbyShareTestMetadataEncryptionKeyTag().end()));
+nearbyshare::proto::PublicCertificate GetNearbyShareTestPublicCertificate(
+    NearbyShareVisibility visibility,
+    base::Time not_before) {
+  nearbyshare::proto::PublicCertificate cert;
+  cert.set_secret_id(std::string(GetNearbyShareTestCertificateId().begin(),
+                                 GetNearbyShareTestCertificateId().end()));
+  cert.set_secret_key(GetNearbyShareTestSecretKey()->key());
+  cert.set_public_key(std::string(GetNearbyShareTestP256PublicKey().begin(),
+                                  GetNearbyShareTestP256PublicKey().end()));
+  cert.mutable_start_time()->set_seconds(
+      (not_before - GetNearbyShareTestValidityOffset()).ToJavaTime() / 1000);
+  cert.mutable_end_time()->set_seconds((not_before +
+                                        kNearbyShareCertificateValidityPeriod +
+                                        GetNearbyShareTestValidityOffset())
+                                           .ToJavaTime() /
+                                       1000);
+  cert.set_for_selected_contacts(visibility ==
+                                 NearbyShareVisibility::kSelectedContacts);
+  cert.set_metadata_encryption_key(
+      std::string(GetNearbyShareTestMetadataEncryptionKey().begin(),
+                  GetNearbyShareTestMetadataEncryptionKey().end()));
+  cert.set_encrypted_metadata_bytes(
+      std::string(GetNearbyShareTestEncryptedMetadata().begin(),
+                  GetNearbyShareTestEncryptedMetadata().end()));
+  cert.set_metadata_encryption_key_tag(
+      std::string(GetNearbyShareTestMetadataEncryptionKeyTag().begin(),
+                  GetNearbyShareTestMetadataEncryptionKeyTag().end()));
+  return cert;
+}
 
-        return cert;
-      }());
-  return *cert;
+std::vector<NearbySharePrivateCertificate>
+GetNearbyShareTestPrivateCertificateList(NearbyShareVisibility visibility) {
+  std::vector<NearbySharePrivateCertificate> list;
+  for (size_t i = 0; i < kNearbyShareNumPrivateCertificates; ++i) {
+    list.push_back(GetNearbyShareTestPrivateCertificate(
+        visibility, GetNearbyShareTestNotBefore() +
+                        i * kNearbyShareCertificateValidityPeriod));
+  }
+  return list;
+}
+
+std::vector<nearbyshare::proto::PublicCertificate>
+GetNearbyShareTestPublicCertificateList(NearbyShareVisibility visibility) {
+  std::vector<nearbyshare::proto::PublicCertificate> list;
+  for (size_t i = 0; i < kNearbyShareNumPrivateCertificates; ++i) {
+    list.push_back(GetNearbyShareTestPublicCertificate(
+        visibility, GetNearbyShareTestNotBefore() +
+                        i * kNearbyShareCertificateValidityPeriod));
+  }
+  return list;
 }
 
 const NearbyShareDecryptedPublicCertificate&
 GetNearbyShareTestDecryptedPublicCertificate() {
   static const base::NoDestructor<NearbyShareDecryptedPublicCertificate> cert(
       *NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-          GetNearbyShareTestPublicCertificate(),
+          GetNearbyShareTestPublicCertificate(
+              NearbyShareVisibility::kAllContacts),
           GetNearbyShareTestEncryptedMetadataKey()));
   return *cert;
 }
diff --git a/chrome/browser/nearby_sharing/certificates/test_util.h b/chrome/browser/nearby_sharing/certificates/test_util.h
index 132fca5..93fae80 100644
--- a/chrome/browser/nearby_sharing/certificates/test_util.h
+++ b/chrome/browser/nearby_sharing/certificates/test_util.h
@@ -42,10 +42,18 @@
 const std::vector<uint8_t>& GetNearbyShareTestPayloadHashUsingSecretKey();
 
 NearbySharePrivateCertificate GetNearbyShareTestPrivateCertificate(
-    NearbyShareVisibility visibility);
+    NearbyShareVisibility visibility,
+    base::Time not_before = GetNearbyShareTestNotBefore());
+nearbyshare::proto::PublicCertificate GetNearbyShareTestPublicCertificate(
+    NearbyShareVisibility visibility,
+    base::Time not_before = GetNearbyShareTestNotBefore());
 
-const nearbyshare::proto::PublicCertificate&
-GetNearbyShareTestPublicCertificate();
+// Returns a list of |kNearbyShareNumPrivateCertificates| private/public
+// certificates, spanning contiguous validity periods.
+std::vector<NearbySharePrivateCertificate>
+GetNearbyShareTestPrivateCertificateList(NearbyShareVisibility visibility);
+std::vector<nearbyshare::proto::PublicCertificate>
+GetNearbyShareTestPublicCertificateList(NearbyShareVisibility visibility);
 
 const NearbyShareDecryptedPublicCertificate&
 GetNearbyShareTestDecryptedPublicCertificate();
diff --git a/chrome/browser/nearby_sharing/client/nearby_share_api_call_flow_impl.cc b/chrome/browser/nearby_sharing/client/nearby_share_api_call_flow_impl.cc
index cb250175..dfb9082 100644
--- a/chrome/browser/nearby_sharing/client/nearby_share_api_call_flow_impl.cc
+++ b/chrome/browser/nearby_sharing/client/nearby_share_api_call_flow_impl.cc
@@ -93,7 +93,7 @@
           request_url_, key_value_pair.first, key_value_pair.second);
     }
   }
-
+  NS_LOG(VERBOSE) << "Creating Nearby Share HTTP URL: " << request_url_;
   return request_url_;
 }
 
diff --git a/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc b/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc
index f3ec661..8b9c774 100644
--- a/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc
+++ b/chrome/browser/nearby_sharing/client/nearby_share_client_impl.cc
@@ -31,11 +31,10 @@
 // -------------------- Nearby Share Service v1 Endpoints --------------------
 
 const char kDefaultNearbyShareV1HTTPHost[] =
-    "https://www.nearbysharing-pa.googleapis.com";
+    "https://nearbysharing-pa.googleapis.com";
 
 const char kNearbyShareV1Path[] = "v1/";
 
-const char kUpdateDevicePath[] = "users/me/devices/";
 const char kCheckContactsReachabilityPath[] = "contactsReachability:check";
 const char kListContactPeoplePathSeg1[] = "users/me/devices/";
 const char kListContactPeoplePathSeg2[] = "/contactRecords";
@@ -46,8 +45,8 @@
 const char kPageToken[] = "page_token";
 const char kSecretIds[] = "secret_ids";
 
-// TODO(cclem) figure out scope
-const char kNearbyShareOAuth2Scope[] = "";
+const char kNearbyShareOAuth2Scope[] =
+    "https://www.googleapis.com/auth/nearbysharing-pa";
 
 // Creates the full Nearby Share v1 URL for endpoint to the API with
 // |request_path|.
@@ -236,9 +235,8 @@
     UpdateDeviceCallback&& callback,
     ErrorCallback&& error_callback) {
   notifier_->NotifyOfRequest(request);
-  // TODO(cclem): Use correct device identifier
-  MakeApiCall(CreateV1RequestUrl(kUpdateDevicePath + request.device().name()),
-              RequestType::kPatch, request.SerializeAsString(),
+  MakeApiCall(CreateV1RequestUrl(request.device().name()), RequestType::kPatch,
+              request.SerializeAsString(),
               /*request_as_query_parameters=*/base::nullopt,
               std::move(callback), std::move(error_callback),
               GetUpdateDeviceAnnotation());
diff --git a/chrome/browser/nearby_sharing/client/nearby_share_client_impl_unittest.cc b/chrome/browser/nearby_sharing/client/nearby_share_client_impl_unittest.cc
index d3a2f63a..222bbf7 100644
--- a/chrome/browser/nearby_sharing/client/nearby_share_client_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/client/nearby_share_client_impl_unittest.cc
@@ -37,7 +37,7 @@
 const char kAccountName1[] = "accountname1";
 const char kContactId1[] = "contactid1";
 const char kContactId2[] = "contactid2";
-const char kDeviceName1[] = "devicename1";
+const char kDeviceName1[] = "users/me/devices/devicename1";
 const char kDeviceParent1[] = "kdeviceparent1";
 const char kEmail[] = "test@gmail.com";
 const char kEncryptedMetadataBytes1[] = "encryptedmetadatabytes1";
@@ -381,10 +381,8 @@
   VerifyRequestNotification(request_proto);
 
   EXPECT_EQ(kPatch, http_method());
-  EXPECT_EQ(request_url(),
-            GURL("https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/"
-                 "devices/" +
-                 std::string(kDeviceName1)));
+  EXPECT_EQ(request_url(), GURL(std::string(kTestGoogleApisUrl) + "/v1/" +
+                                std::string(kDeviceName1)));
 
   nearbyshare::proto::UpdateDeviceRequest expected_request;
   EXPECT_TRUE(expected_request.ParseFromString(serialized_request()));
@@ -441,10 +439,8 @@
           kAccessToken, base::Time::Max());
 
   EXPECT_EQ(kPatch, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceName1));
+  EXPECT_EQ(request_url(), GURL(std::string(kTestGoogleApisUrl) + "/v1/" +
+                                std::string(kDeviceName1)));
 
   FailApiCallFlow(NearbyShareHttpError::kInternalServerError);
   EXPECT_EQ(NearbyShareHttpError::kInternalServerError, error);
@@ -470,8 +466,7 @@
 
   EXPECT_EQ(kPost, http_method());
   EXPECT_EQ(request_url(),
-            "https://www.nearbysharing-pa.testgoogleapis.com/v1/"
-            "contactsReachability:check");
+            std::string(kTestGoogleApisUrl) + "/v1/contactsReachability:check");
 
   nearbyshare::proto::CheckContactsReachabilityRequest expected_request;
   EXPECT_TRUE(expected_request.ParseFromString(serialized_request()));
@@ -515,8 +510,7 @@
 
   EXPECT_EQ(kPost, http_method());
   EXPECT_EQ(request_url(),
-            "https://www.nearbysharing-pa.testgoogleapis.com/v1/"
-            "contactsReachability:check");
+            std::string(kTestGoogleApisUrl) + "/v1/contactsReachability:check");
 
   FailApiCallFlow(NearbyShareHttpError::kAuthenticationError);
   EXPECT_EQ(NearbyShareHttpError::kAuthenticationError, error);
@@ -542,10 +536,9 @@
   VerifyRequestNotification(request_proto);
 
   EXPECT_EQ(kGet, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceParent1) + "/contactRecords");
+  EXPECT_EQ(request_url(), std::string(kTestGoogleApisUrl) +
+                               "/v1/users/me/devices/" +
+                               std::string(kDeviceParent1) + "/contactRecords");
 
   EXPECT_EQ(
       std::vector<std::string>{base::NumberToString(kPageSize1)},
@@ -603,10 +596,9 @@
   VerifyRequestNotification(request_proto);
 
   EXPECT_EQ(kGet, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceParent1) + "/publicCertificates");
+  EXPECT_EQ(request_url(),
+            std::string(kTestGoogleApisUrl) + "/v1/users/me/devices/" +
+                std::string(kDeviceParent1) + "/publicCertificates");
 
   EXPECT_EQ(
       std::vector<std::string>{base::NumberToString(kPageSize1)},
@@ -694,10 +686,8 @@
           kAccessToken, base::Time::Max());
 
   EXPECT_EQ(kPatch, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceName1));
+  EXPECT_EQ(request_url(), std::string(kTestGoogleApisUrl) + "/v1/" +
+                               std::string(kDeviceName1));
 
   FinishApiCallFlowRaw("Not a valid serialized response message.");
   EXPECT_EQ(NearbyShareHttpError::kResponseMalformed, error);
@@ -720,10 +710,8 @@
           kAccessToken, base::Time::Max());
 
   EXPECT_EQ(kPatch, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceName1));
+  EXPECT_EQ(request_url(), std::string(kTestGoogleApisUrl) + "/v1/" +
+                               std::string(kDeviceName1));
 
   // With request pending, make second request.
   {
@@ -763,10 +751,8 @@
             kAccessToken, base::Time::Max());
 
     EXPECT_EQ(kPatch, http_method());
-    EXPECT_EQ(
-        request_url(),
-        "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-            std::string(kDeviceName1));
+    EXPECT_EQ(request_url(), std::string(kTestGoogleApisUrl) + "/v1/" +
+                                 std::string(kDeviceName1));
 
     nearbyshare::proto::UpdateDeviceResponse response_proto;
     response_proto.mutable_device()->set_name(kDeviceName1);
@@ -803,10 +789,8 @@
           kAccessToken, base::Time::Max());
 
   EXPECT_EQ(kPatch, http_method());
-  EXPECT_EQ(
-      request_url(),
-      "https://www.nearbysharing-pa.testgoogleapis.com/v1/users/me/devices/" +
-          std::string(kDeviceName1));
+  EXPECT_EQ(request_url(), std::string(kTestGoogleApisUrl) + "/v1/" +
+                               std::string(kDeviceName1));
 
   EXPECT_EQ(kAccessToken, client_->GetAccessTokenUsed());
 }
diff --git a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
index 85786e33..9934a99 100644
--- a/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
+++ b/chrome/browser/nearby_sharing/nearby_sharing_service_impl_unittest.cc
@@ -30,6 +30,7 @@
 #include "chrome/browser/nearby_sharing/mock_nearby_process_manager.h"
 #include "chrome/browser/nearby_sharing/mock_nearby_sharing_decoder.h"
 #include "chrome/browser/nearby_sharing/nearby_connections_manager.h"
+#include "chrome/browser/nearby_sharing/proto/rpc_resources.pb.h"
 #include "chrome/browser/notifications/notification_display_service_factory.h"
 #include "chrome/browser/notifications/notification_display_service_tester.h"
 #include "chrome/services/sharing/public/cpp/advertisement.h"
@@ -317,7 +318,8 @@
     if (success) {
       std::move(calls.back().callback)
           .Run(NearbyShareDecryptedPublicCertificate::DecryptPublicCertificate(
-              GetNearbyShareTestPublicCertificate(),
+              GetNearbyShareTestPublicCertificate(
+                  NearbyShareVisibility::kAllContacts),
               GetNearbyShareTestEncryptedMetadataKey()));
     } else {
       std::move(calls.back().callback).Run(base::nullopt);
diff --git a/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc b/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc
index 6449d26..a967194 100644
--- a/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc
+++ b/chrome/browser/optimization_guide/android/optimization_guide_bridge.cc
@@ -124,6 +124,7 @@
   optimization_guide_keyed_service_->GetHintsManager()
       ->CanApplyOptimizationAsync(
           GURL(ConvertJavaStringToUTF8(env, url)),
+          /*navigation_id=*/base::nullopt,
           static_cast<optimization_guide::proto::OptimizationType>(
               optimization_type),
           base::BindOnce(&OnOptimizationGuideDecision,
diff --git a/chrome/browser/optimization_guide/android/optimization_guide_bridge_unittest.cc b/chrome/browser/optimization_guide/android/optimization_guide_bridge_unittest.cc
index ef502a1..c45cc7a5 100644
--- a/chrome/browser/optimization_guide/android/optimization_guide_bridge_unittest.cc
+++ b/chrome/browser/optimization_guide/android/optimization_guide_bridge_unittest.cc
@@ -26,6 +26,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 using ::testing::ByRef;
+using ::testing::Eq;
 using ::testing::Return;
 using ::testing::UnorderedElementsAre;
 
@@ -49,8 +50,9 @@
                                       /*top_host_provider=*/nullptr,
                                       /*url_loader_factory=*/nullptr) {}
   ~MockOptimizationGuideHintsManager() override = default;
-  MOCK_METHOD3(CanApplyOptimizationAsync,
+  MOCK_METHOD4(CanApplyOptimizationAsync,
                void(const GURL&,
+                    const base::Optional<int64_t>&,
                     optimization_guide::proto::OptimizationType,
                     optimization_guide::OptimizationGuideDecisionCallback));
 };
@@ -168,10 +170,10 @@
   metadata.set_performance_hints_metadata(hints_metadata);
   EXPECT_CALL(
       *optimization_guide_hints_manager_,
-      CanApplyOptimizationAsync(GURL("https://example.com/"),
+      CanApplyOptimizationAsync(GURL("https://example.com/"), Eq(base::nullopt),
                                 optimization_guide::proto::PERFORMANCE_HINTS,
                                 base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<2>(
+      .WillOnce(base::test::RunOnceCallback<3>(
           optimization_guide::OptimizationGuideDecision::kTrue,
           ByRef(metadata)));
 
diff --git a/chrome/browser/optimization_guide/optimization_guide_hints_manager.cc b/chrome/browser/optimization_guide/optimization_guide_hints_manager.cc
index 8c246642..d9c2f49 100644
--- a/chrome/browser/optimization_guide/optimization_guide_hints_manager.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_hints_manager.cc
@@ -51,6 +51,10 @@
 #include "components/prefs/scoped_user_pref_update.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/navigation_handle.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+#include "services/metrics/public/cpp/ukm_recorder.h"
+#include "services/metrics/public/cpp/ukm_source.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 
 namespace {
@@ -124,7 +128,11 @@
     const google::protobuf::RepeatedPtrField<
         optimization_guide::proto::Optimization>& optimizations,
     optimization_guide::proto::OptimizationType optimization_type,
-    optimization_guide::OptimizationMetadata* optimization_metadata) {
+    optimization_guide::OptimizationMetadata* optimization_metadata,
+    base::Optional<int64_t>* tuning_version) {
+  DCHECK(tuning_version);
+  *tuning_version = base::nullopt;
+
   for (const auto& optimization : optimizations) {
     if (optimization_type != optimization.optimization_type())
       continue;
@@ -134,6 +142,9 @@
       continue;
     }
 
+    if (optimization.has_tuning_version())
+      *tuning_version = optimization.tuning_version();
+
     // We found an optimization that can be applied. Populate optimization
     // metadata if applicable and return.
     if (optimization_metadata) {
@@ -174,6 +185,25 @@
   return false;
 }
 
+// Logs an OptimizationAutotuning event for the navigation with |navigation_id|,
+// if |navigation_id| and |tuning_version| are non-null.
+void MaybeLogOptimizationAutotuningUKMForNavigation(
+    base::Optional<int64_t> navigation_id,
+    optimization_guide::proto::OptimizationType optimization_type,
+    base::Optional<int64_t> tuning_version) {
+  if (!navigation_id || !tuning_version) {
+    // Only log if we can correlate the tuning event with a navigation.
+    return;
+  }
+
+  ukm::SourceId ukm_source_id =
+      ukm::ConvertToSourceId(*navigation_id, ukm::SourceIdType::NAVIGATION_ID);
+  ukm::builders::OptimizationGuideAutotuning builder(ukm_source_id);
+  builder.SetOptimizationType(optimization_type)
+      .SetTuningVersion(*tuning_version)
+      .Record(ukm::UkmRecorder::Get());
+}
+
 // Util class for recording whether a hints fetch race against the current
 // navigation was attempted. The result is recorded when it goes out of scope
 // and its destructor is called.
@@ -981,13 +1011,15 @@
 
 void OptimizationGuideHintsManager::CanApplyOptimizationAsync(
     const GURL& navigation_url,
+    const base::Optional<int64_t>& navigation_id,
     optimization_guide::proto::OptimizationType optimization_type,
     optimization_guide::OptimizationGuideDecisionCallback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   optimization_guide::OptimizationMetadata metadata;
   optimization_guide::OptimizationTypeDecision type_decision =
-      CanApplyOptimization(navigation_url, optimization_type, &metadata);
+      CanApplyOptimization(navigation_url, navigation_id, optimization_type,
+                           &metadata);
   optimization_guide::OptimizationGuideDecision decision = optimization_guide::
       GetOptimizationGuideDecisionFromOptimizationTypeDecision(type_decision);
   // It's possible that a hint that applies to |navigation_url| will come in
@@ -1005,12 +1037,13 @@
   }
 
   registered_callbacks_[navigation_url][optimization_type].push_back(
-      std::move(callback));
+      std::make_pair(navigation_id, std::move(callback)));
 }
 
 optimization_guide::OptimizationTypeDecision
 OptimizationGuideHintsManager::CanApplyOptimization(
     const GURL& navigation_url,
+    const base::Optional<int64_t>& navigation_id,
     optimization_guide::proto::OptimizationType optimization_type,
     optimization_guide::OptimizationMetadata* optimization_metadata) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -1070,6 +1103,8 @@
     }
   }
 
+  base::Optional<int64_t> tuning_version;
+
   // First, check if the optimization type is whitelisted by a URL-keyed hint.
   const optimization_guide::proto::Hint* url_keyed_hint =
       hint_cache_->GetURLKeyedHint(navigation_url);
@@ -1078,7 +1113,9 @@
     if (url_keyed_hint->page_hints_size() > 0 &&
         IsOptimizationTypeAllowed(
             url_keyed_hint->page_hints(0).whitelisted_optimizations(),
-            optimization_type, optimization_metadata)) {
+            optimization_type, optimization_metadata, &tuning_version)) {
+      MaybeLogOptimizationAutotuningUKMForNavigation(
+          navigation_id, optimization_type, tuning_version);
       return optimization_guide::OptimizationTypeDecision::kAllowedByHint;
     }
   }
@@ -1104,7 +1141,10 @@
   }
 
   if (IsOptimizationTypeAllowed(loaded_hint->whitelisted_optimizations(),
-                                optimization_type, optimization_metadata)) {
+                                optimization_type, optimization_metadata,
+                                &tuning_version)) {
+    MaybeLogOptimizationAutotuningUKMForNavigation(
+        navigation_id, optimization_type, tuning_version);
     return optimization_guide::OptimizationTypeDecision::kAllowedByHint;
   }
 
@@ -1115,11 +1155,14 @@
   if (!matched_page_hint)
     return optimization_guide::OptimizationTypeDecision::kNotAllowedByHint;
 
-  return IsOptimizationTypeAllowed(
-             matched_page_hint->whitelisted_optimizations(), optimization_type,
-             optimization_metadata)
-             ? optimization_guide::OptimizationTypeDecision::kAllowedByHint
-             : optimization_guide::OptimizationTypeDecision::kNotAllowedByHint;
+  if (IsOptimizationTypeAllowed(matched_page_hint->whitelisted_optimizations(),
+                                optimization_type, optimization_metadata,
+                                &tuning_version)) {
+    MaybeLogOptimizationAutotuningUKMForNavigation(
+        navigation_id, optimization_type, tuning_version);
+    return optimization_guide::OptimizationTypeDecision::kAllowedByHint;
+  }
+  return optimization_guide::OptimizationTypeDecision::kNotAllowedByHint;
 }
 
 void OptimizationGuideHintsManager::PrepareToInvokeRegisteredCallbacks(
@@ -1149,20 +1192,22 @@
        registered_callbacks_.at(navigation_url)) {
     optimization_guide::proto::OptimizationType opt_type =
         opt_type_and_callbacks.first;
-    optimization_guide::OptimizationMetadata metadata;
-    optimization_guide::OptimizationTypeDecision type_decision =
-        CanApplyOptimization(navigation_url, opt_type, &metadata);
-    optimization_guide::OptimizationGuideDecision decision =
-        optimization_guide::
-            GetOptimizationGuideDecisionFromOptimizationTypeDecision(
-                type_decision);
 
-    for (auto& callback : opt_type_and_callbacks.second) {
+    for (auto& navigation_id_and_callback : opt_type_and_callbacks.second) {
+      base::Optional<int64_t> navigation_id = navigation_id_and_callback.first;
+      optimization_guide::OptimizationMetadata metadata;
+      optimization_guide::OptimizationTypeDecision type_decision =
+          CanApplyOptimization(navigation_url, navigation_id, opt_type,
+                               &metadata);
+      optimization_guide::OptimizationGuideDecision decision =
+          optimization_guide::
+              GetOptimizationGuideDecisionFromOptimizationTypeDecision(
+                  type_decision);
       base::UmaHistogramEnumeration(
           "OptimizationGuide.ApplyDecisionAsync." +
               optimization_guide::GetStringNameForOptimizationType(opt_type),
           type_decision);
-      std::move(callback).Run(decision, metadata);
+      std::move(navigation_id_and_callback.second).Run(decision, metadata);
     }
   }
   registered_callbacks_.erase(navigation_url);
diff --git a/chrome/browser/optimization_guide/optimization_guide_hints_manager.h b/chrome/browser/optimization_guide/optimization_guide_hints_manager.h
index dc21fca..70c093b 100644
--- a/chrome/browser/optimization_guide/optimization_guide_hints_manager.h
+++ b/chrome/browser/optimization_guide/optimization_guide_hints_manager.h
@@ -116,6 +116,7 @@
   // |optimization_metadata| will be populated, if applicable.
   optimization_guide::OptimizationTypeDecision CanApplyOptimization(
       const GURL& navigation_url,
+      const base::Optional<int64_t>& navigation_id,
       optimization_guide::proto::OptimizationType optimization_type,
       optimization_guide::OptimizationMetadata* optimization_metadata);
 
@@ -124,6 +125,7 @@
   // |this| to make the decision. Virtual for testing.
   virtual void CanApplyOptimizationAsync(
       const GURL& navigation_url,
+      const base::Optional<int64_t>& navigation_id,
       optimization_guide::proto::OptimizationType optimization_type,
       optimization_guide::OptimizationGuideDecisionCallback callback);
 
@@ -406,12 +408,15 @@
                  std::unique_ptr<optimization_guide::OptimizationFilter>>
       blocklist_optimization_filters_ GUARDED_BY(optimization_filters_lock_);
 
-  // A map from URL to a map of callbacks keyed by their optimization type.
+  // A map from URL to a map of callbacks (along with the navigation IDs that
+  // they were called for) keyed by their optimization type.
   base::flat_map<
       GURL,
       base::flat_map<
           optimization_guide::proto::OptimizationType,
-          std::vector<optimization_guide::OptimizationGuideDecisionCallback>>>
+          std::vector<std::pair<
+              base::Optional<int64_t>,
+              optimization_guide::OptimizationGuideDecisionCallback>>>>
       registered_callbacks_;
 
   // Background thread where hints processing should be performed.
diff --git a/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc b/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
index b0db3d5..7ca2018a 100644
--- a/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_hints_manager_unittest.cc
@@ -34,9 +34,12 @@
 #include "components/optimization_guide/proto_database_provider_test_base.h"
 #include "components/optimization_guide/top_host_provider.h"
 #include "components/prefs/testing_pref_service.h"
+#include "components/ukm/test_ukm_recorder.h"
 #include "content/public/test/browser_task_environment.h"
 #include "content/public/test/mock_navigation_handle.h"
 #include "content/public/test/test_web_contents_factory.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+#include "services/metrics/public/cpp/ukm_source.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
 #include "services/network/test/test_url_loader_factory.h"
@@ -1089,7 +1092,8 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("urlwithnohost"), optimization_guide::proto::LITE_PAGE_REDIRECT,
+          GURL("urlwithnohost"), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
   // Make sure decisions are logged correctly.
@@ -1117,7 +1121,7 @@
       {optimization_guide::proto::LITE_PAGE_REDIRECT});
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("https://whatever.com/123"),
+          GURL("https://whatever.com/123"), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1147,7 +1151,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("https://m.host.com/123"),
+          GURL("https://m.host.com/123"), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1173,7 +1177,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("https://m.host.com/123"),
+          GURL("https://m.host.com/123"), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1199,7 +1203,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("https://whatever.com/123"),
+          GURL("https://whatever.com/123"), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1225,7 +1229,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          GURL("https://whatever.com/123"),
+          GURL("https://whatever.com/123"), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1264,7 +1268,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::RESOURCE_LOADING, &optimization_metadata);
   // Make sure previews metadata is populated.
   EXPECT_EQ("someresource", optimization_metadata.previews_metadata()
@@ -1275,6 +1279,156 @@
 }
 
 TEST_F(OptimizationGuideHintsManagerTest,
+       CanApplyOptimizationOptimizationTypeHasTuningVersionShouldLogUKM) {
+  optimization_guide::proto::Configuration config;
+  optimization_guide::proto::Hint* hint1 = config.add_hints();
+  hint1->set_key("somedomain.org");
+  hint1->set_key_representation(optimization_guide::proto::HOST);
+  hint1->set_version("someversion");
+  optimization_guide::proto::Optimization* opt1 =
+      hint1->add_whitelisted_optimizations();
+  opt1->set_optimization_type(optimization_guide::proto::RESOURCE_LOADING);
+  opt1->set_tuning_version(123456);
+  optimization_guide::proto::PreviewsMetadata* opt1_metadata =
+      opt1->mutable_previews_metadata();
+  opt1_metadata->add_resource_loading_hints()->set_resource_pattern(
+      "someresource");
+  ProcessHints(config, "1.0.0.0");
+
+  hints_manager()->RegisterOptimizationTypes(
+      {optimization_guide::proto::RESOURCE_LOADING});
+
+  std::unique_ptr<content::MockNavigationHandle> navigation_handle =
+      CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
+          url_with_hints());
+  base::RunLoop run_loop;
+  hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
+                                               run_loop.QuitClosure());
+  run_loop.Run();
+
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  optimization_guide::OptimizationMetadata optimization_metadata;
+  optimization_guide::OptimizationTypeDecision optimization_type_decision =
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
+          optimization_guide::proto::RESOURCE_LOADING, &optimization_metadata);
+  // Make sure previews metadata is populated.
+  EXPECT_EQ("someresource", optimization_metadata.previews_metadata()
+                                ->resource_loading_hints(0)
+                                .resource_pattern());
+  EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kAllowedByHint,
+            optimization_type_decision);
+
+  // Make sure autotuning UKM is recorded.
+  auto entries = ukm_recorder.GetEntriesByName(
+      ukm::builders::OptimizationGuideAutotuning::kEntryName);
+  EXPECT_EQ(1u, entries.size());
+  auto* entry = entries[0];
+  ukm_recorder.ExpectEntryMetric(
+      entry, ukm::builders::OptimizationGuideAutotuning::kOptimizationTypeName,
+      static_cast<int64_t>(optimization_guide::proto::RESOURCE_LOADING));
+  ukm_recorder.ExpectEntryMetric(
+      entry, ukm::builders::OptimizationGuideAutotuning::kTuningVersionName,
+      123456);
+}
+
+TEST_F(OptimizationGuideHintsManagerTest,
+       CanApplyOptimizationOptimizationTypeHasTuningVersionButNoNavigation) {
+  optimization_guide::proto::Configuration config;
+  optimization_guide::proto::Hint* hint1 = config.add_hints();
+  hint1->set_key("somedomain.org");
+  hint1->set_key_representation(optimization_guide::proto::HOST);
+  hint1->set_version("someversion");
+  optimization_guide::proto::Optimization* opt1 =
+      hint1->add_whitelisted_optimizations();
+  opt1->set_optimization_type(optimization_guide::proto::RESOURCE_LOADING);
+  opt1->set_tuning_version(123456);
+  optimization_guide::proto::PreviewsMetadata* opt1_metadata =
+      opt1->mutable_previews_metadata();
+  opt1_metadata->add_resource_loading_hints()->set_resource_pattern(
+      "someresource");
+  ProcessHints(config, "1.0.0.0");
+
+  hints_manager()->RegisterOptimizationTypes(
+      {optimization_guide::proto::RESOURCE_LOADING});
+
+  std::unique_ptr<content::MockNavigationHandle> navigation_handle =
+      CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
+          url_with_hints());
+  base::RunLoop run_loop;
+  hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
+                                               run_loop.QuitClosure());
+  run_loop.Run();
+
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  optimization_guide::OptimizationMetadata optimization_metadata;
+  optimization_guide::OptimizationTypeDecision optimization_type_decision =
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::RESOURCE_LOADING, &optimization_metadata);
+  // Make sure previews metadata is populated.
+  EXPECT_EQ("someresource", optimization_metadata.previews_metadata()
+                                ->resource_loading_hints(0)
+                                .resource_pattern());
+  EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kAllowedByHint,
+            optimization_type_decision);
+
+  // Make sure autotuning UKM is not recorded.
+  auto entries = ukm_recorder.GetEntriesByName(
+      ukm::builders::OptimizationGuideAutotuning::kEntryName);
+  EXPECT_EQ(0u, entries.size());
+}
+
+TEST_F(OptimizationGuideHintsManagerTest,
+       CanApplyOptimizationOptimizationTypeHasNavigationButNoTuningVersion) {
+  optimization_guide::proto::Configuration config;
+  optimization_guide::proto::Hint* hint1 = config.add_hints();
+  hint1->set_key("somedomain.org");
+  hint1->set_key_representation(optimization_guide::proto::HOST);
+  hint1->set_version("someversion");
+  optimization_guide::proto::Optimization* opt1 =
+      hint1->add_whitelisted_optimizations();
+  opt1->set_optimization_type(optimization_guide::proto::RESOURCE_LOADING);
+  optimization_guide::proto::PreviewsMetadata* opt1_metadata =
+      opt1->mutable_previews_metadata();
+  opt1_metadata->add_resource_loading_hints()->set_resource_pattern(
+      "someresource");
+  ProcessHints(config, "1.0.0.0");
+
+  hints_manager()->RegisterOptimizationTypes(
+      {optimization_guide::proto::RESOURCE_LOADING});
+
+  std::unique_ptr<content::MockNavigationHandle> navigation_handle =
+      CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
+          url_with_hints());
+  base::RunLoop run_loop;
+  hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
+                                               run_loop.QuitClosure());
+  run_loop.Run();
+
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  optimization_guide::OptimizationMetadata optimization_metadata;
+  optimization_guide::OptimizationTypeDecision optimization_type_decision =
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
+          optimization_guide::proto::RESOURCE_LOADING, &optimization_metadata);
+  // Make sure previews metadata is populated.
+  EXPECT_EQ("someresource", optimization_metadata.previews_metadata()
+                                ->resource_loading_hints(0)
+                                .resource_pattern());
+  EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kAllowedByHint,
+            optimization_type_decision);
+
+  // Make sure autotuning UKM is not recorded.
+  auto entries = ukm_recorder.GetEntriesByName(
+      ukm::builders::OptimizationGuideAutotuning::kEntryName);
+  EXPECT_EQ(0u, entries.size());
+}
+
+TEST_F(OptimizationGuideHintsManagerTest,
        CanApplyOptimizationAndPopulatesMetadataWithFirstOptThatMatchesNoExp) {
   InitializeWithDefaultConfig("1.0.0.0");
   hints_manager()->RegisterOptimizationTypes(
@@ -1290,9 +1444,9 @@
 
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager()->CanApplyOptimization(navigation_handle->GetURL(),
-                                            optimization_guide::proto::NOSCRIPT,
-                                            &optimization_metadata);
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::NOSCRIPT, &optimization_metadata);
   EXPECT_EQ(
       1234,
       optimization_metadata.previews_metadata().value().inflation_percent());
@@ -1316,7 +1470,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::DEFER_ALL_SCRIPT,
           /*optimization_metadata=*/nullptr);
 
@@ -1357,7 +1511,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::PERFORMANCE_HINTS, &optimization_metadata);
   // Make sure performance hints metadata is populated.
   EXPECT_TRUE(optimization_metadata.performance_hints_metadata().has_value());
@@ -1394,7 +1548,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
           &optimization_metadata);
   // Make sure public images metadata is populated.
@@ -1433,7 +1587,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LOADING_PREDICTOR, &optimization_metadata);
   // Make sure loading predictor metadata is populated.
   EXPECT_TRUE(optimization_metadata.loading_predictor_metadata().has_value());
@@ -1472,7 +1626,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
           optimization_guide::proto::DELAY_ASYNC_SCRIPT_EXECUTION,
           &optimization_metadata);
   // Make sure delay async script execution metadata is populated.
@@ -1518,7 +1672,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
           optimization_guide::proto::LOADING_PREDICTOR, &optimization_metadata);
   // Make sure loading predictor metadata is populated.
   EXPECT_TRUE(
@@ -1580,6 +1734,7 @@
       {optimization_guide::proto::NOSCRIPT});
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(navigation_handle->GetURL(),
+                                            /*navigation_id=*/base::nullopt,
                                             optimization_guide::proto::NOSCRIPT,
                                             /*optimization_metadata=*/nullptr);
 
@@ -1601,9 +1756,9 @@
   optimization_metadata.set_previews_metadata(
       optimization_guide::proto::PreviewsMetadata());
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager()->CanApplyOptimization(navigation_handle->GetURL(),
-                                            optimization_guide::proto::NOSCRIPT,
-                                            &optimization_metadata);
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::NOSCRIPT, &optimization_metadata);
 
   EXPECT_FALSE(optimization_metadata.previews_metadata().has_value());
   EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kNoHintAvailable,
@@ -1618,9 +1773,9 @@
       {optimization_guide::proto::NOSCRIPT});
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager()->CanApplyOptimization(url_with_hints(),
-                                            optimization_guide::proto::NOSCRIPT,
-                                            &optimization_metadata);
+      hints_manager()->CanApplyOptimization(
+          url_with_hints(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::NOSCRIPT, &optimization_metadata);
 
   EXPECT_EQ(
       optimization_guide::OptimizationTypeDecision::kHadHintButNotLoadedInTime,
@@ -1663,7 +1818,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1709,7 +1864,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::LITE_PAGE_REDIRECT,
           /*optimization_metadata=*/nullptr);
 
@@ -1747,9 +1902,9 @@
       {optimization_guide::proto::NOSCRIPT});
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager()->CanApplyOptimization(navigation_handle->GetURL(),
-                                            optimization_guide::proto::NOSCRIPT,
-                                            &optimization_metadata);
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::NOSCRIPT, &optimization_metadata);
 
   EXPECT_EQ(
       12345,
@@ -1802,7 +1957,8 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           url_without_hints());
   hints_manager()->CanApplyOptimizationAsync(
-      url_without_hints(), optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
+      url_without_hints(), navigation_handle->GetNavigationId(),
+      optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -1835,7 +1991,8 @@
   run_loop.Run();
 
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_hints(), optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
+      url_with_hints(), navigation_handle->GetNavigationId(),
+      optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -2580,7 +2737,7 @@
                                                base::DoNothing());
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::DEFER_ALL_SCRIPT,
           /*optimization_metadata=*/nullptr);
 
@@ -2613,7 +2770,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::DEFER_ALL_SCRIPT,
           /*optimization_metadata=*/nullptr);
 
@@ -2644,7 +2801,7 @@
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::DEFER_ALL_SCRIPT,
           /*optimization_metadata=*/nullptr);
 
@@ -2678,7 +2835,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
           &optimization_metadata);
 
@@ -2715,9 +2872,9 @@
 
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager()->CanApplyOptimization(navigation_handle->GetURL(),
-                                            optimization_guide::proto::NOSCRIPT,
-                                            &optimization_metadata);
+      hints_manager()->CanApplyOptimization(
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+          optimization_guide::proto::NOSCRIPT, &optimization_metadata);
 
   EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kAllowedByHint,
             optimization_type_decision);
@@ -2750,7 +2907,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::RESOURCE_LOADING, &optimization_metadata);
 
   EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kNotAllowedByHint,
@@ -2785,7 +2942,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
           &optimization_metadata);
 
@@ -2819,7 +2976,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
           &optimization_metadata);
 
@@ -3001,7 +3158,7 @@
   hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
                                                base::DoNothing());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3038,7 +3195,7 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           url_with_url_keyed_hint());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3048,7 +3205,7 @@
             EXPECT_TRUE(metadata.public_image_metadata().has_value());
           }));
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3090,7 +3247,8 @@
   hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
                                                base::DoNothing());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(), optimization_guide::proto::RESOURCE_LOADING,
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
+      optimization_guide::proto::RESOURCE_LOADING,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -3125,7 +3283,7 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           url_with_url_keyed_hint());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3168,7 +3326,7 @@
   RunUntilIdle();
 
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3210,7 +3368,8 @@
   RunUntilIdle();
 
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(), optimization_guide::proto::PERFORMANCE_HINTS,
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
+      optimization_guide::proto::PERFORMANCE_HINTS,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -3248,7 +3407,8 @@
   hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
                                                base::DoNothing());
   hints_manager()->CanApplyOptimizationAsync(
-      url_without_hints(), optimization_guide::proto::PERFORMANCE_HINTS,
+      url_without_hints(), navigation_handle->GetNavigationId(),
+      optimization_guide::proto::PERFORMANCE_HINTS,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -3282,7 +3442,8 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           url_that_redirected);
   hints_manager()->CanApplyOptimizationAsync(
-      url_that_redirected, optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
+      url_that_redirected, navigation_handle_redirect->GetNavigationId(),
+      optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
              const optimization_guide::OptimizationMetadata& metadata) {
@@ -3322,7 +3483,7 @@
   hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
                                                base::DoNothing());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3359,7 +3520,7 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           GURL("https://notallowed.com/123"));
   hints_manager()->CanApplyOptimizationAsync(
-      navigation_handle->GetURL(),
+      navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::LITE_PAGE_REDIRECT,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3397,7 +3558,7 @@
       CreateMockNavigationHandleWithOptimizationGuideWebContentsObserver(
           GURL("https://m.host.com/123"));
   hints_manager()->CanApplyOptimizationAsync(
-      navigation_handle->GetURL(),
+      navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::LITE_PAGE_REDIRECT,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3438,7 +3599,7 @@
   hints_manager()->OnNavigationStartOrRedirect(navigation_handle.get(),
                                                base::DoNothing());
   hints_manager()->CanApplyOptimizationAsync(
-      url_with_url_keyed_hint(),
+      url_with_url_keyed_hint(), navigation_handle->GetNavigationId(),
       optimization_guide::proto::COMPRESS_PUBLIC_IMAGES,
       base::BindOnce(
           [](optimization_guide::OptimizationGuideDecision decision,
@@ -3498,7 +3659,7 @@
   optimization_guide::OptimizationMetadata optimization_metadata;
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
       hints_manager()->CanApplyOptimization(
-          navigation_handle->GetURL(),
+          navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
           optimization_guide::proto::DEFER_ALL_SCRIPT, &optimization_metadata);
 
   EXPECT_EQ(optimization_guide::OptimizationTypeDecision::kNotAllowedByHint,
@@ -3526,8 +3687,8 @@
   run_loop.Run();
 
   optimization_type_decision = hints_manager()->CanApplyOptimization(
-      navigation_handle->GetURL(), optimization_guide::proto::DEFER_ALL_SCRIPT,
-      &optimization_metadata);
+      navigation_handle->GetURL(), /*navigation_id=*/base::nullopt,
+      optimization_guide::proto::DEFER_ALL_SCRIPT, &optimization_metadata);
 
   // The fetched hints should not be available after registering a new
   // optimization type.
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
index f2fb8ac..087ed36 100644
--- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -238,7 +238,8 @@
   }
 
   optimization_guide::OptimizationTypeDecision optimization_type_decision =
-      hints_manager_->CanApplyOptimization(url, optimization_type,
+      hints_manager_->CanApplyOptimization(url, /*navigation_id=*/base::nullopt,
+                                           optimization_type,
                                            optimization_metadata);
   base::UmaHistogramEnumeration(
       "OptimizationGuide.ApplyDecision." +
@@ -264,7 +265,8 @@
   }
 
   hints_manager_->CanApplyOptimizationAsync(
-      navigation_handle->GetURL(), optimization_type, std::move(callback));
+      navigation_handle->GetURL(), navigation_handle->GetNavigationId(),
+      optimization_type, std::move(callback));
 }
 
 void OptimizationGuideKeyedService::AddHintForTesting(
diff --git a/chrome/browser/paint_preview/android/BUILD.gn b/chrome/browser/paint_preview/android/BUILD.gn
index a774d98..2c6db38 100644
--- a/chrome/browser/paint_preview/android/BUILD.gn
+++ b/chrome/browser/paint_preview/android/BUILD.gn
@@ -19,6 +19,7 @@
   sources = [
     "java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewDemoManager.java",
     "java/src/org/chromium/chrome/browser/paint_preview/PaintPreviewTabHelper.java",
+    "java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java",
     "java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java",
     "java/src/org/chromium/chrome/browser/paint_preview/services/PaintPreviewDemoService.java",
     "java/src/org/chromium/chrome/browser/paint_preview/services/PaintPreviewDemoServiceFactory.java",
diff --git a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java
new file mode 100644
index 0000000..1197bbf
--- /dev/null
+++ b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewMetricsHelper.java
@@ -0,0 +1,71 @@
+// Copyright 2020 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.paint_preview;
+
+import androidx.annotation.IntDef;
+
+import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.base.metrics.RecordUserAction;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/** Helper class for recording metrics related to TabbedPaintPreview. */
+public class TabbedPaintPreviewMetricsHelper {
+    /** Used for recording the cause for exiting the Paint Preview player. */
+    @IntDef({ExitCause.PULL_TO_REFRESH, ExitCause.SNACK_BAR_ACTION, ExitCause.COMPOSITOR_FAILURE,
+            ExitCause.TAB_FINISHED_LOADING, ExitCause.LINK_CLICKED, ExitCause.NAVIGATION_STARTED,
+            ExitCause.TAB_DESTROYED})
+    @interface ExitCause {
+        int PULL_TO_REFRESH = 0;
+        int SNACK_BAR_ACTION = 1;
+        int COMPOSITOR_FAILURE = 2;
+        int TAB_FINISHED_LOADING = 3;
+        int LINK_CLICKED = 4;
+        int NAVIGATION_STARTED = 5;
+        int TAB_DESTROYED = 6;
+        int COUNT = 7;
+    }
+
+    private static final Map<Integer, String> UPTIME_HISTOGRAM_MAP = new HashMap<>();
+    static {
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.PULL_TO_REFRESH,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedByPullToRefresh");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.SNACK_BAR_ACTION,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedBySnackBar");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.COMPOSITOR_FAILURE,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedByCompositorFailure");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.TAB_FINISHED_LOADING,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedOnLoad");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.LINK_CLICKED,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedByLinkClick");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.NAVIGATION_STARTED,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedByNavigation");
+        UPTIME_HISTOGRAM_MAP.put(ExitCause.TAB_DESTROYED,
+                "Browser.PaintPreview.TabbedPlayer.UpTime.RemovedOnTabDestroy");
+    }
+
+    private long mShownTime;
+
+    void onShown() {
+        mShownTime = System.currentTimeMillis();
+    }
+
+    void recordExitMetrics(int exitCause, int snackbarShownCount) {
+        if (exitCause == ExitCause.SNACK_BAR_ACTION) {
+            RecordUserAction.record("PaintPreview.TabbedPlayer.Actionbar.Action");
+        }
+
+        RecordUserAction.record("PaintPreview.TabbedPlayer.Removed");
+        RecordHistogram.recordCountHistogram(
+                "Browser.PaintPreview.TabbedPlayer.SnackbarCount", snackbarShownCount);
+        RecordHistogram.recordEnumeratedHistogram(
+                "Browser.PaintPreview.TabbedPlayer.ExitCause", exitCause, ExitCause.COUNT);
+        long upTime = System.currentTimeMillis() - mShownTime;
+        if (UPTIME_HISTOGRAM_MAP.containsKey(exitCause)) {
+            RecordHistogram.recordLongTimesHistogram(UPTIME_HISTOGRAM_MAP.get(exitCause), upTime);
+        }
+    }
+}
diff --git a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java
index b630ffda..128d3fd 100644
--- a/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java
+++ b/chrome/browser/paint_preview/android/java/src/org/chromium/chrome/browser/paint_preview/TabbedPaintPreviewPlayer.java
@@ -8,13 +8,11 @@
 import android.os.Handler;
 import android.view.View;
 
-import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
 
 import org.chromium.base.UserData;
-import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.paint_preview.TabbedPaintPreviewMetricsHelper.ExitCause;
 import org.chromium.chrome.browser.paint_preview.services.PaintPreviewTabService;
 import org.chromium.chrome.browser.paint_preview.services.PaintPreviewTabServiceFactory;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
@@ -35,21 +33,6 @@
  * {@link Tab} by overlaying the content view.
  */
 public class TabbedPaintPreviewPlayer implements TabViewProvider, UserData {
-    /** Used for recording the cause for exiting the Paint Preview player. */
-    @IntDef({ExitCause.PULL_TO_REFRESH, ExitCause.ACTION_BAR_ACTION, ExitCause.COMPOSITOR_FAILURE,
-            ExitCause.TAB_FINISHED_LOADING, ExitCause.LINK_CLICKED, ExitCause.NAVIGATION_STARTED,
-            ExitCause.TAB_DESTROYED})
-    private @interface ExitCause {
-        int PULL_TO_REFRESH = 0;
-        int ACTION_BAR_ACTION = 1;
-        int COMPOSITOR_FAILURE = 2;
-        int TAB_FINISHED_LOADING = 3;
-        int LINK_CLICKED = 4;
-        int NAVIGATION_STARTED = 5;
-        int TAB_DESTROYED = 6;
-        int COUNT = 7;
-    }
-
     public static final Class<TabbedPaintPreviewPlayer> USER_DATA_KEY =
             TabbedPaintPreviewPlayer.class;
 
@@ -66,8 +49,8 @@
     private TabbedPaintPreviewObserver mObserver;
     private long mLastShownSnackBarTime;
     private boolean mDidStartRestore;
-    private long mShownTime;
     private int mSnackbarShownCount;
+    private TabbedPaintPreviewMetricsHelper mMetricsHelper;
 
     public static TabbedPaintPreviewPlayer get(Tab tab) {
         if (tab.getUserDataHost().getUserData(USER_DATA_KEY) == null) {
@@ -123,7 +106,7 @@
     private TabbedPaintPreviewPlayer(Tab tab) {
         mTab = tab;
         mPaintPreviewTabService = PaintPreviewTabServiceFactory.getServiceInstance();
-
+        mMetricsHelper = new TabbedPaintPreviewMetricsHelper();
         mObserver = new TabbedPaintPreviewObserver();
         mTab.addObserver(mObserver);
     }
@@ -165,7 +148,7 @@
                 () -> {
                     mInitializing = false;
                     onShown.run();
-                    mShownTime = System.currentTimeMillis();
+                    mMetricsHelper.onShown();
                 },
                 () -> mHasUserInteraction = true,
                 ChromeColors.getPrimaryBackgroundColor(mTab.getContext().getResources(), false),
@@ -189,14 +172,7 @@
         mTab.getTabViewManager().removeTabViewProvider(this);
         mPlayerManager.destroy();
         mPlayerManager = null;
-        long upTime = System.currentTimeMillis() - mShownTime;
-        RecordUserAction.record("PaintPreview.TabbedPlayer.Removed");
-        RecordHistogram.recordLongTimesHistogram(
-                "Browser.PaintPreview.TabbedPlayer.UpTime", upTime);
-        RecordHistogram.recordCountHistogram(
-                "Browser.PaintPreview.TabbedPlayer.SnackbarCount", mSnackbarShownCount);
-        RecordHistogram.recordEnumeratedHistogram(
-                "Browser.PaintPreview.TabbedPlayer.ExitCause", exitCause, ExitCause.COUNT);
+        mMetricsHelper.recordExitMetrics(exitCause, mSnackbarShownCount);
     }
 
     private void showSnackbar() {
@@ -211,8 +187,7 @@
                 new SnackbarManager.SnackbarController() {
                     @Override
                     public void onAction(Object actionData) {
-                        RecordUserAction.record("PaintPreview.TabbedPlayer.Actionbar.Action");
-                        removePaintPreview(ExitCause.ACTION_BAR_ACTION);
+                        removePaintPreview(ExitCause.SNACK_BAR_ACTION);
                     }
 
                     @Override
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
index 5167d5a..a2793d0a 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_be.xtb
@@ -2,17 +2,28 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="be">
 <translation id="1513858653616922153">Выдаліць пароль</translation>
+<translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# раскрыты пароль}one{# раскрыты пароль}few{# раскрытыя паролі}many{# раскрытых пароляў}other{# раскрытага пароля}}</translation>
+<translation id="1599766761352751884">Праверка пароляў (<ph name="ANALYSED_PASSWORDS" /> з <ph name="TOTAL_PASSWORDS" />)…</translation>
+<translation id="1713125606790339209">Наступныя ўліковыя запісы выкарыстоўваюць паролі, якія былі раскрыты пры ўцечцы даных на старонніх сэрвісах або ўведзены на падманным сайце. Каб абараніць свае ўліковыя запісы, неадкладна змяніце гэтыя паролі.</translation>
+<translation id="2224120951664717045">Chrome адправіць вам апавяшчэнне, калі вы ўвойдзеце ва ўліковы запіс, выкарыстаўшы раскрыты пароль.</translation>
 <translation id="2388655922303272221">Змяніць уручную</translation>
 <translation id="2670599755795384625">Перазапусціць праверку пароляў</translation>
 <translation id="2775140325783767197">Браўзеру Chrome не ўдаецца праверыць паролі. Паспрабуйце праверыць падключэнне да інтэрнэту.</translation>
 <translation id="3533694711092285624">Няма захаваных пароляў. Chrome можа правяраць толькі захаваныя паролі.</translation>
+<translation id="3568945271227339929">Раскрытых пароляў няма</translation>
+<translation id="3918034518766455210">Паролі правераны · <ph name="TIME_SINCE_LAST_CHECK" /></translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
 <translation id="5539342724706569402">Даныя ўведзены на сайце, вядомым падманнымі паводзінамі</translation>
 <translation id="6342069812937806050">Толькі што</translation>
 <translation id="6407955178761087876">Дазвольце Памочніку Google дапамагчы вам змяніць пароль</translation>
 <translation id="686366188661646310">Выдаліць пароль?</translation>
+<translation id="7253951228444156601">Ідзе праверка пароляў…</translation>
 <translation id="7658239707568436148">Скасаваць</translation>
+<translation id="7693089333295158718">Браўзеру Chrome не ўдаецца праверыць паролі. Паўтарыце спробу.</translation>
 <translation id="7744192722284567281">Раскрыты пры ўцечцы даных</translation>
+<translation id="7808889146555843082">Пры выдаленні гэтага пароля ўліковы запіс на сайце <ph name="SITE" /> не выдаліцца. Каб абараніць свой уліковы запіс (на <ph name="SITE" />), выдаліце яго або змяніце пароль.</translation>
 <translation id="808894953321890993">Змяніць пароль</translation>
+<translation id="8465887663773496448">Браўзеру Chrome не ўдалося праверыць усе паролі. Паўтарыце спробу заўтра або праверце паролі ва Уліковым запісе Google.</translation>
 <translation id="8603820497269504141">Chrome зможа праверыць паролі толькі пасля таго, як вы ўвойдзеце ва Уліковы запіс Google.</translation>
+<translation id="8798925345090498040">Браўзеру Chrome не ўдалося праверыць усе паролі. Паўтарыце спробу заўтра.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
index 4e96bd1..8f9c9b45 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_it.xtb
@@ -11,7 +11,7 @@
 <translation id="2775140325783767197">Chrome non può controllare le tue password. Prova a controllare la connessione a Internet.</translation>
 <translation id="3533694711092285624">Nessuna password salvata. Chrome può controllare le password quando le salvi.</translation>
 <translation id="3568945271227339929">Nessuna password compromessa</translation>
-<translation id="3918034518766455210">Password controllate · <ph name="TIME_SINCE_LAST_CHECK" /></translation>
+<translation id="3918034518766455210">Controllo password completato · <ph name="TIME_SINCE_LAST_CHECK" /></translation>
 <translation id="543338862236136125">Modifica password</translation>
 <translation id="5539342724706569402">Hai raggiunto un sito ingannevole</translation>
 <translation id="6342069812937806050">In questo momento</translation>
diff --git a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
index 6f1ea01..ddf0590 100644
--- a/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
+++ b/chrome/browser/password_check/android/internal/java/strings/translations/android_password_check_strings_kn.xtb
@@ -2,17 +2,28 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
 <translation id="1513858653616922153">ಪಾಸ್‌ವರ್ಡ್ ಅಳಿಸಿ</translation>
+<translation id="1547725796794473036">{COMPROMISED_PASSWORDS,plural, =1{# ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌}one{# ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು}other{# ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು}}</translation>
+<translation id="1599766761352751884">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ (<ph name="ANALYSED_PASSWORDS" />/<ph name="TOTAL_PASSWORDS" />)…</translation>
+<translation id="1713125606790339209">ಈ ಕೆಳಗಿನ ಖಾತೆಗಳು, ಥರ್ಡ್-ಪಾರ್ಟಿ ಡೇಟಾ ಉಲ್ಲಂಘನೆ ಸಂದರ್ಭದಲ್ಲಿ ಬಹಿರಂಗಗೊಂಡ ಅಥವಾ ವಂಚಕ ಸೈಟ್‌ ಒಂದರಲ್ಲಿ ನಮೂದಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ. ನಿಮ್ಮ ಖಾತೆಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ಈ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತಕ್ಷಣವೇ ಬದಲಾಯಿಸಿ.</translation>
+<translation id="2224120951664717045">ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಮೂಲಕ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಿಮಗೆ ಸೂಚನೆ ನೀಡುತ್ತದೆ.</translation>
 <translation id="2388655922303272221">ಕೈಯಾರೆ ಬದಲಾಯಿಸಿ</translation>
 <translation id="2670599755795384625">ಪಾಸ್‌ವರ್ಡ್ ಪರಿಶೀಲನೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2775140325783767197">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ನೋಡಿ.</translation>
 <translation id="3533694711092285624">ಉಳಿಸಿರುವ ಯಾವುದೇ ಪಾಸ್‍‍ವರ್ಡ್‍ಗಳಿಲ್ಲ. ನೀವು ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಿದಾಗ, Chrome ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
+<translation id="3568945271227339929">ಅಪಾಯಕ್ಕೀಡಾಗಬಹುದಾದ ಯಾವುದೇ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ</translation>
+<translation id="3918034518766455210">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ · <ph name="TIME_SINCE_LAST_CHECK" /></translation>
 <translation id="543338862236136125">ಪಾಸ್‌ವರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="5539342724706569402">ವಂಚಕ ಸೈಟ್‌ ಒಂದರಲ್ಲಿ ನಮೂದಿಸಲಾಗಿದೆ</translation>
 <translation id="6342069812937806050">ಇದೀಗ</translation>
 <translation id="6407955178761087876">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಿಸುವುದಕ್ಕೆ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು Google Assistant ಗೆ ಅನುಮತಿ ನೀಡಿ</translation>
 <translation id="686366188661646310">ಪಾಸ್‌ವರ್ಡ್ ಅಳಿಸುವುದೇ?</translation>
+<translation id="7253951228444156601">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ…</translation>
 <translation id="7658239707568436148">ರದ್ದುಮಾಡಿ</translation>
+<translation id="7693089333295158718">Chrome ಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7744192722284567281">ಡೇಟಾ ಉಲ್ಲಂಘಿಸಿದವುಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ</translation>
+<translation id="7808889146555843082">ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ <ph name="SITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ. <ph name="SITE" /> ನಲ್ಲಿ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಇತರರಿಂದ ರಕ್ಷಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಯಿಸಿ ಅಥವಾ ಖಾತೆಯನ್ನು ಅಳಿಸಿ.</translation>
 <translation id="808894953321890993">ಪಾಸ್‌ವರ್ಡ್ ಬದಲಿಸಿ</translation>
+<translation id="8465887663773496448">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಾಳೆ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.</translation>
 <translation id="8603820497269504141">ನೀವು Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chrome ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
+<translation id="8798925345090498040">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಾಳೆ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/performance_monitor/process_metrics_history.cc b/chrome/browser/performance_monitor/process_metrics_history.cc
index ec0e4fb..22106bfd7 100644
--- a/chrome/browser/performance_monitor/process_metrics_history.cc
+++ b/chrome/browser/performance_monitor/process_metrics_history.cc
@@ -47,7 +47,8 @@
 #if defined(OS_WIN)
   disk_usage_ = process_metrics_->GetDiskUsageBytesPerSecond();
 #endif
-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_AIX)
   idle_wakeups_ = process_metrics_->GetIdleWakeupsPerSecond();
 #endif
 #if defined(OS_MAC)
@@ -90,7 +91,8 @@
           kDiskUsageHistogramMin, kDiskUsageHistogramMax,
           kDiskUsageHistogramBucketCount);
 #endif
-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_AIX)
       UMA_HISTOGRAM_COUNTS_10000(
           "PerformanceMonitor.IdleWakeups.BrowserProcess", idle_wakeups_);
 #endif
@@ -111,7 +113,8 @@
         UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.RendererProcess",
                               true);
       }
-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_AIX)
       UMA_HISTOGRAM_COUNTS_10000(
           "PerformanceMonitor.IdleWakeups.RendererProcess", idle_wakeups_);
 #endif
@@ -131,7 +134,8 @@
                                   kHistogramBucketCount);
       if (cpu_usage_ > kHighCPUUtilizationThreshold)
         UMA_HISTOGRAM_BOOLEAN("PerformanceMonitor.HighCPU.GPUProcess", true);
-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_AIX)
       UMA_HISTOGRAM_COUNTS_10000("PerformanceMonitor.IdleWakeups.GPUProcess",
                                  idle_wakeups_);
 #endif
diff --git a/chrome/browser/performance_monitor/process_metrics_history.h b/chrome/browser/performance_monitor/process_metrics_history.h
index ab2be14..4f03457 100644
--- a/chrome/browser/performance_monitor/process_metrics_history.h
+++ b/chrome/browser/performance_monitor/process_metrics_history.h
@@ -71,7 +71,8 @@
   uint64_t disk_usage_ = 0;
 #endif
 
-#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_AIX)
   int idle_wakeups_ = 0;
 #endif
 #if defined(OS_MAC)
diff --git a/chrome/browser/policy/cbcm_remote_commands_factory.cc b/chrome/browser/policy/cbcm_remote_commands_factory.cc
deleted file mode 100644
index f76a54f..0000000
--- a/chrome/browser/policy/cbcm_remote_commands_factory.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/policy/cbcm_remote_commands_factory.h"
-
-#include "base/notreached.h"
-#include "components/policy/core/common/remote_commands/remote_command_job.h"
-
-namespace policy {
-
-CBCMRemoteCommandsFactory::CBCMRemoteCommandsFactory() {}
-
-CBCMRemoteCommandsFactory::~CBCMRemoteCommandsFactory() {}
-
-std::unique_ptr<RemoteCommandJob> CBCMRemoteCommandsFactory::BuildJobForType(
-    enterprise_management::RemoteCommand_Type type,
-    RemoteCommandsService* service) {
-  NOTREACHED();
-  return nullptr;
-}
-
-}  // namespace policy
diff --git a/chrome/browser/policy/cbcm_remote_commands_factory.h b/chrome/browser/policy/cbcm_remote_commands_factory.h
deleted file mode 100644
index cb445137..0000000
--- a/chrome/browser/policy/cbcm_remote_commands_factory.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2020 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_POLICY_CBCM_REMOTE_COMMANDS_FACTORY_H_
-#define CHROME_BROWSER_POLICY_CBCM_REMOTE_COMMANDS_FACTORY_H_
-
-#include "components/policy/core/common/remote_commands/remote_commands_factory.h"
-
-namespace policy {
-
-class CBCMRemoteCommandsFactory : public RemoteCommandsFactory {
- public:
-  CBCMRemoteCommandsFactory();
-  ~CBCMRemoteCommandsFactory() override;
-
-  // RemoteCommandsFactory:
-  std::unique_ptr<RemoteCommandJob> BuildJobForType(
-      enterprise_management::RemoteCommand_Type type,
-      RemoteCommandsService* service) override;
-};
-
-}  // namespace policy
-
-#endif  // CHROME_BROWSER_POLICY_CBCM_REMOTE_COMMANDS_FACTORY_H_
diff --git a/chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc b/chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc
index de5547d..dd0b051 100644
--- a/chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc
+++ b/chrome/browser/policy/chrome_browser_cloud_management_controller_desktop.cc
@@ -12,9 +12,9 @@
 #include "chrome/browser/device_identity/device_identity_provider.h"
 #include "chrome/browser/device_identity/device_oauth2_token_service.h"
 #include "chrome/browser/device_identity/device_oauth2_token_service_factory.h"
+#include "chrome/browser/enterprise/remote_commands/cbcm_remote_commands_factory.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/net/system_network_context_manager.h"
-#include "chrome/browser/policy/cbcm_remote_commands_factory.h"
 #include "chrome/browser/policy/chrome_browser_cloud_management_register_watcher.h"
 #include "chrome/browser/policy/chrome_browser_policy_connector.h"
 #include "chrome/browser/policy/cloud/cloud_policy_invalidator.h"
@@ -384,7 +384,7 @@
         ->machine_level_user_cloud_policy_manager()
         ->core()
         ->StartRemoteCommandsService(
-            std::make_unique<CBCMRemoteCommandsFactory>(),
+            std::make_unique<enterprise_commands::CBCMRemoteCommandsFactory>(),
             PolicyInvalidationScope::kCBCM);
 
     commands_invalidator_ = std::make_unique<RemoteCommandsInvalidatorImpl>(
diff --git a/chrome/browser/policy/cloud/remote_commands_invalidator_impl.cc b/chrome/browser/policy/cloud/remote_commands_invalidator_impl.cc
index 9a87d7d6..1644f99 100644
--- a/chrome/browser/policy/cloud/remote_commands_invalidator_impl.cc
+++ b/chrome/browser/policy/cloud/remote_commands_invalidator_impl.cc
@@ -24,8 +24,9 @@
       return kMetricUserRemoteCommandInvalidations;
     case PolicyInvalidationScope::kDevice:
       return kMetricDeviceRemoteCommandInvalidations;
-    case PolicyInvalidationScope::kDeviceLocalAccount:
     case PolicyInvalidationScope::kCBCM:
+      return kMetricCBCMRemoteCommandInvalidations;
+    case PolicyInvalidationScope::kDeviceLocalAccount:
       NOTREACHED() << "Unexpected instance of remote commands invalidator with "
                       "device local account scope.";
       return "";
@@ -42,8 +43,9 @@
       return "RemoteCommands.User";
     case PolicyInvalidationScope::kDevice:
       return "RemoteCommands.Device";
-    case PolicyInvalidationScope::kDeviceLocalAccount:
     case PolicyInvalidationScope::kCBCM:
+      return "RemoteCommands.CBCM";
+    case PolicyInvalidationScope::kDeviceLocalAccount:
       NOTREACHED() << "Unexpected instance of remote commands invalidator with "
                       "device local account scope.";
       return "";
diff --git a/chrome/browser/predictors/loading_predictor_browsertest.cc b/chrome/browser/predictors/loading_predictor_browsertest.cc
index 113f7da..20bc451c48 100644
--- a/chrome/browser/predictors/loading_predictor_browsertest.cc
+++ b/chrome/browser/predictors/loading_predictor_browsertest.cc
@@ -2197,9 +2197,10 @@
 };
 
 // Test that prefetches to local resources are blocked.
+// Disabled for being flaky. crbug.com/1116599
 IN_PROC_BROWSER_TEST_P(
     LoadingPredictorPrefetchBrowserTestWithBlockedLocalRequest,
-    PrepareForPageLoadWithPredictionForPrefetch) {
+    DISABLED_PrepareForPageLoadWithPredictionForPrefetch) {
   GURL url = embedded_test_server()->GetURL(
       "test.com", GetPathWithPortReplacement(kHtmlSubresourcesPath,
                                              embedded_test_server()->port()));
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 89f7c8d..09509b5 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -399,6 +399,7 @@
 
 #if !defined(OS_ANDROID)
 #include "chrome/browser/media/feeds/media_feeds_service.h"
+#include "chrome/browser/media/kaleidoscope/kaleidoscope_prefs.h"
 #endif
 
 #if defined(USE_X11)
@@ -1133,6 +1134,7 @@
 
 #if !defined(OS_ANDROID)
   media_feeds::MediaFeedsService::RegisterProfilePrefs(registry);
+  kaleidoscope::prefs::RegisterProfilePrefs(registry);
 #endif
 
   RegisterProfilePrefsForMigration(registry);
diff --git a/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.cc b/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.cc
index 4ab8531..ec5b8fd 100644
--- a/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.cc
+++ b/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.cc
@@ -26,8 +26,10 @@
 
 class DNSProber : public network::mojom::ResolveHostClient {
  public:
-  explicit DNSProber(
-      IsolatedPrerenderOriginProber::OnProbeResultCallback callback)
+  using OnDNSResultsCallback = base::OnceCallback<
+      void(int, const base::Optional<net::AddressList>& resolved_addresses)>;
+
+  explicit DNSProber(OnDNSResultsCallback callback)
       : callback_(std::move(callback)) {
     DCHECK(callback_);
   }
@@ -35,7 +37,7 @@
   ~DNSProber() override {
     if (callback_) {
       // Indicates some kind of mojo error. Play it safe and return no success.
-      std::move(callback_).Run(false);
+      std::move(callback_).Run(net::ERR_FAILED, base::nullopt);
     }
   }
 
@@ -47,12 +49,12 @@
       const net::ResolveErrorInfo& resolve_error_info,
       const base::Optional<net::AddressList>& resolved_addresses) override {
     if (callback_) {
-      std::move(callback_).Run(error == net::OK);
+      std::move(callback_).Run(error, resolved_addresses);
     }
   }
 
  private:
-  IsolatedPrerenderOriginProber::OnProbeResultCallback callback_;
+  OnDNSResultsCallback callback_;
 };
 
 void HTTPProbeHelper(
@@ -223,6 +225,13 @@
 
 void IsolatedPrerenderOriginProber::DNSProbe(const GURL& url,
                                              OnProbeResultCallback callback) {
+  StartDNSResolution(url, std::move(callback), /*also_do_tls_connect=*/false);
+}
+
+void IsolatedPrerenderOriginProber::StartDNSResolution(
+    const GURL& url,
+    OnProbeResultCallback callback,
+    bool also_do_tls_connect) {
   net::NetworkIsolationKey nik =
       net::IsolationInfo::CreateForInternalRequest(url::Origin::Create(url))
           .network_isolation_key();
@@ -233,7 +242,10 @@
   resolve_host_parameters->initial_priority = net::RequestPriority::HIGHEST;
 
   mojo::PendingRemote<network::mojom::ResolveHostClient> client_remote;
-  mojo::MakeSelfOwnedReceiver(std::make_unique<DNSProber>(std::move(callback)),
+  mojo::MakeSelfOwnedReceiver(std::make_unique<DNSProber>(base::BindOnce(
+                                  &IsolatedPrerenderOriginProber::OnDNSResolved,
+                                  weak_factory_.GetWeakPtr(), url,
+                                  std::move(callback), also_do_tls_connect)),
                               client_remote.InitWithNewPipeAndPassReceiver());
 
   content::BrowserContext::GetDefaultStoragePartition(profile_)
@@ -299,3 +311,27 @@
 
   prober_ptr->SendNowIfInactive(false /* send_only_in_foreground */);
 }
+
+void IsolatedPrerenderOriginProber::OnDNSResolved(
+    const GURL& url,
+    OnProbeResultCallback callback,
+    bool also_do_tls_connect,
+    int net_error,
+    const base::Optional<net::AddressList>& resolved_addresses) {
+  bool successful = net_error == net::OK && resolved_addresses &&
+                    !resolved_addresses->empty();
+
+  // A TLS connection needs the resolved addresses, so it also fails here.
+  if (!successful) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  if (!also_do_tls_connect) {
+    std::move(callback).Run(true);
+    return;
+  }
+
+  // TODO(robertogden): Handle also_do_tls_connect.
+  NOTREACHED();
+}
diff --git a/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.h b/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.h
index 93194971..4999918 100644
--- a/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.h
+++ b/chrome/browser/prerender/isolated/isolated_prerender_origin_prober.h
@@ -6,6 +6,9 @@
 #define CHROME_BROWSER_PRERENDER_ISOLATED_ISOLATED_PRERENDER_ORIGIN_PROBER_H_
 
 #include "base/callback.h"
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+#include "net/base/address_list.h"
 #include "url/gurl.h"
 
 class AvailabilityProber;
@@ -46,6 +49,23 @@
   void DNSProbe(const GURL& url, OnProbeResultCallback callback);
   void HTTPProbe(const GURL& url, OnProbeResultCallback callback);
 
+  // Does a DNS resolution for a DNS or TLS probe, passing all the arguments to
+  // |OnDNSResolved|.
+  void StartDNSResolution(const GURL& url,
+                          OnProbeResultCallback callback,
+                          bool also_do_tls_connect);
+
+  // If the DNS resolution was successful, this will either run |callback| for a
+  // DNS probe, or start the TLS socket for a TLS probe. This is determined by
+  // |also_do_tls_connect|. If the DNS resolution failed, |callback| is run with
+  // failure.
+  void OnDNSResolved(
+      const GURL& url,
+      OnProbeResultCallback callback,
+      bool also_do_tls_connect,
+      int net_error,
+      const base::Optional<net::AddressList>& resolved_addresses);
+
   // The current profile, not owned.
   Profile* profile_;
 
@@ -54,6 +74,8 @@
 
   // The canary url checker.
   std::unique_ptr<AvailabilityProber> canary_check_;
+
+  base::WeakPtrFactory<IsolatedPrerenderOriginProber> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_PRERENDER_ISOLATED_ISOLATED_PRERENDER_ORIGIN_PROBER_H_
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
index 9c9e0a5..27cc0a7 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
@@ -64,7 +64,7 @@
 <translation id="1360699455582016846">ৰাউটিং কী <ph name="ROUTING_KEY_NUMBER" />ৰ তলৰ বস্তুত ক্লিক কৰক</translation>
 <translation id="1377925789329510816">এইটো শেষ শিৰোনাম। প্ৰথম শিৰোনামলৈ যাবলৈ Search+H টিপক বা এই পৃষ্ঠাৰ দ্বিতীয় শিৰোনামলৈ যাবলৈ Search+Shift+H টিপক।</translation>
 <translation id="138218114945450791">পাতল নীলা</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1396114365388024581">tablst</translation>
 <translation id="1405567553485452995">পাতল সেউজীয়া</translation>
 <translation id="1417889266572670458">সাগৰৰ দৰে নীলা</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb
index 65e53ee..eeb0c57 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb
@@ -64,7 +64,7 @@
 <translation id="1360699455582016846"><ph name="ROUTING_KEY_NUMBER" /> নম্বর রাউটিং কী-এর আইটেমে ক্লিক করুন</translation>
 <translation id="1377925789329510816">এটিই সর্বশেষ শিরোনাম। প্রথম শিরোনামে ফিরে যেতে সার্চ+H টিপুন, অথবা এই পৃষ্ঠার দ্বিতীয় শিরোনামে যেতে সার্চ+Shift+H টিপুন।</translation>
 <translation id="138218114945450791">হালকা নীল</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1396114365388024581">tablst</translation>
 <translation id="1405567553485452995">হালকা সবুজ</translation>
 <translation id="1417889266572670458">নেভি</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb
index a1b7865..4722dc3e 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb
@@ -64,7 +64,7 @@
 <translation id="1360699455582016846">રૂટિંગ કી <ph name="ROUTING_KEY_NUMBER" /> હેઠળની આઇટમને ક્લિક કરો</translation>
 <translation id="1377925789329510816">આ છેલ્લું મથાળું છે. આ પેજ પર સીધા જ પ્રથમ મથાળા પર જવા માટે શોધ+H, અથવા બીજા મથાળા પર જવા માટે શોધ+Shift+H દબાવો.</translation>
 <translation id="138218114945450791">આછો વાદળી</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1396114365388024581">tablst</translation>
 <translation id="1405567553485452995">આછો લીલો</translation>
 <translation id="1417889266572670458">ઘેરો વાદળી</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb
index 494f758..6d43980 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_nl.xtb
@@ -370,7 +370,7 @@
 <translation id="3781428340399460090">Felroze</translation>
 <translation id="3783725005098956899">Logbestand weergeven</translation>
 <translation id="3801735343383419236">Automatisch lijst aanvullen</translation>
-<translation id="3810838688059735925">Videobestanden</translation>
+<translation id="3810838688059735925">Video</translation>
 <translation id="3813387282697781382">Lichtkoraal</translation>
 <translation id="3816633764618089385">Volgende media</translation>
 <translation id="385383972552776628">Pagina met opties openen</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
index 4d4f27d..e47f0b8d 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
@@ -64,7 +64,7 @@
 <translation id="1360699455582016846"><ph name="ROUTING_KEY_NUMBER" /> ரூட்டிங் விசைக்குக் கீழுள்ள உருப்படியைக் கிளிக் செய்யவும்</translation>
 <translation id="1377925789329510816">இது கடைசி தலைப்பாகும். முதல் தலைப்பிற்குச் செல்ல, தேடல்+Hஐ ஒன்றாக அழுத்தவும் அல்லது இந்தப் பக்கத்தில் உள்ள இரண்டாவது தலைப்பிற்குச் செல்ல, தேடல்+Shift+Hஐ ஒன்றாக அழுத்தவும்.</translation>
 <translation id="138218114945450791">வெளிர் நீலம்</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1396114365388024581">tablst</translation>
 <translation id="1405567553485452995">வெளிர் பச்சை</translation>
 <translation id="1417889266572670458">நேவி</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
index 07bf6c8..8728516 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
@@ -64,7 +64,7 @@
 <translation id="1360699455582016846">రూటింగ్ కీ <ph name="ROUTING_KEY_NUMBER" /> కింద ఉన్న అంశాన్ని క్లిక్ చేయండి</translation>
 <translation id="1377925789329510816">ఇది చివరి ముఖ్యశీర్షిక. మొదటి ముఖ్యశీర్షికకు సర్దుబాటు చేసేందుకు, శోధన+H నొక్కండి లేదా ఈ పేజీలోని రెండవ ముఖ్యశీర్షికకు వెళ్లేందుకు, శోధన+Shift+Hను నొక్కండి.</translation>
 <translation id="138218114945450791">లేత నీలి రంగు</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1396114365388024581">tablst</translation>
 <translation id="1405567553485452995">లేత ఆకుపచ్చ రంగు</translation>
 <translation id="1417889266572670458">నేవీ నీలం రంగు</translation>
diff --git a/chrome/browser/resources/new_tab_page/app.js b/chrome/browser/resources/new_tab_page/app.js
index 4fb9b67..944fc613 100644
--- a/chrome/browser/resources/new_tab_page/app.js
+++ b/chrome/browser/resources/new_tab_page/app.js
@@ -466,7 +466,7 @@
   onOpenVoiceSearch_() {
     this.showVoiceSearchOverlay_ = true;
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.ACTIVATE_SEARCH_BOX);
+        newTabPage.mojom.VoiceSearchAction.kActivateSearchBox);
   }
 
   /** @private */
@@ -498,7 +498,7 @@
     if (ctrlKeyPressed && e.code === 'Period' && e.shiftKey) {
       this.showVoiceSearchOverlay_ = true;
       this.pageHandler_.onVoiceSearchAction(
-          newTabPage.mojom.VoiceSearchAction.ACTIVATE_KEYBOARD);
+          newTabPage.mojom.VoiceSearchAction.kActivateKeyboard);
     }
   }
 
@@ -604,7 +604,7 @@
   computeDoodleAllowed_() {
     return loadTimeData.getBoolean('themeModeDoodlesEnabled') ||
         !this.showBackgroundImage_ && this.theme_ &&
-        this.theme_.type === newTabPage.mojom.ThemeType.DEFAULT &&
+        this.theme_.type === newTabPage.mojom.ThemeType.kDefault &&
         !this.theme_.isDark;
   }
 
diff --git a/chrome/browser/resources/new_tab_page/customize_backgrounds.js b/chrome/browser/resources/new_tab_page/customize_backgrounds.js
index 4f99d35..d0170c8 100644
--- a/chrome/browser/resources/new_tab_page/customize_backgrounds.js
+++ b/chrome/browser/resources/new_tab_page/customize_backgrounds.js
@@ -153,14 +153,14 @@
   onCollectionClick_(e) {
     this.selectedCollection = this.$.collectionsRepeat.itemForElement(e.target);
     this.pageHandler_.onCustomizeDialogAction(
-        newTabPage.mojom.CustomizeDialogAction.BACKGROUNDS_COLLECTION_OPENED);
+        newTabPage.mojom.CustomizeDialogAction.kBackgroundsCollectionOpened);
   }
 
   /** @private */
   async onUploadFromDeviceClick_() {
     this.pageHandler_.onCustomizeDialogAction(
         newTabPage.mojom.CustomizeDialogAction
-            .BACKGROUNDS_UPLOAD_FROM_DEVICE_CLICKED);
+            .kBackgroundsUploadFromDeviceClicked);
     const {success} = await this.pageHandler_.chooseLocalCustomBackground();
     if (success) {
       // The theme update is asynchronous. Close the dialog and allow ntp-app
@@ -175,7 +175,7 @@
         BackgroundSelectionType.NO_BACKGROUND) {
       this.pageHandler_.onCustomizeDialogAction(
           newTabPage.mojom.CustomizeDialogAction
-              .BACKGROUNDS_NO_BACKGROUND_SELECTED);
+              .kBackgroundsNoBackgroundSelected);
     }
     this.backgroundSelection = {type: BackgroundSelectionType.NO_BACKGROUND};
   }
@@ -189,7 +189,7 @@
     if (this.backgroundSelection.type !== BackgroundSelectionType.IMAGE ||
         this.backgroundSelection.image !== image) {
       this.pageHandler_.onCustomizeDialogAction(
-          newTabPage.mojom.CustomizeDialogAction.BACKGROUNDS_IMAGE_SELECTED);
+          newTabPage.mojom.CustomizeDialogAction.kBackgroundsImageSelected);
     }
     this.backgroundSelection = {
       type: BackgroundSelectionType.IMAGE,
diff --git a/chrome/browser/resources/new_tab_page/customize_dialog.js b/chrome/browser/resources/new_tab_page/customize_dialog.js
index 8429868e..f5fc6471 100644
--- a/chrome/browser/resources/new_tab_page/customize_dialog.js
+++ b/chrome/browser/resources/new_tab_page/customize_dialog.js
@@ -124,7 +124,7 @@
           this.$.bottomPageScrollBorder, 'show-2'),
     ];
     this.pageHandler_.onCustomizeDialogAction(
-        newTabPage.mojom.CustomizeDialogAction.OPEN_CLICKED);
+        newTabPage.mojom.CustomizeDialogAction.kOpenClicked);
   }
 
   /** @private */
@@ -136,7 +136,7 @@
   /** @private */
   onCancelClick_() {
     this.pageHandler_.onCustomizeDialogAction(
-        newTabPage.mojom.CustomizeDialogAction.CANCEL_CLICKED);
+        newTabPage.mojom.CustomizeDialogAction.kCancelClicked);
     this.$.dialog.cancel();
   }
 
@@ -168,7 +168,7 @@
             assert(this.backgroundSelection.dailyRefreshCollectionId));
     }
     this.pageHandler_.onCustomizeDialogAction(
-        newTabPage.mojom.CustomizeDialogAction.DONE_CLICKED);
+        newTabPage.mojom.CustomizeDialogAction.kDoneClicked);
     this.$.dialog.close();
   }
 
@@ -221,7 +221,7 @@
   onBackClick_() {
     this.selectedCollection_ = null;
     this.pageHandler_.onCustomizeDialogAction(
-        newTabPage.mojom.CustomizeDialogAction.BACKGROUNDS_BACK_CLICKED);
+        newTabPage.mojom.CustomizeDialogAction.kBackgroundsBackClicked);
   }
 
   /** @private */
@@ -236,7 +236,7 @@
     }
     this.pageHandler_.onCustomizeDialogAction(
         newTabPage.mojom.CustomizeDialogAction
-            .BACKGROUNDS_REFRESH_TOGGLE_CLICKED);
+            .kBackgroundsRefreshToggleClicked);
   }
 }
 
diff --git a/chrome/browser/resources/new_tab_page/customize_shortcuts.js b/chrome/browser/resources/new_tab_page/customize_shortcuts.js
index f442964..0e54ab4 100644
--- a/chrome/browser/resources/new_tab_page/customize_shortcuts.js
+++ b/chrome/browser/resources/new_tab_page/customize_shortcuts.js
@@ -112,8 +112,7 @@
   onCustomLinksClick_() {
     if (!this.customLinksEnabled_) {
       this.pageHandler_.onCustomizeDialogAction(
-          newTabPage.mojom.CustomizeDialogAction
-              .SHORTCUTS_CUSTOM_LINKS_CLICKED);
+          newTabPage.mojom.CustomizeDialogAction.kShortcutsCustomLinksClicked);
     }
     this.customLinksEnabled_ = true;
     this.hide_ = false;
@@ -126,7 +125,7 @@
   onHideChange_(e) {
     this.pageHandler_.onCustomizeDialogAction(
         newTabPage.mojom.CustomizeDialogAction
-            .SHORTCUTS_VISIBILITY_TOGGLE_CLICKED);
+            .kShortcutsVisibilityToggleClicked);
     this.hide_ = e.detail;
   }
 
@@ -135,8 +134,7 @@
   onMostVisitedClick_() {
     if (this.customLinksEnabled_) {
       this.pageHandler_.onCustomizeDialogAction(
-          newTabPage.mojom.CustomizeDialogAction
-              .SHORTCUTS_MOST_VISITED_CLICKED);
+          newTabPage.mojom.CustomizeDialogAction.kShortcutsMostVisitedClicked);
     }
     this.customLinksEnabled_ = false;
     this.hide_ = false;
diff --git a/chrome/browser/resources/new_tab_page/customize_themes.js b/chrome/browser/resources/new_tab_page/customize_themes.js
index a6987bde..6967a75 100644
--- a/chrome/browser/resources/new_tab_page/customize_themes.js
+++ b/chrome/browser/resources/new_tab_page/customize_themes.js
@@ -74,7 +74,7 @@
 
   /** private */
   onThemeChange_() {
-    if (this.theme.type !== newTabPage.mojom.ThemeType.AUTOGENERATED) {
+    if (this.theme.type !== newTabPage.mojom.ThemeType.kAutogenerated) {
       return;
     }
     const rgbaFrameColor =
@@ -110,11 +110,11 @@
       return false;
     }
     if (id === 'autogenerated') {
-      return this.theme.type === newTabPage.mojom.ThemeType.AUTOGENERATED;
+      return this.theme.type === newTabPage.mojom.ThemeType.kAutogenerated;
     } else if (id === 'default') {
-      return this.theme.type === newTabPage.mojom.ThemeType.DEFAULT;
+      return this.theme.type === newTabPage.mojom.ThemeType.kDefault;
     } else {
-      return this.theme.type === newTabPage.mojom.ThemeType.CHROME &&
+      return this.theme.type === newTabPage.mojom.ThemeType.kChrome &&
           id === this.theme.info.chromeThemeId;
     }
   }
@@ -124,7 +124,7 @@
    * @private
    */
   isThirdPartyTheme_() {
-    return this.theme.type === newTabPage.mojom.ThemeType.THIRD_PARTY;
+    return this.theme.type === newTabPage.mojom.ThemeType.kThirdParty;
   }
 
   /** @private */
diff --git a/chrome/browser/resources/new_tab_page/doodle_share_dialog.js b/chrome/browser/resources/new_tab_page/doodle_share_dialog.js
index e59bc37..efb31ab 100644
--- a/chrome/browser/resources/new_tab_page/doodle_share_dialog.js
+++ b/chrome/browser/resources/new_tab_page/doodle_share_dialog.js
@@ -49,7 +49,7 @@
         `&href=${encodeURIComponent(this.url.url)}` +
         `&hashtag=${encodeURIComponent('#GoogleDoodle')}`;
     BrowserProxy.getInstance().open(url);
-    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.FACEBOOK);
+    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.kFacebook);
   }
 
   /** @private */
@@ -57,7 +57,7 @@
     const url = 'https://twitter.com/intent/tweet' +
         `?text=${encodeURIComponent(`${this.title}\n${this.url.url}`)}`;
     BrowserProxy.getInstance().open(url);
-    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.TWITTER);
+    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.kTwitter);
   }
 
   /** @private */
@@ -65,14 +65,14 @@
     const url = `mailto:?subject=${encodeURIComponent(this.title)}` +
         `&body=${encodeURIComponent(this.url.url)}`;
     BrowserProxy.getInstance().navigate(url);
-    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.EMAIL);
+    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.kEmail);
   }
 
   /** @private */
   onCopyClick_() {
     this.$.url.select();
     navigator.clipboard.writeText(this.url.url);
-    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.LINK_COPY);
+    this.notifyShare_(newTabPage.mojom.DoodleShareChannel.kLinkCopy);
   }
 
   /** @private */
diff --git a/chrome/browser/resources/new_tab_page/logo.js b/chrome/browser/resources/new_tab_page/logo.js
index 0685d22..49b8230 100644
--- a/chrome/browser/resources/new_tab_page/logo.js
+++ b/chrome/browser/resources/new_tab_page/logo.js
@@ -306,7 +306,7 @@
     if (this.isCtaImageShown_()) {
       this.showAnimation_ = true;
       this.pageHandler_.onDoodleImageClicked(
-          newTabPage.mojom.DoodleImageType.CTA, this.interactionLogUrl_);
+          newTabPage.mojom.DoodleImageType.kCta, this.interactionLogUrl_);
 
       // TODO(tiborg): This is technically not correct since we don't know if
       // the animation has loaded yet. However, since the animation is loaded
@@ -314,15 +314,15 @@
       // practice this should be good enough but we could improve that in the
       // future.
       this.logImageRendered_(
-          newTabPage.mojom.DoodleImageType.ANIMATION,
+          newTabPage.mojom.DoodleImageType.kAnimation,
           /** @type {!url.mojom.Url} */
           (this.imageDoodle_.animationImpressionLogUrl));
 
       return;
     }
     this.pageHandler_.onDoodleImageClicked(
-        this.showAnimation_ ? newTabPage.mojom.DoodleImageType.ANIMATION :
-                              newTabPage.mojom.DoodleImageType.STATIC,
+        this.showAnimation_ ? newTabPage.mojom.DoodleImageType.kAnimation :
+                              newTabPage.mojom.DoodleImageType.kStatic,
         null);
     const onClickUrl = new URL(this.doodle_.image.onClickUrl.url);
     if (this.imageClickParams_) {
@@ -336,8 +336,8 @@
   /** @private */
   onImageLoad_() {
     this.logImageRendered_(
-        this.isCtaImageShown_() ? newTabPage.mojom.DoodleImageType.CTA :
-                                  newTabPage.mojom.DoodleImageType.STATIC,
+        this.isCtaImageShown_() ? newTabPage.mojom.DoodleImageType.kCta :
+                                  newTabPage.mojom.DoodleImageType.kStatic,
         this.imageDoodle_.imageImpressionLogUrl);
   }
 
diff --git a/chrome/browser/resources/new_tab_page/voice_search_overlay.js b/chrome/browser/resources/new_tab_page/voice_search_overlay.js
index 6db0f40..bc7a0c06 100644
--- a/chrome/browser/resources/new_tab_page/voice_search_overlay.js
+++ b/chrome/browser/resources/new_tab_page/voice_search_overlay.js
@@ -105,23 +105,23 @@
 function toError(webkitError) {
   switch (webkitError) {
     case 'aborted':
-      return Error.ABORTED;
+      return Error.kAborted;
     case 'audio-capture':
-      return Error.AUDIO_CAPTURE;
+      return Error.kAudioCapture;
     case 'language-not-supported':
-      return Error.LANGUAGE_NOT_SUPPORTED;
+      return Error.kLanguageNotSupported;
     case 'network':
-      return Error.NETWORK;
+      return Error.kNetwork;
     case 'no-speech':
-      return Error.NO_SPEECH;
+      return Error.kNoSpeech;
     case 'not-allowed':
-      return Error.NOT_ALLOWED;
+      return Error.kNotAllowed;
     case 'service-not-allowed':
-      return Error.SERVICE_NOT_ALLOWED;
+      return Error.kServiceNotAllowed;
     case 'bad-grammar':
-      return Error.BAD_GRAMMAR;
+      return Error.kBadGrammar;
     default:
-      return Error.OTHER;
+      return Error.kOther;
   }
 }
 
@@ -133,10 +133,10 @@
  */
 function getErrorTimeout(error) {
   switch (error) {
-    case Error.AUDIO_CAPTURE:
-    case Error.NO_SPEECH:
-    case Error.NOT_ALLOWED:
-    case Error.NO_MATCH:
+    case Error.kAudioCapture:
+    case Error.kNoSpeech:
+    case Error.kNotAllowed:
+    case Error.kNoMatch:
       return ERROR_TIMEOUT_LONG_MS;
     default:
       return ERROR_TIMEOUT_SHORT_MS;
@@ -209,7 +209,7 @@
       this.onError_(toError(e.error));
     };
     this.voiceRecognition_.onnomatch = () => {
-      this.onError_(Error.NO_MATCH);
+      this.onError_(Error.kNoMatch);
     };
     /** @private {number|undefined} */
     this.timerId_ = undefined;
@@ -239,7 +239,7 @@
   onOverlayClick_() {
     this.$.dialog.close();
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.CLOSE_OVERLAY);
+        newTabPage.mojom.VoiceSearchAction.kCloseOverlay);
   }
 
   /**
@@ -274,7 +274,7 @@
   /** @private */
   onLearnMoreClick_() {
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.SUPPORT_LINK_CLICKED);
+        newTabPage.mojom.VoiceSearchAction.kSupportLinkClicked);
   }
 
   /**
@@ -286,7 +286,7 @@
     e.stopPropagation();
     this.start();
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.TRY_AGAIN_LINK);
+        newTabPage.mojom.VoiceSearchAction.kTryAgainLink);
   }
 
   /**
@@ -295,14 +295,14 @@
    */
   onMicClick_(e) {
     if (this.state_ !== State.ERROR_RECEIVED ||
-        this.error_ !== Error.NO_MATCH) {
+        this.error_ !== Error.kNoMatch) {
       return;
     }
     // Otherwise, we close the overlay.
     e.stopPropagation();
     this.start();
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.TRY_AGAIN_MIC_BUTTON);
+        newTabPage.mojom.VoiceSearchAction.kTryAgainMicButton);
   }
 
   /** @private */
@@ -324,7 +324,7 @@
       return;
     }
     this.voiceRecognition_.abort();
-    this.onError_(Error.NO_MATCH);
+    this.onError_(Error.kNoMatch);
   }
 
   /**
@@ -412,7 +412,7 @@
   /** @private */
   onFinalResult_() {
     if (!this.finalResult_) {
-      this.onError_(Error.NO_MATCH);
+      this.onError_(Error.kNoMatch);
       return;
     }
     this.state_ = State.RESULT_FINAL;
@@ -425,7 +425,7 @@
         new URL('/search', loadTimeData.getString('googleBaseUrl'));
     queryUrl.search = searchParams.toString();
     this.pageHandler_.onVoiceSearchAction(
-        newTabPage.mojom.VoiceSearchAction.QUERY_SUBMITTED);
+        newTabPage.mojom.VoiceSearchAction.kQuerySubmitted);
     BrowserProxy.getInstance().navigate(queryUrl.href);
   }
 
@@ -433,20 +433,20 @@
   onEnd_() {
     switch (this.state_) {
       case State.STARTED:
-        this.onError_(Error.AUDIO_CAPTURE);
+        this.onError_(Error.kAudioCapture);
         return;
       case State.AUDIO_RECEIVED:
-        this.onError_(Error.NO_SPEECH);
+        this.onError_(Error.kNoSpeech);
         return;
       case State.SPEECH_RECEIVED:
       case State.RESULT_RECEIVED:
-        this.onError_(Error.NO_MATCH);
+        this.onError_(Error.kNoMatch);
         return;
       case State.ERROR_RECEIVED:
       case State.RESULT_FINAL:
         return;
       default:
-        this.onError_(Error.OTHER);
+        this.onError_(Error.kOther);
         return;
     }
   }
@@ -457,7 +457,7 @@
    */
   onError_(error) {
     this.pageHandler_.onVoiceSearchError(error);
-    if (error === Error.ABORTED) {
+    if (error === Error.kAborted) {
       // We are in the process of closing voice search.
       return;
     }
@@ -510,21 +510,21 @@
    */
   getErrorText_() {
     switch (this.error_) {
-      case Error.NO_SPEECH:
+      case Error.kNoSpeech:
         return 'no-speech';
-      case Error.AUDIO_CAPTURE:
+      case Error.kAudioCapture:
         return 'audio-capture';
-      case Error.NETWORK:
+      case Error.kNetwork:
         return 'network';
-      case Error.NOT_ALLOWED:
-      case Error.SERVICE_NOT_ALLOWED:
+      case Error.kNotAllowed:
+      case Error.kServiceNotAllowed:
         return 'not-allowed';
-      case Error.LANGUAGE_NOT_SUPPORTED:
+      case Error.kLanguageNotSupported:
         return 'language-not-supported';
-      case Error.NO_MATCH:
+      case Error.kNoMatch:
         return 'no-match';
-      case Error.ABORTED:
-      case Error.OTHER:
+      case Error.kAborted:
+      case Error.kOther:
       default:
         return 'other';
     }
@@ -536,13 +536,13 @@
    */
   getErrorLink_() {
     switch (this.error_) {
-      case Error.NO_SPEECH:
-      case Error.AUDIO_CAPTURE:
+      case Error.kNoSpeech:
+      case Error.kAudioCapture:
         return 'learn-more';
-      case Error.NOT_ALLOWED:
-      case Error.SERVICE_NOT_ALLOWED:
+      case Error.kNotAllowed:
+      case Error.kServiceNotAllowed:
         return 'details';
-      case Error.NO_MATCH:
+      case Error.kNoMatch:
         return 'try-again';
       default:
         return 'none';
diff --git a/chrome/browser/resources/settings/chromeos/deep_linking_behavior.js b/chrome/browser/resources/settings/chromeos/deep_linking_behavior.js
index c27d121a..48c19388 100644
--- a/chrome/browser/resources/settings/chromeos/deep_linking_behavior.js
+++ b/chrome/browser/resources/settings/chromeos/deep_linking_behavior.js
@@ -84,13 +84,24 @@
           return;
         }
 
-        elToFocus.focus();
+        this.showDeepLinkElement(elToFocus);
         resolve({deepLinkShown: true, pendingSettingId: settingId});
       });
     });
   },
 
   /**
+   * Focuses the deep linked element |elem|. Returns whether the deep link was
+   * shown or not.
+   * @param {!Element} elToFocus
+   */
+  showDeepLinkElement(elToFocus) {
+    assert(loadTimeData.getBoolean('isDeepLinkingEnabled'));
+
+    elToFocus.focus();
+  },
+
+  /**
    * Override this method to execute code after a supported settingId is found
    * and before the deep link is shown. Returns whether or not the deep link
    * attempt should continue. Default behavior is to no op and then return
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
index 36204367..b48ce0b0 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
@@ -25,6 +25,7 @@
     ":cellular_setup_dialog",
     ":internet_config",
     ":internet_page_browser_proxy",
+    "..:deep_linking_behavior",
     "..:metrics_recorder",
     "..:os_route",
     "../..:router",
@@ -67,12 +68,19 @@
 js_library("internet_detail_page") {
   deps = [
     ":internet_page_browser_proxy",
+    ":network_proxy_section",
+    ":network_summary",
     ":tether_connection_dialog",
+    "..:deep_linking_behavior",
     "..:metrics_recorder",
     "..:os_route",
     "../..:router",
     "//ui/webui/resources/cr_components/chromeos/network:cr_policy_network_behavior_mojo",
+    "//ui/webui/resources/cr_components/chromeos/network:network_apnlist",
+    "//ui/webui/resources/cr_components/chromeos/network:network_ip_config",
     "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior",
+    "//ui/webui/resources/cr_components/chromeos/network:network_nameservers",
+    "//ui/webui/resources/cr_components/chromeos/network:network_siminfo",
     "//ui/webui/resources/js:assert",
     "//ui/webui/resources/js:i18n_behavior",
   ]
@@ -85,7 +93,10 @@
 
 js_library("internet_known_networks_page") {
   deps = [
+    "..:deep_linking_behavior",
     "..:metrics_recorder",
+    "..:os_route",
+    "../..:router",
     "//ui/webui/resources/cr_components/chromeos/network:cr_policy_network_behavior_mojo",
     "//ui/webui/resources/cr_components/chromeos/network:network_listener_behavior",
     "//ui/webui/resources/cr_elements/cr_action_menu:cr_action_menu",
@@ -98,6 +109,7 @@
 js_library("internet_subpage") {
   deps = [
     ":internet_page_browser_proxy",
+    "..:deep_linking_behavior",
     "..:metrics_recorder",
     "..:os_route",
     "..:route_origin_behavior",
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.html
index 9f3cbd2..c5550a8f 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.html
@@ -27,6 +27,7 @@
 <link rel="import" href="../../i18n_setup.html">
 <link rel="import" href="../../people_page/sync_browser_proxy.html">
 <link rel="import" href="../../prefs/prefs.html">
+<link rel="import" href="../deep_linking_behavior.html">
 <link rel="import" href="../os_people_page/os_sync_browser_proxy.html">
 <link rel="import" href="../os_route.html">
 <link rel="import" href="../../router.html">
@@ -99,7 +100,7 @@
           </cr-policy-indicator>
         </template>
       </div>
-      <cr-button on-click="onForgetTap_"
+      <cr-button id="forgetButton" on-click="onForgetTap_"
           hidden$="[[!showForget_(managedProperties_)]]"
           disabled="[[disableForget_(managedProperties_,
               prefs.vpn_config_allowed)]]">
@@ -113,11 +114,12 @@
           hidden$="[[!showActivate_(managedProperties_)]]">
         $i18n{networkButtonActivate}
       </cr-button>
-      <cr-button on-click="onConfigureTap_"
+      <cr-button id="configureButton" on-click="onConfigureTap_"
           hidden$="[[!showConfigure_(managedProperties_, globalPolicy,
               managedNetworkAvailable)]]"
           disabled="[[disableConfigure_(managedProperties_,
-              prefs.vpn_config_allowed)]]">
+              prefs.vpn_config_allowed)]]"
+          deep-link-focus-id$="[[Setting.kConfigureEthernet]]">
         $i18n{networkButtonConfigure}
       </cr-button>
       <!-- Use policy properties from vpn_config_allowed to indicate when that
@@ -133,7 +135,10 @@
           label="[[getConnectDisconnectButtonLabel_(managedProperties_,
               globalPolicy,managedNetworkAvailable, deviceState_)]]"
           pref="[[getFakeVpnConfigPrefForEnforcement_(managedProperties_,
-              prefs.vpn_config_allowed)]]">
+              prefs.vpn_config_allowed)]]"
+          deep-link-focus-id$="[[Setting.kDisconnectWifiNetwork]]
+              [[Setting.kDisconnectCellularNetwork]]
+              [[Setting.kDisconnectTetherNetwork]]">
       </controlled-button>
     </div>
 
@@ -210,7 +215,8 @@
           <cr-toggle id="preferNetworkToggle" checked="{{preferNetwork_}}"
               disabled="[[isNetworkPolicyEnforced(
                   managedProperties_.priority)]]"
-              aria-labelledby="preferNetworkToggleLabel">
+              aria-labelledby="preferNetworkToggleLabel"
+              deep-link-focus-id$="[[Setting.kPreferWifiNetwork]]">
           </cr-toggle>
         </div>
       </template>
@@ -220,7 +226,9 @@
               managedNetworkAvailable)]]">
         <settings-toggle-button id="autoConnectToggle" class="hr"
             pref="{{autoConnectPref_}}"
-            label="[[getAutoConnectToggleLabel_(managedProperties_)]]">
+            label="[[getAutoConnectToggleLabel_(managedProperties_)]]"
+            deep-link-focus-id$="[[Setting.kWifiAutoConnectToNetwork]]
+                [[Setting.kCellularAutoConnectToNetwork]]">
         </settings-toggle-button>
         <!-- Hidden Network Warning -->
         <template is="dom-if"
@@ -246,7 +254,8 @@
         <settings-toggle-button id="allowDataRoaming" class="hr"
             pref="{{prefs.cros.signed.data_roaming_enabled}}"
             label="$i18n{networkAllowDataRoaming}"
-            sub-label="[[getRoamingDetails_(managedProperties_)]]">
+            sub-label="[[getRoamingDetails_(managedProperties_)]]"
+            deep-link-focus-id$="[[Setting.kCellularRoaming]]">
         </settings-toggle-button>
       </template>
       <!-- SIM Info (Cellular only). -->
@@ -296,7 +305,9 @@
                   label="$i18n{networkMetered}"
                   sub-label="$i18n{networkMeteredDesc}"
                   checked="{{meteredOverride_}}"
-                  on-checked-changed="meteredChanged_">
+                  on-checked-changed="meteredChanged_"
+                  deep-link-focus-id$="[[Setting.kWifiMetered]]
+                      [[Setting.kCellularMetered]]">
               </network-config-toggle>
             </template>
             <!-- Advanced properties -->
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
index 61d739c6..41d541e2c 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.js
@@ -18,6 +18,7 @@
   behaviors: [
     NetworkListenerBehavior,
     CrPolicyNetworkBehaviorMojo,
+    DeepLinkingBehavior,
     settings.RouteObserverBehavior,
     I18nBehavior,
     WebUIListenerBehavior,
@@ -201,6 +202,37 @@
 
     /** @private */
     proxyExpanded_: Boolean,
+
+    /**
+     * Used by DeepLinkingBehavior to focus this page's deep links.
+     * @type {!Set<!chromeos.settings.mojom.Setting>}
+     */
+    supportedSettingIds: {
+      type: Object,
+      value: () => new Set([
+        chromeos.settings.mojom.Setting.kConfigureEthernet,
+        chromeos.settings.mojom.Setting.kEthernetAutoConfigureIp,
+        chromeos.settings.mojom.Setting.kEthernetDns,
+        chromeos.settings.mojom.Setting.kEthernetProxy,
+        chromeos.settings.mojom.Setting.kDisconnectWifiNetwork,
+        chromeos.settings.mojom.Setting.kPreferWifiNetwork,
+        chromeos.settings.mojom.Setting.kForgetWifiNetwork,
+        chromeos.settings.mojom.Setting.kWifiAutoConfigureIp,
+        chromeos.settings.mojom.Setting.kWifiDns,
+        chromeos.settings.mojom.Setting.kWifiProxy,
+        chromeos.settings.mojom.Setting.kWifiAutoConnectToNetwork,
+        chromeos.settings.mojom.Setting.kCellularRoaming,
+        chromeos.settings.mojom.Setting.kCellularApn,
+        chromeos.settings.mojom.Setting.kDisconnectCellularNetwork,
+        chromeos.settings.mojom.Setting.kCellularAutoConfigureIp,
+        chromeos.settings.mojom.Setting.kCellularDns,
+        chromeos.settings.mojom.Setting.kCellularProxy,
+        chromeos.settings.mojom.Setting.kCellularAutoConnectToNetwork,
+        chromeos.settings.mojom.Setting.kDisconnectTetherNetwork,
+        chromeos.settings.mojom.Setting.kWifiMetered,
+        chromeos.settings.mojom.Setting.kCellularMetered,
+      ]),
+    },
   },
 
   observers: [
@@ -275,6 +307,94 @@
   },
 
   /**
+   * Helper function for manually showing deep links on this page.
+   * @param {!chromeos.settings.mojom.Setting} settingId
+   * @param {!function():?Element} elementCallback
+   * @private
+   */
+  afterRenderShowDeepLink(settingId, elementCallback) {
+    // Wait for element to load.
+    Polymer.RenderStatus.afterNextRender(this, () => {
+      const deepLinkElement = elementCallback();
+      if (!deepLinkElement || deepLinkElement.hidden) {
+        console.warn(`Element with deep link id ${settingId} not focusable.`);
+        return;
+      }
+      this.showDeepLinkElement(deepLinkElement);
+    });
+  },
+
+  /**
+   * Overridden from DeepLinkingBehavior.
+   * @param {!chromeos.settings.mojom.Setting} settingId
+   * @return {boolean}
+   */
+  beforeDeepLinkAttempt(settingId) {
+    // Manually show the deep links for settings in shared elements.
+    if (settingId === chromeos.settings.mojom.Setting.kCellularApn) {
+      this.networkExpanded_ = true;
+      this.afterRenderShowDeepLink(
+          settingId, () => this.$$('network-apnlist').getApnSelect());
+      // Stop deep link attempt since we completed it manually.
+      return false;
+    }
+
+    if (settingId ===
+            chromeos.settings.mojom.Setting.kEthernetAutoConfigureIp ||
+        settingId === chromeos.settings.mojom.Setting.kWifiAutoConfigureIp ||
+        settingId ===
+            chromeos.settings.mojom.Setting.kCellularAutoConfigureIp) {
+      this.networkExpanded_ = true;
+      this.afterRenderShowDeepLink(
+          settingId,
+          () => this.$$('network-ip-config').getAutoConfigIpToggle());
+      return false;
+    }
+
+    if (settingId === chromeos.settings.mojom.Setting.kEthernetDns ||
+        settingId === chromeos.settings.mojom.Setting.kWifiDns ||
+        settingId === chromeos.settings.mojom.Setting.kCellularDns) {
+      this.networkExpanded_ = true;
+      this.afterRenderShowDeepLink(
+          settingId,
+          () => this.$$('network-nameservers').getNameserverRadioButtons());
+      return false;
+    }
+
+    if (settingId === chromeos.settings.mojom.Setting.kEthernetProxy ||
+        settingId === chromeos.settings.mojom.Setting.kWifiProxy ||
+        settingId === chromeos.settings.mojom.Setting.kCellularProxy) {
+      this.proxyExpanded_ = true;
+      this.afterRenderShowDeepLink(
+          settingId,
+          () => this.$$('network-proxy-section').getAllowSharedToggle());
+      return false;
+    }
+
+    if (settingId === chromeos.settings.mojom.Setting.kWifiMetered ||
+        settingId === chromeos.settings.mojom.Setting.kCellularMetered) {
+      this.advancedExpanded_ = true;
+      // Continue with automatically showing these deep links.
+      return true;
+    }
+
+    if (settingId === chromeos.settings.mojom.Setting.kForgetWifiNetwork) {
+      this.afterRenderShowDeepLink(settingId, () => {
+        const forgetButton = this.$$('#forgetButton');
+        if (forgetButton && !forgetButton.hidden) {
+          return forgetButton;
+        }
+        // If forget button is hidden, show disconnect button instead.
+        return this.$$('#connectDisconnect');
+      });
+      return false;
+    }
+
+    // Otherwise, should continue with deep link attempt.
+    return true;
+  },
+
+  /**
    * settings.RouteObserverBehavior
    * @param {!settings.Route} route
    * @param {!settings.Route} oldRoute
@@ -297,6 +417,8 @@
     const type = queryParams.get('type') || 'WiFi';
     const name = queryParams.get('name') || type;
     this.init(guid, type, name);
+
+    this.attemptDeepLink();
   },
 
   /**
@@ -428,9 +550,10 @@
     Polymer.dom.flush();
 
     if (!this.didSetFocus_ &&
-        !settings.Router.getInstance().getQueryParameters().has('search')) {
-      // Unless the page was navigated to via search, focus a button once the
-      // initial state is set.
+        !settings.Router.getInstance().getQueryParameters().has('search') &&
+        !this.getDeepLinkSettingId()) {
+      // Unless the page was navigated to via search or has a deep linked
+      // setting, focus a button once the initial state is set.
       this.didSetFocus_ = true;
       const button = this.$$('#titleDiv .action-button:not([hidden])');
       if (button) {
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.html
index 9fca8f1..1003d71 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.html
@@ -7,6 +7,9 @@
 <link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
 <link rel="import" href="chrome://resources/cr_elements/icons.html">
 <link rel="import" href="../../settings_shared_css.html">
+<link rel="import" href="../deep_linking_behavior.html">
+<link rel="import" href="../os_route.html">
+<link rel="import" href="../../router.html">
 <link rel="import" href="../metrics_recorder.html">
 
 <dom-module id="settings-internet-known-networks-page">
@@ -30,14 +33,15 @@
         $i18n{internetNoNetworks}
       </div>
     </div>
-    <div class="list-frame vertical-list"
+    <div id="preferredNetworkList" class="list-frame vertical-list"
         hidden$="[[!havePreferred_(networkStateList_)]]">
       <template is="dom-repeat" items="[[networkStateList_]]"
           filter="networkIsPreferred_">
         <div class="list-item">
           <cr-link-row embedded label="[[getNetworkDisplayName_(item)]]"
               on-click="fireShowDetails_"
-              role-description="$i18n{subpageArrowRoleDescription}">
+              role-description="$i18n{subpageArrowRoleDescription}"
+              deep-link-focus-id$="[[Setting.kForgetWifiNetwork]]">
             <template is="dom-if" if="[[isPolicySource(item.source))]]">
               <cr-policy-indicator on-click="doNothing_"
                   indicator-type="[[getIndicatorTypeForSource(item.source)]]">
@@ -55,14 +59,16 @@
     <div class="settings-box settings-box-text">
       <div class="secondary">$i18n{knownNetworksAll}</div>
     </div>
-    <div class="list-frame vertical-list"
+    <div id="notPreferredNetworkList" class="list-frame vertical-list"
         hidden$="[[!haveNotPreferred_(networkStateList_)]]">
       <template is="dom-repeat" items="[[networkStateList_]]"
           filter="networkIsNotPreferred_">
         <div class="list-item">
           <cr-link-row embedded label="[[getNetworkDisplayName_(item)]]"
               on-click="fireShowDetails_"
-              role-description="$i18n{subpageArrowRoleDescription}">
+              role-description="$i18n{subpageArrowRoleDescription}"
+              deep-link-focus-id$="[[Setting.kPreferWifiNetwork]]
+                  [[Setting.kForgetWifiNetwork]]">
             <template is="dom-if" if="[[isPolicySource(item.source))]]">
               <cr-policy-indicator on-click="doNothing_"
                   indicator-type="[[getIndicatorTypeForSource(item.source)]]">
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.js
index d0f8022..52efbea 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_known_networks_page.js
@@ -11,8 +11,10 @@
   is: 'settings-internet-known-networks-page',
 
   behaviors: [
+    DeepLinkingBehavior,
     NetworkListenerBehavior,
     CrPolicyNetworkBehaviorMojo,
+    settings.RouteObserverBehavior,
   ],
 
   properties: {
@@ -49,6 +51,28 @@
      * @private
      */
     enableForget_: Boolean,
+
+    /**
+     * Contains the settingId of any deep link that wasn't able to be shown,
+     * null otherwise.
+     * @private {?chromeos.settings.mojom.Setting}
+     */
+    pendingSettingId_: {
+      type: chromeos.settings.mojom.Setting,
+      value: null,
+    },
+
+    /**
+     * Used by DeepLinkingBehavior to focus this page's deep links.
+     * @type {!Set<!chromeos.settings.mojom.Setting>}
+     */
+    supportedSettingIds: {
+      type: Object,
+      value: () => new Set([
+        chromeos.settings.mojom.Setting.kPreferWifiNetwork,
+        chromeos.settings.mojom.Setting.kForgetWifiNetwork,
+      ]),
+    },
   },
 
   /** @private {string} */
@@ -63,6 +87,27 @@
                               .getMojoServiceRemote();
   },
 
+  /**
+   * settings.RouteObserverBehavior
+   * @param {!settings.Route} route
+   * @param {!settings.Route} oldRoute
+   * @protected
+   */
+  currentRouteChanged(route, oldRoute) {
+    // Does not apply to this page.
+    if (route != settings.routes.KNOWN_NETWORKS) {
+      return;
+    }
+
+    this.attemptDeepLink().then(result => {
+      if (!result.deepLinkShown && result.pendingSettingId) {
+        // Store any deep link settingId that wasn't shown so we can try again
+        // in refreshNetworks.
+        this.pendingSettingId_ = result.pendingSettingId;
+      }
+    });
+  },
+
   /** CrosNetworkConfigObserver impl */
   onNetworkStateListChanged() {
     this.refreshNetworks_();
@@ -89,6 +134,17 @@
     };
     this.networkConfig_.getNetworkStateList(filter).then(response => {
       this.networkStateList_ = response.result;
+
+      // Check if we have yet to focus a deep-linked element.
+      if (!this.pendingSettingId_) {
+        return;
+      }
+
+      this.showDeepLink(this.pendingSettingId_).then(result => {
+        if (result.deepLinkShown) {
+          this.pendingSettingId_ = null;
+        }
+      });
     });
   },
 
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html
index d8fd1dc..3f8caefb 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html
@@ -13,6 +13,7 @@
 <link rel="import" href="../../chromeos/os_settings_icons_css.html">
 <link rel="import" href="../../i18n_setup.html">
 <link rel="import" href="../../prefs/prefs.html">
+<link rel="import" href="../deep_linking_behavior.html">
 <link rel="import" href="../os_route.html">
 <link rel="import" href="../../router.html">
 <link rel="import" href="../../settings_page/settings_animated_pages.html">
@@ -41,7 +42,8 @@
         focus-config="[[focusConfig_]]">
       <div route-path="default">
         <network-summary default-network="{{defaultNetwork}}"
-            device-states="{{deviceStates}}">
+            device-states="{{deviceStates}}"
+            on-active-networks-updated="attemptDeepLink">
         </network-summary>
         <template is="dom-if" if="[[allowAddConnection_(globalPolicy_,
             managedNetworkAvailable)]]">
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
index e59dc76..9eba778d 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js
@@ -16,6 +16,7 @@
 
   behaviors: [
     NetworkListenerBehavior,
+    DeepLinkingBehavior,
     I18nBehavior,
     settings.RouteObserverBehavior,
     WebUIListenerBehavior,
@@ -131,6 +132,18 @@
         return new Map();
       },
     },
+
+    /**
+     * Used by DeepLinkingBehavior to focus this page's deep links.
+     * @type {!Set<!chromeos.settings.mojom.Setting>}
+     */
+    supportedSettingIds: {
+      type: Object,
+      value: () => new Set([
+        chromeos.settings.mojom.Setting.kWifiOnOff,
+        chromeos.settings.mojom.Setting.kMobileOnOff,
+      ]),
+    },
   },
 
   /**
@@ -172,6 +185,32 @@
   },
 
   /**
+   * Overridden from DeepLinkingBehavior.
+   * @param {!chromeos.settings.mojom.Setting} settingId
+   * @return {boolean}
+   */
+  beforeDeepLinkAttempt(settingId) {
+    // Manually show the deep links for settings nested within elements.
+    let networkType = null;
+    if (settingId === chromeos.settings.mojom.Setting.kWifiOnOff) {
+      networkType = mojom.NetworkType.kWiFi;
+    } else if (settingId === chromeos.settings.mojom.Setting.kMobileOnOff) {
+      networkType = mojom.NetworkType.kCellular;
+    }
+
+    Polymer.RenderStatus.afterNextRender(this, () => {
+      const networkRow = this.$$('network-summary').getNetworkRow(networkType);
+      if (networkRow && networkRow.getDeviceEnabledToggle()) {
+        this.showDeepLinkElement(networkRow.getDeviceEnabledToggle());
+        return;
+      }
+      console.warn(`Element with deep link id ${settingId} not focusable.`);
+    });
+    // Stop deep link attempt since we completed it manually.
+    return false;
+  },
+
+  /**
    * settings.RouteObserverBehavior
    * @param {!settings.Route} route
    * @param {!settings.Route} oldRoute
@@ -194,8 +233,10 @@
       if (type) {
         this.knownNetworksType_ = OncMojo.getNetworkTypeFromString(type);
       }
-    } else if (
-        route != settings.routes.INTERNET && route != settings.routes.BASIC) {
+    } else if (route == settings.routes.INTERNET) {
+      // Show deep links for the internet page.
+      this.attemptDeepLink();
+    } else if (route != settings.routes.BASIC) {
       // If we are navigating to a non internet section, do not set focus.
       return;
     }
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.html
index d66cdc65..20bf86b 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.html
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.html
@@ -17,6 +17,7 @@
 <link rel="import" href="../localized_link/localized_link.html">
 <link rel="import" href="../../chromeos/os_settings_icons_css.html">
 <link rel="import" href="../../i18n_setup.html">
+<link rel="import" href="../deep_linking_behavior.html">
 <link rel="import" href="../os_route.html">
 <link rel="import" href="../../router.html">
 <link rel="import" href="../route_origin_behavior.html">
@@ -101,20 +102,24 @@
           <!-- The add button in this row is only shown for Mobile networks. -->
           <cr-icon-button class="icon-add-cellular add-button"
               aria-label="$i18n{internetAddCellular}" id="addCellularButton"
-              tabindex$="[[tabindex]]" on-click="onAddCellularButtonTap_">
+              tabindex$="[[tabindex]]" on-click="onAddCellularButtonTap_"
+              deep-link-focus-id$="[[Setting.kCellularAddNetwork]]">
           </cr-icon-button>
         </template>
         <!-- The add button in this row is only shown for WiFi networks. -->
-        <cr-icon-button class="icon-add-wifi add-button"
+        <cr-icon-button class="icon-add-wifi add-button" id="addWifiButton"
             hidden$="[[!showAddWifiButton_(deviceState, globalPolicy)]]"
             aria-label="$i18n{internetAddWiFi}" on-click="onAddWifiButtonTap_"
-            tabindex$="[[tabindex]]">
+            tabindex$="[[tabindex]]" 
+            deep-link-focus-id$="[[Setting.kWifiAddNetwork]]">
         </cr-icon-button>
         <cr-toggle id="deviceEnabledButton"
             aria-label$="[[getToggleA11yString_(deviceState)]]"
             checked="[[deviceIsEnabled_(deviceState)]]"
             disabled="[[!enableToggleIsEnabled_(deviceState)]]"
-            on-change="onDeviceEnabledChange_">
+            on-change="onDeviceEnabledChange_"
+            deep-link-focus-id$="[[Setting.kWifiOnOff]]
+                [[Setting.kMobileOnOff]]">
         </cr-toggle>
       </div>
     </template>
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.js
index fc99fa3..0c2fda67 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_subpage.js
@@ -17,6 +17,7 @@
   behaviors: [
     NetworkListenerBehavior,
     CrPolicyNetworkBehaviorMojo,
+    DeepLinkingBehavior,
     settings.RouteObserverBehavior,
     settings.RouteOriginBehavior,
     I18nBehavior,
@@ -126,6 +127,31 @@
       type: Boolean,
       value: false,
     },
+
+    /**
+     * Contains the settingId of any deep link that wasn't able to be shown,
+     * null otherwise.
+     * @private {?chromeos.settings.mojom.Setting}
+     */
+    pendingSettingId_: {
+      type: chromeos.settings.mojom.Setting,
+      value: null,
+    },
+
+    /**
+     * Used by DeepLinkingBehavior to focus this page's deep links.
+     * @type {!Set<!chromeos.settings.mojom.Setting>}
+     */
+    supportedSettingIds: {
+      type: Object,
+      value: () => new Set([
+        chromeos.settings.mojom.Setting.kWifiOnOff,
+        chromeos.settings.mojom.Setting.kWifiAddNetwork,
+        chromeos.settings.mojom.Setting.kMobileOnOff,
+        chromeos.settings.mojom.Setting.kInstantTetheringOnOff,
+        chromeos.settings.mojom.Setting.kCellularAddNetwork,
+      ]),
+    },
   },
 
   /** settings.RouteOriginBehavior override */
@@ -165,6 +191,39 @@
   },
 
   /**
+   * Overridden from DeepLinkingBehavior.
+   * @param {!chromeos.settings.mojom.Setting} settingId
+   * @return {boolean}
+   */
+  beforeDeepLinkAttempt(settingId) {
+    if (settingId !== chromeos.settings.mojom.Setting.kInstantTetheringOnOff) {
+      // Continue with deep linking attempt.
+      return true;
+    }
+
+    // Wait for element to load.
+    Polymer.RenderStatus.afterNextRender(this, () => {
+      // If both Cellular and Instant Tethering are enabled, we show a special
+      // toggle for Instant Tethering. If it exists, deep link to it.
+      const tetherEnabled = this.$$('#tetherEnabledButton');
+      if (tetherEnabled) {
+        this.showDeepLinkElement(tetherEnabled);
+        return;
+      }
+      // Otherwise, the device does not support Cellular and Instant Tethering
+      // on/off is controlled by the top-level "Mobile data" toggle instead.
+      const deviceEnabled = this.$$('#deviceEnabledButton');
+      if (deviceEnabled) {
+        this.showDeepLinkElement(deviceEnabled);
+        return;
+      }
+      console.warn(`Element with deep link id ${settingId} not focusable.`);
+    });
+    // Stop deep link attempt since we completed it manually.
+    return false;
+  },
+
+  /**
    * settings.RouteObserverBehavior
    * @param {!settings.Route} newRoute
    * @param {!settings.Route} oldRoute
@@ -178,6 +237,14 @@
     this.init();
     settings.RouteOriginBehaviorImpl.currentRouteChanged.call(
         this, newRoute, oldRoute);
+
+    this.attemptDeepLink().then(result => {
+      if (!result.deepLinkShown && result.pendingSettingId) {
+        // Store any deep link settingId that wasn't shown so we can try again
+        // in getNetworkStateList_.
+        this.pendingSettingId_ = result.pendingSettingId;
+      }
+    });
   },
 
   init() {
@@ -313,6 +380,17 @@
     };
     this.networkConfig_.getNetworkStateList(filter).then(response => {
       this.onGetNetworks_(response.result);
+
+      // Check if we have yet to focus a deep-linked element.
+      if (!this.pendingSettingId_) {
+        return;
+      }
+
+      this.showDeepLink(this.pendingSettingId_).then(result => {
+        if (result.deepLinkShown) {
+          this.pendingSettingId_ = null;
+        }
+      });
     });
   },
 
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/network_proxy_section.js b/chrome/browser/resources/settings/chromeos/internet_page/network_proxy_section.js
index 18d3628..d8f7f25 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/network_proxy_section.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/network_proxy_section.js
@@ -37,6 +37,14 @@
     'useSharedProxiesChanged_(prefs.settings.use_shared_proxies.value)',
   ],
 
+  /**
+   * Returns the allow shared CrToggleElement.
+   * @return {?CrToggleElement}
+   */
+  getAllowSharedToggle() {
+    return /** @type {?CrToggleElement} */ (this.$$('#allowShared'));
+  },
+
   /** @protected settings.RouteObserverBehavior */
   currentRouteChanged(newRoute) {
     if (newRoute == settings.routes.NETWORK_DETAIL) {
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/network_summary.js b/chrome/browser/resources/settings/chromeos/internet_page/network_summary.js
index 86b057c..4a245c6 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/network_summary.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/network_summary.js
@@ -264,6 +264,7 @@
     this.networkStateLists_ = newNetworkStateLists;
     // Set activeNetworkStates last to rebuild the dom-repeat.
     this.activeNetworkStates_ = newActiveNetworkStates;
+    this.fire('active-networks-updated');
   },
 
   /**
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js b/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
index cd79c87..9d71a5e 100644
--- a/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
+++ b/chrome/browser/resources/settings/chromeos/internet_page/network_summary_item.js
@@ -76,6 +76,14 @@
     },
   },
 
+  /*
+   * Returns the device enabled toggle element.
+   * @return {?CrToggleElement}
+   */
+  getDeviceEnabledToggle() {
+    return this.$$('#deviceEnabledButton');
+  },
+
   /**
    * @return {string}
    * @private
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
index 887913c..24422d5 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/BUILD.gn
@@ -39,7 +39,14 @@
 }
 
 js_library("input_page") {
-  deps = [ ":languages_metrics_proxy" ]
+  deps = [
+    ":input_method_util",
+    ":languages_metrics_proxy",
+    "..:os_route",
+    "../..:router",
+    "//ui/webui/resources/js:i18n_behavior",
+    "//ui/webui/resources/js:load_time_data",
+  ]
 }
 
 js_library("languages_metrics_proxy") {
@@ -163,7 +170,15 @@
 
 js_library("input_page.m") {
   sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.m.js" ]
-  deps = [ ":languages_metrics_proxy.m" ]
+  deps = [
+    ":input_method_util.m",
+    ":languages_metrics_proxy.m",
+    "..:os_route.m",
+    "../..:i18n_setup",
+    "../..:router.m",
+    "//ui/webui/resources/js:i18n_behavior.m",
+    "//ui/webui/resources/js:load_time_data.m",
+  ]
   extra_deps = [ ":input_page_module" ]
 }
 
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.html b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.html
index 2d164cc..7dd7dda 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.html
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.html
@@ -1,8 +1,14 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
+<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html">
+<link rel="import" href="chrome://resources/html/i18n_behavior.html">
+<link rel="import" href="input_method_util.html">
 <link rel="import" href="languages_metrics_proxy.html">
+<link rel="import" href="../os_route.html">
 <link rel="import" href="../../controls/settings_toggle_button.html">
 <link rel="import" href="../../prefs/prefs_behavior.html">
+<link rel="import" href="../../i18n_setup.html">
+<link rel="import" href="../../router.html">
 <link rel="import" href="../../settings_shared_css.html">
 
 <dom-module id="os-settings-input-page">
@@ -11,6 +17,28 @@
       h2 {
         padding-inline-start: var(--cr-section-padding);
       }
+
+      .icon-external {
+        margin-inline-end: 0;
+      }
+
+      /* The default implementation of the actionable list item makes the
+       * entire list item row a button such that clicking anywhere will
+       * activate the action of the list item. The input method list behaves
+       * differently in that clicking the list item sets that item as the input
+       * method, and the selected list item should not react to selection after
+       * being selected. Sets the cursor to auto to override the default
+       * implementation which would otherwise make the entire row appear
+       * clickable when it is not.
+       */
+      .selected[actionable] {
+        cursor: auto;
+      }
+
+      .internal-wrapper,
+      .external-wrapper {
+        display: flex;
+      }
     </style>
 
     <div route-path="default">
@@ -20,6 +48,48 @@
           label="$i18n{showImeMenu}"
           on-settings-boolean-control-change="onShowImeMenuChange_">
       </settings-toggle-button>
+
+      <div class="hr">
+        <h2>$i18n{inputMethodListTitle}</h2>
+        <div class="list-frame vertical-list" id="inputMethodsList">
+          <template is="dom-repeat"
+              items="[[languages.inputMethods.enabled]]">
+            <div class$="list-item [[getInputMethodItemClass_(
+                item.id, languages.inputMethods.currentId)]]"
+                actionable on-click="onInputMethodClick_"
+                on-keypress="onInputMethodKeyPress_" 
+                tabindex$="[[getInputMethodTabIndex_(
+                    item.id, languages.inputMethods.currentId)]]"
+                aria-labelledby$="language-[[index]]" role="button">
+              <div class="start" id="language-[[index]]" aria-hidden="true">
+                <div class="display-name">[[item.displayName]]</div>
+              </div>
+              <template is="dom-if"
+                  if="[[hasOptionsPageInSettings_(item.id)]]">
+                <div class="internal-wrapper"
+                    hidden="[[!item.hasOptionsPage]]">
+                  <cr-icon-button class="subpage-arrow"
+                      aria-label$="[[getOpenOptionsPageLabel_(
+                      item.displayName)]]"
+                      on-click="navigateToOptionsPageInSettings_">
+                  </cr-icon-button>
+                </div>
+              </template>
+              <template is="dom-if"
+                  if="[[!hasOptionsPageInSettings_(item.id)]]">
+                <div class="external-wrapper"
+                    hidden="[[!item.hasOptionsPage]]">
+                  <cr-icon-button class="icon-external"
+                      aria-label$="[[getOpenOptionsPageLabel_(
+                      item.displayName)]]"
+                      on-click="openExtensionOptionsPage_">
+                  </cr-icon-button>
+                </div>
+              </template>
+            </div>
+          </template>
+        </div>
+      </div>
     </div>
   </template>
   <script src="input_page.js"></script>
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js
index bdb397b..9c58af17 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/input_page.js
@@ -10,6 +10,7 @@
   is: 'os-settings-input-page',
 
   behaviors: [
+    I18nBehavior,
     PrefsBehavior,
   ],
 
@@ -21,6 +22,18 @@
       type: Object,
       notify: true,
     },
+
+    /**
+     * Read-only reference to the languages model provided by the
+     * 'os-settings-languages' instance.
+     * @type {!LanguagesModel|undefined}
+     */
+    languages: {
+      type: Object,
+    },
+
+    /** @type {!LanguageHelper} */
+    languageHelper: Object,
   },
 
   /** @private {?settings.LanguagesMetricsProxy} */
@@ -40,4 +53,110 @@
     this.languagesMetricsProxy_.recordToggleShowInputOptionsOnShelf(
         e.target.checked);
   },
+
+  /**
+   * Handler for click events on an input method on the main page,
+   * which sets it as the current input method.
+   * @param {!{model: !{item: !chrome.languageSettingsPrivate.InputMethod},
+   *           target: !{tagName: string}}} e
+   * @private
+   */
+  onInputMethodClick_(e) {
+    // Clicks on the button are handled in onInputMethodOptionsClick_.
+    if (e.target.tagName === 'CR-ICON-BUTTON') {
+      return;
+    }
+
+    this.languageHelper.setCurrentInputMethod(e.model.item.id);
+  },
+
+  /**
+   * Handler for <Enter> events on an input method on the main page,
+   * which sets it as the current input method.
+   * @param {!{model: !{item: !chrome.languageSettingsPrivate.InputMethod},
+   *           key: string}} e
+   * @private
+   */
+  onInputMethodKeyPress_(e) {
+    // Ignores key presses other than <Enter>.
+    if (e.key !== 'Enter') {
+      return;
+    }
+
+    this.languageHelper.setCurrentInputMethod(e.model.item.id);
+  },
+
+  /**
+   * Opens the input method extension's options page in a new tab (or focuses
+   * an existing instance of the IME's options).
+   * @param {!{model: !{item: chrome.languageSettingsPrivate.InputMethod}}} e
+   * @private
+   */
+  openExtensionOptionsPage_(e) {
+    this.languageHelper.openInputMethodOptions(e.model.item.id);
+  },
+
+
+  /**
+   * @param {string} id The input method ID.
+   * @return {boolean} True if there is a options page in ChromeOS settings
+   *     for the input method ID.
+   * @private
+   */
+  hasOptionsPageInSettings_(id) {
+    return loadTimeData.getBoolean('imeOptionsInSettings') &&
+        settings.input_method_util.hasOptionsPageInSettings(id);
+  },
+
+  /**
+   * @param {!{model: !{item: chrome.languageSettingsPrivate.InputMethod}}} e
+   * @private
+   */
+  navigateToOptionsPageInSettings_(e) {
+    const params = new URLSearchParams;
+    params.append('id', e.model.item.id);
+    settings.Router.getInstance().navigateTo(
+        settings.routes.OS_LANGUAGES_INPUT_METHOD_OPTIONS, params);
+  },
+
+  /**
+   * @param {string} id The input method ID.
+   * @param {string} currentId The ID of the currently enabled input method.
+   * @return {boolean} True if the IDs match.
+   * @private
+   */
+  isCurrentInputMethod_(id, currentId) {
+    return id === currentId;
+  },
+
+  /**
+   * @param {string} id The input method ID.
+   * @param {string} currentId The ID of the currently enabled input method.
+   * @return {string} The class for the input method item.
+   * @private
+   */
+  getInputMethodItemClass_(id, currentId) {
+    return this.isCurrentInputMethod_(id, currentId) ? 'selected' : '';
+  },
+
+  /**
+   * @param {string} id The selected input method ID.
+   * @param {string} currentId The ID of the currently enabled input method.
+   * @return {string} The default tab index '0' if the selected input method
+   *     is not currently enabled; otherwise, returns an empty string which
+   *     effectively unsets the tabindex attribute.
+   * @private
+   */
+  getInputMethodTabIndex_(id, currentId) {
+    return id === currentId ? '' : '0';
+  },
+
+  /**
+   * @param {string} inputMethodName
+   * @return {string}
+   * @private
+   */
+  getOpenOptionsPageLabel_(inputMethodName) {
+    return this.i18n('openOptionsPage', inputMethodName);
+  },
 });
diff --git a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.html b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.html
index 6f2a9db..8843df8 100644
--- a/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.html
+++ b/chrome/browser/resources/settings/chromeos/os_languages_page/os_languages_section.html
@@ -98,7 +98,8 @@
         <settings-subpage
             associated-control="[[$$('#inputPageTrigger')]]"
             page-title="$i18n{inputPageTitle}">
-          <os-settings-input-page prefs="{{prefs}}">
+          <os-settings-input-page language-helper="[[languageHelper]]"
+              languages="[[languages]]" prefs="{{prefs}}">
           </os-settings-input-page>
         </settings-subpage>
       </template>
diff --git a/chrome/browser/sessions/session_restore_browsertest_chromeos.cc b/chrome/browser/sessions/session_restore_browsertest_chromeos.cc
index b00e5c03..4c827c4 100644
--- a/chrome/browser/sessions/session_restore_browsertest_chromeos.cc
+++ b/chrome/browser/sessions/session_restore_browsertest_chromeos.cc
@@ -34,7 +34,7 @@
 namespace {
 const char* test_app_name1 = "TestApp1";
 const char* test_app_name2 = "TestApp2";
-}
+}  // namespace
 
 class SessionRestoreTestChromeOS : public InProcessBrowserTest {
  public:
@@ -159,7 +159,7 @@
       ++app2_count;
   }
   EXPECT_EQ(1u, app1_count);
-  EXPECT_EQ(2u, app2_count);  // Only the trusted app windows are restored.
+  EXPECT_EQ(2u, app2_count);   // Only the trusted app windows are restored.
   EXPECT_EQ(4u, total_count);  // Default browser() + 3 app windows
 }
 
@@ -294,7 +294,8 @@
   SystemWebAppSessionRestoreTestChromeOS()
       : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
     maybe_installation_ =
-        web_app::TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp();
+        web_app::TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp(
+            install_from_web_app_info());
     maybe_installation_->set_update_policy(
         web_app::SystemWebAppManager::UpdatePolicy::kOnVersionChange);
   }
@@ -339,8 +340,11 @@
   }
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppSessionRestoreTestChromeOS,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppSessionRestoreTestChromeOS,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/tabmodel/BUILD.gn b/chrome/browser/tabmodel/BUILD.gn
index d870d79..59341e3 100644
--- a/chrome/browser/tabmodel/BUILD.gn
+++ b/chrome/browser/tabmodel/BUILD.gn
@@ -14,6 +14,8 @@
     "android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHost.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry.java",
+    "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
+    "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/NextTabPolicy.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabCreator.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java",
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java
new file mode 100644
index 0000000..c205778
--- /dev/null
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java
@@ -0,0 +1,22 @@
+// Copyright 2020 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.tabmodel;
+
+/**
+ * A {@link TabModel} which also emits events relevant to incognito tabs.
+ */
+public interface IncognitoTabModel extends TabModel {
+    /**
+     * Subscribes an {@link IncognitoTabModelObserver} to be notified about incognito events.
+     * @param observer The observer to be subscribed.
+     */
+    void addIncognitoObserver(IncognitoTabModelObserver observer);
+
+    /**
+     * Unsubscribes an {@link IncognitoTabModelObserver}.
+     * @param observer The observer to be unsubscribed.
+     */
+    void removeIncognitoObserver(IncognitoTabModelObserver observer);
+}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java
new file mode 100644
index 0000000..843664f
--- /dev/null
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java
@@ -0,0 +1,20 @@
+// Copyright 2020 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.tabmodel;
+
+/**
+ * An observer of {@link IncognitoTabModel} that receives events relevant to incognito tabs.
+ */
+public interface IncognitoTabModelObserver {
+    /**
+     * Called when the first tab of the {@link IncognitoTabModel} is created.
+     */
+    default void wasFirstTabCreated() {}
+
+    /**
+     * Called when the last tab of the {@link IncognitoTabModel} is closed.
+     */
+    default void didBecomeEmpty() {}
+}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
index 20b25289..269d06e 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
@@ -180,6 +180,14 @@
     boolean isReparentingInProgress();
 
     /**
+     * Subscribe an {@link IncognitoTabModelObserver} to events that the {@link IncognitoTabModel}
+     * in this selector emits.  The model could be observed directly, but observing the
+     * selector allows an observer to subscribe itself before the model is created.
+     * @param incognitoObserver The observer to subscribe.
+     */
+    void addIncognitoTabModelObserver(IncognitoTabModelObserver incognitoObserver);
+
+    /**
      * Destroy all owned {@link TabModel}s and {@link Tab}s referenced by this selector.
      */
     void destroy();
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
index b444a06..d879eea 100644
--- a/chrome/browser/tracing/crash_service_uploader.cc
+++ b/chrome/browser/tracing/crash_service_uploader.cc
@@ -156,7 +156,7 @@
   // On ChromeOS, defined(OS_LINUX) also evalutes to true, so the
   // defined(OS_CHROMEOS) block must come first.
   const char product[] = "Chrome_ChromeOS";
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
   const char product[] = "Chrome_Linux";
 #elif defined(OS_ANDROID)
   const char product[] = "Chrome_Android";
diff --git a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
index 8bb9f80..6e672c4 100644
--- a/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
+++ b/chrome/browser/ui/android/autofill/card_unmask_prompt_view_android.cc
@@ -8,6 +8,7 @@
 #include "chrome/browser/android/resource_mapper.h"
 #include "chrome/browser/ui/autofill/payments/create_card_unmask_prompt_view.h"
 #include "components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h"
+#include "components/autofill/core/common/autofill_payments_features.h"
 #include "content/public/browser/web_contents.h"
 #include "ui/android/view_android.h"
 #include "ui/android/window_android.h"
@@ -153,6 +154,12 @@
              env, reinterpret_cast<intptr_t>(this), dialog_title, instructions,
              confirm,
              ResourceMapper::MapToJavaDrawableId(controller_->GetCvcImageRid()),
+             base::FeatureList::IsEnabled(
+                 features::kAutofillDownstreamCvcPromptUseGooglePayLogo)
+                 ? ResourceMapper::MapToJavaDrawableId(
+                       controller_->GetGooglePayImageRid())
+                 : -1,
+             controller_->IsCardLocal(),
              controller_->ShouldRequestExpirationDate(),
              controller_->GetStoreLocallyStartState(),
              controller_->ShouldOfferWebauthn(),
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
index bffaeb9..6454842 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">إدارة المزامنة</translation>
 <translation id="4320177379694898372">لا يتوفر اتصال بالإنترنت</translation>
 <translation id="4321739720395210191">تعذّر فتح الكاميرا. يمكنك إعادة تشغيل الجهاز والمحاولة مجددًا.</translation>
+<translation id="4335835283689002019">التصفُّح الآمن غير مُفعّل.</translation>
 <translation id="4351244548802238354">إغلاق مربع الحوار</translation>
 <translation id="4378154925671717803">هاتف</translation>
 <translation id="4382908510000698092">‏الاستخدام كلغة Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">يجب ألا يضم اللقب أرقامًا</translation>
 <translation id="4663756553811254707">تم حذف <ph name="NUMBER_OF_BOOKMARKS" /> من الإشارات المرجعية</translation>
 <translation id="4665282149850138822">تمت إضافة <ph name="NAME" /> إلى صفحتك الرئيسية</translation>
+<translation id="4668347365065281350">جميع البيانات المُخزَّنة من خلال المواقع الإلكترونية بما في ذلك ملفات تعريف الارتباط وغيرها من البيانات المُخزَّنَة محليًا</translation>
 <translation id="4684427112815847243">مزامنة كل شيء</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 وخيار إضافي واحد (<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />)}zero{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيار إضافي}two{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 وخياران إضافيان (<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />)}few{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيارات إضافية}many{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيارًا إضافيًا}other{‏<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 و<ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> خيار إضافي}}</translation>
 <translation id="4696983787092045100">إرسال رسالة نصية إلى أجهزتك</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">علامات تبويب التصفح المتخفي</translation>
 <translation id="5763514718066511291">‏النقر لنسخ عنوان URL لهذا التطبيق</translation>
 <translation id="5765780083710877561">الوصف:</translation>
+<translation id="5776970333778123608">بيانات غير مهمة</translation>
 <translation id="5793665092639000975">يتم استخدام <ph name="SPACE_USED" /> من أصل <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">البحث والتصفُّح</translation>
 <translation id="5797070761912323120">‏قد تستخدم Google سجلّك لتخصيص البحث والإعلانات وخدمات Google الأخرى.</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">عبارة المرور</translation>
 <translation id="9063523880881406963">إيقاف طلب الموقع الإلكتروني لسطح المكتب</translation>
 <translation id="9065203028668620118">تعديل</translation>
+<translation id="9065383040763568503">‏البيانات المُخزَّنة التي لا يعتقد متصفِّح Chrome أنها مهمة (على سبيل المثال، المواقع الإلكترونية التي لا تتضمَّن إعدادات محفوظة أو تلك التي لا تزورها كثيرًا)</translation>
 <translation id="9069543557624799859">سيبدأ التنزيل في <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">بدء البحث الصوتي</translation>
 <translation id="9074336505530349563">‏للحصول على محتوى مُخصَّص اقترحته Google، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
index 4e74ab45f..90cc9dfe 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -55,7 +55,7 @@
 <translation id="1360432990279830238">ছাইন আউট কৰি ছিংক বন্ধ কৰিবনে?</translation>
 <translation id="1373696734384179344">বাছনি কৰা সমল ডাউনল’ড কৰিবলৈ পর্যাপ্ত মে’মৰী নাই।</translation>
 <translation id="1376578503827013741">গণনা কৰি থকা হৈছে…</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" />দিনৰ পূৰ্বে সক্ৰিয় আছিল</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" />ৰ জৰিয়তে সন্ধান কৰক</translation>
 <translation id="1406000523432664303">“ট্ৰেক নকৰিব”</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">ছিংক পৰিচালনা কৰক</translation>
 <translation id="4320177379694898372">ইণ্টাৰনেট সংযোগ নাই</translation>
 <translation id="4321739720395210191">আপোনাৰ কেমেৰাটো খুলিব নোৱাৰি। আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক আৰু পুনৰ চেষ্টা কৰক।</translation>
+<translation id="4335835283689002019">সুৰক্ষিত ব্ৰাউজিং অফ আছে</translation>
 <translation id="4351244548802238354">ডায়ল'গ বন্ধ কৰক</translation>
 <translation id="4378154925671717803">ফ'ন</translation>
 <translation id="4382908510000698092">Chromeৰ ভাষা হিচাপে ব্যৱহাৰ কৰক</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">উপনামত সংখ্যা থাকিব নোৱাৰে</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" />টা বুকমাৰ্ক মচা হ’ল</translation>
 <translation id="4665282149850138822">আপোনাৰ গৃহ স্ক্ৰীণত <ph name="NAME" />ক যোগ দিয়া হৈছে</translation>
+<translation id="4668347365065281350">কুকি আৰু স্থানীয়ভাৱে ষ্ট’ৰ কৰা অন্য ডেটাকে ধৰি ছাইটসমূহে ষ্ট’ৰ কৰা সকলো ডেটা</translation>
 <translation id="4684427112815847243">সকলো ছিংক কৰক</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 আৰু <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টা}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 আৰু <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টা}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 আৰু <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টা}}</translation>
 <translation id="4696983787092045100">আপোনাৰ ডিভাইচসমূহলৈ পাঠ পঠিয়াওক</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ইনক'গনিট' টেব</translation>
 <translation id="5763514718066511291">এই এপৰ URLটো প্ৰতিলিপি কৰিবলৈ টিপক</translation>
 <translation id="5765780083710877561">বিৱৰণ:</translation>
+<translation id="5776970333778123608">গুৰুত্বহীন ডেটা</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />ৰ <ph name="SPACE_USED" /> ব্যৱহাৰ কৰা হৈছে</translation>
 <translation id="5795872532621730126">সন্ধান আৰু ব্ৰাউজ কৰক</translation>
 <translation id="5797070761912323120">Googleএ Search, বিজ্ঞাপন আৰু অন্য Google সেৱা ব্যক্তিকৃত কৰিবলৈ আপোনাৰ ব্ৰাউজিঙৰ ইতিহাস ব্যৱহাৰ কৰিব পাৰে</translation>
@@ -1044,6 +1047,7 @@
 <translation id="9050666287014529139">পাছফ্ৰেজ</translation>
 <translation id="9063523880881406963">ডেস্কটপ ছাইট অনুৰোধ কৰা সুবিধাটি বন্ধ কৰক</translation>
 <translation id="9065203028668620118">সম্পাদনা কৰক</translation>
+<translation id="9065383040763568503">Chromeএ গুৰুত্বপূৰ্ণ বুলি গণ্য নকৰা ষ্ট’ৰ কৰি ৰখা ডেটা (যেনে, এনে ছাইট যিবিলাকৰ ছেটিংসমূহ ছেভ কৰি ৰখা হোৱা নাই অথবা যিবিলাক আপুনি সঘনাই নাচায়)</translation>
 <translation id="9069543557624799859">ডাউনল’ডটো <ph name="TIME" />ত আৰম্ভ হ’ব।</translation>
 <translation id="9070377983101773829">কণ্ঠধ্বনিৰ জৰিয়তে সন্ধান আৰম্ভ কৰক</translation>
 <translation id="9074336505530349563">Googleএ পৰামৰ্শ কৰা ব্যক্তিগতকৰণ কৰা সমল পাবলৈ ছাইন ইন কৰি ছিংক অন কৰক</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
index 8057bf8..bb26821df 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Sinxronizasiyanı idarə edin</translation>
 <translation id="4320177379694898372">İnternet bağlantısı yoxdur</translation>
 <translation id="4321739720395210191">Kameranı açmaq olmur. Cihazı yenidən başladıb təkrar cəhd edin.</translation>
+<translation id="4335835283689002019">Təhlükəsiz Baxış deaktivdir</translation>
 <translation id="4351244548802238354">Dialoqu qapadın</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Chrome dili olaraq istifadə edin</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Ləqəbdə rəqəm olmamalıdır</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> əlfəcin silindi</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> əsas ekranınıza əlavə edildi</translation>
+<translation id="4668347365065281350">Kukilər və digər yerli yadda saxlanmış data daxil olmaqla, saytların saxladığı bütün dütü</translation>
 <translation id="4684427112815847243">Hər şeyi sinxronlaşdırın</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 və <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> digəri}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 və <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> digəri}}</translation>
 <translation id="4696983787092045100">Mətni Cihazlarınıza göndərin</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">İnkoqnito vərəqələri</translation>
 <translation id="5763514718066511291">Linki bu tətbiqə kopyalamaq üçün klikləyin</translation>
 <translation id="5765780083710877561">Təsvir:</translation>
+<translation id="5776970333778123608">Əhəmiyyətsiz data</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" />/<ph name="SPACE_AVAILABLE" /> istifadə edilib</translation>
 <translation id="5795872532621730126">Axtarış və baxış</translation>
 <translation id="5797070761912323120">Axtarış, reklam və digər Google xidmətlərini fərdiləşdirmək üçün Google tarixçədən istifadə edə bilər</translation>
@@ -1045,6 +1048,7 @@
 <translation id="9050666287014529139">Parol ifadəsi</translation>
 <translation id="9063523880881406963">Əsas Versiya Sorğusunu deaktiv edin</translation>
 <translation id="9065203028668620118">Düzəliş edin</translation>
+<translation id="9065383040763568503">Chrome'un vacib olduğunu düşünmədiyi saxlanmış data (məs. yadda saxlanmayan ayarlar ilə olan və ya tez-tez daxil olmadığınız saytlar)</translation>
 <translation id="9069543557624799859">Endirmə bu vaxt başlayacaq: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Səsli axtarışa başlayın</translation>
 <translation id="9074336505530349563">Google tərəfindən təklif olunan fərdiləşdirilmiş kontenti əldə etmək üçün daxil olun və sinxronizasiyanı aktiv edin.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
index 399e0f8..409a4d6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -21,6 +21,7 @@
 <translation id="1141800923049248244">{FILE_COUNT,plural, =1{Чакаецца 1 спампоўка.}one{Чакаецца # спампоўка.}few{Чакаецца # спампоўкі.}many{Чакаецца # спамповак.}other{Чакаецца # спампоўкі.}}</translation>
 <translation id="1145536944570833626">Выдаліць існуючыя даныя.</translation>
 <translation id="1146678959555564648">Увайсці ў VR</translation>
+<translation id="1154704303112745282">Старонка недаступная па-за сеткай: <ph name="VIOLATED_URL" /></translation>
 <translation id="116280672541001035">Выкарыстана</translation>
 <translation id="1171770572613082465">Праглядайце папулярныя вэб-сайты, націснуўшы кнопку "Топ сайтаў"</translation>
 <translation id="1173894706177603556">Перайменаваць</translation>
@@ -365,6 +366,7 @@
 <translation id="3892148308691398805">Скапіраваць тэкст</translation>
 <translation id="3894427358181296146">Дадаць папку</translation>
 <translation id="3895926599014793903">Прымусовае ўключэнне павелічэння</translation>
+<translation id="3908308510347173149">Абнавіць <ph name="PRODUCT_NAME" /></translation>
 <translation id="3909763690984331376">Праверка бяспекі <ph name="BEGIN_NEW" />Навінка<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">Пошук найлепшага ў інтэрнэце…</translation>
 <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" />: уключана</translation>
@@ -415,8 +417,10 @@
 <translation id="4314815835985389558">Кіраванне сінхранізацыяй</translation>
 <translation id="4320177379694898372">Няма падключэння да інтэрнэту</translation>
 <translation id="4321739720395210191">Не ўдалося адкрыць камеру. Перазапусціце прыладу і паўтарыце спробу.</translation>
+<translation id="4335835283689002019">"Бяспечны прагляд" выключаны</translation>
 <translation id="4351244548802238354">Закрыць дыялогавае акно</translation>
 <translation id="4378154925671717803">Тэлефон</translation>
+<translation id="4382908510000698092">Выкарыстоўваць як мову Chrome</translation>
 <translation id="4384468725000734951">Выкарыстоўваецца пошукавая сістэма Sogou</translation>
 <translation id="4404568932422911380">Няма закладак</translation>
 <translation id="4405224443901389797">Перамясціць у…</translation>
@@ -450,10 +454,11 @@
 <translation id="4616150815774728855">Адкрыць <ph name="WEBAPK_NAME" /></translation>
 <translation id="4634124774493850572">Выкарыстаць пароль</translation>
 <translation id="4650364565596261010">Стандартная сістэмная</translation>
-<translation id="465657074423018424">"Бяспечны прагляд" абараняе вас ад вэб-сайтаў, вядомых падманнымі паводзінамі. Калі вы выключыце гэту функцыю, будзьце асабліва ўважлівымі пры наведванні сайтаў, асабліва перад уводам пароляў.</translation>
+<translation id="465657074423018424">"Бяспечны прагляд" абараняе вас ад вэб-сайтаў, вядомых падманнымі паводзінамі. Калі вы выключыце гэту функцыю, будзьце вельмі ўважлівымі пры наведванні сайтаў, асабліва перад уводам пароляў.</translation>
 <translation id="4662373422909645029">Псеўданім не можа ўключаць лічбы</translation>
 <translation id="4663756553811254707">Закладкі (<ph name="NUMBER_OF_BOOKMARKS" />) выдалены</translation>
 <translation id="4665282149850138822">Карыстальнік <ph name="NAME" /> дададзены на галоўны экран</translation>
+<translation id="4668347365065281350">Усе даныя, захаваныя сайтамі, у тым ліку файлы cookie і іншыя лакальна захаваныя даныя</translation>
 <translation id="4684427112815847243">Сінхранізаваць усё</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і яшчэ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і яшчэ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і яшчэ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і яшчэ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і яшчэ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Адправіць тэкст на вашы прылады</translation>
@@ -592,6 +597,7 @@
 <translation id="568275469169136466">Выканаць часовы ўваход</translation>
 <translation id="5683547024293500885">Браўзеру Chrome не ўдаецца праверыць наяўнасць абнаўленняў</translation>
 <translation id="5686790454216892815">Назва файла занадта доўгая</translation>
+<translation id="5687809546194252819">Пасля перазапуску праграма "<ph name="APP_NAME" />" будзе выкарыстоўваць наступную мову: <ph name="LANGUAGE" /></translation>
 <translation id="5694049548840660018">Вяртацца на галоўную старонку проста</translation>
 <translation id="569536719314091526">Перакладзіце гэту старонку на любую мову з дапамогай кнопкі "Дадатковыя параметры"</translation>
 <translation id="5696597120588531049">Chrome дапамагае прадухіляць праблемы, звязаныя з уцечкай даных, наведваннем небяспечных вэб-сайтаў і г. д.</translation>
@@ -609,6 +615,7 @@
 <translation id="5763382633136178763">Укладкі інкогніта</translation>
 <translation id="5763514718066511291">Дакраніцеся, каб скапіраваць URL-адрас гэтай праграмы</translation>
 <translation id="5765780083710877561">Апісанне:</translation>
+<translation id="5776970333778123608">Няважныя даныя</translation>
 <translation id="5793665092639000975">Выкарыстоўваецца: <ph name="SPACE_USED" /> з <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Пошук і прагляд</translation>
 <translation id="5797070761912323120">Google можа выкарыстоўваць вашу гісторыю, каб персаналізаваць пошук, паказ рэкламы і іншыя сэрвісы Google</translation>
@@ -694,6 +701,7 @@
 <translation id="6395288395575013217">СУВЯЗЬ</translation>
 <translation id="6397616442223433927">Зноў у інтэрнэце</translation>
 <translation id="6398765197997659313">Выключыць поўнаэкранны рэжым</translation>
+<translation id="6402652558933147609"><ph name="ERROR_CODE" /> на <ph name="VIOLATED_URL" /></translation>
 <translation id="6404511346730675251">Змяніце закладку</translation>
 <translation id="6406506848690869874">Сінхранізаваць</translation>
 <translation id="6412673304250309937">Правярае, ці знаходзяцца URL-адрасы ў спісе небяспечных сайтаў, захаваным у Chrome. Пры спробе сайта выкрасці пароль або пры спампоўванні шкоднага файла браўзер Chrome можа таксама адпраўляць у Бяспечны прагляд URL-адрасы, уключаючы фрагменты змесціва старонкі.</translation>
@@ -768,6 +776,7 @@
 <translation id="6896758677409633944">Капіраваць</translation>
 <translation id="6900532703269623216">Палепшаная абарона</translation>
 <translation id="6903907808598579934">Уключыць сінхранізацыю</translation>
+<translation id="6929699136511445623">Уключыць сінхранізацыю сістэмы Android</translation>
 <translation id="6942665639005891494">Стандартнае размяшчэнне спамповак можна змяніць у наладах</translation>
 <translation id="6945221475159498467">Выбраць</translation>
 <translation id="6955535239952325894">Гэта налада выключана ў браўзерах, якія знаходзяцца пад кіраваннем</translation>
@@ -868,6 +877,7 @@
 <translation id="7698359219371678927">Напісаць электронны ліст у праграме "<ph name="APP_NAME" />"</translation>
 <translation id="7704317875155739195">Аўтаматычна дапісваць пошукавыя запыты і URL-адрасы</translation>
 <translation id="7725024127233776428">Тут будуць паказвацца старонкі, якія вы дадалі ў закладкі</translation>
+<translation id="7735637452482172701">Разблакіраваць праз функцыю блакіроўкі экрана</translation>
 <translation id="7746457520633464754">Каб выявіць небяспечныя праграмы і сайты, Chrome адпраўляе URL-адрасы некаторых наведаных вамі старонак, пэўную сістэмную інфармацыю і змесціва старонак у Google</translation>
 <translation id="7757787379047923882">Тэкст абагулены з прылады "<ph name="DEVICE_NAME" />"</translation>
 <translation id="7761849928583394409">Выберыце дату і час</translation>
@@ -948,6 +958,7 @@
 <translation id="8261506727792406068">Выдаліць</translation>
 <translation id="8266862848225348053">Размяшчэнне спамповак</translation>
 <translation id="8274165955039650276">Паказаць спампоўкі</translation>
+<translation id="8278640294239011163">Пацвердзіць сінхранізацыю</translation>
 <translation id="8284326494547611709">Субцітры</translation>
 <translation id="8310344678080805313">Стандартныя ўкладкі</translation>
 <translation id="8316092324682955408"><ph name="DOMAIN_NAME" /> і іншыя сайты</translation>
@@ -1039,6 +1050,7 @@
 <translation id="9050666287014529139">Фраза-пароль</translation>
 <translation id="9063523880881406963">Выключыць запытванне версіі для настольнага камп'ютара</translation>
 <translation id="9065203028668620118">Змяніць</translation>
+<translation id="9065383040763568503">Захаваныя даныя, якія Chrome не лічыць важнымі (напрыклад, сайты, налады якіх не захаваны або якія вы наведваеце рэдка)</translation>
 <translation id="9069543557624799859">Спампоўванне пачнецца ў <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Пачаць галасавы пошук</translation>
 <translation id="9074336505530349563">Каб Google рэкамендаваў вам персаналізаванае змесціва, увайдзіце ва ўліковы запіс і ўключыце сінхранізацыю</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
index 29d0ac76..0a68835c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -54,7 +54,7 @@
 <translation id="1360432990279830238">সাইন-আউট করে সিঙ্ক বন্ধ করবেন?</translation>
 <translation id="1373696734384179344">নির্বাচিত কন্টেন্ট ডাউনলোড করার জন্য যথেষ্ট মেমরি নেই৷</translation>
 <translation id="1376578503827013741">গণনা করছে...</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> দিন আগে ব্যবহার করা হয়েছে</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> এর সাহায্যে খুঁজুন</translation>
 <translation id="1406000523432664303">"ট্র্যাক করবেন না"</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">সিঙ্ক ম্যানেজ করুন</translation>
 <translation id="4320177379694898372">কোনো ইন্টারনেট সংযোগ নেই</translation>
 <translation id="4321739720395210191">ক্যামেরা চালু করা যাচ্ছে না। ডিভাইস রিস্টার্ট করে আবার চেষ্টা করুন।</translation>
+<translation id="4335835283689002019">'নিরাপদ ব্রাউজিং' বন্ধ আছে</translation>
 <translation id="4351244548802238354">ডায়ালগ বন্ধ করুন</translation>
 <translation id="4378154925671717803">ফোন</translation>
 <translation id="4384468725000734951">সার্চের জন্য Sogou কে ব্যবহার করছে</translation>
@@ -456,6 +457,7 @@
 <translation id="4662373422909645029">ডাকনামে সংখ্যা থাকবে না</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" />টি বুকমার্ক মোছা হয়েছে</translation>
 <translation id="4665282149850138822">আপনার হোম স্ক্রীনে <ph name="NAME" /> কে যোগ করা হয়েছে</translation>
+<translation id="4668347365065281350">কুকি ও স্থানীয়ভাবে সেভ করা ডেটা সহ সাইটের সেভ করা সব ডেটা</translation>
 <translation id="4684427112815847243">সবকিছু সিঙ্ক করুন</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 এবং <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> আরও অনেক}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 এবং <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> আরও অনেক}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 এবং <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> আরও অনেক}}</translation>
 <translation id="4696983787092045100">আপনার ডিভাইসে টেক্সট পাঠান</translation>
@@ -611,6 +613,7 @@
 <translation id="5763382633136178763">ছদ্মবেশী ট্যাব</translation>
 <translation id="5763514718066511291">এই অ্যাপের ইউআরএল কপি করতে ট্যাপ করুন</translation>
 <translation id="5765780083710877561">বর্ণনা:</translation>
+<translation id="5776970333778123608">গুরুত্বহীন ডেটা</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> এর <ph name="SPACE_USED" /> ব্যবহার করা হচ্ছে</translation>
 <translation id="5795872532621730126">সার্চ এবং ব্রাউজ করা</translation>
 <translation id="5797070761912323120">সার্চ, বিজ্ঞাপন এবং অন্যান্য Google পরিষেবাকে আপনার মতো করে সাজিয়ে নিতে Google আপনার ইতিহাস ব্যবহার করতে পারে</translation>
@@ -1041,6 +1044,7 @@
 <translation id="9050666287014529139">পাসফ্রেজ</translation>
 <translation id="9063523880881406963">ডেস্কটপ সাইটের অনুরোধ বন্ধ করুন</translation>
 <translation id="9065203028668620118">সম্পাদনা</translation>
+<translation id="9065383040763568503">Chrome গুরুত্বহীন বলে মনে করে এমন সেভ করা ডেটা (যেমন, সেটিংস সেভ করা নেই এমন সাইট অথবা আপনি ঘনঘন দেখেন না এমন সাইট)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />-এ ডাউনলোড শুরু হবে।</translation>
 <translation id="9070377983101773829">ভয়েস সার্চ শুরু করুন</translation>
 <translation id="9074336505530349563">Google-এর প্রস্তাবিত ব্যক্তিগতকৃত কন্টেন্ট পাওয়ার জন্য সাইন-ইন করে সিঙ্ক বিকল্প চালু করুন</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
index 77b74122..86a6137 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -240,7 +240,7 @@
 <translation id="2888126860611144412">O Chromeu</translation>
 <translation id="2891154217021530873">Zaustavljanje učitavanja stranice</translation>
 <translation id="2892647708214602204">Vidjet ćete obavještenje kada fajl bude spreman</translation>
-<translation id="2893180576842394309">Google može koristiti vašu historiju za personaliziranje Pretraživanja i drugih Googleovih usluga</translation>
+<translation id="2893180576842394309">Google može koristiti vašu historiju za personalizaciju Pretraživanja i drugih Googleovih usluga</translation>
 <translation id="2898264748040935573">Uredite pohranjenu lozinku</translation>
 <translation id="2900528713135656174">Kreiraj događaj</translation>
 <translation id="2903493209154104877">Adrese</translation>
@@ -618,7 +618,7 @@
 <translation id="5776970333778123608">Nevažni podaci</translation>
 <translation id="5793665092639000975">Koristi se <ph name="SPACE_USED" /> od <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Pretraživanje i pregledanje</translation>
-<translation id="5797070761912323120">Google može koristiti vašu historiju za personaliziranje Pretraživanja, oglasa i drugih Googleovih usluga</translation>
+<translation id="5797070761912323120">Google može koristiti vašu historiju za personalizaciju Pretraživanja, oglasa i drugih Googleovih usluga</translation>
 <translation id="5809361687334836369">{HOURS,plural, =1{Prije # sat}one{Prije # sat}few{Prije # sata}other{Prije # sati}}</translation>
 <translation id="5810288467834065221">Autorska prava <ph name="YEAR" />. Google LLC. Sva prava zadržana.</translation>
 <translation id="5817918615728894473">Upari</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
index 76f379c..7365e40 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Správa synchronizace</translation>
 <translation id="4320177379694898372">Žádné připojení k internetu</translation>
 <translation id="4321739720395210191">Kameru nelze otevřít. Restartujte zařízení a zkuste to znovu.</translation>
+<translation id="4335835283689002019">Bezpečné prohlížení je vypnuté</translation>
 <translation id="4351244548802238354">Zavřít dialogové okno</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Použít jako jazyk Chromu</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Přezdívka nesmí obsahovat čísla</translation>
 <translation id="4663756553811254707">Smazané záložky: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Na plochu byl přidán web <ph name="NAME" /></translation>
+<translation id="4668347365065281350">Všechna data, která uložily weby, včetně souborů cookie a místně uložených dat</translation>
 <translation id="4684427112815847243">Synchronizovat vše</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}few{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}many{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> další}other{<ph name="SHIPPING_OPTION_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> dalších}}</translation>
 <translation id="4696983787092045100">Odeslat text do vašich zařízení</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Anonymní karty</translation>
 <translation id="5763514718066511291">Klepnutím zkopírujete adresu URL této aplikace</translation>
 <translation id="5765780083710877561">Popis:</translation>
+<translation id="5776970333778123608">Nedůležitá data</translation>
 <translation id="5793665092639000975">Je využito <ph name="SPACE_USED" /> z <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Vyhledávání a procházení internetu</translation>
 <translation id="5797070761912323120">Google vaši historii může používat k personalizaci Vyhledávání, reklam a dalších služeb Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Heslová fráze</translation>
 <translation id="9063523880881406963">Vypnout funkci Verzi webu pro PC</translation>
 <translation id="9065203028668620118">Upravit</translation>
+<translation id="9065383040763568503">Uložená data, která Chrome nepovažuje za důležitá (např. weby bez uložených nastavení nebo weby, které nenavštěvujete často)</translation>
 <translation id="9069543557624799859">Stahování bude zahájeno v <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Spustit hlasové vyhledávání</translation>
 <translation id="9074336505530349563">Chcete-li od Googlu získat personalizované návrhy obsahu, zapněte synchronizaci</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
index feaa6af..ca27377 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -701,7 +701,7 @@
 <translation id="6395288395575013217">LINK</translation>
 <translation id="6397616442223433927">Online igen</translation>
 <translation id="6398765197997659313">Afslut fuld skærm</translation>
-<translation id="6402652558933147609"><ph name="ERROR_CODE" /> <ph name="VIOLATED_URL" /></translation>
+<translation id="6402652558933147609"><ph name="ERROR_CODE" /> på <ph name="VIOLATED_URL" /></translation>
 <translation id="6404511346730675251">Rediger bogmærke</translation>
 <translation id="6406506848690869874">Synkronisering</translation>
 <translation id="6412673304250309937">Tjekker webadresser ift. en liste over usikre websites, der er gemt i Chrome. Hvis et website forsøger at stjæle din adgangskode, eller når du downloader en skadelig fil, sender Chrome muligvis også webadresser, bl.a. mindre mængder sideindhold, til Beskyttet browsing.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
index ed7cf80..e161195f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Administrar la sincronización</translation>
 <translation id="4320177379694898372">Sin conexión a Internet</translation>
 <translation id="4321739720395210191">No se puede abrir la cámara. Reinicia el dispositivo y vuelve a intentarlo.</translation>
+<translation id="4335835283689002019">La Navegación segura está desactivada</translation>
 <translation id="4351244548802238354">Cerrar cuadro de diálogo</translation>
 <translation id="4378154925671717803">Teléfono</translation>
 <translation id="4382908510000698092">Usar como idioma de Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">El sobrenombre no admite números</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> favoritos eliminados</translation>
 <translation id="4665282149850138822">Se agregó <ph name="NAME" /> a la pantalla principal</translation>
+<translation id="4668347365065281350">Todos los datos que almacenan los sitios, incluidas las cookies y otros datos almacenados de forma local</translation>
 <translation id="4684427112815847243">Sincronizar todo</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}other{<ph name="SHIPPING_OPTION_PREVIEW" /> y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}}</translation>
 <translation id="4696983787092045100">Enviar texto a tus dispositivos</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Pestañas en modo de incógnito</translation>
 <translation id="5763514718066511291">Presiona para copiar la URL para esta app</translation>
 <translation id="5765780083710877561">Descripción:</translation>
+<translation id="5776970333778123608">Datos no importantes</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> de <ph name="SPACE_AVAILABLE" /> en uso</translation>
 <translation id="5795872532621730126">Busca y explora</translation>
 <translation id="5797070761912323120">Es posible que Google use tu historial para personalizar la Búsqueda, los anuncios y otros servicios de Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Frase de contraseña</translation>
 <translation id="9063523880881406963">Desactivar la opción para solicitar versión de escritorio</translation>
 <translation id="9065203028668620118">Editar</translation>
+<translation id="9065383040763568503">Datos almacenados que Chrome no considera importantes (por ejemplo, sitios que no visitas a menudo o sin configuración guardada)</translation>
 <translation id="9069543557624799859">La descarga comenzará a las <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Iniciar búsqueda por voz</translation>
 <translation id="9074336505530349563">Para obtener contenido personalizado y sugerido por Google, accede a tu cuenta y activa la sincronización</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index c251dbd4..55ddeaf 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Gestionar sincronización</translation>
 <translation id="4320177379694898372">No hay conexión a Internet</translation>
 <translation id="4321739720395210191">No se ha podido abrir la cámara. Reinicia el dispositivo y vuelve a intentarlo.</translation>
+<translation id="4335835283689002019">La función Navegación Segura está desactivada</translation>
 <translation id="4351244548802238354">Cerrar cuadro de diálogo</translation>
 <translation id="4378154925671717803">Teléfono</translation>
 <translation id="4382908510000698092">Usar como idioma de Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">El apodo no puede incluir números</translation>
 <translation id="4663756553811254707">Se han eliminado <ph name="NUMBER_OF_BOOKMARKS" /> marcadores</translation>
 <translation id="4665282149850138822">Se ha añadido <ph name="NAME" /> a la pantalla de inicio</translation>
+<translation id="4668347365065281350">Todos los datos almacenados por sitios web, incluidas las cookies y otros datos almacenados de forma local</translation>
 <translation id="4684427112815847243">Sincronizar todo</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 y <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> más}}</translation>
 <translation id="4696983787092045100">Enviar mensaje de texto a tus dispositivos</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Pestañas de incógnito</translation>
 <translation id="5763514718066511291">Toca para copiar la URL de esta aplicación</translation>
 <translation id="5765780083710877561">Descripción:</translation>
+<translation id="5776970333778123608">Datos no importantes</translation>
 <translation id="5793665092639000975">Usando <ph name="SPACE_USED" /> de <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Busca y descubre</translation>
 <translation id="5797070761912323120">Es posible que Google utilice tu historial para personalizar la Búsqueda, los anuncios y otros servicios de Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Frase de contraseña</translation>
 <translation id="9063523880881406963">Desactivar opción para ver como ordenador</translation>
 <translation id="9065203028668620118">Editar</translation>
+<translation id="9065383040763568503">Datos almacenados que Chrome no considera importantes (por ejemplo, sitios web sin ajustes guardados o que no visitas a menudo)</translation>
 <translation id="9069543557624799859">Hora de inicio de la descarga: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Iniciar búsqueda por voz</translation>
 <translation id="9074336505530349563">Inicia sesión y activa la sincronización para obtener contenido personalizado sugerido por Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
index 7f19333d..765e813 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Kudeatu sinkronizazioa</translation>
 <translation id="4320177379694898372">Ez zaude konektatuta Internetera</translation>
 <translation id="4321739720395210191">Ezin da ireki kamera. Berrabiarazi gailua eta saiatu berriro.</translation>
+<translation id="4335835283689002019">Desaktibatuta dago arakatze segurua</translation>
 <translation id="4351244548802238354">Itxi leihoa</translation>
 <translation id="4378154925671717803">Telefonoa</translation>
 <translation id="4382908510000698092">Erabili Chrome-n hizkuntza gisa</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Goitizenak ezin du eduki zenbakirik</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> laster-marka ezabatu dira</translation>
 <translation id="4665282149850138822">Hasierako pantailan gehitu da <ph name="NAME" /></translation>
+<translation id="4668347365065281350">Webguneek gordetako datu guztiak, cookieak eta gailuan gordetako beste datu batzuk barne</translation>
 <translation id="4684427112815847243">Sinkronizatu dena</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> eta beste <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> eta beste <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Bidali testua zure gailuetara</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Ezkutuko moduko fitxak</translation>
 <translation id="5763514718066511291">Sakatu aplikazio honen URLa kopiatzeko</translation>
 <translation id="5765780083710877561">Azalpena:</translation>
+<translation id="5776970333778123608">Garrantzirik gabeko datuak</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /> erabilita</translation>
 <translation id="5795872532621730126">Bilatu eta arakatu</translation>
 <translation id="5797070761912323120">Baliteke Google-k historia erabiltzea Bilaketa, iragarkiak eta beste Google-ren zerbitzu batzuk pertsonalizatzeko</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Pasaesaldia</translation>
 <translation id="9063523880881406963">Desaktibatu ordenagailuetarako webgunea eskatzeko aukera</translation>
 <translation id="9065203028668620118">Editatu</translation>
+<translation id="9065383040763568503">Chrome-k garrantzi gabekotzat jotako gordetako datuak (hala nola ezarpenik gordeta ez duten webguneenak edo maiz bisitatzen ez dituzun webguneenak)</translation>
 <translation id="9069543557624799859">Deskarga ordu honetan hasiko da: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Aktibatu ahozko bilaketa</translation>
 <translation id="9074336505530349563">Google-k iradokitzen duen eduki pertsonalizatua jasotzeko, hasi saioa eta aktibatu sinkronizazioa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
index 04d675ae..8166c8e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Synkronointiasetusten muokkaus</translation>
 <translation id="4320177379694898372">Ei internetyhteyttä</translation>
 <translation id="4321739720395210191">Kameraa ei voi avata. Käynnistä laite uudelleen ja yritä sitten.</translation>
+<translation id="4335835283689002019">Selaussuoja on pois päältä</translation>
 <translation id="4351244548802238354">Sulje ikkuna</translation>
 <translation id="4378154925671717803">Puhelin</translation>
 <translation id="4382908510000698092">Käytä Chromen kielenä</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Ei saa sisältää numeroita</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> kirjanmerkkiä poistettiin</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> lisättiin aloitusnäytölle.</translation>
+<translation id="4668347365065281350">Kaikki data, jonka sivustot ovat tallentaneet, myös evästeet ja muu paikallisesti tallennettu data</translation>
 <translation id="4684427112815847243">Synkronoi kaikki</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ja <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> muu}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ja <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> muuta}}</translation>
 <translation id="4696983787092045100">Lähetä teksti laitteillesi</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Incognito-välilehdet</translation>
 <translation id="5763514718066511291">Kosketa kopioidaksesi tämän sovelluksen URL-osoite</translation>
 <translation id="5765780083710877561">Kuvaus:</translation>
+<translation id="5776970333778123608">Vähemmän tärkeä data</translation>
 <translation id="5793665092639000975">Käytössä <ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Hae ja selaa</translation>
 <translation id="5797070761912323120">Google voi muokata Hakua, mainoksia ja muita Googlen palveluita historiasi perusteella</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Tunnuslause</translation>
 <translation id="9063523880881406963">Poista käytöstä Käytä tietokoneversiota</translation>
 <translation id="9065203028668620118">Muokkaa</translation>
+<translation id="9065383040763568503">Tallennettu data, jota Chrome ei pidä tärkeänä (esim. sivustot, joilla ei ole tallennettuja asetuksia tai joilla et käy usein)</translation>
 <translation id="9069543557624799859">Lataus alkaa klo <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Aloita puhehaku</translation>
 <translation id="9074336505530349563">Kirjaudu sisään ja ota synkronointi käyttöön, niin näet Googlen suosittelemaa yksilöllistä sisältöä</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
index 8018074..73819fc4 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Pamahalaan ang pag-sync</translation>
 <translation id="4320177379694898372">Walang koneksyon sa internet</translation>
 <translation id="4321739720395210191">Hindi mabuksan ang iyong camera. I-restart ang iyong device at subukan ulit.</translation>
+<translation id="4335835283689002019">Naka-off ang Ligtas na Pag-browse</translation>
 <translation id="4351244548802238354">Isara ang dialog</translation>
 <translation id="4378154925671717803">Telepono</translation>
 <translation id="4382908510000698092">Gamitin bilang wika ng Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Bawal numero sa nickname</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> (na) bookmark ang na-delete</translation>
 <translation id="4665282149850138822">Idinagdag ang <ph name="NAME" /> sa iyong Home screen</translation>
+<translation id="4668347365065281350">Lahat ng data na na-store ng mga site, kabilang ang cookies at iba pang data na lokal na naka-store</translation>
 <translation id="4684427112815847243">I-sync lahat</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> iba pa}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> iba pa}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 at <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> na iba pa}}</translation>
 <translation id="4696983787092045100">Ipadala ang text sa Iyong Mga Device</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Mga tab na incognito</translation>
 <translation id="5763514718066511291">I-tap upang kopyahin ang URL para sa app na ito</translation>
 <translation id="5765780083710877561">Paglalarawan:</translation>
+<translation id="5776970333778123608">Hindi mahalagang data</translation>
 <translation id="5793665092639000975">Gumagamit ng <ph name="SPACE_USED" /> ng <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Maghanap at mag-browse</translation>
 <translation id="5797070761912323120">Maaaring gamitin ng Google ang iyong history para i-personalize ang Search, mga ad, at iba pang serbisyo ng Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Passphrase</translation>
 <translation id="9063523880881406963">I-off ang Hilingin ang site sa desktop</translation>
 <translation id="9065203028668620118">I-edit</translation>
+<translation id="9065383040763568503">Naka-store na data na sa tingin ng Chrome ay hindi mahalaga (hal. mga site na walang naka-save na setting o hindi mo madalas bisitahin)</translation>
 <translation id="9069543557624799859">Magsisimula ang pag-download nang <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Simulan ang paghahanap gamit ang boses</translation>
 <translation id="9074336505530349563">Para makakuha ng naka-personalize na content na iminumungkahi ng Google, mag-sign in at i-on ang pag-sync</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
index 133bde8..07ecd18 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Gérer la synchronisation</translation>
 <translation id="4320177379694898372">Pas de connexion Internet</translation>
 <translation id="4321739720395210191">Impossible d'ouvrir votre appareil photo. Redémarrez votre appareil et réessayez.</translation>
+<translation id="4335835283689002019">La navigation sécurisée est désactivée</translation>
 <translation id="4351244548802238354">Fermer la boîte de dialogue</translation>
 <translation id="4378154925671717803">Numéro de téléphone</translation>
 <translation id="4382908510000698092">Utiliser comme langue dans Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Aucun chiffre dans le pseudo</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> favoris supprimés</translation>
 <translation id="4665282149850138822">Le site <ph name="NAME" /> a été ajouté à votre écran d'accueil</translation>
+<translation id="4668347365065281350">Toutes les données stockées par les sites, y compris les témoins et les autres données stockées localement</translation>
 <translation id="4684427112815847243">Tout synchroniser</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autre option de livraison}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autre option de livraison}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> autres options de livraison}}</translation>
 <translation id="4696983787092045100">Envoyer le message texte à vos appareils</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Onglets de navigation privée</translation>
 <translation id="5763514718066511291">Touchez pour copier l'URL pour cette application</translation>
 <translation id="5765780083710877561">Description :</translation>
+<translation id="5776970333778123608">Données non importantes</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> sur <ph name="SPACE_AVAILABLE" /> utilisés</translation>
 <translation id="5795872532621730126">Rechercher et parcourir</translation>
 <translation id="5797070761912323120">Google peut utiliser votre historique pour personnaliser la recherche, les annonces et d'autres services Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Phrase de passe</translation>
 <translation id="9063523880881406963">Désactiver l’option Demander site pour ordinateurs de bureau</translation>
 <translation id="9065203028668620118">Modifier</translation>
+<translation id="9065383040763568503">Les données stockées que Chrome ne considère pas comme importantes (comme les sites qui n'ont pas de paramètres enregistrés ou que vous ne consultez pas souvent)</translation>
 <translation id="9069543557624799859">Le téléchargement commencera à <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Démarrer la recherche vocale</translation>
 <translation id="9074336505530349563">Pour obtenir du contenu personnalisé suggéré par Google, connectez-vous et activez la synchronisation</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
index 210bbf9..100c5cee 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Gérer la synchronisation</translation>
 <translation id="4320177379694898372">Aucune connexion Internet.</translation>
 <translation id="4321739720395210191">Impossible d'ouvrir l'appareil photo. Redémarrez votre appareil et réessayez.</translation>
+<translation id="4335835283689002019">Navigation sécurisée désactivée</translation>
 <translation id="4351244548802238354">Fermer la boîte de dialogue</translation>
 <translation id="4378154925671717803">Téléphone</translation>
 <translation id="4382908510000698092">Utiliser comme langue de Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Le pseudo ne doit pas contenir de chiffres</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> favoris ont été supprimés.</translation>
 <translation id="4665282149850138822">Le site "<ph name="NAME" />" a bien été ajouté à votre écran d'accueil.</translation>
+<translation id="4668347365065281350">Toutes les données stockées par les sites, y compris les cookies et autres données stockées en local</translation>
 <translation id="4684427112815847243">Tout synchroniser</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> de plus}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> de plus}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 et <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> de plus}}</translation>
 <translation id="4696983787092045100">Envoyer le SMS à vos appareils</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Onglets de navigation privée</translation>
 <translation id="5763514718066511291">Appuyez pour copier l'URL pour cette application</translation>
 <translation id="5765780083710877561">Description :</translation>
+<translation id="5776970333778123608">Données non importantes</translation>
 <translation id="5793665092639000975">Utilisation de <ph name="SPACE_USED" /> sur <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Rechercher et parcourir</translation>
 <translation id="5797070761912323120">Google peut utiliser votre historique pour personnaliser la recherche, les annonces et d'autres services Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Phrase secrète</translation>
 <translation id="9063523880881406963">Désactiver "Voir version ordinateur"</translation>
 <translation id="9065203028668620118">Modifier</translation>
+<translation id="9065383040763568503">Données stockées que Chrome ne considère pas comme importantes (par exemple, pour des sites sans paramètres enregistrés ou que vous ne consultez pas souvent)</translation>
 <translation id="9069543557624799859">Le téléchargement démarrera à <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Démarrer la recherche vocale</translation>
 <translation id="9074336505530349563">Connectez-vous et activez la synchronisation pour obtenir des suggestions de contenu personnalisées de la part de Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
index 5c801e5b4..bff883c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -55,7 +55,7 @@
 <translation id="1360432990279830238">સાઇન આઉટ કરી સિંકનો વિકલ્પ બંધ કરવો છે?</translation>
 <translation id="1373696734384179344">પસંદ કરેલ કન્ટેન્ટ ડાઉનલોડ કરવા માટે મેમરી અપૂરતી છે.</translation>
 <translation id="1376578503827013741">ગણતરી કરી રહ્યાં છે…</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> દિવસ પહેલાં સક્રિય હતું</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> વડે શોધો</translation>
 <translation id="1406000523432664303">“ટ્રેક કરશો નહીં”</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">સિંક મેનેજ કરો</translation>
 <translation id="4320177379694898372">કોઈ ઇન્ટરનેટ કનેક્શન નથી</translation>
 <translation id="4321739720395210191">તમારો કૅમેરા ખોલી શકતાં નથી. તમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો.</translation>
+<translation id="4335835283689002019">Safe Browsing બંધ છે</translation>
 <translation id="4351244548802238354">સંવાદ બંધ કરો</translation>
 <translation id="4378154925671717803">ફોન</translation>
 <translation id="4382908510000698092">Chromeની ભાષા તરીકે ઉપયોગ કરો</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">ઉપનામમાં સંખ્યા ન હોઈ શકે</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> બુકમાર્ક્સ કાઢી નાખ્યાં</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ને તમારા હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યું હતું</translation>
+<translation id="4668347365065281350">સાઇટ દ્વારા સ્ટોર કરવામાં આવેલો બધો ડેટા, જેમાં કુકી અને સ્થાનિક સ્તરે સ્ટોર થયેલા અન્ય ડેટાનો સમાવેશ થાય છે</translation>
 <translation id="4684427112815847243">દરેક વસ્તુ સમન્વયિત કરો</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 અને વધુ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 અને વધુ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 અને વધુ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">તમારા ડિવાઇસ પર ટેક્સ્ટ મોકલો</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">છૂપા ટેબ્સ</translation>
 <translation id="5763514718066511291">આ ઍપ માટેની URL કૉપિ કરવા માટે ટૅપ કરો</translation>
 <translation id="5765780083710877561">વર્ણન:</translation>
+<translation id="5776970333778123608">બિનમહત્ત્વપૂર્ણ ડેટા</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />માંથી <ph name="SPACE_USED" />નો વપરાશ કરી રહ્યાં છીએ</translation>
 <translation id="5795872532621730126">શોધો અને બ્રાઉઝ કરો</translation>
 <translation id="5797070761912323120">Google, શોધ, જાહેરાતો અને અન્ય Google સેવાઓને વ્યક્તિગત કરવા માટે તમારા ઇતિહાસનો ઉપયોગ કરી શકે છે</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">પાસફ્રેઝ</translation>
 <translation id="9063523880881406963">વિનંતી ડેસ્કટૉપ સાઇટ બંધ કરો</translation>
 <translation id="9065203028668620118">ફેરફાર કરો</translation>
+<translation id="9065383040763568503">Chromeને મહત્ત્વનો ન લાગતો હોય તેવો સ્ટોર કરેલો ડેટા (દા.ત., કોઇ સાચવેલા સેટિંગ ન હોય તેવી અથવા વારંવાર મુલાકાત ન લેવાતી હોય તેવી સાઇટ)</translation>
 <translation id="9069543557624799859"><ph name="TIME" /> વાગ્યે ડાઉનલોડ શરૂ થશે.</translation>
 <translation id="9070377983101773829">વૉઇસ શોધ પ્રારંભ કરો</translation>
 <translation id="9074336505530349563">Google દ્વારા સૂચવેલ વ્યક્તિગત કરેલ કન્ટેન્ટ મેળવવા માટે, સાઇન ઇન કરો અને સિંક કરવાનું ચાલુ કરો</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
index 66912c24..cf12d923 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">सिंक प्रबंधित करें</translation>
 <translation id="4320177379694898372">कोई इंटरनेट कनेक्‍शन नहीं</translation>
 <translation id="4321739720395210191">कैमरा खाेला नहीं जा सकता. अपने डिवाइस को रीस्टार्ट करके, फिर से कोशिश करें.</translation>
+<translation id="4335835283689002019">सुरक्षित ब्राउज़िंग की सुविधा बंद है</translation>
 <translation id="4351244548802238354">संवाद बंद करें</translation>
 <translation id="4378154925671717803">फ़ोन</translation>
 <translation id="4382908510000698092">Chrome में यह भाषा इस्तेमाल करें</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">प्रचलित नाम में अंक शामिल नहीं कर सकते</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> बुकमार्क का पता लगा</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> को आपकी होम स्क्रीन में जोड़ा गया था</translation>
+<translation id="4668347365065281350">सभी तरह के डेटा को साइटों के हिसाब से सेव किया गया है. इसमें कुकी और स्थानीय रूप से सेव किया गया दूसरा डेटा भी शामिल है</translation>
 <translation id="4684427112815847243">सब कुछ सिंक करें</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 और <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अन्य}}</translation>
 <translation id="4696983787092045100">अपने डिवाइस पर मैसेज भेजें</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">गुप्त टैब</translation>
 <translation id="5763514718066511291">इस ऐप्लिकेशन का यूआरएल कॉपी करने के लिए टैप करें</translation>
 <translation id="5765780083710877561">वर्णन:</translation>
+<translation id="5776970333778123608">गैरज़रूरी डेटा</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> में से <ph name="SPACE_USED" /> का इस्तेमाल किया जा रहा है</translation>
 <translation id="5795872532621730126">खोजें और ब्राउज़ करें</translation>
 <translation id="5797070761912323120">खोज, विज्ञापन, और दूसरी Google सेवाओं को मनमुताबिक बनाने के लिए, Google आपके इतिहास का इस्तेमाल कर सकता है</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">पासफ़्रेज़ (लंबा पासवर्ड)</translation>
 <translation id="9063523880881406963">अनुरोध डेस्कटॉप साइट बंद करें</translation>
 <translation id="9065203028668620118">बदलाव करें</translation>
+<translation id="9065383040763568503">सेव किया गया ऐसा डेटा जो Chrome के हिसाब से ज़रूरी नहीं है (उदाहरण के लिए, ऐसी साइटें जिनमें कोई भी सेटिंग सेव नहीं की गई है या जिन पर आप अक्सर नहीं जाते)</translation>
 <translation id="9069543557624799859">डाउनलोड <ph name="TIME" /> पर शुरू होगा.</translation>
 <translation id="9070377983101773829">बोलकर खोज चालू करें</translation>
 <translation id="9074336505530349563">Google की ओर से सुझाई गई मनमुताबिक सामग्री पाने के लिए, साइन इन करें और 'सिंक करें' को चालू करें</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index 0bf0a1b..4770a5c 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Szinkronizálás kezelése</translation>
 <translation id="4320177379694898372">Nincs internetkapcsolat</translation>
 <translation id="4321739720395210191">Nem lehet megnyitni a kamerát. Indítsa újra az eszközt, és próbálkozzon újra.</translation>
+<translation id="4335835283689002019">A Biztonságos Böngészés ki van kapcsolva</translation>
 <translation id="4351244548802238354">Párbeszédablak bezárása</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Használat a Chrome nyelveként</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">A névben nem lehet szám</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> könyvjelző törölve</translation>
 <translation id="4665282149850138822">A(z) <ph name="NAME" /> felkerült a kezdőképernyőre</translation>
+<translation id="4668347365065281350">A webhelyek által tárolt összes adat, beleértve a cookie-kat és más, helyben tárolt adatokat</translation>
 <translation id="4684427112815847243">Az összes szinkronizálása</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 és további <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 és további <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">SMS küldése az eszközeire</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Inkognitó lapok</translation>
 <translation id="5763514718066511291">Koppintson az alkalmazás URL-jének másolásához</translation>
 <translation id="5765780083710877561">Leírás:</translation>
+<translation id="5776970333778123608">Nem fontos adatok</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />/<ph name="SPACE_USED" /> használatban</translation>
 <translation id="5795872532621730126">Keresés és böngészés</translation>
 <translation id="5797070761912323120">A Google felhasználhatja az Ön előzményeit a Keresés, a hirdetések és más Google-szolgáltatások személyre szabására</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Összetett jelszó</translation>
 <translation id="9063523880881406963">Kapcsolja ki az Asztali webhely kérése funkciót</translation>
 <translation id="9065203028668620118">Szerkesztés</translation>
+<translation id="9065383040763568503">A Chrome által nem fontosnak ítélt tárolt adatok (például a mentett beállítások nélküli vagy ritkán megnyitott webhelyek)</translation>
 <translation id="9069543557624799859">Letöltés kezdete: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Hangalapú keresés indítása</translation>
 <translation id="9074336505530349563">A Google által javasolt, személyre szabott tartalmak fogadásához jelentkezzen be, és kapcsolja be a szinkronizálást</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
index 92b4bbc..78719246 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Kelola sinkronisasi</translation>
 <translation id="4320177379694898372">Tidak ada koneksi internet</translation>
 <translation id="4321739720395210191">Tidak dapat membuka kamera Anda. Mulai ulang perangkat Anda dan coba lagi.</translation>
+<translation id="4335835283689002019">Safe Browsing nonaktif</translation>
 <translation id="4351244548802238354">Tutup dialog</translation>
 <translation id="4378154925671717803">Ponsel</translation>
 <translation id="4382908510000698092">Gunakan sebagai bahasa Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Nama panggilan tidak boleh berisi angka</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bookmark dihapus</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> telah ditambahkan ke layar Utama</translation>
+<translation id="4668347365065281350">Semua data disimpan oleh situs, termasuk cookie dan data lain yang disimpan secara lokal</translation>
 <translation id="4684427112815847243">Sinkronkan semua</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lainnya}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lainnya}}</translation>
 <translation id="4696983787092045100">Kirim pesan teks ke Perangkat Anda</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Tab samaran</translation>
 <translation id="5763514718066511291">Ketuk untuk menyalin URL aplikasi ini</translation>
 <translation id="5765780083710877561">Deskripsi:</translation>
+<translation id="5776970333778123608">Data yang tidak penting</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> terpakai dari <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Penelusuran dan penjelajahan</translation>
 <translation id="5797070761912323120">Google dapat menggunakan histori Anda untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Frasa sandi</translation>
 <translation id="9063523880881406963">Nonaktifkan Ubah situs desktop</translation>
 <translation id="9065203028668620118">Edit</translation>
+<translation id="9065383040763568503">Data tersimpan yang dianggap tidak penting oleh Chrome (misalnya situs yang tidak memiliki setelan tersimpan atau situs yang jarang Anda kunjungi)</translation>
 <translation id="9069543557624799859">Download akan dimulai pukul <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Mulai penelusuran suara</translation>
 <translation id="9074336505530349563">Untuk mendapatkan konten hasil personalisasi yang disarankan oleh Google, login dan aktifkan sinkronisasi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
index bd7e15d..b1929ed 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -595,7 +595,7 @@
 <translation id="568275469169136466">Per accedere temporaneamente</translation>
 <translation id="5683547024293500885">Chrome non può controllare la disponibilità di aggiornamenti</translation>
 <translation id="5686790454216892815">Nome file troppo lungo</translation>
-<translation id="5687809546194252819"><ph name="APP_NAME" /> utilizzerà la lingua <ph name="LANGUAGE" /> al riavvio.</translation>
+<translation id="5687809546194252819">Al riavvio, <ph name="APP_NAME" /> utilizzerà questa lingua: <ph name="LANGUAGE" />.</translation>
 <translation id="5694049548840660018">Torna alla home page facilmente</translation>
 <translation id="569536719314091526">Traduci questa pagina in una lingua qualsiasi usando il pulsante Altre opzioni</translation>
 <translation id="5696597120588531049">Chrome può contribuire a proteggerti da violazioni dei dati, siti web non sicuri e non solo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index 3798a9a1..119c899 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">სინქრონიზაციის მართვა</translation>
 <translation id="4320177379694898372">ინტერნეტთან კავშირი არ არის</translation>
 <translation id="4321739720395210191">კამერის გახსნა ვერ მოხერხდა. გადატვირთეთ მოწყობილობა და ცადეთ ხელახლა.</translation>
+<translation id="4335835283689002019">Safe Browsing გამორთულია</translation>
 <translation id="4351244548802238354">დიალოგის დახურვა</translation>
 <translation id="4378154925671717803">ტელეფონი</translation>
 <translation id="4382908510000698092">Chrome-ის ენად გამოყენება</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">მეტსახელი არ უნდა შეიცავდეს ციფრებს</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> სანიშნე წაიშალა</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> დაემატა მთავარ ეკრანს</translation>
+<translation id="4668347365065281350">საიტების მიერ შენახული ყველა მონაცემი, მათ შორის, ქუქი-ჩანაწერები და ადგილობრივად შენახული სხვა მონაცემები</translation>
 <translation id="4684427112815847243">ყველაფრის სინქრონიზაცია</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 და <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> სხვა}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 და <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> სხვა}}</translation>
 <translation id="4696983787092045100">ტექსტის თქვენს მოწყობილობებზე გაგზავნა</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ინკოგნიტო ჩანართები</translation>
 <translation id="5763514718066511291">შეეხეთ ამ აპის URL-ის კოპირებისთვის</translation>
 <translation id="5765780083710877561">აღწერა:</translation>
+<translation id="5776970333778123608">უმნიშვნელო მონაცემები</translation>
 <translation id="5793665092639000975">გამოყენებულია <ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" />დან</translation>
 <translation id="5795872532621730126">ძიება და დათვალიერება</translation>
 <translation id="5797070761912323120">Google-მა შეიძლება გამოიყენოს თქვენი ისტორია Search-ის, რეკლამისა და Google-ის სხვა სერვისების თქვენზე მოსარგებად</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">საიდუმლო ფრაზა</translation>
 <translation id="9063523880881406963">საიტის დესკტოპის ვერსიის მოთხოვნის გამორთვა</translation>
 <translation id="9065203028668620118">რედაქტირება</translation>
+<translation id="9065383040763568503">შენახული მონაცემები, რომლებსაც Chrome უმნიშვნელოდ თვლის (მაგ., საიტები შენახული პარამეტრების გარეშე ან რომლებსაც ხშირად არ სტუმრობთ)</translation>
 <translation id="9069543557624799859">ჩამოტვირთვის დაწყების დროა <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">ხმოვანი ძიების დაწყება</translation>
 <translation id="9074336505530349563">Google-ის მიერ შემოთავაზებულ, პერსონალიზებულ კონტენტზე წვდომისთვის შედით სისტემაში და ჩართეთ სინქრონიზაცია</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
index efc36049..b94f2f9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Синхрондауды басқару</translation>
 <translation id="4320177379694898372">Интернет байланысы жоқ</translation>
 <translation id="4321739720395210191">Камера ашылмайды. Құрылғыны қайта қосып, әрекетті қайталаңыз.</translation>
+<translation id="4335835283689002019">"Қауіпсіз шолу" функциясы өшірулі.</translation>
 <translation id="4351244548802238354">Диалогтік терезені жабу</translation>
 <translation id="4378154925671717803">Телефон</translation>
 <translation id="4382908510000698092">Chrome тілі ретінде пайдалану</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Лақап атта сан болмауы керек</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> бетбелгі жойылды</translation>
 <translation id="4665282149850138822">Негізгі экранға <ph name="NAME" /> қосылды</translation>
+<translation id="4668347365065281350">Сайттар сақтаған барлық деректер, соның ішінде cookie файлдары және жергілікті сақталған басқа деректер</translation>
 <translation id="4684427112815847243">Барлығын синхрондау</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 және тағы <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 және тағы <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Мәтінді құрылғыларға жіберу</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Инкогнито қойындылары</translation>
 <translation id="5763514718066511291">Бұл қолданбаның URL мекенжайын көшіру үшін түртіңіз</translation>
 <translation id="5765780083710877561">Сипаттама:</translation>
+<translation id="5776970333778123608">Маңызы жоқ деректер</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /> жад көлемі қолданылуда</translation>
 <translation id="5795872532621730126">Іздеу және шолу</translation>
 <translation id="5797070761912323120">Search, жарнамалар және басқа да Google қызметтерін жеке қажеттеліктерге бейімдеу үшін Google интернеттегі әрекеттеріңізді пайдалануы мүмкін.</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Құпия фраза</translation>
 <translation id="9063523880881406963">Жұмыс үстелі сайтын сұрау: өшіру</translation>
 <translation id="9065203028668620118">Өзгерту</translation>
+<translation id="9065383040763568503">Chrome маңызды деп санамайтын сақталған деректер (мысалы, сақталған параметрлері жоқ немесе сіз сирек кіретін сайттар)</translation>
 <translation id="9069543557624799859">Жүктеп алу басталатын уақыт: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Дауыспен іздеуді іске қосу</translation>
 <translation id="9074336505530349563">Google ұсынған жекелендірілген мазмұнды алу үшін есептік жазбаға кіріп, синхрондау функциясын қосыңыз</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index 788b962..4c21b79 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">គ្រប់គ្រង​សមកាលកម្ម</translation>
 <translation id="4320177379694898372">គ្មានការភ្ជាប់អ៊ីនធឺណិតទេ</translation>
 <translation id="4321739720395210191">មិនអាចបើក​កាមេរ៉ា​របស់អ្នក​បានទេ។ សូម​ចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នក​ឡើងវិញ រួច​ព្យាយាម​ម្ដងទៀត។</translation>
+<translation id="4335835283689002019">ការរុករក​ដោយសុវត្ថិភាព​ត្រូវបានបិទ</translation>
 <translation id="4351244548802238354">បិទប្រអប់</translation>
 <translation id="4378154925671717803">ទូរស័ព្ទ</translation>
 <translation id="4382908510000698092">ប្រើជាភាសារបស់ Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">ឈ្មោះហៅក្រៅមិនអាចមានលេខបានទេ</translation>
 <translation id="4663756553811254707">បានលុបចំណាំ <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ត្រូវបានបន្ថែមទៅអេក្រង់ដើមរបស់អ្នក</translation>
+<translation id="4668347365065281350">ទិន្នន័យ​ទាំងអស់​ដែលគេហទំព័រ​រក្សាទុក រួមទាំង​ខូគី និង​ទិន្នន័យ​ផ្សេងទៀត​ក្នុងឧបករណ៍</translation>
 <translation id="4684427112815847243">ធ្វើសមកម្មគ្រប់យ៉ាង</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 និង <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ទៀត}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 និង <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ទៀត}}</translation>
 <translation id="4696983787092045100">ផ្ញើសារ​ជាអក្សរ​ទៅ​ឧបករណ៍​របស់អ្នក</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ផ្ទាំងអនាមិក</translation>
 <translation id="5763514718066511291">ចុច​ដើម្បី​ចម្លង URL សម្រាប់​កម្មវិធី​នេះ</translation>
 <translation id="5765780083710877561">ការពិពណ៌នា៖</translation>
+<translation id="5776970333778123608">ទិន្នន័យ​មិនសំខាន់</translation>
 <translation id="5793665092639000975">ប្រើ​អស់ <ph name="SPACE_USED" /> នៃ <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">ស្វែងរក និង​រុករក</translation>
 <translation id="5797070761912323120">Google អាចនឹង​ប្រើ​ប្រវត្តិ​របស់អ្នក ដើម្បី​ធ្វើឱ្យ​ការស្វែងរក ការផ្សាយ​ពាណិជ្ជកម្ម និងសេវាកម្ម Google ផ្សេងទៀតស្របនឹងអ្នក</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">ឃ្លាសម្ងាត់</translation>
 <translation id="9063523880881406963">បិទសំណើគេហទំព័រសម្រាប់កុំព្យូទ័រ</translation>
 <translation id="9065203028668620118">កែប្រែ</translation>
+<translation id="9065383040763568503">ទិន្នន័យ​ដែលបានរក្សាទុក​ដែល Chrome គិតថា​មិនសំខាន់ (ឧ. គេហទំព័រ​ដែលមិនមាន​ការកំណត់​ដែលបានរក្សាទុក ឬ​គេហទំព័រ​ដែលអ្នក​មិនសូវ​ចូលមើល​ញឹកញាប់)</translation>
 <translation id="9069543557624799859">ការទាញយកនឹងចាប់ផ្ដើមនៅម៉ោង <ph name="TIME" />។</translation>
 <translation id="9070377983101773829">ចាប់ផ្តើមស្វែងរកដោយសម្លេង</translation>
 <translation id="9074336505530349563">ដើម្បីទទួលបានខ្លឹមសារស្របតាមបុគ្គលដែលណែនាំដោយ Google សូមបើកសមកាលកម្ម</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
index 602e7b7..56578d1 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -21,6 +21,7 @@
 <translation id="1141800923049248244">{FILE_COUNT,plural, =1{1 ಡೌನ್‌ಲೋಡ್ ಬಾಕಿ ಇದೆ.}one{# ಡೌನ್‌ಲೋಡ್‌ಗಳು ಬಾಕಿ ಇವೆ.}other{# ಡೌನ್‌ಲೋಡ್‌ಗಳು ಬಾಕಿ ಇವೆ.}}</translation>
 <translation id="1145536944570833626">ಪ್ರಸ್ತುತ ಡೇಟಾ ಅಳಿಸಿ.</translation>
 <translation id="1146678959555564648">VR ನಮೂದಿಸಿ</translation>
+<translation id="1154704303112745282">ಪುಟ ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ: <ph name="VIOLATED_URL" /></translation>
 <translation id="116280672541001035">ಬಳಕೆಯಾಗಿದ್ದು</translation>
 <translation id="1171770572613082465">"ಉನ್ನತ ಸೈಟ್‌ಗಳು" ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡುವ ಮೂಲಕ ಜನಪ್ರಿಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="1173894706177603556">ಮರುಹೆಸರಿಸು</translation>
@@ -366,6 +367,7 @@
 <translation id="3892148308691398805">ಪಠ್ಯ ನಕಲಿಸಿ</translation>
 <translation id="3894427358181296146">ಫೋಲ್ಡರ್ ಸೇರಿಸು</translation>
 <translation id="3895926599014793903">ಒತ್ತಾಯದ ಝೂಮ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ</translation>
+<translation id="3908308510347173149"><ph name="PRODUCT_NAME" /> ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="3909763690984331376">ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆ <ph name="BEGIN_NEW" />ಹೊಸತು<ph name="END_NEW" /></translation>
 <translation id="3912508018559818924">ವೆಬ್‌ನಿಂದ ಅತ್ಯುತ್ತಮ ವಿಷಯಗಳನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ…</translation>
 <translation id="3924911262913579434"><ph name="SAFE_BROWSING_MODE" /> ಆನ್ ಆಗಿದೆ</translation>
@@ -416,8 +418,10 @@
 <translation id="4314815835985389558">ಸಿಂಕ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="4320177379694898372">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ</translation>
 <translation id="4321739720395210191">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="4335835283689002019">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಆಫ್ ಆಗಿದೆ</translation>
 <translation id="4351244548802238354">ಸಂವಾದವನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="4378154925671717803">ಫೋನ್</translation>
+<translation id="4382908510000698092">Chrome ನ ಭಾಷೆಯಾಗಿ ಬಳಸಿ</translation>
 <translation id="4384468725000734951">ಹುಡುಕಲು Sogou ಬಳಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="4404568932422911380">ಯಾವುದೇ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="4405224443901389797">ಇದಕ್ಕೆ ಸರಿಸಿ…</translation>
@@ -454,6 +458,7 @@
 <translation id="4662373422909645029">ಅಡ್ಡಹೆಸರಿಗೆ ಸಂಖ್ಯೆ ಇಲ್ಲ</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ಅನ್ನು ನಿಮ್ಮ ಹೋಮ್ ಪರದೆಗೆ ಸೇರಿಸಲಾಗಿದೆ</translation>
+<translation id="4668347365065281350">ಕುಕೀಗಳು ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಸಂಗ್ರಹಣೆ ಮಾಡಲಾಗಿರುವ ಡೇಟಾ ಸೇರಿದ ಹಾಗೆ, ಸೈಟ್‌ಗಳು ಸಂಗ್ರಹಣೆ ಮಾಡಿರುವ ಎಲ್ಲಾ ಡೇಟಾ</translation>
 <translation id="4684427112815847243">ಪ್ರತಿಯೊಂದನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ಮತ್ತು ಇನ್ನೂ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ಮತ್ತು ಇನ್ನೂ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ಮತ್ತು ಇನ್ನೂ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">ನಿಮ್ಮ ಸಾಧನಗಳಿಗೆ ಪಠ್ಯವನ್ನು ಕಳುಹಿಸಿ</translation>
@@ -592,6 +597,7 @@
 <translation id="568275469169136466">ತಾತ್ಕಾಲಿಕವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಲು</translation>
 <translation id="5683547024293500885">ಅಪ್‌ಡೇಟ್‌ಗಳಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="5686790454216892815">ಫೈಲ್‌ನ ಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ</translation>
+<translation id="5687809546194252819">ಮರುಪ್ರಾರಂಭವಾದಾಗ, <ph name="LANGUAGE" /> ಅನ್ನು <ph name="APP_NAME" /> ಬಳಸುತ್ತದೆ.</translation>
 <translation id="5694049548840660018">ಸುಲಭವಾಗಿ ಹೋಮ್‌ಗೆ ಹೋಗಿ</translation>
 <translation id="569536719314091526">ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು ಬಟನ್ ಮೂಲಕ ಈ ಪುಟವನ್ನು ಯಾವ ಭಾಷೆಗಾದರೂ ಅನುವಾದಿಸಿ</translation>
 <translation id="5696597120588531049">ಡೇಟಾ ಉಲ್ಲಂಘನೆಗಳು, ಸುರಕ್ಷಿತವಲ್ಲದ ವೆಬ್‌ಸೈಟ್‌ಗಳು ಮತ್ತು ಇತ್ಯಾದಿಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು Chrome ಸಹಾಯ ಮಾಡುತ್ತದೆ</translation>
@@ -609,6 +615,7 @@
 <translation id="5763382633136178763">ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ಗಳು</translation>
 <translation id="5763514718066511291">ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ URL ನಕಲಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="5765780083710877561">ವಿವರಣೆ:</translation>
+<translation id="5776970333778123608">ಮುಖ್ಯವಲ್ಲದ ಡೇಟಾ</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> ಯಲ್ಲಿ <ph name="SPACE_USED" /> ಬಳಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="5795872532621730126">ಹುಡುಕಿ ಮತ್ತು ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="5797070761912323120">ಹುಡುಕಾಟ, ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು Google ಬಳಸಬಹುದು</translation>
@@ -694,6 +701,7 @@
 <translation id="6395288395575013217">ಲಿಂಕ್</translation>
 <translation id="6397616442223433927">ಆನ್‌ಲೈನ್‌ಗೆ ಮರಳಿದ್ದೀರಿ</translation>
 <translation id="6398765197997659313">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
+<translation id="6402652558933147609"><ph name="VIOLATED_URL" /> ನಲ್ಲಿ <ph name="ERROR_CODE" /></translation>
 <translation id="6404511346730675251">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6406506848690869874">ಸಿಂಕ್</translation>
 <translation id="6412673304250309937">Chrome ನಲ್ಲಿ ಸಂಗ್ರಹಣೆ ಮಾಡಲಾಗಿರುವ ಅಸುರಕ್ಷಿತ ಸೈಟ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಬಳಸಿ, URL ಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಯಾವುದಾದರೂ ಸೈಟ್, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕದಿಯಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಅಥವಾ ನೀವು ಹಾನಿಕಾರಕ ಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದಾಗ, ಪುಟದ ಕಂಟೆಂಟ್‌ನ ತುಣುಕುಗಳನ್ನು ಒಳಗೊಂಡ URL ಗಳನ್ನು ಸಹ Chrome, ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ಗೆ ಕಳುಹಿಸಬಹುದು.</translation>
@@ -768,6 +776,7 @@
 <translation id="6896758677409633944">ನಕಲಿಸು</translation>
 <translation id="6900532703269623216">ವರ್ಧಿತ ಸುರಕ್ಷತೆ</translation>
 <translation id="6903907808598579934">ಸಿಂಕ್‌ ಆನ್‌ ಮಾಡಿ</translation>
+<translation id="6929699136511445623">Android ಸಿಸ್ಟಮ್ ಸಿಂಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="6942665639005891494">ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮೆನು ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ, ಡಿಫಾಲ್ಟ್ ಡೌನ್‌ಲೋಡ್ ಸ್ಥಳವನ್ನು ಯಾವಾಗ ಬೇಕಾದರೂ ಬದಲಾಯಿಸಿ</translation>
 <translation id="6945221475159498467">ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="6955535239952325894">ನಿರ್ವಹಿಸಲಾದ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
@@ -868,6 +877,7 @@
 <translation id="7698359219371678927"><ph name="APP_NAME" /> ನಲ್ಲಿ ಇಮೇಲ್ ರಚಿಸಿ</translation>
 <translation id="7704317875155739195">ಸ್ವಯಂಪೂರ್ಣ ಹುಡುಕಾಟಗಳು ಮತ್ತು URLಗಳು</translation>
 <translation id="7725024127233776428">ನೀವು ಬುಕ್‌ಮಾರ್ಕ್ ಮಾಡುವ ಪುಟಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation>
+<translation id="7735637452482172701">ಸ್ಕ್ರೀನ್ ಲಾಕ್‌ಗಳು ನೊಂದಿಗೆ ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="7746457520633464754">ಅಪಾಯಕಾರಿ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೈಟ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು Chrome, ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವು ಪುಟಗಳ URL ಗಳು, ಸೀಮಿತ ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಕೆಲವು ಪುಟದ ವಿಷಯವನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="7757787379047923882"><ph name="DEVICE_NAME" /> ಮೂಲಕ ಪಠ್ಯವನ್ನು ಹಂಚಲಾಗಿದೆ</translation>
 <translation id="7761849928583394409">ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಆರಿಸಿ</translation>
@@ -948,6 +958,7 @@
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
 <translation id="8266862848225348053">ಡೌನ್‌ಲೋಡ್ ಸ್ಥಳ</translation>
 <translation id="8274165955039650276">ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ನೋಡಿ</translation>
+<translation id="8278640294239011163">ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="8284326494547611709">ಶೀರ್ಷಿಕೆಗಳು</translation>
 <translation id="8310344678080805313">ಪ್ರಮಾಣಿತ ಟ್ಯಾಬ್‌ಗಳು</translation>
 <translation id="8316092324682955408"><ph name="DOMAIN_NAME" /> ಮತ್ತು ಹೆಚ್ಚಿನ ಸೈಟ್‌ಗಳು</translation>
@@ -1039,6 +1050,7 @@
 <translation id="9050666287014529139">ಪಾಸ್‌ಫ್ರೇಸ್</translation>
 <translation id="9063523880881406963">ಡೆಸ್ಕ್‌ಟಾಪ್ ಸೈಟ್ ವಿನಂತಿಯನ್ನು ಆಫ್ ಮಾಡಿ</translation>
 <translation id="9065203028668620118">ಎಡಿಟ್</translation>
+<translation id="9065383040763568503">Chrome ಪ್ರಕಾರ ಮುಖ್ಯವಲ್ಲದ, ಸಂಗ್ರಹಣೆ ಮಾಡಲಾಗಿರುವ ಡೇಟಾ (ಉದಾ., ಉಳಿಸಿದ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿರದ ಸೈಟ್‌ಗಳು ಅಥವಾ ನೀವು ಆಗಾಗ ಭೇಟಿ ನೀಡದ ಸೈಟ್‌ಗಳು)</translation>
 <translation id="9069543557624799859"><ph name="TIME" /> ಸಮಯಕ್ಕೆ ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation>
 <translation id="9070377983101773829">ಧ್ವನಿ ಹುಡುಕಾಟವನ್ನು ಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="9074336505530349563">Google ಸಲಹೆ ನೀಡಿದ ವೈಯಕ್ತೀಕರಿಸಲಾದ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index 89ad609..f15c9dfa 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">동기화 관리</translation>
 <translation id="4320177379694898372">인터넷에 연결되지 않음</translation>
 <translation id="4321739720395210191">카메라를 열 수 없습니다. 기기를 다시 시작한 후 시도해 보세요.</translation>
+<translation id="4335835283689002019">세이프 브라우징 사용 안함</translation>
 <translation id="4351244548802238354">대화상자 닫기</translation>
 <translation id="4378154925671717803">전화기</translation>
 <translation id="4382908510000698092">Chrome 언어로 사용</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">닉네임에 숫자를 포함할 수 없음</translation>
 <translation id="4663756553811254707">북마크 <ph name="NUMBER_OF_BOOKMARKS" />개 삭제됨</translation>
 <translation id="4665282149850138822"><ph name="NAME" />이(가) 홈 화면에 추가됨</translation>
+<translation id="4668347365065281350">쿠키 및 기타 로컬에 저장된 데이터 등 사이트에 저장된 모든 데이터</translation>
 <translation id="4684427112815847243">모두 동기화</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />개}other{<ph name="SHIPPING_OPTION_PREVIEW" /> 외 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />개}}</translation>
 <translation id="4696983787092045100">기기로 SMS 전송</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">시크릿 탭</translation>
 <translation id="5763514718066511291">탭하여 이 앱의 URL 복사하기</translation>
 <translation id="5765780083710877561">설명:</translation>
+<translation id="5776970333778123608">중요하지 않은 데이터</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> 중 <ph name="SPACE_USED" /> 사용 중</translation>
 <translation id="5795872532621730126">검색 및 탐색</translation>
 <translation id="5797070761912323120">Google에서 내 방문 기록을 사용하여 Google 검색, 광고 및 다른 Google 서비스를 맞춤설정할 수 있습니다.</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">암호</translation>
 <translation id="9063523880881406963">데스크톱 버전으로 보기 사용 중지</translation>
 <translation id="9065203028668620118">수정</translation>
+<translation id="9065383040763568503">Chrome에서 중요하다고 간주하지 않는 저장된 데이터(예: 저장된 설정이 없거나 사용자가 자주 방문하지 않는 사이트)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />에 다운로드가 시작됩니다.</translation>
 <translation id="9070377983101773829">음성 검색 시작</translation>
 <translation id="9074336505530349563">Google에서 추천하는 맞춤 콘텐츠를 보려면 로그인하고 동기화를 사용 설정하세요.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
index bc33b79..ab26b3f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Шайкештирүүнү башкаруу</translation>
 <translation id="4320177379694898372">Интернет жок</translation>
 <translation id="4321739720395210191">Камераңыз ачылбай жатат. Түзмөктү өчүрүп күйгүзүп, кайталап көрүңүз.</translation>
+<translation id="4335835283689002019">Коопсуз серептөө өчүк.</translation>
 <translation id="4351244548802238354">Диалогду жабуу</translation>
 <translation id="4378154925671717803">Телефон</translation>
 <translation id="4382908510000698092">Chrome’дун тили катары колдонуу</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Ылакап атта сан болбошу керек</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> кыстарма өчүрүлдү</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> Башкы экраныңызга кошулду</translation>
+<translation id="4668347365065281350">Бардык сайттардын дайын-даректери, анын ичинде cookie файлдары жана башка жергиликтүү сакталган маалымат</translation>
 <translation id="4684427112815847243">Баарын шайкештештирүү</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 жана дагы <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 жана дагы <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Түзмөктөрүңүзгө билдирүү жөнөтүңүз</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Жашыруун кыстырмалар</translation>
 <translation id="5763514718066511291">Бул колдонмонун URL'ин көчүрүү үчүн таптап коюңуз</translation>
 <translation id="5765780083710877561">Сүрөттөлүшү:</translation>
+<translation id="5776970333778123608">Маанилүү эмес маалымат</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> ичинен <ph name="SPACE_USED" /> колдонулууда</translation>
 <translation id="5795872532621730126">Издөө жана серептөө</translation>
 <translation id="5797070761912323120">Издөө, жарнама жана башка Google кызматтарын жекечелештирүү үчүн, Google таржымалыңызды колдонушу мүмкүн</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Купуя сөз айкашы</translation>
 <translation id="9063523880881406963">Иш тактасынын сайтындагы суроо-талапты өчүрүү</translation>
 <translation id="9065203028668620118">Түзөтүү</translation>
+<translation id="9065383040763568503">Chrome анча маанилүү деп эсептебеген сайттардын дайын-даректери (мис., жөндөөлөрү сакталбаган же сиз көп кирбеген сайттар)</translation>
 <translation id="9069543557624799859">Саат <ph name="TIME" /> жүктөлүп алынат.</translation>
 <translation id="9070377983101773829">Айтып издеп баштаңыз</translation>
 <translation id="9074336505530349563">Google тарабынан сунушталган мазмунду алуу үчүн аккаунтуңузга кирип, шайкештирүүнү күйгүзүңүз.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
index 5833297..f2ee1fb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">ຈັດການການຊິ້ງຂໍ້ມູນ</translation>
 <translation id="4320177379694898372">ບໍ່​ມີການ​ເຊື່ອມ​ຕໍ່​ອິນ​ເຕີ​ເນັດ​</translation>
 <translation id="4321739720395210191">ບໍ່ສາມາດເປີດກ້ອງຂອງທ່ານໄດ້. ຣິສະຕາດອຸປະກອນຂອງທ່ານ ແລ້ວລອງໃໝ່.</translation>
+<translation id="4335835283689002019">Safe Browsing ປິດ</translation>
 <translation id="4351244548802238354">ປິດ​ໜ້າ​ຕ່າງ</translation>
 <translation id="4378154925671717803">ໂທລະ​ສັບ</translation>
 <translation id="4382908510000698092">ໃຊ້ເປັນພາສາຂອງ Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">ຊື່ຫຼິ້ນບໍ່ສາມາດຮວມມີຕົວເລກໄດ້</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ບຸກ​ມາກ​ຖືກ​ລຶບ​ໄປ​ແລ້ວ</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ຖືກເພີ່ມ​ເຂົ້າ​ໃສ່​ໜ້າ​ຈໍ​ຫຼັກ​ຂອງ​ທ່ານ​ແລ້ວ</translation>
+<translation id="4668347365065281350">ຂໍ້ມູນທັງໝົດທີ່ເກັບໄວ້ໂດຍເວັບໄຊ, ຮວມທັງຄຸກກີ້ ແລະ ຂໍ້ມູນອື່ນທີ່ເກັບໄວ້ໃນເຄື່ອງ</translation>
 <translation id="4684427112815847243">ຊິງຄ໌​ທຸກ​ຢ່າງ</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ແລະ ອີກ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ທາງເລືອກການຈັດສົ່ງ}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ແລະ ອີກ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ທາງເລືອກການຈັດສົ່ງ}}</translation>
 <translation id="4696983787092045100">ສົ່ງຂໍ້ຄວາມຫາອຸປະກອນຂອງທ່ານ</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ແຖບບໍ່ເຜີຍຕົນຕົວ</translation>
 <translation id="5763514718066511291">ແຕະເພື່ອສຳເນົາ URL ສຳລັບແອັບນີ້</translation>
 <translation id="5765780083710877561">ລາຍລະອຽດ</translation>
+<translation id="5776970333778123608">ຂໍໍ້ມູນທີ່ບໍ່ສຳຄັນ</translation>
 <translation id="5793665092639000975">ໃຊ້ <ph name="SPACE_USED" /> ຈາກທັງໝົດ <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">ຊອກຫາ ແລະ ເປີດເບິ່ງ</translation>
 <translation id="5797070761912323120">Google ອາດຈະໃຊ້ປະຫວັດຂອງທ່ານເພື່ອປັບແຕ່ງຊອກຫາ, ໂຄສະນາ ແລະ ການບໍລິການອື່ນຂອງ Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">ວະລີຜ່ານ</translation>
 <translation id="9063523880881406963">ປິດ​ຂໍ​ເວັບ​ໄຊ​ທ໌​ເດັ​ສ​ທັອບ</translation>
 <translation id="9065203028668620118">ແກ້ໄຂ</translation>
+<translation id="9065383040763568503">ຂໍ້ມູນເກັບໄວ້ທີ່ Chrome ຄິດວ່າບໍ່ສຳຄັນ (ເຊັ່ນ ເວັບໄຊທີ່ບໍ່ມີການຕັ້ງຄ່າທີ່ບັນທຶກໄວ້ ຫຼື ທີ່ທ່ານບໍ່ຄ່ອຍເຂົ້າເບິ່ງ)</translation>
 <translation id="9069543557624799859">ການດາວໂຫຼດຈະເລີ່ມໃນເວລາ <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">ເລີ່ມ​ການຄົ້ນຫາ​ສຽງ</translation>
 <translation id="9074336505530349563">ເພື່ອຮັບເນື້ອຫາທີ່ປັບແຕ່ງເປັນແບບສ່ວນຕົວທີ່ແນະນຳໂດຍ Google, ກະລຸນາເຂົ້າສູ່ລະບົບ ແລະ ເປີດການຊິ້ງຂໍ້ມູນກ່ອນ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
index f7793e2..02de4cb 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Sinchronizavimo tvarkymas</translation>
 <translation id="4320177379694898372">Nėra interneto ryšio</translation>
 <translation id="4321739720395210191">Kameros atidaryti nepavyko. Paleiskite įrenginį iš naujo ir bandykite dar kartą.</translation>
+<translation id="4335835283689002019">Saugus naršymas išjungtas</translation>
 <translation id="4351244548802238354">Uždaryti dialogo langą</translation>
 <translation id="4378154925671717803">Telefonas</translation>
 <translation id="4382908510000698092">Naudoti kaip „Chrome“ kalbą</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Skaičiai slapyvardyje negalimi</translation>
 <translation id="4663756553811254707">Ištrinta žymių: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Svetainė „<ph name="NAME" />“ pridėta prie pagrindinio ekrano</translation>
+<translation id="4668347365065281350">Visi svetainių išsaugoti duomenys, įskaitant slapukus ir kitus vietoje saugomus duomenis</translation>
 <translation id="4684427112815847243">Viską sinchronizuoti</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ir dar <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Siųsti teksto pranešimą savo įrenginiams</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Inkognito skirtukai</translation>
 <translation id="5763514718066511291">Palieskite, jei norite nukopijuoti šios programos URL</translation>
 <translation id="5765780083710877561">Aprašas:</translation>
+<translation id="5776970333778123608">Nesvarbūs duomenys</translation>
 <translation id="5793665092639000975">Naudojama <ph name="SPACE_USED" /> iš <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Ieškoti ir naršyti</translation>
 <translation id="5797070761912323120">„Google“ gali naudoti jūsų istoriją, kad suasmenintų Paiešką, skelbimus ir kitas „Google“ paslaugas</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Slaptafrazė</translation>
 <translation id="9063523880881406963">Išjungti stalinio kompiuterio svetainės užklausą</translation>
 <translation id="9065203028668620118">Redaguoti</translation>
+<translation id="9065383040763568503">Išsaugoti duomenys, kurių „Chrome“ nelaiko svarbiais (pvz., svetainės be išsaugotų nustatymų arba tos, kuriose retai lankotės)</translation>
 <translation id="9069543557624799859">Atsisiuntimas bus pradedamas <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Pradėti paiešką balsu</translation>
 <translation id="9074336505530349563">Jei norite gauti „Google“ siūlomo suasmeninto turinio, prisijunkite ir įjunkite sinchronizavimą</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index a98b73e9..737a0dc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">സമന്വയിപ്പിക്കൽ മാനേജ് ചെയ്യുക</translation>
 <translation id="4320177379694898372">ഇന്റർനെറ്റ് കണക്ഷനൊന്നുമില്ല</translation>
 <translation id="4321739720395210191">നിങ്ങളുടെ ക്യാമറ തുറക്കാനാവുന്നില്ല. നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക.</translation>
+<translation id="4335835283689002019">സുരക്ഷിത ബ്രൗസിംഗ് ഓഫാണ്</translation>
 <translation id="4351244548802238354">ഡയലോഗ് അടയ്‌ക്കുക</translation>
 <translation id="4378154925671717803">ഫോൺ</translation>
 <translation id="4382908510000698092">Chrome-ന്റെ ഭാഷയായി ഉപയോഗിക്കുക</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">വിളിപ്പേരിൽ അക്കങ്ങൾ പാടില്ല</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ബുക്ക്‌മാർക്കുകൾ ഇല്ലാതാക്കി</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> എന്നയാളെ നിങ്ങളുടെ ഹോം സ്‌ക്രീനിൽ ചേർത്തു</translation>
+<translation id="4668347365065281350">കുക്കികളും പ്രാദേശികമായി സംഭരിച്ച മറ്റ് വിവരങ്ങളും ഉൾപ്പെടെ സൈറ്റുകൾ സംഭരിച്ച എല്ലാ ഡാറ്റയും</translation>
 <translation id="4684427112815847243">എല്ലാം സമന്വയിപ്പിക്കുക</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 എന്നതും ‌മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> പേയ്‌മെന്റ് രീതികളും}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 എന്നതും ‌മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> പേയ്‌മെന്റ് രീതികളും}}</translation>
 <translation id="4696983787092045100">ഉപകരണങ്ങളിലേക്ക് അയയ്ക്കൂ</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ആൾമാറാട്ട ടാബുകൾ</translation>
 <translation id="5763514718066511291">ഈ ആപ്പിനായുള്ള URL പകർത്താൻ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="5765780083710877561">വിവരണം:</translation>
+<translation id="5776970333778123608">പ്രധാനമല്ലാത്ത ഡാറ്റ</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /> ഉപയോഗിക്കുന്നു</translation>
 <translation id="5795872532621730126">തിരയുക, ബ്രൗസ് ചെയ്യുക</translation>
 <translation id="5797070761912323120">തിരയലും പരസ്യവും മറ്റ് Google സേവനങ്ങളും വ്യക്തിപരമാക്കാൻ Google നിങ്ങളുടെ ചരിത്രം ഉപയോഗിച്ചേക്കാം</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">പാസ്ഫ്രെയ്‍സ്</translation>
 <translation id="9063523880881406963">'ഡെസ്‌ക്‌ടോപ്പ് സൈറ്റ് അഭ്യർത്ഥിക്കുക' ഓഫാക്കുക</translation>
 <translation id="9065203028668620118">എഡിറ്റ് ചെയ്യുക</translation>
+<translation id="9065383040763568503">Chrome, സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയെ പ്രധാനപ്പെട്ടതായി കണക്കാക്കുന്നില്ല (ഉദാ: ക്രമീകരണം സംരക്ഷിച്ചിട്ടില്ലാത്തതോ നിങ്ങൾ ഇടയ്‌ക്കിടെ സന്ദർശിക്കാത്തതോ ആയ സൈറ്റുകൾ)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />-ന് ഡൗൺലോഡ് ആരംഭിക്കും.</translation>
 <translation id="9070377983101773829">ശബ്ദ തിരയൽ ആരംഭിക്കുക</translation>
 <translation id="9074336505530349563">Google നിർദേശിക്കുന്ന വ്യക്തിപരമാക്കിയ ഉള്ളടക്കം ലഭിക്കാൻ, സൈൻ ഇൻ ചെയ്‌ത് സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index 57c08bd..aca3526 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Синк хийхийг удирдах</translation>
 <translation id="4320177379694898372">Интернетийн холболтгүй байна</translation>
 <translation id="4321739720395210191">Таны камерыг нээх боломжгүй байна. Төхөөрөмжөө дахин эхлүүлээд дахин оролдоно уу.</translation>
+<translation id="4335835283689002019">Аюулгүй үзэх тохиргоо унтраалттай байна</translation>
 <translation id="4351244548802238354">Харилцах цонхыг хаах</translation>
 <translation id="4378154925671717803">Утас</translation>
 <translation id="4382908510000698092">Chrome-н хэл болгон ашиглах</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Хоч тоо агуулж болохгүй</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> хавчуурга устгасан</translation>
 <translation id="4665282149850138822"><ph name="NAME" />-г таны үндсэн дэлгэцэд нэмсэн</translation>
+<translation id="4668347365065281350">Күүки болон дотоодод хадгалсан бусад өгөгдлийг багтаасан сайтуудын хадгалсан бүх өгөгдөл</translation>
 <translation id="4684427112815847243">Бүгдийг sync хийх</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 болон бусад <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 болон бусад <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Төхөөрөмжүүддээ текст илгээх</translation>
@@ -612,6 +614,7 @@
 <translation id="5763382633136178763">Мэдээний нууцлалтай цонхууд</translation>
 <translation id="5763514718066511291">URL-г энэ аппад хуулах бол товшино уу</translation>
 <translation id="5765780083710877561">Тодорхойлолт:</translation>
+<translation id="5776970333778123608">Чухал биш өгөгдөл</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />-н <ph name="SPACE_USED" />-г ашиглаж байна</translation>
 <translation id="5795872532621730126">Хайх болон үзэх</translation>
 <translation id="5797070761912323120">Google таны түүхийг Хайлт, зар болон Google-н бусад үйлчилгээг хувийн болгох зорилгоор ашиглаж болзошгүй</translation>
@@ -1046,6 +1049,7 @@
 <translation id="9050666287014529139">Нэвтрэх хэллэг</translation>
 <translation id="9063523880881406963">Сайтыг компьютерийн горимоор харах хүсэлт-г унтраах</translation>
 <translation id="9065203028668620118">Засварлах</translation>
+<translation id="9065383040763568503">Chrome-н зүгээс чухал гэж тооцдоггүй хадгалсан өгөгдөл (жишээ нь: тохиргоог нь хадгалаагүй эсвэл таны тогтмол зочилдоггүй сайтууд)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />-д татаж эхэлнэ.</translation>
 <translation id="9070377983101773829">Дуут хайлтыг эхлүүлэх</translation>
 <translation id="9074336505530349563">Google-с санал болгож буй хувийн болгосон агуулга авахын тулд нэвтрээд синкийг асаана уу</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
index 2b1e82c..a6425cc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">सिंक व्यवस्थापित करा</translation>
 <translation id="4320177379694898372">कोणतेही इंटरनेट कनेक्शन नाही</translation>
 <translation id="4321739720395210191">तुमचा कॅमेरा उघडू शकत नाही. तुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा.</translation>
+<translation id="4335835283689002019">सुरक्षित ब्राउझिंग बंद आहे</translation>
 <translation id="4351244548802238354">डायलॉग बंद करा</translation>
 <translation id="4378154925671717803">फोन</translation>
 <translation id="4382908510000698092">Chrome ची भाषा म्‍हणून वापरा</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">टोपणनावामध्ये अंकांचा समावेश असू शकत नाही</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> बुकमार्क हटविले</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ला तुमच्या होम स्क्रीनवर पेअरिंग आले</translation>
+<translation id="4668347365065281350">कुकी आणि इतर स्थानिकरीत्या स्टोअर केलेल्या डेटासह साइटने स्टोअर केलेला सर्व डेटा</translation>
 <translation id="4684427112815847243">सर्वकाही संंकालित करा</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अधिक}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> अधिक}}</translation>
 <translation id="4696983787092045100">तुमच्या डिव्हाइसवर एसएमएस पाठवा</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">गुप्त टॅब</translation>
 <translation id="5763514718066511291">या ॲपची URL कॉपी करण्यासाठी टॅप करा</translation>
 <translation id="5765780083710877561">वर्णन:</translation>
+<translation id="5776970333778123608">महत्त्वाचा नसलेला डेटा</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> पैकी <ph name="SPACE_USED" /> वापरत आहे</translation>
 <translation id="5795872532621730126">शोधा आणि ब्राउझ करा</translation>
 <translation id="5797070761912323120">शोध, जाहिरात आणि इतर Google सेवा पर्सनलाइझ करण्यासाठी Google कदाचित तुमच्या इतिहासाचा वापर करू शकते</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">सांकेतिक पासफ्रेझ</translation>
 <translation id="9063523880881406963">डेस्कटॉप साइट विनंती बंद करा</translation>
 <translation id="9065203028668620118">संपादन</translation>
+<translation id="9065383040763568503">Chrome ला महत्त्वाचा वाटत नसलेला सेव्ह केलेला डेटा (उदा. सेटिंग्ज सेव्ह नसलेल्या किंवा तुम्ही सारखे भेट देत नसलेल्या साइट)</translation>
 <translation id="9069543557624799859">डाउनलोड <ph name="TIME" /> वाजता सुरू होईल.</translation>
 <translation id="9070377983101773829">व्हॉइस शोध प्रारंभ करा</translation>
 <translation id="9074336505530349563">Google ने सुचवलेला पर्सनलाइझ केलेला आशय मिळवण्यासाठी, साइन इन करा आणि सिंक सुरू करा</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 0d07e49d..a1fec13 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Urus penyegerakan</translation>
 <translation id="4320177379694898372">Tiada sambungan Internet</translation>
 <translation id="4321739720395210191">Tidak dapat membuka kamera anda. Mulakan semula peranti anda dan cuba lagi.</translation>
+<translation id="4335835283689002019">Penyemakan Imbas Selamat dimatikan</translation>
 <translation id="4351244548802238354">Tutup dialog</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Gunakan sebagai bahasa Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Nama panggilan tidak boleh mengandungi nombor</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> penanda halaman dipadamkan</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> telah ditambahkan ke skrin Utama anda</translation>
+<translation id="4668347365065281350">Semua data yang disimpan oleh tapak, termasuk kuki dan data lain yang disimpan setempat</translation>
 <translation id="4684427112815847243">Segerakkan semua</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lagi}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> lagi}}</translation>
 <translation id="4696983787092045100">Hantar teks ke Peranti Anda</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Tab inkognito</translation>
 <translation id="5763514718066511291">Ketik untuk menyalin URL apl ini</translation>
 <translation id="5765780083710877561">Huraian:</translation>
+<translation id="5776970333778123608">Data tidak penting</translation>
 <translation id="5793665092639000975">Menggunakan <ph name="SPACE_USED" /> daripada <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Cari dan semak imbas</translation>
 <translation id="5797070761912323120">Google boleh menggunakan sejarah anda untuk memperibadikan Carian, iklan dan perkhidmatan Google yang lain</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Frasa laluan</translation>
 <translation id="9063523880881406963">Matikan Minta tapak desktop</translation>
 <translation id="9065203028668620118">Edit</translation>
+<translation id="9065383040763568503">Data tersimpan yang Chrome anggap tidak penting (misalnya tapak yang tiada tetapan yang disimpan atau yang jarang anda lawati)</translation>
 <translation id="9069543557624799859">Muat turun akan bermula pada <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Mulakan carian suara</translation>
 <translation id="9074336505530349563">Log masuk dan hidupkan penyegerakan untuk mendapatkan kandungan diperibadikan yang dicadangkan oleh Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
index 0d29598..945b0e7 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -415,6 +415,7 @@
 <translation id="4314815835985389558">सिंक व्यवस्थापन गर्नुहोस्</translation>
 <translation id="4320177379694898372">कुनै इन्टरनेट जडान छैन</translation>
 <translation id="4321739720395210191">तपाईंको क्यामेरा खोल्न सकिएन। आफ्नो यन्त्र पुनः सुरु गरी फेरि प्रयास गर्नुहोस्।</translation>
+<translation id="4335835283689002019">Safe Browsing अफ छ</translation>
 <translation id="4351244548802238354">सम्बाद बन्द गर्नुहोस्</translation>
 <translation id="4378154925671717803">फोन</translation>
 <translation id="4384468725000734951">खोजीका लागि Sogou प्रयोग गर्दै</translation>
@@ -453,6 +454,7 @@
 <translation id="4662373422909645029">उपनाममा अङ्क प्रयोग गर्न पाइँदैन</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> पुस्तक चिन्हहरू मेटाइयो</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> लाई तपाईँको गृहपृष्ठ स्क्रिनमा थपियो</translation>
+<translation id="4668347365065281350">कुकी तथा यन्त्रमा भण्डारण गरिएका अन्य डेटासहित साइटहरूले भण्डारण गरेका सबै डेटा</translation>
 <translation id="4684427112815847243">सबै सिंक गर्नुहोस्</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 र <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> थप}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 र <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> थप}}</translation>
 <translation id="4696983787092045100">आफ्ना यन्त्रहरूमा पाठ सन्देश पठाउनुहोस्</translation>
@@ -608,6 +610,7 @@
 <translation id="5763382633136178763">इनकग्निटो ट्याबहरू</translation>
 <translation id="5763514718066511291">यस एपको URL प्रतिलिपि गर्न ट्याप गर्नुहोस्</translation>
 <translation id="5765780083710877561">विवरण:</translation>
+<translation id="5776970333778123608">अमहत्त्वपूर्ण डेटा</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> मध्ये <ph name="SPACE_USED" /> प्रयोग गरिँदै</translation>
 <translation id="5795872532621730126">खोज्नुहोस् तथा ब्राउज गर्नुहोस्</translation>
 <translation id="5797070761912323120">Google ले खोज, विज्ञापन र Google का अन्य सेवाहरूलाई वैयक्तीकृत गर्न तपाईंको इतिहाससम्बन्धी जानकारी प्रयोग गर्न सक्छ</translation>
@@ -1038,6 +1041,7 @@
 <translation id="9050666287014529139">पासफ्रेज</translation>
 <translation id="9063523880881406963">अनुरोध डेस्कटप साइट बन्द गर्नुहोस्</translation>
 <translation id="9065203028668620118">सम्पादन गर्नुहोस</translation>
+<translation id="9065383040763568503">Chrome लाई महत्त्वपूर्ण छैन जस्तो लागेको भण्डारण गरिएका डेटा (जस्तै सेटिङ सुरक्षित नगरिएका साइट वा तपाईंले खासै नखोल्ने साइटका भण्डारण गरिएका डेटा)</translation>
 <translation id="9069543557624799859"><ph name="TIME" /> मा डाउनलोड सुरु हुने छ।</translation>
 <translation id="9070377983101773829">आवाज खोजी सुरु गर्नुहोस्</translation>
 <translation id="9074336505530349563">Google ले सिफारिस गरेका वैयक्तीकृत सामग्री प्राप्त गर्न साइन इन गरी सिंक गर्ने सुविधा सक्रिय गर्नुहोस्।</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
index d0484254..f9828a99 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -357,7 +357,7 @@
 <translation id="3775705724665058594">Verzenden naar je apparaten</translation>
 <translation id="3778956594442850293">Toegevoegd aan startscherm</translation>
 <translation id="3789841737615482174">Installeren</translation>
-<translation id="3810838688059735925">Videobestanden</translation>
+<translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Beheren</translation>
 <translation id="381841723434055211">Telefoonnummers</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads verwijderd</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Synchronisatie beheren</translation>
 <translation id="4320177379694898372">Geen internetverbinding</translation>
 <translation id="4321739720395210191">Kan de camera niet openen. Start het apparaat opnieuw op en probeer het nogmaals.</translation>
+<translation id="4335835283689002019">Safe Browsing staat uit</translation>
 <translation id="4351244548802238354">Dialoogvenster sluiten</translation>
 <translation id="4378154925671717803">Telefoon</translation>
 <translation id="4382908510000698092">Gebruiken als taal voor Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Cijfers niet toegestaan</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bookmarks verwijderd</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> is toegevoegd aan je startscherm</translation>
+<translation id="4668347365065281350">Alle gegevens die zijn opgeslagen door sites, waaronder cookies en andere lokaal opgeslagen gegevens</translation>
 <translation id="4684427112815847243">Alles synchroniseren</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> andere}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> andere}}</translation>
 <translation id="4696983787092045100">Tekst naar je apparaten verzenden</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Incognitotabbladen</translation>
 <translation id="5763514718066511291">Tik om de URL voor deze app te kopiëren</translation>
 <translation id="5765780083710877561">Beschrijving:</translation>
+<translation id="5776970333778123608">Onbelangrijke gegevens</translation>
 <translation id="5793665092639000975">Er wordt <ph name="SPACE_USED" /> van de <ph name="SPACE_AVAILABLE" /> gebruikt</translation>
 <translation id="5795872532621730126">Zoeken en browsen</translation>
 <translation id="5797070761912323120">Google kan je geschiedenis gebruiken om Google Zoeken, advertenties en andere Google-services te personaliseren</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Wachtwoordzin</translation>
 <translation id="9063523880881406963">'Desktopsite opvragen' uitschakelen</translation>
 <translation id="9065203028668620118">Bewerken</translation>
+<translation id="9065383040763568503">Opgeslagen gegevens waarvan Chrome denkt dat deze niet belangrijk zijn (bijvoorbeeld sites zonder opgeslagen instellingen of sites die je niet vaak bezoekt)</translation>
 <translation id="9069543557624799859">Download wordt gestart om <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Gesproken zoekopdracht starten</translation>
 <translation id="9074336505530349563">Log in en schakel synchronisatie in om suggesties voor gepersonaliseerde content van Google te ontvangen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
index 98d308198..e8af9cfe 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Administrer synkronisering</translation>
 <translation id="4320177379694898372">Ingen internettilkobling</translation>
 <translation id="4321739720395210191">Kan ikke åpne kameraet. Start enheten på nytt, og prøv igjen.</translation>
+<translation id="4335835283689002019">Safe Browsing er av</translation>
 <translation id="4351244548802238354">Lukk dialogboks</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Bruk som språk for Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Kallenavnet kan ikke inneholde tall</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bokmerker ble slettet</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ble lagt til på startskjermen</translation>
+<translation id="4668347365065281350">Alle data som er lagret av nettsteder, inkludert informasjonskapsler og andre lokalt lagrede data</translation>
 <translation id="4684427112815847243">Synkroniser alt</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> til}other{<ph name="SHIPPING_OPTION_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> til}}</translation>
 <translation id="4696983787092045100">Send tekst til enhetene dine</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Inkognitofaner</translation>
 <translation id="5763514718066511291">Trykk for å kopiere nettadressen for denne appen</translation>
 <translation id="5765780083710877561">Beskrivelse:</translation>
+<translation id="5776970333778123608">Uviktige data</translation>
 <translation id="5793665092639000975">Bruker <ph name="SPACE_USED" /> av <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Søk etter og bla gjennom</translation>
 <translation id="5797070761912323120">Google kan bruke loggen din for å gi Søk, annonser og andre Google-tjenester et personlig preg</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Passordfrase</translation>
 <translation id="9063523880881406963">Slå av Bruk skrivebordsversjon</translation>
 <translation id="9065203028668620118">Endre</translation>
+<translation id="9065383040763568503">Lagrede data som Chrome ikke tror er viktige (for eksempel nettsteder uten lagrede innstillinger eller som du ikke besøker ofte)</translation>
 <translation id="9069543557624799859">Nedlastingen starter kl. <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Start talesøk</translation>
 <translation id="9074336505530349563">For å få forslag om personlig tilpasset innhold fra Google, slå på synkronisering</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index a13708d..6f839898 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">ਸਮਕਾਲੀਕਰਨ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="4320177379694898372">ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ</translation>
 <translation id="4321739720395210191">ਤੁਹਾਡੇ ਕੈਮਰੇ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
+<translation id="4335835283689002019">ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬੰਦ ਹੈ</translation>
 <translation id="4351244548802238354">ਡਾਇਲੌਗ ਬੰਦ ਕਰੋ</translation>
 <translation id="4378154925671717803">ਫ਼ੋਨ</translation>
 <translation id="4382908510000698092">Chrome ਦੀ ਭਾਸ਼ਾ ਵਜੋਂ ਵਰਤੋ</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">ਉਪਨਾਮ 'ਚ ਅੰਕ ਨਹੀਂ ਹੋ ਸਕਦੇ</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ਬੁੁੱਕਮਾਰਕ ਮਿਟਾਏ ਗਏ</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ਨੂੰ ਤੁਹਾਡੀ ਹੋਮ ਸਕ੍ਰੀਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ</translation>
+<translation id="4668347365065281350">ਕੁਕੀਜ਼ ਅਤੇ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਸਟੋਰ ਕੀਤੇ ਹੋਰ ਡਾਟੇ ਸਮੇਤ ਸਾਰੀਆਂ ਸਾਈਟਾਂ ਵੱਲੋਂ ਸਟੋਰ ਕੀਤਾ ਗਿਆ ਡਾਟਾ</translation>
 <translation id="4684427112815847243">ਸਭ ਕੁਝ ਸਿੰਕ ਕਰੋ</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ਅਤੇ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ਹੋਰ}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ਅਤੇ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ਹੋਰ}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ਅਤੇ <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ਹੋਰ}}</translation>
 <translation id="4696983787092045100">ਲਿਖਤ ਨੂੰ ਆਪਣੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਭੇਜੋ</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">ਗੁਮਨਾਮ ਟੈਬਸ</translation>
 <translation id="5763514718066511291">ਇਸ ਐਪ ਲਈ URL ਕਾਪੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ</translation>
 <translation id="5765780083710877561">ਵਰਣਨ:</translation>
+<translation id="5776970333778123608">ਗੈਰ-ਮਹੱਤਵਪੂਰਨ ਡਾਟਾ</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> ਵਿੱਚੋਂ <ph name="SPACE_USED" /> ਦੀ ਵਰਤੋਂ ਹੋ ਰਹੀ ਹੈ</translation>
 <translation id="5795872532621730126">ਖੋਜੋ ਅਤੇ ਬ੍ਰਾਊਜ਼ ਕਰੋ</translation>
 <translation id="5797070761912323120">Google ਖੋਜ, ਵਿਗਿਆਪਨਾਂ ਅਤੇ ਹੋਰਾਂ Google ਸੇਵਾਵਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">ਪਾਸਫਰੇਜ਼</translation>
 <translation id="9063523880881406963">ਬੇਨਤੀ ਡੈਸਕਟਾਪ ਸਾਈਟ ਬੰਦ ਕਰੋ</translation>
 <translation id="9065203028668620118">ਸੰਪਾਦਿਤ ਕਰੋ</translation>
+<translation id="9065383040763568503">ਉਹ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਜੋ Chrome ਅਨੁਸਾਰ ਮਹੱਤਵਪੂਰਨ ਨਹੀਂ ਹੈ (ਜਿਵੇਂ ਕਿ ਉਹ ਸਾਈਟਾਂ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਕੋਈ ਸੈਟਿੰਗ ਰੱਖਿਅਤ ਨਹੀਂ ਹੈ ਜਾਂ ਉਹ ਸਾਈਟਾਂ ਜਿੰਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਅਕਸਰ ਨਹੀਂ ਜਾਂਦੇ ਹੋ)</translation>
 <translation id="9069543557624799859"><ph name="TIME" /> ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="9070377983101773829">ਅਵਾਜ਼ੀ ਖੋਜ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="9074336505530349563">Google ਵੱਲੋਂ ਸੁਝਾਈ ਵਿਅਕਤੀਗਤ ਬਣਾਈ ਗਈ ਸਮੱਗਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸਾਈਨ-ਇਨ ਕਰਕੇ ਸਮਕਾਲੀਕਰਨ ਚਾਲੂ ਕਰੋ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index e72e2c3..ff8b23510 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Gestionează sincronizarea</translation>
 <translation id="4320177379694898372">Nu există conexiune la internet</translation>
 <translation id="4321739720395210191">Nu se poate deschide camera. Repornește dispozitivul și încearcă din nou.</translation>
+<translation id="4335835283689002019">Navigarea sigură este dezactivată</translation>
 <translation id="4351244548802238354">Închide caseta de dialog</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Folosește ca limbă pentru Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Pseudonimele nu pot să includă cifre</translation>
 <translation id="4663756553811254707">S-au șters <ph name="NUMBER_OF_BOOKMARKS" /> (de) marcaje</translation>
 <translation id="4665282149850138822">Site-ul <ph name="NAME" /> a fost adăugat pe ecranul de pornire</translation>
+<translation id="4668347365065281350">Toate datele stocate de site-uri, inclusiv cookie-uri și alte date stocate local</translation>
 <translation id="4684427112815847243">Sincronizează tot</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Trimite text pe dispozitivele tale</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">File incognito</translation>
 <translation id="5763514718066511291">Atinge pentru a copia adresa URL pentru această aplicație</translation>
 <translation id="5765780083710877561">Descriere:</translation>
+<translation id="5776970333778123608">Date neimportante</translation>
 <translation id="5793665092639000975">Se utilizează <ph name="SPACE_USED" /> din <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Caută și răsfoiește</translation>
 <translation id="5797070761912323120">Google poate folosi istoricul pentru a personaliza Căutarea, anunțurile și alte servicii Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Expresie de acces</translation>
 <translation id="9063523880881406963">Dezactivează opțiunea Versiune site pentru desktop</translation>
 <translation id="9065203028668620118">Editează</translation>
+<translation id="9065383040763568503">Datele stocate pe care Chrome nu le consideră importante (de ex., site-uri care nu au setări salvate sau pe care nu le accesezi frecvent)</translation>
 <translation id="9069543557624799859">Descărcarea va începe la <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Începe căutarea vocală</translation>
 <translation id="9074336505530349563">Pentru a obține sugestii de conținut personalizat de la Google, conectează-te și activează sincronizarea</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
index 513f5667..ff397d9b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">සමමුහුර්තය කළමනාකරණය</translation>
 <translation id="4320177379694898372">අන්තර්ජාල සබැඳුම නැත</translation>
 <translation id="4321739720395210191">ඔබේ කැමරාව විවෘත කළ නොහැක. ඔබේ උපාංගය යළි අරඹා නැවත උත්සාහ කරන්න.</translation>
+<translation id="4335835283689002019">සුරක්ෂිත බ්‍රවුස් කිරීම ක්‍රියාවිරහිතයි</translation>
 <translation id="4351244548802238354">සංවාදය වසන්න</translation>
 <translation id="4378154925671717803">දුරකථනය</translation>
 <translation id="4382908510000698092">Chrome හි භාෂාව ලෙස භාවිත කරන්න</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">අපනාමයේ අංක ඇතුළත් විය නොහැක</translation>
 <translation id="4663756553811254707">පිටුසන් <ph name="NUMBER_OF_BOOKMARKS" /> ක් මකන ලදී</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> ඔබේ මුල් තිරය වෙත එක් කරන ලදී</translation>
+<translation id="4668347365065281350">කුකි සහ වෙනත් ස්ථානීයව ගබඩා කර ඇති දත්ත ඇතුළුව, අඩවි විසින් ගබඩා කර ඇති සියලු දත්ත මකනු ඇත</translation>
 <translation id="4684427112815847243">සියල්ල සම්මුහුර්ත කරන්න</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />... සහ තවත් <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />... සහ තවත් <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />... සහ තවත් <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">ඔබේ උපාංග වෙත පාඨය යවන්න</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Incognito ටැබ</translation>
 <translation id="5763514718066511291">මෙම යෙදුම සඳහා URL පිටපත් කිරීමට තට්ටු කරන්න</translation>
 <translation id="5765780083710877561">විස්තරය:</translation>
+<translation id="5776970333778123608">වැදගත් නොවන දත්ත</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> න් <ph name="SPACE_USED" /> භාවිතා කරමින්</translation>
 <translation id="5795872532621730126">සොයන්න සහ බ්‍රවස් කරන්න</translation>
 <translation id="5797070761912323120">සෙවීම, දැන්වීම් සහ අනෙකුත් Google සේවා පුද්ගලායන කිරීමට Google ඔබේ ඉතිහාසය භාවිත කළ හැක</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">රහස්වැකිය</translation>
 <translation id="9063523880881406963">ඩෙස්ක්ටොප් අඩවිය ඉල්ලීම ක්‍රියා විරහිත කරන්න</translation>
 <translation id="9065203028668620118">සංස්කරණය කරන්න</translation>
+<translation id="9065383040763568503">Chrome වැදගත් යැයි නොසිතන ගබඩා කළ දත්ත (උදා: සුරැකූ සැකසීම් නැති හෝ ඔබ නිතර නොපිවිසෙන අඩවි)</translation>
 <translation id="9069543557624799859">බාගැනීම <ph name="TIME" />ට ආරම්භ වනු ඇත.</translation>
 <translation id="9070377983101773829">හඬ සෙවීම අරඹන්න</translation>
 <translation id="9074336505530349563">Google විසින් යෝජනා කරන ලද පෞද්ගලීකරණය කළ අන්තර්ගතය ලබා ගැනීමට, පුරනය වී සමමුහුර්තය ක්‍රියාත්මක කරන්න</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
index 1a0b267d..d0587dab 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Upravljanje sinhronizacije</translation>
 <translation id="4320177379694898372">Ni internetne povezave</translation>
 <translation id="4321739720395210191">Kamere ni mogoče odpreti. Znova zaženite napravo in poskusite znova.</translation>
+<translation id="4335835283689002019">Varno brskanje je izklopljeno</translation>
 <translation id="4351244548802238354">Zapri pogovorno okno</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Uporabi kot Chromov jezik</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Vzdevek ne sme vsebovati številk</translation>
 <translation id="4663756553811254707">Št. izbrisanih zaznamkov: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Spletno mesto <ph name="NAME" /> je bilo dodano na začetni zaslon</translation>
+<translation id="4668347365065281350">Vsi shranjeni podatki spletnih mest, vključno s piškotki in drugimi lokalno shranjenimi podatki</translation>
 <translation id="4684427112815847243">Sinhroniziraj vse</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" /> \u2026 in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" /> \u2026 in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}two{<ph name="SHIPPING_OPTION_PREVIEW" /> \u2026 in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" /> \u2026 in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" /> \u2026 in še <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Pošiljanje besedila v vaše naprave</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Zavihki brez beleženja zgodovine</translation>
 <translation id="5763514718066511291">Dotaknite se, če želite kopirati URL za to aplikacijo</translation>
 <translation id="5765780083710877561">Opis:</translation>
+<translation id="5776970333778123608">Nepomembni podatki</translation>
 <translation id="5793665092639000975">Uporaba <ph name="SPACE_USED" /> od <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Iskanje in brskanje</translation>
 <translation id="5797070761912323120">Google lahko vašo zgodovino uporabi za prilagajanje Iskanja Google, oglasov in drugih Googlovih storitev</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Geslo</translation>
 <translation id="9063523880881406963">Izklop možnosti »Zahteva za namizno spletno mesto«</translation>
 <translation id="9065203028668620118">Uredi</translation>
+<translation id="9065383040763568503">Shranjeni podatki, ki se Chromu ne zdijo pomembni (npr. spletna mesta, za katera nimate shranjenih nastavitev ali ki jih ne obiskujete pogosto).</translation>
 <translation id="9069543557624799859">Prenos se bo začel ob <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Začni glasovno iskanje</translation>
 <translation id="9074336505530349563">Če želite prejemati prilagojeno vsebino, ki jo predlaga Google, se prijavite in vklopite sinhronizacijo</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index e232d98..0f0fc0c2 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Hantera synkronisering</translation>
 <translation id="4320177379694898372">Ingen internetanslutning</translation>
 <translation id="4321739720395210191">Det gick inte att öppna kameran. Starta om enheten och försök igen.</translation>
+<translation id="4335835283689002019">Säker webbsökning har inaktiverats</translation>
 <translation id="4351244548802238354">Stäng dialogrutan</translation>
 <translation id="4378154925671717803">Mobil</translation>
 <translation id="4382908510000698092">Använd som språk i Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Namnet får inte innehålla siffror</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> bokmärken har raderats</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> har lagts till på startskärmen.</translation>
+<translation id="4668347365065281350">All data som sparas av webbplatser, inklusive cookies och annan lokalt sparad data</translation>
 <translation id="4684427112815847243">Synkronisera allt</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 och <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> till}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 och <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> till}}</translation>
 <translation id="4696983787092045100">Skicka texten till dina enheter</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Inkognitoflikar</translation>
 <translation id="5763514718066511291">Tryck om du vill kopiera webbadressen till appen</translation>
 <translation id="5765780083710877561">Beskrivning:</translation>
+<translation id="5776970333778123608">Oviktig data</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> av <ph name="SPACE_AVAILABLE" /> används</translation>
 <translation id="5795872532621730126">Sök och utforska</translation>
 <translation id="5797070761912323120">Google kan anpassa Sök, annonser och andra Google-tjänster utifrån historiken</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Lösenfras</translation>
 <translation id="9063523880881406963">Inaktivera begäran av webbplats för stationär dator</translation>
 <translation id="9065203028668620118">Redigera</translation>
+<translation id="9065383040763568503">Sparad data som bedöms som oviktig i Chrome (t.ex. webbplatser utan sparade inställningar eller som du inte besöker ofta)</translation>
 <translation id="9069543557624799859">Nedladdningen påbörjas kl. <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Starta röstsökning</translation>
 <translation id="9074336505530349563">Logga in och aktivera synkronisering om du vill få förslag på anpassat innehåll från Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index 64911091..bc422e0 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -55,7 +55,7 @@
 <translation id="1360432990279830238">வெளியேறி, ஒத்திசைவை முடக்கவா?</translation>
 <translation id="1373696734384179344">தேர்ந்தெடுத்ததைப் பதிவிறக்க, போதுமான நினைவகம் இல்லை.</translation>
 <translation id="1376578503827013741">கணக்கிடுகிறது…</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> நாட்களுக்கு முன் பயன்படுத்தியுள்ளார்</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" /> மூலம் தேடுக</translation>
 <translation id="1406000523432664303">'கண்காணிக்க வேண்டாம்'</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">ஒத்திசைவை நிர்வகிக்கும் பக்கம்</translation>
 <translation id="4320177379694898372">இணைய இணைப்பு இல்லை</translation>
 <translation id="4321739720395210191">கேமராவைத் திறக்க முடியவில்லை. சாதனத்தை மீண்டும் தொடங்கி மறுபடியும் முயலவும்.</translation>
+<translation id="4335835283689002019">பாதுகாப்பு உலாவல் முடக்கப்பட்டுள்ளது</translation>
 <translation id="4351244548802238354">அறிவிப்பை மூடு</translation>
 <translation id="4378154925671717803">மொபைல்</translation>
 <translation id="4382908510000698092">Chromeமின் மொழியாகப் பயன்படுத்து</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">புனைப்பெயரில் எண்கள் இருக்கக்கூடாது</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> புக்மார்க்குகள் நீக்கப்பட்டன</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> உங்கள் முகப்புத் திரையில் சேர்க்கப்பட்டது</translation>
+<translation id="4668347365065281350">குக்கீகள், சாதனத்தில் சேமிக்கப்பட்ட பிற தரவுகள் உட்பட தளங்கள் மூலம் சேமிக்கப்பட்ட தரவுகள் அனைத்தும்</translation>
 <translation id="4684427112815847243">அனைத்தையும் ஒத்திசை</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> விருப்பம்}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> விருப்பங்கள்}}</translation>
 <translation id="4696983787092045100">எனது சாதனங்களுக்கு உரைச் செய்தியை அனுப்பு</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">மறைநிலைத் தாவல்கள்</translation>
 <translation id="5763514718066511291">இந்த ஆப்ஸின் URLஐ நகலெடுக்க, தட்டவும்</translation>
 <translation id="5765780083710877561">விவரம்:</translation>
+<translation id="5776970333778123608">முக்கியமில்லாத தரவு</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" /> இல் <ph name="SPACE_USED" /> பயன்படுத்தப்படுகிறது</translation>
 <translation id="5795872532621730126">தேடல் &amp; உலாவல்</translation>
 <translation id="5797070761912323120">தேடல், விளம்பரங்கள் மற்றும் பிற Google சேவைகளைத் தனிப்பயனாக்க, உங்கள் வரலாற்றை Google பயன்படுத்தக்கூடும்</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation>
 <translation id="9063523880881406963">டெஸ்க்டாப் தளத்திற்கான கோரிக்கையை முடக்கு</translation>
 <translation id="9065203028668620118">திருத்து</translation>
+<translation id="9065383040763568503">முக்கியமில்லை என்று Chrome கருதும் சேமிக்கப்பட்ட தரவுகள் (எ.கா. சேமித்த அமைப்புகள் இல்லாத/அடிக்கடி நீங்கள் பார்க்காத தளங்கள்)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />க்குப் பதிவிறக்கம் தொடங்கும்.</translation>
 <translation id="9070377983101773829">குரல் தேடலைத் தொடங்கு</translation>
 <translation id="9074336505530349563">Google பரிந்துரைக்கும் பிரத்யேக உள்ளடக்கத்தைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index fdac6b6..26f179e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -55,7 +55,7 @@
 <translation id="1360432990279830238">సైన్ అవుట్ చేసి, సమకాలీకరణను ఆఫ్ చేయలా?</translation>
 <translation id="1373696734384179344">ఎంచుకున్న కంటెంట్‌ను డౌన్‌లోడ్ చేయడానికి తగినంత మెమరీ లేదు.</translation>
 <translation id="1376578503827013741">గణిస్తోంది...</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1386674309198842382"><ph name="LAST_UPDATED" /> రోజుల క్రితం యాక్టివ్‌గా ఉంది</translation>
 <translation id="1397811292916898096"><ph name="PRODUCT_NAME" />తో వెతకండి</translation>
 <translation id="1406000523432664303">“ట్రాక్ చేయవద్దు”</translation>
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">సింక్‌ను నిర్వహించండి</translation>
 <translation id="4320177379694898372">ఇంటర్నెట్ కనెక్షన్ లేదు</translation>
 <translation id="4321739720395210191">మీ కెమెరాను తెరవడం సాధ్యపడలేదు. మీ పరికరాన్ని పునఃప్రారంభించి, ఆపై మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="4335835283689002019">సురక్షిత బ్రౌజింగ్ ఆఫ్‌లో ఉంది</translation>
 <translation id="4351244548802238354">డైలాగ్‌ను మూసివేయి</translation>
 <translation id="4378154925671717803">ఫోన్</translation>
 <translation id="4382908510000698092">Chrome భాషగా ఉపయోగించు</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">మారుపేరులో అంకెలు ఉండరాదు</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> బుక్‌మార్క్‌లు తొలగించబడ్డాయి</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> మీ హోమ్ స్క్రీన్‌కు జోడించబడింది</translation>
+<translation id="4668347365065281350">కుక్కీలు, స్థానికంగా నిల్వ చేసిన ఇతర డేటాతో సహా సైట్‌లలో నిల్వ చేసిన మొత్తం డేటా</translation>
 <translation id="4684427112815847243">ప్రతి ఒక్కటి సమకాలీకరించండి</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 మరియు మరో <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 మరియు మరో <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">వచనాన్ని మీ పరికరాలకు పంపండి</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">అజ్ఞాత ట్యాబ్‌లు</translation>
 <translation id="5763514718066511291">ఈ యాప్ URLను కాపీ చేయడానికి నొక్కండి</translation>
 <translation id="5765780083710877561">వివరణ:</translation>
+<translation id="5776970333778123608">ముఖ్యంగా పరిగణించని డేటా</translation>
 <translation id="5793665092639000975"><ph name="SPACE_AVAILABLE" />లో <ph name="SPACE_USED" /> ఉపయోగించబడింది</translation>
 <translation id="5795872532621730126">శోధన, బ్రౌజ్</translation>
 <translation id="5797070761912323120">శోధన, ప్రకటనలు, ఇతర Google సేవలను వ్యక్తిగతీకరించడానికి Google మీ చరిత్రను ఉపయోగించే అవకాశం ఉంటుంది</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">రహస్య పదబంధం</translation>
 <translation id="9063523880881406963">డెస్క్‌టాప్ సైట్ అభ్యర్థనను ఆఫ్ చేయండి</translation>
 <translation id="9065203028668620118">సవరించు</translation>
+<translation id="9065383040763568503">Chrome ముఖ్యమైనదిగా భావించని నిల్వ చేసిన డేటా (ఉదా. సేవ్ చేసిన సెట్టింగ్‌లు లేని సైట్‌లు లేదా మీరు తరచుగా సందర్శించని సైట్‌లు)</translation>
 <translation id="9069543557624799859"><ph name="TIME" />కు డౌన్‌లోడ్ చేయడం ప్రారంభమవుతుంది.</translation>
 <translation id="9070377983101773829">వాయిస్ శోధనను ప్రారంభించండి</translation>
 <translation id="9074336505530349563">Google ద్వారా మీ అభిరుచికి తగిన కంటెంట్‌ను సిఫార్సుల రూపంలో పొందాలనుకుంటే, సైన్ ఇన్ చేసి సమకాలీకరణ ఎంపికను ఆన్ చేయాలి</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index ae373793..7b3ce38 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">จัดการการซิงค์</translation>
 <translation id="4320177379694898372">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="4321739720395210191">เปิดกล้องไม่ได้ รีสตาร์ทอุปกรณ์และลองอีกครั้ง</translation>
+<translation id="4335835283689002019">Google Safe Browsing ปิดอยู่</translation>
 <translation id="4351244548802238354">ปิดหน้าต่างโต้ตอบ</translation>
 <translation id="4378154925671717803">โทรศัพท์</translation>
 <translation id="4382908510000698092">ใช้เป็นภาษาของ Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">ชื่อเล่นต้องไม่มีตัวเลข</translation>
 <translation id="4663756553811254707">ลบบุ๊กมาร์ก <ph name="NUMBER_OF_BOOKMARKS" /> รายการแล้ว</translation>
 <translation id="4665282149850138822">เพิ่ม <ph name="NAME" /> ลงในหน้าแรกแล้ว</translation>
+<translation id="4668347365065281350">ข้อมูลทั้งหมดที่เว็บไซต์จัดเก็บไว้ ซึ่งรวมถึงคุกกี้และข้อมูลอื่นๆ ที่จัดเก็บไว้ในเครื่อง</translation>
 <translation id="4684427112815847243">ซิงค์ทุกอย่าง</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 และอีก <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ตัวเลือก}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 และอีก <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ตัวเลือก}}</translation>
 <translation id="4696983787092045100">ส่งข้อความไปยังอุปกรณ์ของคุณ</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">แท็บที่ไม่ระบุตัวตน</translation>
 <translation id="5763514718066511291">แตะเพื่อคัดลอก URL สำหรับแอปนี้</translation>
 <translation id="5765780083710877561">คำอธิบาย:</translation>
+<translation id="5776970333778123608">ข้อมูลที่ไม่สำคัญ</translation>
 <translation id="5793665092639000975">ใช้ไป <ph name="SPACE_USED" /> จาก <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">ค้นหาและเรียกดู</translation>
 <translation id="5797070761912323120">Google อาจใช้ประวัติการเข้าชมเพื่อปรับเปลี่ยน Search, โฆษณา และบริการอื่นๆ ของ Google ให้เข้ากับคุณ</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">ข้อความรหัสผ่าน</translation>
 <translation id="9063523880881406963">ปิดการขอเว็บไซต์เดสก์ท็อป</translation>
 <translation id="9065203028668620118">แก้ไข</translation>
+<translation id="9065383040763568503">ข้อมูลที่จัดเก็บไว้ซึ่ง Chrome คิดว่าไม่สำคัญ (เช่น เว็บไซต์ที่ไม่มีการตั้งค่าที่บันทึกไว้หรือที่คุณไม่ค่อยได้เข้าชม)</translation>
 <translation id="9069543557624799859">การดาวน์โหลดจะเริ่มในเวลา <ph name="TIME" /></translation>
 <translation id="9070377983101773829">เริ่มค้นหาด้วยเสียง</translation>
 <translation id="9074336505530349563">ลงชื่อเข้าใช้และเปิดการซิงค์เพื่อรับคำแนะนำเนื้อหาที่ปรับเปลี่ยนในแบบของคุณจาก Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index e153c10..223bc80 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Senkronizasyonu yönetin</translation>
 <translation id="4320177379694898372">İnternet bağlantısı yok</translation>
 <translation id="4321739720395210191">Kameranız açılamıyor. Cihazınızı yeniden başlatıp işlemi tekrar deneyin.</translation>
+<translation id="4335835283689002019">Güvenli Tarama kapalı</translation>
 <translation id="4351244548802238354">İletişim kutusunu kapat</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Chrome’un dili olarak kullan</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Takma ad sayı içeremez</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> yer işareti silindi</translation>
 <translation id="4665282149850138822"><ph name="NAME" />, Ana ekranınıza eklendi</translation>
+<translation id="4668347365065281350">Çerezler ve yerel olarak depolanmış diğer veriler de dahil olmak üzere sitelerin depoladığı tüm veriler</translation>
 <translation id="4684427112815847243">Her şeyi senkronize et</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ve <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> seçenek daha}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 ve <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> seçenek daha}}</translation>
 <translation id="4696983787092045100">Cihazlarınıza mesaj gönderin</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Gizli mod sekmeleri</translation>
 <translation id="5763514718066511291">Bu uygulamanın URL'sini kopyalamak için dokunun</translation>
 <translation id="5765780083710877561">Açıklama:</translation>
+<translation id="5776970333778123608">Önemsiz veri</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> / <ph name="SPACE_AVAILABLE" /> kullanılıyor</translation>
 <translation id="5795872532621730126">Arama ve göz atma</translation>
 <translation id="5797070761912323120">Google; Arama, reklamlar ve diğer Google hizmetlerini kişiselleştirmek için geçmişinizi kullanabilir</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Parola</translation>
 <translation id="9063523880881406963">Masaüstü sitesi istemeyi devre dışı bırak</translation>
 <translation id="9065203028668620118">Düzenle</translation>
+<translation id="9065383040763568503">Chrome'un önemli olmadığını düşündüğü depolanmış veriler (ör. kayıtlı ayarları bulunmayan veya sık ziyaret etmediğiniz siteler)</translation>
 <translation id="9069543557624799859">İndirmenin başlatılacağı saat: <ph name="TIME" /></translation>
 <translation id="9070377983101773829">Sesli arama başlat</translation>
 <translation id="9074336505530349563">Google tarafından önerilen kişiselleştirilmiş içeriği almak için oturum açın ve senkronizasyonu etkinleştirin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
index 1456fe3..8ad007a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Керування синхронізацією</translation>
 <translation id="4320177379694898372">Немає з’єднання з Інтернетом</translation>
 <translation id="4321739720395210191">Не вдається відкрити камеру. Перезапустіть пристрій і повторіть спробу.</translation>
+<translation id="4335835283689002019">Безпечний перегляд вимкнено</translation>
 <translation id="4351244548802238354">Закрити діалогове вікно</translation>
 <translation id="4378154925671717803">Телефон</translation>
 <translation id="4382908510000698092">Використовувати як мову Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Не можна додавати цифри</translation>
 <translation id="4663756553811254707">Видалено закладок: <ph name="NUMBER_OF_BOOKMARKS" /></translation>
 <translation id="4665282149850138822">Веб-сайт <ph name="NAME" /> додано на головний екран</translation>
+<translation id="4668347365065281350">Усі дані сайтів, зокрема файли cookie й інша збережена на пристрої інформація</translation>
 <translation id="4684427112815847243">Синхронізувати все</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}one{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}many{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation>
 <translation id="4696983787092045100">Надіслати SMS на пристрої</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Анонімні вкладки</translation>
 <translation id="5763514718066511291">Торкніться, щоб скопіювати URL-адресу цього додатка</translation>
 <translation id="5765780083710877561">Опис:</translation>
+<translation id="5776970333778123608">Неважливі дані</translation>
 <translation id="5793665092639000975">Використано <ph name="SPACE_USED" /> з <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Пошук і перегляд</translation>
 <translation id="5797070761912323120">Google може використовувати вашу історію, щоб персоналізувати Пошук, оголошення й інші сервіси Google</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Парольна фраза</translation>
 <translation id="9063523880881406963">Вимкнути функцію "Запитувати версію сайту для комп’ютера"</translation>
 <translation id="9065203028668620118">Редагувати</translation>
+<translation id="9065383040763568503">Збережені дані, які Chrome визначає як неважливі (наприклад, дані сайтів із незбереженими налаштуваннями або тих, які ви рідко відвідуєте)</translation>
 <translation id="9069543557624799859">Завантаження почнеться <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Почати голосовий пошук</translation>
 <translation id="9074336505530349563">Щоб отримувати персоналізовані пропозиції від Google, увійдіть в обліковий запис і ввімкніть синхронізацію</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
index 8d0092a4..331c026 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Sinxronizatsiyani boshqarish</translation>
 <translation id="4320177379694898372">Internet aloqasi yo‘q</translation>
 <translation id="4321739720395210191">Kamerangiz ochilmadi. Qurilmani qayta ishga tushirib, yana urining.</translation>
+<translation id="4335835283689002019">Xavfsiz koʻrish faolsizlantirilgan</translation>
 <translation id="4351244548802238354">Oynani yopish</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="4382908510000698092">Chrome tili sifatida ishlatish</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Taxallusga raqam kiritish mumkin emas</translation>
 <translation id="4663756553811254707"><ph name="NUMBER_OF_BOOKMARKS" /> ta xatcho‘p o‘chirib tashlandi</translation>
 <translation id="4665282149850138822"><ph name="NAME" /> sayti bosh ekranga qo‘shildi</translation>
+<translation id="4668347365065281350">Saytlar joylagan maʼlumotlar, shuningdek, cookie va qurimaga joylangan boshqa maʼlumotlar</translation>
 <translation id="4684427112815847243">Hamma narsa sinxronlansin</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 va yana <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ta}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 va yana <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> ta}}</translation>
 <translation id="4696983787092045100">Matnni qurilmalaringizga yuborish</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Inkognito rejimidagi ichki oynalar</translation>
 <translation id="5763514718066511291">Ushbu ilova URL manzilini nusxalash uchun bosing</translation>
 <translation id="5765780083710877561">Tavsif:</translation>
+<translation id="5776970333778123608">Muhim boʻlmagan maʼlumotlar</translation>
 <translation id="5793665092639000975"><ph name="SPACE_USED" /> band, jami: <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Qidiruv va saytlarni kezish</translation>
 <translation id="5797070761912323120">Qidiruv, rekama va boshqa xizmatlarni sizga moslashtirish uchun Google tarix maʼlumotlaringizdan foydalanishi mumkin</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Kodli ibora</translation>
 <translation id="9063523880881406963">Saytning to‘liq versiyasi ko‘rinishini o‘chirib qo‘yish</translation>
 <translation id="9065203028668620118">O‘zgartirish</translation>
+<translation id="9065383040763568503">Chrome muhim deb hisoblamaydigan saqlangan maʼlumotlar (masalan, saqlanish xususiyatga ega boʻlmagan va kam kiriladigan saytlar)</translation>
 <translation id="9069543557624799859">Yuklab olish boshlanadi: <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Ovozli qidiruv</translation>
 <translation id="9074336505530349563">Bildirgilar Google tomonidan faqat sizning qiziqishlaringiz bo‘yicha taklif qilinishi uchun hisobingizga kiring va sinxronizatsiyani yoqing</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index b1f5bf63..51cbd63 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">Quản lý dữ liệu đồng bộ hóa</translation>
 <translation id="4320177379694898372">Không có kết nối Internet</translation>
 <translation id="4321739720395210191">Không thể mở máy ảnh. Hãy khởi động lại thiết bị rồi thử lại.</translation>
+<translation id="4335835283689002019">Tính năng Duyệt web an toàn đang tắt</translation>
 <translation id="4351244548802238354">Đóng hộp thoại</translation>
 <translation id="4378154925671717803">Điện thoại</translation>
 <translation id="4382908510000698092">Dùng làm ngôn ngữ của Chrome</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">Biệt hiệu không được bao gồm số</translation>
 <translation id="4663756553811254707">Đã xóa <ph name="NUMBER_OF_BOOKMARKS" /> dấu trang</translation>
 <translation id="4665282149850138822">Đã thêm <ph name="NAME" /> vào Màn hình chính của bạn</translation>
+<translation id="4668347365065281350">Tất cả dữ liệu do các trang web lưu trữ, bao gồm cả cookie và dữ liệu khác lưu trữ trên máy</translation>
 <translation id="4684427112815847243">Đồng bộ hóa mọi thứ</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 và <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> tùy chọn khác}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 và <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> tùy chọn khác}}</translation>
 <translation id="4696983787092045100">Gửi văn bản đến các thiết bị của bạn</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">Thẻ ẩn danh</translation>
 <translation id="5763514718066511291">Nhấn để sao chép URL cho ứng dụng này</translation>
 <translation id="5765780083710877561">Mô tả:</translation>
+<translation id="5776970333778123608">Dữ liệu không quan trọng</translation>
 <translation id="5793665092639000975">Đang dùng: <ph name="SPACE_USED" />/<ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">Tìm kiếm và duyệt xem</translation>
 <translation id="5797070761912323120">Google có thể sử dụng lịch sử của bạn để điều chỉnh tính năng Tìm kiếm, quảng cáo và các dịch vụ khác của Google cho phù hợp với bạn</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">Cụm mật khẩu</translation>
 <translation id="9063523880881406963">Tắt Yêu cầu trang web cho máy tính</translation>
 <translation id="9065203028668620118">Chỉnh sửa</translation>
+<translation id="9065383040763568503">Dữ liệu lưu trữ mà Chrome cho là không quan trọng (ví dụ: những trang web không được lưu tùy chọn cài đặt hoặc những trang web mà bạn không truy cập thường xuyên)</translation>
 <translation id="9069543557624799859">Quá trình tải xuống sẽ bắt đầu lúc <ph name="TIME" />.</translation>
 <translation id="9070377983101773829">Bắt đầu tìm kiếm bằng giọng nói</translation>
 <translation id="9074336505530349563">Để nhận nội dung do Google đề xuất riêng cho bạn, hãy đăng nhập và bật tính năng đồng bộ hóa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
index 9584ad7..29458ac 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">管理同步数据</translation>
 <translation id="4320177379694898372">未连接到互联网</translation>
 <translation id="4321739720395210191">无法打开您的摄像头。请重启设备,然后重试。</translation>
+<translation id="4335835283689002019">“安全浏览”功能处于关闭状态</translation>
 <translation id="4351244548802238354">关闭对话框</translation>
 <translation id="4378154925671717803">电话机</translation>
 <translation id="4382908510000698092">用作 Chrome 的语言</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">昵称不能包含数字</translation>
 <translation id="4663756553811254707">已删除 <ph name="NUMBER_OF_BOOKMARKS" /> 个书签</translation>
 <translation id="4665282149850138822"><ph name="NAME" />已添加到您的主屏幕</translation>
+<translation id="4668347365065281350">网站存储的所有数据,包括 Cookie 及其他本地存储的数据</translation>
 <translation id="4684427112815847243">同步所有数据类型</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026以及另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 种送货方式}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026以及另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 种送货方式}}</translation>
 <translation id="4696983787092045100">向您的多部设备发送短信</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">隐身标签页</translation>
 <translation id="5763514718066511291">点按即可复制该应用的网址</translation>
 <translation id="5765780083710877561">说明:</translation>
+<translation id="5776970333778123608">不重要的数据</translation>
 <translation id="5793665092639000975">已使用 <ph name="SPACE_USED" />,共 <ph name="SPACE_AVAILABLE" /></translation>
 <translation id="5795872532621730126">搜索和浏览</translation>
 <translation id="5797070761912323120">Google 可能会利用您的历史记录为您提供个性化的 Google 搜索、广告和其他 Google 服务</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">密码</translation>
 <translation id="9063523880881406963">关闭“请求切换到桌面版网站”</translation>
 <translation id="9065203028668620118">编辑</translation>
+<translation id="9065383040763568503">Chrome 认为不重要的网站(例如未保存任何设置的网站或您不常访问的网站)存储的数据</translation>
 <translation id="9069543557624799859">将于<ph name="TIME" /> 开始下载。</translation>
 <translation id="9070377983101773829">开始语音搜索</translation>
 <translation id="9074336505530349563">要获取 Google 推荐的个性化内容,请登录您的帐号并开启同步功能</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index def0149..bb65474 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -417,6 +417,7 @@
 <translation id="4314815835985389558">管理同步資料</translation>
 <translation id="4320177379694898372">沒有互聯網連線</translation>
 <translation id="4321739720395210191">無法開啟攝錄機。請重新開機,然後再試一次。</translation>
+<translation id="4335835283689002019">「安全瀏覽」功能已關閉</translation>
 <translation id="4351244548802238354">關閉對話方塊</translation>
 <translation id="4378154925671717803">電話號碼</translation>
 <translation id="4382908510000698092">作為 Chrome 的語言</translation>
@@ -457,6 +458,7 @@
 <translation id="4662373422909645029">暱稱不可包含數字</translation>
 <translation id="4663756553811254707">已刪除 <ph name="NUMBER_OF_BOOKMARKS" /> 個書籤</translation>
 <translation id="4665282149850138822">已將 <ph name="NAME" /> 新增到主畫面</translation>
+<translation id="4668347365065281350">網站儲存的所有資料,包括 Cookie 和其他儲存在本機上的資料</translation>
 <translation id="4684427112815847243">同步處理所有資料</translation>
 <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 種運送方式}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> 種運送方式}}</translation>
 <translation id="4696983787092045100">將文字傳送至您的裝置</translation>
@@ -613,6 +615,7 @@
 <translation id="5763382633136178763">無痕式分頁</translation>
 <translation id="5763514718066511291">輕按即可複製此應用程式的網址</translation>
 <translation id="5765780083710877561">描述:</translation>
+<translation id="5776970333778123608">資料不重要</translation>
 <translation id="5793665092639000975">已使用 <ph name="SPACE_USED" /> (共 <ph name="SPACE_AVAILABLE" />)</translation>
 <translation id="5795872532621730126">搜尋和瀏覽</translation>
 <translation id="5797070761912323120">Google 可能會使用您的記錄,為您提供個人化的搜尋服務、廣告和其他 Google 服務</translation>
@@ -1047,6 +1050,7 @@
 <translation id="9050666287014529139">複雜密碼</translation>
 <translation id="9063523880881406963">關閉「切換為電腦版網站」</translation>
 <translation id="9065203028668620118">編輯</translation>
+<translation id="9065383040763568503">已儲存 Chrome 認定為不重要的資料 (例如未儲存任何設定的網站,或您不常瀏覽的網站)</translation>
 <translation id="9069543557624799859">下載將會在 <ph name="TIME" />開始。</translation>
 <translation id="9070377983101773829">開始語音搜尋</translation>
 <translation id="9074336505530349563">如要接收 Google 建議的個人化內容,請登入並開啟同步處理功能</translation>
diff --git a/chrome/browser/ui/app_list/app_context_menu_unittest.cc b/chrome/browser/ui/app_list/app_context_menu_unittest.cc
index 860a300..bb002b57 100644
--- a/chrome/browser/ui/app_list/app_context_menu_unittest.cc
+++ b/chrome/browser/ui/app_list/app_context_menu_unittest.cc
@@ -600,7 +600,8 @@
 }
 
 // In suspended state app does not have launch item.
-TEST_P(AppContextMenuTest, ArcMenuSuspendedItem) {
+// Disabled for being flaky. crbug.com/1115762
+TEST_P(AppContextMenuTest, DISABLED_ArcMenuSuspendedItem) {
   apps::AppServiceTest app_service_test;
   app_service_test.SetUp(profile());
   ArcAppTest arc_test;
diff --git a/chrome/browser/ui/app_list/icon_standardizer.cc b/chrome/browser/ui/app_list/icon_standardizer.cc
index 0093b75..cd6a4b8 100644
--- a/chrome/browser/ui/app_list/icon_standardizer.cc
+++ b/chrome/browser/ui/app_list/icon_standardizer.cc
@@ -11,7 +11,7 @@
 
 namespace {
 
-constexpr float kCircleOutlineStrokeWidth = 8.0f;
+constexpr float kCircleOutlineStrokeWidthRatio = 0.1f;
 
 constexpr int kMinimumVisibleAlpha = 40;
 
@@ -212,13 +212,17 @@
     SkPaint paint_outline;
     paint_outline.setColor(SK_ColorGREEN);
     paint_outline.setStyle(SkPaint::kStroke_Style);
-    paint_outline.setStrokeWidth(kCircleOutlineStrokeWidth * rep.scale());
+
+    const float outline_stroke_width = width * kCircleOutlineStrokeWidthRatio;
+    const float radius_offset = outline_stroke_width / 8.0f;
+
+    paint_outline.setStrokeWidth(outline_stroke_width);
     paint_outline.setAntiAlias(true);
 
     // DST_OUT operation to remove an extra circle outline.
     paint_outline.setBlendMode(SkBlendMode::kDstOut);
-    canvas.drawCircle(SkPoint::Make(width / 2.0f, height / 2.0f), width / 2.0f,
-                      paint_outline);
+    canvas.drawCircle(SkPoint::Make(width / 2.0f, height / 2.0f),
+                      width / 2.0f + radius_offset, paint_outline);
 
     // Compute the total pixel difference between the circle mask and the
     // original icon.
@@ -236,7 +240,7 @@
 
     // If the pixel difference between a circle and the original icon is small
     // enough, then the icon can be considered circle shaped.
-    if (!(percentage_diff_pixels >= kCircleShapePixelDifferenceThreshold))
+    if (percentage_diff_pixels < kCircleShapePixelDifferenceThreshold)
       is_icon_already_circle_shaped = true;
   }
 
diff --git a/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.cc
index a9407c52..7aa5bff 100644
--- a/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.cc
+++ b/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.cc
@@ -79,8 +79,21 @@
   profile_list_.push_back(owner->profile());
 
   for (auto* browser : *BrowserList::GetInstance()) {
-    if (browser && browser->window() && browser->window()->GetNativeWindow())
+    if (browser && browser->window() && browser->window()->GetNativeWindow()) {
       observed_windows_.Add(browser->window()->GetNativeWindow());
+
+      // Observe the browser tabs
+      TabStripModel* tab_strip = browser->tab_strip_model();
+      for (int i = 0; i < tab_strip->count(); ++i) {
+        auto* tab = tab_strip->GetWebContentsAt(i);
+        if (!tab)
+          continue;
+        aura::Window* window = tab->GetNativeView();
+        if (window) {
+          observed_windows_.Add(window);
+        }
+      }
+    }
   }
 }
 
@@ -94,6 +107,9 @@
         apps::AppServiceProxyFactory::GetForProfile(profile);
     proxy->InstanceRegistry().RemoveObserver(this);
   }
+
+  app_service_instance_helper_.reset();
+  observed_windows_.RemoveAll();
 }
 
 AppWindowLauncherItemController*
@@ -427,6 +443,12 @@
   observed_windows_.Add(window);
 }
 
+bool AppServiceAppWindowLauncherController::IsObservingWindow(
+    aura::Window* window) {
+  DCHECK(window);
+  return observed_windows_.IsObserving(window);
+}
+
 std::vector<aura::Window*>
 AppServiceAppWindowLauncherController::GetArcWindows() {
   std::vector<aura::Window*> arc_windows;
diff --git a/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.h b/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.h
index 2d15546..be0c18b1 100644
--- a/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.h
+++ b/chrome/browser/ui/ash/launcher/app_service/app_service_app_window_launcher_controller.h
@@ -100,6 +100,7 @@
   AppWindowBase* GetAppWindow(aura::Window* window);
 
   void ObserveWindow(aura::Window* window);
+  bool IsObservingWindow(aura::Window* window);
 
   std::vector<aura::Window*> GetArcWindows();
 
diff --git a/chrome/browser/ui/ash/launcher/app_service/app_service_instance_registry_helper.cc b/chrome/browser/ui/ash/launcher/app_service/app_service_instance_registry_helper.cc
index 264f98f..160b7186 100644
--- a/chrome/browser/ui/ash/launcher/app_service/app_service_instance_registry_helper.cc
+++ b/chrome/browser/ui/ash/launcher/app_service/app_service_instance_registry_helper.cc
@@ -134,6 +134,11 @@
   UpdateTabWindow(app_id, window);
   apps::InstanceState state = static_cast<apps::InstanceState>(
       apps::InstanceState::kStarted | apps::InstanceState::kRunning);
+
+  // Observe the tab, because when the system is shutdown or some other cases,
+  // the window could be destroyed without calling OnTabClosing. So observe the
+  // tab to get the notify when the window is destroyed.
+  controller_->ObserveWindow(window);
   OnInstances(app_id, window, std::string(), state);
 }
 
@@ -179,11 +184,16 @@
                                                    aura::Window* window,
                                                    const std::string& launch_id,
                                                    apps::InstanceState state) {
-  if (app_id.empty())
+  if (app_id.empty() || !window)
     return;
 
-  if (state != apps::InstanceState::kDestroyed)
-    controller_->ObserveWindow(window);
+  // If the window is not observed, this means the window is being destroyed. In
+  // this case, don't add the instance because we might keep the record for the
+  // destroyed window, which could cause crash.
+  if (state != apps::InstanceState::kDestroyed &&
+      !controller_->IsObservingWindow(window)) {
+    state = apps::InstanceState::kDestroyed;
+  }
 
   std::unique_ptr<apps::Instance> instance =
       std::make_unique<apps::Instance>(app_id, window);
@@ -321,8 +331,12 @@
     Browser* browser = chrome::FindBrowserWithWindow(window);
     if (!browser)
       return;
+
     content::WebContents* contents =
         browser->tab_strip_model()->GetActiveWebContents();
+    if (!contents)
+      return;
+
     apps::InstanceState state = static_cast<apps::InstanceState>(
         apps::InstanceState::kStarted | apps::InstanceState::kRunning |
         apps::InstanceState::kActive | apps::InstanceState::kVisible);
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index f304cdd..8be6d01 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -15,6 +15,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/autofill/address_normalizer_factory.h"
 #include "chrome/browser/autofill/autocomplete_history_manager_factory.h"
+#include "chrome/browser/autofill/autofill_offer_manager_factory.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
 #include "chrome/browser/autofill/risk_util.h"
 #include "chrome/browser/autofill/strike_database_factory.h"
@@ -178,6 +179,13 @@
   return nullptr;
 }
 
+payments::AutofillOfferManager*
+ChromeAutofillClient::GetAutofillOfferManager() {
+  Profile* profile =
+      Profile::FromBrowserContext(web_contents()->GetBrowserContext());
+  return payments::AutofillOfferManagerFactory::GetForProfile(profile);
+}
+
 const GURL& ChromeAutofillClient::GetLastCommittedURL() {
   return web_contents()->GetLastCommittedURL();
 }
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h
index bd04c2ff..720c9f079 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.h
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.h
@@ -63,6 +63,7 @@
   ukm::UkmRecorder* GetUkmRecorder() override;
   ukm::SourceId GetUkmSourceId() override;
   AddressNormalizer* GetAddressNormalizer() override;
+  payments::AutofillOfferManager* GetAutofillOfferManager() override;
   const GURL& GetLastCommittedURL() override;
   security_state::SecurityLevel GetSecurityLevelForUmaHistograms() override;
   std::string GetPageLanguage() const override;
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 6689b358..e73a8a97 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1231,17 +1231,17 @@
 
 void Browser::TabGroupedStateChanged(
     base::Optional<tab_groups::TabGroupId> group,
+    content::WebContents* contents,
     int index) {
   SessionService* const session_service =
       SessionServiceFactory::GetForProfile(profile_);
-  if (session_service) {
-    content::WebContents* const web_contents =
-        tab_strip_model_->GetWebContentsAt(index);
-    sessions::SessionTabHelper* const session_tab_helper =
-        sessions::SessionTabHelper::FromWebContents(web_contents);
-    session_service->SetTabGroup(session_id(), session_tab_helper->session_id(),
-                                 std::move(group));
-  }
+  if (!session_service)
+    return;
+
+  sessions::SessionTabHelper* const session_tab_helper =
+      sessions::SessionTabHelper::FromWebContents(contents);
+  session_service->SetTabGroup(session_id(), session_tab_helper->session_id(),
+                               std::move(group));
 }
 
 void Browser::TabStripEmpty() {
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 44b517f0..7705113 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -553,6 +553,7 @@
                              content::WebContents* contents,
                              int index) override;
   void TabGroupedStateChanged(base::Optional<tab_groups::TabGroupId> group,
+                              content::WebContents* contents,
                               int index) override;
   void TabStripEmpty() override;
 
diff --git a/chrome/browser/ui/omnibox/omnibox_pedals_unittest.cc b/chrome/browser/ui/omnibox/omnibox_pedals_unittest.cc
index 9924b96..68c4c27 100644
--- a/chrome/browser/ui/omnibox/omnibox_pedals_unittest.cc
+++ b/chrome/browser/ui/omnibox/omnibox_pedals_unittest.cc
@@ -24,9 +24,14 @@
     std::string trigger;
   };
   const TestCase test_cases[] = {
-      {"de", "leeren cache"},        {"en", "clear history"},
-      {"fr", "supprime historique"}, {"ja", "消す 履歴"},
+      // clang-format off
+      {"am", "ሰርዝ ታሪክ"},
+      {"de", "leeren cache"},
+      {"en", "clear history"},
+      {"fr", "supprime historique"},
+      {"ja", "消す 履歴"},
       {"zh-CN", "清除 数据"},
+      // clang-format on
   };
   for (const TestCase& test_case : test_cases) {
     // Prepare the shared ResourceBundle with data for tested locale.
@@ -38,6 +43,18 @@
     OmniboxPedalProvider provider(client);
 
     EXPECT_EQ(provider.FindPedalMatch(base::UTF8ToUTF16("")), nullptr);
+#if defined(OS_CHROMEOS)
+    // TODO(orinj): Get ChromeOS to use the right dataset, but for now make this
+    //  a soft failure so as to not block all other platforms. To ensure this
+    //  is not going to cause failure in production, still test that English
+    //  triggering functions. Data is there; it works; but warn about locale.
+    if (!provider.FindPedalMatch(base::UTF8ToUTF16(test_case.trigger))) {
+      EXPECT_NE(provider.FindPedalMatch(base::UTF8ToUTF16("clear history")),
+                nullptr);
+      LOG(WARNING) << "ChromeOS using English for locale " << test_case.locale;
+      continue;
+    }
+#endif
     EXPECT_NE(provider.FindPedalMatch(base::UTF8ToUTF16(test_case.trigger)),
               nullptr)
         << "locale: " << test_case.locale;
diff --git a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.cc b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.cc
index 0d16ec78..2566437 100644
--- a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.cc
+++ b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.cc
@@ -5,6 +5,8 @@
 #include "chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h"
 
 #include "base/logging.h"
+#include "chrome/browser/password_manager/change_password_url_service_factory.h"
+#include "components/password_manager/core/browser/change_password_url_service.h"
 #include "components/password_manager/core/browser/well_known_change_password_util.h"
 #include "components/password_manager/core/common/password_manager_features.h"
 #include "content/public/browser/browser_context.h"
@@ -18,6 +20,7 @@
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "services/network/public/cpp/simple_url_loader.h"
 #include "url/gurl.h"
+#include "url/origin.h"
 
 namespace {
 
@@ -77,7 +80,12 @@
 
 WellKnownChangePasswordNavigationThrottle::
     WellKnownChangePasswordNavigationThrottle(NavigationHandle* handle)
-    : NavigationThrottle(handle) {}
+    : NavigationThrottle(handle),
+      change_password_url_service_(
+          ChangePasswordUrlServiceFactory::GetForBrowserContext(
+              handle->GetWebContents()->GetBrowserContext())) {
+  change_password_url_service_->PrefetchURLs();
+}
 
 WellKnownChangePasswordNavigationThrottle::
     ~WellKnownChangePasswordNavigationThrottle() = default;
@@ -168,6 +176,8 @@
     ThrottleAction action = ContinueProcessing();
     if (action == NavigationThrottle::PROCEED) {
       Resume();
+    } else if (action == NavigationThrottle::CANCEL) {
+      CancelDeferredNavigation(NavigationThrottle::CANCEL);
     }
   }
 }
@@ -178,8 +188,10 @@
   if (SupportsChangePasswordUrl()) {
     return NavigationThrottle::PROCEED;
   } else {
-    // TODO(crbug.com/1086141): Integrate Service that provides URL overrides
-    Redirect(navigation_handle()->GetURL().GetOrigin());
+    // Redirect call creates PostTask
+    GURL url = navigation_handle()->GetURL();
+    GURL redirect_url = change_password_url_service_->GetChangePasswordUrl(url);
+    Redirect(redirect_url.is_valid() ? redirect_url : url.GetOrigin());
     return NavigationThrottle::CANCEL;
   }
 }
diff --git a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h
index 74a71e6..89e83dd 100644
--- a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h
+++ b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle.h
@@ -22,6 +22,10 @@
 class SimpleURLLoader;
 }  // namespace network
 
+namespace password_manager {
+class ChangePasswordUrlService;
+}  // namespace password_manager
+
 // This NavigationThrottle checks whether a site supports the
 // .well-known/change-password url. To check whether a site supports the
 // change-password url, we also request a .well-known path that is defined to
@@ -66,6 +70,7 @@
   int non_existing_resource_response_code_ = 0;
   int change_password_response_code_ = 0;
   std::unique_ptr<network::SimpleURLLoader> url_loader_;
+  password_manager::ChangePasswordUrlService* change_password_url_service_;
 };
 
 #endif  // CHROME_BROWSER_UI_PASSWORDS_WELL_KNOWN_CHANGE_PASSWORD_NAVIGATION_THROTTLE_H_
diff --git a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
index 13c01b4..1f12e645 100644
--- a/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
+++ b/chrome/browser/ui/passwords/well_known_change_password_navigation_throttle_browsertest.cc
@@ -9,10 +9,14 @@
 #include "base/run_loop.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
+#include "chrome/browser/password_manager/change_password_url_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+#include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_navigator.h"
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "chrome/common/url_constants.h"
+#include "components/password_manager/core/browser/change_password_url_service_impl.h"
 #include "components/password_manager/core/browser/well_known_change_password_util.h"
 #include "components/password_manager/core/common/password_manager_features.h"
 #include "content/public/test/browser_test.h"
@@ -39,6 +43,8 @@
 using password_manager::kWellKnownChangePasswordPath;
 using password_manager::kWellKnownNotExistingResourcePath;
 
+constexpr char kMockChangePasswordPath[] = "/change-password-override";
+
 // ServerResponse describes how a server should respond to a given path.
 struct ServerResponse {
   net::HttpStatusCode status_code;
@@ -56,6 +62,26 @@
 
 }  // namespace
 
+class TestChangePasswordUrlService
+    : public password_manager::ChangePasswordUrlService {
+ public:
+  void PrefetchURLs() override {}
+
+  GURL GetChangePasswordUrl(const GURL& url) override {
+    if (override_available_) {
+      GURL::Replacements replacement;
+      replacement.SetPathStr(kMockChangePasswordPath);
+      return url.ReplaceComponents(replacement);
+    }
+    return GURL();
+  }
+
+  void SetOverrideAvailable(bool available) { override_available_ = available; }
+
+ private:
+  bool override_available_ = false;
+};
+
 class WellKnownChangePasswordNavigationThrottleBrowserTest
     : public CertVerifierBrowserTest,
       public testing::WithParamInterface<ResponseDelayParams> {
@@ -71,6 +97,13 @@
   void SetUpOnMainThread() override {
     ASSERT_TRUE(test_server_->InitializeAndListen());
     test_server_->StartAcceptingConnections();
+    url_service_ =
+        ChangePasswordUrlServiceFactory::GetInstance()
+            ->SetTestingSubclassFactoryAndUse(
+                browser()->profile(),
+                base::BindRepeating([](content::BrowserContext* context) {
+                  return std::make_unique<TestChangePasswordUrlService>();
+                }));
   }
 
  protected:
@@ -91,6 +124,7 @@
   base::flat_map<std::string, ServerResponse> path_response_map_;
   std::unique_ptr<EmbeddedTestServer> test_server_ =
       std::make_unique<EmbeddedTestServer>(EmbeddedTestServer::TYPE_HTTPS);
+  TestChangePasswordUrlService* url_service_ = nullptr;
 
  private:
   // Returns a response for the given request. Uses |path_response_map_| to
@@ -196,11 +230,22 @@
       net::HTTP_NOT_FOUND, {}, response_delays.change_password_delay};
   path_response_map_[kWellKnownNotExistingResourcePath] = {
       net::HTTP_NOT_FOUND, {}, response_delays.not_exist_delay};
-  path_response_map_["/"] = {net::HTTP_OK, {}, 0};
 
   TestNavigationThrottle(/*expected_path=*/"/");
 }
 
+IN_PROC_BROWSER_TEST_P(WellKnownChangePasswordNavigationThrottleBrowserTest,
+                       NoSupportForChangePassword_WithUrlOverride) {
+  url_service_->SetOverrideAvailable(true);
+  auto response_delays = GetParam();
+  path_response_map_[kWellKnownChangePasswordPath] = {
+      net::HTTP_NOT_FOUND, {}, response_delays.change_password_delay};
+  path_response_map_[kWellKnownNotExistingResourcePath] = {
+      net::HTTP_NOT_FOUND, {}, response_delays.not_exist_delay};
+
+  TestNavigationThrottle(/*expected_path=*/kMockChangePasswordPath);
+}
+
 // Single page applications often return 200 for all paths
 IN_PROC_BROWSER_TEST_P(WellKnownChangePasswordNavigationThrottleBrowserTest,
                        NoSupportForChangePassword_Ok) {
@@ -209,7 +254,6 @@
       net::HTTP_OK, {}, response_delays.change_password_delay};
   path_response_map_[kWellKnownNotExistingResourcePath] = {
       net::HTTP_OK, {}, response_delays.not_exist_delay};
-  path_response_map_["/"] = {net::HTTP_OK, {}, 0};
 
   TestNavigationThrottle(/*expected_path=*/"/");
 }
@@ -225,7 +269,6 @@
       net::HTTP_PERMANENT_REDIRECT,
       {std::make_pair("Location", "/not-found")},
       response_delays.not_exist_delay};
-  path_response_map_["/"] = {net::HTTP_OK, {}, 0};
   path_response_map_["/not-found"] = {net::HTTP_NOT_FOUND, {}, 0};
 
   TestNavigationThrottle(/*expected_path=*/"/");
diff --git a/chrome/browser/ui/search/local_ntp_browsertest.cc b/chrome/browser/ui/search/local_ntp_browsertest.cc
index fbc1892..23d2949f4 100644
--- a/chrome/browser/ui/search/local_ntp_browsertest.cc
+++ b/chrome/browser/ui/search/local_ntp_browsertest.cc
@@ -109,7 +109,9 @@
   }
 };
 
-IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) {
+// Disabled for being flaky. crbug.com/1096976
+IN_PROC_BROWSER_TEST_F(LocalNTPTest,
+                       DISABLED_EmbeddedSearchAPIOnlyAvailableOnNTP) {
   // Set up a test server, so we have some arbitrary non-NTP URL to navigate to.
   net::EmbeddedTestServer test_server(net::EmbeddedTestServer::TYPE_HTTPS);
   test_server.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index 67198c3..182f6af 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -2063,8 +2063,10 @@
 
   // Update the tab.
   contents_data_[index]->set_group(base::nullopt);
-  for (auto& observer : observers_)
-    observer.TabGroupedStateChanged(base::nullopt, index);
+  for (auto& observer : observers_) {
+    observer.TabGroupedStateChanged(
+        base::nullopt, contents_data_[index]->web_contents(), index);
+  }
 
   // Update the group model.
   TabGroup* tab_group = group_model_->GetTabGroup(group.value());
@@ -2086,8 +2088,10 @@
       UngroupTab(index);
   }
   contents_data_[index]->set_group(group);
-  for (auto& observer : observers_)
-    observer.TabGroupedStateChanged(group, index);
+  for (auto& observer : observers_) {
+    observer.TabGroupedStateChanged(
+        group, contents_data_[index]->web_contents(), index);
+  }
 
   group_model_->GetTabGroup(group)->AddTab();
 }
diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.cc b/chrome/browser/ui/tabs/tab_strip_model_observer.cc
index b9e4d66..c37164ac 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_observer.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model_observer.cc
@@ -137,6 +137,7 @@
 
 void TabStripModelObserver::TabGroupedStateChanged(
     base::Optional<tab_groups::TabGroupId> group,
+    content::WebContents* contents,
     int index) {}
 
 void TabStripModelObserver::TabStripEmpty() {
diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h
index a168383d..51a73bbd 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_observer.h
+++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h
@@ -290,6 +290,7 @@
   // Called when the tab at |index| is added to the group with id |group|.
   virtual void TabGroupedStateChanged(
       base::Optional<tab_groups::TabGroupId> group,
+      content::WebContents* contents,
       int index);
 
   // The TabStripModel now no longer has any tabs. The implementer may
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
index 6073f23..c2f2515d 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view_test.cc
@@ -1842,7 +1842,7 @@
   }
 
   void Step3() {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     EXPECT_EQ(1, test_view_->press_count());
 #else
     EXPECT_EQ(2, test_view_->press_count());
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc
index 71ea200a..8c04e080 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bubble_view.cc
@@ -193,12 +193,11 @@
               ui::DialogModelButton::Params().AddAccelerator(
                   ui::Accelerator(ui::VKEY_R, ui::EF_ALT_DOWN)))
           .AddDialogExtraButton(
+              base::BindRepeating(&BookmarkBubbleDelegate::OnEditButton,
+                                  base::Unretained(bubble_delegate)),
               l10n_util::GetStringUTF16(IDS_BOOKMARK_BUBBLE_OPTIONS),
-              ui::DialogModelButton::Params()
-                  .SetCallback(
-                      base::BindRepeating(&BookmarkBubbleDelegate::OnEditButton,
-                                          base::Unretained(bubble_delegate)))
-                  .AddAccelerator(ui::Accelerator(ui::VKEY_E, ui::EF_ALT_DOWN)))
+              ui::DialogModelButton::Params().AddAccelerator(
+                  ui::Accelerator(ui::VKEY_E, ui::EF_ALT_DOWN)))
           .AddTextfield(
               l10n_util::GetStringUTF16(IDS_BOOKMARK_BUBBLE_NAME_LABEL),
               bookmark_node->GetTitle(),
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_unittest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_unittest.cc
index 87aea86..a03c328 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_unittest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_unittest.cc
@@ -52,7 +52,7 @@
 };
 
 // TODO(crbug.com/998369): Flaky on Linux TSAN and ASAN.
-#if defined(OS_LINUX) && \
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && \
     (defined(ADDRESS_SANITIZER) || defined(THREAD_SANITIZER))
 #define MAYBE_HitTestPopupTopChrome DISABLED_HitTestPopupTopChrome
 #else
@@ -75,7 +75,7 @@
 };
 
 // TODO(crbug.com/1011339): Flaky on Linux TSAN.
-#if defined(OS_LINUX) && defined(THREAD_SANITIZER)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(THREAD_SANITIZER)
 #define MAYBE_HitTestTabstrip DISABLED_HitTestTabstrip
 #else
 #define MAYBE_HitTestTabstrip HitTestTabstrip
diff --git a/chrome/browser/ui/views/frame/browser_view_unittest.cc b/chrome/browser/ui/views/frame/browser_view_unittest.cc
index 5d39b7f8f..991c5138 100644
--- a/chrome/browser/ui/views/frame/browser_view_unittest.cc
+++ b/chrome/browser/ui/views/frame/browser_view_unittest.cc
@@ -166,7 +166,7 @@
 }
 
 // TODO(https://crbug.com/1020758): Flaky on Linux.
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_FindBarBoundingBoxLocationBar \
   DISABLED_FindBarBoundingBoxLocationBar
 #else
@@ -236,7 +236,7 @@
 
 // Test that bookmark bar view becomes invisible when closing the browser.
 // TODO(https://crbug.com/1000251): Flaky on Linux.
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_BookmarkBarInvisibleOnShutdown \
   DISABLED_BookmarkBarInvisibleOnShutdown
 #else
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index ec4a52b..b80f5673 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -49,7 +49,7 @@
 #include "ui/views/window/vector_icons/vector_icons.h"
 #include "ui/views/window/window_shape.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "ui/views/controls/menu/menu_runner.h"
 #endif
 
@@ -346,7 +346,7 @@
   } else if (sender == close_button_) {
     frame()->CloseWithReason(views::Widget::ClosedReason::kCloseButtonClicked);
   } else if (sender == window_icon_) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     // TODO(pbos): Figure out / document why this is Linux only. This needs a
     // comment.
     views::MenuRunner menu_runner(frame()->GetSystemMenuModel(),
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
index 4c965f6..6aee25a 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_platform_specific.cc
@@ -6,7 +6,7 @@
 
 #include "build/build_config.h"
 
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_CHROMEOS)
 
 // static
 std::unique_ptr<OpaqueBrowserFrameViewPlatformSpecific>
diff --git a/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc b/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc
index 194d2d7..ea563a6 100644
--- a/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc
+++ b/chrome/browser/ui/views/frame/system_web_app_non_client_frame_view_browsertest.cc
@@ -43,8 +43,11 @@
       PageActionIconType::kNativeFileSystemAccess));
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppNonClientFrameViewBrowserTest,
-                         ::testing::Values(web_app::ProviderType::kBookmarkApps,
-                                           web_app::ProviderType::kWebApps),
-                         web_app::ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppNonClientFrameViewBrowserTest,
+    ::testing::Combine(
+        ::testing::Values(web_app::ProviderType::kBookmarkApps,
+                          web_app::ProviderType::kWebApps),
+        ::testing::Values(web_app::InstallationType::kManifestInstall)),
+    web_app::ProviderAndInstallationTypeToString);
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
index 358114e3..98fc1639 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -54,6 +54,7 @@
 #include "components/vector_icons/vector_icons.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/focused_node_details.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/web_contents.h"
 #include "extensions/common/constants.h"
@@ -1960,11 +1961,6 @@
 
 void OmniboxViewViews::DidGetUserInteraction(
     const blink::WebInputEvent& event) {
-  if (!OmniboxFieldTrial::ShouldHidePathQueryRefOnInteraction() ||
-      model()->ShouldPreventElision()) {
-    return;
-  }
-
   // Exclude mouse clicks from triggering the simplified domain elision. Mouse
   // clicks can be done idly and aren't a good signal of real intent to interact
   // with the page. Plus, it can be jarring when the URL elides when the user
@@ -1980,35 +1976,13 @@
     return;
   }
 
-  // If there's already a hover animation running, just let it run as we will
-  // end up at the same place.
-  if (hover_elide_or_unelide_animation_->IsAnimating())
-    return;
+  MaybeElideURLWithAnimationFromInteraction();
+}
 
-  // This method runs when the user interacts with the page, such as scrolling
-  // or typing. In the hide-on-interaction field trial, the URL is shown until
-  // user interaction, at which point it's animated to a simplified version of
-  // the domain (hiding the path and, optionally, subdomains). The animation is
-  // designed to draw the user's attention and suggest that they can return to
-  // the omnibox to uncover the full URL.
-
-  // Only create and run the animation if we haven't already done so on an
-  // earlier call to this method.
-  if (IsURLEligibleForSimplifiedDomainEliding() &&
-      !elide_after_web_contents_interaction_animation_) {
-    GetRenderText()->SetElideBehavior(gfx::NO_ELIDE);
-    elide_after_web_contents_interaction_animation_ =
-        std::make_unique<ElideAnimation>(this, GetRenderText());
-    std::vector<gfx::Range> ranges_surrounding_simplified_domain;
-    gfx::Range simplified_domain =
-        GetSimplifiedDomainBounds(&ranges_surrounding_simplified_domain);
-    elide_after_web_contents_interaction_animation_->Start(
-        simplified_domain, 0 /* delay_ms */,
-        ranges_surrounding_simplified_domain,
-        GetOmniboxColor(GetThemeProvider(),
-                        OmniboxPart::LOCATION_BAR_TEXT_DIMMED),
-        SK_ColorTRANSPARENT);
-  }
+void OmniboxViewViews::OnFocusChangedInPage(
+    content::FocusedNodeDetails* details) {
+  if (details->is_editable_node)
+    MaybeElideURLWithAnimationFromInteraction();
 }
 
 base::string16 OmniboxViewViews::GetSelectionClipboardText() const {
@@ -2465,7 +2439,7 @@
   // TODO(estark): push this inside ParseForEmphasizeComponents()?
   base::string16 simplified_domain = url_formatter::IDNToUnicode(
       net::registry_controlled_domains::GetDomainAndRegistry(
-          url, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES));
+          url, net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES));
 
   if (simplified_domain.empty()) {
     ranges_surrounding_simplified_domain->emplace_back(0, host.begin);
@@ -2560,6 +2534,43 @@
   }
 }
 
+void OmniboxViewViews::MaybeElideURLWithAnimationFromInteraction() {
+  if (!OmniboxFieldTrial::ShouldHidePathQueryRefOnInteraction() ||
+      model()->ShouldPreventElision()) {
+    return;
+  }
+
+  // If there's already a hover animation running, just let it run as we will
+  // end up at the same place.
+  if (hover_elide_or_unelide_animation_->IsAnimating())
+    return;
+
+  // This method runs when the user interacts with the page, such as scrolling
+  // or typing. In the hide-on-interaction field trial, the URL is shown until
+  // user interaction, at which point it's animated to a simplified version of
+  // the domain (hiding the path and, optionally, subdomains). The animation is
+  // designed to draw the user's attention and suggest that they can return to
+  // the omnibox to uncover the full URL.
+
+  // If we've already created and run the animation in an earlier call to this
+  // method, we don't need to do so again.
+  if (!IsURLEligibleForSimplifiedDomainEliding() ||
+      elide_after_web_contents_interaction_animation_) {
+    return;
+  }
+  GetRenderText()->SetElideBehavior(gfx::NO_ELIDE);
+  elide_after_web_contents_interaction_animation_ =
+      std::make_unique<ElideAnimation>(this, GetRenderText());
+  std::vector<gfx::Range> ranges_surrounding_simplified_domain;
+  gfx::Range simplified_domain =
+      GetSimplifiedDomainBounds(&ranges_surrounding_simplified_domain);
+  elide_after_web_contents_interaction_animation_->Start(
+      simplified_domain, 0 /* delay_ms */, ranges_surrounding_simplified_domain,
+      GetOmniboxColor(GetThemeProvider(),
+                      OmniboxPart::LOCATION_BAR_TEXT_DIMMED),
+      SK_ColorTRANSPARENT);
+}
+
 void OmniboxViewViews::ElideURL() {
   DCHECK(OmniboxFieldTrial::ShouldHidePathQueryRefOnInteraction() ||
          OmniboxFieldTrial::ShouldRevealPathQueryRefOnHover());
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.h b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
index 0f805baf..cc76449 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
@@ -40,6 +40,7 @@
 class OmniboxPopupContentsView;
 
 namespace content {
+struct FocusedNodeDetails;
 class WebContents;
 }  // namespace content
 
@@ -161,6 +162,7 @@
   // content::WebContentsObserver:
   void DidFinishNavigation(content::NavigationHandle* navigation) override;
   void DidGetUserInteraction(const blink::WebInputEvent& event) override;
+  void OnFocusChangedInPage(content::FocusedNodeDetails* details) override;
 
   // For testing only.
   OmniboxPopupContentsView* GetPopupContentsViewForTesting() const {
@@ -179,6 +181,7 @@
  private:
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest, HoverAndExit);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest, HoverAndExitIDN);
+  FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest, PrivateRegistry);
   FRIEND_TEST_ALL_PREFIXES(
       OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
       UserInteractionAndHover);
@@ -187,6 +190,9 @@
       MouseClick);
   FRIEND_TEST_ALL_PREFIXES(
       OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
+      FocusingEditableNode);
+  FRIEND_TEST_ALL_PREFIXES(
+      OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
       BoundsChanged);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest, BoundsChanged);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsRevealOnHoverTest,
@@ -511,6 +517,12 @@
   // display.
   void OnShouldPreventElisionChanged();
 
+  // Elides the URL to a simplified version of the domain with an animation.
+  // This should be called when a user interaction with the web contents
+  // triggers elision. Does nothing if the relevant field trial is disabled or
+  // the URL is not eligible for eliding.
+  void MaybeElideURLWithAnimationFromInteraction();
+
   // The methods below elide to or unelide from a simplified version of the URL.
   // Callers should ensure that the URL is valid before calling.
   //
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
index 56b7445..607eca9 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_unittest.cc
@@ -32,6 +32,7 @@
 #include "components/omnibox/browser/omnibox_edit_model.h"
 #include "components/omnibox/browser/test_location_bar_model.h"
 #include "components/omnibox/common/omnibox_features.h"
+#include "content/public/browser/focused_node_details.h"
 #include "content/public/test/browser_task_environment.h"
 #include "content/public/test/mock_navigation_handle.h"
 #include "content/public/test/test_renderer_host.h"
@@ -1854,6 +1855,47 @@
       kSimplifiedDomainDisplayIDNUrlPath, ShouldElideToRegistrableDomain()));
 }
 
+// Tests the field trial variation that shows a simplified domain by default
+// using a private registry (https://publicsuffix.org/list/). Private registries
+// should be ignored when computing the simplified domain, to avoid creating
+// incentives for malicious sites to add themselves to the Public Suffix List.
+TEST_P(OmniboxViewViewsRevealOnHoverTest, PrivateRegistry) {
+  // This test is only applicable when we elide to the registrable domain;
+  // otherwise private vs public registries are irrelevant.
+  if (!ShouldElideToRegistrableDomain())
+    return;
+
+  const base::string16 kSimplifiedDomainDisplayPrivateRegistryUrl =
+      base::UTF8ToUTF16("https://foo.blogspot.com/bar");
+  const base::string16
+      kSimplifiedDomainDisplayPrivateRegistryUrlHostnameAndScheme =
+          base::UTF8ToUTF16("https://foo.blogspot.com");
+  const base::string16
+      kSimplifiedDomainDisplayPrivateRegistryUrlSubdomainAndScheme =
+          base::UTF8ToUTF16("https://foo.");
+  const base::string16 kSimplifiedDomainDisplayPrivateRegistryUrlSubdomain =
+      base::UTF8ToUTF16("foo.");
+  const base::string16 kSimplifiedDomainDisplayPrivateRegistryUrlPath =
+      base::UTF8ToUTF16("/bar");
+  const base::string16 kSimplifiedDomainDisplayPrivateRegistryUrlScheme =
+      base::UTF8ToUTF16("https://");
+  location_bar_model()->set_url(
+      GURL(kSimplifiedDomainDisplayPrivateRegistryUrl));
+  location_bar_model()->set_url_for_display(
+      kSimplifiedDomainDisplayPrivateRegistryUrl);
+  omnibox_view()->model()->ResetDisplayTexts();
+  omnibox_view()->RevertAll();
+  // Call OnThemeChanged() to create the animations.
+  omnibox_view()->OnThemeChanged();
+
+  ASSERT_NO_FATAL_FAILURE(ExpectElidedToSimplifiedDomain(
+      omnibox_view(), kSimplifiedDomainDisplayPrivateRegistryUrlScheme,
+      kSimplifiedDomainDisplayPrivateRegistryUrlSubdomain,
+      kSimplifiedDomainDisplayPrivateRegistryUrlHostnameAndScheme,
+      kSimplifiedDomainDisplayPrivateRegistryUrlPath,
+      ShouldElideToRegistrableDomain()));
+}
+
 class OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest
     : public OmniboxViewViewsTest,
       public ::testing::WithParamInterface<std::pair<bool, bool>> {
@@ -1965,7 +2007,8 @@
                 0, kSimplifiedDomainDisplayUrlSubdomainAndScheme.size())));
 }
 
-// Tests that mouse clicks do not count as user interactions and elide the URL.
+// Tests that mouse clicks do not count as user interactions and do not elide
+// the URL.
 TEST_P(OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest, MouseClick) {
   SetUpSimplifiedDomainTest();
 
@@ -1986,6 +2029,37 @@
   EXPECT_FALSE(elide_animation);
 }
 
+// Tests that focusing an editable node does count as a user interaction and
+// elides the URL.
+TEST_P(OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest,
+       FocusingEditableNode) {
+  SetUpSimplifiedDomainTest();
+
+  content::MockNavigationHandle navigation;
+  navigation.set_is_same_document(false);
+  omnibox_view()->DidFinishNavigation(&navigation);
+  ASSERT_NO_FATAL_FAILURE(ExpectUnelidedFromSimplifiedDomain(
+      omnibox_view()->GetRenderText(),
+      gfx::Range(kSimplifiedDomainDisplayUrlScheme.size(),
+                 kSimplifiedDomainDisplayUrl.size())));
+
+  // Focusing a non-editable node should not run the fade-out animation.
+  content::FocusedNodeDetails details;
+  details.is_editable_node = false;
+  omnibox_view()->OnFocusChangedInPage(&details);
+  OmniboxViewViews::ElideAnimation* elide_animation =
+      omnibox_view()->GetElideAfterInteractionAnimationForTesting();
+  EXPECT_FALSE(elide_animation);
+
+  // Focusing an editable node should run the fade-out animation.
+  details.is_editable_node = true;
+  omnibox_view()->OnFocusChangedInPage(&details);
+  elide_animation =
+      omnibox_view()->GetElideAfterInteractionAnimationForTesting();
+  ASSERT_TRUE(elide_animation);
+  EXPECT_TRUE(elide_animation->IsAnimating());
+}
+
 // Tests that simplified domain elisions are re-applied when the omnibox's
 // bounds change.
 TEST_P(OmniboxViewViewsHideOnInteractionAndRevealOnHoverTest, BoundsChanged) {
diff --git a/chrome/browser/ui/views/payments/payment_request_show_promise_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_show_promise_browsertest.cc
index 5dc3aa7..6be4691 100644
--- a/chrome/browser/ui/views/payments/payment_request_show_promise_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_show_promise_browsertest.cc
@@ -284,8 +284,9 @@
   ExpectBodyContains({R"(AbortError)"});
 }
 
+// Disabled for being flaky. crbug.com/1116607
 IN_PROC_BROWSER_TEST_F(PaymentRequestShowPromiseTest,
-                       UnsupportedPaymentMethod) {
+                       DISABLED_UnsupportedPaymentMethod) {
   NavigateTo("/show_promise/unsupported.html");
   ResetEventWaiterForSequence(
       {DialogEvent::PROCESSING_SPINNER_SHOWN,
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
index 273ec74..ca09542a 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
@@ -324,7 +324,13 @@
 
 // Checks that the NTP is navigated to the logout URL, instead of creating
 // another tab.
-IN_PROC_BROWSER_TEST_F(ProfileMenuViewSignoutTest, SignoutFromNTP) {
+// Flaky on Linux, at least. crbug.com/1116606
+#if defined(OS_LINUX)
+#define MAYBE_SignoutFromNTP DISABLED_SignoutFromNTP
+#else
+#define MAYBE_SignoutFromNTP SignoutFromNTP
+#endif
+IN_PROC_BROWSER_TEST_F(ProfileMenuViewSignoutTest, MAYBE_SignoutFromNTP) {
   // Start from the NTP.
   ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUINewTabURL));
   TabStripModel* tab_strip = browser()->tab_strip_model();
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index aac991d5..a9db939 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -707,6 +707,7 @@
 
 void BrowserTabStripController::TabGroupedStateChanged(
     base::Optional<tab_groups::TabGroupId> group,
+    content::WebContents* contents,
     int index) {
   tabstrip_->AddTabToGroup(std::move(group), index);
 }
diff --git a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
index c23e8d1..d7d6838 100644
--- a/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
+++ b/chrome/browser/ui/views/tabs/browser_tab_strip_controller.h
@@ -131,6 +131,7 @@
   void TabBlockedStateChanged(content::WebContents* contents,
                               int model_index) override;
   void TabGroupedStateChanged(base::Optional<tab_groups::TabGroupId> group,
+                              content::WebContents* contents,
                               int index) override;
   void SetTabNeedsAttentionAt(int index, bool attention) override;
 
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
index d4adee3..5dd814b3 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -3452,7 +3452,7 @@
   DetachToBrowserTabDragControllerTestWithTabbedSystemApp()
       : test_system_web_app_installation_(
             web_app::TestSystemWebAppInstallation::
-                SetUpTabbedMultiWindowApp()) {}
+                SetUpTabbedMultiWindowApp(false)) {}
 
   web_app::AppId InstallMockApp() {
     test_system_web_app_installation_->WaitForAppInstall();
diff --git a/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc b/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc
index caa83fb..14b262c 100644
--- a/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc
+++ b/chrome/browser/ui/web_applications/app_browser_controller_browsertest.cc
@@ -94,7 +94,7 @@
  public:
   AppBrowserControllerBrowserTest()
       : test_system_web_app_installation_(
-            TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp()) {}
+            TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp(false)) {}
 
  protected:
   void InstallAndLaunchMockApp() {
@@ -284,7 +284,7 @@
  public:
   AppBrowserControllerChromeUntrustedBrowserTest()
       : test_system_web_app_installation_(
-            TestSystemWebAppInstallation::SetUpChromeUntrustedApp()) {}
+            TestSystemWebAppInstallation::SetUpChromeUntrustedApp(false)) {}
 
  protected:
   Browser* InstallAndLaunchMockApp() {
diff --git a/chrome/browser/ui/web_applications/test/system_web_app_ui_browsertest.cc b/chrome/browser/ui/web_applications/test/system_web_app_ui_browsertest.cc
index 3edb81e..ffaa814 100644
--- a/chrome/browser/ui/web_applications/test/system_web_app_ui_browsertest.cc
+++ b/chrome/browser/ui/web_applications/test/system_web_app_ui_browsertest.cc
@@ -34,7 +34,8 @@
   SystemWebAppLinkCaptureBrowserTest()
       : SystemWebAppManagerBrowserTest(/*install_mock*/ false) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpAppThatCapturesNavigation();
+        TestSystemWebAppInstallation::SetUpAppThatCapturesNavigation(
+            install_from_web_app_info());
   }
   ~SystemWebAppLinkCaptureBrowserTest() override = default;
 
@@ -418,10 +419,13 @@
   EXPECT_FALSE(app_browser->app_controller()->ShouldShowCustomTabBar());
 }
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppLinkCaptureBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppLinkCaptureBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
 }  // namespace web_app
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
index dd6e4eda..a28efd40 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
@@ -82,10 +82,10 @@
 };
 
 enum ThemeType {
-  DEFAULT,
-  AUTOGENERATED,
-  CHROME,
-  THIRD_PARTY,
+  kDefault,
+  kAutogenerated,
+  kChrome,
+  kThirdParty,
 };
 
 // Additional info for third-party themes.
@@ -187,11 +187,11 @@
 // Type of image of an image doodle. Used for metrics logging only.
 enum DoodleImageType {
   // Animation of an animated doodle.
-  ANIMATION,
+  kAnimation,
   // Static preview image of an animated doodle.
-  CTA,
+  kCta,
   // Image of a static doodle.
-  STATIC,
+  kStatic,
 };
 
 // A simple or animated doodle in either dark or light mode.
@@ -245,54 +245,54 @@
 
 // A channel through which a doodle can be shared.
 enum DoodleShareChannel {
-  FACEBOOK,
-  TWITTER,
-  EMAIL,
-  LINK_COPY,
+  kFacebook,
+  kTwitter,
+  kEmail,
+  kLinkCopy,
 };
 
 // Action the user performed while using the customize dialog. Used for metrics
 // logging only. Actions correspond to items in NTPLoggingEventType.
 enum CustomizeDialogAction {
-  CANCEL_CLICKED,
-  DONE_CLICKED,
-  OPEN_CLICKED,
-  BACKGROUNDS_BACK_CLICKED,
-  BACKGROUNDS_NO_BACKGROUND_SELECTED,
-  BACKGROUNDS_COLLECTION_OPENED,
-  BACKGROUNDS_REFRESH_TOGGLE_CLICKED,
-  BACKGROUNDS_IMAGE_SELECTED,
-  BACKGROUNDS_UPLOAD_FROM_DEVICE_CLICKED,
-  SHORTCUTS_CUSTOM_LINKS_CLICKED,
-  SHORTCUTS_MOST_VISITED_CLICKED,
-  SHORTCUTS_VISIBILITY_TOGGLE_CLICKED,
+  kCancelClicked,
+  kDoneClicked,
+  kOpenClicked,
+  kBackgroundsBackClicked,
+  kBackgroundsNoBackgroundSelected,
+  kBackgroundsCollectionOpened,
+  kBackgroundsRefreshToggleClicked,
+  kBackgroundsImageSelected,
+  kBackgroundsUploadFromDeviceClicked,
+  kShortcutsCustomLinksClicked,
+  kShortcutsMostVisitedClicked,
+  kShortcutsVisibilityToggleClicked,
 };
 
 // Action the user performed while using voice search. Used for metrics logging
 // only. Actions correspond to items in NTPLoggingEventType.
 enum VoiceSearchAction {
-  ACTIVATE_SEARCH_BOX,
-  ACTIVATE_KEYBOARD,
-  CLOSE_OVERLAY,
-  QUERY_SUBMITTED,
-  SUPPORT_LINK_CLICKED,
-  TRY_AGAIN_LINK,
-  TRY_AGAIN_MIC_BUTTON,
+  kActivateSearchBox,
+  kActivateKeyboard,
+  kCloseOverlay,
+  kQuerySubmitted,
+  kSupportLinkClicked,
+  kTryAgainLink,
+  kTryAgainMicButton,
 };
 
 // Errors occurred while using voice search. Errors correspond to items in
 // NTPLoggingEventType.
 enum VoiceSearchError {
-  ABORTED,
-  NO_SPEECH,
-  AUDIO_CAPTURE,
-  NETWORK,
-  NOT_ALLOWED,
-  LANGUAGE_NOT_SUPPORTED,
-  NO_MATCH,
-  SERVICE_NOT_ALLOWED,
-  BAD_GRAMMAR,
-  OTHER,
+  kAborted,
+  kNoSpeech,
+  kAudioCapture,
+  kNetwork,
+  kNotAllowed,
+  kLanguageNotSupported,
+  kNoMatch,
+  kServiceNotAllowed,
+  kBadGrammar,
+  kOther,
 };
 
 // Used by the WebUI page to bootstrap bidirectional communication.
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
index 565afa0..20a5022 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
@@ -72,28 +72,28 @@
 new_tab_page::mojom::ThemePtr MakeTheme(const NtpTheme& ntp_theme) {
   auto theme = new_tab_page::mojom::Theme::New();
   if (ntp_theme.using_default_theme) {
-    theme->type = new_tab_page::mojom::ThemeType::DEFAULT;
+    theme->type = new_tab_page::mojom::ThemeType::kDefault;
     // TODO(crbug.com/1040682): This info has no meaning for the default theme
     // and shouldn't be used. We set it here to prevent a crash where mojo is
     // complaing about an unset info. However, we cannot make the field optional
     // as that is crashing JS. Once the JS crash is solved remove this line.
     theme->info = new_tab_page::mojom::ThemeInfo::NewChromeThemeId(-1);
   } else if (ntp_theme.color_id == -1) {
-    theme->type = new_tab_page::mojom::ThemeType::THIRD_PARTY;
+    theme->type = new_tab_page::mojom::ThemeType::kThirdParty;
     auto info = new_tab_page::mojom::ThirdPartyThemeInfo::New();
     info->id = ntp_theme.theme_id;
     info->name = ntp_theme.theme_name;
     theme->info =
         new_tab_page::mojom::ThemeInfo::NewThirdPartyThemeInfo(std::move(info));
   } else if (ntp_theme.color_id == 0) {
-    theme->type = new_tab_page::mojom::ThemeType::AUTOGENERATED;
+    theme->type = new_tab_page::mojom::ThemeType::kAutogenerated;
     auto theme_colors = new_tab_page::mojom::ThemeColors::New();
     theme_colors->frame = ntp_theme.color_dark;
     theme_colors->active_tab = ntp_theme.color_light;
     theme->info = new_tab_page::mojom::ThemeInfo::NewAutogeneratedThemeColors(
         std::move(theme_colors));
   } else {
-    theme->type = new_tab_page::mojom::ThemeType::CHROME;
+    theme->type = new_tab_page::mojom::ThemeType::kChrome;
     theme->info =
         new_tab_page::mojom::ThemeInfo::NewChromeThemeId(ntp_theme.color_id);
   }
@@ -644,47 +644,47 @@
     new_tab_page::mojom::CustomizeDialogAction action) {
   NTPLoggingEventType event;
   switch (action) {
-    case new_tab_page::mojom::CustomizeDialogAction::CANCEL_CLICKED:
+    case new_tab_page::mojom::CustomizeDialogAction::kCancelClicked:
       event = NTP_CUSTOMIZATION_MENU_CANCEL;
       break;
-    case new_tab_page::mojom::CustomizeDialogAction::DONE_CLICKED:
+    case new_tab_page::mojom::CustomizeDialogAction::kDoneClicked:
       event = NTP_CUSTOMIZATION_MENU_DONE;
       break;
-    case new_tab_page::mojom::CustomizeDialogAction::OPEN_CLICKED:
+    case new_tab_page::mojom::CustomizeDialogAction::kOpenClicked:
       event = NTP_CUSTOMIZATION_MENU_OPENED;
       break;
-    case new_tab_page::mojom::CustomizeDialogAction::BACKGROUNDS_BACK_CLICKED:
+    case new_tab_page::mojom::CustomizeDialogAction::kBackgroundsBackClicked:
       event = NTP_BACKGROUND_BACK_CLICK;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        BACKGROUNDS_NO_BACKGROUND_SELECTED:
+        kBackgroundsNoBackgroundSelected:
       event = NTP_BACKGROUND_DEFAULT_SELECTED;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        BACKGROUNDS_COLLECTION_OPENED:
+        kBackgroundsCollectionOpened:
       event = NTP_BACKGROUND_OPEN_COLLECTION;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        BACKGROUNDS_REFRESH_TOGGLE_CLICKED:
+        kBackgroundsRefreshToggleClicked:
       event = NTP_BACKGROUND_REFRESH_TOGGLE_CLICKED;
       break;
-    case new_tab_page::mojom::CustomizeDialogAction::BACKGROUNDS_IMAGE_SELECTED:
+    case new_tab_page::mojom::CustomizeDialogAction::kBackgroundsImageSelected:
       event = NTP_BACKGROUND_SELECT_IMAGE;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        BACKGROUNDS_UPLOAD_FROM_DEVICE_CLICKED:
+        kBackgroundsUploadFromDeviceClicked:
       event = NTP_BACKGROUND_UPLOAD_FROM_DEVICE;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        SHORTCUTS_CUSTOM_LINKS_CLICKED:
+        kShortcutsCustomLinksClicked:
       event = NTP_CUSTOMIZE_SHORTCUT_CUSTOM_LINKS_CLICKED;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        SHORTCUTS_MOST_VISITED_CLICKED:
+        kShortcutsMostVisitedClicked:
       event = NTP_CUSTOMIZE_SHORTCUT_MOST_VISITED_CLICKED;
       break;
     case new_tab_page::mojom::CustomizeDialogAction::
-        SHORTCUTS_VISIBILITY_TOGGLE_CLICKED:
+        kShortcutsVisibilityToggleClicked:
       event = NTP_CUSTOMIZE_SHORTCUT_VISIBILITY_TOGGLE_CLICKED;
       break;
     default:
@@ -698,13 +698,13 @@
     const base::Optional<::GURL>& log_url) {
   NTPLoggingEventType event;
   switch (type) {
-    case new_tab_page::mojom::DoodleImageType::ANIMATION:
+    case new_tab_page::mojom::DoodleImageType::kAnimation:
       event = NTP_ANIMATED_LOGO_CLICKED;
       break;
-    case new_tab_page::mojom::DoodleImageType::CTA:
+    case new_tab_page::mojom::DoodleImageType::kCta:
       event = NTP_CTA_LOGO_CLICKED;
       break;
-    case new_tab_page::mojom::DoodleImageType::STATIC:
+    case new_tab_page::mojom::DoodleImageType::kStatic:
       event = NTP_STATIC_LOGO_CLICKED;
       break;
     default:
@@ -713,7 +713,7 @@
   }
   LogEvent(event);
 
-  if (type == new_tab_page::mojom::DoodleImageType::CTA &&
+  if (type == new_tab_page::mojom::DoodleImageType::kCta &&
       log_url.has_value()) {
     // We just ping the server to indicate a CTA image has been clicked.
     Fetch(*log_url, base::BindOnce([](bool, std::unique_ptr<std::string>) {}));
@@ -725,10 +725,10 @@
     double time,
     const GURL& log_url,
     OnDoodleImageRenderedCallback callback) {
-  if (type == new_tab_page::mojom::DoodleImageType::CTA ||
-      type == new_tab_page::mojom::DoodleImageType::STATIC) {
+  if (type == new_tab_page::mojom::DoodleImageType::kCta ||
+      type == new_tab_page::mojom::DoodleImageType::kStatic) {
     logger_->LogEvent(
-        type == new_tab_page::mojom::DoodleImageType::CTA
+        type == new_tab_page::mojom::DoodleImageType::kCta
             ? NTP_CTA_LOGO_SHOWN_FROM_CACHE
             : NTP_STATIC_LOGO_SHOWN_FROM_CACHE,
         base::Time::FromJsTime(time) - ntp_navigation_start_time_);
@@ -744,16 +744,16 @@
     const base::Optional<std::string>& share_id) {
   int channel_id;
   switch (channel) {
-    case new_tab_page::mojom::DoodleShareChannel::FACEBOOK:
+    case new_tab_page::mojom::DoodleShareChannel::kFacebook:
       channel_id = 2;
       break;
-    case new_tab_page::mojom::DoodleShareChannel::TWITTER:
+    case new_tab_page::mojom::DoodleShareChannel::kTwitter:
       channel_id = 3;
       break;
-    case new_tab_page::mojom::DoodleShareChannel::EMAIL:
+    case new_tab_page::mojom::DoodleShareChannel::kEmail:
       channel_id = 5;
       break;
-    case new_tab_page::mojom::DoodleShareChannel::LINK_COPY:
+    case new_tab_page::mojom::DoodleShareChannel::kLinkCopy:
       channel_id = 6;
       break;
     default:
@@ -782,25 +782,25 @@
     new_tab_page::mojom::VoiceSearchAction action) {
   NTPLoggingEventType event;
   switch (action) {
-    case new_tab_page::mojom::VoiceSearchAction::ACTIVATE_SEARCH_BOX:
+    case new_tab_page::mojom::VoiceSearchAction::kActivateSearchBox:
       event = NTP_VOICE_ACTION_ACTIVATE_SEARCH_BOX;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::ACTIVATE_KEYBOARD:
+    case new_tab_page::mojom::VoiceSearchAction::kActivateKeyboard:
       event = NTP_VOICE_ACTION_ACTIVATE_KEYBOARD;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::CLOSE_OVERLAY:
+    case new_tab_page::mojom::VoiceSearchAction::kCloseOverlay:
       event = NTP_VOICE_ACTION_CLOSE_OVERLAY;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::QUERY_SUBMITTED:
+    case new_tab_page::mojom::VoiceSearchAction::kQuerySubmitted:
       event = NTP_VOICE_ACTION_QUERY_SUBMITTED;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::SUPPORT_LINK_CLICKED:
+    case new_tab_page::mojom::VoiceSearchAction::kSupportLinkClicked:
       event = NTP_VOICE_ACTION_SUPPORT_LINK_CLICKED;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::TRY_AGAIN_LINK:
+    case new_tab_page::mojom::VoiceSearchAction::kTryAgainLink:
       event = NTP_VOICE_ACTION_TRY_AGAIN_LINK;
       break;
-    case new_tab_page::mojom::VoiceSearchAction::TRY_AGAIN_MIC_BUTTON:
+    case new_tab_page::mojom::VoiceSearchAction::kTryAgainMicButton:
       event = NTP_VOICE_ACTION_TRY_AGAIN_MIC_BUTTON;
       break;
   }
@@ -811,34 +811,34 @@
     new_tab_page::mojom::VoiceSearchError error) {
   NTPLoggingEventType event;
   switch (error) {
-    case new_tab_page::mojom::VoiceSearchError::ABORTED:
+    case new_tab_page::mojom::VoiceSearchError::kAborted:
       event = NTP_VOICE_ERROR_ABORTED;
       break;
-    case new_tab_page::mojom::VoiceSearchError::NO_SPEECH:
+    case new_tab_page::mojom::VoiceSearchError::kNoSpeech:
       event = NTP_VOICE_ERROR_NO_SPEECH;
       break;
-    case new_tab_page::mojom::VoiceSearchError::AUDIO_CAPTURE:
+    case new_tab_page::mojom::VoiceSearchError::kAudioCapture:
       event = NTP_VOICE_ERROR_AUDIO_CAPTURE;
       break;
-    case new_tab_page::mojom::VoiceSearchError::NETWORK:
+    case new_tab_page::mojom::VoiceSearchError::kNetwork:
       event = NTP_VOICE_ERROR_NETWORK;
       break;
-    case new_tab_page::mojom::VoiceSearchError::NOT_ALLOWED:
+    case new_tab_page::mojom::VoiceSearchError::kNotAllowed:
       event = NTP_VOICE_ERROR_NOT_ALLOWED;
       break;
-    case new_tab_page::mojom::VoiceSearchError::LANGUAGE_NOT_SUPPORTED:
+    case new_tab_page::mojom::VoiceSearchError::kLanguageNotSupported:
       event = NTP_VOICE_ERROR_LANGUAGE_NOT_SUPPORTED;
       break;
-    case new_tab_page::mojom::VoiceSearchError::NO_MATCH:
+    case new_tab_page::mojom::VoiceSearchError::kNoMatch:
       event = NTP_VOICE_ERROR_NO_MATCH;
       break;
-    case new_tab_page::mojom::VoiceSearchError::SERVICE_NOT_ALLOWED:
+    case new_tab_page::mojom::VoiceSearchError::kServiceNotAllowed:
       event = NTP_VOICE_ERROR_SERVICE_NOT_ALLOWED;
       break;
-    case new_tab_page::mojom::VoiceSearchError::BAD_GRAMMAR:
+    case new_tab_page::mojom::VoiceSearchError::kBadGrammar:
       event = NTP_VOICE_ERROR_BAD_GRAMMAR;
       break;
-    case new_tab_page::mojom::VoiceSearchError::OTHER:
+    case new_tab_page::mojom::VoiceSearchError::kOther:
       event = NTP_VOICE_ERROR_OTHER;
       break;
   }
diff --git a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
index a773bd3..9f759b0 100644
--- a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
@@ -49,6 +49,10 @@
 #include "printing/printing_features.h"
 #endif
 
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/drive/drive_integration_service.h"
+#endif
+
 namespace printing {
 
 namespace {
@@ -252,6 +256,10 @@
 
   base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
   bool prompt_user = !cmdline->HasSwitch(switches::kKioskModePrinting);
+#if defined(OS_CHROMEOS)
+  use_drive_mount_ =
+      settings.FindBoolKey(kSettingPrintToGoogleDrive).value_or(false);
+#endif
 
   SelectFile(path, initiator, prompt_user);
 }
@@ -342,6 +350,8 @@
 void PdfPrinterHandler::SelectFile(const base::FilePath& default_filename,
                                    content::WebContents* initiator,
                                    bool prompt_user) {
+  // Handle case where user expects to be prompted but policy disallows file
+  // selection. Call CanOpenSelectFileDialog() to notify user and early return.
   if (prompt_user) {
     ChromeSelectFilePolicy policy(initiator);
     if (!policy.CanOpenSelectFileDialog()) {
@@ -351,13 +361,11 @@
     }
   }
 
-  // Get save location from Download Preferences.
-  DownloadPrefs* download_prefs = DownloadPrefs::FromBrowserContext(profile_);
-  base::FilePath path = download_prefs->SaveFilePath();
   sticky_settings_->SaveInPrefs(profile_->GetPrefs());
 
   // Handle the no prompting case. Like the dialog prompt, this function
   // returns and eventually FileSelected() gets called.
+  base::FilePath path = GetSaveLocation();
   if (!prompt_user) {
     base::ThreadPool::PostTaskAndReplyWithResult(
         FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
@@ -376,6 +384,7 @@
 
   // Get default download directory. This will be used as a fallback if the
   // save directory does not exist.
+  DownloadPrefs* download_prefs = DownloadPrefs::FromBrowserContext(profile_);
   base::FilePath default_path = download_prefs->DownloadPath();
   base::ThreadPool::PostTaskAndReplyWithResult(
       FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
@@ -422,4 +431,17 @@
       platform_util::GetTopLevel(preview_web_contents_->GetNativeView()), NULL);
 }
 
+base::FilePath PdfPrinterHandler::GetSaveLocation() const {
+#if defined(OS_CHROMEOS)
+  drive::DriveIntegrationService* drive_service =
+      drive::DriveIntegrationServiceFactory::GetForProfile(profile_);
+  if (use_drive_mount_ && drive_service && drive_service->IsMounted()) {
+    return drive_service->GetMountPointPath().Append(
+        drive::util::kDriveMyDriveRootDirName);
+  }
+#endif
+  DownloadPrefs* download_prefs = DownloadPrefs::FromBrowserContext(profile_);
+  return download_prefs->SaveFilePath();
+}
+
 }  // namespace printing
diff --git a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
index 0881b3d..26954ae 100644
--- a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
+++ b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
@@ -88,6 +88,9 @@
   void OnDirectorySelected(const base::FilePath& filename,
                            const base::FilePath& directory);
 
+  // Return save location as the Drive mount or fetch from Download Preferences.
+  base::FilePath GetSaveLocation() const;
+
   Profile* const profile_;
   PrintPreviewStickySettings* const sticky_settings_;
 
@@ -105,6 +108,12 @@
   // The callback to call when complete.
   PrintCallback print_callback_;
 
+#if defined(OS_CHROMEOS)
+  // Determines if the local Drive mount is sent to the file picker as the
+  // default save location. Set to true for Save to Drive print jobs.
+  bool use_drive_mount_ = false;
+#endif
+
   base::WeakPtrFactory<PdfPrinterHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PdfPrinterHandler);
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index fa574eb..ba451b6c 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -85,6 +85,7 @@
 #include "chrome/browser/ui/settings_window_manager_chromeos.h"
 #include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h"
 #include "chrome/browser/ui/webui/signin/inline_login_dialog_chromeos.h"
+#include "chromeos/constants/chromeos_features.h"
 #include "chromeos/printing/printer_configuration.h"
 #include "components/signin/public/identity_manager/scope_set.h"
 #endif
@@ -107,6 +108,10 @@
       return PrinterType::kPrivet;
     case UserActionBuckets::kPrintWithExtension:
       return PrinterType::kExtension;
+    // On Chrome OS, printing to Google Drive needs to open the local file
+    // picker so |kPrintToGoogleDriveCros| action should be handled by the
+    // PDFPrinterHandler.
+    case UserActionBuckets::kPrintToGoogleDriveCros:
     case UserActionBuckets::kPrintToPdf:
       return PrinterType::kPdf;
     case UserActionBuckets::kPrintToPrinter:
@@ -214,6 +219,14 @@
   if (settings.FindKey(kSettingOpenPDFInPreview))
     return UserActionBuckets::kOpenInMacPreview;
 #endif
+
+#if defined(OS_CHROMEOS)
+  if (base::FeatureList::IsEnabled(chromeos::features::kPrintSaveToDrive) &&
+      settings.FindBoolKey(kSettingPrintToGoogleDrive).value_or(false)) {
+    return UserActionBuckets::kPrintToGoogleDriveCros;
+  }
+#endif
+
   // This needs to be checked before checking for a cloud print ID, since a
   // print ticket for printing to Drive will also contain a cloud print ID.
   if (settings.FindBoolKey(kSettingPrintToGoogleDrive).value_or(false))
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_metrics.h b/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
index d8fe51a..351e12f 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
+++ b/chrome/browser/ui/webui/print_preview/print_preview_metrics.h
@@ -69,7 +69,8 @@
   kPrintWithExtension = 10,
   kOpenInMacPreview = 11,
   kPrintToGoogleDrive = 12,
-  kMaxValue = kPrintToGoogleDrive
+  kPrintToGoogleDriveCros = 13,
+  kMaxValue = kPrintToGoogleDriveCros
 };
 
 // Record the number of local printers.
diff --git a/chrome/browser/ui/webui/settings/chromeos/languages_section.cc b/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
index 078de61..3ed74f9c4 100644
--- a/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
+++ b/chrome/browser/ui/webui/settings/chromeos/languages_section.cc
@@ -259,6 +259,15 @@
           base::ASCIIToUTF16(chrome::kLanguageSettingsLearnMoreUrl)));
 }
 
+void AddInputPageStringsV2(content::WebUIDataSource* html_source) {
+  static constexpr webui::LocalizedString kLocalizedStrings[] = {
+      {"inputMethodListTitle",
+       IDS_OS_SETTINGS_LANGUAGES_INPUT_METHOD_LIST_TITLE},
+      {"openOptionsPage", IDS_OS_SETTINGS_LANGUAGES_OPEN_OPTIONS_PAGE_LABEL},
+  };
+  AddLocalizedStringsBulk(html_source, kLocalizedStrings);
+}
+
 }  // namespace
 
 LanguagesSection::LanguagesSection(Profile* profile,
@@ -322,6 +331,7 @@
   AddSmartInputsStrings(html_source, IsEmojiSuggestionAllowed());
   AddInputMethodOptionsStrings(html_source);
   AddLanguagesPageStringsV2(html_source);
+  AddInputPageStringsV2(html_source);
 
   html_source->AddString(
       "languagesLearnMoreURL",
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
index 54a540a..ef42f20f 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.cc
@@ -219,9 +219,9 @@
 
 void TabStripUIHandler::TabGroupedStateChanged(
     base::Optional<tab_groups::TabGroupId> group,
+    content::WebContents* contents,
     int index) {
-  int tab_id = extensions::ExtensionTabUtil::GetTabId(
-      browser_->tab_strip_model()->GetWebContentsAt(index));
+  int tab_id = extensions::ExtensionTabUtil::GetTabId(contents);
   if (group.has_value()) {
     FireWebUIListener("tab-group-state-changed", base::Value(tab_id),
                       base::Value(index),
diff --git a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
index 3221e4c..415e7f6 100644
--- a/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
+++ b/chrome/browser/ui/webui/tab_strip/tab_strip_ui_handler.h
@@ -30,6 +30,7 @@
   // TabStripModelObserver:
   void OnTabGroupChanged(const TabGroupChange& change) override;
   void TabGroupedStateChanged(base::Optional<tab_groups::TabGroupId> group,
+                              content::WebContents* contents,
                               int index) override;
   void OnTabStripModelChanged(
       TabStripModel* tab_strip_model,
diff --git a/chrome/browser/video_tutorials/BUILD.gn b/chrome/browser/video_tutorials/BUILD.gn
index 9ff5e48..05137820 100644
--- a/chrome/browser/video_tutorials/BUILD.gn
+++ b/chrome/browser/video_tutorials/BUILD.gn
@@ -26,12 +26,15 @@
   sources = [
     "switches.cc",
     "switches.h",
+    "tutorial.cc",
+    "tutorial.h",
     "video_tutorial_service.h",
   ]
 
   public_deps = [
     "//base",
     "//components/keyed_service/core",
+    "//url:url",
   ]
 }
 
@@ -75,7 +78,7 @@
 
 source_set("video_tutorials_unit_tests") {
   testonly = true
-  sources = []
+  sources = [ "tutorial_unittest.cc" ]
   deps = [
     ":public",
     "//base/test:test_support",
diff --git a/chrome/browser/video_tutorials/proto/video_tutorials.proto b/chrome/browser/video_tutorials/proto/video_tutorials.proto
index c0b0296..1b552dd 100644
--- a/chrome/browser/video_tutorials/proto/video_tutorials.proto
+++ b/chrome/browser/video_tutorials/proto/video_tutorials.proto
@@ -14,7 +14,10 @@
   DEBUG = 1;
   DOWNLOAD = 2;
   SEARCH = 3;
+  // For test only.
+  TEST = 9999999;
 }
+
 // All groups of video tutorials with different languages.
 message VideoTutorialGroups {
   // A list of video tutorial groups.
diff --git a/chrome/browser/video_tutorials/tutorial.cc b/chrome/browser/video_tutorials/tutorial.cc
new file mode 100644
index 0000000..379c5f8
--- /dev/null
+++ b/chrome/browser/video_tutorials/tutorial.cc
@@ -0,0 +1,43 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/video_tutorials/tutorial.h"
+
+namespace video_tutorials {
+
+Tutorial::Tutorial() = default;
+
+Tutorial::Tutorial(FeatureType feature,
+                   const std::string& title,
+                   const std::string& video_url,
+                   const std::string& share_url,
+                   const std::string& poster_url,
+                   const std::string& caption_url,
+                   int video_length)
+    : feature(feature),
+      title(title),
+      video_url(video_url),
+      share_url(share_url),
+      poster_url(poster_url),
+      caption_url(caption_url),
+      video_length(video_length) {}
+
+bool Tutorial::operator==(const Tutorial& other) const {
+  return feature == other.feature && title == other.title &&
+         video_url == other.video_url && share_url == other.share_url &&
+         poster_url == other.poster_url && caption_url == other.caption_url &&
+         video_length == other.video_length;
+}
+
+bool Tutorial::operator!=(const Tutorial& other) const {
+  return !(*this == other);
+}
+
+Tutorial::~Tutorial() = default;
+
+Tutorial::Tutorial(const Tutorial& other) = default;
+
+Tutorial& Tutorial::operator=(const Tutorial& other) = default;
+
+}  // namespace video_tutorials
diff --git a/chrome/browser/video_tutorials/tutorial.h b/chrome/browser/video_tutorials/tutorial.h
new file mode 100644
index 0000000..d43c79b2
--- /dev/null
+++ b/chrome/browser/video_tutorials/tutorial.h
@@ -0,0 +1,67 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_VIDEO_TUTORIALS_TUTORIAL_H_
+#define CHROME_BROWSER_VIDEO_TUTORIALS_TUTORIAL_H_
+
+#include <string>
+#include "url/gurl.h"
+
+namespace video_tutorials {
+
+// Please align this enum with
+// chrome/browser/video_tutorials/proto/video_tutorials.proto.
+enum class FeatureType {
+  kTest = -1,
+  kInvalid = 0,
+  kDebug = 1,
+  kDownload = 2,
+  kSearch = 3,
+  kMaxValue = kSearch,
+};
+
+// In memory struct of a video tutorial entry.
+// Represents the metadata required to play a video tutorial.
+struct Tutorial {
+  Tutorial();
+  Tutorial(FeatureType feature,
+           const std::string& title,
+           const std::string& video_url,
+           const std::string& share_url,
+           const std::string& poster_url,
+           const std::string& caption_url,
+           int video_length);
+  ~Tutorial();
+
+  bool operator==(const Tutorial& other) const;
+  bool operator!=(const Tutorial& other) const;
+
+  Tutorial(const Tutorial& other);
+  Tutorial& operator=(const Tutorial& other);
+
+  // Type of feature where this video tutorial targeted.
+  FeatureType feature{FeatureType::kInvalid};
+
+  // The title of the video.
+  std::string title;
+
+  // The URL of the video.
+  GURL video_url;
+
+  // The URL of the poster image.
+  GURL share_url;
+
+  // The URL of the subtitles.
+  GURL poster_url;
+
+  // The share URL for the video.
+  GURL caption_url;
+
+  // The length of the video in seconds.
+  int video_length;
+};
+
+}  // namespace video_tutorials
+
+#endif  // CHROME_BROWSER_VIDEO_TUTORIALS_TUTORIAL_H_
diff --git a/chrome/browser/video_tutorials/tutorial_unittest.cc b/chrome/browser/video_tutorials/tutorial_unittest.cc
new file mode 100644
index 0000000..c152717
--- /dev/null
+++ b/chrome/browser/video_tutorials/tutorial_unittest.cc
@@ -0,0 +1,56 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/video_tutorials/tutorial.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace video_tutorials {
+namespace {
+
+const char kTestTitle[] = "Test Title";
+const char kTestURL[] = "https://www.example.com";
+
+void ResetTutorialEntry(Tutorial* entry) {
+  *entry = Tutorial(FeatureType::kTest, kTestTitle, kTestURL, kTestURL,
+                    kTestURL, kTestURL, 60);
+}
+
+// Verify the copy/assign and compare operators for Tutorial struct.
+TEST(VideoTutorialsTest, CopyAndCompareOperators) {
+  Tutorial lhs, rhs;
+  ResetTutorialEntry(&lhs);
+  ResetTutorialEntry(&rhs);
+  EXPECT_EQ(lhs, rhs);
+
+  rhs.title = "changed";
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.feature = FeatureType::kDownload;
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.video_url = GURL("changed");
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.share_url = GURL("changed");
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.poster_url = GURL("changed");
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.caption_url = GURL("changed");
+  EXPECT_NE(lhs, rhs);
+  ResetTutorialEntry(&rhs);
+
+  rhs.video_length++;
+  EXPECT_NE(lhs, rhs);
+}
+
+}  // namespace
+}  // namespace video_tutorials
diff --git a/chrome/browser/web_applications/components/install_manager.h b/chrome/browser/web_applications/components/install_manager.h
index 8f8313c..6701606 100644
--- a/chrome/browser/web_applications/components/install_manager.h
+++ b/chrome/browser/web_applications/components/install_manager.h
@@ -91,16 +91,6 @@
       WebAppInstallDialogCallback dialog_callback,
       OnceInstallCallback callback) = 0;
 
-  // Starts a web app installation process using prefilled
-  // |web_application_info| which holds all the data needed for installation.
-  // This doesn't fetch a manifest and doesn't perform all required steps for
-  // External installed apps: use |PendingAppManager::Install| instead.
-  virtual void InstallWebAppFromInfo(
-      std::unique_ptr<WebApplicationInfo> web_application_info,
-      ForInstallableSite for_installable_site,
-      WebappInstallSource install_source,
-      OnceInstallCallback callback) = 0;
-
   // See related ExternalInstallOptions struct and
   // ConvertExternalInstallOptionsToParams function.
   struct InstallParams {
@@ -140,6 +130,23 @@
                                        WebappInstallSource install_source,
                                        OnceInstallCallback callback) = 0;
 
+  // Starts a web app installation process using prefilled
+  // |web_application_info| which holds all the data needed for installation.
+  // This doesn't fetch a manifest and doesn't perform all required steps for
+  // External installed apps: use |PendingAppManager::Install| instead.
+  virtual void InstallWebAppFromInfo(
+      std::unique_ptr<WebApplicationInfo> web_application_info,
+      ForInstallableSite for_installable_site,
+      WebappInstallSource install_source,
+      OnceInstallCallback callback) = 0;
+
+  virtual void InstallWebAppFromInfo(
+      std::unique_ptr<WebApplicationInfo> web_application_info,
+      ForInstallableSite for_installable_site,
+      const base::Optional<InstallParams>& install_params,
+      WebappInstallSource install_source,
+      OnceInstallCallback callback) = 0;
+
   // For backward compatibility with ExtensionSyncService-based system:
   // Starts background installation or an update of a bookmark app from the sync
   // system. |web_application_info| contains received sync data. Icons will be
diff --git a/chrome/browser/web_applications/extensions/install_manager_bookmark_app_unittest.cc b/chrome/browser/web_applications/extensions/install_manager_bookmark_app_unittest.cc
index 7f54adab..c050cc4 100644
--- a/chrome/browser/web_applications/extensions/install_manager_bookmark_app_unittest.cc
+++ b/chrome/browser/web_applications/extensions/install_manager_bookmark_app_unittest.cc
@@ -573,6 +573,8 @@
 TEST_F(InstallManagerBookmarkAppTest, CreateWebAppFromInfo) {
   AddEmptyDataRetriever();
 
+  web_app::InstallManager::InstallParams params;
+
   auto web_app_info = std::make_unique<WebApplicationInfo>();
   web_app_info->app_url = AppUrl();
   web_app_info->title = base::UTF8ToUTF16(kAppTitle);
@@ -586,7 +588,7 @@
   auto* provider = web_app::WebAppProviderBase::GetProviderBase(profile());
 
   provider->install_manager().InstallWebAppFromInfo(
-      std::move(web_app_info), web_app::ForInstallableSite::kYes,
+      std::move(web_app_info), web_app::ForInstallableSite::kYes, params,
       WebappInstallSource::ARC,
       base::BindLambdaForTesting([&](const web_app::AppId& installed_app_id,
                                      web_app::InstallResultCode code) {
diff --git a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
index c7fdafc..473a9ab 100644
--- a/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
+++ b/chrome/browser/web_applications/manifest_update_manager_browsertest.cc
@@ -1147,7 +1147,8 @@
 
   ManifestUpdateManagerSystemAppBrowserTest()
       : system_app_(
-            TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp()) {
+            TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp(
+                false)) {
     system_app_->SetManifest(base::ReplaceStringPlaceholders(
         kSystemAppManifestText, {"#0f0"}, nullptr));
   }
diff --git a/chrome/browser/web_applications/pending_app_install_task.cc b/chrome/browser/web_applications/pending_app_install_task.cc
index eca19b0..d104d50 100644
--- a/chrome/browser/web_applications/pending_app_install_task.cc
+++ b/chrome/browser/web_applications/pending_app_install_task.cc
@@ -15,6 +15,7 @@
 #include "chrome/browser/favicon/favicon_utils.h"
 #include "chrome/browser/installable/installable_manager.h"
 #include "chrome/browser/installable/installable_metrics.h"
+#include "chrome/browser/installable/installable_params.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ssl/security_state_tab_helper.h"
 #include "chrome/browser/web_applications/components/install_finalizer.h"
@@ -125,9 +126,13 @@
 void PendingAppInstallTask::InstallFromInfo(ResultCallback result_callback) {
   auto internal_install_source = ConvertExternalInstallSourceToInstallSource(
       install_options().install_source);
-
+  auto install_params = ConvertExternalInstallOptionsToParams(install_options_);
+  auto web_app_info = install_options_.app_info_factory.Run();
+  for (std::string& search_term : install_params.additional_search_terms) {
+    web_app_info->additional_search_terms.push_back(std::move(search_term));
+  }
   install_manager_->InstallWebAppFromInfo(
-      install_options_.app_info_factory.Run(), ForInstallableSite::kYes,
+      std::move(web_app_info), ForInstallableSite::kYes, install_params,
       internal_install_source,
       base::BindOnce(&PendingAppInstallTask::OnWebAppInstalled,
                      weak_ptr_factory_.GetWeakPtr(), /* is_placeholder=*/false,
diff --git a/chrome/browser/web_applications/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_app_manager.cc
index 72d784c..41323da5 100644
--- a/chrome/browser/web_applications/system_web_app_manager.cc
+++ b/chrome/browser/web_applications/system_web_app_manager.cc
@@ -46,6 +46,7 @@
 #include "base/values.h"
 #include "chrome/browser/chromeos/policy/system_features_disable_list_policy_handler.h"
 #include "chrome/browser/chromeos/web_applications/default_web_app_ids.h"
+#include "chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h"
 #include "chrome/browser/chromeos/web_applications/terminal_source.h"
 #include "chromeos/components/help_app_ui/url_constants.h"
 #include "chromeos/components/media_app_ui/url_constants.h"
@@ -166,6 +167,13 @@
     infos.at(SystemAppType::PRINT_MANAGEMENT).minimum_window_size = {600, 320};
   }
 
+  if (SystemWebAppManager::IsAppEnabled(SystemAppType::SCANNING)) {
+    infos.emplace(SystemAppType::SCANNING,
+                  SystemAppInfo("Scanning", GURL("chrome://scanning"),
+                                base::BindRepeating(
+                                    &CreateWebAppInfoForScanningSystemWebApp)));
+  }
+
 #if !defined(OFFICIAL_BUILD)
   if (SystemWebAppManager::IsAppEnabled(SystemAppType::TELEMETRY)) {
     infos.emplace(SystemAppType::TELEMETRY,
@@ -297,6 +305,8 @@
     case SystemAppType::PRINT_MANAGEMENT:
       return base::FeatureList::IsEnabled(
           chromeos::features::kPrintJobManagementApp);
+    case SystemAppType::SCANNING:
+      return base::FeatureList::IsEnabled(chromeos::features::kScanningUI);
 #if !defined(OFFICIAL_BUILD)
     case SystemAppType::TELEMETRY:
       return base::FeatureList::IsEnabled(
diff --git a/chrome/browser/web_applications/system_web_app_manager.h b/chrome/browser/web_applications/system_web_app_manager.h
index 7e63223..bcce1af 100644
--- a/chrome/browser/web_applications/system_web_app_manager.h
+++ b/chrome/browser/web_applications/system_web_app_manager.h
@@ -54,6 +54,7 @@
   MEDIA,
   HELP,
   PRINT_MANAGEMENT,
+  SCANNING,
 #if !defined(OFFICIAL_BUILD)
   TELEMETRY,
   SAMPLE,
diff --git a/chrome/browser/web_applications/system_web_app_manager_browsertest.cc b/chrome/browser/web_applications/system_web_app_manager_browsertest.cc
index 9c3ce818..d44e9f5 100644
--- a/chrome/browser/web_applications/system_web_app_manager_browsertest.cc
+++ b/chrome/browser/web_applications/system_web_app_manager_browsertest.cc
@@ -170,10 +170,10 @@
     scoped_feature_list_.InitAndDisableFeature(
         features::kDesktopPWAsWithoutExtensions);
   }
-
   if (install_mock) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp();
+        TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp(
+            install_from_web_app_info());
   }
 }
 
@@ -189,13 +189,9 @@
   }
 
   if (install_mock) {
-    if (install_from_web_app_info()) {
-      maybe_installation_ = TestSystemWebAppInstallation::
-          SetUpStandaloneSingleWindowAppFromWebApplicationInfo();
-    } else {
-      maybe_installation_ =
-          TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp();
-    }
+    maybe_installation_ =
+        TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp(
+            install_from_web_app_info());
   }
 }
 
@@ -236,26 +232,37 @@
 #if defined(OS_CHROMEOS)
   apps::AppServiceProxy* proxy =
       apps::AppServiceProxyFactory::GetForProfile(browser()->profile());
-  bool should_show_in_management =
-      install_from_web_app_info() && provider_type() == ProviderType::kWebApps;
   proxy->AppRegistryCache().ForOneApp(
-      app_id, [should_show_in_management](const apps::AppUpdate& update) {
+      app_id, [](const apps::AppUpdate& update) {
         EXPECT_EQ(apps::mojom::OptionalBool::kTrue, update.ShowInLauncher());
         EXPECT_EQ(apps::mojom::OptionalBool::kTrue, update.ShowInSearch());
-        // TODO(https://crbug.com/1085274): We should never show SWAs in
-        // management.
-        if (should_show_in_management) {
-          EXPECT_EQ(apps::mojom::OptionalBool::kTrue,
-                    update.ShowInManagement());
-        } else {
-          EXPECT_EQ(apps::mojom::OptionalBool::kFalse,
-                    update.ShowInManagement());
-        }
+        EXPECT_EQ(apps::mojom::OptionalBool::kFalse, update.ShowInManagement());
         EXPECT_EQ(apps::mojom::Readiness::kReady, update.Readiness());
       });
 #endif  // defined(OS_CHROMEOS)
 }
 
+// We test with and without enabling kDesktopPWAsWithoutExtensions.
+std::string ProviderAndInstallationTypeToString(
+    const ::testing::TestParamInfo<ProviderTypeAndInstallationType>&
+        provider_type) {
+  std::string output;
+  switch (std::get<0>(provider_type.param)) {
+    case ProviderType::kBookmarkApps:
+      output.append("BookmarkApps");
+      break;
+    case ProviderType::kWebApps:
+      output.append("WebApps");
+      break;
+  }
+  if (std::get<1>(provider_type.param) ==
+      InstallationType::kWebAppInfoInstall) {
+    output.append("_WebAppInfoInstall");
+  }
+
+  return output;
+}
+
 // Check the toolbar is not shown for system web apps for pages on the chrome://
 // scheme but is shown off the chrome:// scheme.
 IN_PROC_BROWSER_TEST_P(SystemWebAppManagerWebAppInfoBrowserTest,
@@ -292,7 +299,7 @@
 
 class SystemWebAppManagerFileHandlingBrowserTestBase
     : public SystemWebAppManagerBrowserTestBase,
-      public ::testing::WithParamInterface<web_app::ProviderType> {
+      public ::testing::WithParamInterface<ProviderTypeAndInstallationType> {
  public:
   using IncludeLaunchDirectory =
       TestSystemWebAppInstallation::IncludeLaunchDirectory;
@@ -300,7 +307,7 @@
   explicit SystemWebAppManagerFileHandlingBrowserTestBase(
       IncludeLaunchDirectory include_launch_directory)
       : SystemWebAppManagerBrowserTestBase(/*install_mock=*/false) {
-    web_app::ProviderType provider_type = GetParam();
+    web_app::ProviderType provider_type = std::get<0>(GetParam());
     if (provider_type == ProviderType::kWebApps) {
       scoped_feature_web_app_provider_type_.InitAndEnableFeature(
           features::kDesktopPWAsWithoutExtensions);
@@ -316,7 +323,8 @@
 
     maybe_installation_ =
         TestSystemWebAppInstallation::SetUpAppThatReceivesLaunchFiles(
-            include_launch_directory);
+            include_launch_directory,
+            std::get<1>(GetParam()) == InstallationType::kWebAppInfoInstall);
   }
 
   content::WebContents* LaunchApp(
@@ -854,7 +862,8 @@
     maybe_installation_ =
         TestSystemWebAppInstallation::SetUpAppWithEnabledOriginTrials(
             OriginTrialsMap({{GetOrigin(GURL("chrome://test-system-app/")),
-                              {"NativeFileSystem2", "FileHandling"}}}));
+                              {"NativeFileSystem2", "FileHandling"}}}),
+            install_from_web_app_info());
   }
 
   ~SystemWebAppManagerFileHandlingOriginTrialsBrowserTest() override = default;
@@ -915,7 +924,8 @@
   SystemWebAppManagerNotShownInLauncherTest()
       : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpAppNotShownInLauncher();
+        TestSystemWebAppInstallation::SetUpAppNotShownInLauncher(
+            install_from_web_app_info());
   }
 };
 
@@ -951,7 +961,8 @@
   SystemWebAppManagerNotShownInSearchTest()
       : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpAppNotShownInSearch();
+        TestSystemWebAppInstallation::SetUpAppNotShownInSearch(
+            install_from_web_app_info());
   }
 };
 
@@ -977,7 +988,8 @@
   SystemWebAppManagerAdditionalSearchTermsTest()
       : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms();
+        TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms(
+            install_from_web_app_info());
   }
 };
 
@@ -1008,7 +1020,8 @@
           TestSystemWebAppInstallation::SetUpAppWithEnabledOriginTrials(
               OriginTrialsMap(
                   {{url::Origin::Create(GURL("chrome://test-system-app/")),
-                    {"NativeFileSystem2", "FileHandling"}}}));
+                    {"NativeFileSystem2", "FileHandling"}}}),
+              install_from_web_app_info());
     } else {
       maybe_installation_ = TestSystemWebAppInstallation::SetUpWithoutApps();
     }
@@ -1074,7 +1087,7 @@
   SystemWebAppManagerMigrationTest()
       : SystemWebAppManagerBrowserTestBase(/*install_mock=*/false) {
     maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms();
+        TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms(false);
     maybe_installation_->set_update_policy(
         SystemWebAppManager::UpdatePolicy::kOnVersionChange);
 
@@ -1141,8 +1154,8 @@
  public:
   SystemWebAppManagerChromeUntrustedTest()
       : SystemWebAppManagerBrowserTest(/*install_mock=*/false) {
-    maybe_installation_ =
-        TestSystemWebAppInstallation::SetUpChromeUntrustedApp();
+    maybe_installation_ = TestSystemWebAppInstallation::SetUpChromeUntrustedApp(
+        install_from_web_app_info());
   }
 };
 
@@ -1179,7 +1192,8 @@
     maybe_installation_ =
         TestSystemWebAppInstallation::SetUpAppWithEnabledOriginTrials(
             OriginTrialsMap({{GetOrigin(main_url_), main_url_trials_},
-                             {GetOrigin(trial_url_), trial_url_trials_}}));
+                             {GetOrigin(trial_url_), trial_url_trials_}}),
+            install_from_web_app_info());
   }
 
   ~SystemWebAppManagerOriginTrialsBrowserTest() override = default;
@@ -1439,110 +1453,127 @@
                GetAppIconKey(*settings_id)->icon_effects);
 }
 // This feature will only work when DesktopPWAsWithoutExtensions launches.
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerAppSuspensionBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerAppSuspensionBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
 #endif  // defined(OS_CHROMEOS)
 
-// We test with and without enabling kDesktopPWAsWithoutExtensions.
-std::string ProviderAndInstallationTypeToString(
-    const ::testing::TestParamInfo<ProviderTypeAndInstallationType>&
-        provider_type) {
-  std::string output;
-  switch (std::get<0>(provider_type.param)) {
-    case ProviderType::kBookmarkApps:
-      output.append("BookmarkApps");
-      break;
-    case ProviderType::kWebApps:
-      output.append("WebApps");
-      break;
-  }
-  if (std::get<1>(provider_type.param)) {
-    output.append("_WebAppInfoInstall");
-  }
-
-  return output;
-}
-
 INSTANTIATE_TEST_SUITE_P(
     All,
     SystemWebAppManagerWebAppInfoBrowserTest,
     ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
                                          ProviderType::kWebApps),
-                       ::testing::Bool()),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
     ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerLaunchFilesBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerLaunchFilesBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerLaunchDirectoryBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerLaunchDirectoryBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
 #if defined(OS_CHROMEOS)
 INSTANTIATE_TEST_SUITE_P(
     All,
     SystemWebAppManagerLaunchDirectoryFileSystemProviderBrowserTest,
-    ::testing::Values(ProviderType::kBookmarkApps, ProviderType::kWebApps),
-    ProviderTypeParamToString);
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 #endif
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerNotShownInLauncherTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerNotShownInLauncherTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerNotShownInSearchTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerNotShownInSearchTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerAdditionalSearchTermsTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerAdditionalSearchTermsTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerChromeUntrustedTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerChromeUntrustedTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerOriginTrialsBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerOriginTrialsBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerFileHandlingOriginTrialsBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerFileHandlingOriginTrialsBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerUninstallBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerUninstallBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 
 #if defined(OS_CHROMEOS)
-INSTANTIATE_TEST_SUITE_P(All,
-                         SystemWebAppManagerUpgradeBrowserTest,
-                         ::testing::Values(ProviderType::kBookmarkApps,
-                                           ProviderType::kWebApps),
-                         ProviderTypeParamToString);
+INSTANTIATE_TEST_SUITE_P(
+    All,
+    SystemWebAppManagerUpgradeBrowserTest,
+    ::testing::Combine(::testing::Values(ProviderType::kBookmarkApps,
+                                         ProviderType::kWebApps),
+                       ::testing::Values(InstallationType::kManifestInstall,
+                                         InstallationType::kWebAppInfoInstall)),
+    ProviderAndInstallationTypeToString);
 #endif
 
 }  // namespace web_app
diff --git a/chrome/browser/web_applications/system_web_app_manager_browsertest.h b/chrome/browser/web_applications/system_web_app_manager_browsertest.h
index c3f3462..3c7b5a9 100644
--- a/chrome/browser/web_applications/system_web_app_manager_browsertest.h
+++ b/chrome/browser/web_applications/system_web_app_manager_browsertest.h
@@ -100,21 +100,28 @@
   DISALLOW_COPY_AND_ASSIGN(SystemWebAppManagerBrowserTestBase);
 };
 
+enum class InstallationType { kManifestInstall, kWebAppInfoInstall };
+
+using ProviderTypeAndInstallationType =
+    std::tuple<web_app::ProviderType, InstallationType>;
+
 class SystemWebAppManagerBrowserTest
     : public SystemWebAppManagerBrowserTestBase,
-      public ::testing::WithParamInterface<web_app::ProviderType> {
+      public ::testing::WithParamInterface<ProviderTypeAndInstallationType> {
  public:
   explicit SystemWebAppManagerBrowserTest(bool install_mock = true);
   ~SystemWebAppManagerBrowserTest() override = default;
-
-  web_app::ProviderType provider_type() const { return GetParam(); }
+  web_app::ProviderType provider_type() const {
+    return std::get<0>(GetParam());
+  }
+  bool install_from_web_app_info() const {
+    return std::get<1>(GetParam()) == InstallationType::kWebAppInfoInstall;
+  }
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-using ProviderTypeAndInstallationType = std::tuple<web_app::ProviderType, bool>;
-
 // A class for testing installation directly from a WebApplicationInfo. We can't
 // inherit from BrowserTestBase because we're templating on a different type.
 class SystemWebAppManagerWebAppInfoBrowserTest
@@ -126,12 +133,17 @@
   web_app::ProviderType provider_type() const {
     return std::get<0>(GetParam());
   }
-  bool install_from_web_app_info() const { return std::get<1>(GetParam()); }
+  bool install_from_web_app_info() const {
+    return std::get<1>(GetParam()) == InstallationType::kWebAppInfoInstall;
+  }
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+std::string ProviderAndInstallationTypeToString(
+    const ::testing::TestParamInfo<ProviderTypeAndInstallationType>&
+        provider_type);
 }  // namespace web_app
 
 #endif  // CHROME_BROWSER_WEB_APPLICATIONS_SYSTEM_WEB_APP_MANAGER_BROWSERTEST_H_
diff --git a/chrome/browser/web_applications/test/test_system_web_app_installation.cc b/chrome/browser/web_applications/test/test_system_web_app_installation.cc
index d6a60a9..3e24c0b 100644
--- a/chrome/browser/web_applications/test/test_system_web_app_installation.cc
+++ b/chrome/browser/web_applications/test/test_system_web_app_installation.cc
@@ -6,6 +6,7 @@
 #include <string>
 #include <utility>
 
+#include "base/bind.h"
 #include "base/memory/ptr_util.h"
 #include "base/test/bind_test_util.h"
 #include "chrome/browser/profiles/profile.h"
@@ -116,33 +117,9 @@
     content::WebUIControllerFactory::UnregisterFactoryForTesting(factory.get());
 }
 
-// static
-std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpWithoutApps() {
-  return base::WrapUnique(new TestSystemWebAppInstallation());
-}
-
-// static
-std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp() {
-  SystemAppInfo terminal_system_app_info(
-      "Terminal", GURL("chrome://test-system-app/pwa.html"));
-  terminal_system_app_info.single_window = false;
-  return base::WrapUnique(new TestSystemWebAppInstallation(
-      SystemAppType::TERMINAL, terminal_system_app_info));
-}
-
-// static
-std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp() {
-  return base::WrapUnique(new TestSystemWebAppInstallation(
-      SystemAppType::SETTINGS,
-      SystemAppInfo("OSSettings", GURL("chrome://test-system-app/pwa.html"))));
-}
-
 std::unique_ptr<WebApplicationInfo> GenerateWebApplicationInfoForTestApp() {
   auto info = std::make_unique<WebApplicationInfo>();
-  info->app_url = GURL("chrome://test-system-app/");
+  info->app_url = GURL("chrome://test-system-app/pwa.html");
   info->scope = GURL("chrome://test-system-app/");
   info->title = base::UTF8ToUTF16("Test System App");
   info->theme_color = 0xFF00FF00;
@@ -151,22 +128,65 @@
   return info;
 }
 
+std::unique_ptr<WebApplicationInfo>
+GenerateWebApplicationInfoForTestAppUntrusted() {
+  auto info = GenerateWebApplicationInfoForTestApp();
+  info->app_url = GURL("chrome-untrusted://test-system-app/pwa.html");
+  info->scope = GURL("chrome-untrusted://test-system-app/");
+  return info;
+}
+
 // static
-std::unique_ptr<TestSystemWebAppInstallation> TestSystemWebAppInstallation::
-    SetUpStandaloneSingleWindowAppFromWebApplicationInfo() {
+std::unique_ptr<TestSystemWebAppInstallation>
+TestSystemWebAppInstallation::SetUpWithoutApps() {
+  return base::WrapUnique(new TestSystemWebAppInstallation());
+}
+
+// static
+std::unique_ptr<TestSystemWebAppInstallation>
+TestSystemWebAppInstallation::SetUpTabbedMultiWindowApp(
+    const bool use_web_app_info) {
+  SystemAppInfo terminal_system_app_info(
+      "Terminal", GURL("chrome://test-system-app/pwa.html"));
+  if (use_web_app_info) {
+    terminal_system_app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
+  terminal_system_app_info.single_window = false;
+
   return base::WrapUnique(new TestSystemWebAppInstallation(
-      SystemAppType::SETTINGS,
-      SystemAppInfo(
-          "OSSettings", GURL("chrome://test-system-app/pwa.html"),
-          base::BindRepeating(&GenerateWebApplicationInfoForTestApp))));
+      SystemAppType::TERMINAL, terminal_system_app_info));
+}
+
+// static
+std::unique_ptr<TestSystemWebAppInstallation>
+TestSystemWebAppInstallation::SetUpStandaloneSingleWindowApp(
+    const bool use_web_app_info) {
+  if (use_web_app_info) {
+    return base::WrapUnique(new TestSystemWebAppInstallation(
+        SystemAppType::SETTINGS,
+        SystemAppInfo(
+            "OSSettings", GURL("chrome://test-system-app/pwa.html"),
+            base::BindRepeating(&GenerateWebApplicationInfoForTestApp))));
+  } else {
+    return base::WrapUnique(new TestSystemWebAppInstallation(
+        SystemAppType::SETTINGS,
+        SystemAppInfo("OSSettings",
+                      GURL("chrome://test-system-app/pwa.html"))));
+  }
 }
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
 TestSystemWebAppInstallation::SetUpAppThatReceivesLaunchFiles(
-    IncludeLaunchDirectory include_launch_directory) {
+    IncludeLaunchDirectory include_launch_directory,
+    const bool use_web_app_info) {
   SystemAppInfo media_system_app_info(
       "Media", GURL("chrome://test-system-app/pwa.html"));
+  if (use_web_app_info) {
+    media_system_app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
 
   if (include_launch_directory == IncludeLaunchDirectory::kYes)
     media_system_app_info.include_launch_directory = true;
@@ -186,9 +206,14 @@
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
 TestSystemWebAppInstallation::SetUpAppWithEnabledOriginTrials(
-    const OriginTrialsMap& origin_to_trials) {
+    const OriginTrialsMap& origin_to_trials,
+    const bool use_web_app_info) {
   SystemAppInfo media_system_app_info(
       "Media", GURL("chrome://test-system-app/pwa.html"));
+  if (use_web_app_info) {
+    media_system_app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
   media_system_app_info.enabled_origin_trials = origin_to_trials;
   return base::WrapUnique(new TestSystemWebAppInstallation(
       SystemAppType::MEDIA, media_system_app_info));
@@ -196,35 +221,57 @@
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpAppNotShownInLauncher() {
+TestSystemWebAppInstallation::SetUpAppNotShownInLauncher(
+    const bool use_web_app_info) {
   SystemAppInfo app_info("Test", GURL("chrome://test-system-app/pwa.html"));
   app_info.show_in_launcher = false;
+  if (use_web_app_info) {
+    app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
   return base::WrapUnique(new TestSystemWebAppInstallation(
       SystemAppType::SETTINGS, std::move(app_info)));
 }
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpAppNotShownInSearch() {
+TestSystemWebAppInstallation::SetUpAppNotShownInSearch(
+    const bool use_web_app_info) {
   SystemAppInfo app_info("Test", GURL("chrome://test-system-app/pwa.html"));
   app_info.show_in_search = false;
+  if (use_web_app_info) {
+    app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
   return base::WrapUnique(new TestSystemWebAppInstallation(
       SystemAppType::SETTINGS, std::move(app_info)));
 }
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms() {
+TestSystemWebAppInstallation::SetUpAppWithAdditionalSearchTerms(
+    const bool use_web_app_info) {
   SystemAppInfo app_info("Test", GURL("chrome://test-system-app/pwa.html"));
   app_info.additional_search_terms = {IDS_SETTINGS_SECURITY};
+  if (use_web_app_info) {
+    app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
   return base::WrapUnique(new TestSystemWebAppInstallation(
       SystemAppType::SETTINGS, std::move(app_info)));
 }
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpAppThatCapturesNavigation() {
+TestSystemWebAppInstallation::SetUpAppThatCapturesNavigation(
+    const bool use_web_app_info) {
   SystemAppInfo app_info("Test", GURL("chrome://test-system-web-app/pwa.html"));
+
+  if (use_web_app_info) {
+    app_info.app_info_factory =
+        base::BindRepeating(&GenerateWebApplicationInfoForTestApp);
+  }
+
   app_info.capture_navigations = true;
 
   auto* installation = new TestSystemWebAppInstallation(SystemAppType::HELP,
@@ -245,11 +292,21 @@
 
 // static
 std::unique_ptr<TestSystemWebAppInstallation>
-TestSystemWebAppInstallation::SetUpChromeUntrustedApp() {
-  return base::WrapUnique(new TestSystemWebAppInstallation(
-      SystemAppType::SETTINGS,
-      SystemAppInfo("Test",
-                    GURL("chrome-untrusted://test-system-app/pwa.html"))));
+TestSystemWebAppInstallation::SetUpChromeUntrustedApp(
+    const bool use_web_app_info) {
+  if (use_web_app_info) {
+    return base::WrapUnique(new TestSystemWebAppInstallation(
+        SystemAppType::SETTINGS,
+        SystemAppInfo("Test",
+                      GURL("chrome-untrusted://test-system-app/pwa.html"),
+                      base::BindRepeating(
+                          &GenerateWebApplicationInfoForTestAppUntrusted))));
+  } else {
+    return base::WrapUnique(new TestSystemWebAppInstallation(
+        SystemAppType::SETTINGS,
+        SystemAppInfo("Test",
+                      GURL("chrome-untrusted://test-system-app/pwa.html"))));
+  }
 }
 
 std::unique_ptr<KeyedService>
diff --git a/chrome/browser/web_applications/test/test_system_web_app_installation.h b/chrome/browser/web_applications/test/test_system_web_app_installation.h
index 3ec8629..05945ac 100644
--- a/chrome/browser/web_applications/test/test_system_web_app_installation.h
+++ b/chrome/browser/web_applications/test/test_system_web_app_installation.h
@@ -28,39 +28,38 @@
   static std::unique_ptr<TestSystemWebAppInstallation> SetUpWithoutApps();
 
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpTabbedMultiWindowApp();
+  SetUpTabbedMultiWindowApp(const bool use_web_app_info);
 
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpStandaloneSingleWindowApp();
-
-  static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpStandaloneSingleWindowAppFromWebApplicationInfo();
+  SetUpStandaloneSingleWindowApp(const bool use_web_app_info);
 
   // This method automatically grants Native File System read and write
   // permissions to the App.
   static std::unique_ptr<TestSystemWebAppInstallation>
   SetUpAppThatReceivesLaunchFiles(
-      IncludeLaunchDirectory include_launch_directory);
+      IncludeLaunchDirectory include_launch_directory,
+      const bool use_web_app_info);
 
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpAppWithEnabledOriginTrials(const OriginTrialsMap& origin_to_trials);
+  SetUpAppWithEnabledOriginTrials(const OriginTrialsMap& origin_to_trials,
+                                  const bool use_web_app_info);
 
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpAppNotShownInLauncher();
+  SetUpAppNotShownInLauncher(const bool use_web_app_info);
+
+  static std::unique_ptr<TestSystemWebAppInstallation> SetUpAppNotShownInSearch(
+      const bool use_web_app_info);
 
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpAppNotShownInSearch();
-
-  static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpAppWithAdditionalSearchTerms();
+  SetUpAppWithAdditionalSearchTerms(const bool use_web_app_info);
 
   // This method additionally sets up a helper SystemAppType::SETTING system app
   // for testing capturing links from a different SWA.
   static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpAppThatCapturesNavigation();
+  SetUpAppThatCapturesNavigation(const bool use_web_app_info);
 
-  static std::unique_ptr<TestSystemWebAppInstallation>
-  SetUpChromeUntrustedApp();
+  static std::unique_ptr<TestSystemWebAppInstallation> SetUpChromeUntrustedApp(
+      const bool use_web_app_info);
 
   ~TestSystemWebAppInstallation();
 
diff --git a/chrome/browser/web_applications/web_app_install_manager.cc b/chrome/browser/web_applications/web_app_install_manager.cc
index 80c9ab1f7..857798ff 100644
--- a/chrome/browser/web_applications/web_app_install_manager.cc
+++ b/chrome/browser/web_applications/web_app_install_manager.cc
@@ -4,6 +4,7 @@
 
 #include <utility>
 
+#include "base/optional.h"
 #include "chrome/browser/web_applications/web_app_install_manager.h"
 
 #include "base/bind.h"
@@ -145,11 +146,24 @@
     ForInstallableSite for_installable_site,
     WebappInstallSource install_source,
     OnceInstallCallback callback) {
+  InstallWebAppFromInfo(std::move(web_application_info), for_installable_site,
+                        base::nullopt, install_source, std::move(callback));
+}
+
+void WebAppInstallManager::InstallWebAppFromInfo(
+    std::unique_ptr<WebApplicationInfo> web_application_info,
+    ForInstallableSite for_installable_site,
+    const base::Optional<InstallParams>& install_params,
+    WebappInstallSource install_source,
+    OnceInstallCallback callback) {
   DCHECK(started_);
 
   auto task = std::make_unique<WebAppInstallTask>(
       profile(), os_integration_manager(), finalizer(),
       data_retriever_factory_.Run());
+  if (install_params) {
+    task->SetInstallParams(install_params.value());
+  }
   task->InstallWebAppFromInfo(
       std::move(web_application_info), for_installable_site, install_source,
       base::BindOnce(&WebAppInstallManager::OnInstallTaskCompleted,
diff --git a/chrome/browser/web_applications/web_app_install_manager.h b/chrome/browser/web_applications/web_app_install_manager.h
index ea5c523..2e35a476 100644
--- a/chrome/browser/web_applications/web_app_install_manager.h
+++ b/chrome/browser/web_applications/web_app_install_manager.h
@@ -56,11 +56,19 @@
       WebappInstallSource install_source,
       WebAppInstallDialogCallback dialog_callback,
       OnceInstallCallback callback) override;
+
   void InstallWebAppFromInfo(
       std::unique_ptr<WebApplicationInfo> web_application_info,
       ForInstallableSite for_installable_site,
       WebappInstallSource install_source,
       OnceInstallCallback callback) override;
+
+  void InstallWebAppFromInfo(
+      std::unique_ptr<WebApplicationInfo> web_application_info,
+      ForInstallableSite for_installable_site,
+      const base::Optional<InstallParams>& install_params,
+      WebappInstallSource install_source,
+      OnceInstallCallback callback) override;
   void InstallWebAppWithParams(content::WebContents* web_contents,
                                const InstallParams& install_params,
                                WebappInstallSource install_source,
diff --git a/chrome/browser/web_applications/web_app_install_task.cc b/chrome/browser/web_applications/web_app_install_task.cc
index 3a01752a..a6518de 100644
--- a/chrome/browser/web_applications/web_app_install_task.cc
+++ b/chrome/browser/web_applications/web_app_install_task.cc
@@ -205,7 +205,15 @@
   InstallFinalizer::FinalizeOptions options;
   options.install_source = install_source;
   options.locally_installed = true;
-
+  if (IsChromeOs() && install_params_) {
+    options.chromeos_data.emplace();
+    options.chromeos_data->show_in_launcher =
+        install_params_->add_to_applications_menu;
+    options.chromeos_data->show_in_search = install_params_->add_to_search;
+    options.chromeos_data->show_in_management =
+        install_params_->add_to_management;
+    options.chromeos_data->is_disabled = install_params_->is_disabled;
+  }
   install_finalizer_->FinalizeInstall(*web_application_info, options,
                                       std::move(callback));
 }
diff --git a/chrome/browser/web_applications/web_app_install_task_unittest.cc b/chrome/browser/web_applications/web_app_install_task_unittest.cc
index 20d772e..d892915 100644
--- a/chrome/browser/web_applications/web_app_install_task_unittest.cc
+++ b/chrome/browser/web_applications/web_app_install_task_unittest.cc
@@ -876,17 +876,17 @@
   install_task_->InstallWebAppFromInfo(
       std::move(web_app_info), ForInstallableSite::kYes,
       WebappInstallSource::MENU_BROWSER_TAB,
-      base::BindLambdaForTesting([&](const AppId& installed_app_id,
-                                     InstallResultCode code) {
-        EXPECT_EQ(InstallResultCode::kSuccessNewInstall, code);
-        EXPECT_EQ(app_id, installed_app_id);
+      base::BindLambdaForTesting(
+          [&](const AppId& installed_app_id, InstallResultCode code) {
+            EXPECT_EQ(InstallResultCode::kSuccessNewInstall, code);
+            EXPECT_EQ(app_id, installed_app_id);
 
-        std::unique_ptr<WebApplicationInfo> final_web_app_info =
-            test_install_finalizer().web_app_info();
-        EXPECT_TRUE(final_web_app_info->open_as_window);
+            std::unique_ptr<WebApplicationInfo> final_web_app_info =
+                test_install_finalizer().web_app_info();
+            EXPECT_TRUE(final_web_app_info->open_as_window);
 
-        run_loop.Quit();
-      }));
+            run_loop.Quit();
+          }));
 
   run_loop.Run();
 }
@@ -908,26 +908,26 @@
   install_task_->InstallWebAppFromInfo(
       std::move(web_app_info), ForInstallableSite::kYes,
       WebappInstallSource::ARC,
-      base::BindLambdaForTesting(
-          [&](const AppId& installed_app_id, InstallResultCode code) {
-            std::unique_ptr<WebApplicationInfo> final_web_app_info =
-                test_install_finalizer().web_app_info();
+      base::BindLambdaForTesting([&](const AppId& installed_app_id,
+                                     InstallResultCode code) {
+        std::unique_ptr<WebApplicationInfo> final_web_app_info =
+            test_install_finalizer().web_app_info();
 
-            // Make sure that icons have been generated for all sub sizes.
-            EXPECT_TRUE(ContainsOneIconOfEachSize(
-                final_web_app_info->icon_bitmaps_any));
+        // Make sure that icons have been generated for all sub sizes.
+        EXPECT_TRUE(
+            ContainsOneIconOfEachSize(final_web_app_info->icon_bitmaps_any));
 
-            // Make sure they're all derived from the yellow icon.
-            for (const std::pair<const SquareSizePx, SkBitmap>& icon :
-                 final_web_app_info->icon_bitmaps_any) {
-              EXPECT_FALSE(icon.second.drawsNothing());
-              EXPECT_EQ(SK_ColorYELLOW, icon.second.getColor(0, 0));
-            }
+        // Make sure they're all derived from the yellow icon.
+        for (const std::pair<const SquareSizePx, SkBitmap>& icon :
+             final_web_app_info->icon_bitmaps_any) {
+          EXPECT_FALSE(icon.second.drawsNothing());
+          EXPECT_EQ(SK_ColorYELLOW, icon.second.getColor(0, 0));
+        }
 
-            EXPECT_FALSE(final_web_app_info->open_as_window);
+        EXPECT_FALSE(final_web_app_info->open_as_window);
 
-            run_loop.Quit();
-          }));
+        run_loop.Quit();
+      }));
 
   run_loop.Run();
 }
@@ -944,24 +944,24 @@
       web_contents(), /*force_shortcut_app=*/true,
       WebappInstallSource::MENU_BROWSER_TAB,
       base::BindOnce(TestAcceptDialogCallback),
-      base::BindLambdaForTesting(
-          [&](const AppId& installed_app_id, InstallResultCode code) {
-            EXPECT_EQ(InstallResultCode::kSuccessNewInstall, code);
+      base::BindLambdaForTesting([&](const AppId& installed_app_id,
+                                     InstallResultCode code) {
+        EXPECT_EQ(InstallResultCode::kSuccessNewInstall, code);
 
-            std::unique_ptr<WebApplicationInfo> final_web_app_info =
-                test_install_finalizer().web_app_info();
-            // Make sure that icons have been generated for all sub sizes.
-            EXPECT_TRUE(ContainsOneIconOfEachSize(
-                final_web_app_info->icon_bitmaps_any));
-            for (const std::pair<const SquareSizePx, SkBitmap>& icon :
-                 final_web_app_info->icon_bitmaps_any) {
-              EXPECT_FALSE(icon.second.drawsNothing());
-            }
+        std::unique_ptr<WebApplicationInfo> final_web_app_info =
+            test_install_finalizer().web_app_info();
+        // Make sure that icons have been generated for all sub sizes.
+        EXPECT_TRUE(
+            ContainsOneIconOfEachSize(final_web_app_info->icon_bitmaps_any));
+        for (const std::pair<const SquareSizePx, SkBitmap>& icon :
+             final_web_app_info->icon_bitmaps_any) {
+          EXPECT_FALSE(icon.second.drawsNothing());
+        }
 
-            EXPECT_TRUE(final_web_app_info->icon_infos.empty());
+        EXPECT_TRUE(final_web_app_info->icon_infos.empty());
 
-            run_loop.Quit();
-          }));
+        run_loop.Quit();
+      }));
 
   run_loop.Run();
 }
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 0da1d99c..60822dd 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-master-1597405958-c5a8fe7086bb1f6a4ff7abcf1204e717b88da2c5.profdata
+chrome-mac-master-1597426673-550b761d47e655299dbb3d5b54525f083ab2d05d.profdata
diff --git a/chrome/common/extensions/api/identity.idl b/chrome/common/extensions/api/identity.idl
index aa31229..66b823f 100644
--- a/chrome/common/extensions/api/identity.idl
+++ b/chrome/common/extensions/api/identity.idl
@@ -85,7 +85,7 @@
   };
 
   callback GetAuthTokenCallback = void (optional DOMString token,
-                                        optional DOMString[] scopes);
+                                        optional DOMString[] grantedScopes);
   callback GetAccountsCallback = void (AccountInfo[] accounts);
   callback GetProfileUserInfoCallback = void (ProfileUserInfo userInfo);
   callback InvalidateAuthTokenCallback = void ();
@@ -116,9 +116,11 @@
     //
     // |details| : Token options.
     // |callback| : Called with an OAuth2 access token as specified by the
-    // manifest, or undefined if there was an error. The <code>scopes</code>
-    // parameter is not yet available. It will be populated in future versions
-    // of Chrome.
+    // manifest, or undefined if there was an error. The
+    // <code>grantedScopes</code> parameter is not yet available and will be
+    // populated in future versions of Chrome. When available, this parameter
+    // will contain the list of granted scopes corresponding with the returned
+    // token.
     static void getAuthToken(optional TokenDetails details,
                              optional GetAuthTokenCallback callback);
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 3a70779..4eba90e 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1013,6 +1013,7 @@
       "../browser/metrics/variations/force_field_trials_browsertest.cc",
       "../browser/navigation_predictor/navigation_predictor_browsertest.cc",
       "../browser/navigation_predictor/navigation_predictor_preconnect_client_browsertest.cc",
+      "../browser/navigation_predictor/navigation_predictor_renderer_warmup_client_browsertest.cc",
       "../browser/navigation_predictor/search_engine_preconnector_browsertest.cc",
       "../browser/net/cert_verify_proc_browsertest.cc",
       "../browser/net/chrome_accept_header_browsertest.cc",
@@ -2497,6 +2498,7 @@
         "../browser/chromeos/web_applications/help_app_integration_browsertest.cc",
         "../browser/chromeos/web_applications/media_app_integration_browsertest.cc",
         "../browser/chromeos/web_applications/print_management_app_integration_browsertest.cc",
+        "../browser/chromeos/web_applications/scanning_app_integration_browsertest.cc",
         "../browser/chromeos/web_applications/settings_app_integration_browsertest.cc",
         "../browser/chromeos/web_applications/system_web_app_integration_test.cc",
         "../browser/chromeos/web_applications/system_web_app_integration_test.h",
@@ -3301,6 +3303,7 @@
     "../browser/metrics/thread_watcher_unittest.cc",
     "../browser/native_file_system/chrome_native_file_system_permission_context_unittest.cc",
     "../browser/native_file_system/origin_scoped_native_file_system_permission_context_unittest.cc",
+    "../browser/navigation_predictor/navigation_predictor_renderer_warmup_client_unittest.cc",
     "../browser/navigation_predictor/navigation_predictor_unittest.cc",
     "../browser/net/chrome_network_delegate_unittest.cc",
     "../browser/net/dns_probe_runner_unittest.cc",
@@ -3859,6 +3862,7 @@
     "//chrome/browser/payments:unittests",
     "//chrome/browser/privacy_budget:unit_tests",
     "//chrome/browser/updates/announcement_notification:unit_tests",
+    "//chrome/browser/video_tutorials:unit_tests",
     "//chrome/common:test_support",
     "//chrome/common/media_router:test_support",
     "//chrome/common/privacy_budget:unit_tests",
@@ -5521,6 +5525,7 @@
   if (!is_android && !is_chromeos) {
     sources += [
       "../browser/device_identity/device_oauth2_token_store_desktop_unittest.cc",
+      "../browser/enterprise/remote_commands/clear_browsing_data_job_unittest.cc",
       "../browser/media/webrtc/native_desktop_media_list_unittest.cc",
       "../browser/metrics/upgrade_metrics_provider_unittest.cc",
       "../browser/policy/chrome_browser_cloud_management_register_watcher_unittest.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
index 2fa2e18b..073546f 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
@@ -26,7 +26,6 @@
 import org.chromium.base.ActivityState;
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.ApplicationStatus.ActivityStateListener;
-import org.chromium.base.CommandLine;
 import org.chromium.base.Log;
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.chrome.R;
@@ -60,7 +59,6 @@
 import org.chromium.content_public.browser.test.util.CriteriaHelper;
 import org.chromium.content_public.browser.test.util.JavaScriptUtils;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
-import org.chromium.content_public.common.ContentSwitches;
 import org.chromium.net.test.EmbeddedTestServer;
 import org.chromium.net.test.EmbeddedTestServerRule;
 import org.chromium.ui.KeyboardVisibilityDelegate;
@@ -122,13 +120,6 @@
                 // Disable offline indicator UI to prevent it from popping up to obstruct other UI
                 // views that may make tests flaky.
                 Features.getInstance().disable(ChromeFeatureList.OFFLINE_INDICATOR);
-                // Tests are run on bots that are offline by default. This might cause offline UI
-                // to show and cause flakiness or failures in tests. Using this switch will prevent
-                // that.
-                // TODO(crbug.com/1093085): Remove this once we disable the offline indicator for
-                // specific tests.
-                CommandLine.getInstance().appendSwitch(
-                        ContentSwitches.FORCE_ONLINE_CONNECTION_STATE_FOR_INDICATOR);
 
                 try {
                     base.evaluate();
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java
index 4fa03a8..01c3182 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModel.java
@@ -11,6 +11,8 @@
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.tab.TabSelectionType;
 import org.chromium.chrome.browser.tabmodel.EmptyTabModel;
+import org.chromium.chrome.browser.tabmodel.IncognitoTabModel;
+import org.chromium.chrome.browser.tabmodel.IncognitoTabModelObserver;
 import org.chromium.chrome.browser.tabmodel.TabModel;
 import org.chromium.chrome.browser.tabmodel.TabModelObserver;
 
@@ -19,7 +21,7 @@
 /**
  * Almost empty implementation to mock a TabModel. It only handles tab creation and queries.
  */
-public class MockTabModel extends EmptyTabModel {
+public class MockTabModel extends EmptyTabModel implements IncognitoTabModel {
     /**
      * Used to create different kinds of Tabs.  If a MockTabModelDelegate is not provided, regular
      * Tabs are produced.
@@ -114,4 +116,10 @@
     public void removeObserver(TabModelObserver observer) {
         mObservers.removeObserver(observer);
     }
+
+    @Override
+    public void addIncognitoObserver(IncognitoTabModelObserver observer) {}
+
+    @Override
+    public void removeIncognitoObserver(IncognitoTabModelObserver observer) {}
 }
diff --git a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js
index 8a834d20c..9aa2998 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js
+++ b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_browsertest.js
@@ -41,15 +41,15 @@
   ['NetworkConfigElementBehavior', 'network_config_element_behavior_test.js',
     []
   ],
-].forEach(test => registerTest(...test));
+].forEach(test => registerTest('Network', 'internet-config-dialog', ...test));
 // clang-format on
 
-function registerTest(testName, module, deps) {
-  const className = `CrComponents${testName}Test`;
+function registerTest(componentName, webuiHost, testName, module, deps) {
+  const className = `${componentName}${testName}Test`;
   this[className] = class extends PolymerTest {
     /** @override */
     get browsePreload() {
-      return `chrome://internet-config-dialog/test_loader.html?module=cr_components/chromeos/${module}`;
+      return `chrome://${webuiHost}/test_loader.html?module=cr_components/chromeos/${module}`;
     }
 
     /** @override */
diff --git a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
index 29abffd..79db130 100644
--- a/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
+++ b/chrome/test/data/webui/cr_components/chromeos/cr_components_chromeos_v3_browsertest.js
@@ -12,11 +12,11 @@
 [['CrPolicyNetworkBehaviorMojo', 'cr_policy_network_behavior_mojo_tests.m.js'],
  ['CrPolicyNetworkIndicatorMojo', 'cr_policy_network_indicator_mojo_tests.m.js'],
  ['NetworkConfigElementBehavior', 'network_config_element_behavior_test.m.js'],
-].forEach(test => registerTest(...test));
+].forEach(test => registerTest('Network', ...test));
 // clang-format on
 
-function registerTest(testName, module, caseName) {
-  const className = `CrComponents${testName}TestV3`;
+function registerTest(componentName, testName, module, caseName) {
+  const className = `${componentName}${testName}TestV3`;
   this[className] = class extends PolymerTest {
     /** @override */
     get browsePreload() {
diff --git a/chrome/test/data/webui/new_tab_page/app_test.js b/chrome/test/data/webui/new_tab_page/app_test.js
index 4c096f5..e3efe75 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.js
+++ b/chrome/test/data/webui/new_tab_page/app_test.js
@@ -162,7 +162,7 @@
     // Assert.
     assertTrue(!!app.shadowRoot.querySelector('ntp-voice-search-overlay'));
     assertEquals(
-        newTabPage.mojom.VoiceSearchAction.ACTIVATE_SEARCH_BOX,
+        newTabPage.mojom.VoiceSearchAction.kActivateSearchBox,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
   });
 
@@ -179,7 +179,7 @@
     // Assert.
     assertTrue(!!app.shadowRoot.querySelector('ntp-voice-search-overlay'));
     assertEquals(
-        newTabPage.mojom.VoiceSearchAction.ACTIVATE_KEYBOARD,
+        newTabPage.mojom.VoiceSearchAction.kActivateKeyboard,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
 
     // Test other shortcut doesn't close voice search.
@@ -243,7 +243,7 @@
     test(`setting non-default theme ${allows} doodle`, async function() {
       // Arrange.
       const theme = createTheme();
-      theme.type = newTabPage.mojom.ThemeType.CHROME;
+      theme.type = newTabPage.mojom.ThemeType.kChrome;
 
       // Act.
       testProxy.callbackRouterRemote.setTheme(theme);
diff --git a/chrome/test/data/webui/new_tab_page/customize_themes_test.js b/chrome/test/data/webui/new_tab_page/customize_themes_test.js
index 75acce4..bc4f850 100644
--- a/chrome/test/data/webui/new_tab_page/customize_themes_test.js
+++ b/chrome/test/data/webui/new_tab_page/customize_themes_test.js
@@ -113,7 +113,7 @@
 
     // Act.
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.AUTOGENERATED,
+      type: newTabPage.mojom.ThemeType.kAutogenerated,
       info: {
         autogeneratedThemeColors: {
           frame: {value: 0xffff0000},
@@ -144,7 +144,7 @@
 
     // Act.
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.DEFAULT,
+      type: newTabPage.mojom.ThemeType.kDefault,
       info: {chromeThemeId: 0},
       backgroundColor: {value: 0xffff0000},
       shortcutBackgroundColor: {value: 0xff00ff00},
@@ -175,7 +175,7 @@
 
     // Act.
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.CHROME,
+      type: newTabPage.mojom.ThemeType.kChrome,
       info: {chromeThemeId: 0},
       backgroundColor: {value: 0xffff0000},
       shortcutBackgroundColor: {value: 0xff00ff00},
@@ -196,7 +196,7 @@
 
     // Act.
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.THIRD_PARTY,
+      type: newTabPage.mojom.ThemeType.kThirdParty,
       info: {
         thirdPartyThemeInfo: {
           id: 'foo',
@@ -219,7 +219,7 @@
     // Arrange.
     const customizeThemes = createCustomizeThemes();
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.THIRD_PARTY,
+      type: newTabPage.mojom.ThemeType.kThirdParty,
       info: {
         thirdPartyThemeInfo: {
           id: 'foo',
@@ -246,7 +246,7 @@
 
     // Act.
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.DEFAULT,
+      type: newTabPage.mojom.ThemeType.kDefault,
       info: {chromeThemeId: 0},
       backgroundColor: {value: 0xffff0000},
       shortcutBackgroundColor: {value: 0xff00ff00},
@@ -262,7 +262,7 @@
     // Arrange.
     const customizeThemes = createCustomizeThemes();
     customizeThemes.theme = {
-      type: newTabPage.mojom.ThemeType.THIRD_PARTY,
+      type: newTabPage.mojom.ThemeType.kThirdParty,
       info: {
         thirdPartyThemeInfo: {
           id: 'foo',
diff --git a/chrome/test/data/webui/new_tab_page/logo_test.js b/chrome/test/data/webui/new_tab_page/logo_test.js
index 19eb8ddb..78051f6 100644
--- a/chrome/test/data/webui/new_tab_page/logo_test.js
+++ b/chrome/test/data/webui/new_tab_page/logo_test.js
@@ -642,7 +642,7 @@
       // Assert (load).
       const [type, _, logUrl] =
           await testProxy.handler.whenCalled('onDoodleImageRendered');
-      assertEquals(newTabPage.mojom.DoodleImageType.STATIC, type);
+      assertEquals(newTabPage.mojom.DoodleImageType.kStatic, type);
       assertEquals(imageDoodle.imageImpressionLogUrl.url, logUrl.url);
 
       // Act (click).
@@ -652,7 +652,7 @@
       const [type2] =
           await testProxy.handler.whenCalled('onDoodleImageClicked');
       const onClickUrl = await testProxy.whenCalled('open');
-      assertEquals(newTabPage.mojom.DoodleImageType.STATIC, type2);
+      assertEquals(newTabPage.mojom.DoodleImageType.kStatic, type2);
       assertEquals(
           'https://click.com/?ct=supi&foo=bar&hello=world', onClickUrl);
 
@@ -661,12 +661,13 @@
       await flushTasks();
       $$(logo, 'ntp-doodle-share-dialog')
           .dispatchEvent(new CustomEvent(
-              'share', {detail: newTabPage.mojom.DoodleShareChannel.FACEBOOK}));
+              'share',
+              {detail: newTabPage.mojom.DoodleShareChannel.kFacebook}));
 
       // Assert (share).
       const [channel, doodleId, shareId] =
           await testProxy.handler.whenCalled('onDoodleShared');
-      assertEquals(newTabPage.mojom.DoodleShareChannel.FACEBOOK, channel);
+      assertEquals(newTabPage.mojom.DoodleShareChannel.kFacebook, channel);
       assertEquals('supi', doodleId);
       assertEquals('123', shareId);
     });
@@ -702,7 +703,7 @@
       // Assert (CTA load).
       const [type, _, logUrl] =
           await testProxy.handler.whenCalled('onDoodleImageRendered');
-      assertEquals(newTabPage.mojom.DoodleImageType.CTA, type);
+      assertEquals(newTabPage.mojom.DoodleImageType.kCta, type);
       assertEquals(imageDoodle.imageImpressionLogUrl.url, logUrl.url);
 
       // Act (CTA click).
@@ -717,13 +718,13 @@
       // Assert (CTA click).
       const [type2, interactionLogUrl] =
           await testProxy.handler.whenCalled('onDoodleImageClicked');
-      assertEquals(newTabPage.mojom.DoodleImageType.CTA, type2);
+      assertEquals(newTabPage.mojom.DoodleImageType.kCta, type2);
       assertEquals('https://interaction.com', interactionLogUrl.url);
 
       // Assert (animation load). Also triggered by clicking #image.
       const [type3, __, logUrl2] =
           await testProxy.handler.whenCalled('onDoodleImageRendered');
-      assertEquals(newTabPage.mojom.DoodleImageType.ANIMATION, type3);
+      assertEquals(newTabPage.mojom.DoodleImageType.kAnimation, type3);
       assertEquals(imageDoodle.animationImpressionLogUrl.url, logUrl2.url);
 
       // Act (animation click).
@@ -734,7 +735,7 @@
       const [type4, ___] =
           await testProxy.handler.whenCalled('onDoodleImageClicked');
       const onClickUrl = await testProxy.whenCalled('open');
-      assertEquals(newTabPage.mojom.DoodleImageType.ANIMATION, type4);
+      assertEquals(newTabPage.mojom.DoodleImageType.kAnimation, type4);
       assertEquals(
           'https://click.com/?ct=supi&foo=bar&hello=world', onClickUrl);
 
@@ -743,12 +744,12 @@
       await flushTasks();
       $$(logo, 'ntp-doodle-share-dialog')
           .dispatchEvent(new CustomEvent(
-              'share', {detail: newTabPage.mojom.DoodleShareChannel.TWITTER}));
+              'share', {detail: newTabPage.mojom.DoodleShareChannel.kTwitter}));
 
       // Assert (share).
       const [channel, doodleId, shareId] =
           await testProxy.handler.whenCalled('onDoodleShared');
-      assertEquals(newTabPage.mojom.DoodleShareChannel.TWITTER, channel);
+      assertEquals(newTabPage.mojom.DoodleShareChannel.kTwitter, channel);
       assertEquals('supi', doodleId);
       assertEquals('123', shareId);
     });
diff --git a/chrome/test/data/webui/new_tab_page/test_support.js b/chrome/test/data/webui/new_tab_page/test_support.js
index d971555..365c403 100644
--- a/chrome/test/data/webui/new_tab_page/test_support.js
+++ b/chrome/test/data/webui/new_tab_page/test_support.js
@@ -82,7 +82,7 @@
     text: {value: 0xff00000d},
   };
   return {
-    type: newTabPage.mojom.ThemeType.DEFAULT,
+    type: newTabPage.mojom.ThemeType.kDefault,
     info: {chromeThemeId: 0},
     backgroundColor: {value: 0xffff0000},
     shortcutBackgroundColor: {value: 0xff00ff00},
diff --git a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
index 4879789..54b13096 100644
--- a/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
+++ b/chrome/test/data/webui/new_tab_page/voice_search_overlay_test.js
@@ -162,23 +162,23 @@
         voiceSearchOverlay.$.micContainer.classList.contains('receiving'));
     assertStyle(voiceSearchOverlay.$.micVolume, '--mic-volume-level', '0');
     assertEquals(
-        Action.QUERY_SUBMITTED,
+        Action.kQuerySubmitted,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
   });
 
-  [['no-speech', 'no-speech', 'learn-more', Error.NO_SPEECH],
-   ['audio-capture', 'audio-capture', 'learn-more', Error.AUDIO_CAPTURE],
-   ['network', 'network', 'none', Error.NETWORK],
-   ['not-allowed', 'not-allowed', 'details', Error.NOT_ALLOWED],
-   ['service-not-allowed', 'not-allowed', 'details', Error.SERVICE_NOT_ALLOWED],
+  [['no-speech', 'no-speech', 'learn-more', Error.kNoSpeech],
+   ['audio-capture', 'audio-capture', 'learn-more', Error.kAudioCapture],
+   ['network', 'network', 'none', Error.kNetwork],
+   ['not-allowed', 'not-allowed', 'details', Error.kNotAllowed],
+   ['service-not-allowed', 'not-allowed', 'details', Error.kServiceNotAllowed],
    [
      'language-not-supported', 'language-not-supported', 'none',
-     Error.LANGUAGE_NOT_SUPPORTED
+     Error.kLanguageNotSupported
    ],
-   ['aborted', 'other', 'none', Error.ABORTED],
-   ['bad-grammar', 'other', 'none', Error.BAD_GRAMMAR],
-   ['foo', 'other', 'none', Error.OTHER],
-   ['no-match', 'no-match', 'try-again', Error.NO_MATCH],
+   ['aborted', 'other', 'none', Error.kAborted],
+   ['bad-grammar', 'other', 'none', Error.kBadGrammar],
+   ['foo', 'other', 'none', Error.kOther],
+   ['no-match', 'no-match', 'try-again', Error.kNoMatch],
   ].forEach(([error, text, link, logError]) => {
     test(`on '${error}' received shows error text`, async () => {
       // Act.
@@ -308,8 +308,8 @@
     assertTrue(mockSpeechRecognition.abortCalled);
   });
 
-  [['#retryLink', Action.TRY_AGAIN_LINK],
-   ['#micButton', Action.TRY_AGAIN_MIC_BUTTON],
+  [['#retryLink', Action.kTryAgainLink],
+   ['#micButton', Action.kTryAgainMicButton],
   ].forEach(([id, action]) => {
     test(`clicking '${id}' starts voice search if in retry state`, async () => {
       // Arrange.
@@ -375,7 +375,7 @@
     // Assert.
     assertFalse(voiceSearchOverlay.$.dialog.open);
     assertEquals(
-        Action.CLOSE_OVERLAY,
+        Action.kCloseOverlay,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
   });
 
@@ -386,7 +386,7 @@
     // Assert.
     assertFalse(voiceSearchOverlay.$.dialog.open);
     assertEquals(
-        Action.CLOSE_OVERLAY,
+        Action.kCloseOverlay,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
   });
 
@@ -402,7 +402,7 @@
 
     // Assert.
     assertEquals(
-        Action.SUPPORT_LINK_CLICKED,
+        Action.kSupportLinkClicked,
         await testProxy.handler.whenCalled('onVoiceSearchAction'));
   });
 });
diff --git a/chrome/test/data/webui/settings/chromeos/input_page_test.js b/chrome/test/data/webui/settings/chromeos/input_page_test.js
index 181bd89..4ddbcc0 100644
--- a/chrome/test/data/webui/settings/chromeos/input_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/input_page_test.js
@@ -3,11 +3,15 @@
 // found in the LICENSE file.
 
 // clang-format off
-// #import {LanguagesMetricsProxy, LanguagesMetricsProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
-// #import {CrSettingsPrefs} from 'chrome://os-settings/chromeos/os_settings.js';
+// #import {LanguagesBrowserProxyImpl, LanguagesMetricsProxyImpl} from 'chrome://os-settings/chromeos/lazy_load.js';
+// #import {CrSettingsPrefs, Router} from 'chrome://os-settings/chromeos/os_settings.js';
 // #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+// #import {getFakeLanguagePrefs} from '../fake_language_settings_private.m.js'
+// #import {FakeSettingsPrivate} from '../fake_settings_private.m.js';
+// #import {TestLanguagesBrowserProxy} from './test_os_languages_browser_proxy.m.js';
 // #import {TestLanguagesMetricsProxy} from './test_os_languages_metrics_proxy.m.js';
-// #import {assertFalse, assertTrue} from '../../chai_assert.js';
+// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
+// #import {fakeDataBind} from '../../test_util.m.js';
 // clang-format on
 
 suite('input page', () => {
@@ -16,22 +20,84 @@
   /** @type {!settings.LanguagesMetricsProxy} */
   let metricsProxy;
 
+  suiteSetup(() => {
+    CrSettingsPrefs.deferInitialization = true;
+    loadTimeData.overrideValues({imeOptionsInSettings: true});
+  });
+
   setup(() => {
     document.body.innerHTML = '';
     const prefElement = document.createElement('settings-prefs');
+    const settingsPrivate =
+        new settings.FakeSettingsPrivate(settings.getFakeLanguagePrefs());
+    prefElement.initialize(settingsPrivate);
     document.body.appendChild(prefElement);
 
     return CrSettingsPrefs.initialized.then(() => {
+      // Set up test browser proxy.
+      const browserProxy = new settings.TestLanguagesBrowserProxy();
+      settings.LanguagesBrowserProxyImpl.instance_ = browserProxy;
+
       // Sets up test metrics proxy.
       metricsProxy = new settings.TestLanguagesMetricsProxy();
       settings.LanguagesMetricsProxyImpl.instance_ = metricsProxy;
 
+      // Set up fake languageSettingsPrivate API.
+      const languageSettingsPrivate = browserProxy.getLanguageSettingsPrivate();
+      languageSettingsPrivate.setSettingsPrefs(prefElement);
+
+      // Instantiate the data model with data bindings for prefs.
+      const settingsLanguages = document.createElement('settings-languages');
+      settingsLanguages.prefs = prefElement.prefs;
+      test_util.fakeDataBind(prefElement, settingsLanguages, 'prefs');
+      document.body.appendChild(settingsLanguages);
+
+      // Create page with data bindings for prefs and data model.
       inputPage = document.createElement('os-settings-input-page');
       inputPage.prefs = prefElement.prefs;
+      test_util.fakeDataBind(prefElement, inputPage, 'prefs');
+      inputPage.languages = settingsLanguages.languages;
+      test_util.fakeDataBind(settingsLanguages, inputPage, 'languages');
+      inputPage.languageHelper = settingsLanguages.languageHelper;
+      test_util.fakeDataBind(settingsLanguages, inputPage, 'language-helper');
       document.body.appendChild(inputPage);
     });
   });
 
+  suite('input method list', () => {
+    test('displays correctly', () => {
+      const inputMethodsList = inputPage.$$('#inputMethodsList');
+      assertTrue(!!inputMethodsList);
+
+      // The test input methods should appear.
+      const items = inputMethodsList.querySelectorAll('.list-item');
+      assertEquals(2, items.length);  // Two items for input methods
+      assertEquals(
+          'US keyboard',
+          items[0].querySelector('.display-name').textContent.trim());
+      assertTrue(!!items[0].querySelector('.internal-wrapper'));
+      assertFalse(!!items[0].querySelector('.external-wrapper'));
+      assertEquals(
+          'US Dvorak keyboard',
+          items[1].querySelector('.display-name').textContent.trim());
+      assertTrue(!!items[1].querySelector('.external-wrapper'));
+      assertFalse(!!items[1].querySelector('.internal-wrapper'));
+    });
+
+    test('navigates to input method options page', () => {
+      const inputMethodsList = inputPage.$.inputMethodsList;
+      const items = inputMethodsList.querySelectorAll('.list-item');
+      items[0].querySelector('.subpage-arrow').click();
+      const router = settings.Router.getInstance();
+      assertEquals(
+          router.getCurrentRoute().getAbsolutePath(),
+          'chrome://os-settings/osLanguages/inputMethodOptions');
+      assertEquals(
+          router.getQueryParameters().get('id'),
+          '_comp_ime_jkghodnilhceideoidjikpgommlajknkxkb:us::eng');
+    });
+  });
+
   suite('records metrics', () => {
     test('when deactivating show ime menu', async () => {
       inputPage.setPrefValue('settings.language.ime_menu_activated', true);
diff --git a/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js b/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
index 9ada2eb..7d226def 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/internet_detail_page_tests.js
@@ -218,6 +218,38 @@
         assertFalse(allowShared.disabled);
       });
     });
+
+    // Tests that when the route changes to one containing a deep link to
+    // the shared proxy toggle, toggle is foxused.
+    test('Deep link to shared proxy toggle', async () => {
+      loadTimeData.overrideValues({isDeepLinkingEnabled: true});
+      assertTrue(loadTimeData.getBoolean('isDeepLinkingEnabled'));
+
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.resetForTest();
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kWiFi, true);
+      const wifiNetwork = getManagedProperties(
+          mojom.NetworkType.kWiFi, 'wifi_device', mojom.OncSource.kDevice);
+      mojoApi_.setManagedPropertiesForTest(wifiNetwork);
+
+      const params = new URLSearchParams;
+      params.append('guid', 'wifi_device_guid');
+      params.append('type', 'WiFi');
+      params.append('name', 'wifi_device');
+      params.append('settingId', '11');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.NETWORK_DETAIL, params);
+
+      await flushAsync();
+
+      const deepLinkElement = internetDetailPage.$$('network-proxy-section')
+                                  .$$('#allowShared')
+                                  .$$('#control');
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Allow shared proxy toggle should be focused for settingId=11.');
+    });
   });
 
   suite('DetailsPageVPN', function() {
@@ -293,6 +325,122 @@
         assertFalse(spinner.hasAttribute('hidden'));
       });
     });
+
+    test('Deep link to disconnect button', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kCellular, true);
+      const cellularNetwork =
+          getManagedProperties(mojom.NetworkType.kCellular, 'cellular');
+      cellularNetwork.connectable = false;
+      mojoApi_.setManagedPropertiesForTest(cellularNetwork);
+
+      const params = new URLSearchParams;
+      params.append('guid', 'cellular_guid');
+      params.append('type', 'Cellular');
+      params.append('name', 'cellular');
+      params.append('settingId', '17');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.NETWORK_DETAIL, params);
+
+      await flushAsync();
+
+      const deepLinkElement = getButton('connectDisconnect').$$('cr-button');
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Disconnect network button should be focused for settingId=17.');
+    });
+  });
+
+  suite('DetailsPageEthernet', function() {
+    test('LoadPage', function() {});
+
+    test('Eth1', function() {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kEthernet, true);
+      setNetworksForTest([
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kEthernet, 'eth1'),
+      ]);
+
+      internetDetailPage.init('eth1_guid', 'Ethernet', 'eth1');
+      assertEquals('eth1_guid', internetDetailPage.guid);
+      return flushAsync().then(() => {
+        return mojoApi_.whenCalled('getManagedProperties');
+      });
+    });
+
+    test('Deep link to configure ethernet button', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kEthernet, true);
+      setNetworksForTest([
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kEthernet, 'eth1'),
+      ]);
+
+      const params = new URLSearchParams;
+      params.append('guid', 'eth1_guid');
+      params.append('type', 'Ethernet');
+      params.append('name', 'eth1');
+      params.append('settingId', '0');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.NETWORK_DETAIL, params);
+
+      await flushAsync();
+
+      const deepLinkElement = getButton('configureButton');
+      await test_util.waitAfterNextRender(deepLinkElement);
+
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Configure ethernet button should be focused for settingId=0.');
+    });
+  });
+
+  suite('DetailsPageTether', function() {
+    test('LoadPage', function() {});
+
+    test('Tether1', function() {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kTether, true);
+      setNetworksForTest([
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether1'),
+      ]);
+
+      internetDetailPage.init('tether1_guid', 'Tether', 'tether1');
+      assertEquals('tether1_guid', internetDetailPage.guid);
+      return flushAsync().then(() => {
+        return mojoApi_.whenCalled('getManagedProperties');
+      });
+    });
+
+    test('Deep link to disconnect tether network', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kTether, true);
+      setNetworksForTest([
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether1'),
+      ]);
+      const tetherNetwork =
+          getManagedProperties(mojom.NetworkType.kTether, 'tether1');
+      tetherNetwork.connectable = true;
+      mojoApi_.setManagedPropertiesForTest(tetherNetwork);
+
+      await flushAsync();
+
+      const params = new URLSearchParams;
+      params.append('guid', 'tether1_guid');
+      params.append('type', 'Tether');
+      params.append('name', 'tether1');
+      params.append('settingId', '23');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.NETWORK_DETAIL, params);
+
+      await flushAsync();
+
+      const deepLinkElement = getButton('connectDisconnect').$$('cr-button');
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Disconnect tether button should be focused for settingId=23.');
+    });
   });
 
   suite('DetailsPageAutoConnect', function() {
diff --git a/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.js b/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.js
new file mode 100644
index 0000000..ca590c68
--- /dev/null
+++ b/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.js
@@ -0,0 +1,97 @@
+// Copyright 2020 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.
+
+suite('InternetKnownNetworksPage', function() {
+  /** @type {?SettingsInternetKnownNetworksPageElement} */
+  let internetKnownNetworksPage = null;
+
+  /** @type {?chromeos.networkConfig.mojom.CrosNetworkConfigRemote} */
+  let mojoApi_ = null;
+
+  suiteSetup(function() {
+    loadTimeData.overrideValues({
+      internetAddConnection: 'internetAddConnection',
+      internetAddConnectionExpandA11yLabel:
+          'internetAddConnectionExpandA11yLabel',
+      internetAddConnectionNotAllowed: 'internetAddConnectionNotAllowed',
+      internetAddThirdPartyVPN: 'internetAddThirdPartyVPN',
+      internetAddVPN: 'internetAddVPN',
+      internetAddWiFi: 'internetAddWiFi',
+      internetDetailPageTitle: 'internetDetailPageTitle',
+      internetKnownNetworksPageTitle: 'internetKnownNetworksPageTitle',
+    });
+
+    mojoApi_ = new FakeNetworkConfig();
+    network_config.MojoInterfaceProviderImpl.getInstance().remote_ = mojoApi_;
+
+    // Disable animations so sub-pages open within one event loop.
+    testing.Test.disableAnimationsAndTransitions();
+  });
+
+  function flushAsync() {
+    Polymer.dom.flush();
+    // Use setTimeout to wait for the next macrotask.
+    return new Promise(resolve => setTimeout(resolve));
+  }
+
+  function setNetworksForTest(type, networks) {
+    mojoApi_.resetForTest();
+    mojoApi_.addNetworksForTest(networks);
+  }
+
+  setup(function() {
+    PolymerTest.clearBody();
+    internetKnownNetworksPage =
+        document.createElement('settings-internet-known-networks-page');
+    assertTrue(!!internetKnownNetworksPage);
+    mojoApi_.resetForTest();
+    document.body.appendChild(internetKnownNetworksPage);
+    return flushAsync();
+  });
+
+  teardown(function() {
+    internetKnownNetworksPage.remove();
+    internetKnownNetworksPage = null;
+    settings.Router.getInstance().resetRouteForTesting();
+  });
+
+  suite('KnownNetworksPage', function() {
+    test('WiFi', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      internetKnownNetworksPage.networkType = mojom.NetworkType.kWiFi;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kWiFi, true);
+      const preferredWifi =
+          OncMojo.getDefaultNetworkState(mojom.NetworkType.kWiFi, 'wifi2');
+      preferredWifi.priority = 1;
+      const notPreferredWifi =
+          OncMojo.getDefaultNetworkState(mojom.NetworkType.kWiFi, 'wifi1');
+      setNetworksForTest(mojom.NetworkType.kWiFi, [
+        notPreferredWifi,
+        preferredWifi,
+      ]);
+
+      const params = new URLSearchParams;
+      params.append('settingId', '7');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.KNOWN_NETWORKS, params);
+
+      await flushAsync();
+
+      assertEquals(2, internetKnownNetworksPage.networkStateList_.length);
+
+      const preferredList =
+          internetKnownNetworksPage.$$('#preferredNetworkList');
+      assertTrue(!!preferredList);
+      const preferredElems = preferredList.querySelectorAll('cr-link-row');
+      assertEquals(preferredElems.length, 1);
+
+      const deepLinkElement = preferredElems[0].$$('#icon');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender();
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Preferred list elem should be focused for settingId=7.');
+    });
+  });
+});
diff --git a/chrome/test/data/webui/settings/chromeos/internet_page_tests.js b/chrome/test/data/webui/settings/chromeos/internet_page_tests.js
index 0c8371e..1b90f200 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_page_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/internet_page_tests.js
@@ -129,6 +129,27 @@
       });
     });
 
+    test('Deep link to WiFiToggle', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      // Make WiFi an available but disabled technology.
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kWiFi, false);
+
+      const params = new URLSearchParams;
+      params.append('settingId', '4');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.INTERNET, params);
+
+      await flushAsync();
+
+      const deepLinkElement =
+          networkSummary_.$$('#WiFi').$$('#deviceEnabledButton');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Toggle WiFi should be focused for settingId=4.');
+    });
+
     test('VpnProviders', function() {
       const mojom = chromeos.networkConfig.mojom;
       mojoApi_.setVpnProvidersForTest([
@@ -164,6 +185,27 @@
             'vpn.app.package1', internetPage.vpnProviders_[2].providerId);
       });
     });
+
+    test('Deep link to mobile on/off toggle', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      // Make WiFi an available but disabled technology.
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kCellular, false);
+
+      const params = new URLSearchParams;
+      params.append('settingId', '13');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.INTERNET, params);
+
+      await flushAsync();
+
+      const deepLinkElement =
+          networkSummary_.$$('#Cellular').$$('#deviceEnabledButton');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Toggle mobile on/off should be focused for settingId=13.');
+    });
   });
 
   // TODO(stevenjb): Figure out a way to reliably test navigation. Currently
diff --git a/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.js b/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.js
index e5dee874..1e4317f 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.js
+++ b/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.js
@@ -77,6 +77,28 @@
       });
     });
 
+    test('Deep link to WiFi on/off toggle', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      setNetworksForTest(mojom.NetworkType.kWiFi, [
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kWiFi, 'wifi1'),
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kWiFi, 'wifi2'),
+      ]);
+
+      const params = new URLSearchParams;
+      params.append('settingId', '4');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.INTERNET_NETWORKS, params);
+
+      await flushAsync();
+
+      const deepLinkElement = internetSubpage.$$('#deviceEnabledButton');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Toggle WiFi should be focused for settingId=4.');
+    });
+
     test('Tether', function() {
       const mojom = chromeos.networkConfig.mojom;
       setNetworksForTest(mojom.NetworkType.kTether, [
@@ -98,6 +120,32 @@
       });
     });
 
+    test('Deep link to tether on/off toggle w/o cellular', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      setNetworksForTest(mojom.NetworkType.kTether, [
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether1'),
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether2'),
+      ]);
+      internetSubpage.tetherDeviceState = {
+        type: mojom.NetworkType.kTether,
+        deviceState: mojom.DeviceStateType.kEnabled
+      };
+
+      const params = new URLSearchParams;
+      params.append('settingId', '22');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.INTERNET_NETWORKS, params);
+
+      await flushAsync();
+
+      const deepLinkElement = internetSubpage.$$('#deviceEnabledButton');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Device enabled should be focused for settingId=22.');
+    });
+
     test('Fire show cellular setup event on add cellular clicked', () => {
       const mojom = chromeos.networkConfig.mojom;
       mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kCellular);
@@ -151,6 +199,35 @@
       });
     });
 
+    test('Deep link to tether on/off toggle w/ cellular', async () => {
+      const mojom = chromeos.networkConfig.mojom;
+      mojoApi_.setNetworkTypeEnabledState(mojom.NetworkType.kTether);
+      setNetworksForTest(mojom.NetworkType.kCellular, [
+        OncMojo.getDefaultNetworkState(
+            mojom.NetworkType.kCellular, 'cellular1'),
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether1'),
+        OncMojo.getDefaultNetworkState(mojom.NetworkType.kTether, 'tether2'),
+      ]);
+      internetSubpage.tetherDeviceState = {
+        type: mojom.NetworkType.kTether,
+        deviceState: mojom.DeviceStateType.kEnabled
+      };
+
+      const params = new URLSearchParams;
+      params.append('settingId', '22');
+      settings.Router.getInstance().navigateTo(
+          settings.routes.INTERNET_NETWORKS, params);
+
+      await flushAsync();
+
+      const deepLinkElement = internetSubpage.$$('#tetherEnabledButton');
+      assert(!!deepLinkElement);
+      await test_util.waitAfterNextRender(deepLinkElement);
+      assertEquals(
+          deepLinkElement, getDeepActiveElement(),
+          'Tether enabled should be focused for settingId=22.');
+    });
+
     suite('VPN', function() {
       setup(function() {
         addTestVpnProviders();
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
index 4a38388..0f5c30d 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
@@ -723,11 +723,17 @@
   }
 
   /** @override */
+  get featureList() {
+    return {enabled: ['chromeos::features::kOsSettingsDeepLinking']};
+  }
+
+  /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
       '//ui/webui/resources/js/promise_resolver.js',
       '//ui/webui/resources/js/assert.js',
       '//ui/webui/resources/js/util.js',
+      BROWSER_SETTINGS_PATH + '../test_util.js',
       BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
       BROWSER_SETTINGS_PATH + '../chromeos/fake_network_config_mojom.js',
       'internet_detail_page_tests.js',
@@ -748,11 +754,17 @@
   }
 
   /** @override */
+  get featureList() {
+    return {enabled: ['chromeos::features::kOsSettingsDeepLinking']};
+  }
+
+  /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
       '//ui/webui/resources/js/promise_resolver.js',
       '//ui/webui/resources/js/assert.js',
       '//ui/webui/resources/js/util.js',
+      BROWSER_SETTINGS_PATH + '../test_util.js',
       BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
       BROWSER_SETTINGS_PATH + '../chromeos/fake_network_config_mojom.js',
       'internet_page_tests.js',
@@ -774,7 +786,12 @@
 
   /** @override */
   get featureList() {
-    return {enabled: ['chromeos::features::kUpdatedCellularActivationUi']};
+    return {
+      enabled: [
+        'chromeos::features::kUpdatedCellularActivationUi',
+        'chromeos::features::kOsSettingsDeepLinking'
+      ]
+    };
   }
 
   /** @override */
@@ -795,6 +812,41 @@
   mocha.run();
 });
 
+// Test fixture for settings-internet-known-networks-page.
+// eslint-disable-next-line no-var
+var OSSettingsInternetKnownNetworksPageTest =
+    class extends OSSettingsBrowserTest {
+  /** @override */
+  get browsePreload() {
+    return super.browsePreload +
+        'chromeos/internet_page/internet_known_networks_page.html';
+  }
+
+  /** @override */
+  get featureList() {
+    return {enabled: ['chromeos::features::kOsSettingsDeepLinking']};
+  }
+
+  /** @override */
+  get extraLibraries() {
+    return super.extraLibraries.concat([
+      '//ui/webui/resources/js/promise_resolver.js',
+      '//ui/webui/resources/js/assert.js',
+      '//ui/webui/resources/js/util.js',
+      BROWSER_SETTINGS_PATH + '../test_util.js',
+      BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
+      BROWSER_SETTINGS_PATH + '../chromeos/fake_network_config_mojom.js',
+      'internet_known_networks_page_tests.js',
+    ]);
+  }
+};
+
+TEST_F(
+    'OSSettingsInternetKnownNetworksPageTest', 'InternetKnownNetworksPage',
+    () => {
+      mocha.run();
+    });
+
 // Test fixture for the main settings page.
 // eslint-disable-next-line no-var
 var OSSettingsMainTest = class extends OSSettingsBrowserTest {
@@ -1503,8 +1555,14 @@
   /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
+      BROWSER_SETTINGS_PATH + '../fake_chrome_event.js',
       BROWSER_SETTINGS_PATH + '../test_browser_proxy.js',
+      BROWSER_SETTINGS_PATH + '../test_util.js',
+      BROWSER_SETTINGS_PATH + 'fake_input_method_private.js',
+      BROWSER_SETTINGS_PATH + 'fake_language_settings_private.js',
+      BROWSER_SETTINGS_PATH + 'fake_settings_private.js',
       'input_page_test.js',
+      'test_os_languages_browser_proxy.js',
       'test_os_languages_metrics_proxy.js',
     ]);
   }
diff --git a/chrome/test/data/xr/e2e_test_files/html/test_non_immersive_stops_during_immersive.html b/chrome/test/data/xr/e2e_test_files/html/test_non_immersive_stops_during_immersive.html
index c006118..5ee79c9 100644
--- a/chrome/test/data/xr/e2e_test_files/html/test_non_immersive_stops_during_immersive.html
+++ b/chrome/test/data/xr/e2e_test_files/html/test_non_immersive_stops_during_immersive.html
@@ -16,6 +16,7 @@
       setup({single_test: true});
 
       let counter = 0;
+      let nonImmersiveDuringImmersiveCounter = 0;
 
       function stepBeforeImmersive() {
         onMagicWindowXRFrameCallback = function() {
@@ -23,8 +24,17 @@
           // are not done while there is an immersive session.
           onMagicWindowXRFrameCallback = function() {
             if (sessionInfos[sessionTypes.IMMERSIVE].currentSession !== null) {
-              assert_unreached(
-                  "Non-immersive rAF called during immersive session");
+              // TODO(https://crbug.com/1116261): Investigate a proper product
+              // fix so that this can be removed.
+              // The inline rAF loop should not be started back again until we
+              // have been notified that the immersive session ended; however,
+              // a non-immersive rAF may have already been scheduled and not be
+              // cancellable once the immersive session returns, leading to a
+              // race. To this end, we will allow for at most one non-immersive
+              // frame to be called while we have an immersive session.
+              nonImmersiveDuringImmersiveCounter++;
+              assert_less_than_equal(nonImmersiveDuringImmersiveCounter, 1,
+                  "Non-immersive rAF called during immersive session more than allowed");
             }
           }
           finishJavaScriptStep();
diff --git a/chrome/updater/mac/setup/setup.h b/chrome/updater/mac/setup/setup.h
index 297d9d6..26042fb 100644
--- a/chrome/updater/mac/setup/setup.h
+++ b/chrome/updater/mac/setup/setup.h
@@ -18,6 +18,9 @@
 // Failed to delete the updater's install folder.
 constexpr int kFailedToDeleteFolder = 11;
 
+// Failed to delete the updater's data folder.
+constexpr int kFailedToDeleteDataFolder = 12;
+
 // Failed to remove the active(unversioned) update service job from Launchd.
 constexpr int kFailedToRemoveActiveUpdateServiceJobFromLaunchd = 20;
 
diff --git a/chrome/updater/mac/setup/setup.mm b/chrome/updater/mac/setup/setup.mm
index d873403..b0666d4 100644
--- a/chrome/updater/mac/setup/setup.mm
+++ b/chrome/updater/mac/setup/setup.mm
@@ -276,6 +276,13 @@
   return DeleteInstallFolder(GetUpdaterFolderPath());
 }
 
+bool DeleteDataFolder() {
+  base::FilePath data_path;
+  if (!GetBaseDirectory(&data_path))
+    return false;
+  return DeleteInstallFolder(data_path);
+}
+
 }  // namespace
 
 int InstallCandidate() {
@@ -335,6 +342,9 @@
   if (!RemoveUpdateServiceJobFromLaunchd())
     return setup_exit_codes::kFailedToRemoveActiveUpdateServiceJobFromLaunchd;
 
+  if (!DeleteDataFolder())
+    return setup_exit_codes::kFailedToDeleteDataFolder;
+
   if (!DeleteInstallFolder())
     return setup_exit_codes::kFailedToDeleteFolder;
 
diff --git a/chrome/updater/test/integration_tests_mac.mm b/chrome/updater/test/integration_tests_mac.mm
index fccde8b..372dc8a0 100644
--- a/chrome/updater/test/integration_tests_mac.mm
+++ b/chrome/updater/test/integration_tests_mac.mm
@@ -38,6 +38,13 @@
       .AppendASCII(PRODUCT_FULLNAME_STRING);
 }
 
+base::FilePath GetDataDirPath() {
+  return base::mac::GetUserLibraryPath()
+      .AppendASCII("Application Support")
+      .AppendASCII(COMPANY_SHORTNAME_STRING)
+      .AppendASCII(PRODUCT_FULLNAME_STRING);
+}
+
 bool Run(base::CommandLine command_line, int* exit_code) {
   auto process = base::LaunchProcess(command_line, {});
   if (!process.IsValid())
@@ -58,6 +65,7 @@
       Launchd::User, Launchd::Agent, updater::CopyControlLaunchdName()));
   EXPECT_TRUE(Launchd::GetInstance()->DeletePlist(
       Launchd::User, Launchd::Agent, updater::CopyServiceLaunchdName()));
+  EXPECT_TRUE(base::DeletePathRecursively(GetDataDirPath()));
 }
 
 void ExpectClean() {
@@ -69,6 +77,7 @@
       Launchd::User, Launchd::Agent, updater::CopyControlLaunchdName()));
   EXPECT_FALSE(Launchd::GetInstance()->PlistExists(
       Launchd::User, Launchd::Agent, updater::CopyServiceLaunchdName()));
+  EXPECT_FALSE(base::PathExists(GetDataDirPath()));
 }
 
 void ExpectInstalled() {
diff --git a/chrome/updater/test/integration_tests_win.cc b/chrome/updater/test/integration_tests_win.cc
index 709f50f..e29b883 100644
--- a/chrome/updater/test/integration_tests_win.cc
+++ b/chrome/updater/test/integration_tests_win.cc
@@ -60,6 +60,14 @@
   return GetProductPath().AppendASCII("updater.exe");
 }
 
+base::FilePath GetDataDirPath() {
+  base::FilePath app_data_dir;
+  if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &app_data_dir))
+    return base::FilePath();
+  return app_data_dir.AppendASCII(COMPANY_SHORTNAME_STRING)
+      .AppendASCII(PRODUCT_FULLNAME_STRING);
+}
+
 }  // namespace
 
 void Clean() {
@@ -69,6 +77,7 @@
   // TODO(crbug.com/1062288): Delete the COM interfaces.
   // TODO(crbug.com/1062288): Delete the Wake task.
   EXPECT_TRUE(base::DeletePathRecursively(GetProductPath()));
+  EXPECT_TRUE(base::DeletePathRecursively(GetDataDirPath()));
 }
 
 void ExpectClean() {
@@ -80,8 +89,8 @@
   // TODO(crbug.com/1062288): Assert there are no Wake tasks.
 
   // Files must not exist on the file system.
-
   EXPECT_FALSE(base::PathExists(GetProductPath()));
+  EXPECT_FALSE(base::PathExists(GetDataDirPath()));
 }
 
 void ExpectInstalled() {
diff --git a/chrome/updater/win/setup/uninstall.cmd b/chrome/updater/win/setup/uninstall.cmd
index 32457c98..aee645e4 100644
--- a/chrome/updater/win/setup/uninstall.cmd
+++ b/chrome/updater/win/setup/uninstall.cmd
@@ -1,9 +1,10 @@
-rem Deletes the script's parent directory if

+rem Deletes the script's grandparent directory if

 rem \AppData\Local\@COMPANY_SHORTNAME@\@PRODUCT_FULLNAME@\ is anywhere in the

 rem directory path.  Sleeps 3 seconds and tries 3 times to delete the

 rem directory.

 @echo off

 set Directory=%~dp0

+FOR %%a IN ("%Directory:~0,-1%") DO set Directory=%%~dpa

 @echo %Directory% | FindStr /R \\AppData\\Local\\@COMPANY_SHORTNAME@\\@PRODUCT_FULLNAME@\\ > nul

 IF %ERRORLEVEL% NEQ 0 exit 1

 @echo Deleting "%Directory%"...

diff --git a/chromecast/browser/cast_browser_main_parts.cc b/chromecast/browser/cast_browser_main_parts.cc
index 9df36b1d..2d52f83c 100644
--- a/chromecast/browser/cast_browser_main_parts.cc
+++ b/chromecast/browser/cast_browser_main_parts.cc
@@ -72,7 +72,7 @@
 #include "ui/base/ui_base_switches.h"
 #include "ui/gl/gl_switches.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include <fontconfig/fontconfig.h>
 #include <signal.h>
 #include <sys/prctl.h>
@@ -128,7 +128,7 @@
 #include "extensions/browser/extension_prefs.h"  // nogncheck
 #endif
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
 #include "chromecast/browser/exo/wayland_server_controller.h"
 #endif
 
@@ -270,7 +270,7 @@
 
 #endif  // defined(USE_AURA)
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 base::FilePath GetApplicationFontsDir() {
   std::unique_ptr<base::Environment> env(base::Environment::Create());
@@ -286,7 +286,7 @@
   }
 }
 
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 }  // namespace
 
@@ -315,7 +315,7 @@
     {cc::switches::kDisableThreadedAnimation, ""},
 #endif  // defined(OS_ANDROID)
 #endif  // BUILDFLAG(IS_CAST_AUDIO_ONLY)
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #if defined(ARCH_CPU_X86_FAMILY)
     // This is needed for now to enable the x11 Ozone platform to work with
     // current Linux/NVidia OpenGL drivers.
@@ -325,7 +325,7 @@
     {switches::kEnableHardwareOverlays, "cast"},
 #endif
 #endif
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
     // It's better to start GPU process on demand. For example, for TV platforms
     // cast starts in background and can't render until TV switches to cast
     // input.
@@ -474,7 +474,7 @@
     views_delegate_ = std::make_unique<CastViewsDelegate>();
 #endif  // defined(USE_AURA)
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   base::FilePath dir_font = GetApplicationFontsDir();
   const FcChar8 *dir_font_char8 = reinterpret_cast<const FcChar8*>(dir_font.value().data());
   if (!FcConfigAppFontAddDir(gfx::GetGlobalFontConfig(), dir_font_char8)) {
@@ -655,7 +655,7 @@
       cast_browser_process_->browser_context());
 #endif
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
   wayland_server_controller_ =
       std::make_unique<WaylandServerController>(window_manager_.get());
 #endif
@@ -737,7 +737,7 @@
 }
 
 void CastBrowserMainParts::PostMainMessageLoopRun() {
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
   wayland_server_controller_.reset();
 #endif
 #if BUILDFLAG(ENABLE_CHROMECAST_EXTENSIONS)
diff --git a/chromecast/browser/cast_browser_main_parts.h b/chromecast/browser/cast_browser_main_parts.h
index e8f22fc..65cad753 100644
--- a/chromecast/browser/cast_browser_main_parts.h
+++ b/chromecast/browser/cast_browser_main_parts.h
@@ -131,7 +131,7 @@
   std::unique_ptr<PrefService> user_pref_service_;
 #endif
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
   std::unique_ptr<WaylandServerController> wayland_server_controller_;
 #endif
 
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
index a8736241..af48d2d7 100644
--- a/chromecast/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -93,13 +93,13 @@
 #include "ui/display/screen.h"
 #include "ui/gl/gl_switches.h"
 
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 #include "components/crash/content/browser/crash_handler_host_linux.h"
-#endif  // defined(OS_LINUX) || defined(OS_ANDROID)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "components/crash/core/app/breakpad_linux.h"
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 #if defined(OS_ANDROID)
 #include "chromecast/media/audio/cast_audio_manager_android.h"  // nogncheck
@@ -130,9 +130,9 @@
 #include "chromecast/external_mojo/broker_service/broker_service.h"
 #endif
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
 #include "chromecast/browser/webview/webview_controller.h"
-#endif  // defined(OS_LINUX) && defined(USE_OZONE)
+#endif  // (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
 
 #if BUILDFLAG(ENABLE_CAST_RENDERER)
 #include "base/sequenced_task_runner.h"
@@ -472,7 +472,7 @@
                                           switches::kAudioOutputChannels));
     }
   } else if (process_type == switches::kGpuProcess) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     // Necessary for accelerated 2d canvas.  By default on Linux, Chromium
     // assumes GLES2 contexts can be lost to a power-save mode, which breaks GPU
     // canvas apps.
@@ -846,12 +846,12 @@
             handle, general_audience_browsing_service_.get()));
   }
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
   auto webview_throttle = WebviewController::MaybeGetNavigationThrottle(handle);
   if (webview_throttle) {
     throttles.push_back(std::move(webview_throttle));
   }
-#endif  // defined(OS_LINUX) && defined(USE_OZONE)
+#endif  // (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
 
   return throttles;
 }
diff --git a/chromecast/browser/test/cast_features_browsertest.cc b/chromecast/browser/test/cast_features_browsertest.cc
index 52f25e4..c908d064 100644
--- a/chromecast/browser/test/cast_features_browsertest.cc
+++ b/chromecast/browser/test/cast_features_browsertest.cc
@@ -306,7 +306,7 @@
   ASSERT_TRUE(GetDCSExperimentIds().empty());
 }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_TestExperimentIdsPersisted DISABLED_TestExperimentIdsPersisted
 #else
 #define MAYBE_TestExperimentIdsPersisted TestExperimentIdsPersisted
diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc
index 4a7589d5..ec3047d 100644
--- a/chromecast/renderer/cast_content_renderer_client.cc
+++ b/chromecast/renderer/cast_content_renderer_client.cc
@@ -207,7 +207,7 @@
   dispatcher->OnRenderFrameCreated(render_frame);
 #endif
 
-#if defined(OS_LINUX) && defined(USE_OZONE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(USE_OZONE)
   // JsChannelBindings destroys itself when the RenderFrame is destroyed.
   JsChannelBindings::Create(render_frame);
 #endif
diff --git a/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_fr.xtb b/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_fr.xtb
index 7d969217..3841e87 100644
--- a/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_fr.xtb
+++ b/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_fr.xtb
@@ -9,7 +9,7 @@
 <translation id="1851616744363735765">SUSPENDU</translation>
 <translation id="1862930711583847113">Impossible d'exporter <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Résolution photo</translation>
-<translation id="2036868001356139588">Durée du minuteur</translation>
+<translation id="2036868001356139588">Durée du retardateur</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2064538373111010176">Option <ph name="CAMERA" /> activée</translation>
 <translation id="229579744168541441">Exporter vers le disque</translation>
diff --git a/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_nl.xtb b/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_nl.xtb
index 4b1f5f4..1a4d298 100644
--- a/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_nl.xtb
+++ b/chromeos/components/camera_app_ui/resources/src/strings/camera_strings_nl.xtb
@@ -29,7 +29,7 @@
 <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="3810838688059735925">Video</translation>
 <translation id="4118525110028899586">Opname onderbreken</translation>
 <translation id="4279490309300973883">Mirroring</translation>
 <translation id="4329152592498422850">Schakel over om vierkante foto te maken</translation>
diff --git a/chromeos/components/scanning/resources/app_icon_192.png b/chromeos/components/scanning/resources/app_icon_192.png
new file mode 100644
index 0000000..1419460f
--- /dev/null
+++ b/chromeos/components/scanning/resources/app_icon_192.png
Binary files differ
diff --git a/chromeos/components/scanning/resources/scanning_app_resources.grd b/chromeos/components/scanning/resources/scanning_app_resources.grd
index 5cb6954..5aa05cc 100644
--- a/chromeos/components/scanning/resources/scanning_app_resources.grd
+++ b/chromeos/components/scanning/resources/scanning_app_resources.grd
@@ -15,6 +15,7 @@
       <!-- Privileged app host contents. -->
       <include name="IDR_SCANNING_APP_INDEX_HTML" file="index.html" type="BINDATA" compress="gzip" />
       <include name="IDR_SCANNING_APP_JS" file="${root_gen_dir}/chromeos/components/scanning/resources/scanning_app.js" use_base_dir="false" compress="gzip" type="BINDATA"/>
+      <include name="IDR_SCANNING_APP_ICON" file="app_icon_192.png" type="BINDATA" />
     </includes>
   </release>
 </grit>
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index 35f7362..b3ec386 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -222,6 +222,10 @@
 const base::Feature kFilesZipUnpack{"FilesZipUnpack",
                                     base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Controls gamepad vibration in Exo.
+const base::Feature kGamepadVibration{"ExoGamepadVibration",
+                                      base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Enables the use of Mojo by Chrome-process code to communicate with Power
 // Manager. In order to use mojo, this feature must be turned on and a callsite
 // must use PowerManagerMojoClient::Get().
diff --git a/chromeos/constants/chromeos_features.h b/chromeos/constants/chromeos_features.h
index a9fc225..27b628d 100644
--- a/chromeos/constants/chromeos_features.h
+++ b/chromeos/constants/chromeos_features.h
@@ -109,6 +109,8 @@
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kGaiaActionButtons;
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
+extern const base::Feature kGamepadVibration;
+COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kGesturePropertiesDBusService;
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 extern const base::Feature kHelpAppFirstRun;
diff --git a/chromeos/dbus/cicerone_client.cc b/chromeos/dbus/cicerone_client.cc
index e9f8ce39..9fa4aff 100644
--- a/chromeos/dbus/cicerone_client.cc
+++ b/chromeos/dbus/cicerone_client.cc
@@ -585,6 +585,28 @@
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
+  void GetVshSession(
+      const vm_tools::cicerone::GetVshSessionRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::GetVshSessionResponse> callback)
+      override {
+    dbus::MethodCall method_call(vm_tools::cicerone::kVmCiceroneInterface,
+                                 vm_tools::cicerone::kGetVshSessionMethod);
+    dbus::MessageWriter writer(&method_call);
+
+    if (!writer.AppendProtoAsArrayOfBytes(request)) {
+      LOG(ERROR) << "Failed to encode GetVshSessionRequest protobuf";
+      base::ThreadTaskRunnerHandle::Get()->PostTask(
+          FROM_HERE, base::BindOnce(std::move(callback), base::nullopt));
+      return;
+    }
+
+    cicerone_proxy_->CallMethod(
+        &method_call, kDefaultTimeout.InMilliseconds(),
+        base::BindOnce(&CiceroneClientImpl::OnDBusProtoResponse<
+                           vm_tools::cicerone::GetVshSessionResponse>,
+                       weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+  }
+
   void WaitForServiceToBeAvailable(
       dbus::ObjectProxy::WaitForServiceToBeAvailableCallback callback)
       override {
diff --git a/chromeos/dbus/cicerone_client.h b/chromeos/dbus/cicerone_client.h
index c895e881..3c82efb 100644
--- a/chromeos/dbus/cicerone_client.h
+++ b/chromeos/dbus/cicerone_client.h
@@ -323,6 +323,13 @@
       DBusMethodCallback<vm_tools::cicerone::RemoveFileWatchResponse>
           callback) = 0;
 
+  // Looks up vsh session data such as container shell pid.
+  // |callback| is called when the method completes.
+  virtual void GetVshSession(
+      const vm_tools::cicerone::GetVshSessionRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::GetVshSessionResponse>
+          callback) = 0;
+
   // Registers |callback| to run when the Cicerone service becomes available.
   // If the service is already available, or if connecting to the name-owner-
   // changed signal fails, |callback| will be run once asynchronously.
diff --git a/chromeos/dbus/fake_cicerone_client.cc b/chromeos/dbus/fake_cicerone_client.cc
index 3a62449c..3c83a36 100644
--- a/chromeos/dbus/fake_cicerone_client.cc
+++ b/chromeos/dbus/fake_cicerone_client.cc
@@ -388,6 +388,14 @@
       base::BindOnce(std::move(callback), remove_file_watch_response_));
 }
 
+void FakeCiceroneClient::GetVshSession(
+    const vm_tools::cicerone::GetVshSessionRequest& request,
+    DBusMethodCallback<vm_tools::cicerone::GetVshSessionResponse> callback) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE,
+      base::BindOnce(std::move(callback), get_vsh_session_response_));
+}
+
 void FakeCiceroneClient::NotifyLxdContainerCreated(
     const vm_tools::cicerone::LxdContainerCreatedSignal& proto) {
   for (auto& observer : observer_list_) {
diff --git a/chromeos/dbus/fake_cicerone_client.h b/chromeos/dbus/fake_cicerone_client.h
index d435e9f9..a3986a20 100644
--- a/chromeos/dbus/fake_cicerone_client.h
+++ b/chromeos/dbus/fake_cicerone_client.h
@@ -135,6 +135,10 @@
       const vm_tools::cicerone::RemoveFileWatchRequest& request,
       DBusMethodCallback<vm_tools::cicerone::RemoveFileWatchResponse> callback)
       override;
+  void GetVshSession(
+      const vm_tools::cicerone::GetVshSessionRequest& request,
+      DBusMethodCallback<vm_tools::cicerone::GetVshSessionResponse> callback)
+      override;
   void WaitForServiceToBeAvailable(
       dbus::ObjectProxy::WaitForServiceToBeAvailableCallback callback) override;
 
@@ -313,6 +317,10 @@
       vm_tools::cicerone::RemoveFileWatchResponse remove_file_watch_response) {
     remove_file_watch_response_ = std::move(remove_file_watch_response);
   }
+  void set_get_vsh_session_response(
+      vm_tools::cicerone::GetVshSessionResponse get_vsh_session_response) {
+    get_vsh_session_response_ = std::move(get_vsh_session_response);
+  }
 
   // Returns true if the method has been invoked at least once, false otherwise.
   bool configure_for_arc_sideload_called() {
@@ -422,6 +430,7 @@
   vm_tools::cicerone::StartLxdResponse start_lxd_response_;
   vm_tools::cicerone::AddFileWatchResponse add_file_watch_response_;
   vm_tools::cicerone::RemoveFileWatchResponse remove_file_watch_response_;
+  vm_tools::cicerone::GetVshSessionResponse get_vsh_session_response_;
 
   vm_tools::cicerone::OsRelease lxd_container_os_release_;
 
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
index 0b8bf3e..03612f3 100644
--- a/chromeos/network/network_state_handler.cc
+++ b/chromeos/network/network_state_handler.cc
@@ -1568,6 +1568,12 @@
   check_portal_list_ = check_portal_list;
 }
 
+void NetworkStateHandler::HostnameChanged(const std::string& hostname) {
+  hostname_ = hostname;
+  for (auto& observer : observers_)
+    observer.HostnameChanged(hostname);
+}
+
 void NetworkStateHandler::TechnologyListChanged() {
   // Eventually we would like to replace Technology state with Device state.
   // For now, treat technology state changes as device list changes.
diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h
index cc38a6e..e820332 100644
--- a/chromeos/network/network_state_handler.h
+++ b/chromeos/network/network_state_handler.h
@@ -350,10 +350,16 @@
   // only set it.
   void SetWakeOnLanEnabled(bool enabled);
 
-  // Sets the HostName property. Note: we do not track this property, we
-  // only set it.
+  // Sets the DHCP HostName property. Note: This does not directly set
+  // |hostname_|, it sets the Shill property and relies on Shill emitting the
+  // change which updates the cached |hostname_|. This ensures that Chrome and
+  // Shill are in sync.
   void SetHostname(const std::string& hostname);
 
+  // Returns the cached DHCP HostName property provided by Shill. Initialized
+  // to an empty string and set once the Manager properties are received.
+  const std::string& hostname() const { return hostname_; }
+
   // Enable or disable network bandwidth throttling, on all interfaces on the
   // system. If |enabled| is true, |upload_rate_kbits| and |download_rate_kbits|
   // are the desired rates (in kbits/s) to throttle to. If |enabled| is false,
@@ -452,11 +458,8 @@
                                 const std::string& ip_config_path,
                                 const base::Value& properties) override;
 
-  // Called by ShillPropertyHandler when the portal check list manager property
-  // changes.
   void CheckPortalListChanged(const std::string& check_portal_list) override;
-
-  // Called by ShillPropertyHandler when a technology list changes.
+  void HostnameChanged(const std::string& hostname) override;
   void TechnologyListChanged() override;
 
   // Called by |shill_property_handler_| when the service or device list has
@@ -668,6 +671,9 @@
   // List of interfaces on which portal check is enabled.
   std::string check_portal_list_;
 
+  // DHCP Hostname.
+  std::string hostname_;
+
   // Map of network specifiers to guids. Contains an entry for each
   // NetworkState that is not saved in a profile.
   SpecifierGuidMap specifier_guid_map_;
diff --git a/chromeos/network/network_state_handler_observer.cc b/chromeos/network/network_state_handler_observer.cc
index aae9396..d34baea 100644
--- a/chromeos/network/network_state_handler_observer.cc
+++ b/chromeos/network/network_state_handler_observer.cc
@@ -34,6 +34,9 @@
 
 void NetworkStateHandlerObserver::ScanCompleted(const DeviceState* device) {}
 
+void NetworkStateHandlerObserver::HostnameChanged(const std::string& hostname) {
+}
+
 void NetworkStateHandlerObserver::OnShuttingDown() {}
 
 }  // namespace chromeos
diff --git a/chromeos/network/network_state_handler_observer.h b/chromeos/network/network_state_handler_observer.h
index dc25e846..2c6c3a4e 100644
--- a/chromeos/network/network_state_handler_observer.h
+++ b/chromeos/network/network_state_handler_observer.h
@@ -63,6 +63,9 @@
   // A scan for |device| completed.
   virtual void ScanCompleted(const DeviceState* device);
 
+  // The DHCP Hostname changed.
+  virtual void HostnameChanged(const std::string& hostname);
+
   // Called just before NetworkStateHandler is destroyed so that observers
   // can safely stop observing.
   virtual void OnShuttingDown();
diff --git a/chromeos/network/network_state_handler_unittest.cc b/chromeos/network/network_state_handler_unittest.cc
index 62042ef..f244157 100644
--- a/chromeos/network/network_state_handler_unittest.cc
+++ b/chromeos/network/network_state_handler_unittest.cc
@@ -149,6 +149,10 @@
     scan_completed_count_++;
   }
 
+  void HostnameChanged(const std::string& hostname) override {
+    hostname_ = hostname;
+  }
+
   size_t active_network_change_count() { return active_network_change_count_; }
   size_t default_network_change_count() {
     return default_network_change_count_;
@@ -162,6 +166,7 @@
     return scan_requests_;
   }
   size_t scan_completed_count() { return scan_completed_count_; }
+  const std::string& hostname() { return hostname_; }
   void reset_change_counts() {
     VLOG(1) << "=== RESET CHANGE COUNTS ===";
     active_network_change_count_ = 0;
@@ -211,6 +216,7 @@
   size_t network_count_ = 0;
   std::vector<NetworkTypePattern> scan_requests_;
   size_t scan_completed_count_ = 0;
+  std::string hostname_;
   std::vector<std::string> active_network_paths_;
   std::string default_network_;
   std::string default_network_connection_state_;
@@ -2260,4 +2266,17 @@
             test_observer_->ConnectionStateChangesForService(network->path()));
 }
 
+TEST_F(NetworkStateHandlerTest, Hostname) {
+  const std::string kTestHostname = "Test Hostname";
+  network_state_handler_->SetHostname(kTestHostname);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_EQ(network_state_handler_->hostname(), kTestHostname);
+  EXPECT_EQ(test_observer_->hostname(), kTestHostname);
+
+  network_state_handler_->SetHostname(std::string());
+  base::RunLoop().RunUntilIdle();
+  EXPECT_TRUE(network_state_handler_->hostname().empty());
+  EXPECT_TRUE(test_observer_->hostname().empty());
+}
+
 }  // namespace chromeos
diff --git a/chromeos/network/shill_property_handler.cc b/chromeos/network/shill_property_handler.cc
index 4f93324..42ee1d48 100644
--- a/chromeos/network/shill_property_handler.cc
+++ b/chromeos/network/shill_property_handler.cc
@@ -383,6 +383,10 @@
     std::string check_portal_list;
     if (value.GetAsString(&check_portal_list))
       listener_->CheckPortalListChanged(check_portal_list);
+  } else if (key == shill::kDhcpPropertyHostnameProperty) {
+    std::string hostname;
+    if (value.GetAsString(&hostname))
+      listener_->HostnameChanged(hostname);
   } else {
     VLOG(2) << "Ignored Manager Property: " << key;
   }
diff --git a/chromeos/network/shill_property_handler.h b/chromeos/network/shill_property_handler.h
index 0497d59..1a6fd316 100644
--- a/chromeos/network/shill_property_handler.h
+++ b/chromeos/network/shill_property_handler.h
@@ -80,6 +80,9 @@
     virtual void CheckPortalListChanged(
          const std::string& check_portal_list) = 0;
 
+    // Called when the DHCP Hostname property changes.
+    virtual void HostnameChanged(const std::string& hostname) = 0;
+
     // Called when a technology list changes.
     virtual void TechnologyListChanged() = 0;
 
diff --git a/chromeos/network/shill_property_handler_unittest.cc b/chromeos/network/shill_property_handler_unittest.cc
index 425fee38..589fdb82 100644
--- a/chromeos/network/shill_property_handler_unittest.cc
+++ b/chromeos/network/shill_property_handler_unittest.cc
@@ -76,13 +76,17 @@
     AddPropertyUpdate(shill::kIPConfigsProperty, ip_config_path);
   }
 
+  void CheckPortalListChanged(const std::string& check_portal_list) override {}
+
+  void HostnameChanged(const std::string& hostname) override {
+    hostname_ = hostname;
+  }
+
   void TechnologyListChanged() override {
     VLOG(1) << "TechnologyListChanged.";
     ++technology_list_updates_;
   }
 
-  void CheckPortalListChanged(const std::string& check_portal_list) override {}
-
   void ManagedStateListChanged(ManagedState::ManagedType type) override {
     VLOG(1) << "ManagedStateListChanged: " << GetTypeString(type);
     AddStateListUpdate(GetTypeString(type));
@@ -107,6 +111,7 @@
     list_updates_.clear();
     technology_list_updates_ = 0;
   }
+  std::string hostname() { return hostname_; }
   int errors() { return errors_; }
 
  private:
@@ -152,6 +157,7 @@
   // Map of list-type -> list update counts
   std::map<std::string, int> list_updates_;
   int technology_list_updates_;
+  std::string hostname_;
   int errors_;
 };
 
@@ -286,6 +292,14 @@
   EXPECT_EQ(0, listener_->errors());
 }
 
+TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerHostnameChanged) {
+  EXPECT_TRUE(listener_->hostname().empty());
+  const char kTestHostname[] = "Test Hostname";
+  shill_property_handler_->SetHostname(kTestHostname);
+  base::RunLoop().RunUntilIdle();
+  EXPECT_EQ(listener_->hostname(), kTestHostname);
+}
+
 TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerTechnologyChanged) {
   const int initial_technology_updates = 2;  // Available and Enabled lists
   EXPECT_EQ(initial_technology_updates, listener_->technology_list_updates());
diff --git a/chromeos/profiles/airmont.afdo.newest.txt b/chromeos/profiles/airmont.afdo.newest.txt
index b70d0fa..83834ffe 100644
--- a/chromeos/profiles/airmont.afdo.newest.txt
+++ b/chromeos/profiles/airmont.afdo.newest.txt
@@ -1 +1 @@
-chromeos-chrome-amd64-airmont-86-4183.57-1597053344-benchmark-86.0.4231.0-r1-redacted.afdo.xz
+chromeos-chrome-amd64-airmont-86-4183.57-1597053344-benchmark-86.0.4232.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/broadwell.afdo.newest.txt b/chromeos/profiles/broadwell.afdo.newest.txt
index 3f6d730a..1ee8ff29 100644
--- a/chromeos/profiles/broadwell.afdo.newest.txt
+++ b/chromeos/profiles/broadwell.afdo.newest.txt
@@ -1 +1 @@
-chromeos-chrome-amd64-broadwell-86-4183.48-1597052523-benchmark-86.0.4231.0-r1-redacted.afdo.xz
+chromeos-chrome-amd64-broadwell-86-4183.48-1597052523-benchmark-86.0.4232.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/silvermont.afdo.newest.txt b/chromeos/profiles/silvermont.afdo.newest.txt
index b536a89..aaa77600 100644
--- a/chromeos/profiles/silvermont.afdo.newest.txt
+++ b/chromeos/profiles/silvermont.afdo.newest.txt
@@ -1 +1 @@
-chromeos-chrome-amd64-silvermont-86-4183.57-1597055597-benchmark-86.0.4231.0-r1-redacted.afdo.xz
+chromeos-chrome-amd64-silvermont-86-4183.57-1597055597-benchmark-86.0.4232.0-r1-redacted.afdo.xz
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index 56a04339..91012abb 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">‏PUK غير صالح.</translation>
 <translation id="1510238584712386396">مشغِّل التطبيقات</translation>
 <translation id="1644574205037202324">السجل</translation>
+<translation id="1662989795263954667">توقّفت الطابعة - نفد الحبر</translation>
 <translation id="1734367976349034509">يخضع هذا الجهاز لإدارة المؤسسة</translation>
 <translation id="1905710495812624430">تم تجاوز الحد الأقصى لعدد المحاولات المسموح بها.</translation>
 <translation id="1930797645656624981">‏خدمة أسلوب الإدخال لنظام التشغيل Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">تنتهي صلاحية كلمة المرور في <ph name="TIME" /></translation>
 <translation id="4238516577297848345">ما من مهام قيد الطباعة.</translation>
 <translation id="428217921675623177">ستتم إزالة طلبات الطباعة التي مرَّ عليها أكثر من 90 يومًا.</translation>
+<translation id="4297501883039923494">توقّفت الطابعة - خطأ غير معروف</translation>
 <translation id="4429881212383817840">‏ستنتهي صلاحية تذكرة Kerberos قريبًا</translation>
 <translation id="445059817448385655">كلمة المرور القديمة</translation>
 <translation id="4627232916386272576">‏<ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="PRINTED_PAGE_NUMBER" /> من أصل <ph name="TOTAL_PAGE_NUMBER" />. يمكنك الضغط على enter لإلغاء مهمة الطباعة.</translation>
 <translation id="467510802200863975">كلمتا المرور غير متطابقتين.</translation>
+<translation id="4691278870498629773">توقّفت الطابعة - دُرج الورق غير متوفّر</translation>
 <translation id="4731797938093519117">وصول أحد الوالدين</translation>
 <translation id="4773299976671772492">متوقفة</translation>
 <translation id="4808449224298348341">تم إلغاء مهمة الطباعة للمستند <ph name="DOCUMENT_TITLE" />.</translation>
 <translation id="4890353053343094602">اختيار كلمة مرور جديدة فورًا</translation>
+<translation id="4917889632206600977">توقّفت الطابعة - نفد الورق</translation>
 <translation id="4932733599132424254">التاريخ</translation>
 <translation id="5212543919916444558">يتعذَّر عليَّ العثور على شيء مفيد في هذه الشاشة.
 يُرجى تجربة النقر على الميكروفون لمطالبتي بأي شيء.</translation>
 <translation id="5222676887888702881">تسجيل الخروج</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">حفظ</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />، <ph name="PRINTER_NAME" />، <ph name="CREATION_TIME" />، <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">اختيار كلمة مرور جديدة الآن</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">يُرجى إدخال كلمة المرور القديمة لإنهاء الإجراء.</translation>
 <translation id="6146993107019042706">يُرجى إدخال كلمة مرور جديدة لإنهاء الإجراء.</translation>
 <translation id="636850387210749493">التسجيل في المؤسسة</translation>
+<translation id="649050271426829538">توقّفت الطابعة - الورق مكدّس</translation>
 <translation id="6517239166834772319">استكشاف</translation>
 <translation id="6564646048574748301">تعذَّرت الطباعة - لا يمكن الوصول إلى الطابعة</translation>
 <translation id="6643016212128521049">محو</translation>
+<translation id="6747215703636344499">توقّفت الطابعة - دُرج الإخراج ممتلئ</translation>
 <translation id="7162487448488904999">معرض الصور</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">يتولّى مشرفك إدارة هذا الإجراء.</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">مهام الطباعة</translation>
 <translation id="8701136875688985581">يُدير <ph name="ENROLLMENT_DOMAIN" /> هذا المستخدِم. وقد يعمل على إدارة الإعدادات ورصد نشاط المستخدِم.</translation>
 <translation id="871560550817059752">تعذَّرت الطباعة - نفد الحبر</translation>
+<translation id="8726019395068607495">توقّفت الطابعة - باب الطابعة مفتوح</translation>
 <translation id="8747900814994928677">تأكيد التغيير</translation>
 <translation id="8919837981463578619">تعذَّرت الطباعة - دُرج الورق غير متوفّر</translation>
 <translation id="8928727111548978589">تعذَّرت الطباعة - نفد الورق</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb
index dc3e173..257b8aa9 100644
--- a/chromeos/strings/chromeos_strings_as.xtb
+++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">অমান্য PUK।</translation>
 <translation id="1510238584712386396">লঞ্চাৰ</translation>
 <translation id="1644574205037202324">ইতিহাস</translation>
+<translation id="1662989795263954667">বন্ধ হৈছে - চিয়াঁহী শেষ হৈছে</translation>
 <translation id="1734367976349034509">এই ডিভাইচ এণ্টাৰপ্ৰাইজৰ দ্বাৰা পৰিচালিত</translation>
 <translation id="1905710495812624430">চেষ্টা কৰাৰ সৰ্বাধিক সীমা অতিক্ৰম কৰিছে।</translation>
 <translation id="1930797645656624981">Chrome OS ইনপুট পদ্ধতি সেৱা</translation>
@@ -39,17 +40,22 @@
 <translation id="4227825898293920515">পাছৱর্ডৰ ম্যাদ উকলাৰ সময় <ph name="TIME" /></translation>
 <translation id="4238516577297848345">কোনো প্ৰিণ্টৰ কাম চলি থকা নাই</translation>
 <translation id="428217921675623177">৯০ দিনতকৈ পুৰণি প্ৰিণ্টৰ কামসমূহ আঁতৰোৱা হ’ব</translation>
+<translation id="4297501883039923494">বন্ধ হৈছে - অজ্ঞাত আসোঁৱাহ</translation>
 <translation id="4429881212383817840">Kerberos টিকেটৰ ম্যাদ শীঘ্ৰেই উকলি যাব</translation>
 <translation id="445059817448385655">পুৰণি পাছৱৰ্ড</translation>
 <translation id="4627232916386272576"><ph name="TOTAL_PAGE_NUMBER" />ৰ ভিতৰত <ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />। প্ৰিণ্টৰ কাৰ্যটো বাতিল কৰিবলৈ এণ্টাৰ টিপক।</translation>
 <translation id="467510802200863975">পাছৱৰ্ডসমূহ মিলা নাই</translation>
+<translation id="4691278870498629773">বন্ধ হৈছে - ট্ৰে’ উপলব্ধ নহয়</translation>
 <translation id="4731797938093519117">অভিভাৱকৰ এক্সেছ</translation>
+<translation id="4773299976671772492">বন্ধ হৈছে</translation>
 <translation id="4808449224298348341">বাতিল কৰা প্ৰিণ্টিঙৰ কাৰ্য <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">তৎক্ষণাত নতুন এটা বাছনি কৰক</translation>
+<translation id="4917889632206600977">বন্ধ হৈছে - কাগজ শেষ হৈছে</translation>
 <translation id="4932733599132424254">তাৰিখ</translation>
 <translation id="5212543919916444558">আপোনাক সহায় কৰিব পৰাকৈ মই আপোনাৰ স্ক্ৰীণত একো বিচাৰি পোৱা নাই।
 মোক কিবা সুধিবলৈ মাইকটো টিপক।</translation>
 <translation id="5222676887888702881">ছাইন আউট কৰক</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">ছেভ কৰক</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">এতিয়া নতুন এটা বাছনি কৰক</translation>
@@ -62,9 +68,11 @@
 <translation id="6106186594183574873">সম্পূর্ণ কৰিবলৈ আপোনাৰ পুৰণি পাছৱর্ড দিয়ক</translation>
 <translation id="6146993107019042706">সম্পূর্ণ কৰিবলৈ আপোনাৰ নতুন পাছৱর্ড দিয়ক</translation>
 <translation id="636850387210749493">এন্টাৰপ্ৰাইজৰ পঞ্জীয়ন</translation>
+<translation id="649050271426829538">বন্ধ হৈছে - কাগজ ঠাহ খাই গৈছে</translation>
 <translation id="6517239166834772319">অন্বেষণ</translation>
 <translation id="6564646048574748301">বিফল হৈছে - প্ৰিণ্টাৰৰ সৈতে সংযোগ কৰিব পৰা নাই</translation>
 <translation id="6643016212128521049">মচক</translation>
+<translation id="6747215703636344499">বন্ধ হৈছে - আউটপুট ভৰ্তি হৈ গৈছে</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">এই কাৰ্যটো আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation>
@@ -76,6 +84,7 @@
 <translation id="8347227221149377169">প্ৰিণ্টিঙৰ কামসমূহ</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" />এ এই ব্যৱহাৰকাৰী গৰাকীক পৰিচালনা কৰে। এইটোৱে হয়তো দূৰৰ পৰা ছেটিংসমূহ পৰিচালনা কৰিব আৰু ব্যৱহাৰকাৰীৰ কার্যকলাপ নিৰীক্ষণ কৰিব পাৰে।</translation>
 <translation id="871560550817059752">বিফল হৈছে - চিয়াহী শেষ হৈছে</translation>
+<translation id="8726019395068607495">বন্ধ হৈছে - দুৱাৰ খোল খাই আছে</translation>
 <translation id="8747900814994928677">সলনি কৰাটো নিশ্চিত কৰক</translation>
 <translation id="8919837981463578619">বিফল হৈছে - ট্ৰে’ উপলব্ধ নহয়</translation>
 <translation id="8928727111548978589">বিফল হৈছে - কাগজ শেষ হৈছে</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index 2af11b491..0983369 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Yanlış PUK.</translation>
 <translation id="1510238584712386396">Başladıcı</translation>
 <translation id="1644574205037202324">Tarixçə</translation>
+<translation id="1662989795263954667">Dayanıb - Mürəkkəb yoxdur</translation>
 <translation id="1734367976349034509">Bu cihaz korporativ idarə olunur</translation>
 <translation id="1905710495812624430">Maksimum icazə verilən cəhdlər bitdi</translation>
 <translation id="1930797645656624981">Chrome OS Daxiletmə Metodu Xidməti</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">Parolun vaxtı <ph name="TIME" /> ərzində başa çatır</translation>
 <translation id="4238516577297848345">Hazırda davam edən çap işləri yoxdur</translation>
 <translation id="428217921675623177">90 gündən köhnə çap işləri silinəcək</translation>
+<translation id="4297501883039923494">Dayanıb - Naməlum xəta</translation>
 <translation id="4429881212383817840">Kerberos biletinin vaxtı tezliklə başa çatacaq</translation>
 <translation id="445059817448385655">Köhnə parol</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Çap işini ləğv etmək üçün Enter düyməsinə basın.</translation>
 <translation id="467510802200863975">Parollar üst-üstə düşmür</translation>
+<translation id="4691278870498629773">Dayanıb - Altlıq yoxdur</translation>
 <translation id="4731797938093519117">Valideyn girişi</translation>
 <translation id="4773299976671772492">Durmuş</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> çap işi ləğv edilib</translation>
 <translation id="4890353053343094602">Dərhal yenisini seçin</translation>
+<translation id="4917889632206600977">Dayanıb - Kağız yoxdur</translation>
 <translation id="4932733599132424254">Tarix</translation>
 <translation id="5212543919916444558">Ekranınızda kömək edə biləcəyim heç nə tapmadım. Məndən hər hansı bir şey soruşmaq üçün mikrofona klikləyin.</translation>
 <translation id="5222676887888702881">Hesabdan çıxın</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Yadda saxlayın</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">İndi yenisini seçin</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">Tamamlamaq üçün köhnə parolu yazın</translation>
 <translation id="6146993107019042706">Tamamlamaq üçün yeni parolu daxil edin</translation>
 <translation id="636850387210749493">Sahibkarlıq qeydiyyatı</translation>
+<translation id="649050271426829538">Dayanıb - Kağız ilişib</translation>
 <translation id="6517239166834772319">Araşdırın</translation>
 <translation id="6564646048574748301">Alınmadı - Printer əlçatan deyil</translation>
 <translation id="6643016212128521049">Silin</translation>
+<translation id="6747215703636344499">Dayanıb - Çıxış doludur</translation>
 <translation id="7162487448488904999">Qalereya</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Bu əməliyyat admininiz tərəfindən idarə olunur</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">Çap işləri</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> bu istifadəçini idarə edir. O, ayarları məsafədən idarə edə və istifadəçi fəaliyyətini izləyə bilər.</translation>
 <translation id="871560550817059752">Alınmadı - Mürəkkəb yoxdur</translation>
+<translation id="8726019395068607495">Dayanıb - Qapı açıqdır</translation>
 <translation id="8747900814994928677">Dəyişikliyi təsdiqləyin</translation>
 <translation id="8919837981463578619">Alınmadı - Altlıq yoxdur</translation>
 <translation id="8928727111548978589">Alınmadı - Kağız yoxdur</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 5250a22..8e4d40ea 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Няправільны PUK-код.</translation>
 <translation id="1510238584712386396">Панэль запуску</translation>
 <translation id="1644574205037202324">Гісторыя</translation>
+<translation id="1662989795263954667">Спынена: скончылася чарніла</translation>
 <translation id="1734367976349034509">Прылада знаходзіцца пад кіраваннем арганізацыі</translation>
 <translation id="1905710495812624430">Перавышана максімальная колькасць спроб.</translation>
 <translation id="1930797645656624981">Сэрвіс метадаў уводу Chrome OS</translation>
@@ -39,17 +40,22 @@
 <translation id="4227825898293920515">Тэрмін дзеяння пароля заканчваецца праз <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Няма дзеючых заданняў друку</translation>
 <translation id="428217921675623177">Заданні друку, старэйшыя за 90 дзён, будуць выдалены</translation>
+<translation id="4297501883039923494">Спынена: невядомая памылка</translation>
 <translation id="4429881212383817840">Дзеянне білета Kerberos хутка скончыцца</translation>
 <translation id="445059817448385655">Стары пароль</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> з <ph name="TOTAL_PAGE_NUMBER" />. Каб скасаваць заданне друку, націсніце Enter.</translation>
 <translation id="467510802200863975">Паролі не супадаюць</translation>
+<translation id="4691278870498629773">Спынена: няма латка</translation>
 <translation id="4731797938093519117">Бацькоўскі доступ</translation>
+<translation id="4773299976671772492">Спынена</translation>
 <translation id="4808449224298348341">Заданне друку "<ph name="DOCUMENT_TITLE" />" скасавана</translation>
 <translation id="4890353053343094602">Неадкладна задайце новы</translation>
+<translation id="4917889632206600977">Спынена: скончылася папера</translation>
 <translation id="4932733599132424254">Дата</translation>
 <translation id="5212543919916444558">Я не магу знайсці на экране нічога, з чым я мог бы вам дапамагчы.
 Каб спытаць мяне аб чым-небудзь, паспрабуйце дакрануцца да мікрафона.</translation>
 <translation id="5222676887888702881">Выйсці</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Захаваць</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Задайце новы</translation>
@@ -62,9 +68,11 @@
 <translation id="6106186594183574873">Каб закончыць, увядзіце стары пароль</translation>
 <translation id="6146993107019042706">Каб закончыць, увядзіце новы пароль</translation>
 <translation id="636850387210749493">Рэгістрацыя для арганізацый</translation>
+<translation id="649050271426829538">Спынена: захрасла папера</translation>
 <translation id="6517239166834772319">Агляд</translation>
 <translation id="6564646048574748301">Збой: прынтар недаступны</translation>
 <translation id="6643016212128521049">Ачысціць</translation>
+<translation id="6747215703636344499">Спынена: выхадны латок запоўнены</translation>
 <translation id="7162487448488904999">Галерэя</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Гэтым дзеяннем кіруе адміністратар</translation>
@@ -76,6 +84,7 @@
 <translation id="8347227221149377169">Заданні друку</translation>
 <translation id="8701136875688985581">Гэты карыстальнік знаходзіцца пад кіраваннем дамена <ph name="ENROLLMENT_DOMAIN" />. Дамен можа кіраваць наладамі карыстальніка і адсочваць яго дзеянні.</translation>
 <translation id="871560550817059752">Збой: скончылася чарніла</translation>
+<translation id="8726019395068607495">Спынена: дзверцы прынтара адкрыты</translation>
 <translation id="8747900814994928677">Пацвярджэнне змен</translation>
 <translation id="8919837981463578619">Збой: няма латка</translation>
 <translation id="8928727111548978589">Збой: скончылася папера</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index 4e81cde..bb5b126 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">ভুল PUK।</translation>
 <translation id="1510238584712386396">লঞ্চার</translation>
 <translation id="1644574205037202324">ইতিহাস</translation>
+<translation id="1662989795263954667">বন্ধ হয়ে গেছে - প্রিন্টারে কালি ফুরিয়ে গেছে</translation>
 <translation id="1734367976349034509">এই ডিভাইসটি এন্টারপ্রাইজ পরিচালিত</translation>
 <translation id="1905710495812624430">সর্বোচ্চ অনুমোদিত প্রচেষ্টা ছাড়িয়ে গেছে।</translation>
 <translation id="1930797645656624981">Chrome OS ইনপুট পদ্ধতি পরিষেবা</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">পাসওয়ার্ডের মেয়াদ <ph name="TIME" />-এ শেষ হবে</translation>
 <translation id="4238516577297848345">প্রিন্ট করার কোনও কাজ চালু নেই</translation>
 <translation id="428217921675623177">৯০ দিনের বেশি পুরনো প্রিন্ট জবগুলি সরিয়ে দেওয়া হবে</translation>
+<translation id="4297501883039923494">বন্ধ হয়ে গেছে - অজানা সমস্যা</translation>
 <translation id="4429881212383817840">Kerberos টিকিটের মেয়াদ শীঘ্রই শেষ হয়ে যাবে</translation>
 <translation id="445059817448385655">পুরনো পাসওয়ার্ড</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />টির মধ্যে <ph name="PRINTED_PAGE_NUMBER" /> নম্বর পৃষ্ঠা। প্রিন্ট করা বাতিল করতে এন্টার প্রেস করুন।</translation>
 <translation id="467510802200863975">পাসওয়ার্ড মিলছে না</translation>
+<translation id="4691278870498629773">বন্ধ হয়ে গেছে - ট্রে লাগানো নেই</translation>
 <translation id="4731797938093519117">অভিভাবকীয় অ্যাক্সেস</translation>
 <translation id="4773299976671772492">থামানো হয়েছে</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> প্রিন্ট করার কাজ বাতিল করা হয়েছে</translation>
 <translation id="4890353053343094602">অবিলম্বে একটি নতুন পাসওয়ার্ড বেছে নিন</translation>
+<translation id="4917889632206600977">বন্ধ হয়ে গেছে - কাগজ শেষ হয়ে গেছে</translation>
 <translation id="4932733599132424254">তারিখ</translation>
 <translation id="5212543919916444558">আপনাকে সাহায্য করতে পারি এমন কিছুই আপনার স্ক্রিনে আমি খুঁজে পাইনি। আমাকে কিছু জিজ্ঞাসা করতে মাইকে ট্যাপ করুন।</translation>
 <translation id="5222676887888702881">সাইন-আউট করুন</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">সেভ করুন</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">এবার একটি নতুন পাসওয়ার্ড বেছে নিন</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">সম্পূর্ণ করতে, আপনার পুরনো পাসওয়ার্ড লিখুন</translation>
 <translation id="6146993107019042706">সম্পূর্ণ করতে, আপনার নতুন পাসওয়ার্ড লিখুন</translation>
 <translation id="636850387210749493">এন্টারপ্রাইজ নথিভুক্তিকরণ</translation>
+<translation id="649050271426829538">বন্ধ হয়ে গেছে - প্রিন্টারে কাগজ আটকে গেছে</translation>
 <translation id="6517239166834772319">ঘুরে দেখুন</translation>
 <translation id="6564646048574748301">প্রিন্ট করা যায়নি - প্রিন্টারের সাথে কানেক্ট করা যাচ্ছে না</translation>
 <translation id="6643016212128521049">সাফ করুন</translation>
+<translation id="6747215703636344499">বন্ধ হয়ে গেছে - আউটপুট ট্রে ভর্তি হয়ে গেছে</translation>
 <translation id="7162487448488904999">গ্যালারি</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">এই কাজটি আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">প্রিন্ট করার কাজগুলি</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> এই ব্যবহারকারীকে ম্যানেজ করে। এটি দূর থেকে সেটিংস ম্যানেজ করতে পারে এবং ব্যবহারকারীর গতিবিধির উপর নজর রাখতে পারে।</translation>
 <translation id="871560550817059752">প্রিন্ট করা যায়নি - প্রিন্টারে কালি নেই</translation>
+<translation id="8726019395068607495">বন্ধ হয়ে গেছে - প্রিন্টার ডোর খোলা আছে</translation>
 <translation id="8747900814994928677">পরিবর্তন কনফার্ম করুন</translation>
 <translation id="8919837981463578619">প্রিন্ট করা যায়নি - ট্রে পাওয়া যাচ্ছে না</translation>
 <translation id="8928727111548978589">প্রিন্ট করা যায়নি - কাগজ শেষ হয়ে গেছে</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb
index 148eab9..68f2ba4 100644
--- a/chromeos/strings/chromeos_strings_cs.xtb
+++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Neplatný kód PUK.</translation>
 <translation id="1510238584712386396">Spouštěč</translation>
 <translation id="1644574205037202324">Historie</translation>
+<translation id="1662989795263954667">Zastaveno – došel inkoust</translation>
 <translation id="1734367976349034509">Toto zařízení je spravováno organizací</translation>
 <translation id="1905710495812624430">Byl překročen maximální povolený počet pokusů.</translation>
 <translation id="1930797645656624981">Služba metod zadávání systému Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Platnost hesla vyprší za <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Nemáte žádné probíhající tiskové úlohy</translation>
 <translation id="428217921675623177">Tiskové úlohy starší než 90 dní budou odstraněny</translation>
+<translation id="4297501883039923494">Zastaveno – neznámá chyba</translation>
 <translation id="4429881212383817840">Platnost lístku Kerberos brzy vyprší</translation>
 <translation id="445059817448385655">Staré heslo</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> z <ph name="TOTAL_PAGE_NUMBER" />. Tiskovou úlohu zrušíte stisknutím klávesy Enter.</translation>
 <translation id="467510802200863975">Hesla se neshodují</translation>
+<translation id="4691278870498629773">Zastaveno – chybí zásobník</translation>
 <translation id="4731797938093519117">Rodičovský přístup</translation>
 <translation id="4773299976671772492">Zastaveno</translation>
 <translation id="4808449224298348341">Byla zrušena tisková úloha <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Ihned si zvolte nové</translation>
+<translation id="4917889632206600977">Zastaveno – došel papír</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="5212543919916444558">Na obrazovce nevidím nic, s čím vám můžu pomoct.
 Zkuste klepnout na mikrofon a zeptat se.</translation>
 <translation id="5222676887888702881">Odhlásit se</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Uložit</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Zvolte si nové</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Chcete-li akci dokončit, zadejte své staré heslo</translation>
 <translation id="6146993107019042706">Chcete-li akci dokončit, zadejte své nové heslo</translation>
 <translation id="636850387210749493">Registrace podniku</translation>
+<translation id="649050271426829538">Zastaveno – zasekl se papír</translation>
 <translation id="6517239166834772319">Explore</translation>
 <translation id="6564646048574748301">Tisk selhal – tiskárna není dostupná</translation>
 <translation id="6643016212128521049">Vymazat</translation>
+<translation id="6747215703636344499">Zastaveno – výstupní zásobník je plný</translation>
 <translation id="7162487448488904999">Galerie</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Tuto akci spravuje administrátor</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tiskové úlohy</translation>
 <translation id="8701136875688985581">Tohoto uživatele spravuje doména <ph name="ENROLLMENT_DOMAIN" />. Může vzdáleně spravovat nastavení a sledovat aktivitu uživatele.</translation>
 <translation id="871560550817059752">Tisk selhal – došel inkoust</translation>
+<translation id="8726019395068607495">Zastaveno – jsou otevřená dvířka</translation>
 <translation id="8747900814994928677">Potvrdit změnu</translation>
 <translation id="8919837981463578619">Tisk selhal – chybí zásobník</translation>
 <translation id="8928727111548978589">Tisk selhal – došel papír</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index 0f881913..5f109217 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK no válida.</translation>
 <translation id="1510238584712386396">Selector</translation>
 <translation id="1644574205037202324">Historial</translation>
+<translation id="1662989795263954667">Se detuvo: Sin tinta</translation>
 <translation id="1734367976349034509">Este dispositivo está administrado por una empresa</translation>
 <translation id="1905710495812624430">Se superó la cantidad máxima de intentos permitidos.</translation>
 <translation id="1930797645656624981">Servicio de método de entrada del Sistema operativo Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">La contraseña caduca en <ph name="TIME" /></translation>
 <translation id="4238516577297848345">No hay trabajos de impresión en curso</translation>
 <translation id="428217921675623177">Se quitarán los trabajos de impresión que tengan más de 90 días</translation>
+<translation id="4297501883039923494">Se detuvo: Error desconocido</translation>
 <translation id="4429881212383817840">El ticket de Kerberos caducará pronto</translation>
 <translation id="445059817448385655">Contraseña anterior</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de un total de <ph name="TOTAL_PAGE_NUMBER" />. Presiona Intro para cancelar el trabajo de impresión.</translation>
 <translation id="467510802200863975">Las contraseñas no coinciden</translation>
+<translation id="4691278870498629773">Se detuvo: Falta la bandeja</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
 <translation id="4773299976671772492">Detenida</translation>
 <translation id="4808449224298348341">Se canceló el trabajo de impresión <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Elige una nueva de inmediato</translation>
+<translation id="4917889632206600977">Se detuvo: No hay papel</translation>
 <translation id="4932733599132424254">Fecha</translation>
 <translation id="5212543919916444558">No hay nada en la pantalla con lo que pueda ayudarte.
 Intenta presionar el micrófono para hacerme una pregunta.</translation>
 <translation id="5222676887888702881">Salir</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Guardar</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Elige una nueva ahora</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Para finalizar, ingresa tu contraseña anterior</translation>
 <translation id="6146993107019042706">Para finalizar, ingresa tu nueva contraseña</translation>
 <translation id="636850387210749493">Registro de empresa</translation>
+<translation id="649050271426829538">Se detuvo: Se atascó el papel</translation>
 <translation id="6517239166834772319">Explorar</translation>
 <translation id="6564646048574748301">Error: No se puede acceder a la impresora</translation>
 <translation id="6643016212128521049">Borrar</translation>
+<translation id="6747215703636344499">Se detuvo: La bandeja de salida está llena</translation>
 <translation id="7162487448488904999">Galería</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">El administrador controla esta acción</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Trabajos de impresión</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> administra a este usuario. Puede supervisar la actividad del usuario y cambiar la configuración de forma remota.</translation>
 <translation id="871560550817059752">Error: Sin tinta</translation>
+<translation id="8726019395068607495">Se detuvo: La tapa está abierta</translation>
 <translation id="8747900814994928677">Confirmar cambio</translation>
 <translation id="8919837981463578619">Error: Falta la bandeja</translation>
 <translation id="8928727111548978589">Error: No hay papel</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index ba5358a..612859c 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">El PUK no es válido.</translation>
 <translation id="1510238584712386396">Menú de aplicaciones</translation>
 <translation id="1644574205037202324">Historial</translation>
+<translation id="1662989795263954667">Detenido: sin tinta</translation>
 <translation id="1734367976349034509">Este es un dispositivo administrado por la empresa</translation>
 <translation id="1905710495812624430">Se ha superado el máximo de intentos permitidos.</translation>
 <translation id="1930797645656624981">Servicio de método de introducción de Chrome OS</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">La contraseña caducará dentro de <ph name="TIME" /></translation>
 <translation id="4238516577297848345">No hay ningún trabajo de impresión en curso</translation>
 <translation id="428217921675623177">Los trabajos de impresión con más 90 días de antigüedad se eliminarán</translation>
+<translation id="4297501883039923494">Detenido: error desconocido</translation>
 <translation id="4429881212383817840">El ticket de Kerberos caducará pronto</translation>
 <translation id="445059817448385655">Contraseña antigua</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Pulsa Intro para cancelar el trabajo de impresión.</translation>
 <translation id="467510802200863975">Las contraseñas no coinciden</translation>
+<translation id="4691278870498629773">Detenido: falta la bandeja</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
 <translation id="4773299976671772492">Detenido</translation>
 <translation id="4808449224298348341">Trabajo de impresión <ph name="DOCUMENT_TITLE" /> cancelado</translation>
 <translation id="4890353053343094602">Selecciona otra inmediatamente</translation>
+<translation id="4917889632206600977">Detenido: sin papel</translation>
 <translation id="4932733599132424254">Fecha</translation>
 <translation id="5212543919916444558">No encuentro nada en la pantalla con lo que pueda ayudarte. Toca el micrófono para pedirme algo.</translation>
 <translation id="5222676887888702881">Cerrar sesión</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Guardar</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Selecciona otra ahora</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">Para finalizar, introduce tu contraseña anterior</translation>
 <translation id="6146993107019042706">Para finalizar, introduce tu contraseña nueva</translation>
 <translation id="636850387210749493">Registro de empresa</translation>
+<translation id="649050271426829538">Detenido: atasco de papel</translation>
 <translation id="6517239166834772319">Explorar</translation>
 <translation id="6564646048574748301">No se ha podido imprimir - Impresora inaccesible</translation>
 <translation id="6643016212128521049">Eliminar</translation>
+<translation id="6747215703636344499">Detenido: bandeja de salida llena</translation>
 <translation id="7162487448488904999">Galería</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Esta acción la gestiona tu administrador</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">Trabajos de impresión</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> gestiona este usuario. Puede gestionar ajustes y supervisar la actividad del usuario de forma remota.</translation>
 <translation id="871560550817059752">No se ha podido imprimir - Sin tinta</translation>
+<translation id="8726019395068607495">Detenido: cubierta abierta</translation>
 <translation id="8747900814994928677">Confirmar cambio</translation>
 <translation id="8919837981463578619">No se ha podido imprimir - Falta una bandeja</translation>
 <translation id="8928727111548978589">No se ha podido imprimir - Sin papel</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb
index 89ea7150..b81637a 100644
--- a/chromeos/strings/chromeos_strings_eu.xtb
+++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK kodeak ez du balio.</translation>
 <translation id="1510238584712386396">Abiarazlea</translation>
 <translation id="1644574205037202324">Historia</translation>
+<translation id="1662989795263954667">Geldituta: ez dago tintarik</translation>
 <translation id="1734367976349034509">Enpresak kudeatzen du gailu hau</translation>
 <translation id="1905710495812624430">Saiakera-muga gainditu da.</translation>
 <translation id="1930797645656624981">Chrome OS sistemako idazketa-metodoaren zerbitzua</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515"><ph name="TIME" /> barru iraungiko da pasahitza</translation>
 <translation id="4238516577297848345">Ez dago inprimatze-lanik abian</translation>
 <translation id="428217921675623177">90 egun baino gehiagoko inprimatze-lanak kendu egingo dira</translation>
+<translation id="4297501883039923494">Geldituta: errore ezezaguna</translation>
 <translation id="4429881212383817840">Laster iraungiko da Kerberos-eko zerbitzu-eskaera</translation>
 <translation id="445059817448385655">Pasahitz zaharra</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" /> (<ph name="CREATION_TIME" />) - <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> orri Sakatu Sartu inprimatze-lana bertan behera uzteko.</translation>
 <translation id="467510802200863975">Pasahitzak ez datoz bat</translation>
+<translation id="4691278870498629773">Geldituta: erretilua falta da</translation>
 <translation id="4731797938093519117">Gurasoen sarbidea</translation>
 <translation id="4773299976671772492">Gelditu egin da</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> inprimatze-lana bertan behera utzi da</translation>
 <translation id="4890353053343094602">Aukeratu beste bat berehala</translation>
+<translation id="4917889632206600977">Geldituta: ez dago paperik</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="5212543919916444558">Ezin dizut lagundu pantailako ezerekin.
 Sakatu mikrofonoa zerbait galdetu nahi badidazu.</translation>
 <translation id="5222676887888702881">Amaitu saioa</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" /> (<ph name="CREATION_TIME" />), <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Gorde</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" /> (<ph name="CREATION_TIME" />), <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Aukeratu beste bat</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Amaitzeko, idatzi pasahitz zaharra</translation>
 <translation id="6146993107019042706">Amaitzeko, idatzi pasahitz berria</translation>
 <translation id="636850387210749493">Erregistratu erakundean</translation>
+<translation id="649050271426829538">Geldituta: papera trabatuta dago</translation>
 <translation id="6517239166834772319">Arakatu</translation>
 <translation id="6564646048574748301">Hutsegitea - Inprimagailua ez da aurkitu</translation>
 <translation id="6643016212128521049">Garbitu</translation>
+<translation id="6747215703636344499">Geldituta: irteera-erretilua beteta dago</translation>
 <translation id="7162487448488904999">Galeria</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Administratzaileak kudeatzen du ekintza hau</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Inprimatze-lanak</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> domeinuak kudeatzen du erabiltzaile hau. Ezarpenak kudeatu eta erabiltzailearen jarduerak gainbegira ditzake urrunetik.</translation>
 <translation id="871560550817059752">Hutsegitea - Ez dago tintarik</translation>
+<translation id="8726019395068607495">Geldituta: atea irekita dago</translation>
 <translation id="8747900814994928677">Berretsi aldaketa</translation>
 <translation id="8919837981463578619">Hutsegitea - Erretilua falta da</translation>
 <translation id="8928727111548978589">Hutsegitea - Ez dago paperik</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index ec01a77..8172a33 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Virheellinen PUK-koodi</translation>
 <translation id="1510238584712386396">Käynnistysohjelma</translation>
 <translation id="1644574205037202324">Historia</translation>
+<translation id="1662989795263954667">Pysähtynyt – Muste loppu</translation>
 <translation id="1734367976349034509">Tämä laite on yrityksen hallinnoima.</translation>
 <translation id="1905710495812624430">Yritysten enimmäismäärä ylitettiin.</translation>
 <translation id="1930797645656624981">Chrome-käyttöjärjestelmän syöttöpalvelu</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Salasana vanhenee: <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Ei tulostustöitä käynnissä</translation>
 <translation id="428217921675623177">Yli 90 päivää vanhat tulostustyöt poistetaan</translation>
+<translation id="4297501883039923494">Pysähtynyt – Tuntematon virhe</translation>
 <translation id="4429881212383817840">Kerberos-tukipyyntö vanhenee pian</translation>
 <translation id="445059817448385655">Vanha salasana</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> Peruuta tulostustyö painamalla Enter.</translation>
 <translation id="467510802200863975">Salasanat eivät täsmää</translation>
+<translation id="4691278870498629773">Pysähtynyt – Lokero puuttuu</translation>
 <translation id="4731797938093519117">Avaus vanhemmille</translation>
 <translation id="4773299976671772492">Keskeytetty</translation>
 <translation id="4808449224298348341">Peruutettu tulostustyö: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Valitse uusi välittömästi</translation>
+<translation id="4917889632206600977">Pysähtynyt – Paperi loppu</translation>
 <translation id="4932733599132424254">Päiväys</translation>
 <translation id="5212543919916444558">En löydä näytöltä mitään, minkä kanssa voisin auttaa sinua.
 Napauta mikrofonia, niin voit kysyä mitä haluat.</translation>
 <translation id="5222676887888702881">Kirjaudu ulos</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Tallenna</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Valitse uusi nyt</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Lisää lopuksi vanha salasana</translation>
 <translation id="6146993107019042706">Lisää lopuksi uusi salasana</translation>
 <translation id="636850387210749493">Yritysversion käyttöönotto</translation>
+<translation id="649050271426829538">Pysähtynyt – Paperitukos</translation>
 <translation id="6517239166834772319">Explore</translation>
 <translation id="6564646048574748301">Epäonnistui – Ei yhteyttä tulostimeen</translation>
 <translation id="6643016212128521049">Tyhjennä</translation>
+<translation id="6747215703636344499">Pysähtynyt – Syöte täynnä</translation>
 <translation id="7162487448488904999">Galleria</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Järjestelmänvalvojasi ylläpitää tätä toimintoa</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tulostustyöt</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> on tämän käyttäjän ylläpitäjä. Se voi muuttaa asetuksia ja seurata käyttäjän toimia etänä.</translation>
 <translation id="871560550817059752">Epäonnistui – Muste loppu</translation>
+<translation id="8726019395068607495">Pysähtynyt – Luukku auki</translation>
 <translation id="8747900814994928677">Vahvista muutos</translation>
 <translation id="8919837981463578619">Epäonnistui – Lokero puuttuu</translation>
 <translation id="8928727111548978589">Epäonnistui – Paperi loppu</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 41679f90..bc49ea7e 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Di-wasto ang PUK.</translation>
 <translation id="1510238584712386396">Launcher</translation>
 <translation id="1644574205037202324">History</translation>
+<translation id="1662989795263954667">Huminto - Wala nang ink</translation>
 <translation id="1734367976349034509">Ang device na ito ay pinamamahalaan ng enterprise</translation>
 <translation id="1905710495812624430">Nalampasan na ang maximum na pinapahintulutang bilang ng pagsubok</translation>
 <translation id="1930797645656624981">Serbisyo ng Pamamaraan ng Pag-input ng Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Mag-e-expire ang password sa loob ng <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Walang kasalukuyang pag-print</translation>
 <translation id="428217921675623177">Aalisin ang mga pag-print na lampas na sa 90 araw</translation>
+<translation id="4297501883039923494">Huminto - Hindi kilalang error</translation>
 <translation id="4429881212383817840">Mag-e-expire na ang ticket ng Kerberos</translation>
 <translation id="445059817448385655">Lumang password</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sa <ph name="TOTAL_PAGE_NUMBER" />. Pindutin ang enter para kanselahin ang pag-print.</translation>
 <translation id="467510802200863975">Hindi nagtutugma ang mga password</translation>
+<translation id="4691278870498629773">Huminto - Walang tray</translation>
 <translation id="4731797938093519117">Pangunahing access</translation>
 <translation id="4773299976671772492">Inihinto</translation>
 <translation id="4808449224298348341">Kinansela ang pag-print ng <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Pumili agad ng bago</translation>
+<translation id="4917889632206600977">Huminto - Wala nang papel</translation>
 <translation id="4932733599132424254">Petsa</translation>
 <translation id="5212543919916444558">Wala akong makitang kahit ano sa iyong screen kung saan ako makakatulong.
 Subukang i-tap ang mikropono para humiling sa akin ng kahit ano.</translation>
 <translation id="5222676887888702881">Mag-sign out</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">I-save</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Pumili ng bago ngayon</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Para tapusin, ilagay ang iyong lumang password</translation>
 <translation id="6146993107019042706">Para tapusin, ilagay ang bago mong password</translation>
 <translation id="636850387210749493">Pagpapatala ng negosyo</translation>
+<translation id="649050271426829538">Huminto - Nagka-paper jam</translation>
 <translation id="6517239166834772319">Explore</translation>
 <translation id="6564646048574748301">Hindi na-print - Hindi makakonekta sa printer</translation>
 <translation id="6643016212128521049">I-clear</translation>
+<translation id="6747215703636344499">Huminto - Puno na ang output</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Pinapamahalaan ng iyong administrator ang pagkilos na ito.</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Mga pag-print</translation>
 <translation id="8701136875688985581">Pinapamahalaan ng <ph name="ENROLLMENT_DOMAIN" /> ang user na ito. Posible nitong pamahalaan ang mga setting at subaybayan ang aktibidad ng user sa remote na paraan.</translation>
 <translation id="871560550817059752">Hindi na-print - Wala nang ink</translation>
+<translation id="8726019395068607495">Huminto - Nakabukas ang door</translation>
 <translation id="8747900814994928677">Kumpirmahin ang pagbabago</translation>
 <translation id="8919837981463578619">Hindi na-print - Walang tray</translation>
 <translation id="8928727111548978589">Hindi na-print - Wala nang papel</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb
index 4c1cd306..4c205dd 100644
--- a/chromeos/strings/chromeos_strings_fr-CA.xtb
+++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Clé PUK non valide.</translation>
 <translation id="1510238584712386396">Lanceur</translation>
 <translation id="1644574205037202324">Historique</translation>
+<translation id="1662989795263954667">Tâchez arrêtée : à court d'encre</translation>
 <translation id="1734367976349034509">Cet appareil est géré par une entreprise</translation>
 <translation id="1905710495812624430">Nombre maximal autorisé de tentatives atteint.</translation>
 <translation id="1930797645656624981">Service de méthode d'entrée Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Le mot de passe expire dans <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Aucune tâche d'impression en cours</translation>
 <translation id="428217921675623177">Les tâches d'impression datant de plus de 90 jours seront supprimées</translation>
+<translation id="4297501883039923494">Tâche arrêtée : erreur inconnue</translation>
 <translation id="4429881212383817840">Le ticket Kerberos expire bientôt</translation>
 <translation id="445059817448385655">Ancien mot de passe</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sur <ph name="TOTAL_PAGE_NUMBER" />. Appuyez sur Entrée pour annuler la tâche d'impression.</translation>
 <translation id="467510802200863975">Les mots de passe ne correspondent pas</translation>
+<translation id="4691278870498629773">Tâche arrêtée : bac manquant</translation>
 <translation id="4731797938093519117">Accès parental</translation>
 <translation id="4773299976671772492">Arrêté</translation>
 <translation id="4808449224298348341">Tâche d'impression annulée : <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Choisissez-en un immédiatement</translation>
+<translation id="4917889632206600977">Tâche arrêtée : à court de papier</translation>
 <translation id="4932733599132424254">Date</translation>
 <translation id="5212543919916444558">Je ne trouve aucun élément sur votre écran pour lequel je peux vous aider.
 Essayez de toucher le micro pour me demander ce que vous souhaitez.</translation>
 <translation id="5222676887888702881">Déconnexion</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Enregistrer</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Choisissez-en un nouveau maintenant</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Pour terminer cette opération, entrez votre ancien mot de passe</translation>
 <translation id="6146993107019042706">Pour terminer cette opération, entrez votre nouveau mot de passe</translation>
 <translation id="636850387210749493">Inscription d'entreprise</translation>
+<translation id="649050271426829538">Tâche arrêtée : bourrage de papier</translation>
 <translation id="6517239166834772319">Explorer</translation>
 <translation id="6564646048574748301">Échec : imprimante inaccessible</translation>
 <translation id="6643016212128521049">Effacer</translation>
+<translation id="6747215703636344499">Tâche arrêtée : le plateau de sortie est plein</translation>
 <translation id="7162487448488904999">Galerie</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" /> sur <ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">C'est votre administrateur qui gère cette action</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tâches d'impression</translation>
 <translation id="8701136875688985581">Le domaine <ph name="ENROLLMENT_DOMAIN" /> gère cet utilisateur. Il peut gérer les paramètres et faire le suivi de l'activité de l'utilisateur à distance.</translation>
 <translation id="871560550817059752">Échec : à court d'encre</translation>
+<translation id="8726019395068607495">Tâchez arrêtée : porte de l'imprimante ouverte</translation>
 <translation id="8747900814994928677">Confirmer la modification</translation>
 <translation id="8919837981463578619">Échec : bac manquant</translation>
 <translation id="8928727111548978589">Échec : à court de papier</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb
index 2c80b67..0de4f9cf 100644
--- a/chromeos/strings/chromeos_strings_fr.xtb
+++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Clé PUK incorrecte.</translation>
 <translation id="1510238584712386396">Lanceur d'applications</translation>
 <translation id="1644574205037202324">Historique</translation>
+<translation id="1662989795263954667">Arrêt - À court d'encre</translation>
 <translation id="1734367976349034509">Cet appareil est géré par une entreprise</translation>
 <translation id="1905710495812624430">Vous avez atteint le nombre maximal autorisé de tentatives.</translation>
 <translation id="1930797645656624981">Service de mode de saisie Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Le mot de passe arrive à expiration dans <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Aucune tâche d'impression en cours</translation>
 <translation id="428217921675623177">Les tâches d'impression datant de plus de 90 jours seront supprimées</translation>
+<translation id="4297501883039923494">Arrêt - Erreur inconnue</translation>
 <translation id="4429881212383817840">Le ticket Kerberos arrive bientôt à expiration</translation>
 <translation id="445059817448385655">Ancien mot de passe</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sur <ph name="TOTAL_PAGE_NUMBER" />. Appuyez sur Entrée pour annuler la tâche d'impression.</translation>
 <translation id="467510802200863975">Les mots de passe sont différents</translation>
+<translation id="4691278870498629773">Arrêt - Bac manquant</translation>
 <translation id="4731797938093519117">Accès parental</translation>
 <translation id="4773299976671772492">Interrompu</translation>
 <translation id="4808449224298348341">Tâche d'impression annulée pour <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Choisissez-en un nouveau immédiatement</translation>
+<translation id="4917889632206600977">Arrêt - À court de papier</translation>
 <translation id="4932733599132424254">Date</translation>
 <translation id="5212543919916444558">Je ne parviens pas à détecter d'éléments sur votre écran pour lesquels je peux vous aider.
 Veuillez appuyer sur le micro pour me poser une question.</translation>
 <translation id="5222676887888702881">Déconnexion</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Enregistrer</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Choisissez-en un nouveau maintenant</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Pour terminer, saisissez votre ancien mot de passe</translation>
 <translation id="6146993107019042706">Pour terminer, saisissez votre nouveau mot de passe</translation>
 <translation id="636850387210749493">Inscription d'entreprise</translation>
+<translation id="649050271426829538">Arrêt - Bourrage papier</translation>
 <translation id="6517239166834772319">Explorer</translation>
 <translation id="6564646048574748301">Échec – Imprimante inaccessible</translation>
 <translation id="6643016212128521049">Effacer</translation>
+<translation id="6747215703636344499">Arrêt - Bac de sortie plein</translation>
 <translation id="7162487448488904999">Galerie</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Cette action est gérée par votre administrateur</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tâches d'impression</translation>
 <translation id="8701136875688985581">Cet utilisateur est géré par <ph name="ENROLLMENT_DOMAIN" />, qui peut modifier ses paramètres et surveiller son activité à distance.</translation>
 <translation id="871560550817059752">Échec – À court d'encre</translation>
+<translation id="8726019395068607495">Arrêt - Capot ouvert</translation>
 <translation id="8747900814994928677">Confirmer la modification</translation>
 <translation id="8919837981463578619">Échec – Bac à papier manquant</translation>
 <translation id="8928727111548978589">Échec – À court de papier</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb
index 81e255d..774b9b0 100644
--- a/chromeos/strings/chromeos_strings_gu.xtb
+++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">અમાન્ય PUK.</translation>
 <translation id="1510238584712386396">લૉન્ચર</translation>
 <translation id="1644574205037202324">ઇતિહાસ</translation>
+<translation id="1662989795263954667">બંધ - શાહી ખલાસ થઈ ગઈ</translation>
 <translation id="1734367976349034509">આ ઉપકરણ એન્ટરપ્રાઇઝ દ્વારા સંચાલિત થાય છે</translation>
 <translation id="1905710495812624430">મહત્તમ મંજૂર પ્રયત્નોની સંખ્યા ઓળંગાઈ.</translation>
 <translation id="1930797645656624981">Chrome OS ઇનપુટ પદ્ધતિ સેવા</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515"><ph name="TIME" />માં પાસવર્ડની સમયસીમા સમાપ્ત થાય છે</translation>
 <translation id="4238516577297848345">કોઈ પ્રિન્ટ કામ ચાલુ નથી</translation>
 <translation id="428217921675623177">90 દિવસ કરતાં જૂનાં પ્રિન્ટ કાર્યો કાઢી નાખવામાં આવશે</translation>
+<translation id="4297501883039923494">બંધ - અજાણી ભૂલ</translation>
 <translation id="4429881212383817840">ટૂંક સમયમાં Kerberos ટિકિટની સમયસીમા સમાપ્ત થશે</translation>
 <translation id="445059817448385655">જૂનો પાસવર્ડ</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />માંથી <ph name="PRINTED_PAGE_NUMBER" />. પ્રિન્ટ કરવાનું અટકાવવા માટે, Enter કી દબાવો.</translation>
 <translation id="467510802200863975">પાસવર્ડ મેળ ખાતા નથી</translation>
+<translation id="4691278870498629773">બંધ - ટ્રે ખૂટે છે</translation>
 <translation id="4731797938093519117">માતાપિતા માટે ઍક્સેસ</translation>
 <translation id="4773299976671772492">રોક્યું</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" />ને પ્રિન્ટ કરવાનું રદ કર્યું</translation>
 <translation id="4890353053343094602">તરત જ નવો પાસવર્ડ પસંદ કરો</translation>
+<translation id="4917889632206600977">બંધ - કાગળ ખલાસ થઈ ગયા</translation>
 <translation id="4932733599132424254">તારીખ</translation>
 <translation id="5212543919916444558">મને તમારી સ્ક્રીન પર એવી કોઈપણ વસ્તુ મળી નથી કે જેમાં હું તમારી સહાય કરી શકું. મને કંઈપણ પૂછવા માટે માઇકને ટૅપ કરી જુઓ.</translation>
 <translation id="5222676887888702881">સાઇન આઉટ</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">સાચવો</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">કૃપા કરીને નવો પાસવર્ડ પસંદ કરો</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">સમાપ્ત કરવા માટે, તમારો જૂનો પાસવર્ડ દાખલ કરો</translation>
 <translation id="6146993107019042706">સમાપ્ત કરવા માટે, તમારો નવો પાસવર્ડ દાખલ કરો</translation>
 <translation id="636850387210749493">સંગઠન નોંધણી</translation>
+<translation id="649050271426829538">બંધ - કાગળ ફસાયો</translation>
 <translation id="6517239166834772319">શોધખોળ કરો</translation>
 <translation id="6564646048574748301">નિષ્ફળ થયું - પ્રિન્ટરથી કનેક્ટ થઈ શકાતું નથી</translation>
 <translation id="6643016212128521049">સાફ કરો</translation>
+<translation id="6747215703636344499">બંધ - આઉટપુટ ભરાઈ ગયું છે</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">આ ક્રિયાને તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">પ્રિન્ટ કરવાના કામો</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> આ વપરાશકર્તાને મેનેજ કરે છે. આ કદાચ સેટિંગ અને વપરાશકર્તાની પ્રવૃત્તિને દૂરથી મેનેજ અને તેનું નિરીક્ષણ કરી શકે.</translation>
 <translation id="871560550817059752">નિષ્ફળ થયું - પ્રિન્ટરમાં શાહી પૂરી થઈ ગઈ છે</translation>
+<translation id="8726019395068607495">બંધ - ઢાંકણ ખુલ્લું છે</translation>
 <translation id="8747900814994928677">ફેરફાર કન્ફર્મ કરો</translation>
 <translation id="8919837981463578619">નિષ્ફળ થયું - ટ્રે ખૂટે છે</translation>
 <translation id="8928727111548978589">નિષ્ફળ થયું - પ્રિન્ટરમાં કાગળ પૂરા થઈ ગયા છે</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 43381457..852e0ae 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">गलत पीयूके.</translation>
 <translation id="1510238584712386396">लॉन्चर</translation>
 <translation id="1644574205037202324">इतिहास</translation>
+<translation id="1662989795263954667">बंद हो गया - स्याही खत्म हो गई</translation>
 <translation id="1734367976349034509">यह डिवाइस एंटरप्राइज़ द्वारा प्रबंधित है</translation>
 <translation id="1905710495812624430">अधिकतम स्वीकार्य प्रयासों की सीमा पार हो गई है.</translation>
 <translation id="1930797645656624981">Chrome OS के इनपुट के तरीके की सेवा</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515"><ph name="TIME" /> में पासवर्ड की समयसीमा खत्म हो जाएगी</translation>
 <translation id="4238516577297848345">फ़िलहाल, कुछ प्रिंट नहीं हो रहा</translation>
 <translation id="428217921675623177">90 दिन पहले प्रिंट की गई चीज़ों की जानकारी हटा दी जाएगी</translation>
+<translation id="4297501883039923494">बंद हो गया - अज्ञात गड़बड़ी</translation>
 <translation id="4429881212383817840">Kerberos टिकट की समयसीमा जल्द ही खत्म होने वाली है</translation>
 <translation id="445059817448385655">पुराना पासवर्ड</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> में से <ph name="PRINTED_PAGE_NUMBER" />. प्रिंट का काम बंद करने के लिए enter का बटन दबाएं.</translation>
 <translation id="467510802200863975">पासवर्ड मेल नहीं खाते</translation>
+<translation id="4691278870498629773">बंद हो गया - ट्रे नहीं है</translation>
 <translation id="4731797938093519117">अभिभावक ऐक्सेस</translation>
 <translation id="4773299976671772492">रोक दिया गया</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> के प्रिंट का काम बंद किया गया</translation>
 <translation id="4890353053343094602">तुरंत कोई नया पासवर्ड चुनें</translation>
+<translation id="4917889632206600977">बंद हो गया - काग़ज़ खत्म हो गया</translation>
 <translation id="4932733599132424254">तारीख</translation>
 <translation id="5212543919916444558">मुझे आपकी स्क्रीन पर ऐसा कुछ नहीं मिला जिसमें मैं आपकी सहायता कर पाऊं.
 मुझे कुछ पूछने के लिए माइक टैप करके देखें.</translation>
 <translation id="5222676887888702881">साइन आउट करें</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">सेव करें</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">कोई नया पासवर्ड चुनें</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">पूरा करने के लिए, पुराना पासवर्ड डालें</translation>
 <translation id="6146993107019042706">खत्म करने के लिए, नया पासवर्ड डालें</translation>
 <translation id="636850387210749493">एंटरप्राइज़ नामांकन</translation>
+<translation id="649050271426829538">बंद हो गया - काग़ज़ फंसा है</translation>
 <translation id="6517239166834772319">एक्सप्लोर करें</translation>
 <translation id="6564646048574748301">प्रिंट नहीं हो पाया - प्रिंटर से कनेक्ट नहीं हो पा रहा है</translation>
 <translation id="6643016212128521049">साफ़ करें</translation>
+<translation id="6747215703636344499">बंद हो गया - आउटपुट भर गया</translation>
 <translation id="7162487448488904999">गैलरी</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">इस कार्रवाई को आपका एडमिन प्रबंधित करता है</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">प्रिंट जॉब</translation>
 <translation id="8701136875688985581">इस उपयोगकर्ता को <ph name="ENROLLMENT_DOMAIN" /> प्रबंधित करता है. यह दूर से सेटिंग प्रबंधित कर सकता है. साथ ही, उपयोगकर्ता गतिविधि की निगरानी कर सकता है.</translation>
 <translation id="871560550817059752">प्रिंट नहीं हो पाया - स्याही खत्म हो गई</translation>
+<translation id="8726019395068607495">बंद हो गया - दरवाज़ा खुला है</translation>
 <translation id="8747900814994928677">बदलाव की पुष्टि करें</translation>
 <translation id="8919837981463578619">प्रिंट नहीं हो पाया - ट्रे मौजूद नहीं है</translation>
 <translation id="8928727111548978589">प्रिंट नहीं हो पाया - काग़ज़ खत्म हो गया</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index e443597..28814cb 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Érvénytelen PUK-kód.</translation>
 <translation id="1510238584712386396">Indító</translation>
 <translation id="1644574205037202324">Előzmények</translation>
+<translation id="1662989795263954667">Leállt – Kifogyott a tinta</translation>
 <translation id="1734367976349034509">Az eszközt a vállalat felügyeli</translation>
 <translation id="1905710495812624430">Elérte az engedélyezett kísérletek maximális számát.</translation>
 <translation id="1930797645656624981">Chrome OS beviteli módszere szolgáltatás</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">A jelszó <ph name="TIME" /> múlva lejár</translation>
 <translation id="4238516577297848345">Nincsenek folyamatban lévő nyomtatási feladatok</translation>
 <translation id="428217921675623177">A 90 napnál régebbi nyomtatási feladatokat eltávolítja a rendszer</translation>
+<translation id="4297501883039923494">Leállt – Ismeretlen hiba</translation>
 <translation id="4429881212383817840">A Kerberos-jegy hamarosan lejár</translation>
 <translation id="445059817448385655">Régi jelszó</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />. oldal az összesen <ph name="TOTAL_PAGE_NUMBER" /> oldalból A nyomtatási feladat törléséhez nyomja meg az Enter billentyűt.</translation>
 <translation id="467510802200863975">A jelszavak nem egyeznek</translation>
+<translation id="4691278870498629773">Leállt – Hiányzó tálca</translation>
 <translation id="4731797938093519117">Szülői hozzáférés</translation>
 <translation id="4773299976671772492">Leállítva</translation>
 <translation id="4808449224298348341">Nyomtatási feladat (<ph name="DOCUMENT_TITLE" />) megszakítva</translation>
 <translation id="4890353053343094602">Azonnal válasszon új jelszót</translation>
+<translation id="4917889632206600977">Leállt – Kifogyott a papír</translation>
 <translation id="4932733599132424254">Dátum</translation>
 <translation id="5212543919916444558">Nem találok semmi olyat a képernyőn, amellyel kapcsolatban segíthetnék.
 Koppintson a mikrofonra, és kérdezzen tőlem.</translation>
 <translation id="5222676887888702881">Kijelentkezés</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Mentés</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Válasszon most új jelszót</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">A befejezéshez adja meg régi jelszavát</translation>
 <translation id="6146993107019042706">A befejezéshez adja meg új jelszavát</translation>
 <translation id="636850387210749493">Vállalat rögzítése</translation>
+<translation id="649050271426829538">Leállt – Papírelakadás</translation>
 <translation id="6517239166834772319">Felfedezés</translation>
 <translation id="6564646048574748301">Sikertelen – Nem lehet hozzáférni a nyomtatóhoz</translation>
 <translation id="6643016212128521049">Törlés</translation>
+<translation id="6747215703636344499">Leállt – Megtelt a kimenet</translation>
 <translation id="7162487448488904999">Galéria</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Ezt a műveletet a rendszergazdája kezeli.</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Nyomtatási feladatok</translation>
 <translation id="8701136875688985581">A(z) <ph name="ENROLLMENT_DOMAIN" /> kezeli ezt a felhasználót. A domain távolról módosíthatja a beállításokat, és figyelheti a felhasználó tevékenységeit.</translation>
 <translation id="871560550817059752">Sikertelen – Kifogyott a tinta</translation>
+<translation id="8726019395068607495">Leállt – Nyitva van a nyomtató fedele</translation>
 <translation id="8747900814994928677">Módosítás megerősítése</translation>
 <translation id="8919837981463578619">Sikertelen – Hiányzó tálca</translation>
 <translation id="8928727111548978589">Sikertelen – Kifogyott a papír</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 8cd6ab2..5cb7a09 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK tidak valid.</translation>
 <translation id="1510238584712386396">Peluncur</translation>
 <translation id="1644574205037202324">Histori</translation>
+<translation id="1662989795263954667">Dihentikan - Tinta habis</translation>
 <translation id="1734367976349034509">Perangkat ini dikelola perusahaan</translation>
 <translation id="1905710495812624430">Melebihi batas percobaan maksimum yang diizinkan.</translation>
 <translation id="1930797645656624981">Layanan Metode Masukan Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Sandi kedaluwarsa dalam <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Tidak ada tugas pencetakan yang sedang berlangsung</translation>
 <translation id="428217921675623177">Tugas pencetakan yang sudah lebih dari 90 hari akan dihapus</translation>
+<translation id="4297501883039923494">Dihentikan - Error tidak diketahui</translation>
 <translation id="4429881212383817840">Masa berlaku tiket Kerberos segera berakhir</translation>
 <translation id="445059817448385655">Sandi lama</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> dari <ph name="TOTAL_PAGE_NUMBER" />. Tekan enter untuk membatalkan tugas pencetakan.</translation>
 <translation id="467510802200863975">Sandi tidak cocok</translation>
+<translation id="4691278870498629773">Dihentikan - Tidak ada baki</translation>
 <translation id="4731797938093519117">Akses orang tua</translation>
 <translation id="4773299976671772492">Dihentikan</translation>
 <translation id="4808449224298348341">Tugas pencetakan <ph name="DOCUMENT_TITLE" /> dibatalkan</translation>
 <translation id="4890353053343094602">Segera pilih satu sandi baru</translation>
+<translation id="4917889632206600977">Dihentikan - Kertas habis</translation>
 <translation id="4932733599132424254">Tanggal</translation>
 <translation id="5212543919916444558">Di layar tidak ada apa pun yang membutuhkan bantuan saya.
 Ketuk mikrofon untuk bertanya apa saja.</translation>
 <translation id="5222676887888702881">Logout</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Simpan</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Pilih satu sandi baru sekarang</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Untuk menyelesaikan, masukkan sandi yang lama</translation>
 <translation id="6146993107019042706">Untuk menyelesaikan, masukkan sandi yang baru</translation>
 <translation id="636850387210749493">Pendaftaran perusahaan</translation>
+<translation id="649050271426829538">Dihentikan - Kertas macet</translation>
 <translation id="6517239166834772319">Jelajahi</translation>
 <translation id="6564646048574748301">Gagal - Printer tidak dapat dijangkau</translation>
 <translation id="6643016212128521049">Hapus</translation>
+<translation id="6747215703636344499">Dihentikan - Baki hasil cetak penuh</translation>
 <translation id="7162487448488904999">Galeri</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Tindakan ini dikelola oleh administrator Anda</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Pekerjaan cetak</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> mengelola pengguna ini. Domain dapat mengelola setelan dan memantau aktivitas pengguna dari jarak jauh.</translation>
 <translation id="871560550817059752">Gagal - Tinta habis</translation>
+<translation id="8726019395068607495">Dihentikan - Tutup terbuka</translation>
 <translation id="8747900814994928677">Konfirmasi perubahan</translation>
 <translation id="8919837981463578619">Gagal - Tidak ada baki</translation>
 <translation id="8928727111548978589">Gagal - Kertas habis</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index d27c758..526a207 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK კოდი არასწორია.</translation>
 <translation id="1510238584712386396">გამშვები</translation>
 <translation id="1644574205037202324">ისტორია</translation>
+<translation id="1662989795263954667">გაჩერდა — მელანი გათავდა</translation>
 <translation id="1734367976349034509">ამ მოწყობილობას მართავს ორგანიზაცია</translation>
 <translation id="1905710495812624430">გადაჭარბებულია მცდელობათა მაქსიმალური რაოდენობა.</translation>
 <translation id="1930797645656624981">Chrome OS-ის შეყვანის მეთოდის სერვისი</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">პაროლი ძალაშია <ph name="TIME" /></translation>
 <translation id="4238516577297848345">ბეჭდვის მიმდინარე დავალებები არ არის</translation>
 <translation id="428217921675623177">90 დღეზე ძველი ამობეჭდვის დავალებები წაიშლება</translation>
+<translation id="4297501883039923494">გაჩერდა — უცნობი შეცდომა</translation>
 <translation id="4429881212383817840">Kerberos ბილეთის მოქმედების ვადა მალე იწურება</translation>
 <translation id="445059817448385655">ძველი პაროლი</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> / <ph name="TOTAL_PAGE_NUMBER" />. გთხოვთ დააჭიროთ შეყვანის ღილაკს ამ ბეჭდვის დავალების გასაუქმებლად.</translation>
 <translation id="467510802200863975">პაროლები არ ემთხვევა</translation>
+<translation id="4691278870498629773">გაჩერდა — ლანგარი აკლია</translation>
 <translation id="4731797938093519117">მშობლის წვდომა</translation>
 <translation id="4773299976671772492">შეწყვეტილია</translation>
 <translation id="4808449224298348341">ბეჭდვის დავალება გაუქმდა <ph name="DOCUMENT_TITLE" />-ისთვის</translation>
 <translation id="4890353053343094602">დაუყოვნებლივ აირჩიეთ ახალი</translation>
+<translation id="4917889632206600977">გაჩერდა — ქაღალდი გათავდა</translation>
 <translation id="4932733599132424254">თარიღი</translation>
 <translation id="5212543919916444558">თქვენს ეკრანზე ვერაფერი მოიძებნა, რითაც თქვენს დახმარებას შევძლებდი.
 გთხოვთ, შეეხოთ მიკროფონს და მკითხოთ, რაც გსურთ.</translation>
 <translation id="5222676887888702881">გამოსვლა</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">შენახვა</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">ახლავე აირჩიეთ ახალი</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">დასასრულებლად შეიყვანეთ თქვენი ძველი პაროლი</translation>
 <translation id="6146993107019042706">დასასრულებლად შეიყვანეთ თქვენი ახალი პაროლი</translation>
 <translation id="636850387210749493">ორგანიზაციის რეგისტრაცია</translation>
+<translation id="649050271426829538">გაჩერდა — ქაღალდი გაიჭედა</translation>
 <translation id="6517239166834772319">გაცნობა</translation>
 <translation id="6564646048574748301">ვერ მოხერხდა — პრინტერთან დაკავშირება ვერ ხერხდება</translation>
 <translation id="6643016212128521049">გასუფთავება</translation>
+<translation id="6747215703636344499">გაჩერდა — გამომტანი სავსეა</translation>
 <translation id="7162487448488904999">გალერეა</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ამ მოქმედებას მართავს თქვენი ადმინისტრატორი</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">ბეჭდვის დავალებები</translation>
 <translation id="8701136875688985581">ამ მომხმარებელს მართავს <ph name="ENROLLMENT_DOMAIN" />. მას შეუძლია პარამეტრების დისტანციურად მართვა და მომხმარებლის აქტივობის მონიტორინგი.</translation>
 <translation id="871560550817059752">ვერ მოხერხდა — მელანი გაუთავდა</translation>
+<translation id="8726019395068607495">გაჩერდა — პრინტერის კარი ღიაა</translation>
 <translation id="8747900814994928677">დაადასტურეთ ცვლილება</translation>
 <translation id="8919837981463578619">ვერ მოხერხდა — პრინტერს კალათა აკლია</translation>
 <translation id="8928727111548978589">ვერ მოხერხდა — ქაღალდი გაუთავდა</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 7f3dca07..742b54eb 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK коды жарамсыз.</translation>
 <translation id="1510238584712386396">Іске қосу құрылғысы</translation>
 <translation id="1644574205037202324">Тарих</translation>
+<translation id="1662989795263954667">Тоқтатылды: сия бітіп қалды</translation>
 <translation id="1734367976349034509">Бұл құрылғыны ұйым басқарады</translation>
 <translation id="1905710495812624430">Максималды рұқсат етілетін әрекеттер шегінен асып кетті.</translation>
 <translation id="1930797645656624981">Chrome OS енгізу әдісі қызметі</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">Құпия сөздің мерзімі <ph name="TIME" /> өткен соң аяқталады.</translation>
 <translation id="4238516577297848345">Ешқандай баспа жұмысы орындалып жатқан жоқ.</translation>
 <translation id="428217921675623177">90 күннен аса уақыт бұрын орындалған баспа жұмыстары өшіріледі.</translation>
+<translation id="4297501883039923494">Тоқтатылды: белгісіз қате</translation>
 <translation id="4429881212383817840">Kerberos билетінің жарамдылық мерзімі жақында аяқталады</translation>
 <translation id="445059817448385655">Ескі құпия сөз</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Басып шығарудан бас тарту үшін "Enter" пернесін басыңыз.</translation>
 <translation id="467510802200863975">Құпия сөздер сәйкес келмейді.</translation>
+<translation id="4691278870498629773">Тоқтатылды: науа жоқ.</translation>
 <translation id="4731797938093519117">Ата-ананың кіру рұқсаты</translation>
 <translation id="4773299976671772492">Тоқтатылды</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> құжатын басып шығарудан бас тартылды.</translation>
 <translation id="4890353053343094602">Дереу жаңа құпия сөз таңдаңыз.</translation>
+<translation id="4917889632206600977">Тоқтатылды: қағаз бітіп қалды.</translation>
 <translation id="4932733599132424254">Күні</translation>
 <translation id="5212543919916444558">Экранда мен көмектесе алатын ештеңе жоқ. Микрофон белгішесін түртіп, маған сұрақ қойыңыз.</translation>
 <translation id="5222676887888702881">Шығу</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Сақтау</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Жаңа құпия сөз енгізіңіз.</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">Аяқтау үшін ескі құпия сөзді енгізіңіз.</translation>
 <translation id="6146993107019042706">Аяқтау үшін жаңа құпия сөзді енгізіңіз.</translation>
 <translation id="636850387210749493">Кәсіпорынды тіркеу</translation>
+<translation id="649050271426829538">Тоқтатылды: қағаз кептелісі</translation>
 <translation id="6517239166834772319">Шолу</translation>
 <translation id="6564646048574748301">Сәтсіз: принтер қолжетімді емес</translation>
 <translation id="6643016212128521049">Тазалау</translation>
+<translation id="6747215703636344499">Тоқтатылды: шығыс науа толып кетті.</translation>
 <translation id="7162487448488904999">Галерея</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Бұл әрекетті әкімшіңіз басқарады.</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">Баспа жұмыстары</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> пайдаланушыны басқарады. Сонымен қатар қашықтан параметрлерді басқарады және пайдаланушының әрекетін қадағалайды.</translation>
 <translation id="871560550817059752">Сәтсіз: сия бітіп қалды</translation>
+<translation id="8726019395068607495">Тоқтатылды: есігі ашық</translation>
 <translation id="8747900814994928677">Өзгерісті растау</translation>
 <translation id="8919837981463578619">Сәтсіз: науа жоқ</translation>
 <translation id="8928727111548978589">Сәтсіз: қағаз бітіп қалды</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index 7daba17..22fae94 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK មិនត្រឹមត្រូវ។</translation>
 <translation id="1510238584712386396">ឡាន់ឆ័រ</translation>
 <translation id="1644574205037202324">ប្រវត្តិ</translation>
+<translation id="1662989795263954667">បានឈប់ - អស់​ទឹកថ្នាំ</translation>
 <translation id="1734367976349034509">ឧបករណ៍​នេះ​ត្រូវ​បាន​គ្រប់គ្រង​ដោយ​ក្រុមហ៊ុន</translation>
 <translation id="1905710495812624430">បាន​លើស​ការ​ព្យាយាម​ចូូល​អតិបរមា​ដែល​បាន​អនុញ្ញាត​ហើយ​។​</translation>
 <translation id="1930797645656624981">សេវាកម្ម​វិធី​បញ្ចូល Chrome OS</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">ពាក្យសម្ងាត់ផុតកំណត់​ក្នុងរយៈពេល <ph name="TIME" /></translation>
 <translation id="4238516577297848345">មិនមានកិច្ចការបោះពុម្ពកំពុងដំណើរការទេ</translation>
 <translation id="428217921675623177">ការងារ​បោះពុម្ព​ដែលមានអាយុកាល​លើសពី 90 ថ្ងៃ​នឹងត្រូវបាន​លុបចេញ</translation>
+<translation id="4297501883039923494">បានឈប់ - មានបញ្ហា​ដែលមិនស្គាល់</translation>
 <translation id="4429881212383817840">សំបុត្រ Kerberos ជិតផុត​កំណត់ហើយ</translation>
 <translation id="445059817448385655">ពាក្យ​សម្ងាត់​ចាស់</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> ក្នុង​ចំណោម <ph name="TOTAL_PAGE_NUMBER" />។ ចុច enter ដើម្បីបោះបង់​ការងារបោះពុម្ព។</translation>
 <translation id="467510802200863975">ពាក្យសម្ងាត់​មិនត្រូវគ្នាទេ</translation>
+<translation id="4691278870498629773">បានឈប់ - បាត់ថាស​ដាក់ក្រដាស</translation>
 <translation id="4731797938093519117">សិទ្ធិចូលប្រើប្រាស់​សម្រាប់មាតាបិតា</translation>
 <translation id="4773299976671772492">បានឈប់</translation>
 <translation id="4808449224298348341">បានបោះបង់​ការងារបោះពុម្ព <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">សូមជ្រើសរើស​ពាក្យសម្ងាត់​ថ្មីភ្លាមៗ</translation>
+<translation id="4917889632206600977">បានឈប់ - អស់​ក្រដាស</translation>
 <translation id="4932733599132424254">កាលបរិច្ឆេទ</translation>
 <translation id="5212543919916444558">ខ្ញុំរកមិនឃើញអ្វីដែលខ្ញុំអាចជួយបាននៅលើអេក្រង់របស់អ្នកទេ។ សាកល្បងចុចមីក្រូហ្វូន ដើម្បីសួរខ្ញុំអំពីអ្វីម្យ៉ាង។</translation>
 <translation id="5222676887888702881">ចាកចេញ</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">រក្សាទុក</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">សូមជ្រើសរើស​ពាក្យសម្ងាត់​ថ្មីឥឡូវនេះ</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">ដើម្បី​បញ្ចប់ សូម​បញ្ចូល​ពាក្យសម្ងាត់​ចាស់​របស់អ្នក</translation>
 <translation id="6146993107019042706">ដើម្បី​បញ្ចប់ សូម​បញ្ចូល​ពាក្យសម្ងាត់​ថ្មីរបស់អ្នក</translation>
 <translation id="636850387210749493">ការចុះឈ្មោះសហគ្រាស</translation>
+<translation id="649050271426829538">បានឈប់ - ជាប់​ក្រដាស</translation>
 <translation id="6517239166834772319">រុករក</translation>
 <translation id="6564646048574748301">មិនបានសម្រេច - ​​មិនអាចភ្ជាប់​ម៉ាស៊ីនបោះពុម្ព​បាន</translation>
 <translation id="6643016212128521049">ជម្រះ</translation>
+<translation id="6747215703636344499">បានឈប់ - ថាសដាក់​ក្រដាស​បោះពុម្ព​ពេញហើយ</translation>
 <translation id="7162487448488904999">សាល​រូបភាព</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">សកម្មភាពនេះត្រូវបានគ្រប់គ្រងដោយអ្នកគ្រប់គ្រងរបស់អ្នក</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">ការងារ​បោះពុម្ព</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> គ្រប់គ្រង​អ្នកប្រើប្រាស់​នេះ។ ដែននេះអាច​តាមដាន​សកម្មភាព​អ្នកប្រើប្រាស់ និង​គ្រប់គ្រង​ការកំណត់​ពីចម្ងាយ​បាន។</translation>
 <translation id="871560550817059752">មិនបានសម្រេច - ​​អស់ទឹកថ្នាំ</translation>
+<translation id="8726019395068607495">បានឈប់ - ទ្វារចំហ</translation>
 <translation id="8747900814994928677">បញ្ជាក់​ការ​ផ្លាស់ប្ដូរ</translation>
 <translation id="8919837981463578619">មិនបានសម្រេច - ​​បាត់ថាសដាក់ក្រដាស</translation>
 <translation id="8928727111548978589">មិនបានសម្រេច - ​​អស់ក្រដាស</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb
index d8af6018..c8c7ffd 100644
--- a/chromeos/strings/chromeos_strings_kn.xtb
+++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">ಅಮಾನ್ಯ PUK.</translation>
 <translation id="1510238584712386396">ಲಾಂಚರ್</translation>
 <translation id="1644574205037202324">ಇತಿಹಾಸ</translation>
+<translation id="1662989795263954667">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಇಂಕ್ ಖಾಲಿಯಾಗಿದೆ</translation>
 <translation id="1734367976349034509">ಈ ಸಾಧನವನ್ನು ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆ ಮಾಡುತ್ತಿದೆ</translation>
 <translation id="1905710495812624430">ಅನುಮತಿಸಲಾದ ಗರಿಷ್ಟ ಪ್ರಯತ್ನಗಳು ಮೀರಿವೆ.</translation>
 <translation id="1930797645656624981">Chrome OS ಇನ್‌ಪುಟ್ ವಿಧಾನ ಸೇವೆ</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515"><ph name="TIME" /> ಸಮಯದಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ನ ಅವಧಿ ಮುಗಿಯಲಿದೆ</translation>
 <translation id="4238516577297848345">ಯಾವುದೇ ಮುದ್ರಣ ಕಾರ್ಯಗಳು ಪ್ರಗತಿಯಲ್ಲಿಲ್ಲ</translation>
 <translation id="428217921675623177">90 ದಿನಗಳಿಗಿಂತ ಹಳೆಯದಾದ ಮುದ್ರಣ ಕಾರ್ಯಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ</translation>
+<translation id="4297501883039923494">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಅಪರಿಚಿತ ದೋಷ</translation>
 <translation id="4429881212383817840">Kerberos ಟಿಕೆಟ್ ಶೀಘ್ರದಲ್ಲೇ ಅವಧಿ ಮೀರಲಿದೆ</translation>
 <translation id="445059817448385655">ಹಳೆಯ ಪಾಸ್‌ವರ್ಡ್‌</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ರಲ್ಲಿ <ph name="PRINTED_PAGE_NUMBER" /> ಮುದ್ರಣ ಕಾರ್ಯವನ್ನು ರದ್ದುಮಾಡಲು enter ಒತ್ತಿರಿ.</translation>
 <translation id="467510802200863975">ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ</translation>
+<translation id="4691278870498629773">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಟ್ರೇ ಇಲ್ಲ</translation>
 <translation id="4731797938093519117">ಪೋಷಕ ಪ್ರವೇಶ ಬಟನ್‌</translation>
 <translation id="4773299976671772492">ನಿಲ್ಲಿಸಲಾಗಿದೆ</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> ಮುದ್ರಣ ಕಾರ್ಯವನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ</translation>
 <translation id="4890353053343094602">ಹೊಸದೊಂದನ್ನು ತತ್‌ಕ್ಷಣ ಆಯ್ಕೆಮಾಡಿ</translation>
+<translation id="4917889632206600977">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಪೇಪರ್ ಖಾಲಿಯಾಗಿದೆ</translation>
 <translation id="4932733599132424254">ದಿನಾಂಕ</translation>
 <translation id="5212543919916444558">ನಾನು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಬಹುದಾದ ಯಾವುದೇ ವಿಷಯ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲೆ ನನಗೆ ಕಾಣಿಸಿಲ್ಲ. ನನ್ನ ಬಳಿ ಏನಾದರೂ ಕೇಳಬೇಕಿದ್ದರೆ, ಮೈಕ್ ಟ್ಯಾಪ್ ಮಾಡಿ.</translation>
 <translation id="5222676887888702881">ಸೈನ್ ಔಟ್</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">ಉಳಿಸು</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">ಈಗ ಹೊಸದೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">ಪೂರ್ಣಗೊಳಿಸಲು, ನಿಮ್ಮ ಹಳೆಯ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ</translation>
 <translation id="6146993107019042706">ಪೂರ್ಣಗೊಳಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ</translation>
 <translation id="636850387210749493">ಎಂಟರ್‌ಪ್ರೈಸ್ ದಾಖಲಾತಿ</translation>
+<translation id="649050271426829538">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಪೇಪರ್ ಜಾಮ್ ಆಗಿದೆ</translation>
 <translation id="6517239166834772319">ಎಕ್ಸ್‌ಪ್ಲೋರ್</translation>
 <translation id="6564646048574748301">ವಿಫಲವಾಗಿದೆ - ಪ್ರಿಂಟರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="6643016212128521049">ತೆರವುಗೊಳಿಸಿ</translation>
+<translation id="6747215703636344499">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಔಟ್‌ಪುಟ್ ಭರ್ತಿಯಾಗಿದೆ</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ವಹಿಸುತ್ತಾರೆ</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">ಮುದ್ರಣ ಕಾರ್ಯಗಳು</translation>
 <translation id="8701136875688985581">ಈ ಬಳಕೆದಾರರನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ದೂರದಿಂದಲೇ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರ ಚಟುವಟಿಕೆಯ ಮೇಲೆ ಗಮನವಿರಿಸಬಹುದು.</translation>
 <translation id="871560550817059752">ವಿಫಲವಾಗಿದೆ - ಇಂಕ್ ಖಾಲಿಯಾಗಿದೆ</translation>
+<translation id="8726019395068607495">ನಿಲ್ಲಿಸಲಾಗಿದೆ - ಡೋರ್ ಓಪನ್ ಆಗಿದೆ</translation>
 <translation id="8747900814994928677">ಬದಲಾವಣೆಯನ್ನು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="8919837981463578619">ವಿಫಲವಾಗಿದೆ - ಟ್ರೇ ಕಾಣೆಯಾಗಿದೆ</translation>
 <translation id="8928727111548978589">ವಿಫಲವಾಗಿದೆ - ಕಾಗದ ಖಾಲಿಯಾಗಿದೆ</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index b598e632..11004d7 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">잘못된 PUK입니다.</translation>
 <translation id="1510238584712386396">런처</translation>
 <translation id="1644574205037202324">방문 기록</translation>
+<translation id="1662989795263954667">중지됨 - 잉크 부족</translation>
 <translation id="1734367976349034509">기업에서 관리하는 기기입니다.</translation>
 <translation id="1905710495812624430">허용되는 최대 시도 횟수를 초과했습니다.</translation>
 <translation id="1930797645656624981">Chrome OS 입력 방법 서비스</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">비밀번호가 <ph name="TIME" /> 후에 만료됨</translation>
 <translation id="4238516577297848345">진행 중인 인쇄 작업 없음</translation>
 <translation id="428217921675623177">90일 이상 경과한 인쇄 작업은 삭제됩니다.</translation>
+<translation id="4297501883039923494">중지됨 - 알 수 없는 오류</translation>
 <translation id="4429881212383817840">Kerberos 티켓이 곧 만료됨</translation>
 <translation id="445059817448385655">이전 비밀번호</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> 인쇄 작업을 취소하려면 Enter를 누릅니다.</translation>
 <translation id="467510802200863975">비밀번호가 일치하지 않습니다.</translation>
+<translation id="4691278870498629773">중지됨 - 배지대 없음</translation>
 <translation id="4731797938093519117">부모 액세스</translation>
 <translation id="4773299976671772492">중지됨</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> 인쇄 작업 취소됨</translation>
 <translation id="4890353053343094602">지금 바로 새 비밀번호를 선택하세요.</translation>
+<translation id="4917889632206600977">중지됨 - 용지 부족</translation>
 <translation id="4932733599132424254">날짜</translation>
 <translation id="5212543919916444558">화면에 도움을 드릴 수 있는 항목이 보이지 않습니다.
 마이크를 탭하여 무엇이든지 물어보세요.</translation>
 <translation id="5222676887888702881">로그아웃</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">저장</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">지금 새 비밀번호를 선택하세요.</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">완료하려면 이전 비밀번호를 입력하세요.</translation>
 <translation id="6146993107019042706">완료하려면 새 비밀번호를 입력하세요.</translation>
 <translation id="636850387210749493">엔터프라이즈 등록</translation>
+<translation id="649050271426829538">중지됨 - 용지 걸림</translation>
 <translation id="6517239166834772319">살펴보기</translation>
 <translation id="6564646048574748301">실패 - 프린터에 연결할 수 없음</translation>
 <translation id="6643016212128521049">삭제</translation>
+<translation id="6747215703636344499">중지됨 - 배지대 가득 참</translation>
 <translation id="7162487448488904999">갤러리</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">관리자가 관리하는 작업입니다.</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">인쇄 작업</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" />에서 이 사용자를 관리합니다. 원격으로 설정을 관리하고 사용자 활동을 모니터링할 수 있습니다.</translation>
 <translation id="871560550817059752">실패 - 잉크 없음</translation>
+<translation id="8726019395068607495">중지됨 - 덮개 열림</translation>
 <translation id="8747900814994928677">변경사항 확인</translation>
 <translation id="8919837981463578619">실패 - 트레이 없음</translation>
 <translation id="8928727111548978589">실패 - 용지 없음</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 2804c8f6..3cf5fd53 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Жараксыз PUK.</translation>
 <translation id="1510238584712386396">Жүргүзгүч</translation>
 <translation id="1644574205037202324">Таржымал</translation>
+<translation id="1662989795263954667">Токтоду – Сыя түгөнүп калды</translation>
 <translation id="1734367976349034509">Бул түзмөк ишкана тарабынан башкарылат</translation>
 <translation id="1905710495812624430">Аракеттер уруксат берилген чегинен ашты.</translation>
 <translation id="1930797645656624981">Chrome OS киргизүү ыкмасынын кызматы</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Сырсөздүн мөөнөтү <ph name="TIME" /> кийин бүтөт</translation>
 <translation id="4238516577297848345">Аткарылып жаткан иш жок</translation>
 <translation id="428217921675623177">90 күндөн мурунку басып чыгаруу тапшырмалары өчүрүлөт</translation>
+<translation id="4297501883039923494">Токтоду – Белгисиз ката</translation>
 <translation id="4429881212383817840">Kerberos билетинин мөөнөтү өтүп баратат</translation>
 <translation id="445059817448385655">Эски сырсөз</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ичинен <ph name="PRINTED_PAGE_NUMBER" /> Басып чыгарууну токтотуу үчүн "Enter" баскычын басыңыз.</translation>
 <translation id="467510802200863975">Сырсөздөр дал келген жок</translation>
+<translation id="4691278870498629773">Токтоду – Түпкүч жок</translation>
 <translation id="4731797938093519117">Ата-эненин кирүү уруксаты</translation>
 <translation id="4773299976671772492">Токтотулду</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> документин басып чыгаруу токтотулду</translation>
 <translation id="4890353053343094602">Дароо жаңы сырсөз тандаңыз</translation>
+<translation id="4917889632206600977">Токтоду – Кагаз түгөнүп калды</translation>
 <translation id="4932733599132424254">Күнү</translation>
 <translation id="5212543919916444558">Экраныңызда эч нерсе көрүнгөн жок.
 Мага суроо берүү үчүн микрофонду таптап коюңуз.</translation>
 <translation id="5222676887888702881">Чыгуу</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Сактоо</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Жаңысын азыр тандаңыз</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Бүтүрүү үчүн эски сырсөзүңүздү киргизиңиз</translation>
 <translation id="6146993107019042706">Бүтүрүү үчүн жаңы сырсөздү киргизиңиз</translation>
 <translation id="636850387210749493">Корпоративдик каттоо</translation>
+<translation id="649050271426829538">Токтоду – Кагаз чайналып калды</translation>
 <translation id="6517239166834772319">Изилдөө</translation>
 <translation id="6564646048574748301">Басылып чыгарылган жок - Принтер жеткиликсиз</translation>
 <translation id="6643016212128521049">Тазалоо</translation>
+<translation id="6747215703636344499">Токтоду – Түпкүч толуп калды</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Бул аракетти администраторуңуз башкарат</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Басып чыгаруу тапшырмалары</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> бул колдонуучуну башкарат. Ал алыстан жөндөөлөрдү башкарып, колдонуучунун аракеттерин көзөмөлдөй алат.</translation>
 <translation id="871560550817059752">Басылып чыгарылган жок - Сыя түгөнүп калды</translation>
+<translation id="8726019395068607495">Токтоду – Эшик ачык</translation>
 <translation id="8747900814994928677">Өзгөртүүнү ырастоо</translation>
 <translation id="8919837981463578619">Басылып чыгарылган жок - Такта ордунда эмес</translation>
 <translation id="8928727111548978589">Басылып чыгарылган жок - Кагаз түгөнүп калды</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index 26489fc..295ee74 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK ທີ່ຖືກຕ້ອງ.</translation>
 <translation id="1510238584712386396">ຕົວ​ເປີດ​ໃຊ້</translation>
 <translation id="1644574205037202324">ປະຫວັດ</translation>
+<translation id="1662989795263954667">ຢຸດພິມ, ນໍ້າໝຶກໝົດ</translation>
 <translation id="1734367976349034509">ອຸປະກອນນີ້ຖືກຈັດການໂດຍວິສາຫະກິດ</translation>
 <translation id="1905710495812624430">ເກີນຈຳນວນຄວາມພະຍາຍາມສູງສຸດແລ້ວ.</translation>
 <translation id="1930797645656624981">ການບໍລິການວິທີການປ້ອນຂໍ້ມູນຂອງ Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">ລະຫັດຜ່ານໝົດອາຍຸໃນ <ph name="TIME" /></translation>
 <translation id="4238516577297848345">ບໍ່ມີວຽກການພິມທີ່ພວມດຳເນີນຢູ່</translation>
 <translation id="428217921675623177">ວຽກພິມທີ່ເກົ່າກວ່າ 90 ມື້ຈະຖືກລຶບອອກ</translation>
+<translation id="4297501883039923494">ຢຸດພິມ, ບໍ່ຮູ້ຈັກຂໍ້ຜິດພາດ</translation>
 <translation id="4429881212383817840">ປີ້ Kerberos ຈະໝົດອາຍຸໃນໄວໆນີ້</translation>
 <translation id="445059817448385655">ລະຫັດຜ່ານເກົ່າ</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> ຈາກທັງໝົດ <ph name="TOTAL_PAGE_NUMBER" />. ກົດ Enter ເພື່ອຍົກເລີກວຽກພິມ.</translation>
 <translation id="467510802200863975">ລະຫັດຜ່ານບໍ່ກົງກັນ</translation>
+<translation id="4691278870498629773">ຢຸດພິມ, ບໍ່ມີຖາດເຈ້ຍ</translation>
 <translation id="4731797938093519117">ສິດເຂົ້າເຖິງຂອງພໍ່ແມ່</translation>
 <translation id="4773299976671772492">ຢຸດ​ແລ້ວ</translation>
 <translation id="4808449224298348341">ຍົກເລີກວຽກພິມ <ph name="DOCUMENT_TITLE" /> ແລ້ວ</translation>
 <translation id="4890353053343094602">ເລືອກລະຫັດຜ່ານໃໝ່ໃນທັນທີ</translation>
+<translation id="4917889632206600977">ຢຸດພິມ, ເຈ້ຍໝົດ</translation>
 <translation id="4932733599132424254">ວັນ​ທີ</translation>
 <translation id="5212543919916444558">ຂ້ອຍບໍ່ສາມາດຊອກເຫັນອັນໃດຢູ່ໃນໜ້າຈໍຂອງທ່ານທີ່ຂ້ອຍສາມາດຊ່ວຍໄດ້.
 ລອງແຕະໄມເພື່ອຖາມຂ້ອຍອັນໃດກໍໄດ້.</translation>
 <translation id="5222676887888702881">ອອກຈາກລະບົບ</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">ບັນທຶກ</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">ເລືອກລະຫັດຜ່ານໃໝ່ຕອນນີ້ເລີຍ</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">ເພື່ອສຳເລັດ, ກະລຸນາປ້ອນລະຫັດຜ່ານເກົ່າຂອງທ່ານ</translation>
 <translation id="6146993107019042706">ເພື່ອດຳເນີນການໃຫ້ສຳເລັດ, ກະລຸນາປ້ອນລະຫັດຜ່ານໃໝ່ຂອງທ່ານ</translation>
 <translation id="636850387210749493">ການລົງທະບຽນວິສາຫະກິດ</translation>
+<translation id="649050271426829538">ຢຸດພິມ - ເຈ້ຍຕິດ</translation>
 <translation id="6517239166834772319">ສຳຫຼວດ</translation>
 <translation id="6564646048574748301">ບໍ່ສຳເລັດ, ບໍ່ສາມາດຕິດຕໍ່ເຄື່ອງພິມໄດ້</translation>
 <translation id="6643016212128521049">ລຶບ</translation>
+<translation id="6747215703636344499">ຢຸດພິມ, ຖາດເຈ້ຍອອກເຕັມແລ້ວ</translation>
 <translation id="7162487448488904999">ຄັງຮູບ</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ການດຳເນີນການນີ້ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">ວຽກການພິມ</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> ຈັດການຜູ້ໃຊ້ນີ້. ມັນອາດຈະຈັດການຕັ້ງຄ່າ ແລະ ຕິດຕາມເບິ່ງການເຄື່ອນໄຫວຂອງຜູ້ໃຊ້ຈາກທາງໄກໄດ້.</translation>
 <translation id="871560550817059752">ບໍ່ສຳເລັດ, ນໍ້າໝຶກໝົດ</translation>
+<translation id="8726019395068607495">ຢຸດພິມ, ຝາເປີດຢູ່</translation>
 <translation id="8747900814994928677">ຢືນຢັນການປ່ຽນແປງ</translation>
 <translation id="8919837981463578619">ບໍ່ສຳເລັດ, ຖາດໃສ່ເຈ້ຍຫາຍໄປ</translation>
 <translation id="8928727111548978589">ບໍ່ສຳເລັດ, ເຈ້ຍໝົດ</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index ad754bf6..d125636 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Netinkamas PUK.</translation>
 <translation id="1510238584712386396">Paleidimo priemonė</translation>
 <translation id="1644574205037202324">Istorija</translation>
+<translation id="1662989795263954667">Sustabdyta – baigėsi rašalas</translation>
 <translation id="1734367976349034509">Šis įrenginys valdomas įmonės</translation>
 <translation id="1905710495812624430">Viršytas didžiausias bandymų skaičius.</translation>
 <translation id="1930797645656624981">„Chrome“ OS įvesties metodo paslauga</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Slaptažodžio galiojimas baigsis už <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Nėra vykstančių spausdinimo užduočių</translation>
 <translation id="428217921675623177">Senesnės nei 90 dienų spausdinimo užduotys bus pašalintos</translation>
+<translation id="4297501883039923494">Sustabdyta – nežinoma klaida</translation>
 <translation id="4429881212383817840">„Kerberos“ bilietas netrukus baigs galioti</translation>
 <translation id="445059817448385655">Senas slaptažodis</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, „<ph name="PRINTER_NAME" />“, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> iš <ph name="TOTAL_PAGE_NUMBER" /> psl. Paspauskite „Enter“, jei norite atšaukti spausdinimo užduotį.</translation>
 <translation id="467510802200863975">Slaptažodžiai neatitinka</translation>
+<translation id="4691278870498629773">Sustabdyta – nėra dėklo</translation>
 <translation id="4731797938093519117">Tėvų prieiga</translation>
 <translation id="4773299976671772492">Sustabdyta</translation>
 <translation id="4808449224298348341">Spausdinimo užduotis atšaukta: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Nedelsdami pasirinkite naują</translation>
+<translation id="4917889632206600977">Sustabdyta – baigėsi popierius</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="5212543919916444558">Ekrane nieko nerasta, dėl ko galėtume jums padėti.
 Palieskite mikrofoną, kad užduotumėte reikiamus klausimus.</translation>
 <translation id="5222676887888702881">Atsijungti</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, „<ph name="PRINTER_NAME" />“, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Išsaugoti</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Pasirinkite naują slaptažodį dabar</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Norėdami užbaigti įveskite seną slaptažodį</translation>
 <translation id="6146993107019042706">Norėdami užbaigti įveskite naują slaptažodį</translation>
 <translation id="636850387210749493">Įmonės registracija</translation>
+<translation id="649050271426829538">Sustabdyta – įstrigęs popierius</translation>
 <translation id="6517239166834772319">Explore</translation>
 <translation id="6564646048574748301">Nepavyko – spausdintuvas nepasiekiamas</translation>
 <translation id="6643016212128521049">Išvalyti</translation>
+<translation id="6747215703636344499">Sustabdyta – išvestis pilna</translation>
 <translation id="7162487448488904999">Galerija</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Šį veiksmą tvarko jūsų administratorius</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Spausdinimo užduotys</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> valdo šį naudotoją. Jis gali nuotoliniu būdu valdyti nustatymus ir stebėti naudotojo veiklą.</translation>
 <translation id="871560550817059752">Nepavyko – baigėsi rašalas</translation>
+<translation id="8726019395068607495">Sustabdyta – atidarytos durelės</translation>
 <translation id="8747900814994928677">Patvirtinti pakeitimą</translation>
 <translation id="8919837981463578619">Nepavyko – nėra dėklo</translation>
 <translation id="8928727111548978589">Nepavyko – baigėsi popierius</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index ff7a0c7..265917c7 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">അസാധുവായ PUK.</translation>
 <translation id="1510238584712386396">ലോഞ്ചർ</translation>
 <translation id="1644574205037202324">ചരിത്രം</translation>
+<translation id="1662989795263954667">പ്രിന്റ് ജോലി നിർത്തി - മഷിയില്ല</translation>
 <translation id="1734367976349034509">ഈ ഉപകരണം മാനേജ് ചെയ്യുന്നത് എന്റർപ്രൈസാണ്</translation>
 <translation id="1905710495812624430">അനുവദനീയമായ പരമാവധി ശ്രമങ്ങൾ നടത്തിക്കഴിഞ്ഞു.</translation>
 <translation id="1930797645656624981">Chrome OS ഇൻപുട്ട് രീതി സേവനം</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">പാസ്‌വേഡ് <ph name="TIME" /> സമയത്തിനുള്ളിൽ കാലഹരണപ്പെടും</translation>
 <translation id="4238516577297848345">പ്രിന്റ് ജോലികളൊന്നും പുരോഗമിക്കുന്നില്ല</translation>
 <translation id="428217921675623177">90 ദിവസങ്ങൾക്ക് മുമ്പുള്ള പ്രിന്റ് ജോലികൾ നീക്കം ചെയ്യും</translation>
+<translation id="4297501883039923494">പ്രിന്റ് ജോലി നിർത്തി - അജ്ഞാതമായ പിശക്</translation>
 <translation id="4429881212383817840">Kerberos ടിക്കറ്റ് ഉടൻ കാലഹരണപ്പെടും</translation>
 <translation id="445059817448385655">പഴയ പാസ്‌വേഡ്</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, ആകെയുള്ള <ph name="TOTAL_PAGE_NUMBER" /> എണ്ണത്തിൽ <ph name="PRINTED_PAGE_NUMBER" /> എണ്ണം. പ്രിന്റ് ജോലി റദ്ദാക്കാൻ എന്റർ അമർത്തുക.</translation>
 <translation id="467510802200863975">പാസ്‌വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല</translation>
+<translation id="4691278870498629773">പ്രിന്റ് ജോലി നിർത്തി - ട്രേ കാണുന്നില്ല</translation>
 <translation id="4731797938093519117">രക്ഷാകർതൃ ആക്‌സസ്</translation>
 <translation id="4773299976671772492">അവസാനിപ്പിച്ചു</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> എന്ന പ്രിന്റ് ജോലി റദ്ദാക്കി</translation>
 <translation id="4890353053343094602">പുതിയ പാസ്‌വേഡ് പെട്ടെന്ന് തിരഞ്ഞെടുക്കുക</translation>
+<translation id="4917889632206600977">പ്രിന്റ് ജോലി നിർത്തി - പേപ്പറില്ല</translation>
 <translation id="4932733599132424254">തീയതി</translation>
 <translation id="5212543919916444558">എനിക്ക് സഹായിക്കാനാവുന്ന ഒന്നും നിങ്ങളുടെ സ്‌ക്രീനിൽ കണ്ടെത്താനാവുന്നില്ല. എന്നോട് എന്തെങ്കിലും ആവശ്യപ്പെടാൻ മൈക്ക് ടാപ്പ് ചെയ്യുന്നത് പരീക്ഷിക്കൂ.</translation>
 <translation id="5222676887888702881">സൈൻ ഔട്ട് ചെയ്യുക</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">സംരക്ഷിക്കുക</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">പുതിയ പാസ്‌വേഡ് തിരഞ്ഞെടുക്കുക</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">പൂർത്തിയാക്കാൻ നിങ്ങളുടെ പഴയ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="6146993107019042706">പൂർത്തിയാക്കാൻ നിങ്ങളുടെ പുതിയ പാസ്‌വേഡ് നൽകുക</translation>
 <translation id="636850387210749493">സംരംഭ വിവരപ്പട്ടിക</translation>
+<translation id="649050271426829538">പ്രിന്റ് ജോലി നിർത്തി - പേപ്പർ ജാമായി</translation>
 <translation id="6517239166834772319">അടുത്തറിയുക</translation>
 <translation id="6564646048574748301">പ്രിന്റ് ചെയ്യാനായില്ല - പ്രിന്റർ ലഭ്യമല്ല</translation>
 <translation id="6643016212128521049">മായ്‌ക്കുക</translation>
+<translation id="6747215703636344499">പ്രിന്റ് ജോലി നിർത്തി - ഔട്ട്പുട്ട് നിറഞ്ഞിരിക്കുന്നു</translation>
 <translation id="7162487448488904999">ഗാലറി</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ഈ പ്രവർത്തനം മാനേജ് ചെയ്യുന്നത് നിങ്ങളുടെ അഡ്‌മിനാണ്</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">പ്രിന്റ് ജോലികൾ</translation>
 <translation id="8701136875688985581">ഈ ഉപയോക്താവിനെ <ph name="ENROLLMENT_DOMAIN" /> മാനേജ് ചെയ്യുന്നു. ഇത് വിദൂരമായി ക്രമീകരണം മാനേജ് ചെയ്യുകയും ഉപയോക്തൃ ആക്‌റ്റിവിറ്റി നിരീക്ഷിക്കുകയും ചെയ്‌തേക്കാം.</translation>
 <translation id="871560550817059752">പ്രിന്റ് ചെയ്യാനായില്ല - മഷിയില്ല</translation>
+<translation id="8726019395068607495">പ്രിന്റ് ജോലി നിർത്തി - ഡോർ തുറന്നിരിക്കുന്നു</translation>
 <translation id="8747900814994928677">മാറ്റം സ്ഥിരീകരിക്കുക</translation>
 <translation id="8919837981463578619">പ്രിന്റ് ചെയ്യാനായില്ല - ട്രേ കാണുന്നില്ല</translation>
 <translation id="8928727111548978589">പ്രിന്റ് ചെയ്യാനായില്ല - പേപ്പറില്ല</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 01f3419..fec55b7 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK буруу байна.</translation>
 <translation id="1510238584712386396">Launcher</translation>
 <translation id="1644574205037202324">Түүх</translation>
+<translation id="1662989795263954667">Зогссон - Хэвлэгчийн хор дууссан</translation>
 <translation id="1734367976349034509">Энэ төхөөрөмжийг байгууллагаас удирддаг</translation>
 <translation id="1905710495812624430">Оролдлогын тоо дээд хэмжээнээс хэтэрсэн.</translation>
 <translation id="1930797645656624981">Chrome OS-н оруулах аргын үйлчилгээ</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Нууц үгний хугацаа <ph name="TIME" />-н дотор дуусна</translation>
 <translation id="4238516577297848345">Хэвлэж байгаа ажил алга</translation>
 <translation id="428217921675623177">90 хоногоос дээш хугацаагаар хадгалсан хэвлэлийн ажлуудыг хасах болно</translation>
+<translation id="4297501883039923494">Зогссон - Тодорхойгүй алдаа</translation>
 <translation id="4429881212383817840">Kerberos тасалбарын хугацаа удахгүй дуусна</translation>
 <translation id="445059817448385655">Хуучин нууц үг</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />-с <ph name="PRINTED_PAGE_NUMBER" />. Хэвлэх ажлыг цуцлахын тулд enter дээр дарна уу.</translation>
 <translation id="467510802200863975">Нууц үг таарахгүй байна</translation>
+<translation id="4691278870498629773">Зогссон - Цаасны тэвш алга</translation>
 <translation id="4731797938093519117">Эцэг эхийн хандалт</translation>
 <translation id="4773299976671772492">Зогссон</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> хэвлэх ажлыг цуцалсан</translation>
 <translation id="4890353053343094602">Нэн даруй шинийг сонгоно уу</translation>
+<translation id="4917889632206600977">Зогссон - Цаас дууссан</translation>
 <translation id="4932733599132424254">Огноо</translation>
 <translation id="5212543919916444558">Би таны дэлгэцээс туслах боломжтой зүйл олсонгүй.
 Асуух зүйл байвал микрофоныг товшиж үзнэ үү.</translation>
 <translation id="5222676887888702881">Гарах</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Хадгалах</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Одоо шинийг сонгоно уу</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Дуусгахын тулд хуучин нууц үгээ оруулна уу</translation>
 <translation id="6146993107019042706">Дуусгахын тулд шинэ нууц үгээ оруулна уу</translation>
 <translation id="636850387210749493">Байгууллагын бүртгэл</translation>
+<translation id="649050271426829538">Зогссон - Цаас гацсан</translation>
 <translation id="6517239166834772319">Судлах</translation>
 <translation id="6564646048574748301">Амжилтгүй болсон - Хэвлэгчид холбогдох боломжгүй</translation>
 <translation id="6643016212128521049">Цэвэрлэх</translation>
+<translation id="6747215703636344499">Зогссон - Гаралт дүүрсэн</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Энэ үйлдлийг таны администратор удирддаг</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Хэвлэх ажлууд</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> энэ хэрэглэгчийг удирддаг. Энэ нь алсаас тохиргоог удирдаж, хэрэглэгчийн үйл ажиллагааг хянаж болзошгүй.</translation>
 <translation id="871560550817059752">Амжилтгүй болсон - Бэх дууссан</translation>
+<translation id="8726019395068607495">Зогссон - Таг нээлттэй</translation>
 <translation id="8747900814994928677">Өөрчлөлтийг баталгаажуулах</translation>
 <translation id="8919837981463578619">Амжилтгүй болсон - Тавиур алга байна</translation>
 <translation id="8928727111548978589">Амжилтгүй болсон - Цаас дууссан</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index 1f5418a..7426e31 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">चुकीची PUK.</translation>
 <translation id="1510238584712386396">लाँचर</translation>
 <translation id="1644574205037202324">इतिहास</translation>
+<translation id="1662989795263954667">थांबले - शाई संपली आहे</translation>
 <translation id="1734367976349034509">या डिव्हाइसला संस्थेेने व्यवस्थापित केेले आहे</translation>
 <translation id="1905710495812624430">कमाल अनुमती असलेले प्रयत्न ओलांडले.</translation>
 <translation id="1930797645656624981">Chrome OS इनपुट पद्धत सेवा</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515"><ph name="TIME" /> मध्ये पासवर्ड एक्स्पायर होईल</translation>
 <translation id="4238516577297848345">कोणतेही प्रिंट जॉब प्रगतीपथावर नाहीत</translation>
 <translation id="428217921675623177">९० दिवसांपेक्षा जुने प्रिंट जॉब काढून टाकले जातील</translation>
+<translation id="4297501883039923494">थांबले - अज्ञात एरर</translation>
 <translation id="4429881212383817840">Kerberos तिकीट लवकरच एक्स्पायर होईल</translation>
 <translation id="445059817448385655">जुना पासवर्ड</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> पैकी <ph name="PRINTED_PAGE_NUMBER" />. प्रिंट कार्य रद्द करण्यासाठी एंटर दाबा.</translation>
 <translation id="467510802200863975">पासवर्ड जुळत नाहीत</translation>
+<translation id="4691278870498629773">थांबले - ट्रे गहाळ आहे</translation>
 <translation id="4731797938093519117">पालक अ‍ॅक्सेस</translation>
 <translation id="4773299976671772492">थांबविले</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> हे प्रिंट कार्य रद्द केले</translation>
 <translation id="4890353053343094602">तत्काळ नवीन निवडा</translation>
+<translation id="4917889632206600977">थांबले - कागद संपला आहे</translation>
 <translation id="4932733599132424254">तारीख</translation>
 <translation id="5212543919916444558">मी मदत करू शकेन असे मला तुमच्या स्क्रीनवर काही आढळले नाही. 
 मला काहीही विचारण्यासाठी माइकवर टॅप करून पाहा.</translation>
 <translation id="5222676887888702881">साइन आउट करा</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">सेव्ह करा</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">आता नवीन निवडा</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">पूर्ण करण्यासाठी, तुमचा जुना पासवर्ड एंटर करा</translation>
 <translation id="6146993107019042706">पूर्ण करण्यासाठी, तुमचा नवीन पासवर्ड एंटर करा</translation>
 <translation id="636850387210749493">Enterprise नावनोंदणी</translation>
+<translation id="649050271426829538">थांबले - कागद अडकला</translation>
 <translation id="6517239166834772319">एक्सप्लोर करा</translation>
 <translation id="6564646048574748301">अयशस्वी झाले - प्रिंटरशी कनेक्ट करता आले नाही</translation>
 <translation id="6643016212128521049">साफ करा</translation>
+<translation id="6747215703636344499">थांबले - आउटपुट भरले आहे</translation>
 <translation id="7162487448488904999">गॅलरी</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ही कृती तुमच्या अ‍ॅडमिनिस्ट्रेटरद्वारे व्यवस्थापित केली जाते</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">प्रिंट कार्ये</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> हा वापरकर्ता व्यवस्थापित करते. ते रिमोट पद्धतीने सेटिंग्ज व्यवस्थापित करू शकते आणि वापरकर्ता अ‍ॅक्टिव्हिटीचे परीक्षण करू शकते.</translation>
 <translation id="871560550817059752">अयशस्वी झाले - शाई संपली आहे</translation>
+<translation id="8726019395068607495">थांबले - दार उघडे आहे</translation>
 <translation id="8747900814994928677">बदलाची खात्री करा</translation>
 <translation id="8919837981463578619">अयशस्वी झाले - ट्रे सापडला नाही</translation>
 <translation id="8928727111548978589">अयशस्वी झाले - कागद संपला आहे</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index 8c4b7e4..136fc061 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK tidak sah.</translation>
 <translation id="1510238584712386396">Pelancar</translation>
 <translation id="1644574205037202324">Sejarah</translation>
+<translation id="1662989795263954667">Dihentikan - Kehabisan dakwat</translation>
 <translation id="1734367976349034509">Peranti ini diurus perusahaan</translation>
 <translation id="1905710495812624430">Melebihi had maksimum percubaan yang dibenarkan.</translation>
 <translation id="1930797645656624981">Perkhidmatan Kaedah Input OS Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Kata laluan tamat tempoh dalam <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Tiada tugas cetak yang sedang dijalankan</translation>
 <translation id="428217921675623177">Tugas cetak yang melebihi 90 hari akan dialih keluar</translation>
+<translation id="4297501883039923494">Dihentikan - Ralat tidak diketahui</translation>
 <translation id="4429881212383817840">Tiket Kerberos akan tamat tempoh tidak lama lagi</translation>
 <translation id="445059817448385655">Kata laluan lama</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> daripada <ph name="TOTAL_PAGE_NUMBER" />. Tekan enter untuk membatalkan tugas cetak.</translation>
 <translation id="467510802200863975">Kata laluan tidak sepadan</translation>
+<translation id="4691278870498629773">Dihentikan - Dulang tiada</translation>
 <translation id="4731797938093519117">Akses ibu bapa</translation>
 <translation id="4773299976671772492">Dihentikan</translation>
 <translation id="4808449224298348341">Tugas cetak <ph name="DOCUMENT_TITLE" /> dibatalkan</translation>
 <translation id="4890353053343094602">Pilih kata laluan baharu secepat mungkin</translation>
+<translation id="4917889632206600977">Dihentikan - Kehabisan kertas</translation>
 <translation id="4932733599132424254">Tarikh</translation>
 <translation id="5212543919916444558">Saya tidak menemui apa-apa pada skrin anda yang boleh saya bantu.
 Cuba ketik mikrofon untuk bertanyakan sebarang perkara kepada saya.</translation>
 <translation id="5222676887888702881">Log keluar</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Simpan</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Pilih kata laluan baharu sekarang</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Untuk menyelesaikan proses ini, masukkan kata laluan lama anda</translation>
 <translation id="6146993107019042706">Untuk menyelesaikan proses ini, masukkan kata laluan baharu anda</translation>
 <translation id="636850387210749493">Pendaftaran perusahaan</translation>
+<translation id="649050271426829538">Dihentikan - Kertas tersangkut</translation>
 <translation id="6517239166834772319">Teroka</translation>
 <translation id="6564646048574748301">Gagal - Pencetak tidak dapat dicapai</translation>
 <translation id="6643016212128521049">Kosongkan</translation>
+<translation id="6747215703636344499">Dihentikan - Output penuh</translation>
 <translation id="7162487448488904999">Galeri</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Tindakan ini diurus oleh pentadbir anda</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tugas cetak</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> mengurus pengguna ini. Domain ini mungkin mengurus tetapan dan memantau aktiviti pengguna dari jauh.</translation>
 <translation id="871560550817059752">Gagal - Kehabisan dakwat</translation>
+<translation id="8726019395068607495">Dihentikan - Pintu terbuka</translation>
 <translation id="8747900814994928677">Sahkan penukaran</translation>
 <translation id="8919837981463578619">Gagal - Dulang tiada</translation>
 <translation id="8928727111548978589">Gagal - Kehabisan kertas</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index fe8950ef..352b79b9 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">अमान्य PUK।</translation>
 <translation id="1510238584712386396">लन्चर</translation>
 <translation id="1644574205037202324">इतिहास</translation>
+<translation id="1662989795263954667">रोकियो - प्रिन्टरको मसी सकियो</translation>
 <translation id="1734367976349034509">यो यन्त्रलाई इन्टरप्राइजद्वारा व्यवस्थापन गरिएको छ</translation>
 <translation id="1905710495812624430">अनुमति दिइएका प्रयासहरूको अधिकतम संख्या नाघ्यो।</translation>
 <translation id="1930797645656624981">Chrome OS को इनपुट विधिसम्बन्धी सेवा</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">पासवर्डको म्याद <ph name="TIME" /> मा सकिन्छ</translation>
 <translation id="4238516577297848345">प्रिन्टसम्बन्धी कुनै पनि काम भइरहेको छैन</translation>
 <translation id="428217921675623177">९० दिनभन्दा पहिले प्रिन्ट गरिएका कुरासम्बन्धी जानकारी हटाइने छ</translation>
+<translation id="4297501883039923494">रोकियो - अज्ञात त्रुटि भयो</translation>
 <translation id="4429881212383817840">Kerberos टिकटको म्याद चाँडै सकिँदै छ</translation>
 <translation id="445059817448385655">पुरानो पासवर्ड</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> मध्ये <ph name="PRINTED_PAGE_NUMBER" />। प्रिन्ट गर्ने कार्य रद्द गर्न enter थिच्नुहोस्।</translation>
 <translation id="467510802200863975">पासवर्डहरू मिलेनन्</translation>
+<translation id="4691278870498629773">रोकियो - प्रिन्टरमा ट्रे छैन</translation>
 <translation id="4731797938093519117">अभिभावकको पहुँच</translation>
 <translation id="4773299976671772492">रोकियो</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> प्रिन्ट गर्ने कार्य रद्द गरियो</translation>
 <translation id="4890353053343094602">तुरुन्तै एउटा नयाँ पासवर्ड राख्नुहोस्</translation>
+<translation id="4917889632206600977">रोकियो - प्रिन्टरमा कागज सकियो</translation>
 <translation id="4932733599132424254">मिति</translation>
 <translation id="5212543919916444558">मैले तपाईंको स्क्रिनमा आफूले मद्दत गर्न मिल्ने कुनै पनि कुरा फेला पार्न सकिन। मलाई केही कुरा सोध्न माइकमा ट्याप गरी हेर्नुहोस्।</translation>
 <translation id="5222676887888702881">साइन आउट गर्नुहोस्</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">बचत गर्नुहोस्</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">अहिले नै एउटा नयाँ पासवर्ड राख्नुहोस्</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">यो कार्य पूरा गर्न आफ्नो पुरानो पासवर्ड प्रविष्टि गर्नुहोस्</translation>
 <translation id="6146993107019042706">यो कार्य पूरा गर्न आफ्नो नयाँ पासवर्ड प्रविष्टि गर्नुहोस्</translation>
 <translation id="636850387210749493">उद्यम भर्ना</translation>
+<translation id="649050271426829538">रोकियो - प्रिन्टरमा कागज अड्कियो</translation>
 <translation id="6517239166834772319">एक्स्प्लोर</translation>
 <translation id="6564646048574748301">प्रिन्ट गर्न सकिएन - प्रिन्टरमा कनेक्ट भइरहेको छैन</translation>
 <translation id="6643016212128521049">खालि गर्नुहोस्</translation>
+<translation id="6747215703636344499">रोकियो - प्रिन्टरको आउटपुट ट्रे भरिएको छ</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">यो कार्य तपाईंका एड्मिनले व्यवस्थापन गर्नुभएको छ</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">प्रिन्टसम्बन्धी कार्यहरू</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> ले यो प्रयोगकर्ताको व्यवस्थापन गर्छ। यसले दूरवर्ती रूपमा सेटिङ व्यवस्थापन गर्न र प्रयोगकर्ताले गर्ने क्रियाकलाप निगरानी गर्न सक्छ।</translation>
 <translation id="871560550817059752">प्रिन्ट गर्न सकिएन - मसी सकियो</translation>
+<translation id="8726019395068607495">रोकियो - प्रिन्टरको कभर खुला छ</translation>
 <translation id="8747900814994928677">परिवर्तनको पुष्टि गर्नुहोस्</translation>
 <translation id="8919837981463578619">प्रिन्ट गर्न सकिएन - ट्रे छैन</translation>
 <translation id="8928727111548978589">प्रिन्ट गर्न सकिएन - कागज सकियो</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 2d2f6c0..5d354e8b 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Ongeldige pukcode.</translation>
 <translation id="1510238584712386396">Launcher</translation>
 <translation id="1644574205037202324">Geschiedenis</translation>
+<translation id="1662989795263954667">Gestopt: geen inkt meer</translation>
 <translation id="1734367976349034509">Dit apparaat wordt beheerd door een onderneming</translation>
 <translation id="1905710495812624430">Maximumaantal toegestane pogingen overschreden.</translation>
 <translation id="1930797645656624981">Invoermethodeservice voor Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Wachtwoord verloopt over <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Er worden geen afdruktaken uitgevoerd</translation>
 <translation id="428217921675623177">Afdruktaken ouder dan 90 dagen worden verwijderd</translation>
+<translation id="4297501883039923494">Gestopt: onbekende fout</translation>
 <translation id="4429881212383817840">Kerberos-ticket verloopt binnenkort</translation>
 <translation id="445059817448385655">Oud wachtwoord</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> van <ph name="TOTAL_PAGE_NUMBER" />. Druk op Enter om de afdruktaak te annuleren.</translation>
 <translation id="467510802200863975">De wachtwoorden komen niet overeen</translation>
+<translation id="4691278870498629773">Gestopt: lade ontbreekt</translation>
 <translation id="4731797938093519117">Toegang door ouders</translation>
 <translation id="4773299976671772492">Beëindigd</translation>
 <translation id="4808449224298348341">Afdruktaak <ph name="DOCUMENT_TITLE" /> geannuleerd</translation>
 <translation id="4890353053343094602">Kies onmiddellijk een nieuw wachtwoord</translation>
+<translation id="4917889632206600977">Gestopt: geen papier meer</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="5212543919916444558">Ik heb niets gevonden op je scherm waarmee ik kan helpen.
 Tik op de microfoon om me iets te vragen.</translation>
 <translation id="5222676887888702881">Uitloggen</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Opslaan</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Kies nu een nieuw wachtwoord</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Geef je oude wachtwoord op om te voltooien</translation>
 <translation id="6146993107019042706">Geef je nieuwe wachtwoord opnieuw op om te voltooien</translation>
 <translation id="636850387210749493">Aanmelding voor Enterprise</translation>
+<translation id="649050271426829538">Gestopt: papierstoring</translation>
 <translation id="6517239166834772319">Ontdekken</translation>
 <translation id="6564646048574748301">Mislukt - Printer is niet bereikbaar</translation>
 <translation id="6643016212128521049">Wissen</translation>
+<translation id="6747215703636344499">Gestopt: uitvoer is vol</translation>
 <translation id="7162487448488904999">Galerij</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Deze actie wordt beheerd door je beheerder</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Afdruktaken</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> beheert deze gebruiker. Dit domein kan op afstand instellingen beheren en gebruikersactiviteit in de gaten houden.</translation>
 <translation id="871560550817059752">Mislukt - Geen inkt meer</translation>
+<translation id="8726019395068607495">Gestopt: klep geopend</translation>
 <translation id="8747900814994928677">Wijziging bevestigen</translation>
 <translation id="8919837981463578619">Mislukt - Lade ontbreekt</translation>
 <translation id="8928727111548978589">Mislukt - Geen papier meer</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index 1736099..c4f9d16f 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Ugyldig PUK.</translation>
 <translation id="1510238584712386396">Appoversikt</translation>
 <translation id="1644574205037202324">Logg</translation>
+<translation id="1662989795263954667">Stoppet – tom for blekk</translation>
 <translation id="1734367976349034509">Denne enheten er administrert av en bedrift</translation>
 <translation id="1905710495812624430">Du har overskredet maksimumsgrensen for antall forsøk.</translation>
 <translation id="1930797645656624981">Tjeneste for Chrome OS-inndatametode</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Passordet utløper om <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Ingen utskriftsjobber pågår</translation>
 <translation id="428217921675623177">Utskriftsjobber som er eldre enn 90 dager, blir fjernet</translation>
+<translation id="4297501883039923494">Stoppet – ukjent feil</translation>
 <translation id="4429881212383817840">Kerberos-saken utløper snart</translation>
 <translation id="445059817448385655">Gammelt passord</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> av <ph name="TOTAL_PAGE_NUMBER" />. Trykk på Enter for å avbryte utskriftsjobben.</translation>
 <translation id="467510802200863975">Passordene er ikke like</translation>
+<translation id="4691278870498629773">Stoppet – en skuff mangler</translation>
 <translation id="4731797938093519117">Foreldretilgang</translation>
 <translation id="4773299976671772492">Stoppet</translation>
 <translation id="4808449224298348341">Avbrøt utskriftsjobben <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Velg et nytt passord umiddelbart</translation>
+<translation id="4917889632206600977">Stoppet – tom for papir</translation>
 <translation id="4932733599132424254">Dato</translation>
 <translation id="5212543919916444558">Jeg finner ikke noe på skjermen jeg kan hjelpe deg med. 
 Prøv å trykke på mikrofonen for å spørre meg om noe.</translation>
 <translation id="5222676887888702881">Logg av</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Lagre</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Velg et nytt passord nå</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">For å fullføre passordendringen, skriv inn det gamle passordet</translation>
 <translation id="6146993107019042706">For å fullføre passordendringen, skriv inn det nye passordet</translation>
 <translation id="636850387210749493">Bedriftsregistrering</translation>
+<translation id="649050271426829538">Stoppet – papirstopp</translation>
 <translation id="6517239166834772319">Utforsk</translation>
 <translation id="6564646048574748301">Mislykket – skriveren kan ikke nås</translation>
 <translation id="6643016212128521049">Tøm</translation>
+<translation id="6747215703636344499">Stoppet – utskriftsmottaket er fullt</translation>
 <translation id="7162487448488904999">Galleri</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Denne handlingen administreres av administratoren</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Utskriftsjobber</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> administrerer denne brukeren. Domenet kan administrere innstillinger og overvåke brukeraktivitet eksternt.</translation>
 <translation id="871560550817059752">Mislykket – tom for blekk</translation>
+<translation id="8726019395068607495">Stoppet – luken er åpen</translation>
 <translation id="8747900814994928677">Bekreft endringen</translation>
 <translation id="8919837981463578619">Mislykket – en skuff mangler</translation>
 <translation id="8928727111548978589">Mislykket – tom for papir</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb
index 477f410..8a2c496 100644
--- a/chromeos/strings/chromeos_strings_pa.xtb
+++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">ਅਵੈਧ PUK।</translation>
 <translation id="1510238584712386396">ਲੌਂਚਰ</translation>
 <translation id="1644574205037202324">ਇਤਿਹਾਸ</translation>
+<translation id="1662989795263954667">ਬੰਦ ਹੋ ਗਿਆ - ਸਿਆਹੀ ਖਤਮ ਹੋ ਗਈ ਹੈ</translation>
 <translation id="1734367976349034509">ਇਹ ਡੀਵਾਈਸ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਦੁਆਰਾ ਪ੍ਰਬੰਧਿਤ ਹੈ</translation>
 <translation id="1905710495812624430">ਅਧਿਕਤਮ ਮਨਜ਼ੂਰ ਕੀਤੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਵਧੀਆਂ।</translation>
 <translation id="1930797645656624981">Chrome OS ਇਨਪੁੱਟ ਵਿਧੀ ਸੇਵਾ</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515">ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ <ph name="TIME" /> ਵਿੱਚ ਮੁੱਕ ਜਾਵੇਗੀ</translation>
 <translation id="4238516577297848345">ਕੋਈ ਪ੍ਰਿੰਟ ਜੌਬ ਪ੍ਰਕਿਰਿਆ-ਅਧੀਨ ਨਹੀਂ ਹੈ</translation>
 <translation id="428217921675623177">90 ਦਿਨ ਤੋਂ ਜ਼ਿਆਦਾ ਪੁਰਾਣੀਆਂ ਪ੍ਰਿੰਟ ਜੌਬਾਂ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation>
+<translation id="4297501883039923494">ਬੰਦ ਹੋ ਗਿਆ - ਅਗਿਆਤ ਗੜਬੜ</translation>
 <translation id="4429881212383817840">Kerberos ਟਿਕਟ ਦੀ ਮਿਆਦ ਜਲਦ ਹੀ ਮੁੱਕ ਜਾਵੇਗੀ</translation>
 <translation id="445059817448385655">ਪੁਰਾਣਾ ਪਾਸਵਰਡ</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ਵਿੱਚੋਂ <ph name="PRINTED_PAGE_NUMBER" />। ਪ੍ਰਿੰਟ ਜੌਬ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation>
 <translation id="467510802200863975">ਪਾਸਵਰਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ</translation>
+<translation id="4691278870498629773">ਬੰਦ ਹੋ ਗਿਆ - ਟ੍ਰੇਅ ਮੌਜੂਦ ਨਹੀਂ ਹੈ</translation>
 <translation id="4731797938093519117">ਮਾਂ-ਪਿਓ ਲਈ ਪਹੁੰਚ</translation>
 <translation id="4773299976671772492">ਬੰਦ ਕੀਤਾ</translation>
 <translation id="4808449224298348341">ਰੱਦ ਕੀਤੀ ਪ੍ਰਿੰਟ ਜੌਬ <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">ਛੇਤੀ ਇੱਕ ਨਵਾਂ ਪਾਸਵਰਡ ਚੁਣੋ</translation>
+<translation id="4917889632206600977">ਬੰਦ ਹੋ ਗਿਆ - ਕਾਗਜ਼ ਖਤਮ ਹੋ ਗਏ</translation>
 <translation id="4932733599132424254">ਤਾਰੀਖ</translation>
 <translation id="5212543919916444558">ਮੈਨੂੰ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ 'ਤੇ ਅਜਿਹਾ ਕੁਝ ਵੀ ਨਹੀਂ ਮਿਲਿਆ ਜਿਸ ਵਿੱਚ ਮੈਂ ਤੁਹਾਡੀ ਮਦਦ ਕਰ ਸਕਾਂ। ਮੇਰੇ ਤੋਂ ਕੁਝ ਵੀ ਪੁੱਛਣ ਲਈ ਮਾਈਕ 'ਤੇ ਟੈਪ ਕਰਕੇ ਦੇਖੋ।</translation>
 <translation id="5222676887888702881">ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">ਹੁਣੇ ਇੱਕ ਨਵਾਂ ਪਾਸਵਰਡ ਚੁਣੋ</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">ਪੂਰਾ ਕਰਨ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="6146993107019042706">ਪੂਰਾ ਕਰਨ ਲਈ, ਆਪਣਾ ਨਵਾਂ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="636850387210749493">ਐਂਟਰਪ੍ਰਾਈਜ਼ ਐਨਰੌਲਮੈਂਟ</translation>
+<translation id="649050271426829538">ਬੰਦ ਹੋ ਗਿਆ - ਕਾਗਜ਼ ਫਸ ਗਿਆ ਹੈ</translation>
 <translation id="6517239166834772319">ਪੜਚੋਲ ਕਰੋ</translation>
 <translation id="6564646048574748301">ਅਸਫਲ ਰਹੀ - ਪ੍ਰਿੰਟਰ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੈ</translation>
 <translation id="6643016212128521049">ਹਟਾਓ</translation>
+<translation id="6747215703636344499">ਬੰਦ ਹੋ ਗਿਆ - ਆਊਟਪੁੱਟ ਭਰ ਗਿਆ ਹੈ</translation>
 <translation id="7162487448488904999">ਗੈਲਰੀ</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਇਸ ਕਾਰਵਾਈ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">ਪ੍ਰਿੰਟ ਜੌਬਾਂ</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> ਇਸ ਵਰਤੋਂਕਾਰ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ। ਇਹ ਦੂਰ-ਦਰਾਡੇ ਤੋਂ ਸੈਟਿੰਗਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਵਰਤੋਂਕਾਰ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ।</translation>
 <translation id="871560550817059752">ਅਸਫਲ ਰਹੀ - ਸਿਆਹੀ ਖਤਮ ਹੋ ਗਈ ਹੈ</translation>
+<translation id="8726019395068607495">ਬੰਦ ਹੋ ਗਿਆ - ਢੱਕਣ ਖੁੱਲ੍ਹਾ ਹੈ</translation>
 <translation id="8747900814994928677">ਤਬਦੀਲੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="8919837981463578619">ਅਸਫਲ ਰਹੀ - ਟ੍ਰੇਅ ਮੌਜੂਦ ਨਹੀਂ ਹੈ</translation>
 <translation id="8928727111548978589">ਅਸਫਲ ਰਹੀ - ਕਾਗਜ਼ ਖਤਮ ਹੋ ਗਏ</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index a554cc9..c5515834 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK nevalid.</translation>
 <translation id="1510238584712386396">Lansator</translation>
 <translation id="1644574205037202324">Istoric</translation>
+<translation id="1662989795263954667">Oprită – Cerneală epuizată</translation>
 <translation id="1734367976349034509">Acest dispozitiv este gestionat de companie</translation>
 <translation id="1905710495812624430">Ai depășit numărul maxim de încercări permise.</translation>
 <translation id="1930797645656624981">Serviciul metodei de introducere a textului din sistemul de operare Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Parola expiră în <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Nicio sarcină de printare în desfășurare</translation>
 <translation id="428217921675623177">Sarcinile de printare mai vechi de 90 de zile vor fi eliminate</translation>
+<translation id="4297501883039923494">Oprită – Eroare necunoscută</translation>
 <translation id="4429881212383817840">Tichetul Kerberos expiră în curând</translation>
 <translation id="445059817448385655">Parolă veche</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> din <ph name="TOTAL_PAGE_NUMBER" />. Apasă pe Enter pentru a anula sarcina de printare.</translation>
 <translation id="467510802200863975">Parolele nu se potrivesc</translation>
+<translation id="4691278870498629773">Oprită – Tavă lipsă</translation>
 <translation id="4731797938093519117">Acces pentru părinți</translation>
 <translation id="4773299976671772492">Oprit</translation>
 <translation id="4808449224298348341">S-a anulat sarcina de printare <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Alege imediat una nouă</translation>
+<translation id="4917889632206600977">Oprită – Hârtie epuizată</translation>
 <translation id="4932733599132424254">Data</translation>
 <translation id="5212543919916444558">Nu găsesc conținut pe ecran în privința căruia te-aș putea ajuta.
 Atinge microfonul și întreabă orice dorești.</translation>
 <translation id="5222676887888702881">Deconectează-te</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Salvează</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Alege una nouă acum</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Pentru a finaliza, introdu vechea parolă</translation>
 <translation id="6146993107019042706">Pentru a finaliza, introdu noua parolă</translation>
 <translation id="636850387210749493">Înscriere pentru întreprindere</translation>
+<translation id="649050271426829538">Oprită – Blocaj de hârtie</translation>
 <translation id="6517239166834772319">Explorare</translation>
 <translation id="6564646048574748301">Nereușită – Imprimanta nu poate fi accesată</translation>
 <translation id="6643016212128521049">Șterge</translation>
+<translation id="6747215703636344499">Oprită – Tavă de ieșire plină</translation>
 <translation id="7162487448488904999">Galerie</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Această setare este gestionată de administrator</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Sarcini de printare</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> gestionează acest utilizator. Poate să gestioneze de la distanță setările și să monitorizeze activitatea utilizatorului.</translation>
 <translation id="871560550817059752">Nereușită – Cerneală epuizată</translation>
+<translation id="8726019395068607495">Oprită – Ușă deschisă</translation>
 <translation id="8747900814994928677">Confirmă schimbarea</translation>
 <translation id="8919837981463578619">Nereușită – Tavă lipsă</translation>
 <translation id="8928727111548978589">Nereușită – Hârtie epuizată</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index ba0b9bf..bd95252 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">වලංගු නොවන PUK.</translation>
 <translation id="1510238584712386396">දියත්කරණය</translation>
 <translation id="1644574205037202324">ඉතිහාසය</translation>
+<translation id="1662989795263954667">නැවතිණි - තීන්ත අවසන් විය</translation>
 <translation id="1734367976349034509">මෙම උපාංගය ව්‍යවසායීව කළමනාකරණය වේ</translation>
 <translation id="1905710495812624430">ඉඩ දෙන උපරිම උත්සාහයන් ගණන ඉක්මවා ඇත.</translation>
 <translation id="1930797645656624981">Chrome OS ආදාන ක්‍රම සේවය</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">මුරපදය <ph name="TIME" /> තුළ කල් ඉකුත් වෙයි</translation>
 <translation id="4238516577297848345">කෙරෙමින් පවතින මුද්‍රණ කාර්යයක් නැත</translation>
 <translation id="428217921675623177">දින 90කට වඩා පැරණි මුද්‍රණ කාර්ය ඉවත් කරනු ඇත</translation>
+<translation id="4297501883039923494">නැවතිණි - නොදන්නා දෝෂයකි</translation>
 <translation id="4429881212383817840">Kerberos ප්‍රවේශපත්‍රය ඉක්මනින් කල් ඉකුත් වෙයි</translation>
 <translation id="445059817448385655">පැරණි මුරපදය</translation>
 <translation id="4627232916386272576"><ph name="TOTAL_PAGE_NUMBER" /> න් <ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> මුද්‍රණ කාර්යය අවලංගු කිරීමට enter ඔබන්න.</translation>
 <translation id="467510802200863975">මුරපද නොගැළපෙති</translation>
+<translation id="4691278870498629773">නැවතිණි - තැටිය අස්ථානගතව ඇත</translation>
 <translation id="4731797938093519117">මාපිය ප්‍රවේශය</translation>
 <translation id="4773299976671772492">නවත්වන ලදි</translation>
 <translation id="4808449224298348341">මුද්‍රණ කාර්යය <ph name="DOCUMENT_TITLE" /> අවලංගු කරන ලදී</translation>
 <translation id="4890353053343094602">වහාම අලුත් එකක් තෝරන්න</translation>
+<translation id="4917889632206600977">නැවතිණි - කඩදාසි අවසන් වී ඇත</translation>
 <translation id="4932733599132424254">දිනය</translation>
 <translation id="5212543919916444558">මට ඔබට උදවු විය හැකි කිසිවක් ඔබේ තිරය මත සොයා ගැනීමට නොහැකිය.
 මගෙන් යම් දෙයක් ඇසීමට මයික්‍රෆෝනය තට්ටු කිරීම උත්සාහ කරන්න.</translation>
 <translation id="5222676887888702881">පිටවීම</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">සුරකින්න</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">දැන් අලුත් එකක් තෝරන්න</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">අවසන් කිරීමට, ඔබේ පැරණි මුරපදය ඇතුළත් කරන්න</translation>
 <translation id="6146993107019042706">අවසන් කිරීමට, ඔබේ නව මුරපදය ඇතුළත් කරන්න</translation>
 <translation id="636850387210749493">ව්‍යාපාරික බඳවාගැනීම</translation>
+<translation id="649050271426829538">නැවතිණි - කඩදාසි හිරවීම</translation>
 <translation id="6517239166834772319">ගවේෂණය</translation>
 <translation id="6564646048574748301">අසාර්ථක විය - මුද්‍රණ යන්ත්‍රය වෙත ළඟා විය නොහැකිය</translation>
 <translation id="6643016212128521049">මකන්න</translation>
+<translation id="6747215703636344499">නැවතිණි - ප්‍රතිදානය පිරී ඇත</translation>
 <translation id="7162487448488904999">ගැලරිය</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">මෙම ක්‍රියාව ඔබේ පරිපාලක විසින් කළමනාකරණය කරයි</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">මුද්‍රණ වැඩ</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> මෙම පරිශීලකයා කළමනා කරයි. එය දුරස්ථව සැකසීම් කළමනා කිරීමට සහ පරිශීලක ක්‍රියාකාරකම නිරීක්‍ෂණ කිරීමට හැකිය.</translation>
 <translation id="871560550817059752">අසාර්ථක විය - තීන්ත නැත</translation>
+<translation id="8726019395068607495">නැවතිණි - දොර විවෘතයි</translation>
 <translation id="8747900814994928677">වෙනස් කිරීම තහවුරු කරන්න</translation>
 <translation id="8919837981463578619">අසාර්ථක විය - තැටිය මගහැරී ඇත</translation>
 <translation id="8928727111548978589">අසාර්ථක විය - කඩදාසි නැත</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index 3062ef1..eba0b31 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Neveljavna koda PUK.</translation>
 <translation id="1510238584712386396">Zaganjalnik</translation>
 <translation id="1644574205037202324">Zgodovina</translation>
+<translation id="1662989795263954667">Ustavljeno – zmanjkalo je črnila</translation>
 <translation id="1734367976349034509">To napravo upravlja podjetje</translation>
 <translation id="1905710495812624430">Preseženo je največje dovoljeno število dovoljenih poskusov.</translation>
 <translation id="1930797645656624981">Storitev načina vnosa v okolju OS Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Geslo poteče čez toliko časa: <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Nobeno tiskalno opravilo ne poteka</translation>
 <translation id="428217921675623177">Tiskalna opravila, starejša od 90 dni, bodo odstranjena</translation>
+<translation id="4297501883039923494">Ustavljeno – neznana napaka</translation>
 <translation id="4429881212383817840">Kartonček za Kerberos kmalu poteče</translation>
 <translation id="445059817448385655">Staro geslo</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> od <ph name="TOTAL_PAGE_NUMBER" />. Pritisnite tipko Enter, če želite preklicati tiskalno opravilo.</translation>
 <translation id="467510802200863975">Gesli se ne ujemata</translation>
+<translation id="4691278870498629773">Ustavljeno – ni pladnja</translation>
 <translation id="4731797938093519117">Starševski dostop</translation>
 <translation id="4773299976671772492">Ustavljeno</translation>
 <translation id="4808449224298348341">Preklicano tiskalno opravilo za dokument <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Takoj izberite novo</translation>
+<translation id="4917889632206600977">Ustavljeno – zmanjkalo je papirja</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="5212543919916444558">Na zaslonu ni ničesar uporabnega.
 Poskusite vprašati tako, da se dotaknete mikrofona.</translation>
 <translation id="5222676887888702881">Odjava</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Shrani</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Izberite novo</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Za dokončanje vnesite staro geslo</translation>
 <translation id="6146993107019042706">Za dokončanje vnesite novo geslo</translation>
 <translation id="636850387210749493">Prijava v podjetje</translation>
+<translation id="649050271426829538">Ustavljeno – zastoj papirja</translation>
 <translation id="6517239166834772319">Raziskovanje</translation>
 <translation id="6564646048574748301">Napaka – tiskalnik je nedosegljiv</translation>
 <translation id="6643016212128521049">Izbriši</translation>
+<translation id="6747215703636344499">Ustavljeno – izhodni pladenj je poln</translation>
 <translation id="7162487448488904999">Galerija</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">To dejanje upravlja skrbnik</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Tiskalna opravila</translation>
 <translation id="8701136875688985581">Domena <ph name="ENROLLMENT_DOMAIN" /> upravlja tega uporabnika. Na daljavo lahko upravlja nastavitve in nadzira dejavnost uporabnika.</translation>
 <translation id="871560550817059752">Napaka – zmanjkalo je črnila</translation>
+<translation id="8726019395068607495">Ustavljeno – vrata so odprta</translation>
 <translation id="8747900814994928677">Potrditev spremembe</translation>
 <translation id="8919837981463578619">Napaka – ni pladnja</translation>
 <translation id="8928727111548978589">Napaka – zmanjkalo je papirja</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index 51059860..b4b35b8 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Ogiltig PUK-kod.</translation>
 <translation id="1510238584712386396">Startprogram</translation>
 <translation id="1644574205037202324">Historik</translation>
+<translation id="1662989795263954667">Har stoppats – slut på bläck</translation>
 <translation id="1734367976349034509">Enheten är företagshanterad</translation>
 <translation id="1905710495812624430">Du har försökt för många gånger.</translation>
 <translation id="1930797645656624981">Tjänst för inmatningsmetod för Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Lösenordet upphör att gälla om <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Inga utskriftsjobb pågår</translation>
 <translation id="428217921675623177">Utskriftsjobb som är äldre än 90 dagar tas bort</translation>
+<translation id="4297501883039923494">Har stoppats – okänt fel</translation>
 <translation id="4429881212383817840">Kerberos-biljetten upphör snart att gälla</translation>
 <translation id="445059817448385655">Gammalt lösenord</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> av <ph name="TOTAL_PAGE_NUMBER" />. Tryck på retur för att avbryta utskriftsjobbet.</translation>
 <translation id="467510802200863975">Lösenorden matchar inte</translation>
+<translation id="4691278870498629773">Har stoppats – fack saknas</translation>
 <translation id="4731797938093519117">Föräldraåtkomst</translation>
 <translation id="4773299976671772492">Har stoppats</translation>
 <translation id="4808449224298348341">Utskriftsjobbet <ph name="DOCUMENT_TITLE" /> har avbrutits</translation>
 <translation id="4890353053343094602">Välj ett nytt omedelbart</translation>
+<translation id="4917889632206600977">Har stoppats – slut på papper</translation>
 <translation id="4932733599132424254">Datum</translation>
 <translation id="5212543919916444558">Det finns inget på skärmen som jag kan hjälpa till med.
 Tryck på mikrofonen och fråga om något.</translation>
 <translation id="5222676887888702881">Logga ut</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Spara</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Välj ett nytt nu</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Slutför genom att ange det gamla lösenordet</translation>
 <translation id="6146993107019042706">Slutför genom att ange det nya lösenordet</translation>
 <translation id="636850387210749493">Företagsregistrering</translation>
+<translation id="649050271426829538">Har stoppats – papperstrassel</translation>
 <translation id="6517239166834772319">Utforska</translation>
 <translation id="6564646048574748301">Misslyckades – skrivaren kan inte nås</translation>
 <translation id="6643016212128521049">Rensa</translation>
+<translation id="6747215703636344499">Har stoppats – utmatningsfacket är fullt</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Den här åtgärden hanteras av administratören</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Utskriftsjobb</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> hanterar denna användare och kan fjärrhantera inställningar och övervaka användaraktivitet.</translation>
 <translation id="871560550817059752">Misslyckades – slut på bläck</translation>
+<translation id="8726019395068607495">Har stoppats – luckan är öppen</translation>
 <translation id="8747900814994928677">Bekräfta ändring</translation>
 <translation id="8919837981463578619">Misslyckades – fack saknas</translation>
 <translation id="8928727111548978589">Misslyckades – slut på papper</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index 92c15ad..392d0db 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">தவறான PUK.</translation>
 <translation id="1510238584712386396">துவக்கி</translation>
 <translation id="1644574205037202324">வரலாறு</translation>
+<translation id="1662989795263954667">பிரிண்டரில் மை தீர்ந்துவிட்டதால் அச்சிட முடியவில்லை</translation>
 <translation id="1734367976349034509">இந்தச் சாதனத்தை நிர்வகிப்பது: நிறுவனம்</translation>
 <translation id="1905710495812624430">அனுமதிக்கப்பட்ட அதிகபட்ச முயற்சிகளைக் கடந்துவிட்டீர்கள்.</translation>
 <translation id="1930797645656624981">Chrome OS உள்ளீட்டு முறை சேவை</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">கடவுச்சொல் காலாவதியாக இன்னும் <ph name="TIME" /></translation>
 <translation id="4238516577297848345">அச்சுப் பணி எதுவும் செயலில் இல்லை</translation>
 <translation id="428217921675623177">90 நாட்களுக்கு மேலாக இருக்கும் அச்சுப் பணிகள் அகற்றப்படும்</translation>
+<translation id="4297501883039923494">அறியப்படாத பிழை காரணமாக அச்சிட முடியவில்லை</translation>
 <translation id="4429881212383817840">Kerberos டிக்கெட் விரைவில் காலாவதியாகும்</translation>
 <translation id="445059817448385655">தற்போதைய கடவுச்சொல்</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. அச்சுப் பணியை ரத்துசெய்ய என்ட்டர் விசையை அழுத்தவும்.</translation>
 <translation id="467510802200863975">கடவுச்சொற்கள் பொருந்தவில்லை</translation>
+<translation id="4691278870498629773">பிரிண்டரில் டிரே இல்லாததால் அச்சிட முடியவில்லை</translation>
 <translation id="4731797938093519117">பெற்றோர் அணுகல்</translation>
 <translation id="4773299976671772492">நிறுத்தப்பட்டது</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> அச்சுப் பணி ரத்துசெய்யப்பட்டது</translation>
 <translation id="4890353053343094602">புதிய கடவுச்சொல்லை உடனே தேர்ந்தெடுக்கவும்</translation>
+<translation id="4917889632206600977">காகிதம் தீர்ந்துவிட்டதால் அச்சிட முடியவில்லை</translation>
 <translation id="4932733599132424254">தேதி</translation>
 <translation id="5212543919916444558">உங்களுக்கு நான் உதவும் வகையில், உங்கள் திரையில் எதுவுமில்லை.
 என்னிடம் ஏதேனும் கேட்க, மைக்கைத் தட்டவும்.</translation>
 <translation id="5222676887888702881">வெளியேறு</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">சேமி</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">புதிய கடவுச்சொல்லை இப்போதே தேர்ந்தெடுக்கவும்</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">நிறைவுசெய்ய தற்போதைய கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="6146993107019042706">நிறைவுசெய்ய புதிய கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="636850387210749493">நிறுவனப் பதிவு</translation>
+<translation id="649050271426829538">காகிதம் சிக்கிக் கொண்டதால் அச்சிட முடியவில்லை</translation>
 <translation id="6517239166834772319">Explore</translation>
 <translation id="6564646048574748301">பிரிண்டரை அணுக முடியாததால் அச்சிட முடியவில்லை</translation>
 <translation id="6643016212128521049">அழி</translation>
+<translation id="6747215703636344499">பிரிண்ட் வெளியே வரும் டிரே நிரம்பிவிட்டதால் அச்சிட முடியவில்லை</translation>
 <translation id="7162487448488904999">கேலரி</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">இந்தச் செயல் உங்கள் நிர்வாகியால் நிர்வகிக்கப்படுகிறது</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">அச்சுப் பணிகள்</translation>
 <translation id="8701136875688985581">இந்தப் பயனரை <ph name="ENROLLMENT_DOMAIN" /> நிர்வகிக்கிறது. இது தொலைநிலையிலிருந்து அமைப்புகளை நிர்வகிக்கலாம், அத்துடன் பயனர் செயல்பாட்டையும் கண்காணிக்கலாம்.</translation>
 <translation id="871560550817059752">பிரிண்டரில் மை தீர்ந்துவிட்டதால் அச்சிட முடியவில்லை</translation>
+<translation id="8726019395068607495">மூடி திறந்துள்ளதால் அச்சிட முடியவில்லை</translation>
 <translation id="8747900814994928677">மாற்றத்தை உறுதிப்படுத்துங்கள்</translation>
 <translation id="8919837981463578619">பிரிண்டரில் டிரே இல்லாததால் அச்சிட முடியவில்லை</translation>
 <translation id="8928727111548978589">காகிதம் இல்லாததால் அச்சிட முடியவில்லை</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index 9ec3bb8..40ef331 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK చెల్లదు.</translation>
 <translation id="1510238584712386396">లాంచర్</translation>
 <translation id="1644574205037202324">చరిత్ర</translation>
+<translation id="1662989795263954667">ఆగిపోయింది - ఇంక్ లేదు</translation>
 <translation id="1734367976349034509">ఈ పరికరం సంస్థ ద్వారా నిర్వహించబడుతోంది</translation>
 <translation id="1905710495812624430">అనుమతించిన గరిష్ట ప్రయత్నాలు మించిపోయారు.</translation>
 <translation id="1930797645656624981">Chrome OS ఇన్‌పుట్ విధానం సేవ</translation>
@@ -39,17 +40,21 @@
 <translation id="4227825898293920515"><ph name="TIME" />లో పాస్‌వర్డ్‌ గడువు ముగుస్తుంది</translation>
 <translation id="4238516577297848345">ప్రింట్ టాస్క్‌లు ఏవీ ప్రోగ్రెస్‌లో లేవు</translation>
 <translation id="428217921675623177">90 రోజుల తర్వాత మీ ప్రింట్ టాస్క్‌లు తీసివేయబడతాయి</translation>
+<translation id="4297501883039923494">ఆగిపోయింది - తెలియని ఎర్రర్</translation>
 <translation id="4429881212383817840">Kerberos టిక్కెట్ గడువు త్వరలో ముగుస్తుంది</translation>
 <translation id="445059817448385655">పాత పాస్‌వర్డ్</translation>
 <translation id="4627232916386272576"><ph name="TOTAL_PAGE_NUMBER" />లో <ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />. ప్రింట్ టాస్క్‌ను రద్దు చేయడానికి ఎంటర్ నొక్కండి.</translation>
 <translation id="467510802200863975">పాస్‌వర్డ్‌లు సరిపోలడం లేదు</translation>
+<translation id="4691278870498629773">ఆగిపోయింది - ట్రే అందుబాటులో లేదు</translation>
 <translation id="4731797938093519117">తల్లి/తండ్రి యాక్సెస్</translation>
 <translation id="4773299976671772492">ఆపివేయబడింది</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> ప్రింట్ టాస్క్ రద్దు చేయబడింది</translation>
 <translation id="4890353053343094602">వెంటనే ఒక కొత్త దానిని ఎంచుకోండి</translation>
+<translation id="4917889632206600977">ఆగిపోయింది - పేపర్లు లేవు</translation>
 <translation id="4932733599132424254">తేదీ</translation>
 <translation id="5212543919916444558">నేను సహాయం అందించగలిగేలా మీ స్క్రీన్‌పై నాకు ఏదీ కనిపించలేదు. మైక్‌ను నొక్కి, నన్ను ఏదైనా అడగడానికి ప్రయత్నించండి.</translation>
 <translation id="5222676887888702881">సైన్ ఔట్</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">సేవ్ చేయి</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">ఇప్పుడే ఒక కొత్త దానిని ఎంచుకోండి</translation>
@@ -62,9 +67,11 @@
 <translation id="6106186594183574873">దీనిని ముగించడానికి, మీ పాత పాస్‌వర్డ్‌ను నమోదు చేయండి</translation>
 <translation id="6146993107019042706">దీనిని ముగించడానికి, మీ కొత్త పాస్‌వర్డ్‌ను నమోదు చేయండి</translation>
 <translation id="636850387210749493">ఎంటర్‌ప్రైజ్ నమోదు</translation>
+<translation id="649050271426829538">ఆగిపోయింది - కాగితం జామ్ అయింది</translation>
 <translation id="6517239166834772319">అన్వేషణ</translation>
 <translation id="6564646048574748301">విఫలమైంది - ప్రింటర్‌ను చేరుకోవడం సాధ్యపడలేదు</translation>
 <translation id="6643016212128521049">క్లియర్ చేయి</translation>
+<translation id="6747215703636344499">ఆగిపోయింది - అవుట్‌పుట్ నిండిపోయింది</translation>
 <translation id="7162487448488904999">Gallery</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">ఈ చర్య మీ అడ్మినిస్ట్రేటర్ ద్వారా మేనేజ్ చేయబడుతుంది</translation>
@@ -76,6 +83,7 @@
 <translation id="8347227221149377169">ప్రింట్ టాస్క్‌లు</translation>
 <translation id="8701136875688985581">ఈ యూజర్‌ను <ph name="ENROLLMENT_DOMAIN" /> మేనేజ్ చేస్తుంది. అది సెట్టింగ్‌లను రిమోట్‌గా మేనేజ్ చేయవచ్చు, యూజర్ యాక్టివిటీని మానిటర్ చేయవచ్చు.</translation>
 <translation id="871560550817059752">విఫలమైంది - ఇంక్ అయిపోయింది</translation>
+<translation id="8726019395068607495">ఆగిపోయింది - డోర్ తెరిచి ఉంది</translation>
 <translation id="8747900814994928677">మార్పును నిర్ధారించండి</translation>
 <translation id="8919837981463578619">విఫలమైంది - ట్రే అందుబాటులో లేదు</translation>
 <translation id="8928727111548978589">విఫలమైంది - పేపర్ లేదు</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index 49b4630..de2f69a 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK ไม่ถูกต้อง</translation>
 <translation id="1510238584712386396">ตัวเรียกใช้งาน</translation>
 <translation id="1644574205037202324">ประวัติการเข้าชม</translation>
+<translation id="1662989795263954667">หยุดพิมพ์ - หมึกหมด</translation>
 <translation id="1734367976349034509">อุปกรณ์นี้ได้รับการจัดการโดยองค์กร</translation>
 <translation id="1905710495812624430">ลองทำเกินจำนวนครั้งที่กำหนดไว้แล้ว</translation>
 <translation id="1930797645656624981">บริการวิธีการป้อนข้อมูลของ Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">รหัสผ่านจะหมดอายุในอีก <ph name="TIME" /></translation>
 <translation id="4238516577297848345">ไม่มีงานที่กำลังพิมพ์</translation>
 <translation id="428217921675623177">ระบบจะนำงานพิมพ์ที่เก่ากว่า 90 วันออก</translation>
+<translation id="4297501883039923494">หยุดพิมพ์ - ข้อผิดพลาดที่ไม่รู้จัก</translation>
 <translation id="4429881212383817840">ตั๋ว Kerberos กำลังจะหมดอายุ</translation>
 <translation id="445059817448385655">รหัสผ่านเดิม</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> จาก <ph name="TOTAL_PAGE_NUMBER" /> หน้า กด Enter เพื่อยกเลิกงานพิมพ์</translation>
 <translation id="467510802200863975">รหัสผ่านไม่ตรงกัน</translation>
+<translation id="4691278870498629773">หยุดพิมพ์ - ไม่มีถาด</translation>
 <translation id="4731797938093519117">การเข้าถึงของผู้ปกครอง</translation>
 <translation id="4773299976671772492">หยุดแล้ว</translation>
 <translation id="4808449224298348341">ยกเลิกงานพิมพ์ <ph name="DOCUMENT_TITLE" /> แล้ว</translation>
 <translation id="4890353053343094602">อย่ารอช้า รีบเลือกรหัสผ่านใหม่</translation>
+<translation id="4917889632206600977">หยุดพิมพ์ - กระดาษหมด</translation>
 <translation id="4932733599132424254">วันที่</translation>
 <translation id="5212543919916444558">ฉันไม่พบสิ่งที่จะช่วยได้ในหน้าจอ
 ลองแตะไมโครโฟนเพื่อถามเรื่องอะไรก็ได้</translation>
 <translation id="5222676887888702881">ออกจากระบบ</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">บันทึก</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">เลือกรหัสผ่านใหม่เลย</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">ป้อนรหัสผ่านเดิมเพื่อเปลี่ยนรหัสผ่านให้เสร็จ</translation>
 <translation id="6146993107019042706">ป้อนรหัสผ่านใหม่เพื่อเปลี่ยนรหัสผ่านให้เสร็จ</translation>
 <translation id="636850387210749493">การลงทะเบียนองค์กร</translation>
+<translation id="649050271426829538">หยุดพิมพ์ - กระดาษติด</translation>
 <translation id="6517239166834772319">สำรวจ</translation>
 <translation id="6564646048574748301">ไม่สำเร็จ - เข้าถึงเครื่องพิมพ์ไม่ได้</translation>
 <translation id="6643016212128521049">ล้าง</translation>
+<translation id="6747215703636344499">หยุดพิมพ์ - ถาดกระดาษออกเต็ม</translation>
 <translation id="7162487448488904999">แกลเลอรี</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">การดำเนินการนี้จัดการโดยผู้ดูแลระบบ</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">งานพิมพ์</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> จัดการผู้ใช้รายนี้ โดยอาจจัดการการตั้งค่าและตรวจสอบกิจกรรมของผู้ใช้จากระยะไกล</translation>
 <translation id="871560550817059752">ไม่สำเร็จ - หมึกหมด</translation>
+<translation id="8726019395068607495">หยุดพิมพ์ - ฝาเครื่องเปิดอยู่</translation>
 <translation id="8747900814994928677">ยืนยันการเปลี่ยนแปลง</translation>
 <translation id="8919837981463578619">ไม่สำเร็จ - ไม่มีถาด</translation>
 <translation id="8928727111548978589">ไม่สำเร็จ - กระดาษหมด</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index 60b1208..d1f7a8d1 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Geçersiz PUK.</translation>
 <translation id="1510238584712386396">Başlatıcı</translation>
 <translation id="1644574205037202324">Geçmiş</translation>
+<translation id="1662989795263954667">Durduruldu - Mürekkep bitti</translation>
 <translation id="1734367976349034509">Bu cihaz kuruluş tarafından yönetiliyor</translation>
 <translation id="1905710495812624430">İzin verilen maksimum deneme sayısı aşıldı.</translation>
 <translation id="1930797645656624981">Chrome OS Giriş Yöntemi Hizmeti</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Şifrenin süresi <ph name="TIME" /> içinde doluyor</translation>
 <translation id="4238516577297848345">Devam eden bir yazdırma işi yok</translation>
 <translation id="428217921675623177">90 günden eski yazdırma işleri silinir</translation>
+<translation id="4297501883039923494">Durduruldu - Bilinmeyen hata</translation>
 <translation id="4429881212383817840">Kerberos biletinin süresi yakında doluyor</translation>
 <translation id="445059817448385655">Eski şifre</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" /> Yazdırma işini iptal etmek için enter tuşuna basın.</translation>
 <translation id="467510802200863975">Şifreler eşleşmiyor</translation>
+<translation id="4691278870498629773">Durduruldu - Tepsi yok</translation>
 <translation id="4731797938093519117">Ebeveyn erişimi</translation>
 <translation id="4773299976671772492">Durduruldu</translation>
 <translation id="4808449224298348341"><ph name="DOCUMENT_TITLE" /> yazdırma işi iptal edildi</translation>
 <translation id="4890353053343094602">Hemen yeni bir tane seçin</translation>
+<translation id="4917889632206600977">Durduruldu - Kağıt bitti</translation>
 <translation id="4932733599132424254">Tarih</translation>
 <translation id="5212543919916444558">Ekranınızda size yardımcı olabileceğim bir şey bulamıyorum.
 Bana bir şey sormak için mikrofona dokunmayı deneyin.</translation>
 <translation id="5222676887888702881">Çıkış</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Kaydet</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Yeni bir tane seçin</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Bitirmek için eski şifrenizi girin</translation>
 <translation id="6146993107019042706">Bitirmek için yeni şifrenizi girin</translation>
 <translation id="636850387210749493">Kurumsal kayıt</translation>
+<translation id="649050271426829538">Durduruldu - Kağıt sıkışması</translation>
 <translation id="6517239166834772319">Keşfet</translation>
 <translation id="6564646048574748301">İşlem başarısız - Yazıcıya ulaşılamıyor</translation>
 <translation id="6643016212128521049">Temizle</translation>
+<translation id="6747215703636344499">Durduruldu - Çıkış tepsisi dolu</translation>
 <translation id="7162487448488904999">Galeri</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Bu işlem, yöneticiniz tarafından yönetilir.</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Yazdırma işleri</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" />, bu kullanıcıyı yönetiyor. Ayarları uzaktan yönetebilir ve kullanıcı etkinliğini izleyebilir.</translation>
 <translation id="871560550817059752">İşlem başarısız - Mürekkep yok</translation>
+<translation id="8726019395068607495">Durduruldu - Kapak açık</translation>
 <translation id="8747900814994928677">Değişikliği onaylayın</translation>
 <translation id="8919837981463578619">İşlem başarısız - Tepsi yok</translation>
 <translation id="8928727111548978589">İşlem başarısız - Kağıt yok</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index 3836c79..668b9bb7 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">Недійсний PUK-код.</translation>
 <translation id="1510238584712386396">Панель запуску</translation>
 <translation id="1644574205037202324">Історія</translation>
+<translation id="1662989795263954667">Зупинено – закінчилося чорнило</translation>
 <translation id="1734367976349034509">Цим пристроєм керує адміністратор підприємства</translation>
 <translation id="1905710495812624430">Перевищено максимальну кількість дозволених спроб.</translation>
 <translation id="1930797645656624981">Сервіс методів введення в ОС Chrome</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Термін дії пароля закінчиться через <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Немає активних завдань друку</translation>
 <translation id="428217921675623177">Завдання друку, старіші за 90 днів, буде видалено</translation>
+<translation id="4297501883039923494">Зупинено – невідома помилка</translation>
 <translation id="4429881212383817840">Термін дії квитка Kerberos незабаром минає</translation>
 <translation id="445059817448385655">Старий пароль</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> з <ph name="TOTAL_PAGE_NUMBER" />. Натисніть Enter, щоб скасувати завдання друку.</translation>
 <translation id="467510802200863975">Паролі не збігаються</translation>
+<translation id="4691278870498629773">Зупинено – немає лотка</translation>
 <translation id="4731797938093519117">Батьківський доступ</translation>
 <translation id="4773299976671772492">Зупинено</translation>
 <translation id="4808449224298348341">Завдання друку "<ph name="DOCUMENT_TITLE" />" скасовано</translation>
 <translation id="4890353053343094602">Негайно виберіть новий</translation>
+<translation id="4917889632206600977">Зупинено – закінчився папір</translation>
 <translation id="4932733599132424254">Дата</translation>
 <translation id="5212543919916444558">На екрані не знайдено елементів, проблеми з якими я можу вирішити.
 Торкніться значка мікрофона, щоб поставити запитання.</translation>
 <translation id="5222676887888702881">Вийти</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Зберегти</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Виберіть новий зараз</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Щоб завершити, введіть старий пароль</translation>
 <translation id="6146993107019042706">Щоб завершити, введіть новий пароль</translation>
 <translation id="636850387210749493">Реєстрація підприємства</translation>
+<translation id="649050271426829538">Зупинено – зам'яло папір</translation>
 <translation id="6517239166834772319">Можливості</translation>
 <translation id="6564646048574748301">Не надруковано – принтер недоступний</translation>
 <translation id="6643016212128521049">Очистити</translation>
+<translation id="6747215703636344499">Зупинено – вихідний лоток заповнений</translation>
 <translation id="7162487448488904999">Галерея</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Цією дією керує адміністратор</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Завдання друку</translation>
 <translation id="8701136875688985581">Домен <ph name="ENROLLMENT_DOMAIN" /> керує цим користувачем. Він може віддалено змінювати налаштування й відстежувати дії користувача.</translation>
 <translation id="871560550817059752">Не надруковано – закінчилося чорнило</translation>
+<translation id="8726019395068607495">Зупинено – відкрито кришку принтера</translation>
 <translation id="8747900814994928677">Підтвердити зміни</translation>
 <translation id="8919837981463578619">Не надруковано – немає лотка</translation>
 <translation id="8928727111548978589">Не надруковано – закінчився папір</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb
index fd16d03c..5790f8f 100644
--- a/chromeos/strings/chromeos_strings_uz.xtb
+++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK kod xato.</translation>
 <translation id="1510238584712386396">Ishga tushirish paneli</translation>
 <translation id="1644574205037202324">Tarix</translation>
+<translation id="1662989795263954667">Toʻxtatildi – Siyoh tugadi</translation>
 <translation id="1734367976349034509">Bu korporativ qurilma</translation>
 <translation id="1905710495812624430">Urinishlar soni cheklovdan oshib ketdi.</translation>
 <translation id="1930797645656624981">Chrome OS matn kiritish xizmati</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Parol muddati tugashiga <ph name="TIME" /> qoldi</translation>
 <translation id="4238516577297848345">Hozir hech nima chop etilmayapti</translation>
 <translation id="428217921675623177">90 kundan eski bosma vazifalar avtomatik tozalanadi</translation>
+<translation id="4297501883039923494">Toʻxtatildi – Notanish xato</translation>
 <translation id="4429881212383817840">Kerberos chiptasi amal qilish muddati tezda tugaydi</translation>
 <translation id="445059817448385655">Eski parol</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Chop etilishini bekor qilish uchun Enter tugmasini bosing.</translation>
 <translation id="467510802200863975">Parollaringiz mos kelmadi</translation>
+<translation id="4691278870498629773">Toʻxtatildi - Tarnov joyida emas</translation>
 <translation id="4731797938093519117">Ota-ona kirishi</translation>
 <translation id="4773299976671772492">To‘xtatildi</translation>
 <translation id="4808449224298348341">Chop etilishi bekor qilindi: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Tezda yangi parol tanlang</translation>
+<translation id="4917889632206600977">Toʻxtatildi – Qogʻoz tugadi</translation>
 <translation id="4932733599132424254">Sana</translation>
 <translation id="5212543919916444558">Ekranda men yordam bera oladigan hech narsa topilmadi.
 Mikrofon ustiga bosing va savolni ayting.</translation>
 <translation id="5222676887888702881">Tizimdan chiqish</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Saqlash</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Hoziroq yangi parol tanlang</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Yakunlash uchun eski parolni kiriting</translation>
 <translation id="6146993107019042706">Yakunlash uchun yangi parolni kiriting</translation>
 <translation id="636850387210749493">Korporativ domen ro‘yxatidan o‘tish</translation>
+<translation id="649050271426829538">Toʻxtatildi – Qogʻoz tiqilib qoldi</translation>
 <translation id="6517239166834772319">Tanishuv</translation>
 <translation id="6564646048574748301">Bajarilmadi - Printer ulanmagan</translation>
 <translation id="6643016212128521049">Tozalash</translation>
+<translation id="6747215703636344499">Toʻxtatildi – Boʻsh joy qolmadi</translation>
 <translation id="7162487448488904999">Galereya</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Bu sozlama administrator tomonidan boshqariladi</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Chop etish vazifalari</translation>
 <translation id="8701136875688985581">Bu hisob <ph name="ENROLLMENT_DOMAIN" /> domenida boshqariladi. Bu domenda foydalanuvchilar faoliyati masofadan kuzatilishi va boshqarilishi mumkin.</translation>
 <translation id="871560550817059752">Bajarilmadi - Rang tugadi</translation>
+<translation id="8726019395068607495">Toʻxtatildi – Eshikchasi ochiq</translation>
 <translation id="8747900814994928677">Almashtiruvni tasdiqlang</translation>
 <translation id="8919837981463578619">Bajarilmadi - Tarnov joyida emas</translation>
 <translation id="8928727111548978589">Bajarilmadi - Qogʻoz tugadi</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index 9991694..0a0d56d 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK không hợp lệ.</translation>
 <translation id="1510238584712386396">Trình chạy</translation>
 <translation id="1644574205037202324">Lịch sử</translation>
+<translation id="1662989795263954667">Đã dừng – Hết mực</translation>
 <translation id="1734367976349034509">Thiết bị này do doanh nghiệp quản lý</translation>
 <translation id="1905710495812624430">Đã vượt quá số lần thử tối đa được phép.</translation>
 <translation id="1930797645656624981">Dịch vụ cung cấp phương thức nhập trên Chrome OS</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">Mật khẩu sẽ hết hạn sau <ph name="TIME" /></translation>
 <translation id="4238516577297848345">Không có lệnh in nào đang xử lý</translation>
 <translation id="428217921675623177">Các lệnh in quá 90 ngày sẽ bị xóa</translation>
+<translation id="4297501883039923494">Đã dừng – Lỗi không xác định</translation>
 <translation id="4429881212383817840">Phiếu Kerberos sẽ sớm hết hạn</translation>
 <translation id="445059817448385655">Mật khẩu cũ</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Hãy nhấn để hủy lệnh in.</translation>
 <translation id="467510802200863975">Mật khẩu không khớp</translation>
+<translation id="4691278870498629773">Đã dừng – Thiếu khay</translation>
 <translation id="4731797938093519117">Quyền truy cập của cha mẹ</translation>
 <translation id="4773299976671772492">Đã dừng</translation>
 <translation id="4808449224298348341">Đã hủy lệnh in <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">Chọn ngay một mật khẩu mới</translation>
+<translation id="4917889632206600977">Đã dừng – Hết giấy</translation>
 <translation id="4932733599132424254">Ngày Tháng</translation>
 <translation id="5212543919916444558">Tôi không tìm thấy nội dung nào trên màn hình để có thể trợ giúp cho bạn.
 Hãy thử nhấn vào micrô để hỏi tôi bất cứ điều gì.</translation>
 <translation id="5222676887888702881">Đăng xuất</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">Lưu</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">Chọn ngay một mật khẩu mới</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">Để hoàn tất, hãy nhập mật khẩu cũ của bạn</translation>
 <translation id="6146993107019042706">Để hoàn tất, hãy nhập mật khẩu mới của bạn</translation>
 <translation id="636850387210749493">Đăng ký doanh nghiệp</translation>
+<translation id="649050271426829538">Đã dừng – Kẹt giấy</translation>
 <translation id="6517239166834772319">Khám phá</translation>
 <translation id="6564646048574748301">Không thành công – Không thể kết nối với máy in</translation>
 <translation id="6643016212128521049">Xóa</translation>
+<translation id="6747215703636344499">Đã dừng – Khay giấy ra đã đầy</translation>
 <translation id="7162487448488904999">Thư viện</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">Quản trị viên của bạn quản lý thao tác này</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">Lệnh in</translation>
 <translation id="8701136875688985581"><ph name="ENROLLMENT_DOMAIN" /> quản lý người dùng này. Miền này có thể quản lý từ xa các tùy chọn cài đặt và giám sát hoạt động của người dùng.</translation>
 <translation id="871560550817059752">Không thành công – Hết mực</translation>
+<translation id="8726019395068607495">Đã dừng – Cửa máy in đang mở</translation>
 <translation id="8747900814994928677">Xác nhận thay đổi</translation>
 <translation id="8919837981463578619">Không thành công – Thiếu khay</translation>
 <translation id="8928727111548978589">Không thành công – Hết giấy</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index c8f8fbb2..1f8ed398 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK 无效。</translation>
 <translation id="1510238584712386396">启动器</translation>
 <translation id="1644574205037202324">历史记录</translation>
+<translation id="1662989795263954667">已停止 - 墨水已用完</translation>
 <translation id="1734367976349034509">此设备是受企业管理的设备</translation>
 <translation id="1905710495812624430">已超过允许的尝试次数上限。</translation>
 <translation id="1930797645656624981">Chrome 操作系统输入法服务</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">密码将于 <ph name="TIME" />后到期</translation>
 <translation id="4238516577297848345">没有正在进行的打印任务</translation>
 <translation id="428217921675623177">系统会自动移除存在时长已超过 90 天的打印任务</translation>
+<translation id="4297501883039923494">已停止 - 未知错误</translation>
 <translation id="4429881212383817840">Kerberos 票据即将过期</translation>
 <translation id="445059817448385655">旧密码</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,已打印 <ph name="PRINTED_PAGE_NUMBER" /> 页,共 <ph name="TOTAL_PAGE_NUMBER" /> 页。按 Enter 键即可取消这项打印任务。</translation>
 <translation id="467510802200863975">输入的两个密码不相同</translation>
+<translation id="4691278870498629773">已停止 - 缺少送纸盘</translation>
 <translation id="4731797938093519117">家长访问</translation>
 <translation id="4773299976671772492">已停止</translation>
 <translation id="4808449224298348341">已取消打印任务“<ph name="DOCUMENT_TITLE" />”</translation>
 <translation id="4890353053343094602">请立即设置一个新密码</translation>
+<translation id="4917889632206600977">已停止 - 纸张已用完</translation>
 <translation id="4932733599132424254">日期</translation>
 <translation id="5212543919916444558">无法提供与您的屏幕上可以找到的任何内容相关的帮助。
 请尝试通过点按麦克风图标向我提问。</translation>
 <translation id="5222676887888702881">退出</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,<ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">保存</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,<ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">请立即设置一个新密码</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">要完成更改,请输入您的旧密码</translation>
 <translation id="6146993107019042706">要完成更改,请输入您的新密码</translation>
 <translation id="636850387210749493">企业注册</translation>
+<translation id="649050271426829538">已停止 - 卡纸了</translation>
 <translation id="6517239166834772319">探索</translation>
 <translation id="6564646048574748301">失败 - 无法连接到打印机</translation>
 <translation id="6643016212128521049">清除</translation>
+<translation id="6747215703636344499">已停止 - 出纸盘已满</translation>
 <translation id="7162487448488904999">媒体库</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">此操作由您的管理员管理</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">打印任务</translation>
 <translation id="8701136875688985581">此用户由 <ph name="ENROLLMENT_DOMAIN" /> 管理。管理方可能会远程管理设置并监控用户活动。</translation>
 <translation id="871560550817059752">失败 - 墨水已用完</translation>
+<translation id="8726019395068607495">已停止 - 机盖未关</translation>
 <translation id="8747900814994928677">确认更改</translation>
 <translation id="8919837981463578619">失败 - 缺少送纸盘</translation>
 <translation id="8928727111548978589">失败 - 纸张已用完</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index fc3525d..4fdca2d 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -9,6 +9,7 @@
 <translation id="150962533380566081">PUK 無效。</translation>
 <translation id="1510238584712386396">啟動器</translation>
 <translation id="1644574205037202324">記錄</translation>
+<translation id="1662989795263954667">已停止 - 墨水已用完</translation>
 <translation id="1734367976349034509">此裝置受企業管理</translation>
 <translation id="1905710495812624430">允許的嘗試次數超過上限。</translation>
 <translation id="1930797645656624981">Chrome 作業系統輸入方法服務</translation>
@@ -39,18 +40,22 @@
 <translation id="4227825898293920515">密碼在 <ph name="TIME" />後到期</translation>
 <translation id="4238516577297848345">沒有進行中的列印工作</translation>
 <translation id="428217921675623177">超過 90 天前的列印工作將被移除</translation>
+<translation id="4297501883039923494">已停止 - 不明錯誤</translation>
 <translation id="4429881212383817840">Kerberos 票證即將到期</translation>
 <translation id="445059817448385655">舊密碼</translation>
 <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />、<ph name="PRINTER_NAME" />、<ph name="CREATION_TIME" />,印咗 <ph name="PRINTED_PAGE_NUMBER" /> 頁,總共有 <ph name="TOTAL_PAGE_NUMBER" /> 頁。㩒一下 Enter 鍵就可以取消列印工作。</translation>
 <translation id="467510802200863975">密碼不相符</translation>
+<translation id="4691278870498629773">已停止 - 沒有紙匣</translation>
 <translation id="4731797938093519117">家長存取</translation>
 <translation id="4773299976671772492">已停止</translation>
 <translation id="4808449224298348341">取消咗列印工作 <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4890353053343094602">立即選擇新密碼</translation>
+<translation id="4917889632206600977">已停止 - 紙張已用完</translation>
 <translation id="4932733599132424254">日期</translation>
 <translation id="5212543919916444558">系統在您的畫面上找不到任何可提供協助的內容。
 請嘗試輕按麥克風並發問。</translation>
 <translation id="5222676887888702881">登出</translation>
+<translation id="5267975978099728568"><ph name="DOCUMENT_TITLE" />,<ph name="PRINTER_NAME" />,<ph name="CREATION_TIME" />,<ph name="ERROR_STATUS" /></translation>
 <translation id="5317780077021120954">儲存</translation>
 <translation id="5326394068492324457"><ph name="DOCUMENT_TITLE" />、<ph name="PRINTER_NAME" />、<ph name="CREATION_TIME" />、<ph name="COMPLETION_STATUS" /></translation>
 <translation id="5332948983412042822">立即選擇新密碼</translation>
@@ -63,9 +68,11 @@
 <translation id="6106186594183574873">如要完成變更,請輸入您的舊密碼</translation>
 <translation id="6146993107019042706">如要完成變更,請輸入您的新密碼</translation>
 <translation id="636850387210749493">企業註冊</translation>
+<translation id="649050271426829538">已停止 - 卡紙</translation>
 <translation id="6517239166834772319">探索</translation>
 <translation id="6564646048574748301">失敗 - 無法連接打印機</translation>
 <translation id="6643016212128521049">清除</translation>
+<translation id="6747215703636344499">已停止 - 輸出紙匣已滿</translation>
 <translation id="7162487448488904999">媒體庫</translation>
 <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation>
 <translation id="7561454561030345039">此操作由管理員管理</translation>
@@ -77,6 +84,7 @@
 <translation id="8347227221149377169">列印工作</translation>
 <translation id="8701136875688985581">由 <ph name="ENROLLMENT_DOMAIN" /> 管理這位使用者,因此可能會從遠端管理設定並監察用戶活動。</translation>
 <translation id="871560550817059752">失敗 - 墨水已用完</translation>
+<translation id="8726019395068607495">已停止 - 機門未關</translation>
 <translation id="8747900814994928677">確認變更</translation>
 <translation id="8919837981463578619">失敗 - 沒有紙匣</translation>
 <translation id="8928727111548978589">失敗 - 紙張已用完</translation>
diff --git a/components/autofill/android/java/res/layout/autofill_dropdown_item.xml b/components/autofill/android/java/res/layout/autofill_dropdown_item.xml
index 5a7dd6b..6446ed32 100644
--- a/components/autofill/android/java/res/layout/autofill_dropdown_item.xml
+++ b/components/autofill/android/java/res/layout/autofill_dropdown_item.xml
@@ -52,6 +52,18 @@
             android:singleLine="true"
             android:textAlignment="viewStart"
             android:textAppearance="@style/TextAppearance.TextSmall.Secondary" />
+
+        <TextView
+            android:id="@+id/dropdown_item_tag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/autofill_dropdown_item_label_margin"
+            android:layout_marginStart="@dimen/autofill_dropdown_item_label_margin"
+            android:ellipsize="end"
+            android:includeFontPadding="false"
+            android:singleLine="true"
+            android:textAlignment="viewStart"
+            android:textAppearance="@style/TextAppearance.TextSmall.Secondary" />
     </LinearLayout>
 
     <ImageView
diff --git a/components/autofill/android/java/res/layout/autofill_dropdown_item_refresh.xml b/components/autofill/android/java/res/layout/autofill_dropdown_item_refresh.xml
index a8016e8..e899f7f 100644
--- a/components/autofill/android/java/res/layout/autofill_dropdown_item_refresh.xml
+++ b/components/autofill/android/java/res/layout/autofill_dropdown_item_refresh.xml
@@ -45,6 +45,16 @@
             android:singleLine="true"
             android:textAlignment="viewStart"
             android:textAppearance="@style/TextAppearance.TextSmall.Secondary" />
+
+        <TextView
+            android:id="@+id/dropdown_item_tag"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ellipsize="end"
+            android:includeFontPadding="false"
+            android:singleLine="true"
+            android:textAlignment="viewStart"
+            android:textAppearance="@style/TextAppearance.TextSmall.Secondary" />
     </LinearLayout>
 
     <ImageView
diff --git a/components/autofill/android/java/res/values/dimens.xml b/components/autofill/android/java/res/values/dimens.xml
index 1e1b660..c0f9f7d 100644
--- a/components/autofill/android/java/res/values/dimens.xml
+++ b/components/autofill/android/java/res/values/dimens.xml
@@ -8,6 +8,7 @@
     <!-- Dimens for legacy UI
          TODO(crbug.com/874077): Remove once refresh UI is fully rolled out. -->
     <dimen name="autofill_dropdown_item_height">50dp</dimen>
+    <dimen name="autofill_dropdown_item_tag_height">16dp</dimen>
     <dimen name="autofill_dropdown_item_divider_height">1dp</dimen>
     <dimen name="autofill_dropdown_item_label_margin">10dp</dimen>
     <dimen name="autofill_dropdown_icon_margin">8dp</dimen>
diff --git a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java
index df080f0..aed9707 100644
--- a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java
+++ b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillDropdownAdapter.java
@@ -86,6 +86,9 @@
         if (mIsRefresh) {
             TextView labelView = populateLabelView(item, layout);
             populateSublabelView(item, layout);
+            // For refreshed layout, ignore the return value as we don't need to adjust the height
+            // of the view.
+            populateItemTagView(item, layout);
             ImageView iconView =
                     populateIconView((ImageView) layout.findViewById(R.id.end_dropdown_icon), item);
             if (iconView != null) {
@@ -133,6 +136,16 @@
             divider.setDividerColor(dividerColor);
         }
 
+        // Layout of the item tag view, which has a smaller font and sits below the sub
+        // label.
+        TextView itemTagView = populateItemTagView(item, layout);
+        if (itemTagView != null) {
+            itemTagView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                    mContext.getResources().getDimension(item.getSublabelFontSizeResId()));
+            height += mContext.getResources().getDimensionPixelSize(
+                    R.dimen.autofill_dropdown_item_tag_height);
+        }
+
         // Note: trying to set the height of the root LinearLayout breaks accessibility,
         // so we have to adjust the height of this LinearLayout that wraps the TextViews
         // instead. If you need to modify this layout, don't forget to test it with TalkBack and
@@ -235,6 +248,26 @@
     }
 
     /**
+     * Sets the text of the itemTag's View if such text exists; otherwise, sets the View's
+     * visibility to GONE.
+     * @param item the DropdownItem for this row.
+     * @param layout the View in which the label can be found.
+     * @return the View if it has been set to be visible; null otherwise. This view is already part
+     *         of the view hierarchy, thus no need to explicitly add it.
+     */
+    private TextView populateItemTagView(DropdownItem item, View layout) {
+        TextView itemTagView = (TextView) layout.findViewById(R.id.dropdown_item_tag);
+        CharSequence itemTag = item.getItemTag();
+        if (TextUtils.isEmpty(itemTag)) {
+            itemTagView.setVisibility(View.GONE);
+            return null;
+        }
+        itemTagView.setText(itemTag);
+        itemTagView.setVisibility(View.VISIBLE);
+        return itemTagView;
+    }
+
+    /**
      * Sets the drawable in the given ImageView to the resource identified in the item, or sets
      * iconView to visibility GONE if no icon is given.
      * @param iconView the ImageView which should be modified.
diff --git a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillSuggestion.java b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillSuggestion.java
index 6b103ff2..6426ff6b 100644
--- a/components/autofill/android/java/src/org/chromium/components/autofill/AutofillSuggestion.java
+++ b/components/autofill/android/java/src/org/chromium/components/autofill/AutofillSuggestion.java
@@ -12,6 +12,7 @@
 public class AutofillSuggestion extends DropdownItemBase {
     private final String mLabel;
     private final String mSublabel;
+    private final String mItemTag;
     private final int mIconId;
     private final boolean mIsIconAtStart;
     private final int mSuggestionId;
@@ -24,6 +25,7 @@
      *
      * @param label The main label of the Autofill suggestion.
      * @param sublabel The describing sublabel of the Autofill suggestion.
+     * @param itemTag The tag for the autofill suggestion.
      * @param iconId The resource ID for the icon associated with the suggestion, or
      *               {@code DropdownItem.NO_ICON} for no icon.
      * @param isIconAtStart {@code true} if {@code iconId} is displayed before {@code label}.
@@ -32,10 +34,12 @@
      * @param isMultilineLabel Whether the label is displayed over multiple lines.
      * @param isBoldLabel Whether the label is displayed in {@code Typeface.BOLD}.
      */
-    public AutofillSuggestion(String label, String sublabel, int iconId, boolean isIconAtStart,
-            int suggestionId, boolean isDeletable, boolean isMultilineLabel, boolean isBoldLabel) {
+    public AutofillSuggestion(String label, String sublabel, String itemTag, int iconId,
+            boolean isIconAtStart, int suggestionId, boolean isDeletable, boolean isMultilineLabel,
+            boolean isBoldLabel) {
         mLabel = label;
         mSublabel = sublabel;
+        mItemTag = itemTag;
         mIconId = iconId;
         mIsIconAtStart = isIconAtStart;
         mSuggestionId = suggestionId;
@@ -55,6 +59,11 @@
     }
 
     @Override
+    public String getItemTag() {
+        return mItemTag;
+    }
+
+    @Override
     public int getIconId() {
         return mIconId;
     }
diff --git a/components/autofill/android/provider/java/src/org/chromium/components/autofill/AutofillProvider.java b/components/autofill/android/provider/java/src/org/chromium/components/autofill/AutofillProvider.java
index f58faa5..3b7c63a 100644
--- a/components/autofill/android/provider/java/src/org/chromium/components/autofill/AutofillProvider.java
+++ b/components/autofill/android/provider/java/src/org/chromium/components/autofill/AutofillProvider.java
@@ -603,8 +603,8 @@
         final AutofillSuggestion[] suggestions = new AutofillSuggestion[datalistValues.length];
         for (int i = 0; i < suggestions.length; i++) {
             suggestions[i] = new AutofillSuggestion(datalistValues[i], datalistLabels[i],
-                    DropdownItem.NO_ICON, false /* isIconAtLeft */, i, false /* isDeletable */,
-                    false /* isMultilineLabel */, false /* isBoldLabel */);
+                    /* itemTag= */ "", DropdownItem.NO_ICON, false /* isIconAtLeft */, i,
+                    false /* isDeletable */, false /* isMultilineLabel */, false /* isBoldLabel */);
         }
         if (mWebContentsAccessibility == null) {
             mWebContentsAccessibility = WebContentsAccessibility.fromWebContents(mWebContents);
diff --git a/components/autofill/core/browser/BUILD.gn b/components/autofill/core/browser/BUILD.gn
index d45a55e..5ddd897 100644
--- a/components/autofill/core/browser/BUILD.gn
+++ b/components/autofill/core/browser/BUILD.gn
@@ -83,6 +83,8 @@
     "data_model/autofill_data_model.h",
     "data_model/autofill_metadata.cc",
     "data_model/autofill_metadata.h",
+    "data_model/autofill_offer_data.cc",
+    "data_model/autofill_offer_data.h",
     "data_model/autofill_profile.cc",
     "data_model/autofill_profile.h",
     "data_model/autofill_profile_comparator.cc",
@@ -608,6 +610,7 @@
     "logging/log_buffer_submitter_unittest.cc",
     "logging/log_manager_unittest.cc",
     "logging/log_router_unittest.cc",
+    "payments/autofill_offer_manager_unittest.cc",
     "payments/credit_card_access_manager_unittest.cc",
     "payments/credit_card_cvc_authenticator_unittest.cc",
     "payments/credit_card_save_manager_unittest.cc",
diff --git a/components/autofill/core/browser/autofill_client.cc b/components/autofill/core/browser/autofill_client.cc
index ac6e1ea..077a8d2 100644
--- a/components/autofill/core/browser/autofill_client.cc
+++ b/components/autofill/core/browser/autofill_client.cc
@@ -35,6 +35,10 @@
   return version_info::Channel::UNKNOWN;
 }
 
+payments::AutofillOfferManager* AutofillClient::GetAutofillOfferManager() {
+  return nullptr;
+}
+
 std::string AutofillClient::GetPageLanguage() const {
   return std::string();
 }
diff --git a/components/autofill/core/browser/autofill_client.h b/components/autofill/core/browser/autofill_client.h
index a5e1648..1647256 100644
--- a/components/autofill/core/browser/autofill_client.h
+++ b/components/autofill/core/browser/autofill_client.h
@@ -72,6 +72,7 @@
 struct Suggestion;
 
 namespace payments {
+class AutofillOfferManager;
 class PaymentsClient;
 }
 
@@ -274,6 +275,9 @@
   // Gets an AddressNormalizer instance (can be null).
   virtual AddressNormalizer* GetAddressNormalizer() = 0;
 
+  // Gets an AutofillOfferManager instance.
+  virtual payments::AutofillOfferManager* GetAutofillOfferManager();
+
   // Gets the virtual URL of the last committed page of this client's
   // associated WebContents.
   virtual const GURL& GetLastCommittedURL() = 0;
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
index faaa1a5a..c8889cf 100644
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -60,6 +60,7 @@
 #include "components/autofill/core/browser/geo/phone_number_i18n.h"
 #include "components/autofill/core/browser/logging/log_manager.h"
 #include "components/autofill/core/browser/metrics/form_events.h"
+#include "components/autofill/core/browser/payments/autofill_offer_manager.h"
 #include "components/autofill/core/browser/payments/credit_card_access_manager.h"
 #include "components/autofill/core/browser/payments/payments_client.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
@@ -1657,6 +1658,12 @@
         driver, this, GetAPIKeyForUrl(channel), client_->GetLogManager()));
   }
   CountryNames::SetLocaleString(app_locale_);
+  if (base::FeatureList::IsEnabled(
+          features::kAutofillEnableOffersInDownstream)) {
+    offer_manager_ = client_->GetAutofillOfferManager();
+    if (offer_manager_)
+      offer_manager_->Init(client_, app_locale_);
+  }
 }
 
 bool AutofillManager::RefreshDataModels() {
diff --git a/components/autofill/core/browser/autofill_manager.h b/components/autofill/core/browser/autofill_manager.h
index 4d4fd0b..de418c6a 100644
--- a/components/autofill/core/browser/autofill_manager.h
+++ b/components/autofill/core/browser/autofill_manager.h
@@ -32,6 +32,7 @@
 #include "components/autofill/core/browser/form_types.h"
 #include "components/autofill/core/browser/metrics/address_form_event_logger.h"
 #include "components/autofill/core/browser/metrics/credit_card_form_event_logger.h"
+#include "components/autofill/core/browser/payments/autofill_offer_manager.h"
 #include "components/autofill/core/browser/payments/card_unmask_delegate.h"
 #include "components/autofill/core/browser/payments/credit_card_access_manager.h"
 #include "components/autofill/core/browser/payments/full_card_request.h"
@@ -673,6 +674,10 @@
   // The credit card access manager, used to access local and server cards.
   std::unique_ptr<CreditCardAccessManager> credit_card_access_manager_;
 
+  // The autofill offer manager, used to to retrieve offers for card
+  // suggestions.
+  payments::AutofillOfferManager* offer_manager_;
+
   // Collected information about the autofill form where a credit card will be
   // filled.
   AutofillDriver::RendererFormDataAction credit_card_action_;
diff --git a/components/autofill/core/browser/data_model/autofill_offer_data.cc b/components/autofill/core/browser/data_model/autofill_offer_data.cc
new file mode 100644
index 0000000..d4bf37bd
--- /dev/null
+++ b/components/autofill/core/browser/data_model/autofill_offer_data.cc
@@ -0,0 +1,22 @@
+// Copyright 2020 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/data_model/autofill_offer_data.h"
+
+namespace autofill {
+
+namespace payments {
+
+AutofillOfferData::AutofillOfferData() = default;
+
+AutofillOfferData::~AutofillOfferData() = default;
+
+AutofillOfferData::AutofillOfferData(const AutofillOfferData&) = default;
+
+AutofillOfferData& AutofillOfferData::operator=(const AutofillOfferData&) =
+    default;
+
+}  // namespace payments
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/data_model/autofill_offer_data.h b/components/autofill/core/browser/data_model/autofill_offer_data.h
new file mode 100644
index 0000000..3c2b8ef
--- /dev/null
+++ b/components/autofill/core/browser/data_model/autofill_offer_data.h
@@ -0,0 +1,48 @@
+// Copyright 2020 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_DATA_MODEL_AUTOFILL_OFFER_DATA_H_
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_AUTOFILL_OFFER_DATA_H_
+
+#include <string>
+#include <vector>
+
+#include "base/strings/string16.h"
+#include "url/gurl.h"
+
+namespace autofill {
+
+namespace payments {
+
+// Represents an offer for certain merchants redeemable with certain cards.
+struct AutofillOfferData {
+ public:
+  AutofillOfferData();
+  ~AutofillOfferData();
+  AutofillOfferData(const AutofillOfferData&);
+  AutofillOfferData& operator=(const AutofillOfferData&);
+
+  // The unique server id of this offer.
+  std::string offer_id;
+  // The name of this offer.
+  base::string16 name;
+  // The description of this offer.
+  base::string16 description;
+  // The expiration timestamp of this offer, in the form of seconds since Unix
+  // epoch.
+  int64_t expiry;
+  // The merchant URL where this offer can be redeemed.
+  GURL merchant_domain;
+
+  // The ids of the cards this offer can be applied to.
+  std::vector<std::string> eligible_instrument_id;
+  // The legacy ids of the cards this offer can be applied to.
+  std::vector<std::string> eligible_legacy_instrument_id;
+};
+
+}  // namespace payments
+
+}  // namespace autofill
+
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_AUTOFILL_OFFER_DATA_H_
diff --git a/components/autofill/core/browser/payments/autofill_offer_manager.cc b/components/autofill/core/browser/payments/autofill_offer_manager.cc
index 127700eb..56ba3bd 100644
--- a/components/autofill/core/browser/payments/autofill_offer_manager.cc
+++ b/components/autofill/core/browser/payments/autofill_offer_manager.cc
@@ -4,10 +4,54 @@
 
 #include "components/autofill/core/browser/payments/autofill_offer_manager.h"
 
+#include "base/bind.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/autofill_offer_data.h"
+#include "components/autofill/core/browser/payments/payments_client.h"
+#include "components/autofill/core/common/autofill_clock.h"
+#include "url/gurl.h"
+
 namespace autofill {
 
+namespace payments {
+
 AutofillOfferManager::AutofillOfferManager() = default;
 
 AutofillOfferManager::~AutofillOfferManager() = default;
 
-}  // namespace autofill
\ No newline at end of file
+void AutofillOfferManager::Init(AutofillClient* client,
+                                const std::string& app_locale) {
+  if (base::TimeDelta(AutofillClock::Now() - last_updated_timestamp_) >=
+          base::TimeDelta::FromMicroseconds(kOfferDataExpiryTimeInMicros) &&
+      !request_is_active_) {
+    client->GetPaymentsClient()->GetOfferData(
+        app_locale, base::BindOnce(&AutofillOfferManager::OnDidGetOfferData,
+                                   weak_ptr_factory_.GetWeakPtr()));
+    request_is_active_ = true;
+    request_timer_.Start(
+        FROM_HERE,
+        base::TimeDelta::FromMicroseconds(kRequestExpiryTimeInMicros), this,
+        &AutofillOfferManager::OnRequestTimeout);
+  }
+}
+
+void AutofillOfferManager::OnRequestTimeout() {
+  request_is_active_ = false;
+}
+
+void AutofillOfferManager::OnDidGetOfferData(
+    AutofillClient::PaymentsRpcResult result,
+    const std::vector<AutofillOfferData>& offers) {
+  request_timer_.Stop();
+  request_is_active_ = false;
+  if (result == AutofillClient::SUCCESS) {
+    // TODO(crbug/1093057): Parse and store returned offer data.
+    last_updated_timestamp_ = AutofillClock::Now();
+  }
+}
+
+}  // namespace payments
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/payments/autofill_offer_manager.h b/components/autofill/core/browser/payments/autofill_offer_manager.h
index ce93163..7c15266 100644
--- a/components/autofill/core/browser/payments/autofill_offer_manager.h
+++ b/components/autofill/core/browser/payments/autofill_offer_manager.h
@@ -5,38 +5,78 @@
 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_AUTOFILL_OFFER_MANAGER_H_
 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_AUTOFILL_OFFER_MANAGER_H_
 
+#include <stdint.h>
 #include <string>
 #include <vector>
 
+#include "base/memory/weak_ptr.h"
 #include "base/strings/string16.h"
+#include "base/time/time.h"
+#include "base/timer/timer.h"
+#include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/autofill_offer_data.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+// Constant used to set intervals between calls for new offer data.
+static const int64_t kOfferDataExpiryTimeInMicros =
+    int64_t{1000000 * 60 * 60 * 24};  // 24 hours
+
+// Constant used to set expiry time for a single call before the next call can
+// be made.
+static const int64_t kRequestExpiryTimeInMicros =
+    int64_t{1000000 * 60};  // 1 minute
 
 namespace autofill {
 
-struct AutofillOfferData {
-  AutofillOfferData();
-  ~AutofillOfferData();
-  // The description of this offer.
-  base::string16 description;
-  // The name of this offer.
-  base::string16 name;
-  // The unique server id of this offer.
-  std::string offer_id;
-  // The ids of the cards this offer can be applied to.
-  std::vector<std::string> eligible_card_id;
-  // The merchant URL where this offer can be redeemed.
-  std::vector<std::string> merchant_domain;
-};
+class AutofillClient;
+
+namespace payments {
 
 // Manages all Autofill related offers. One per frame; owned by the
 // AutofillManager.
-class AutofillOfferManager {
+class AutofillOfferManager : public KeyedService {
  public:
   AutofillOfferManager();
-  virtual ~AutofillOfferManager();
+  ~AutofillOfferManager() override;
   AutofillOfferManager(const AutofillOfferManager&) = delete;
   AutofillOfferManager& operator=(const AutofillOfferManager&) = delete;
+
+  void Init(AutofillClient* client, const std::string& app_locale);
+
+ private:
+  // Helper function used as callback when using |request_timer_|
+  void OnRequestTimeout();
+
+  // Callback function after successfully retrieving offer data.
+  void OnDidGetOfferData(AutofillClient::PaymentsRpcResult result,
+                         const std::vector<AutofillOfferData>& offers);
+
+  // The time the offer data was last retrieved from Payments.
+  base::Time last_updated_timestamp_;
+
+  // Bool used to track if a request has been sent.
+  bool request_is_active_ = false;
+
+  // Timer used to wait for sent requests to come back before sending another.
+  base::OneShotTimer request_timer_;
+
+  base::WeakPtrFactory<AutofillOfferManager> weak_ptr_factory_{this};
+
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest, InitFirstCallSucceeds);
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest,
+                           InitBeforeOfferDataExpiry_OneSecond);
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest,
+                           InitAfterOfferDataExpiry_OneSecond);
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest,
+                           InitBeforeTimerExpiry_OneSecond);
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest,
+                           InitAfterTimerExpiry_OneSecond);
+  FRIEND_TEST_ALL_PREFIXES(AutofillOfferManagerTest,
+                           InitAfterOfferDataExpiryButRequestActive);
 };
 
+}  // namespace payments
+
 }  // namespace autofill
 
-#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_AUTOFILL_OFFER_MANAGER_H_
\ No newline at end of file
+#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_AUTOFILL_OFFER_MANAGER_H_
diff --git a/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc b/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc
new file mode 100644
index 0000000..7252a733
--- /dev/null
+++ b/components/autofill/core/browser/payments/autofill_offer_manager_unittest.cc
@@ -0,0 +1,117 @@
+// Copyright 2020 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 <memory>
+
+#include "base/bind.h"
+#include "base/test/task_environment.h"
+#include "base/time/time.h"
+#include "components/autofill/core/browser/payments/autofill_offer_manager.h"
+#include "components/autofill/core/browser/payments/test_payments_client.h"
+#include "components/autofill/core/browser/test_autofill_client.h"
+#include "components/autofill/core/browser/test_autofill_driver.h"
+#include "components/autofill/core/common/autofill_clock.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+
+static const char kTestAppLocale[] = "en";
+
+static const int64_t kOneSecondMicros = 1000000;
+
+namespace autofill {
+
+namespace payments {
+
+class AutofillOfferManagerTest : public testing::Test {
+ public:
+  AutofillOfferManagerTest() = default;
+  ~AutofillOfferManagerTest() override = default;
+
+  void SetUp() override {
+    payments_client_ = new TestPaymentsClient(
+        autofill_driver_.GetURLLoaderFactory(),
+        autofill_client_.GetIdentityManager(), &personal_data_manager_);
+    autofill_client_.set_test_payments_client(
+        std::unique_ptr<TestPaymentsClient>(payments_client_));
+  }
+
+ protected:
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+  TestAutofillClient autofill_client_;
+  TestAutofillDriver autofill_driver_;
+  TestPersonalDataManager personal_data_manager_;
+  TestPaymentsClient* payments_client_;
+  AutofillOfferManager autofill_offer_manager_;
+};
+
+TEST_F(AutofillOfferManagerTest, InitFirstCallSucceeds) {
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should call GetOfferData, as this is the first time Init() has been called
+  // and the |last_updated_timestamp| has not been set.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+}
+
+TEST_F(AutofillOfferManagerTest, InitBeforeOfferDataExpiry_OneSecond) {
+  autofill_offer_manager_.last_updated_timestamp_ = AutofillClock::Now();
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kOfferDataExpiryTimeInMicros - kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should not call GetOfferData because it hasn't been long enough since the
+  // last successful request.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 0);
+}
+
+TEST_F(AutofillOfferManagerTest, InitAfterOfferDataExpiry_OneSecond) {
+  autofill_offer_manager_.last_updated_timestamp_ = AutofillClock::Now();
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kOfferDataExpiryTimeInMicros + kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should call GetOfferData because it has been long enough since the last
+  // successful request.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+}
+
+TEST_F(AutofillOfferManagerTest, InitBeforeTimerExpiry_OneSecond) {
+  payments_client_->SetShouldReturnOfferData(false);
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kRequestExpiryTimeInMicros - kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should not call GetOfferData a second time because even though the request
+  // has not returned, it also has not expired.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+}
+
+TEST_F(AutofillOfferManagerTest, InitAfterTimerExpiry_OneSecond) {
+  payments_client_->SetShouldReturnOfferData(false);
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kRequestExpiryTimeInMicros + kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should call GetOfferData a second time because even though the request has
+  // not returned, it has expired.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 2);
+}
+
+TEST_F(AutofillOfferManagerTest, InitAfterOfferDataExpiryButRequestActive) {
+  payments_client_->SetShouldReturnOfferData(false);
+  autofill_offer_manager_.last_updated_timestamp_ = AutofillClock::Now();
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kOfferDataExpiryTimeInMicros + kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should call GetOfferData because the offer data has expired.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+  task_environment_.FastForwardBy(base::TimeDelta::FromMicroseconds(
+      kRequestExpiryTimeInMicros - kOneSecondMicros));
+  autofill_offer_manager_.Init(&autofill_client_, kTestAppLocale);
+  // Should not call GetOfferData a second time because even though the request
+  // has not returned, it has not expired.
+  EXPECT_EQ(payments_client_->get_offer_data_calls(), 1);
+}
+
+}  // namespace payments
+
+}  // namespace autofill
diff --git a/components/autofill/core/browser/payments/payments_client.cc b/components/autofill/core/browser/payments/payments_client.cc
index 7417d5ea..2c7ae9c 100644
--- a/components/autofill/core/browser/payments/payments_client.cc
+++ b/components/autofill/core/browser/payments/payments_client.cc
@@ -25,8 +25,10 @@
 #include "components/autofill/core/browser/autofill_experiments.h"
 #include "components/autofill/core/browser/autofill_type.h"
 #include "components/autofill/core/browser/data_model/autofill_data_model.h"
+#include "components/autofill/core/browser/data_model/autofill_offer_data.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/payments/account_info_getter.h"
+#include "components/autofill/core/browser/payments/autofill_offer_manager.h"
 #include "components/autofill/core/browser/payments/local_card_migration_manager.h"
 #include "components/autofill/core/browser/payments/payments_request.h"
 #include "components/autofill/core/browser/payments/payments_service_url.h"
@@ -82,6 +84,9 @@
 const char kMigrateCardsRequestFormat[] =
     "requestContentType=application/json; charset=utf-8&request=%s";
 
+const char kGetOfferDataRequestPath[] =
+    "payments/apis/chromepaymentsservice/getoffers";
+
 const char kTokenFetchId[] = "wallet_client";
 const char kPaymentsOAuth2Scope[] =
     "https://www.googleapis.com/auth/wallet.chrome";
@@ -1008,6 +1013,109 @@
   DISALLOW_COPY_AND_ASSIGN(MigrateCardsRequest);
 };
 
+class GetOfferDataRequest : public PaymentsRequest {
+ public:
+  GetOfferDataRequest(
+      const std::string& app_locale,
+      base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                              const std::vector<AutofillOfferData>&)> callback)
+      : app_locale_(app_locale), callback_(std::move(callback)) {}
+  ~GetOfferDataRequest() override = default;
+  GetOfferDataRequest(const GetOfferDataRequest& other) = delete;
+  GetOfferDataRequest& operator=(const GetOfferDataRequest& other) = delete;
+
+  std::string GetRequestUrlPath() override { return kGetOfferDataRequestPath; }
+
+  std::string GetRequestContentType() override { return "application/json"; }
+
+  std::string GetRequestContent() override {
+    base::Value request_dict(base::Value::Type::DICTIONARY);
+    base::Value context(base::Value::Type::DICTIONARY);
+    context.SetKey("language_code", base::Value(app_locale_));
+    request_dict.SetKey("context", std::move(context));
+
+    std::string request_content;
+    base::JSONWriter::Write(request_dict, &request_content);
+    VLOG(3) << "getoffers request body: " << request_content;
+    return request_content;
+  }
+
+  void ParseResponse(const base::Value& response) override {
+    const auto* found_list =
+        response.FindKeyOfType("offer", base::Value::Type::LIST);
+    if (!found_list)
+      return;
+
+    std::vector<AutofillOfferData> offers;
+    for (const base::Value& result : found_list->GetList()) {
+      AutofillOfferData offer_data;
+      if (!result.is_dict() || !JsonToAutofillOfferData(result, offer_data))
+        continue;
+      offers.push_back(offer_data);
+    }
+    offers_.emplace(offers);
+  }
+
+  bool IsResponseComplete() override { return offers_.has_value(); }
+
+  void RespondToDelegate(AutofillClient::PaymentsRpcResult result) override {
+    std::move(callback_).Run(result, std::move(offers_.value()));
+  }
+
+ private:
+  // Extract, validate, and assign all required fields.
+  bool JsonToAutofillOfferData(const base::Value& value,
+                               AutofillOfferData& result) {
+    const std::string* offer_id = value.FindStringKey("offer_id");
+    if (!offer_id || offer_id->empty())
+      return false;
+    result.offer_id = *offer_id;
+    const std::string* name = value.FindStringKey("name");
+    if (!name || name->empty())
+      return false;
+    result.name = base::UTF8ToUTF16(*name);
+    const std::string* description = value.FindStringKey("description");
+    result.description =
+        description ? base::UTF8ToUTF16(*description) : base::string16();
+    const std::string* expiry = value.FindStringKey("expiry");
+    int64_t expiry_value;
+    if (!expiry || !base::StringToInt64(*expiry, &expiry_value))
+      return false;
+    result.expiry = expiry_value;
+    const std::string* merchant_domain = value.FindStringKey("merchant_domain");
+    if (!merchant_domain || !GURL(*merchant_domain).is_valid())
+      return false;
+    result.merchant_domain = GURL(*merchant_domain);
+    const auto* eligible_instrument_id =
+        value.FindKeyOfType("eligible_instrument_id", base::Value::Type::LIST);
+    if (eligible_instrument_id) {
+      for (const base::Value& id : eligible_instrument_id->GetList()) {
+        if (!id.GetString().empty()) {
+          result.eligible_instrument_id.push_back(id.GetString());
+        }
+      }
+    }
+    const auto* eligible_legacy_instrument_id = value.FindKeyOfType(
+        "eligible_legacy_instrument_id", base::Value::Type::LIST);
+    if (eligible_legacy_instrument_id) {
+      for (const base::Value& id : eligible_legacy_instrument_id->GetList()) {
+        if (!id.GetString().empty()) {
+          result.eligible_legacy_instrument_id.push_back(id.GetString());
+        }
+      }
+    }
+    return result.eligible_instrument_id.size() +
+               result.eligible_legacy_instrument_id.size() >
+           0;
+  }
+
+  const std::string app_locale_;
+  base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                          const std::vector<AutofillOfferData>&)>
+      callback_;
+  base::Optional<std::vector<AutofillOfferData>> offers_;
+};
+
 }  // namespace
 
 const char PaymentsClient::kRecipientName[] = "recipient_name";
@@ -1200,6 +1308,15 @@
       /*authenticate=*/true);
 }
 
+void PaymentsClient::GetOfferData(
+    const std::string& app_locale,
+    base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                            const std::vector<AutofillOfferData>&)> callback) {
+  IssueRequest(
+      std::make_unique<GetOfferDataRequest>(app_locale, std::move(callback)),
+      /*authenticate=*/true);
+}
+
 void PaymentsClient::CancelRequest() {
   request_.reset();
   resource_request_.reset();
diff --git a/components/autofill/core/browser/payments/payments_client.h b/components/autofill/core/browser/payments/payments_client.h
index 8b7e1b0..bd1f2ae5 100644
--- a/components/autofill/core/browser/payments/payments_client.h
+++ b/components/autofill/core/browser/payments/payments_client.h
@@ -14,6 +14,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "components/autofill/core/browser/autofill_client.h"
+#include "components/autofill/core/browser/data_model/autofill_offer_data.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/payments/card_unmask_delegate.h"
@@ -316,6 +317,12 @@
       const std::vector<MigratableCreditCard>& migratable_credit_cards,
       MigrateCardsCallback callback);
 
+  // The user has opened a new tab and their offer data needs to be refreshed.
+  virtual void GetOfferData(
+      const std::string& app_locale,
+      base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                              const std::vector<AutofillOfferData>&)> callback);
+
   // Cancels and clears the current |request_|.
   void CancelRequest();
 
diff --git a/components/autofill/core/browser/payments/payments_client_unittest.cc b/components/autofill/core/browser/payments/payments_client_unittest.cc
index 2cf54dd..406c45d 100644
--- a/components/autofill/core/browser/payments/payments_client_unittest.cc
+++ b/components/autofill/core/browser/payments/payments_client_unittest.cc
@@ -21,6 +21,7 @@
 #include "build/build_config.h"
 #include "components/autofill/core/browser/autofill_experiments.h"
 #include "components/autofill/core/browser/autofill_test_utils.h"
+#include "components/autofill/core/browser/data_model/autofill_offer_data.h"
 #include "components/autofill/core/browser/payments/credit_card_save_manager.h"
 #include "components/autofill/core/browser/payments/local_card_migration_manager.h"
 #include "components/autofill/core/browser/payments/payments_client.h"
@@ -37,6 +38,7 @@
 #include "services/network/test/test_url_loader_factory.h"
 #include "services/network/test/test_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
 
 namespace autofill {
 namespace payments {
@@ -177,6 +179,12 @@
   }
 #endif  // !defined(OS_ANDROID) && !defined(OS_IOS)
 
+  void OnDidGetOfferData(AutofillClient::PaymentsRpcResult result,
+                         const std::vector<AutofillOfferData>& offers) {
+    result_ = result;
+    offers_ = offers;
+  }
+
  protected:
   base::test::ScopedFeatureList scoped_feature_list_;
 
@@ -280,6 +288,13 @@
   }
 #endif  // !defined(OS_ANDROID) && !defined(OS_IOS)
 
+  void StartGettingOfferData() {
+    offers_.clear();
+    client_->GetOfferData("language-LOCALE",
+                          base::BindOnce(&PaymentsClientTest::OnDidGetOfferData,
+                                         weak_ptr_factory_.GetWeakPtr()));
+  }
+
   network::TestURLLoaderFactory* factory() { return &test_url_loader_factory_; }
 
   const std::string& GetUploadData() { return intercepted_body_; }
@@ -333,6 +348,9 @@
   std::string display_text_;
 #endif  // !defined(OS_ANDROID) && !defined(OS_IOS)
 
+  // A list of offers resulting from a GetOfferDataRequest.
+  std::vector<AutofillOfferData> offers_;
+
   base::test::TaskEnvironment task_environment_;
   network::TestURLLoaderFactory test_url_loader_factory_;
   scoped_refptr<network::SharedURLLoaderFactory> test_shared_loader_factory_;
@@ -1198,6 +1216,486 @@
   EXPECT_EQ(AutofillClient::SUCCESS, result_);
   EXPECT_EQ("display text", display_text_);
 }
+
+TEST_F(PaymentsClientTest, GetOfferDataSuccess) {
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK,
+                 "{\"offer\":["
+                 "{\"offer_id\":\"123\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"60000\","
+                 "\"merchant_domain\":\"http://merchant1.com\","
+                 "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                 "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                 "]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  ASSERT_EQ(offers_.size(), 1U);
+  EXPECT_EQ(offers_[0].offer_id, "123");
+  EXPECT_EQ(offers_[0].name, base::UTF8ToUTF16("offer name"));
+  EXPECT_EQ(offers_[0].description, base::UTF8ToUTF16("offer description"));
+  EXPECT_EQ(offers_[0].expiry, (int64_t)60000);
+  EXPECT_EQ(offers_[0].merchant_domain, GURL("http://merchant1.com"));
+  ASSERT_EQ(offers_[0].eligible_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_instrument_id[0], "1");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[1], "2");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[2], "3");
+  ASSERT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[0], "4");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[1], "5");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[2], "6");
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataMultipleOffers) {
+  StartGettingOfferData();
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK,
+                 "{\"offer\":["
+                 "{\"offer_id\":\"123\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"60000\","
+                 "\"merchant_domain\":\"http://merchant1.com\","
+                 "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                 "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]},"
+                 "{\"offer_id\":\"456\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"120000\","
+                 "\"merchant_domain\":\"http://merchant2.com\","
+                 "\"eligible_instrument_id\":[\"7\",\"8\",\"9\"],"
+                 "\"eligible_legacy_instrument_id\":[\"10\",\"11\",\"12\"]}"
+                 "]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  ASSERT_EQ(offers_.size(), 2U);
+  EXPECT_EQ(offers_[0].offer_id, "123");
+  EXPECT_EQ(offers_[0].name, base::UTF8ToUTF16("offer name"));
+  EXPECT_EQ(offers_[0].description, base::UTF8ToUTF16("offer description"));
+  EXPECT_EQ(offers_[0].expiry, (int64_t)60000);
+  EXPECT_EQ(offers_[0].merchant_domain, GURL("http://merchant1.com"));
+  ASSERT_EQ(offers_[0].eligible_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_instrument_id[0], "1");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[1], "2");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[2], "3");
+  ASSERT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[0], "4");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[1], "5");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[2], "6");
+  EXPECT_EQ(offers_[1].offer_id, "456");
+  EXPECT_EQ(offers_[1].name, base::UTF8ToUTF16("offer name"));
+  EXPECT_EQ(offers_[1].description, base::UTF8ToUTF16("offer description"));
+  EXPECT_EQ(offers_[1].expiry, (int64_t)120000);
+  EXPECT_EQ(offers_[1].merchant_domain, GURL("http://merchant2.com"));
+  ASSERT_EQ(offers_[1].eligible_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[1].eligible_instrument_id[0], "7");
+  EXPECT_EQ(offers_[1].eligible_instrument_id[1], "8");
+  EXPECT_EQ(offers_[1].eligible_instrument_id[2], "9");
+  ASSERT_EQ(offers_[1].eligible_legacy_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[0], "10");
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[1], "11");
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[2], "12");
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataSomeInvalidOffers) {
+  StartGettingOfferData();
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK,
+                 "{\"offer\":["
+                 "{\"offer_id\":\"123\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"60000\","
+                 "\"merchant_domain\":\"http://merchant1.com\","
+                 "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                 "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]},"
+                 "{},"
+                 "{\"offer_id\":\"\","
+                 "\"name\":\"\","
+                 "\"description\":\"\","
+                 "\"expiry\":\"\","
+                 "\"merchant_domain\":\"\","
+                 "\"eligible_instrument_id\":[],"
+                 "\"eligible_legacy_instrument_id\":[]},"
+                 "{\"offer_id\":\"456\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"120000\","
+                 "\"merchant_domain\":\"http://merchant2.com\","
+                 "\"eligible_instrument_id\":[\"7\",\"8\",\"9\"],"
+                 "\"eligible_legacy_instrument_id\":[\"10\",\"11\",\"12\"]}"
+                 "]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  ASSERT_EQ(offers_.size(), 2U);
+  EXPECT_EQ(offers_[0].offer_id, "123");
+  EXPECT_EQ(offers_[0].name, base::UTF8ToUTF16("offer name"));
+  EXPECT_EQ(offers_[0].description, base::UTF8ToUTF16("offer description"));
+  EXPECT_EQ(offers_[0].expiry, (int64_t)60000);
+  EXPECT_EQ(offers_[0].merchant_domain, GURL("http://merchant1.com"));
+  ASSERT_EQ(offers_[0].eligible_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_instrument_id[0], "1");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[1], "2");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[2], "3");
+  ASSERT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[0], "4");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[1], "5");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[2], "6");
+  EXPECT_EQ(offers_[1].offer_id, "456");
+  EXPECT_EQ(offers_[1].name, base::UTF8ToUTF16("offer name"));
+  EXPECT_EQ(offers_[1].description, base::UTF8ToUTF16("offer description"));
+  EXPECT_EQ(offers_[1].expiry, (int64_t)120000);
+  EXPECT_EQ(offers_[1].merchant_domain, GURL("http://merchant2.com"));
+  ASSERT_EQ(offers_[1].eligible_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[1].eligible_instrument_id[0], "7");
+  EXPECT_EQ(offers_[1].eligible_instrument_id[1], "8");
+  EXPECT_EQ(offers_[1].eligible_instrument_id[2], "9");
+  ASSERT_EQ(offers_[1].eligible_legacy_instrument_id.size(), 3U);
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[0], "10");
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[1], "11");
+  EXPECT_EQ(offers_[1].eligible_legacy_instrument_id[2], "12");
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoOffers) {
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK, "{\"offer\":[]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  EXPECT_EQ(offers_.size(), 0U);
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoOfferIDReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   // Empty string is ignored.
+                   "{\"offer_id\":\"\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   // |offer_id| field is missing entirely.
+                   "{\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoNameReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   // Empty string is ignored.
+                   "\"name\":\"\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   // |name| field is missing entirely.
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoDescriptionReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   // Empty string is ignored.
+                   "\"description\":\"\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].description, base::string16());
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   // |description| field is missing entirely.
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].description, base::string16());
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoMerchantDomainReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   // Empty string is ignored.
+                   "\"merchant_domain\":\"\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   // |merchant_domain| field is missing entirely.
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoEligibleInstrumentIdReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   // Empty strings are ignored.
+                   "\"eligible_instrument_id\":[\"\",\"\",\"\"],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_instrument_id.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   // Empty array.
+                   "\"eligible_instrument_id\":[],"
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_instrument_id.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   // |eligible_instrument_id| field is missing entirely.
+                   "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_instrument_id.size(), 0U);
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoEligibleLegacyInstrumentIdReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   // Empty strings are ignored.
+                   "\"eligible_legacy_instrument_id\":[\"\",\"\",\"\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                   // Empty array.
+                   "\"eligible_legacy_instrument_id\":[]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"]}"
+                   // |eligible_legacy_instrument_id| field is missing entirely.
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    ASSERT_EQ(offers_.size(), 1U);
+    EXPECT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 0U);
+  }
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataEmptyEligibleInstrumentIdReturned) {
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK,
+                 "{\"offer\":["
+                 "{\"offer_id\":\"123\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"60000\","
+                 "\"merchant_domain\":\"http://merchant1.com\","
+                 // Empty strings are ignored.
+                 "\"eligible_instrument_id\":[\"1\",\"\",\"3\"],"
+                 "\"eligible_legacy_instrument_id\":[\"4\",\"5\",\"6\"]}"
+                 "]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  ASSERT_EQ(offers_.size(), 1U);
+  ASSERT_EQ(offers_[0].eligible_instrument_id.size(), 2U);
+  EXPECT_EQ(offers_[0].eligible_instrument_id[0], "1");
+  EXPECT_EQ(offers_[0].eligible_instrument_id[1], "3");
+}
+
+TEST_F(PaymentsClientTest,
+       GetOfferDataEmptyEligibleLegacyInstrumentIdReturned) {
+  StartGettingOfferData();
+  ReturnResponse(net::HTTP_OK,
+                 "{\"offer\":["
+                 "{\"offer_id\":\"123\","
+                 "\"name\":\"offer name\","
+                 "\"description\":\"offer description\","
+                 "\"expiry\":\"60000\","
+                 "\"merchant_domain\":\"http://merchant1.com\","
+                 "\"eligible_instrument_id\":[\"1\",\"2\",\"3\"],"
+                 // Empty strings are ignored.
+                 "\"eligible_legacy_instrument_id\":[\"4\",\"\",\"6\"]}"
+                 "]}");
+  EXPECT_EQ(result_, AutofillClient::SUCCESS);
+  ASSERT_EQ(offers_.size(), 1U);
+  ASSERT_EQ(offers_[0].eligible_legacy_instrument_id.size(), 2U);
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[0], "4");
+  EXPECT_EQ(offers_[0].eligible_legacy_instrument_id[1], "6");
+}
+
+TEST_F(PaymentsClientTest, GetOfferDataNoInstrumentIdsReturned) {
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   // Empty strings are ignored, offers with no IDs are ignored.
+                   "\"eligible_instrument_id\":[\"\",\"\",\"\"],"
+                   "\"eligible_legacy_instrument_id\":[\"\",\"\",\"\"]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(net::HTTP_OK,
+                   "{\"offer\":["
+                   "{\"offer_id\":\"123\","
+                   "\"name\":\"offer name\","
+                   "\"description\":\"offer description\","
+                   "\"expiry\":\"60000\","
+                   "\"merchant_domain\":\"http://merchant1.com\","
+                   // Empty arrays, offers with no IDs are ignored.
+                   "\"eligible_instrument_id\":[],"
+                   "\"eligible_legacy_instrument_id\":[]}"
+                   "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+  {
+    StartGettingOfferData();
+    ReturnResponse(
+        net::HTTP_OK,
+        "{\"offer\":["
+        "{\"offer_id\":\"123\","
+        "\"name\":\"offer name\","
+        "\"description\":\"offer description\","
+        "\"expiry\":\"60000\","
+        "\"merchant_domain\":\"http://merchant1.com\"}"
+        // |eligibile_instrument_id| and |eligible_legacy_instrument_id| fields
+        // are missing entirely, offers with no IDs are ignored.
+        "]}");
+    EXPECT_EQ(result_, AutofillClient::SUCCESS);
+    EXPECT_EQ(offers_.size(), 0U);
+  }
+}
 #endif
 
 }  // namespace payments
diff --git a/components/autofill/core/browser/payments/test_payments_client.cc b/components/autofill/core/browser/payments/test_payments_client.cc
index 0d8110e..828e02a 100644
--- a/components/autofill/core/browser/payments/test_payments_client.cc
+++ b/components/autofill/core/browser/payments/test_payments_client.cc
@@ -91,6 +91,15 @@
                           "this is display text");
 }
 
+void TestPaymentsClient::GetOfferData(
+    const std::string& app_locale,
+    base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                            const std::vector<AutofillOfferData>&)> callback) {
+  get_offer_data_calls_++;
+  if (should_return_offer_data_)
+    std::move(callback).Run(AutofillClient::SUCCESS, offers_);
+}
+
 void TestPaymentsClient::ShouldReturnUnmaskDetailsImmediately(
     bool should_return_unmask_details) {
   should_return_unmask_details_ = should_return_unmask_details;
@@ -190,5 +199,10 @@
   }
 }
 
+void TestPaymentsClient::SetShouldReturnOfferData(
+    bool should_return_offer_data) {
+  should_return_offer_data_ = should_return_offer_data;
+}
+
 }  // namespace payments
 }  // namespace autofill
diff --git a/components/autofill/core/browser/payments/test_payments_client.h b/components/autofill/core/browser/payments/test_payments_client.h
index 51939a15..0716f56 100644
--- a/components/autofill/core/browser/payments/test_payments_client.h
+++ b/components/autofill/core/browser/payments/test_payments_client.h
@@ -63,6 +63,12 @@
       const std::vector<MigratableCreditCard>& migratable_credit_cards,
       MigrateCardsCallback callback) override;
 
+  void GetOfferData(
+      const std::string& app_locale,
+      base::OnceCallback<void(AutofillClient::PaymentsRpcResult,
+                              const std::vector<AutofillOfferData>&)> callback)
+      override;
+
   // Some metrics are affected by the latency of GetUnmaskDetails, so it is
   // useful to control whether or not GetUnmaskDetails() is responded to.
   void ShouldReturnUnmaskDetailsImmediately(bool should_return_unmask_details);
@@ -84,6 +90,8 @@
   void SetUseInvalidLegalMessageInGetUploadDetails(
       bool use_invalid_legal_message);
 
+  void SetShouldReturnOfferData(bool should_return_offer_data);
+
   payments::PaymentsClient::UnmaskDetails* unmask_details() {
     return &unmask_details_;
   }
@@ -106,6 +114,7 @@
   PaymentsClient::UploadCardSource upload_card_source_in_request() const {
     return upload_card_source_;
   }
+  int get_offer_data_calls() const { return get_offer_data_calls_; }
 
  private:
   std::string server_id_;
@@ -126,6 +135,9 @@
   std::unique_ptr<std::unordered_map<std::string, std::string>> save_result_;
   bool use_invalid_legal_message_ = false;
   std::unique_ptr<base::Value> LegalMessage();
+  std::vector<AutofillOfferData> offers_;
+  int get_offer_data_calls_ = 0;
+  bool should_return_offer_data_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(TestPaymentsClient);
 };
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
index d980b36..dc6b23db 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller.h
@@ -34,8 +34,10 @@
   virtual bool ShouldRequestExpirationDate() const = 0;
   virtual bool GetStoreLocallyStartState() const = 0;
 #if defined(OS_ANDROID)
+  virtual int GetGooglePayImageRid() const = 0;
   virtual bool ShouldOfferWebauthn() const = 0;
   virtual bool GetWebauthnOfferStartState() const = 0;
+  virtual bool IsCardLocal() const = 0;
 #endif
   virtual base::TimeDelta GetSuccessMessageDuration() const = 0;
   virtual AutofillClient::PaymentsRpcResult GetVerificationResult() const = 0;
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
index 57d3c017..5c08309 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.cc
@@ -209,6 +209,10 @@
 }
 
 #if defined(OS_ANDROID)
+int CardUnmaskPromptControllerImpl::GetGooglePayImageRid() const {
+  return IDR_AUTOFILL_GOOGLE_PAY_WITH_DIVIDER;
+}
+
 bool CardUnmaskPromptControllerImpl::ShouldOfferWebauthn() const {
   return delegate_ && delegate_->ShouldOfferFidoAuth();
 }
@@ -217,6 +221,11 @@
   return pref_service_->GetBoolean(
       prefs::kAutofillCreditCardFidoAuthOfferCheckboxState);
 }
+
+bool CardUnmaskPromptControllerImpl::IsCardLocal() const {
+  return card_.record_type() == CreditCard::LOCAL_CARD;
+}
+
 #endif
 
 bool CardUnmaskPromptControllerImpl::InputCvcIsValid(
diff --git a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
index d5c31d3..0fcaffc 100644
--- a/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
+++ b/components/autofill/core/browser/ui/payments/card_unmask_prompt_controller_impl.h
@@ -55,8 +55,10 @@
   bool ShouldRequestExpirationDate() const override;
   bool GetStoreLocallyStartState() const override;
 #if defined(OS_ANDROID)
+  int GetGooglePayImageRid() const override;
   bool ShouldOfferWebauthn() const override;
   bool GetWebauthnOfferStartState() const override;
+  bool IsCardLocal() const override;
 #endif
   bool InputCvcIsValid(const base::string16& input_text) const override;
   bool InputExpirationIsValid(const base::string16& month,
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc
index ebabe10..970f8dc5 100644
--- a/components/autofill/core/common/autofill_payments_features.cc
+++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -59,6 +59,11 @@
 const base::Feature kAutofillEnableCardNicknameManagement{
     "AutofillEnableCardNicknameManagement", base::FEATURE_DISABLED_BY_DEFAULT};
 
+// When enabled, shows the Google Pay logo on CVC prompt on Android.
+const base::Feature kAutofillDownstreamCvcPromptUseGooglePayLogo{
+    "AutofillDownstreamCvcPromptUseGooglePayLogo",
+    base::FEATURE_DISABLED_BY_DEFAULT};
+
 // When enabled, the credit card nicknames will be manageable. They can be
 // uploaded to Payments.
 const base::Feature kAutofillEnableCardNicknameUpstream{
diff --git a/components/autofill/core/common/autofill_payments_features.h b/components/autofill/core/common/autofill_payments_features.h
index e76903e..5af71f6 100644
--- a/components/autofill/core/common/autofill_payments_features.h
+++ b/components/autofill/core/common/autofill_payments_features.h
@@ -24,6 +24,7 @@
 extern const base::Feature kAutofillCreditCardAblationExperiment;
 extern const base::Feature kAutofillCreditCardAuthentication;
 extern const base::Feature kAutofillCreditCardUploadFeedback;
+extern const base::Feature kAutofillDownstreamCvcPromptUseGooglePayLogo;
 extern const base::Feature kAutofillEnableCardNicknameManagement;
 extern const base::Feature kAutofillEnableCardNicknameUpstream;
 extern const base::Feature kAutofillEnableFixedPaymentsBubbleLogging;
diff --git a/components/bookmarks/browser/bookmark_utils_unittest.cc b/components/bookmarks/browser/bookmark_utils_unittest.cc
index 106a87e..3044bcd 100644
--- a/components/bookmarks/browser/bookmark_utils_unittest.cc
+++ b/components/bookmarks/browser/bookmark_utils_unittest.cc
@@ -393,7 +393,7 @@
   EXPECT_EQ("someothervalue", value);
 }
 
-#if defined(OS_LINUX) || defined(OS_APPLE)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_APPLE)
 // http://crbug.com/396472
 #define MAYBE_CutToClipboard DISABLED_CutToClipboard
 #else
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
index 7f70968..18dc62c 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -14,7 +14,7 @@
 <translation id="129382876167171263">ৱেবছাইটে ছেভ কৰা ফাইলসমূহ ইয়াত দেখা পোৱা যায়</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676">ছাইট <ph name="SITE_NAME" /> যোগ কৰা হ’ল</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1384959399684842514">ডাইনল’ড পজ কৰা হৈছে</translation>
 <translation id="1446450296470737166">MIDI ডিভাইচৰ সম্পূর্ণ নিয়ন্ত্ৰণৰ অনুমতি দিয়া</translation>
 <translation id="1509960214886564027">বহুতো ছাইটৰ সুবিধাসমূহ ব্যাহত হ’ব পাৰে</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
index 0c5fdfc..c46c80b 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_be.xtb
@@ -146,6 +146,7 @@
 <translation id="5916664084637901428">Уключана</translation>
 <translation id="5922853908706496913">Ваш экран абагульваецца</translation>
 <translation id="5939518447894949180">Скінуць</translation>
+<translation id="6015775454662021376">Кіруйце доступам гэтага сайта да вашай прылады</translation>
 <translation id="6040143037577758943">Закрыць</translation>
 <translation id="6042308850641462728">Яшчэ</translation>
 <translation id="6064125863973209585">Завершаныя спампоўкі</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
index e66e644..f22ce96 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bn.xtb
@@ -14,7 +14,7 @@
 <translation id="129382876167171263">ওয়েবসাইট যেসব ফাইল সেভ করে সেগুলি এখানে দেখা যায়</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676"><ph name="SITE_NAME" /> সাইট যোগ করা হয়েছে</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1384959399684842514">ডাউনলোড পজ করা আছে</translation>
 <translation id="1446450296470737166">MIDI ডিভাইসগুলির পূর্ণ নিয়ন্ত্রণের অনুমতি দিন</translation>
 <translation id="1509960214886564027">একাধিক সাইটের ফিচারগুলি কাজ নাও করতে পারে</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
index 49bd24e..cd3cda22 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -14,7 +14,7 @@
 <translation id="129382876167171263">વેબસાઇટ દ્વારા સાચવવામાં આવેલી ફાઇલો અહી દેખાશે</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676">સાઈટ <ph name="SITE_NAME" /> ઉમેરવામાં આવી</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1384959399684842514">ડાઉનલોડ થોભાવ્યું</translation>
 <translation id="1446450296470737166">MIDI ઉપકરણોના પૂર્ણ નિયંત્રણની મંજૂરી આપો</translation>
 <translation id="1509960214886564027">ઘણી સાઇટ પરની સુવિધાઓને કદાચ બંધ કરવામાં આવી શકે</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
index 1767d36..099f26a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb
@@ -120,7 +120,7 @@
 <translation id="5063480226653192405">ಬಳಕೆ</translation>
 <translation id="5100237604440890931">ಕುಗ್ಗಿಸಲಾಗಿದೆ - ವಿಸ್ತರಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="5123685120097942451">ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌</translation>
-<translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
+<translation id="5300589172476337783">ತೋರಿಸಿ</translation>
 <translation id="5301954838959518834">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation>
 <translation id="5313967007315987356">ಸೈಟ್ ಸೇರಿಸಿ</translation>
 <translation id="5317780077021120954">ಉಳಿಸು</translation>
@@ -146,6 +146,7 @@
 <translation id="5916664084637901428">ಆನ್‌</translation>
 <translation id="5922853908706496913">ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ</translation>
 <translation id="5939518447894949180">ಮರುಹೊಂದಿಸು</translation>
+<translation id="6015775454662021376">ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಈ ಸೈಟ್‌ನ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸಿ</translation>
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6042308850641462728">ಇನ್ನಷ್ಟು</translation>
 <translation id="6064125863973209585">ಪೂರ್ಣಗೊಳಿಸಿದ ಡೌನ್‌ಲೋಡ್‌ಗಳು</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
index 9b4f366..e4fead21 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -14,7 +14,7 @@
 <translation id="129382876167171263">இணையதளங்கள் சேமித்த கோப்புகள் இங்கே தோன்றும்</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676"><ph name="SITE_NAME" /> தளம் சேர்க்கப்பட்டது</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1384959399684842514">பதிவிறக்கம் இடைநிறுத்தப்பட்டது</translation>
 <translation id="1446450296470737166">MIDI சாதனங்களுக்கு முழுக் கட்டுப்பாட்டை அனுமதி</translation>
 <translation id="1509960214886564027">பெரும்பாலான தளங்களிலுள்ள அம்சங்கள் செயல்படாமல் போகக்கூடும்</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
index b742199..893fb66d 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_te.xtb
@@ -14,7 +14,7 @@
 <translation id="129382876167171263">వెబ్‌సైట్‌లు సేవ్ చేసిన ఫైల్‌లు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="1364532808393826295"><ph name="APP_NAME" /> - <ph name="NOTIFICATION_MESSAGE" /></translation>
 <translation id="1369915414381695676"><ph name="SITE_NAME" /> సైట్ జోడించబడింది</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1384959399684842514">డౌన్‌లోడ్ పాజ్ చేయబడింది</translation>
 <translation id="1446450296470737166">MIDI పరికరాల పూర్తి నియం. అనుమ.</translation>
 <translation id="1509960214886564027">చాలా సైట్‌లలోని ఫీచర్‌లు పని చేయకుండాపోవచ్చు</translation>
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
index dbcc29f..171ead7 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
@@ -60,7 +60,7 @@
 #elif defined(OS_CHROMEOS)
 const Client kClient = Client::CHROME_CHROMEOS;
 const char kClientStr[] = "chromeos";
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
 const Client kClient = Client::CHROME_LINUX;
 const char kClientStr[] = "linux";
 #elif defined(OS_WIN)
diff --git a/components/download/internal/common/base_file.cc b/components/download/internal/common/base_file.cc
index ddf3be7..4f4ebe4b 100644
--- a/components/download/internal/common/base_file.cc
+++ b/components/download/internal/common/base_file.cc
@@ -604,7 +604,8 @@
 
 }  // namespace
 
-#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+    defined(OS_CHROMEOS)
 
 DownloadInterruptReason BaseFile::AnnotateWithSourceInformationSync(
     const std::string& client_guid,
@@ -622,7 +623,7 @@
 
   return QuarantineFileResultToReason(result);
 }
-#else  // !OS_WIN && !OS_APPLE && !OS_LINUX
+#else  // !OS_WIN && !OS_APPLE && !OS_LINUX && !OS_CHROMEOS
 DownloadInterruptReason BaseFile::AnnotateWithSourceInformationSync(
     const std::string& client_guid,
     const GURL& source_url,
diff --git a/components/exo/BUILD.gn b/components/exo/BUILD.gn
index 5799987..8304eacd 100644
--- a/components/exo/BUILD.gn
+++ b/components/exo/BUILD.gn
@@ -121,6 +121,9 @@
       "client_controlled_accelerators.h",
       "client_controlled_shell_surface.cc",
       "client_controlled_shell_surface.h",
+      "gamepad.cc",
+      "gamepad.h",
+      "gamepad_observer.h",
       "gaming_seat.cc",
       "gaming_seat.h",
       "input_method_surface.cc",
@@ -250,6 +253,7 @@
       "data_source_unittest.cc",
       "display_unittest.cc",
       "drag_drop_operation_unittest.cc",
+      "gamepad_unittest.cc",
       "gaming_seat_unittest.cc",
       "input_method_surface_unittest.cc",
       "keyboard_unittest.cc",
diff --git a/components/exo/gamepad.cc b/components/exo/gamepad.cc
new file mode 100644
index 0000000..d360518
--- /dev/null
+++ b/components/exo/gamepad.cc
@@ -0,0 +1,158 @@
+// Copyright 2020 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/gamepad.h"
+
+#include "base/bind.h"
+#include "base/logging.h"
+#include "chromeos/constants/chromeos_features.h"
+
+namespace exo {
+
+Gamepad::Gamepad(const ui::GamepadDevice& gamepad_device)
+    : device(gamepad_device),
+      input_controller_(
+          ui::OzonePlatform::GetInstance()->GetInputController()) {}
+
+Gamepad::~Gamepad() {
+  for (GamepadObserver& observer : observer_list_)
+    observer.OnGamepadDestroying(this);
+
+  if (delegate_)
+    delegate_->OnRemoved();
+}
+
+void Gamepad::Vibrate(const std::vector<int64_t>& duration_millis,
+                      const std::vector<uint8_t>& amplitudes,
+                      int32_t repeat) {
+  if (!device.supports_vibration_rumble) {
+    VLOG(2) << "Vibrate failed because gamepad does not support vibration.";
+    return;
+  }
+
+  if (duration_millis.size() != amplitudes.size()) {
+    VLOG(2) << "Vibrate failed because the amplitudes vector and "
+               "duration_millis vector are not the same size.";
+    return;
+  }
+
+  vibration_timer_.Stop();
+  vibration_timer_.Start(
+      FROM_HERE, base::TimeDelta::FromMilliseconds(0),
+      base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
+                     duration_millis, amplitudes, repeat, /*index=*/0,
+                     /*duration_already_vibrated=*/0));
+}
+
+void Gamepad::HandleVibrate(const std::vector<int64_t>& duration_millis,
+                            const std::vector<uint8_t>& amplitudes,
+                            int32_t repeat,
+                            size_t index,
+                            int64_t duration_already_vibrated) {
+  size_t vector_size = duration_millis.size();
+  if (index >= vector_size)
+    return;
+
+  if (!can_vibrate_) {
+    VLOG(2) << "Gamepad is not allowed to vibrate because it is not in focus.";
+    return;
+  }
+
+  int64_t duration_left_to_vibrate =
+      duration_millis[index] - duration_already_vibrated;
+
+  if (duration_left_to_vibrate > kMaxDurationMillis) {
+    //  The device does not support effects this long. Issue periodic vibration
+    //  commands until the effect is complete.
+    SendVibrate(amplitudes[index], kMaxDurationMillis);
+    vibration_timer_.Start(
+        FROM_HERE, base::TimeDelta::FromMilliseconds(kMaxDurationMillis),
+        base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
+                       duration_millis, amplitudes, repeat, index,
+                       /*duration_already_vibrated=*/duration_already_vibrated +
+                           kMaxDurationMillis));
+  } else {
+    SendVibrate(amplitudes[index], duration_left_to_vibrate);
+    index++;
+    bool needs_to_repeat = index >= vector_size && repeat >= 0 &&
+                           repeat < static_cast<int32_t>(vector_size);
+    if (needs_to_repeat)
+      index = repeat;
+
+    vibration_timer_.Start(
+        FROM_HERE, base::TimeDelta::FromMilliseconds(duration_left_to_vibrate),
+        base::BindOnce(&Gamepad::HandleVibrate, base::Unretained(this),
+                       duration_millis, amplitudes, repeat, index,
+                       /*duration_already_vibrated=*/0));
+  }
+}
+
+void Gamepad::SendVibrate(uint8_t amplitude, int64_t duration_millis) {
+  // |duration_millis| is always <= |kMaxDurationMillis|, which is the max value
+  // for uint16_t, so it is safe to cast it to uint16_t here.
+  input_controller_->PlayVibrationEffect(
+      device.id, amplitude, static_cast<uint16_t>(duration_millis));
+}
+
+void Gamepad::CancelVibration() {
+  if (!device.supports_vibration_rumble) {
+    VLOG(2)
+        << "CancelVibration failed because gamepad does not support vibration.";
+    return;
+  }
+
+  if (!vibration_timer_.IsRunning())
+    return;
+
+  vibration_timer_.Stop();
+  SendCancelVibration();
+}
+
+void Gamepad::SendCancelVibration() {
+  input_controller_->StopVibration(device.id);
+}
+
+void Gamepad::SetDelegate(std::unique_ptr<GamepadDelegate> delegate) {
+  DCHECK(!delegate_);
+  delegate_ = std::move(delegate);
+}
+
+void Gamepad::AddObserver(GamepadObserver* observer) {
+  observer_list_.AddObserver(observer);
+}
+
+bool Gamepad::HasObserver(GamepadObserver* observer) const {
+  return observer_list_.HasObserver(observer);
+}
+
+void Gamepad::RemoveObserver(GamepadObserver* observer) {
+  observer_list_.RemoveObserver(observer);
+}
+
+void Gamepad::OnGamepadFocused() {
+  can_vibrate_ =
+      base::FeatureList::IsEnabled(chromeos::features::kGamepadVibration);
+}
+
+void Gamepad::OnGamepadFocusLost() {
+  can_vibrate_ = false;
+  CancelVibration();
+}
+
+void Gamepad::OnGamepadEvent(const ui::GamepadEvent& event) {
+  DCHECK(delegate_);
+  switch (event.type()) {
+    case ui::GamepadEventType::BUTTON:
+      delegate_->OnButton(event.code(), event.value(), event.timestamp());
+      break;
+    case ui::GamepadEventType::AXIS:
+      delegate_->OnAxis(event.code(), event.value(), event.timestamp());
+      break;
+    case ui::GamepadEventType::FRAME:
+      delegate_->OnFrame(event.timestamp());
+      break;
+  }
+}
+
+}  // namespace exo
diff --git a/components/exo/gamepad.h b/components/exo/gamepad.h
new file mode 100644
index 0000000..6bf7d5ff
--- /dev/null
+++ b/components/exo/gamepad.h
@@ -0,0 +1,107 @@
+// Copyright 2020 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_GAMEPAD_H_
+#define COMPONENTS_EXO_GAMEPAD_H_
+
+#include <vector>
+
+#include "base/observer_list.h"
+#include "base/timer/timer.h"
+#include "components/exo/gamepad_delegate.h"
+#include "components/exo/gamepad_observer.h"
+#include "ui/events/devices/gamepad_device.h"
+#include "ui/events/ozone/gamepad/gamepad_event.h"
+#include "ui/ozone/public/input_controller.h"
+#include "ui/ozone/public/ozone_platform.h"
+
+namespace exo {
+
+// Maximum force feedback duration supported by Linux.
+constexpr int64_t kMaxDurationMillis = 0xFFFF;
+
+// This class represents one gamepad. It allows control over the gamepad's
+// vibration and provides focus tracking for the gamepad.
+class Gamepad {
+ public:
+  explicit Gamepad(const ui::GamepadDevice& gamepad_device);
+  Gamepad(const Gamepad& other) = delete;
+  Gamepad& operator=(const Gamepad& other) = delete;
+
+  // The destructor also informs GamepadObservers and GamepadDelegate when a
+  // gamepad has been disconnected.
+  virtual ~Gamepad();
+
+  // Controls vibration effects on the gamepad.
+  // The duration_millis/amplitude pairs determine the duration and strength of
+  // the vibration. Note that the two vectors have to be the same size.
+  // The repeat value determines the index of the duration_millis (or
+  // amplitudes) vector at which the pattern to repeat begins. If repeat is
+  // enabled, the vibration pattern will repeat indefinitely until the vibration
+  // event is canceled. A repeat value of -1 disables repeat.
+  // The user does not have to explicitly call CancelVibration() at the end of
+  // every vibration call. However, if Vibrate() is called when there is an
+  // ongoing vibration, the existing vibration is automatically interrupted and
+  // canceled. The gamepad has to be focused in order for the gamepad to
+  // vibrate. If focus is lost when there is an ongoing vibration, the vibration
+  // is canceled automatically.
+  void Vibrate(const std::vector<int64_t>& duration_millis,
+               const std::vector<uint8_t>& amplitudes,
+               int32_t repeat);
+  void CancelVibration();
+
+  // The GamepadDelegate is not owned by Gamepad. The delegate must stay alive
+  // until OnRemoved is called.
+  void SetDelegate(std::unique_ptr<GamepadDelegate> delegate);
+
+  // Manages the GamepadObserver list. GamepadObservers are notified when the
+  // gamepad is being destroyed.
+  void AddObserver(GamepadObserver* observer);
+  bool HasObserver(GamepadObserver* observer) const;
+  void RemoveObserver(GamepadObserver* observer);
+
+  // Informs the gamepad when window focus changes; focus changes determine
+  // whether a gamepad is allowed to vibrate at any given time.
+  void OnGamepadFocused();
+  void OnGamepadFocusLost();
+
+  // Forwards gamepad events to the corresponding GamepadDelegate calls.
+  void OnGamepadEvent(const ui::GamepadEvent& event);
+
+  const ui::GamepadDevice device;
+
+ private:
+  // Private method for handling vibration patterns. Handles repeat and
+  // breaking down of vibration events by iterating through duration/amplitude
+  // vectors. Also provides handling for a vibration event that exceeds the
+  // maximum force feedback duration supported by Linux.
+  void HandleVibrate(const std::vector<int64_t>& duration_millis,
+                     const std::vector<uint8_t>& amplitudes,
+                     int32_t repeat,
+                     size_t start_index,
+                     int64_t duration_already_vibrated);
+
+  // These methods forward vibration calls to |input_controller_|.
+  // They are virtual for testing purposes.
+  virtual void SendVibrate(uint8_t amplitude, int64_t duration_millis);
+  virtual void SendCancelVibration();
+
+  // Keeps track of whether the gamepad is allowed to vibrate at any given
+  // time.
+  bool can_vibrate_ = false;
+
+  std::unique_ptr<GamepadDelegate> delegate_;
+
+  base::ObserverList<GamepadObserver>::Unchecked observer_list_;
+
+  // Methods to control gamepad vibration are routed through InputController.
+  ui::InputController* input_controller_;
+
+  // A timer to keep track of vibration requests.
+  base::OneShotTimer vibration_timer_;
+};
+
+}  // namespace exo
+
+#endif  // COMPONENTS_EXO_GAMEPAD_H_
diff --git a/components/exo/gamepad_delegate.h b/components/exo/gamepad_delegate.h
index bb698612..ea97624c 100644
--- a/components/exo/gamepad_delegate.h
+++ b/components/exo/gamepad_delegate.h
@@ -12,6 +12,7 @@
 // Handles events for a specific gamepad.
 class GamepadDelegate {
  public:
+  virtual ~GamepadDelegate() {}
   // Called when the gamepad has been removed.
   virtual void OnRemoved() = 0;
 
@@ -26,9 +27,6 @@
   // Called after all gamepad information of this frame has been set and the
   // client should evaluate the updated state.
   virtual void OnFrame(base::TimeTicks timestamp) = 0;
-
- protected:
-  virtual ~GamepadDelegate() {}
 };
 
 }  // namespace exo
diff --git a/components/exo/gamepad_observer.h b/components/exo/gamepad_observer.h
new file mode 100644
index 0000000..f864b99a
--- /dev/null
+++ b/components/exo/gamepad_observer.h
@@ -0,0 +1,24 @@
+// Copyright 2020 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_GAMEPAD_OBSERVER_H_
+#define COMPONENTS_EXO_GAMEPAD_OBSERVER_H_
+
+namespace exo {
+
+class Gamepad;
+
+// Observers to the gamepad are notified when the gamepad destructs.
+class GamepadObserver {
+ public:
+  virtual ~GamepadObserver() = default;
+
+  // Called at the top of the gamepad's destructor, to give observers a change
+  // to remove themselves.
+  virtual void OnGamepadDestroying(Gamepad* gamepad) = 0;
+};
+
+}  // namespace exo
+
+#endif  // COMPONENTS_EXO_GAMEPAD_OBSERVER_H_
diff --git a/components/exo/gamepad_unittest.cc b/components/exo/gamepad_unittest.cc
new file mode 100644
index 0000000..e570306
--- /dev/null
+++ b/components/exo/gamepad_unittest.cc
@@ -0,0 +1,328 @@
+// Copyright 2020 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/gamepad.h"
+
+#include "base/test/scoped_feature_list.h"
+#include "base/test/task_environment.h"
+#include "chromeos/constants/chromeos_features.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace exo {
+
+namespace {
+
+constexpr int64_t kDurationMillis = 0x8000;
+constexpr base::TimeDelta kPendingTaskDuration =
+    base::TimeDelta::FromMillisecondsD(kDurationMillis);
+constexpr base::TimeDelta kPendingMaxTaskDuration =
+    base::TimeDelta::FromMillisecondsD(kMaxDurationMillis);
+constexpr uint8_t kAmplitude = 128;
+
+class TestGamepad : public Gamepad {
+ public:
+  TestGamepad(const ui::GamepadDevice& device)
+      : Gamepad(device),
+        send_vibrate_count_(0),
+        send_cancel_vibration_count_(0) {}
+
+  TestGamepad(const TestGamepad&) = delete;
+  TestGamepad& operator=(const TestGamepad& other) = delete;
+
+  void SendVibrate(uint8_t amplitude, int64_t duration_millis) override {
+    send_vibrate_count_++;
+    last_vibrate_amplitude_ = amplitude;
+    last_vibrate_duration_ = duration_millis;
+  }
+
+  void SendCancelVibration() override { send_cancel_vibration_count_++; }
+
+  uint8_t last_vibrate_amplitude_;
+  int64_t last_vibrate_duration_;
+  int send_vibrate_count_;
+  int send_cancel_vibration_count_;
+};
+
+class MockGamepadObserver : public GamepadObserver {
+ public:
+  MockGamepadObserver() {}
+  // Overridden from GamepadObserver:
+  MOCK_METHOD(void, OnGamepadDestroying, (Gamepad * gamepad), (override));
+};
+
+class MockGamepadDelegate : public GamepadDelegate {
+ public:
+  MockGamepadDelegate() {}
+
+  // Overridden from GamepadDelegate:
+  MOCK_METHOD(void, OnRemoved, (), (override));
+  MOCK_METHOD(void,
+              OnAxis,
+              (int axis, double value, base::TimeTicks timestamp),
+              (override));
+  MOCK_METHOD(void,
+              OnButton,
+              (int button, bool pressed, base::TimeTicks timestamp),
+              (override));
+  MOCK_METHOD(void, OnFrame, (base::TimeTicks timestamp), (override));
+};
+
+class GamepadTest : public testing::Test {
+ public:
+  GamepadTest() {
+    ui::GamepadDevice device(
+        ui::InputDevice(0, ui::InputDeviceType::INPUT_DEVICE_USB, "gamepad"),
+        std::vector<ui::GamepadDevice::Axis>(), true);
+    gamepad_ = std::make_unique<TestGamepad>(device);
+  }
+
+  void SetUp() override {
+    testing::Test::SetUp();
+    // Allow test to signal to gamepad that it can vibrate.
+    scoped_feature_list_.InitAndEnableFeature(
+        chromeos::features::kGamepadVibration);
+    gamepad_->OnGamepadFocused();
+  }
+
+  std::unique_ptr<TestGamepad> gamepad_;
+  base::test::TaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+  base::test::ScopedFeatureList scoped_feature_list_;
+
+  DISALLOW_COPY_AND_ASSIGN(GamepadTest);
+};
+
+TEST_F(GamepadTest, OneShotVibrationTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(0, gamepad_->send_cancel_vibration_count_);
+
+  gamepad_->Vibrate({kDurationMillis}, {kAmplitude}, -1);
+  task_environment_.FastForwardBy(
+      base::TimeDelta::FromMillisecondsD(kDurationMillis / 2));
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  // Cancel vibration when it's halfway through.
+  gamepad_->CancelVibration();
+  EXPECT_EQ(1, gamepad_->send_cancel_vibration_count_);
+}
+
+TEST_F(GamepadTest, OneShotVibrationTooLongTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+
+  gamepad_->Vibrate({kMaxDurationMillis * 3}, {kAmplitude}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingMaxTaskDuration);
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingMaxTaskDuration);
+  EXPECT_EQ(3, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  // Complete the last vibration and make sure no more vibration is scheduled.
+  task_environment_.FastForwardBy(kPendingMaxTaskDuration);
+  EXPECT_FALSE(task_environment_.NextTaskIsDelayed());
+}
+
+TEST_F(GamepadTest, WaveformVibrationTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+
+  gamepad_->Vibrate({kDurationMillis, kDurationMillis}, {kAmplitude, 0}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingTaskDuration);
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(0, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  // Complete the last vibration and make sure no more vibration is scheduled.
+  task_environment_.FastForwardBy(kPendingTaskDuration);
+  EXPECT_FALSE(task_environment_.NextTaskIsDelayed());
+}
+
+TEST_F(GamepadTest, VibrationWithRepeatTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(0, gamepad_->send_cancel_vibration_count_);
+
+  gamepad_->Vibrate({kMaxDurationMillis, kDurationMillis}, {kAmplitude, 0}, 0);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingMaxTaskDuration);
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(0, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingTaskDuration);
+  EXPECT_EQ(3, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingTaskDuration);
+  gamepad_->CancelVibration();
+
+  EXPECT_EQ(1, gamepad_->send_cancel_vibration_count_);
+  EXPECT_EQ(3, gamepad_->send_vibrate_count_);
+}
+
+TEST_F(GamepadTest, OverrideVibrationTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+
+  gamepad_->Vibrate({kDurationMillis, kDurationMillis}, {kAmplitude, 0}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  task_environment_.FastForwardBy(kPendingTaskDuration / 2);
+
+  // At this point, we're halfway through the first OneShot vibration in the
+  // duration vector.
+  gamepad_->Vibrate({kMaxDurationMillis}, {kAmplitude / 2}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude / 2, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kMaxDurationMillis, gamepad_->last_vibrate_duration_);
+
+  // Make sure that the remaining vibration from the first call is no longer in
+  // the queue.
+  task_environment_.FastForwardBy(kPendingMaxTaskDuration);
+  EXPECT_FALSE(task_environment_.NextTaskIsDelayed());
+  // Verify that no extra vibration calls were made.
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+}
+
+TEST_F(GamepadTest, NoFocusTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+  gamepad_->OnGamepadFocusLost();
+
+  gamepad_->Vibrate({kDurationMillis}, {kAmplitude}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+}
+
+TEST_F(GamepadTest, FocusLostTest) {
+  EXPECT_EQ(0, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(0, gamepad_->send_cancel_vibration_count_);
+
+  gamepad_->Vibrate({kDurationMillis, kDurationMillis}, {kAmplitude, 0}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis, gamepad_->last_vibrate_duration_);
+
+  EXPECT_TRUE(task_environment_.NextTaskIsDelayed());
+  gamepad_->OnGamepadFocusLost();
+  task_environment_.FastForwardBy(kPendingTaskDuration);
+
+  // When focus is lost, CancelVibration is sent, and no more vibration can be
+  // scheduled.
+  EXPECT_EQ(1, gamepad_->send_cancel_vibration_count_);
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+
+  // While focus is not regained, gamepad cannot vibrate.
+  gamepad_->Vibrate({kDurationMillis}, {kAmplitude}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(1, gamepad_->send_vibrate_count_);
+
+  // If focus is regained, gamepad can vibrate again.
+  gamepad_->OnGamepadFocused();
+  gamepad_->Vibrate({kDurationMillis / 2}, {kAmplitude / 2}, -1);
+  task_environment_.RunUntilIdle();
+  EXPECT_EQ(2, gamepad_->send_vibrate_count_);
+  EXPECT_EQ(kAmplitude / 2, gamepad_->last_vibrate_amplitude_);
+  EXPECT_EQ(kDurationMillis / 2, gamepad_->last_vibrate_duration_);
+}
+
+TEST_F(GamepadTest, GamepadObserverTest) {
+  MockGamepadObserver observer1;
+  MockGamepadObserver observer2;
+
+  gamepad_->AddObserver(&observer1);
+  gamepad_->AddObserver(&observer2);
+  EXPECT_TRUE(gamepad_->HasObserver(&observer1));
+  EXPECT_TRUE(gamepad_->HasObserver(&observer2));
+
+  gamepad_->RemoveObserver(&observer1);
+  EXPECT_FALSE(gamepad_->HasObserver(&observer1));
+  EXPECT_TRUE(gamepad_->HasObserver(&observer2));
+
+  EXPECT_CALL(observer1, OnGamepadDestroying(gamepad_.get())).Times(0);
+  EXPECT_CALL(observer2, OnGamepadDestroying(gamepad_.get()));
+  gamepad_.reset();
+}
+
+TEST_F(GamepadTest, GamepadDelegateTest) {
+  auto delegate = std::make_unique<MockGamepadDelegate>();
+  EXPECT_CALL(*delegate, OnRemoved()).Times(1);
+
+  gamepad_->SetDelegate(std::move(delegate));
+
+  gamepad_.reset();
+}
+
+TEST_F(GamepadTest, OnGamepadEventTest) {
+  constexpr int gamepad_id = 0;
+  constexpr uint16_t code = 310;
+  constexpr double value = 1;
+  base::TimeTicks expected_time = base::TimeTicks::Now();
+
+  auto delegate = std::make_unique<MockGamepadDelegate>();
+  EXPECT_CALL(*delegate, OnButton(code, value, expected_time)).Times(1);
+  EXPECT_CALL(*delegate, OnAxis(code, value, expected_time)).Times(1);
+  EXPECT_CALL(*delegate, OnFrame(expected_time)).Times(1);
+  EXPECT_CALL(*delegate, OnRemoved()).Times(1);
+
+  gamepad_->SetDelegate(std::move(delegate));
+
+  gamepad_->OnGamepadEvent(ui::GamepadEvent(
+      gamepad_id, ui::GamepadEventType::BUTTON, code, value, expected_time));
+  gamepad_->OnGamepadEvent(ui::GamepadEvent(
+      gamepad_id, ui::GamepadEventType::AXIS, code, value, expected_time));
+  gamepad_->OnGamepadEvent(ui::GamepadEvent(
+      gamepad_id, ui::GamepadEventType::FRAME, code, value, expected_time));
+
+  gamepad_.reset();
+}
+
+TEST_F(GamepadTest, GamepadDestroyedTest) {
+  MockGamepadObserver observer1;
+  MockGamepadObserver observer2;
+  gamepad_->AddObserver(&observer1);
+  gamepad_->AddObserver(&observer2);
+  EXPECT_TRUE(gamepad_->HasObserver(&observer1));
+  EXPECT_TRUE(gamepad_->HasObserver(&observer2));
+
+  auto delegate = std::make_unique<MockGamepadDelegate>();
+  EXPECT_CALL(*delegate, OnRemoved()).Times(1);
+
+  gamepad_->SetDelegate(std::move(delegate));
+
+  EXPECT_CALL(observer1, OnGamepadDestroying(gamepad_.get())).Times(1);
+  EXPECT_CALL(observer2, OnGamepadDestroying(gamepad_.get())).Times(1);
+  gamepad_.reset();
+}
+}  // namespace
+}  // namespace exo
diff --git a/components/exo/gaming_seat.cc b/components/exo/gaming_seat.cc
index f63b2fa..72ea93e 100644
--- a/components/exo/gaming_seat.cc
+++ b/components/exo/gaming_seat.cc
@@ -6,6 +6,7 @@
 
 #include <vector>
 
+#include "components/exo/gamepad.h"
 #include "components/exo/gamepad_delegate.h"
 #include "components/exo/gaming_seat_delegate.h"
 #include "components/exo/shell_surface_util.h"
@@ -27,9 +28,6 @@
   if (focused_)
     ui::GamepadProviderOzone::GetInstance()->RemoveGamepadObserver(this);
   delegate_->OnGamingSeatDestroying(this);
-  // Disconnect all the gamepads.
-  for (auto& entry : gamepads_)
-    entry.second->OnRemoved();
 
   WMHelper::GetInstance()->RemoveFocusObserver(this);
 }
@@ -55,8 +53,12 @@
     if (focused) {
       ui::GamepadProviderOzone::GetInstance()->AddGamepadObserver(this);
       OnGamepadDevicesUpdated();
+      for (auto& entry : gamepads_)
+        entry.second->OnGamepadFocused();
     } else {
       ui::GamepadProviderOzone::GetInstance()->RemoveGamepadObserver(this);
+      for (auto& entry : gamepads_)
+        entry.second->OnGamepadFocusLost();
     }
   }
 }
@@ -68,25 +70,26 @@
   std::vector<ui::GamepadDevice> gamepad_devices =
       ui::GamepadProviderOzone::GetInstance()->GetGamepadDevices();
 
-  base::flat_map<int, GamepadDelegate*> new_gamepads;
+  base::flat_map<int, std::unique_ptr<Gamepad>> new_gamepads;
 
   // Copy the "still connected gamepads".
   for (auto& device : gamepad_devices) {
     auto it = gamepads_.find(device.id);
     if (it != gamepads_.end()) {
-      new_gamepads[device.id] = it->second;
+      new_gamepads[device.id] = std::move(it->second);
       gamepads_.erase(it);
     }
   }
 
-  // Remove each disconected gamepad.
-  for (auto& entry : gamepads_)
-    entry.second->OnRemoved();
-
   // Add each new connected gamepad.
   for (auto& device : gamepad_devices) {
-    if (new_gamepads.find(device.id) == new_gamepads.end())
-      new_gamepads[device.id] = delegate_->GamepadAdded(device);
+    if (new_gamepads.find(device.id) == new_gamepads.end()) {
+      std::unique_ptr<Gamepad> gamepad = std::make_unique<Gamepad>(device);
+      if (focused_)
+        gamepad->OnGamepadFocused();
+      delegate_->GamepadAdded(*gamepad);
+      new_gamepads[device.id] = std::move(gamepad);
+    }
   }
 
   new_gamepads.swap(gamepads_);
@@ -97,17 +100,7 @@
   if (it == gamepads_.end())
     return;
 
-  switch (event.type()) {
-    case ui::GamepadEventType::BUTTON:
-      it->second->OnButton(event.code(), event.value(), event.timestamp());
-      break;
-    case ui::GamepadEventType::AXIS:
-      it->second->OnAxis(event.code(), event.value(), event.timestamp());
-      break;
-    case ui::GamepadEventType::FRAME:
-      it->second->OnFrame(event.timestamp());
-      break;
-  }
+  it->second->OnGamepadEvent(event);
 }
 
 }  // namespace exo
diff --git a/components/exo/gaming_seat.h b/components/exo/gaming_seat.h
index 312e5f3..c75cf15 100644
--- a/components/exo/gaming_seat.h
+++ b/components/exo/gaming_seat.h
@@ -12,6 +12,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "base/synchronization/lock.h"
+#include "components/exo/gamepad.h"
 #include "components/exo/wm_helper.h"
 #include "ui/aura/client/focus_change_observer.h"
 #include "ui/events/ozone/gamepad/gamepad_observer.h"
@@ -26,8 +27,7 @@
 class GamingSeat : public aura::client::FocusChangeObserver,
                    public ui::GamepadObserver {
  public:
-  // This class will monitor gamepad connection changes and manage gamepad
-  // returned by gaming_seat_delegate.
+  // This class will monitor gamepad connection changes and manage gamepads.
   GamingSeat(GamingSeatDelegate* gaming_seat_delegate);
 
   ~GamingSeat() override;
@@ -45,7 +45,7 @@
   GamingSeatDelegate* const delegate_;
 
   // Contains the delegate for each gamepad device.
-  base::flat_map<int, GamepadDelegate*> gamepads_;
+  base::flat_map<int, std::unique_ptr<Gamepad>> gamepads_;
 
   // The flag if a valid target for gaming seat is focused. In other words, if
   // it's true, this class is observing gamepad events.
diff --git a/components/exo/gaming_seat_delegate.h b/components/exo/gaming_seat_delegate.h
index 61d6f53..11371aa 100644
--- a/components/exo/gaming_seat_delegate.h
+++ b/components/exo/gaming_seat_delegate.h
@@ -5,14 +5,11 @@
 #ifndef COMPONENTS_EXO_GAMING_SEAT_DELEGATE_H_
 #define COMPONENTS_EXO_GAMING_SEAT_DELEGATE_H_
 
-namespace ui {
-struct GamepadDevice;
-}  // namespace ui
-
 namespace exo {
 class Surface;
 class GamepadDelegate;
 class GamingSeat;
+class Gamepad;
 
 // It send gamepad_added event and generate the GamepadDelegate.
 class GamingSeatDelegate {
@@ -25,9 +22,9 @@
   // seat. E.g. the surface is owned by the same client as the gaming seat.
   virtual bool CanAcceptGamepadEventsForSurface(Surface* surface) const = 0;
 
-  // When a new gamepad is connected, gaming seat call this to get the
-  // gamepad delegate.
-  virtual GamepadDelegate* GamepadAdded(const ui::GamepadDevice& device) = 0;
+  // When a new gamepad is connected, gaming seat call this to assign a
+  // gamepad delegate to the gamepad.
+  virtual void GamepadAdded(Gamepad& gamepad) = 0;
 
  protected:
   virtual ~GamingSeatDelegate() {}
diff --git a/components/exo/gaming_seat_unittest.cc b/components/exo/gaming_seat_unittest.cc
index c64c93e..cbc2040 100644
--- a/components/exo/gaming_seat_unittest.cc
+++ b/components/exo/gaming_seat_unittest.cc
@@ -11,6 +11,7 @@
 #include "base/run_loop.h"
 #include "base/time/time.h"
 #include "components/exo/buffer.h"
+#include "components/exo/gamepad.h"
 #include "components/exo/gamepad_delegate.h"
 #include "components/exo/gaming_seat_delegate.h"
 #include "components/exo/shell_surface.h"
@@ -26,24 +27,33 @@
 namespace exo {
 namespace {
 
-class MockGamingSeatDelegate : public GamingSeatDelegate {
- public:
-  MOCK_CONST_METHOD1(CanAcceptGamepadEventsForSurface, bool(Surface*));
-  MOCK_METHOD1(GamepadAdded, GamepadDelegate*(const ui::GamepadDevice&));
-  MOCK_METHOD0(Die, void());
-  void OnGamingSeatDestroying(GamingSeat*) override { delete this; }
-  ~MockGamingSeatDelegate() { Die(); }
-};
-
 class MockGamepadDelegate : public GamepadDelegate {
  public:
   MockGamepadDelegate() {}
 
   // Overridden from GamepadDelegate:
-  MOCK_METHOD0(OnRemoved, void());
-  MOCK_METHOD3(OnAxis, void(int, double, base::TimeTicks));
-  MOCK_METHOD3(OnButton, void(int, bool, base::TimeTicks));
-  MOCK_METHOD1(OnFrame, void(base::TimeTicks));
+  MOCK_METHOD(void, OnRemoved, (), (override));
+  MOCK_METHOD(void,
+              OnAxis,
+              (int axis, double value, base::TimeTicks timestamp),
+              (override));
+  MOCK_METHOD(void,
+              OnButton,
+              (int button, bool pressed, base::TimeTicks timestamp),
+              (override));
+  MOCK_METHOD(void, OnFrame, (base::TimeTicks timestamp), (override));
+};
+
+class MockGamingSeatDelegate : public GamingSeatDelegate {
+ public:
+  MOCK_METHOD(bool,
+              CanAcceptGamepadEventsForSurface,
+              (Surface * surface),
+              (const, override));
+  MOCK_METHOD(void, GamepadAdded, (Gamepad & gamepad), (override));
+  MOCK_METHOD(void, Die, (), ());
+  void OnGamingSeatDestroying(GamingSeat*) override { delete this; }
+  ~MockGamingSeatDelegate() { Die(); }
 };
 
 class GamingSeatTest : public test::ExoTestBase {
@@ -89,7 +99,6 @@
 
  protected:
   std::unique_ptr<GamingSeat> gaming_seat_;
-
   DISALLOW_COPY_AND_ASSIGN(GamingSeatTest);
 };
 
@@ -109,44 +118,63 @@
       .WillOnce(testing::Return(true));
 
   InitializeGamingSeat(gaming_seat_delegate);
-  testing::StrictMock<MockGamepadDelegate> gamepad_delegate[6];
+  std::unique_ptr<MockGamepadDelegate> gamepad_delegates[6];
+  for (auto& delegate : gamepad_delegates)
+    delegate = std::make_unique<testing::StrictMock<MockGamepadDelegate>>();
 
   {  // Test sequence
     testing::InSequence s;
     // Connect 2 gamepads.
     EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
-        .WillOnce(testing::Return(&gamepad_delegate[0]))
-        .WillOnce(testing::Return(&gamepad_delegate[1]));
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[0]));
+        }));
+    EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[1]));
+        }));
     // Send frame to connected gamepad.
-    EXPECT_CALL(gamepad_delegate[0], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[1], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[0], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[1], OnFrame(testing::_)).Times(1);
     // Connect 3 more.
     EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
-        .WillOnce(testing::Return(&gamepad_delegate[2]))
-        .WillOnce(testing::Return(&gamepad_delegate[3]))
-        .WillOnce(testing::Return(&gamepad_delegate[4]));
-    // Send frame to all gamepads.
-    EXPECT_CALL(gamepad_delegate[0], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[1], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[2], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[3], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[4], OnFrame(testing::_)).Times(1);
-    // Disconnect gamepad 0 and gamepad 2 and connect a new gamepad.
-    EXPECT_CALL(gamepad_delegate[0], OnRemoved()).Times(1);
-    EXPECT_CALL(gamepad_delegate[2], OnRemoved()).Times(1);
-    EXPECT_CALL(gamepad_delegate[4], OnRemoved()).Times(1);
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[2]));
+        }));
     EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
-        .WillOnce(testing::Return(&gamepad_delegate[5]));
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[3]));
+        }));
+    EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[4]));
+        }));
     // Send frame to all gamepads.
-    EXPECT_CALL(gamepad_delegate[1], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[3], OnFrame(testing::_)).Times(1);
-    EXPECT_CALL(gamepad_delegate[5], OnFrame(testing::_)).Times(1);
-
-    // disconnect other gamepads
-    EXPECT_CALL(gamepad_delegate[1], OnRemoved()).Times(1);
-    EXPECT_CALL(gamepad_delegate[3], OnRemoved()).Times(1);
-    EXPECT_CALL(gamepad_delegate[5], OnRemoved()).Times(1);
+    EXPECT_CALL(*gamepad_delegates[0], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[1], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[2], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[3], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[4], OnFrame(testing::_)).Times(1);
+    // Disconnect gamepad 0 and gamepad 2 and connect a new gamepad.
+    EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
+        .WillOnce(testing::Invoke([&gamepad_delegates](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegates[5]));
+        }));
+    // Send frame to all gamepads.
+    EXPECT_CALL(*gamepad_delegates[1], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[3], OnFrame(testing::_)).Times(1);
+    EXPECT_CALL(*gamepad_delegates[5], OnFrame(testing::_)).Times(1);
   }
+
+  EXPECT_CALL(*gamepad_delegates[0], OnRemoved()).Times(1);
+  EXPECT_CALL(*gamepad_delegates[2], OnRemoved()).Times(1);
+  EXPECT_CALL(*gamepad_delegates[4], OnRemoved()).Times(1);
+  // The rest of gamepads should be disconnected after GamingSeat is
+  // destroyed.
+  EXPECT_CALL(*gamepad_delegates[1], OnRemoved()).Times(1);
+  EXPECT_CALL(*gamepad_delegates[3], OnRemoved()).Times(1);
+  EXPECT_CALL(*gamepad_delegates[5], OnRemoved()).Times(1);
+
   // Gamepad connected.
   UpdateGamepadDevice({0, 1});
   SendFrameToGamepads({0, 1});
@@ -154,8 +182,8 @@
   SendFrameToGamepads({0, 1, 2, 3, 4});
   UpdateGamepadDevice({1, 3, 5});
   SendFrameToGamepads({1, 2, 3, 4, 5});
-  UpdateGamepadDevice({});
   DestroyGamingSeat(gaming_seat_delegate);
+  UpdateGamepadDevice({});
 }
 
 TEST_F(GamingSeatTest, Timestamp) {
@@ -174,8 +202,8 @@
       .WillOnce(testing::Return(true));
 
   InitializeGamingSeat(gaming_seat_delegate);
-  testing::StrictMock<MockGamepadDelegate> gamepad_delegate;
-
+  auto gamepad_delegate =
+      std::make_unique<testing::StrictMock<MockGamepadDelegate>>();
   base::TimeTicks expected_time = base::TimeTicks::Now();
 
   {  // Test sequence
@@ -183,14 +211,18 @@
 
     // Connect gamepad.
     EXPECT_CALL(*gaming_seat_delegate, GamepadAdded(testing::_))
-        .WillOnce(testing::Return(&gamepad_delegate));
+        .WillOnce(testing::Invoke([&gamepad_delegate](auto& gamepad) {
+          gamepad.SetDelegate(std::move(gamepad_delegate));
+        }));
     // Send button to connected gamepad. Expect correct timestamp.
-    EXPECT_CALL(gamepad_delegate,
+    EXPECT_CALL(*gamepad_delegate,
                 OnButton(testing::_, testing::_, testing::Eq(expected_time)))
         .Times(1);
-    // Disconnect gamepad.
-    EXPECT_CALL(gamepad_delegate, OnRemoved()).Times(1);
   }
+
+  // Disconnect gamepad.
+  EXPECT_CALL(*gamepad_delegate, OnRemoved()).Times(1);
+
   // Gamepad connected.
   UpdateGamepadDevice({1});
   SendButtonToGamepads({1}, expected_time);
diff --git a/components/exo/wayland/server.cc b/components/exo/wayland/server.cc
index a34bb2d5..9eafe4f 100644
--- a/components/exo/wayland/server.cc
+++ b/components/exo/wayland/server.cc
@@ -181,7 +181,7 @@
                    bind_shell);
   wl_global_create(wl_display_.get(), &zcr_cursor_shapes_v1_interface, 1,
                    display_, bind_cursor_shapes);
-  wl_global_create(wl_display_.get(), &zcr_gaming_input_v2_interface, 1,
+  wl_global_create(wl_display_.get(), &zcr_gaming_input_v2_interface, 2,
                    display_, bind_gaming_input);
   wl_global_create(wl_display_.get(), &zcr_keyboard_configuration_v1_interface,
                    zcr_keyboard_configuration_v1_interface.version, display_,
diff --git a/components/exo/wayland/zcr_gaming_input.cc b/components/exo/wayland/zcr_gaming_input.cc
index a8d61c0..06b41af 100644
--- a/components/exo/wayland/zcr_gaming_input.cc
+++ b/components/exo/wayland/zcr_gaming_input.cc
@@ -12,7 +12,9 @@
 
 #include "base/feature_list.h"
 #include "base/macros.h"
+#include "components/exo/gamepad.h"
 #include "components/exo/gamepad_delegate.h"
+#include "components/exo/gamepad_observer.h"
 #include "components/exo/gaming_seat.h"
 #include "components/exo/gaming_seat_delegate.h"
 #include "components/exo/wayland/server_util.h"
@@ -36,12 +38,89 @@
 ////////////////////////////////////////////////////////////////////////////////
 // gaming_input_interface:
 
+// Handles the vibration requests sent by the client for a gamepad.
+class WaylandGamepadVibratorImpl : public GamepadObserver {
+ public:
+  explicit WaylandGamepadVibratorImpl(Gamepad* gamepad) : gamepad_(gamepad) {
+    gamepad_->AddObserver(this);
+  }
+
+  WaylandGamepadVibratorImpl(const WaylandGamepadVibratorImpl& other) = delete;
+  WaylandGamepadVibratorImpl& operator=(
+      const WaylandGamepadVibratorImpl& other) = delete;
+
+  ~WaylandGamepadVibratorImpl() override {
+    if (gamepad_)
+      gamepad_->RemoveObserver(this);
+  }
+
+  void OnVibrate(wl_array* duration_millis,
+                 wl_array* amplitudes,
+                 int32_t repeat) {
+    std::vector<int64_t> extracted_durations;
+    int64_t* p;
+    const uint8_t* duration_millis_end =
+        static_cast<uint8_t*>(duration_millis->data) + duration_millis->size;
+    for (p = static_cast<int64_t*>(duration_millis->data);
+         (const uint8_t*)p < duration_millis_end; p++) {
+      extracted_durations.emplace_back(*p);
+    }
+
+    const uint8_t* amplitudes_start = static_cast<uint8_t*>(amplitudes->data);
+    size_t amplitude_size = amplitudes->size / sizeof(uint8_t);
+    const uint8_t* amplitudes_end = amplitudes_start + amplitude_size;
+    std::vector<uint8_t> extracted_amplitudes(amplitudes_start, amplitudes_end);
+
+    if (gamepad_)
+      gamepad_->Vibrate(extracted_durations, extracted_amplitudes, repeat);
+  }
+
+  void OnCancelVibration() {
+    if (gamepad_)
+      gamepad_->CancelVibration();
+  }
+
+  // Overridden from GamepadObserver
+  void OnGamepadDestroying(Gamepad* gamepad) override {
+    DCHECK_EQ(gamepad_, gamepad);
+    gamepad_ = nullptr;
+  }
+
+ private:
+  Gamepad* gamepad_;
+};
+
+void gamepad_vibrator_vibrate(wl_client* client,
+                              wl_resource* resource,
+                              wl_array* duration_millis,
+                              wl_array* amplitudes,
+                              int32_t repeat) {
+  GetUserDataAs<WaylandGamepadVibratorImpl>(resource)->OnVibrate(
+      duration_millis, amplitudes, repeat);
+}
+
+void gamepad_vibrator_cancel_vibration(wl_client* client,
+                                       wl_resource* resource) {
+  GetUserDataAs<WaylandGamepadVibratorImpl>(resource)->OnCancelVibration();
+}
+
+void gamepad_vibrator_destroy(wl_client* client, wl_resource* resource) {
+  wl_resource_destroy(resource);
+}
+
+const struct zcr_gamepad_vibrator_v2_interface gamepad_vibrator_implementation =
+    {gamepad_vibrator_vibrate, gamepad_vibrator_cancel_vibration,
+     gamepad_vibrator_destroy};
+
 // Gamepad delegate class that forwards gamepad events to the client resource.
 class WaylandGamepadDelegate : public GamepadDelegate {
  public:
   explicit WaylandGamepadDelegate(wl_resource* gamepad_resource)
       : gamepad_resource_(gamepad_resource) {}
 
+  // The object should be deleted by OnRemoved().
+  ~WaylandGamepadDelegate() override = default;
+
   // If gamepad_resource_ is destroyed first, ResetGamepadResource will
   // be called to remove the resource from delegate, and delegate won't
   // do anything after that. If delegate is destructed first, it will
@@ -93,10 +172,33 @@
     wl_client_flush(client());
   }
 
- private:
-  // The object should be deleted by OnRemoved().
-  ~WaylandGamepadDelegate() override {}
+  void ConfigureDevice(Gamepad* gamepad) {
+    for (const auto& axis : gamepad->device.axes) {
+      zcr_gamepad_v2_send_axis_added(gamepad_resource_, axis.code,
+                                     axis.min_value, axis.max_value, axis.flat,
+                                     axis.fuzz, axis.resolution);
+    }
 
+    if (gamepad->device.supports_vibration_rumble &&
+        wl_resource_get_version(gamepad_resource_) >=
+            ZCR_GAMEPAD_V2_VIBRATOR_ADDED_SINCE_VERSION) {
+      wl_resource* gamepad_vibrator_resource =
+          wl_resource_create(wl_resource_get_client(gamepad_resource_),
+                             &zcr_gamepad_vibrator_v2_interface,
+                             wl_resource_get_version(gamepad_resource_), 0);
+
+      SetImplementation(gamepad_vibrator_resource,
+                        &gamepad_vibrator_implementation,
+                        std::make_unique<WaylandGamepadVibratorImpl>(gamepad));
+
+      zcr_gamepad_v2_send_vibrator_added(gamepad_resource_,
+                                         gamepad_vibrator_resource);
+    }
+
+    zcr_gamepad_v2_send_activated(gamepad_resource_);
+  }
+
+ private:
   // The client who own this gamepad instance.
   wl_client* client() const {
     return wl_resource_get_client(gamepad_resource_);
@@ -129,33 +231,28 @@
            wl_resource_get_client(surface_resource) ==
                wl_resource_get_client(gaming_seat_resource_);
   }
-  GamepadDelegate* GamepadAdded(const ui::GamepadDevice& device) override {
+  void GamepadAdded(Gamepad& gamepad) override {
     wl_resource* gamepad_resource =
         wl_resource_create(wl_resource_get_client(gaming_seat_resource_),
                            &zcr_gamepad_v2_interface,
                            wl_resource_get_version(gaming_seat_resource_), 0);
 
-    GamepadDelegate* gamepad_delegate =
-        new WaylandGamepadDelegate(gamepad_resource);
+    zcr_gaming_seat_v2_send_gamepad_added_with_device_info(
+        gaming_seat_resource_, gamepad_resource, gamepad.device.name.c_str(),
+        GetGamepadBusType(gamepad.device.type), gamepad.device.vendor_id,
+        gamepad.device.product_id, gamepad.device.version);
+
+    std::unique_ptr<WaylandGamepadDelegate> gamepad_delegate =
+        std::make_unique<WaylandGamepadDelegate>(gamepad_resource);
 
     wl_resource_set_implementation(
-        gamepad_resource, &gamepad_implementation, gamepad_delegate,
+        gamepad_resource, &gamepad_implementation, gamepad_delegate.get(),
         &WaylandGamepadDelegate::ResetGamepadResource);
 
-    zcr_gaming_seat_v2_send_gamepad_added_with_device_info(
-        gaming_seat_resource_, gamepad_resource, device.name.c_str(),
-        GetGamepadBusType(device.type), device.vendor_id, device.product_id,
-        device.version);
+    gamepad_delegate->ConfigureDevice(&gamepad);
+    gamepad.SetDelegate(std::move(gamepad_delegate));
 
-    for (const auto& axis : device.axes) {
-      zcr_gamepad_v2_send_axis_added(gamepad_resource, axis.code,
-                                     axis.min_value, axis.max_value, axis.flat,
-                                     axis.fuzz, axis.resolution);
-    }
-    zcr_gamepad_v2_send_activated(gamepad_resource);
     wl_client_flush(wl_resource_get_client(gaming_seat_resource_));
-
-    return gamepad_delegate;
   }
 
  private:
diff --git a/components/feed/core/v2/feed_stream_unittest.cc b/components/feed/core/v2/feed_stream_unittest.cc
index 7982324..e165758 100644
--- a/components/feed/core/v2/feed_stream_unittest.cc
+++ b/components/feed/core/v2/feed_stream_unittest.cc
@@ -19,6 +19,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/test/bind_test_util.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_run_loop_timeout.h"
 #include "base/test/simple_test_clock.h"
 #include "base/test/simple_test_tick_clock.h"
@@ -35,6 +36,7 @@
 #include "components/feed/core/v2/feed_network.h"
 #include "components/feed/core/v2/image_fetcher.h"
 #include "components/feed/core/v2/metrics_reporter.h"
+#include "components/feed/core/v2/prefs.h"
 #include "components/feed/core/v2/protocol_translator.h"
 #include "components/feed/core/v2/refresh_task_scheduler.h"
 #include "components/feed/core/v2/scheduling.h"
@@ -1396,11 +1398,22 @@
 }
 
 TEST_F(FeedStreamTest, ReadNetworkResponse) {
+  base::HistogramTester histograms;
   network_.InjectRealResponse();
   TestSurface surface(stream_.get());
   WaitForIdleTaskQueue();
 
   ASSERT_EQ("loading -> 10 slices", surface.DescribeUpdates());
+
+  // Verify we're processing some of the data on the request.
+
+  // The response has a privacy_notice_fulfilled=true.
+  histograms.ExpectUniqueSample("ContentSuggestions.Feed.NoticeCardFulfilled",
+                                1, 1);
+
+  // A request schedule with two entries was in the response.
+  RequestSchedule schedule = prefs::GetRequestSchedule(profile_prefs_);
+  EXPECT_EQ(std::vector<base::TimeDelta>({}), schedule.refresh_offsets);
 }
 
 TEST_F(FeedStreamTest, ClearAllAfterLoadResultsInRefresh) {
diff --git a/components/feed/core/v2/metrics_reporter.cc b/components/feed/core/v2/metrics_reporter.cc
index c00e9c7f..16acf11 100644
--- a/components/feed/core/v2/metrics_reporter.cc
+++ b/components/feed/core/v2/metrics_reporter.cc
@@ -453,6 +453,11 @@
                                 status);
 }
 
+void MetricsReporter::NoticeCardFulfilled(bool response_has_notice_card) {
+  base::UmaHistogramBoolean("ContentSuggestions.Feed.NoticeCardFulfilled",
+                            response_has_notice_card);
+}
+
 void MetricsReporter::SurfaceReceivedContent(SurfaceId surface_id) {
   ReportGetMoreIfNeeded(surface_id, true);
 }
diff --git a/components/feed/core/v2/metrics_reporter.h b/components/feed/core/v2/metrics_reporter.h
index 95e80f7a..8032517 100644
--- a/components/feed/core/v2/metrics_reporter.h
+++ b/components/feed/core/v2/metrics_reporter.h
@@ -116,6 +116,8 @@
   static void OnUploadActionsBatch(UploadActionsBatchStatus status);
   static void OnUploadActions(UploadActionsStatus status);
 
+  static void NoticeCardFulfilled(bool response_has_notice_card);
+
  private:
   base::WeakPtr<MetricsReporter> GetWeakPtr() {
     return weak_ptr_factory_.GetWeakPtr();
diff --git a/components/feed/core/v2/tasks/load_stream_task.cc b/components/feed/core/v2/tasks/load_stream_task.cc
index 370cd99..ae5a4a91 100644
--- a/components/feed/core/v2/tasks/load_stream_task.cc
+++ b/components/feed/core/v2/tasks/load_stream_task.cc
@@ -18,6 +18,7 @@
 #include "components/feed/core/proto/v2/wire/request.pb.h"
 #include "components/feed/core/v2/feed_network.h"
 #include "components/feed/core/v2/feed_stream.h"
+#include "components/feed/core/v2/metrics_reporter.h"
 #include "components/feed/core/v2/proto_util.h"
 #include "components/feed/core/v2/protocol_translator.h"
 #include "components/feed/core/v2/stream_model.h"
@@ -152,6 +153,11 @@
   if (!response_data.model_update_request)
     return Done(LoadStreamStatus::kProtoTranslationFailed);
 
+  MetricsReporter::NoticeCardFulfilled(result.response_body->feed_response()
+                                           .feed_response_metadata()
+                                           .chrome_feed_response_metadata()
+                                           .privacy_notice_fulfilled());
+
   loaded_new_content_from_network_ = true;
   stream_->GetStore()->OverwriteStream(
       std::make_unique<StreamModelUpdateRequest>(
diff --git a/components/feed/core/v2/testdata/response.textproto b/components/feed/core/v2/testdata/response.textproto
index 335ff0ff..04dc840 100644
--- a/components/feed/core/v2/testdata/response.textproto
+++ b/components/feed/core/v2/testdata/response.textproto
@@ -466,11 +466,17 @@
           seconds: 86308
           nanos: 822963644
         }
+        refresh_time_from_response_time {
+          seconds: 120000
+        }
       }
     }
   }
   feed_response_metadata {
-    response_time_ms: 1587056924
+    #response_time_ms: 1587056924
+    chrome_feed_response_metadata {
+      privacy_notice_fulfilled: true
+    }
   }
 }
 
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
index e798e6a..7da58e3e 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -480,11 +480,19 @@
     return;
   }
 
-  if (changed_to_user_input_in_progress && user_text_.empty() &&
-      base::FeatureList::IsEnabled(omnibox::kClobberIsZeroSuggestEntrypoint)) {
+  if (!is_keyword_selected() && changed_to_user_input_in_progress &&
+      user_text_.empty()) {
     // In the case the user enters user-input-in-progress mode by clearing
-    // everything (i.e. via Backspace), and the special flag is on, ask for
-    // ZeroSuggestions instead of the normal prefix (as-you-type) autocomplete.
+    // everything (i.e. via Backspace), ask for ZeroSuggestions instead of the
+    // normal prefix (as-you-type) autocomplete.
+    //
+    // We also check that no keyword is selected, as otherwise that breaks
+    // entering keyword mode via Ctrl+K.
+    //
+    // TODO(tommycli): The difference between a ZeroSuggest request and a normal
+    // prefix autocomplete request is getting fuzzier, and should be fully
+    // encapsulated by the AutocompleteInput::focus_type() member. We should
+    // merge these two calls soon, lest we confuse future developers.
     StartZeroSuggestRequest(/*user_clobbered_permanent_text=*/true);
   } else {
     // Otherwise run the normal prefix (as-you-type) autocomplete.
diff --git a/components/omnibox/browser/omnibox_pedal_concepts.h b/components/omnibox/browser/omnibox_pedal_concepts.h
index 6aebc84..0ea6abe 100644
--- a/components/omnibox/browser/omnibox_pedal_concepts.h
+++ b/components/omnibox/browser/omnibox_pedal_concepts.h
@@ -10,7 +10,7 @@
 // This value is generated during Pedal concept data processing, and written
 // to all data files as well as the source code here to ensure synchrony.
 // The runtime loaded data must match this version exactly or it won't load.
-constexpr int OMNIBOX_PEDAL_CONCEPTS_DATA_VERSION = 15453828;
+constexpr int OMNIBOX_PEDAL_CONCEPTS_DATA_VERSION = 15462706;
 
 // Unique identifiers for Pedals, used to bind loaded data to implementations.
 enum class OmniboxPedalId {
diff --git a/components/omnibox/browser/zero_suggest_provider.cc b/components/omnibox/browser/zero_suggest_provider.cc
index 1f0ac85..b586f75 100644
--- a/components/omnibox/browser/zero_suggest_provider.cc
+++ b/components/omnibox/browser/zero_suggest_provider.cc
@@ -624,16 +624,26 @@
     return false;
   }
 
-  // When the omnibox is empty, only allow zero suggest for the ChromeOS
-  // Launcher and NTP, unless the clobber flag is on.
-  //
-  // TODO(tommycli): Add more nuance here, likely with an omnibox_focus_type.
-  if (input_type == metrics::OmniboxInputType::EMPTY &&
-      !(page_class == metrics::OmniboxEventProto::CHROMEOS_APP_LIST ||
-        IsNTPPage(page_class) ||
-        base::FeatureList::IsEnabled(
-            omnibox::kClobberIsZeroSuggestEntrypoint))) {
-    return false;
+  if (input_type == metrics::OmniboxInputType::EMPTY) {
+    // Function that returns whether EMPTY input zero-suggest is allowed.
+    auto IsEmptyZeroSuggestAllowed = [&]() {
+      if (page_class == metrics::OmniboxEventProto::CHROMEOS_APP_LIST ||
+          IsNTPPage(page_class)) {
+        return true;
+      }
+
+      if (page_class == metrics::OmniboxEventProto::OTHER) {
+        return input.focus_type() == OmniboxFocusType::DELETED_PERMANENT_TEXT &&
+               base::FeatureList::IsEnabled(
+                   omnibox::kClobberTriggersContextualWebZeroSuggest);
+      }
+
+      return false;
+    };
+
+    // Return false if disallowed. Otherwise, proceed down to further checks.
+    if (!IsEmptyZeroSuggestAllowed())
+      return false;
   }
 
   // When omnibox contains pre-populated content, only show zero suggest for
diff --git a/components/omnibox/browser/zero_suggest_provider_unittest.cc b/components/omnibox/browser/zero_suggest_provider_unittest.cc
index 53f7223..33d15c4f 100644
--- a/components/omnibox/browser/zero_suggest_provider_unittest.cc
+++ b/components/omnibox/browser/zero_suggest_provider_unittest.cc
@@ -237,10 +237,21 @@
   // Enable on-clobber in addition to on-focus.
   {
     base::test::ScopedFeatureList features;
-    features.InitAndEnableFeature(omnibox::kClobberIsZeroSuggestEntrypoint);
+    features.InitAndEnableFeature(
+        omnibox::kClobberTriggersContextualWebZeroSuggest);
     EXPECT_FALSE(provider_->AllowZeroSuggestSuggestions(prefix_input));
     EXPECT_TRUE(provider_->AllowZeroSuggestSuggestions(on_focus_input));
     EXPECT_TRUE(provider_->AllowZeroSuggestSuggestions(on_clobber_input));
+
+    // Sanity check that we only affect the OTHER page classification.
+    AutocompleteInput on_clobber_serp(
+        base::string16(),
+        metrics::OmniboxEventProto::
+            SEARCH_RESULT_PAGE_DOING_SEARCH_TERM_REPLACEMENT,
+        TestSchemeClassifier());
+    on_clobber_serp.set_current_url(GURL(input_url));
+    on_clobber_serp.set_focus_type(OmniboxFocusType::DELETED_PERMANENT_TEXT);
+    EXPECT_FALSE(provider_->AllowZeroSuggestSuggestions(on_clobber_serp));
   }
 
   // Disable on-focus.
@@ -266,7 +277,7 @@
   {
     base::test::ScopedFeatureList features;
     features.InitWithFeatures(
-        {omnibox::kClobberIsZeroSuggestEntrypoint},
+        {omnibox::kClobberTriggersContextualWebZeroSuggest},
         {omnibox::kFocusGestureTriggersContextualWebZeroSuggest});
     EXPECT_FALSE(provider_->AllowZeroSuggestSuggestions(prefix_input));
     EXPECT_FALSE(provider_->AllowZeroSuggestSuggestions(on_focus_input));
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index 5161af4..6fe6155 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -213,12 +213,11 @@
                                             base::FEATURE_DISABLED_BY_DEFAULT};
 
 // If enabled, when the user clears the whole omnibox text (i.e. via Backspace),
-// Chrome will request ZeroSuggest suggestions. Note, this flag merely adds a
-// new ZeroSuggest entrypoint. ZeroSuggest still must be enabled on the proper
-// page classification (either by default or via a separate flag), or else this
-// flag will do nothing.
-const base::Feature kClobberIsZeroSuggestEntrypoint{
-    "OmniboxClobberIsZeroSuggestEntrypoint", base::FEATURE_DISABLED_BY_DEFAULT};
+// Chrome will request remote ZeroSuggest suggestions for the OTHER page
+// classification (contextual web).
+const base::Feature kClobberTriggersContextualWebZeroSuggest{
+    "OmniboxClobberTriggersContextualWebZeroSuggest",
+    base::FEATURE_DISABLED_BY_DEFAULT};
 
 // Disable this flag to prevent focus gestures (e.g. clicks, taps, Ctrl+L) from
 // triggering ZeroSuggest for the OTHER page classification (contextual web).
diff --git a/components/omnibox/common/omnibox_features.h b/components/omnibox/common/omnibox_features.h
index d3726bfe..858ec9f 100644
--- a/components/omnibox/common/omnibox_features.h
+++ b/components/omnibox/common/omnibox_features.h
@@ -53,7 +53,7 @@
 extern const base::Feature kDynamicMaxAutocomplete;
 
 // On-Focus Suggestions a.k.a. ZeroSuggest.
-extern const base::Feature kClobberIsZeroSuggestEntrypoint;
+extern const base::Feature kClobberTriggersContextualWebZeroSuggest;
 extern const base::Feature kFocusGestureTriggersContextualWebZeroSuggest;
 extern const base::Feature kOmniboxLocalZeroSuggestAgeThreshold;
 extern const base::Feature kOmniboxLocalZeroSuggestFrecencyRanking;
diff --git a/components/omnibox/resources/omnibox_pedal_concepts.json b/components/omnibox/resources/omnibox_pedal_concepts.json
index a25be63..ad7c758 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts.json
@@ -1,10 +1,234 @@
 {
   "schema": "pedals_translation_model",
   "schema_version": 1,
-  "time_generated": "2020-08-04T19:48:33.665131874+00:00",
+  "time_generated": "2020-08-10T23:46:42.165601123+00:00",
   "primary_language_code": "en",
   "locales": [
     {
+      "language_code": "am",
+      "tokenize_characters": " -",
+      "ignore_group": {
+        "required": false,
+        "single": false,
+        "synonyms": [
+          "በዚህ ውስጥ",
+          "እንዴት",
+          "ውስጥ",
+          "ለ"
+        ]
+      },
+      "pedals": [
+        {
+          "name": "CLEAR_BROWSING_DATA",
+          "groups": [
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "ማሰስ",
+                "chrome"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "አስወግድ",
+                "ደምስስ",
+                "ሰርዝ",
+                "አጥፋ",
+                "አጽዳ"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "መሸጎጫ",
+                "ኩኪዎች",
+                "ታሪክ",
+                "ውሂብ",
+                "መረጃ",
+                "መረጃ"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "MANAGE_PASSWORDS",
+          "groups": [
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "chrome"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "አቀናባሪ",
+                "አቀናብር",
+                "አስቀምጥ",
+                "ይመልከቱ",
+                "አርትዕ",
+                "አዘምን",
+                "ለውጥ",
+                "አሳይ"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "የይለፍ ቃላት",
+                "ምስክርነቶች",
+                "የይለፍ ቃል"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "UPDATE_CREDIT_CARD",
+          "groups": [
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "chrome"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "አቀናብር",
+                "አስቀምጥ",
+                "አዘምን",
+                "አርትዕ",
+                "ለውጥ"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "የክሬዲት ካርድ መረጃ",
+                "የክሬዲት ካርድ መረጃ",
+                "የመክፈያ ዘዴዎች",
+                "ክሬዲት ካርዶች",
+                "ክሬዲት ካርድ",
+                "የካርድ መረጃ",
+                "የካርድ መረጃ",
+                "ክፍያዎች",
+                "ካርዶች",
+                "ክፍያ"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "LAUNCH_INCOGNITO",
+          "groups": [
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "chrome"
+              ]
+            },
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "አስጀምር",
+                "አስገባ",
+                "ጀምር",
+                "ክፈት",
+                "ፍጠር"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "ማንነት የማያሳውቅ መስኮት",
+                "ማንነት የማያሳውቅ ሁነታ",
+                "ማንነት የማያሳውቅ ትር",
+                "ማንነት የማያሳውቅ",
+                "የግል መስኮት",
+                "የግል ሁነታ",
+                "የግል ትር"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "TRANSLATE",
+          "groups": [
+            {
+              "required": false,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "chrome"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "ቋንቋ ቀይር",
+                "ተርጉም"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "ይህ ገጽ",
+                "ገጽ",
+                "ይህ"
+              ]
+            }
+          ]
+        },
+        {
+          "name": "UPDATE_CHROME",
+          "groups": [
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "google chrome",
+                "አሳሽ",
+                "chrome"
+              ]
+            },
+            {
+              "required": true,
+              "single": true,
+              "synonyms": [
+                "አዘምን",
+                "አልቅ",
+                "ጫን"
+              ]
+            }
+          ]
+        }
+      ]
+    },
+    {
       "language_code": "de",
       "tokenize_characters": " -",
       "ignore_group": {
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_am.json b/components/omnibox/resources/omnibox_pedal_concepts_am.json
new file mode 100644
index 0000000..6f917e7
--- /dev/null
+++ b/components/omnibox/resources/omnibox_pedal_concepts_am.json
@@ -0,0 +1,482 @@
+{
+  "schema": "pedal_concepts_runtime",
+  "schema_version": 1,
+  "data_version": 15462706,
+  "tokenize_characters": " -",
+  "dictionary": [
+    "chrome",
+    "google",
+    "ሁነታ",
+    "ለ",
+    "ለውጥ",
+    "መረጃ",
+    "መስኮት",
+    "መሸጎጫ",
+    "ማሰስ",
+    "ማንነት",
+    "ምስክርነቶች",
+    "ሰርዝ",
+    "ቀይር",
+    "ቃላት",
+    "ቃል",
+    "ቋንቋ",
+    "በዚህ",
+    "ተርጉም",
+    "ታሪክ",
+    "ትር",
+    "አልቅ",
+    "አርትዕ",
+    "አሳሽ",
+    "አሳይ",
+    "አስቀምጥ",
+    "አስወግድ",
+    "አስጀምር",
+    "አስገባ",
+    "አቀናባሪ",
+    "አቀናብር",
+    "አዘምን",
+    "አጥፋ",
+    "አጽዳ",
+    "እንዴት",
+    "ኩኪዎች",
+    "ካርድ",
+    "ካርዶች",
+    "ክሬዲት",
+    "ክፈት",
+    "ክፍያ",
+    "ክፍያዎች",
+    "ውሂብ",
+    "ውስጥ",
+    "ዘዴዎች",
+    "የመክፈያ",
+    "የማያሳውቅ",
+    "የካርድ",
+    "የክሬዲት",
+    "የይለፍ",
+    "የግል",
+    "ይህ",
+    "ይመልከቱ",
+    "ደምስስ",
+    "ጀምር",
+    "ገጽ",
+    "ጫን",
+    "ፍጠር"
+  ],
+  "pedals": [
+    {
+      "name": "CLEAR_BROWSING_DATA",
+      "id": 1,
+      "groups": [
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              8
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              25
+            ],
+            [
+              52
+            ],
+            [
+              11
+            ],
+            [
+              31
+            ],
+            [
+              32
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              7
+            ],
+            [
+              34
+            ],
+            [
+              18
+            ],
+            [
+              41
+            ],
+            [
+              5
+            ],
+            [
+              5
+            ]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "MANAGE_PASSWORDS",
+      "id": 2,
+      "groups": [
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              28
+            ],
+            [
+              29
+            ],
+            [
+              24
+            ],
+            [
+              51
+            ],
+            [
+              21
+            ],
+            [
+              30
+            ],
+            [
+              4
+            ],
+            [
+              23
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              48,
+              13
+            ],
+            [
+              48,
+              14
+            ],
+            [
+              10
+            ]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "UPDATE_CREDIT_CARD",
+      "id": 3,
+      "groups": [
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              29
+            ],
+            [
+              24
+            ],
+            [
+              30
+            ],
+            [
+              21
+            ],
+            [
+              4
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              47,
+              35,
+              5
+            ],
+            [
+              47,
+              35,
+              5
+            ],
+            [
+              44,
+              43
+            ],
+            [
+              37,
+              36
+            ],
+            [
+              37,
+              35
+            ],
+            [
+              46,
+              5
+            ],
+            [
+              46,
+              5
+            ],
+            [
+              40
+            ],
+            [
+              36
+            ],
+            [
+              39
+            ]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "LAUNCH_INCOGNITO",
+      "id": 4,
+      "groups": [
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              26
+            ],
+            [
+              27
+            ],
+            [
+              53
+            ],
+            [
+              38
+            ],
+            [
+              56
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              9,
+              45,
+              6
+            ],
+            [
+              9,
+              45,
+              2
+            ],
+            [
+              9,
+              45,
+              19
+            ],
+            [
+              9,
+              45
+            ],
+            [
+              49,
+              6
+            ],
+            [
+              49,
+              2
+            ],
+            [
+              49,
+              19
+            ]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "TRANSLATE",
+      "id": 5,
+      "groups": [
+        {
+          "required": false,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              15,
+              12
+            ],
+            [
+              17
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              50,
+              54
+            ],
+            [
+              54
+            ],
+            [
+              50
+            ]
+          ]
+        }
+      ]
+    },
+    {
+      "name": "UPDATE_CHROME",
+      "id": 6,
+      "groups": [
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              1,
+              0
+            ],
+            [
+              22
+            ],
+            [
+              0
+            ]
+          ]
+        },
+        {
+          "required": true,
+          "single": true,
+          "synonyms": [
+            [
+              30
+            ],
+            [
+              20
+            ],
+            [
+              55
+            ]
+          ]
+        }
+      ]
+    }
+  ],
+  "ignore_group": {
+    "required": false,
+    "single": false,
+    "synonyms": [
+      [
+        16,
+        42
+      ],
+      [
+        33
+      ],
+      [
+        42
+      ],
+      [
+        3
+      ]
+    ]
+  },
+  "max_tokens": 32
+}
\ No newline at end of file
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_de.json b/components/omnibox/resources/omnibox_pedal_concepts_de.json
index ed0a798..4989f42 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts_de.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts_de.json
@@ -1,7 +1,7 @@
 {
   "schema": "pedal_concepts_runtime",
   "schema_version": 1,
-  "data_version": 15453828,
+  "data_version": 15462706,
   "tokenize_characters": " -",
   "dictionary": [
     "aktualisieren",
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_en.json b/components/omnibox/resources/omnibox_pedal_concepts_en.json
index 8ab1158..e3d0207 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts_en.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts_en.json
@@ -1,7 +1,7 @@
 {
   "schema": "pedal_concepts_runtime",
   "schema_version": 1,
-  "data_version": 15453828,
+  "data_version": 15462706,
   "tokenize_characters": " -",
   "dictionary": [
     "a",
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_fr.json b/components/omnibox/resources/omnibox_pedal_concepts_fr.json
index 3cd7387..7a6fe34 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts_fr.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts_fr.json
@@ -1,7 +1,7 @@
 {
   "schema": "pedal_concepts_runtime",
   "schema_version": 1,
-  "data_version": 15453828,
+  "data_version": 15462706,
   "tokenize_characters": " -",
   "dictionary": [
     "actualise",
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_ja.json b/components/omnibox/resources/omnibox_pedal_concepts_ja.json
index c2d5459..dfb4cbb9 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts_ja.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts_ja.json
@@ -1,7 +1,7 @@
 {
   "schema": "pedal_concepts_runtime",
   "schema_version": 1,
-  "data_version": 15453828,
+  "data_version": 15462706,
   "tokenize_characters": "",
   "dictionary": [
     " ",
diff --git a/components/omnibox/resources/omnibox_pedal_concepts_zh-CN.json b/components/omnibox/resources/omnibox_pedal_concepts_zh-CN.json
index bb37db9..5742028 100644
--- a/components/omnibox/resources/omnibox_pedal_concepts_zh-CN.json
+++ b/components/omnibox/resources/omnibox_pedal_concepts_zh-CN.json
@@ -1,7 +1,7 @@
 {
   "schema": "pedal_concepts_runtime",
   "schema_version": 1,
-  "data_version": 15453828,
+  "data_version": 15462706,
   "tokenize_characters": "",
   "dictionary": [
     " ",
diff --git a/components/omnibox/resources/omnibox_resources.grd b/components/omnibox/resources/omnibox_resources.grd
index 00b84a4..ca7422d 100644
--- a/components/omnibox/resources/omnibox_resources.grd
+++ b/components/omnibox/resources/omnibox_resources.grd
@@ -110,6 +110,9 @@
   <release seq="1" allow_pseudo="false">
     <includes>
       <!-- These resources do not require translation or further processing because they are already handled by a separate localization process. -->
+      <if expr="lang == 'am'">
+        <include name="IDR_OMNIBOX_PEDAL_CONCEPTS" file="omnibox_pedal_concepts_am.json" type="BINDATA" compress="gzip" />
+      </if>
       <if expr="lang == 'de'">
         <include name="IDR_OMNIBOX_PEDAL_CONCEPTS" file="omnibox_pedal_concepts_de.json" type="BINDATA" compress="gzip" />
       </if>
@@ -125,7 +128,7 @@
       <if expr="lang == 'zh-CN'">
         <include name="IDR_OMNIBOX_PEDAL_CONCEPTS" file="omnibox_pedal_concepts_zh-CN.json" type="BINDATA" compress="gzip" />
       </if>
-      <if expr="lang not in ['de', 'en', 'fr', 'ja', 'zh-CN']">
+      <if expr="lang not in ['am', 'de', 'en', 'fr', 'ja', 'zh-CN']">
         <!-- Fall back to English for unsupported languages. -->
         <include name="IDR_OMNIBOX_PEDAL_CONCEPTS" file="omnibox_pedal_concepts_en.json" type="BINDATA" compress="gzip" />
       </if>
diff --git a/components/optimization_guide/optimization_guide_decider.h b/components/optimization_guide/optimization_guide_decider.h
index eddda11c..4da73d36 100644
--- a/components/optimization_guide/optimization_guide_decider.h
+++ b/components/optimization_guide/optimization_guide_decider.h
@@ -85,6 +85,9 @@
 
   // Returns whether |optimization_type| can be applied for |url|. This should
   // only be called for main frame navigations or future main frame navigations.
+  //
+  // Note: DO NOT USE this method if you intend to opt into the Optimization
+  // Guide's autotuning framework at any point.
   virtual OptimizationGuideDecision CanApplyOptimization(
       const GURL& url,
       proto::OptimizationType optimization_type,
diff --git a/components/optimization_guide/proto/hints.proto b/components/optimization_guide/proto/hints.proto
index 267776a..eeb6b08 100644
--- a/components/optimization_guide/proto/hints.proto
+++ b/components/optimization_guide/proto/hints.proto
@@ -192,6 +192,10 @@
   // same name, the optimization will be disabled and skipped for that client.
   // An empty name is not experimental.
   optional string excluded_experiment_name = 5;
+  // The version of the tuning group for the optimization type.
+  //
+  // This will only be populated if this optimization is being autotuned.
+  optional uint64 tuning_version = 6;
   // The metadata associated with the optimization type.
   //
   // It is expected that the client and server have agreed upon the appropriate
diff --git a/components/password_manager/core/browser/change_password_url_service.h b/components/password_manager/core/browser/change_password_url_service.h
index add254f..e92f97f 100644
--- a/components/password_manager/core/browser/change_password_url_service.h
+++ b/components/password_manager/core/browser/change_password_url_service.h
@@ -5,25 +5,21 @@
 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CHANGE_PASSWORD_URL_SERVICE_H_
 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CHANGE_PASSWORD_URL_SERVICE_H_
 
-#include "base/callback_forward.h"
 #include "components/keyed_service/core/keyed_service.h"
 
 class GURL;
 
-namespace url {
-class Origin;
-}
-
 namespace password_manager {
 
 class ChangePasswordUrlService : public KeyedService {
  public:
-  using UrlCallback = base::OnceCallback<void(GURL)>;
-  // Initializes the service.
-  virtual void Initialize() = 0;
-  // Returns the change password URL for `origin` via `callback`.
-  virtual void GetChangePasswordUrl(const url::Origin& origin,
-                                    UrlCallback callback) = 0;
+  // Prefetch the change password URLs that point to the password change form
+  // from gstatic.
+  virtual void PrefetchURLs() = 0;
+  // Returns a change password url for a given |origin| using eTLD+1. If no
+  // override is available or the fetch is not completed yet an empty GURL is
+  // returned.
+  virtual GURL GetChangePasswordUrl(const GURL& url) = 0;
 };
 
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/change_password_url_service_impl.cc b/components/password_manager/core/browser/change_password_url_service_impl.cc
index 5da815c..36d8f44 100644
--- a/components/password_manager/core/browser/change_password_url_service_impl.cc
+++ b/components/password_manager/core/browser/change_password_url_service_impl.cc
@@ -8,20 +8,19 @@
 #include "base/callback.h"
 #include "base/containers/flat_map.h"
 #include "base/json/json_reader.h"
+#include "base/timer/elapsed_timer.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+#include "net/base/url_util.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "url/gurl.h"
-#include "url/origin.h"
 
 namespace {
 
 using network::SimpleURLLoader;
 
 constexpr size_t kMaxDownloadSize = 50 * 1024;
-constexpr int kMaxRetries = 3;
-constexpr base::TimeDelta kFetchTimeout = base::TimeDelta::FromSeconds(3);
 }  // namespace
 
 namespace password_manager {
@@ -36,7 +35,7 @@
 
 ChangePasswordUrlServiceImpl::~ChangePasswordUrlServiceImpl() = default;
 
-void ChangePasswordUrlServiceImpl::Initialize() {
+void ChangePasswordUrlServiceImpl::PrefetchURLs() {
   if (started_fetching_) {
     return;
   }
@@ -92,11 +91,7 @@
         })");
   url_loader_ =
       SimpleURLLoader::Create(std::move(resource_request), traffic_annotation);
-  url_loader_->SetRetryOptions(kMaxRetries,
-                               SimpleURLLoader::RETRY_ON_5XX |
-                                   SimpleURLLoader::RETRY_ON_NETWORK_CHANGE |
-                                   SimpleURLLoader::RETRY_ON_NAME_NOT_RESOLVED);
-  url_loader_->SetTimeoutDuration(kFetchTimeout);
+
   // Binding the callback to |this| is safe, because the navigationthrottle
   // defers if the request is not received yet. Thereby the throttle still exist
   // when the response arrives.
@@ -107,15 +102,17 @@
       kMaxDownloadSize);
 }
 
-void ChangePasswordUrlServiceImpl::GetChangePasswordUrl(
-    const url::Origin& origin,
-    UrlCallback callback) {
-  DCHECK(started_fetching_) << "Call Initialize() before.";
-  if (fetch_complete_) {
-    std::move(callback).Run(ChangePasswordUrlFor(origin));
-  } else {
-    url_callbacks_.emplace_back(origin, std::move(callback));
+GURL ChangePasswordUrlServiceImpl::GetChangePasswordUrl(const GURL& url) {
+  DCHECK(started_fetching_) << "Call PrefetchURLs() before.";
+  std::string domain_and_registry =
+      net::registry_controlled_domains::GetDomainAndRegistry(
+          url, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+  auto it = change_password_url_map_.find(domain_and_registry);
+  if (it != change_password_url_map_.end()) {
+    return it->second;
   }
+  // Fallback if no valid change-password url available no response available.
+  return GURL();
 }
 
 void ChangePasswordUrlServiceImpl::OnFetchComplete(
@@ -136,24 +133,6 @@
       }
     }
   }
-
-  for (auto& url_callback : std::exchange(url_callbacks_, {})) {
-    GURL url = ChangePasswordUrlFor(url_callback.first);
-    std::move(url_callback.second).Run(std::move(url));
-  }
-}
-
-GURL ChangePasswordUrlServiceImpl::ChangePasswordUrlFor(
-    const url::Origin& origin) {
-  std::string domain_and_registry =
-      net::registry_controlled_domains::GetDomainAndRegistry(
-          origin, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
-  auto it = change_password_url_map_.find(domain_and_registry);
-  if (it != change_password_url_map_.end()) {
-    return it->second;
-  }
-  // Fallback if no valid change-password url available or request failed.
-  return origin.GetURL();
 }
 
 }  // namespace password_manager
diff --git a/components/password_manager/core/browser/change_password_url_service_impl.h b/components/password_manager/core/browser/change_password_url_service_impl.h
index 85e1ec28..e1985a7 100644
--- a/components/password_manager/core/browser/change_password_url_service_impl.h
+++ b/components/password_manager/core/browser/change_password_url_service_impl.h
@@ -19,10 +19,6 @@
 class GURL;
 class PrefService;
 
-namespace url {
-class Origin;
-}
-
 namespace network {
 class SharedURLLoaderFactory;
 }
@@ -37,11 +33,9 @@
       PrefService* pref_service);
   ~ChangePasswordUrlServiceImpl() override;
 
-  void Initialize() override;
-  // When the gstatic response arrives the callback is called with the override
-  // url for the given |url|. If no override is there the origin is returned.
-  void GetChangePasswordUrl(const url::Origin& origin,
-                            UrlCallback callback) override;
+  // ChangePasswordUrlService:
+  void PrefetchURLs() override;
+  GURL GetChangePasswordUrl(const GURL& url) override;
 
   static constexpr char kChangePasswordUrlOverrideUrl[] =
       "https://www.gstatic.com/chrome/password-manager/"
@@ -50,9 +44,6 @@
  private:
   // Callback for the the request to gstatic.
   void OnFetchComplete(std::unique_ptr<std::string> response_body);
-  // Retrieves the url override from the |change_password_url_map_| for a given
-  // origin using eTLD+1. The origin is returned when no override is available.
-  GURL ChangePasswordUrlFor(const url::Origin& origin);
 
   // Stores if the request is already started to only fetch once.
   bool started_fetching_ = false;
@@ -60,9 +51,6 @@
   bool fetch_complete_ = false;
   // Stores the JSON result for the url overrides.
   base::flat_map<std::string, GURL> change_password_url_map_;
-  // Stores the callbacks that are waiting for the request to finish.
-  std::vector<std::pair<url::Origin, base::OnceCallback<void(GURL)>>>
-      url_callbacks_;
   // URL loader object for the gstatic request.
   std::unique_ptr<network::SimpleURLLoader> url_loader_;
   // SharedURLLoaderFactory for the gstatic request, argument in the
diff --git a/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc b/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc
index e29893c..b32cdf6 100644
--- a/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc
+++ b/components/password_manager/core/browser/change_password_url_service_impl_unittest.cc
@@ -36,15 +36,18 @@
         password_manager::prefs::kCredentialsEnableService, true);
   }
 
-  // Test the bevahiour for a given |url| and compares the result to the given
-  // |expected_url| in the callback.
-  void TestOverride(GURL url, GURL expected_url);
+  // Fetches the url overrides and waits until the response arrived.
+  void PrefetchAndWaitUntilDone();
 
   void DisablePasswordManagerEnabledPolicy() {
     test_pref_service_.SetBoolean(
         password_manager::prefs::kCredentialsEnableService, false);
   }
 
+  GURL GetChangePasswordUrl(const GURL& url) {
+    return change_password_url_service_.GetChangePasswordUrl(url);
+  }
+
   void ClearMockResponses() { test_url_loader_factory_.ClearResponses(); }
 
  private:
@@ -59,50 +62,45 @@
       test_shared_loader_factory_, &test_pref_service_};
 };
 
-void ChangePasswordUrlServiceTest::TestOverride(GURL url, GURL expected_url) {
-  change_password_url_service_.Initialize();
-
-  base::MockCallback<password_manager::ChangePasswordUrlService::UrlCallback>
-      callback;
-  EXPECT_CALL(callback, Run(expected_url));
-  change_password_url_service_.GetChangePasswordUrl(url::Origin::Create(url),
-                                                    callback.Get());
-  // Retry option is set to 3 times with timeout of 3s -> 9s. One added second
-  // is no problem because the |task_environment_| is still executing in the
-  // correct order and does not skip tasks.
-  task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(10));
+void ChangePasswordUrlServiceTest::PrefetchAndWaitUntilDone() {
+  change_password_url_service_.PrefetchURLs();
   task_environment_.RunUntilIdle();
 }
 
 TEST_F(ChangePasswordUrlServiceTest, eTLDLookup) {
   // TODO(crbug.com/1086141): If possible mock eTLD registry to ensure sites are
   // listed.
-  TestOverride(GURL("https://google.com/foo"),
-               GURL("https://google.com/change-password"));
-  TestOverride(GURL("https://a.google.com/foo"),
-               GURL("https://google.com/change-password"));
+  PrefetchAndWaitUntilDone();
 
-  TestOverride(GURL("https://web.app"), GURL("https://web.app"));
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")),
+            GURL("https://google.com/change-password"));
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://a.google.com/foo")),
+            GURL("https://google.com/change-password"));
 
-  TestOverride(GURL("https://netlify.com"), GURL("https://netlify.com"));
-  TestOverride(GURL("https://a.netlify.com"),
-               GURL("https://a.netlify.com/change-password"));
-  TestOverride(GURL("https://b.netlify.com"), GURL("https://b.netlify.com"));
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://web.app")), GURL());
 
-  TestOverride(GURL("https://notlisted.com/foo"),
-               GURL("https://notlisted.com"));
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://netlify.com")), GURL());
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://a.netlify.com")),
+            GURL("https://a.netlify.com/change-password"));
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://b.netlify.com")), GURL());
+
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://notlisted.com/foo")), GURL());
 }
 
 TEST_F(ChangePasswordUrlServiceTest, PassworManagerPolicyDisabled) {
   DisablePasswordManagerEnabledPolicy();
 
-  TestOverride(GURL("https://google.com/foo"), GURL("https://google.com/"));
+  PrefetchAndWaitUntilDone();
+
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL());
 }
 
 TEST_F(ChangePasswordUrlServiceTest, NetworkRequestFails) {
   ClearMockResponses();
 
-  TestOverride(GURL("https://google.com/foo"), GURL("https://google.com/"));
+  PrefetchAndWaitUntilDone();
+
+  EXPECT_EQ(GetChangePasswordUrl(GURL("https://google.com/foo")), GURL());
 }
 
 }  // namespace password_manager
diff --git a/components/payments/content/BUILD.gn b/components/payments/content/BUILD.gn
index e7f02624..53bb352 100644
--- a/components/payments/content/BUILD.gn
+++ b/components/payments/content/BUILD.gn
@@ -6,6 +6,8 @@
   sources = [
     "android_app_communication.cc",
     "android_app_communication.h",
+    "android_payment_app.cc",
+    "android_payment_app.h",
     "autofill_payment_app.cc",
     "autofill_payment_app.h",
     "autofill_payment_app_factory.cc",
@@ -153,6 +155,7 @@
   sources = [
     "android_app_communication_test_support.h",
     "android_app_communication_unittest.cc",
+    "android_payment_app_unittest.cc",
     "payment_method_manifest_table_unittest.cc",
     "service_worker_payment_app_finder_unittest.cc",
     "test_content_payment_request_delegate.cc",
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentAppFactoryParams.java b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentAppFactoryParams.java
index fa15ba7..911fc24 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentAppFactoryParams.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentAppFactoryParams.java
@@ -75,4 +75,13 @@
     default PaymentRequestSpec getSpec() {
         return null;
     }
+
+    /**
+     * @return The Android package name of the Trusted Web Activity that invoked Chrome, if any.
+     * Otherwise null or empty string.
+     */
+    @Nullable
+    default String getTwaPackageName() {
+        return null;
+    }
 }
diff --git a/components/payments/content/android_payment_app.cc b/components/payments/content/android_payment_app.cc
new file mode 100644
index 0000000..64b3720
--- /dev/null
+++ b/components/payments/content/android_payment_app.cc
@@ -0,0 +1,164 @@
+// Copyright 2020 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/payments/content/android_payment_app.h"
+
+#include <utility>
+
+#include "components/payments/core/native_error_strings.h"
+#include "components/payments/core/payer_data.h"
+
+namespace payments {
+
+AndroidPaymentApp::AndroidPaymentApp(
+    const std::set<std::string>& payment_method_names,
+    const std::map<std::string, std::set<std::string>>& stringified_method_data,
+    const GURL& top_level_origin,
+    const GURL& payment_request_origin,
+    const std::string& payment_request_id,
+    std::unique_ptr<AndroidAppDescription> description,
+    base::WeakPtr<AndroidAppCommunication> communication)
+    : PaymentApp(/*icon_resource_id=*/0, PaymentApp::Type::NATIVE_MOBILE_APP),
+      stringified_method_data_(stringified_method_data),
+      top_level_origin_(top_level_origin),
+      payment_request_origin_(payment_request_origin),
+      payment_request_id_(payment_request_id),
+      description_(std::move(description)),
+      communication_(communication) {
+  DCHECK(!payment_method_names.empty());
+  DCHECK_EQ(payment_method_names.size(), stringified_method_data_.size());
+  DCHECK_EQ(*payment_method_names.begin(),
+            stringified_method_data_.begin()->first);
+  DCHECK(description_);
+  DCHECK(!description_->package.empty());
+  DCHECK_EQ(1U, description_->service_names.size());
+  DCHECK(!description_->service_names.front().empty());
+  DCHECK_EQ(1U, description_->activities.size());
+  DCHECK(!description_->activities.front()->name.empty());
+
+  app_method_names_ = payment_method_names;
+}
+
+AndroidPaymentApp::~AndroidPaymentApp() = default;
+
+void AndroidPaymentApp::InvokePaymentApp(Delegate* delegate) {
+  // Browser is closing, so no need to invoke a callback.
+  if (!communication_)
+    return;
+
+  communication_->InvokePaymentApp(
+      description_->package, description_->activities.front()->name,
+      stringified_method_data_, top_level_origin_, payment_request_origin_,
+      payment_request_id_,
+      base::BindOnce(&AndroidPaymentApp::OnPaymentAppResponse,
+                     weak_ptr_factory_.GetWeakPtr(), delegate));
+}
+
+bool AndroidPaymentApp::IsCompleteForPayment() const {
+  return true;
+}
+
+uint32_t AndroidPaymentApp::GetCompletenessScore() const {
+  return 0;
+}
+
+bool AndroidPaymentApp::CanPreselect() const {
+  return true;
+}
+
+base::string16 AndroidPaymentApp::GetMissingInfoLabel() const {
+  NOTREACHED();
+  return base::string16();
+}
+
+bool AndroidPaymentApp::HasEnrolledInstrument() const {
+  return true;
+}
+
+void AndroidPaymentApp::RecordUse() {
+  NOTIMPLEMENTED();
+}
+
+bool AndroidPaymentApp::NeedsInstallation() const {
+  return false;
+}
+
+std::string AndroidPaymentApp::GetId() const {
+  return description_->package;
+}
+
+base::string16 AndroidPaymentApp::GetLabel() const {
+  return base::string16();
+}
+
+base::string16 AndroidPaymentApp::GetSublabel() const {
+  return base::string16();
+}
+
+const SkBitmap* AndroidPaymentApp::icon_bitmap() const {
+  return nullptr;
+}
+
+bool AndroidPaymentApp::IsValidForModifier(
+    const std::string& method,
+    bool supported_networks_specified,
+    const std::set<std::string>& supported_networks) const {
+  bool is_valid = false;
+  IsValidForPaymentMethodIdentifier(method, &is_valid);
+  return is_valid;
+}
+
+base::WeakPtr<PaymentApp> AndroidPaymentApp::AsWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
+bool AndroidPaymentApp::HandlesShippingAddress() const {
+  return false;
+}
+
+bool AndroidPaymentApp::HandlesPayerName() const {
+  return false;
+}
+
+bool AndroidPaymentApp::HandlesPayerEmail() const {
+  return false;
+}
+
+bool AndroidPaymentApp::HandlesPayerPhone() const {
+  return false;
+}
+
+bool AndroidPaymentApp::IsWaitingForPaymentDetailsUpdate() const {
+  return false;
+}
+
+void AndroidPaymentApp::UpdateWith(
+    mojom::PaymentRequestDetailsUpdatePtr details_update) {
+  // TODO(crbug.com/1022512): Support payment method, shipping address, and
+  // shipping option change events.
+}
+
+void AndroidPaymentApp::OnPaymentDetailsNotUpdated() {}
+
+void AndroidPaymentApp::OnPaymentAppResponse(
+    Delegate* delegate,
+    const base::Optional<std::string>& error_message,
+    bool is_activity_result_ok,
+    const std::string& payment_method_identifier,
+    const std::string& stringified_details) {
+  if (error_message.has_value()) {
+    delegate->OnInstrumentDetailsError(error_message.value());
+    return;
+  }
+
+  if (!is_activity_result_ok) {
+    delegate->OnInstrumentDetailsError(errors::kUserClosedPaymentApp);
+    return;
+  }
+
+  delegate->OnInstrumentDetailsReady(payment_method_identifier,
+                                     stringified_details, PayerData());
+}
+
+}  // namespace payments
diff --git a/components/payments/content/android_payment_app.h b/components/payments/content/android_payment_app.h
new file mode 100644
index 0000000..a4b8cc7a
--- /dev/null
+++ b/components/payments/content/android_payment_app.h
@@ -0,0 +1,94 @@
+// Copyright 2020 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_PAYMENTS_CONTENT_ANDROID_PAYMENT_APP_H_
+#define COMPONENTS_PAYMENTS_CONTENT_ANDROID_PAYMENT_APP_H_
+
+#include <memory>
+#include <set>
+#include <string>
+
+#include "base/memory/weak_ptr.h"
+#include "base/optional.h"
+#include "components/payments/content/android_app_communication.h"
+#include "components/payments/content/payment_app.h"
+#include "components/payments/core/android_app_description.h"
+#include "url/gurl.h"
+
+namespace payments {
+
+// A cross-platform way to invoke an Android payment app.
+class AndroidPaymentApp : public PaymentApp {
+ public:
+  // Creates an instance of AndroidPaymentApp.
+  //
+  // The |payment_method_names| is the set of payment method identifiers
+  // supported by this app, e.g., ["https://example1.com",
+  // "https://example2.com"]. This set should not be empty.
+  //
+  // The |stringified_method_data| is a mapping from payment method identifiers
+  // that this app can handle to the method-specific data provided by the
+  // merchant. The set of keys should match exactly the |payment_method_names|.
+  // It is the responsibility of the creator of AndroidPaymentApp to filter out
+  // the data from merchant that is not in |payment_method_names|.
+  AndroidPaymentApp(const std::set<std::string>& payment_method_names,
+                    const std::map<std::string, std::set<std::string>>&
+                        stringified_method_data,
+                    const GURL& top_level_origin,
+                    const GURL& payment_request_origin,
+                    const std::string& payment_request_id,
+                    std::unique_ptr<AndroidAppDescription> description,
+                    base::WeakPtr<AndroidAppCommunication> communication);
+  ~AndroidPaymentApp() override;
+
+  AndroidPaymentApp(const AndroidPaymentApp& other) = delete;
+  AndroidPaymentApp& operator=(const AndroidPaymentApp& other) = delete;
+
+  // PaymentApp implementation.
+  void InvokePaymentApp(Delegate* delegate) override;
+  bool IsCompleteForPayment() const override;
+  uint32_t GetCompletenessScore() const override;
+  bool CanPreselect() const override;
+  base::string16 GetMissingInfoLabel() const override;
+  bool HasEnrolledInstrument() const override;
+  void RecordUse() override;
+  bool NeedsInstallation() const override;
+  std::string GetId() const override;
+  base::string16 GetLabel() const override;
+  base::string16 GetSublabel() const override;
+  const SkBitmap* icon_bitmap() const override;
+  bool IsValidForModifier(
+      const std::string& method,
+      bool supported_networks_specified,
+      const std::set<std::string>& supported_networks) const override;
+  base::WeakPtr<PaymentApp> AsWeakPtr() override;
+  bool HandlesShippingAddress() const override;
+  bool HandlesPayerName() const override;
+  bool HandlesPayerEmail() const override;
+  bool HandlesPayerPhone() const override;
+  bool IsWaitingForPaymentDetailsUpdate() const override;
+  void UpdateWith(
+      mojom::PaymentRequestDetailsUpdatePtr details_update) override;
+  void OnPaymentDetailsNotUpdated() override;
+
+ private:
+  void OnPaymentAppResponse(Delegate* delegate,
+                            const base::Optional<std::string>& error_message,
+                            bool is_activity_result_ok,
+                            const std::string& payment_method_identifier,
+                            const std::string& stringified_details);
+
+  const std::map<std::string, std::set<std::string>> stringified_method_data_;
+  const GURL top_level_origin_;
+  const GURL payment_request_origin_;
+  const std::string payment_request_id_;
+  const std::unique_ptr<AndroidAppDescription> description_;
+  base::WeakPtr<AndroidAppCommunication> communication_;
+
+  base::WeakPtrFactory<AndroidPaymentApp> weak_ptr_factory_{this};
+};
+
+}  // namespace payments
+
+#endif  // COMPONENTS_PAYMENTS_CONTENT_ANDROID_PAYMENT_APP_H_
diff --git a/components/payments/content/android_payment_app_unittest.cc b/components/payments/content/android_payment_app_unittest.cc
new file mode 100644
index 0000000..0b1f445
--- /dev/null
+++ b/components/payments/content/android_payment_app_unittest.cc
@@ -0,0 +1,163 @@
+// Copyright 2020 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/payments/content/android_payment_app.h"
+
+#include <map>
+#include <memory>
+#include <set>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/optional.h"
+#include "components/payments/content/android_app_communication.h"
+#include "components/payments/content/android_app_communication_test_support.h"
+#include "components/payments/core/android_app_description.h"
+#include "components/payments/core/method_strings.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace payments {
+namespace {
+
+class AndroidPaymentAppTest : public testing::Test,
+                              public PaymentApp::Delegate {
+ public:
+  static std::unique_ptr<AndroidPaymentApp> CreateAndroidPaymentApp(
+      base::WeakPtr<AndroidAppCommunication> communication) {
+    std::set<std::string> payment_method_names;
+    payment_method_names.insert(methods::kGooglePlayBilling);
+    std::map<std::string, std::set<std::string>> stringified_method_data;
+    stringified_method_data[methods::kGooglePlayBilling].insert("{}");
+    auto description = std::make_unique<AndroidAppDescription>();
+    description->package = "com.example.app";
+    description->service_names.push_back("com.example.app.Service");
+    description->activities.emplace_back(
+        std::make_unique<AndroidActivityDescription>());
+    description->activities.back()->name = "com.example.app.Activity";
+    description->activities.back()->default_payment_method =
+        methods::kGooglePlayBilling;
+
+    return std::make_unique<AndroidPaymentApp>(
+        payment_method_names, stringified_method_data,
+        GURL("https://top-level-origin.com"),
+        GURL("https://payment-request-origin.com"), "payment-request-id",
+        std::move(description), communication);
+  }
+
+  AndroidPaymentAppTest()
+      : support_(AndroidAppCommunicationTestSupport::Create()) {}
+
+  ~AndroidPaymentAppTest() override = default;
+
+  AndroidPaymentAppTest(const AndroidPaymentAppTest& other) = delete;
+  AndroidPaymentAppTest& operator=(const AndroidPaymentAppTest& other) = delete;
+
+  // PaymentApp::Delegate implementation.
+  void OnInstrumentDetailsReady(const std::string& method_name,
+                                const std::string& stringified_details,
+                                const PayerData& payer_data) override {
+    method_name_ = method_name;
+    stringified_details_ = stringified_details;
+  }
+
+  // PaymentApp::Delegate implementation.
+  void OnInstrumentDetailsError(const std::string& error_message) override {
+    error_message_ = error_message;
+  }
+
+  std::unique_ptr<AndroidAppCommunicationTestSupport> support_;
+  std::unique_ptr<AndroidAppCommunicationTestSupport::ScopedInitialization>
+      scoped_initialization_;
+  base::WeakPtr<AndroidAppCommunication> communication_;
+  std::string method_name_;
+  std::string stringified_details_;
+  std::string error_message_;
+};
+
+TEST_F(AndroidPaymentAppTest, BrowserShutdown) {
+  // Explicitly do not initialize AndroidAppCommunication. This can happen
+  // during browser shutdown.
+  scoped_initialization_ = support_->CreateScopedInitialization();
+
+  support_->ExpectNoPaymentAppInvoke();
+
+  auto app = CreateAndroidPaymentApp(communication_);
+  app->InvokePaymentApp(/*delegate=*/this);
+
+  EXPECT_TRUE(error_message_.empty());
+  EXPECT_TRUE(method_name_.empty());
+  EXPECT_TRUE(stringified_details_.empty());
+}
+
+TEST_F(AndroidPaymentAppTest, UnableToCommunicateToAndroidApps) {
+  communication_ =
+      AndroidAppCommunication::GetForBrowserContext(support_->context());
+  communication_->SetForTesting();
+  // Explicitly do not create ScopedInitialization.
+
+  support_->ExpectNoPaymentAppInvoke();
+
+  auto app = CreateAndroidPaymentApp(communication_);
+  app->InvokePaymentApp(/*delegate=*/this);
+
+  EXPECT_EQ("Unable to invoke Android apps.", error_message_);
+  EXPECT_TRUE(method_name_.empty());
+  EXPECT_TRUE(stringified_details_.empty());
+}
+
+TEST_F(AndroidPaymentAppTest, OnInstrumentDetailsError) {
+  communication_ =
+      AndroidAppCommunication::GetForBrowserContext(support_->context());
+  communication_->SetForTesting();
+  scoped_initialization_ = support_->CreateScopedInitialization();
+
+  support_->ExpectInvokePaymentAppAndRespond(
+      /*is_activity_result_ok=*/false,
+      /*payment_method_identifier=*/methods::kGooglePlayBilling,
+      /*stringified_details=*/"{}");
+
+  auto app = CreateAndroidPaymentApp(communication_);
+  app->InvokePaymentApp(/*delegate=*/this);
+
+  if (support_->AreAndroidAppsSupportedOnThisPlatform()) {
+    EXPECT_EQ("User closed the payment app.", error_message_);
+  } else {
+    EXPECT_EQ("Unable to invoke Android apps.", error_message_);
+  }
+
+  EXPECT_TRUE(method_name_.empty());
+  EXPECT_TRUE(stringified_details_.empty());
+}
+
+TEST_F(AndroidPaymentAppTest, OnInstrumentDetailsReady) {
+  communication_ =
+      AndroidAppCommunication::GetForBrowserContext(support_->context());
+  communication_->SetForTesting();
+  scoped_initialization_ = support_->CreateScopedInitialization();
+
+  support_->ExpectInvokePaymentAppAndRespond(
+      /*is_activity_result_ok=*/true,
+      /*payment_method_identifier=*/methods::kGooglePlayBilling,
+      /*stringified_details=*/"{\"status\": \"ok\"}");
+
+  auto app = CreateAndroidPaymentApp(communication_);
+  app->InvokePaymentApp(/*delegate=*/this);
+
+  if (support_->AreAndroidAppsSupportedOnThisPlatform()) {
+    EXPECT_TRUE(error_message_.empty());
+    EXPECT_EQ(methods::kGooglePlayBilling, method_name_);
+    EXPECT_EQ("{\"status\": \"ok\"}", stringified_details_);
+  } else {
+    EXPECT_EQ("Unable to invoke Android apps.", error_message_);
+    EXPECT_TRUE(method_name_.empty());
+    EXPECT_TRUE(stringified_details_.empty());
+  }
+}
+
+}  // namespace
+}  // namespace payments
diff --git a/components/payments/core/native_error_strings.cc b/components/payments/core/native_error_strings.cc
index 43ea88b..ae977250 100644
--- a/components/payments/core/native_error_strings.cc
+++ b/components/payments/core/native_error_strings.cc
@@ -204,5 +204,7 @@
 const char kUnableToInvokeAndroidPaymentApps[] =
     "Unable to invoke Android apps.";
 
+const char kUserClosedPaymentApp[] = "User closed the payment app.";
+
 }  // namespace errors
 }  // namespace payments
diff --git a/components/payments/core/native_error_strings.h b/components/payments/core/native_error_strings.h
index 5f388171..6f90334 100644
--- a/components/payments/core/native_error_strings.h
+++ b/components/payments/core/native_error_strings.h
@@ -230,6 +230,10 @@
 // disabled on Chrome OS.
 extern const char kUnableToInvokeAndroidPaymentApps[];
 
+// Used when the user has closed the payment app. For example, An Android app
+// indicates this by returning Activity.RESULT_CANCELED.
+extern const char kUserClosedPaymentApp[];
+
 }  // namespace errors
 }  // namespace payments
 
diff --git a/components/policy/core/common/cloud/enterprise_metrics.cc b/components/policy/core/common/cloud/enterprise_metrics.cc
index 76ec5e1..a8ced39 100644
--- a/components/policy/core/common/cloud/enterprise_metrics.cc
+++ b/components/policy/core/common/cloud/enterprise_metrics.cc
@@ -54,6 +54,8 @@
     "Enterprise.UserRemoteCommandInvalidations";
 const char kMetricDeviceRemoteCommandInvalidations[] =
     "Enterprise.DeviceRemoteCommandInvalidations";
+const char kMetricCBCMRemoteCommandInvalidations[] =
+    "Enterprise.CBCMRemoteCommandInvalidations";
 
 const char kMetricRemoteCommandInvalidationsRegistrationResult[] =
     "Enterprise.RemoteCommandInvalidationsRegistrationResult";
@@ -78,6 +80,7 @@
 // Enterprise.UserRemoteCommand.Executed.DeviceGetAvailableDiagnosticRoutines
 // Enterprise.UserRemoteCommand.Executed.DeviceRunDiagnosticRoutine
 // Enterprise.UserRemoteCommand.Executed.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.UserRemoteCommand.Executed.BrowserClearBrowsingData
 const char kMetricUserRemoteCommandExecutedTemplate[] =
     "Enterprise.UserRemoteCommand.Executed.%s";
 
@@ -95,6 +98,7 @@
 // Enterprise.UserRemoteCommand.Executed.Unsigned.DeviceGetAvailableDiagnosticRoutines
 // Enterprise.UserRemoteCommand.Executed.Unsigned.DeviceRunDiagnosticRoutine
 // Enterprise.UserRemoteCommand.Executed.Unsigned.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.UserRemoteCommand.Executed.Unsigned.BrowserClearBrowsingData
 const char kMetricUserUnsignedRemoteCommandExecutedTemplate[] =
     "Enterprise.UserRemoteCommand.Executed.Unsigned.%s";
 
@@ -118,6 +122,7 @@
 // Enterprise.DeviceRemoteCommand.Executed.DeviceGetAvailableDiagnosticRoutines
 // Enterprise.DeviceRemoteCommand.Executed.DeviceRunDiagnosticRoutine
 // Enterprise.DeviceRemoteCommand.Executed.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.DeviceRemoteCommand.Executed.BrowserClearBrowsingData
 const char kMetricDeviceRemoteCommandExecutedTemplate[] =
     "Enterprise.DeviceRemoteCommand.Executed.%s";
 
@@ -135,7 +140,50 @@
 // Enterprise.DeviceRemoteCommand.Executed.Unsigned.DeviceGetAvailableDiagnosticRoutines
 // Enterprise.DeviceRemoteCommand.Executed.Unsigned.DeviceRunDiagnosticRoutine
 // Enterprise.DeviceRemoteCommand.Executed.Unsigned.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.DeviceRemoteCommand.Executed.Unsigned.BrowserClearBrowsingData
 const char kMetricDeviceUnsignedRemoteCommandExecutedTemplate[] =
     "Enterprise.DeviceRemoteCommand.Executed.Unsigned.%s";
 
+const char kMetricCBCMRemoteCommandReceived[] =
+    "Enterprise.CBCMRemoteCommand.Received";
+
+const char kMetricCBCMUnsignedRemoteCommandReceived[] =
+    "Enterprise.CBCMRemoteCommand.Received.Unsigned";
+
+// Expands to:
+// Enterprise.CBCMRemoteCommand.Executed.CommandEchoTest
+// Enterprise.CBCMRemoteCommand.Executed.DeviceReboot
+// Enterprise.CBCMRemoteCommand.Executed.DeviceScreenshot
+// Enterprise.CBCMRemoteCommand.Executed.DeviceSetVolume
+// Enterprise.CBCMRemoteCommand.Executed.DeviceStartCrdSession
+// Enterprise.CBCMRemoteCommand.Executed.DeviceFetchStatus
+// Enterprise.CBCMRemoteCommand.Executed.UserArcCommand
+// Enterprise.CBCMRemoteCommand.Executed.DeviceWipeUsers
+// Enterprise.CBCMRemoteCommand.Executed.DeviceRefreshEnterpriseMachineCertificate
+// Enterprise.CBCMRemoteCommand.Executed.DeviceRemotePowerwash
+// Enterprise.CBCMRemoteCommand.Executed.DeviceGetAvailableDiagnosticRoutines
+// Enterprise.CBCMRemoteCommand.Executed.DeviceRunDiagnosticRoutine
+// Enterprise.CBCMRemoteCommand.Executed.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.CBCMRemoteCommand.Executed.BrowserClearBrowsingData
+const char kMetricCBCMRemoteCommandExecutedTemplate[] =
+    "Enterprise.CBCMRemoteCommand.Executed.%s";
+
+// Expands to:
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.CommandEchoTest
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceReboot
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceScreenshot
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceSetVolume
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceStartCrdSession
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceFetchStatus
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.UserArcCommand
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceWipeUsers
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceRefreshEnterpriseMachineCertificate
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceRemotePowerwash
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceGetAvailableDiagnosticRoutines
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceRunDiagnosticRoutine
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.DeviceGetDiagnosticRoutineUpdate
+// Enterprise.CBCMRemoteCommand.Executed.Unsigned.BrowserClearBrowsingData
+const char kMetricCBCMUnsignedRemoteCommandExecutedTemplate[] =
+    "Enterprise.CBCMRemoteCommand.Executed.Unsigned.%s";
+
 }  // namespace policy
diff --git a/components/policy/core/common/cloud/enterprise_metrics.h b/components/policy/core/common/cloud/enterprise_metrics.h
index baa09fa..46ac559 100644
--- a/components/policy/core/common/cloud/enterprise_metrics.h
+++ b/components/policy/core/common/cloud/enterprise_metrics.h
@@ -256,6 +256,7 @@
 
 POLICY_EXPORT extern const char kMetricUserRemoteCommandInvalidations[];
 POLICY_EXPORT extern const char kMetricDeviceRemoteCommandInvalidations[];
+POLICY_EXPORT extern const char kMetricCBCMRemoteCommandInvalidations[];
 
 POLICY_EXPORT extern const char
     kMetricRemoteCommandInvalidationsRegistrationResult[];
@@ -272,6 +273,12 @@
 POLICY_EXPORT extern const char
     kMetricDeviceUnsignedRemoteCommandExecutedTemplate[];
 
+POLICY_EXPORT extern const char kMetricCBCMRemoteCommandReceived[];
+POLICY_EXPORT extern const char kMetricCBCMUnsignedRemoteCommandReceived[];
+POLICY_EXPORT extern const char kMetricCBCMRemoteCommandExecutedTemplate[];
+POLICY_EXPORT extern const char
+    kMetricCBCMUnsignedRemoteCommandExecutedTemplate[];
+
 }  // namespace policy
 
 #endif  // COMPONENTS_POLICY_CORE_COMMON_CLOUD_ENTERPRISE_METRICS_H_
diff --git a/components/policy/core/common/remote_commands/remote_commands_service.cc b/components/policy/core/common/remote_commands/remote_commands_service.cc
index c1978814..95c4818 100644
--- a/components/policy/core/common/remote_commands/remote_commands_service.cc
+++ b/components/policy/core/common/remote_commands/remote_commands_service.cc
@@ -58,6 +58,8 @@
       return Metric::kDeviceRunDiagnosticRoutine;
     case em::RemoteCommand_Type_DEVICE_GET_DIAGNOSTIC_ROUTINE_UPDATE:
       return Metric::kDeviceGetDiagnosticRoutineUpdate;
+    case em::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA:
+      return Metric::kBrowserClearBrowsingData;
   }
 
   // None of possible types matched. May indicate that there is new unhandled
@@ -94,6 +96,8 @@
       return "DeviceRunDiagnosticRoutine";
     case em::RemoteCommand_Type_DEVICE_GET_DIAGNOSTIC_ROUTINE_UPDATE:
       return "DeviceGetDiagnosticRoutineUpdate";
+    case em::RemoteCommand_Type_BROWSER_CLEAR_BROWSING_DATA:
+      return "BrowserClearBrowsingData";
   }
 
   NOTREACHED() << "Unknown command type: " << type;
@@ -113,8 +117,10 @@
     case PolicyInvalidationScope::kDevice:
       return is_command_signed ? kMetricDeviceRemoteCommandReceived
                                : kMetricDeviceUnsignedRemoteCommandReceived;
-    case PolicyInvalidationScope::kDeviceLocalAccount:
     case PolicyInvalidationScope::kCBCM:
+      return is_command_signed ? kMetricCBCMRemoteCommandReceived
+                               : kMetricCBCMUnsignedRemoteCommandReceived;
+    case PolicyInvalidationScope::kDeviceLocalAccount:
       NOTREACHED() << "Unexpected instance of remote commands service with "
                       "device local account scope.";
       return "";
@@ -139,8 +145,12 @@
               ? kMetricDeviceRemoteCommandExecutedTemplate
               : kMetricDeviceUnsignedRemoteCommandExecutedTemplate;
       break;
-    case PolicyInvalidationScope::kDeviceLocalAccount:
     case PolicyInvalidationScope::kCBCM:
+      base_metric_name = is_command_signed
+                             ? kMetricCBCMRemoteCommandExecutedTemplate
+                             : kMetricCBCMUnsignedRemoteCommandExecutedTemplate;
+      break;
+    case PolicyInvalidationScope::kDeviceLocalAccount:
       NOTREACHED() << "Unexpected instance of remote commands service with "
                       "device local account scope.";
       return "";
diff --git a/components/policy/core/common/remote_commands/remote_commands_service.h b/components/policy/core/common/remote_commands/remote_commands_service.h
index b824263..d88886d 100644
--- a/components/policy/core/common/remote_commands/remote_commands_service.h
+++ b/components/policy/core/common/remote_commands/remote_commands_service.h
@@ -65,8 +65,9 @@
     kDeviceGetAvailableDiagnosticRoutines = 15,
     kDeviceRunDiagnosticRoutine = 16,
     kDeviceGetDiagnosticRoutineUpdate = 17,
+    kBrowserClearBrowsingData = 18,
     // Used by UMA histograms. Shall refer to the last enumeration.
-    kMaxValue = kDeviceGetDiagnosticRoutineUpdate
+    kMaxValue = kBrowserClearBrowsingData
   };
 
   // Returns the metric name to report received commands.
diff --git a/components/policy/proto/device_management_backend.proto b/components/policy/proto/device_management_backend.proto
index ea133074..9361278 100644
--- a/components/policy/proto/device_management_backend.proto
+++ b/components/policy/proto/device_management_backend.proto
@@ -2441,6 +2441,9 @@
     // Send a command or get an update from an existing diagnostics routine.
     DEVICE_GET_DIAGNOSTIC_ROUTINE_UPDATE = 11;
 
+    // Clear the cache and cookies associated with a given profile.
+    BROWSER_CLEAR_BROWSING_DATA = 12;
+
     // Please update metrics after adding a new item - see the comment above.
   }
 
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 0395484..c4d988b 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -1286,12 +1286,6 @@
 <translation id="2901725272378498025">Sicherheitswarnungen für Befehlszeilen-Flags aktivieren</translation>
 <translation id="2905984450136807296">Cachelebensdauer für Authentifizierungsdaten</translation>
 <translation id="2906874737073861391">Liste der AppPack-Erweiterungen</translation>
-<translation id="2907992746861405243">Legt fest, welche Drucker aus <ph name="BULK_PRINTERS_POLICY" /> Nutzern zur Verfügung stehen.
-
-      Gibt an, welche Zugriffsrichtlinie für die Massenkonfiguration von Druckern verwendet wird. Wenn <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist, werden alle Drucker angezeigt. Wenn <ph name="PRINTERS_BLACKLIST" /> ausgewählt ist, wird anhand von <ph name="BULK_PRINTERS_BLACKLIST" /> der Zugriff auf die angegebenen Drucker eingeschränkt. Wenn <ph name="PRINTERS_WHITELIST" /> ausgewählt ist, gibt <ph name="BULK_PRINTERS_WHITELIST" /> nur die Drucker an, die ausgewählt werden können.
-
-      Wenn diese Richtlinie nicht konfiguriert ist, wird angenommen, dass <ph name="PRINTERS_ALLOW_ALL" /> ausgewählt ist.
-      </translation>
 <translation id="2908277604670530363">Maximale Anzahl gleichzeitiger Verbindungen zum Proxyserver</translation>
 <translation id="2921222258441684334">Wenn die Richtlinie auf "1" gesetzt ist, können Websites standardmäßig den physischen Standort der Nutzer verfolgen. Wenn die Richtlinie auf "2" gesetzt ist, wird die Standortermittlung standardmäßig verweigert. Sie können festlegen, dass nachgefragt wird, wenn eine Website den physischen Standort der Nutzer verfolgen möchte.
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 06b3da5e..abab1f1 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -194,6 +194,21 @@
 <translation id="1291880496936992484">Advertencia: RC4 se eliminará por completo de <ph name="PRODUCT_NAME" /> después de la versión 52 (alrededor de septiembre de 2016) y esta política dejará de funcionar para entonces.
 
       Si la política no se configura o se configura en false, los conjuntos de cifrado de RC4 en TLS no se habilitarán. De lo contrario, se puede configurar en true para mantener la compatibilidad con un servidor obsoleto. Esta medida es provisional y el servidor se debería volver a configurar.</translation>
+<translation id="1294120942989031743">Si estableces la política, se especificará una lista de apps y extensiones que se instalan de forma discreta, sin la interacción del usuario, y que este no puede desinstalar ni desactivar. Se otorgan los permisos de manera implícita, incluidos los de las API de extensión enterprise.deviceAttributes y enterprise.platformKeys. (Estas 2 API no están disponibles para las apps y extensiones que no se instalan de manera automática).
+
+      Si no estableces la política, no se instalará ninguna app ni extensión de manera automática y los usuarios podrán desinstalar cualquier app o extensión en <ph name="PRODUCT_NAME" />.
+
+      Esta política tiene prioridad por sobre la política <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si se quita de esta lista una app o extensión instalada de manera automática, <ph name="PRODUCT_NAME" /> la desinstalará de forma automática.
+
+      En instancias de <ph name="MS_WIN_NAME" />, las apps y extensiones que no provengan de Chrome Web Store podrán instalarse de forma automática solo si la instancia está vinculada con un dominio de <ph name="MS_AD_NAME" />, se ejecuta en Windows 10 Pro o está inscrita en el Administración en la nube para el navegador Chrome.
+
+      En instancias de <ph name="MAC_OS_NAME" />, las apps y extensiones que no provengan de Chrome Web Store podrán instalarse de forma automática solo si la instancia está administrada mediante MDM o vinculada a un dominio a través de MCX.
+
+      Los usuarios pueden modificar el código fuente de cualquier extensión a través de las herramientas para desarrolladores (y probablemente la extensión deje de funcionar). Si esta situación puede plantear problemas, establece la política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Cada elemento de la lista de la política es una string que contiene un ID de extensión y, de forma opcional, una URL de actualización separada por un punto y coma (;). El ID de extensión es la string de 32 letras que se encuentra, p. ej., en chrome://extensions, en el modo de desarrollador. Si se especifica, la URL de "actualización" debe direccionarte a un documento XML del manifiesto de actualización (https://developer.chrome.com/extensions/autoupdate). De forma predeterminada, se usa la URL de actualización de Chrome Web Store. La URL de "actualización" que se establece en esta política solo se usa para la instalación inicial; las actualizaciones posteriores de la extensión utilizan la URL de actualización que se indica en el manifiesto de la extensión.
+
+       Nota: Esta política no se aplica al modo Incógnito. Obtén más información sobre el alojamiento de extensiones en https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="1294263471858445589">Permite la autenticación ambiental en sesiones comunes y de incógnito.</translation>
 <translation id="1295737447968372331">Habilita la función de dictado en la pantalla de acceso</translation>
 <translation id="1297182715641689552">Usar un script para proxy .pac</translation>
@@ -976,6 +991,13 @@
 
       Cuando se establece como falsa, los usuarios no podrán usar esta función.</translation>
 <translation id="2435052056904485763">Lista de servidores de delegación de Kerberos permitidos</translation>
+<translation id="2439793457499023062">Si no estableces la política, en caso de que Limpiar Chrome detecte software no deseado, es posible que informe metadatos sobre el análisis a Google en conformidad con la política establecida por SafeBrowsingExtendedReportingEnabled. Además, Limpiar Chrome le preguntará al usuario si quiere borrar el software no deseado y si desea compartir los resultados de la limpieza con Google a fin de colaborar con futuras detecciones de ese tipo de software. Estos resultados contienen metadatos de archivos, extensiones instaladas automáticamente y claves de registro, como se describe en el Informe de privacidad de Chrome.
+
+      Si inhabilitas la política, en caso de que Limpiar Chrome detecte software no deseado, no informará metadatos sobre el análisis a Google y se anulará cualquier política establecida por SafeBrowsingExtendedReportingEnabled. Limpiar Chrome le preguntará al usuario si quiere borrar el software no deseado.  Los resultados de la limpieza no se informarán a Google, y el usuario no tendrá la opción de hacerlo.
+
+      Si habilitas la política, en caso de que Limpiar Chrome detecte software no deseado, es posible que informe metadatos sobre el análisis a Google en conformidad con la política establecida por SafeBrowsingExtendedReportingEnabled. Limpiar Chrome le preguntará al usuario si quiere borrar el software no deseado.  Los resultados de la limpieza se informarán a Google, y el usuario no tendrá la opción de impedirlo.
+
+      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome.</translation>
 <translation id="2440773021691931148">Envía informes sobre las estadísticas de hardware y los identificadores relacionados con la energía.
 
       Si se establece la política como falsa o no se establece, no se enviará un informe con las estadísticas.
@@ -1306,12 +1328,6 @@
 <translation id="2901725272378498025">Habilita las advertencias de seguridad para las marcas de la línea de comandos</translation>
 <translation id="2905984450136807296">Duración de los datos de autenticación almacenados en caché</translation>
 <translation id="2906874737073861391">Lista de extensiones AppPack</translation>
-<translation id="2907992746861405243">Controla a qué impresoras de <ph name="BULK_PRINTERS_POLICY" /> pueden acceder los usuarios.
-
-      Designa la política de acceso que se usa para la configuración de impresoras en lote. Si se selecciona <ph name="PRINTERS_ALLOW_ALL" />, se muestran todas las impresoras. Si se selecciona <ph name="PRINTERS_BLACKLIST" />, se usa <ph name="BULK_PRINTERS_BLACKLIST" /> para restringir el acceso a las impresoras especificadas. Si se selecciona <ph name="PRINTERS_WHITELIST" />, <ph name="BULK_PRINTERS_WHITELIST" /> designa solo las impresoras que se pueden seleccionar.
-
-      Si no se establece esta política, se utiliza <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Cantidad máxima de conexiones simultáneas con el servidor proxy</translation>
 <translation id="2921222258441684334">Si estableces la política en 1, los sitios podrán hacer un seguimiento de la ubicación física de los usuarios de forma predeterminada. Si la estableces en 2, se rechazará el seguimiento de forma predeterminada. Puedes establecer que la política solicite permiso cada vez que un sitio quiera hacer un seguimiento de la ubicación física de los usuarios.
 
@@ -1580,6 +1596,11 @@
 Si se establece como verdadera o no se establece, <ph name="PRODUCT_NAME" /> podrá usar notificaciones nativas.
 
 Si se establece como falsa, <ph name="PRODUCT_NAME" /> no podrá usar notificaciones nativas. Se usará el Centro de mensajes de <ph name="PRODUCT_NAME" /> como resguardo.</translation>
+<translation id="3359446912268498764">Si inhabilitas esta política, se impedirá que Limpiar Chrome analice el sistema para detectar software no deseado y realice limpiezas. La opción de activar manualmente Limpiar Chrome desde chrome://settings/cleanup estará inhabilitada.
+
+      Si la habilitas o no la estableces, Limpiar Chrome analizará el sistema periódicamente para detectar software no deseado y, si encuentra alguno, le preguntará al usuario si quiere quitarlo. La opción de activar manualmente Limpiar Chrome desde chrome://settings estará habilitada.
+
+      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome.</translation>
 <translation id="3360093276083825336">Ten en cuenta que esta política es obsoleta y se quitará en la versión 85 de <ph name="PRODUCT_OS_NAME" />. En su lugar, utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Especifica el período sin intervención del usuario que debe transcurrir para que se muestre un cuadro de diálogo de advertencia cuando el dispositivo esté funcionando con batería.
@@ -1766,6 +1787,13 @@
 <translation id="355118380775352753">Sitios web que se abren en un navegador alternativo</translation>
 <translation id="3554498762428140109">Habilitar la oclusión de ventanas nativas</translation>
 <translation id="3554984410014457319">Permitir que el Asistente de Google escuche la frase de activación de voz</translation>
+<translation id="3562741878192828370">Lista de los tipos de archivos que se deben abrir automáticamente una vez descargados. Cuando enumeres el tipo de archivo, no incluyas el separador principal. Por ejemplo, usa "txt" en lugar de ".txt".
+
+      Si habilitas la Navegación segura, esta función revisará los archivos que se pueden abrir automáticamente. Si los archivos no son seguros, no se abrirán.
+
+      Si no estableces esta política, solo se abrirán los tipos de archivos que el usuario haya especificado para que se abran automáticamente cuando se descarguen.
+
+      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="356579196325389849">Los usuarios pueden configurar un canal de versiones del Sistema operativo Chrome</translation>
 <translation id="3575011234198230041">Autenticación HTTP</translation>
 <translation id="3577251398714997599">Configuración de anuncios para sitios con anuncios intrusivos</translation>
@@ -2281,6 +2309,15 @@
 <translation id="4341199399451274159">Si activas <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" />, establecer <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> especificará la codificación de caracteres que admite el proveedor de búsqueda. Las codificaciones son nombres de página de código como UTF-8, GB2312 y ISO-8859-1. Estos se prueban en el orden establecido.
 
       Si no estableces <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, se utilizará UTF-8.</translation>
+<translation id="4343304913975482972">Configura la lista de dominios en los que confiará la Navegación segura. Esto significa lo siguiente:
+      La Navegación segura no revisará recursos peligrosos (p. ej., suplantación de identidad [phishing], software malicioso o software no deseado) si las URL coinciden con estos dominios.
+      El servicio de protección de descargas de Navegación segura no comprobará las descargas alojadas en estos dominios.
+      El servicio de protección de contraseñas de la Navegación segura no comprobará si se está reutilizando la contraseña cuando la URL de la página coincida con estos dominios.
+
+      Si habilitas esta configuración, la Navegación segura confiará en estos dominios.
+      Si la inhabilitas o no la estableces, se aplicará la protección de la Navegación segura a todos los recursos.
+
+      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="4343382787226139147">Especifica los Certificados de cliente que deben inscribirse con el protocolo de administración de dispositivos.</translation>
 <translation id="4347908978527632940">Si la política se establece en true y el usuario es uno supervisado, otras apps de Android pueden consultar las restricciones web del usuario mediante un proveedor de contenido.
 
@@ -4622,6 +4659,11 @@
 <translation id="7648907905084499629">Usar el atributo <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> para el comportamiento de las cookies en todos los sitios</translation>
 <translation id="7651739109954974365">Determina si la itinerancia de datos debe activarse en el dispositivo. Si el valor se establece en "true", se permite la itinerancia de datos. Si no se configura o si se establece en "false", la itinerancia de datos no estará disponible.</translation>
 <translation id="7657261947024629645">Optimiza el rendimiento.</translation>
+<translation id="7668830462800981702">Si habilitas la política, se realizará una búsqueda predeterminada cuando el usuario ingrese texto que no sea una URL en la barra de direcciones. Para especificar el proveedor de búsqueda predeterminado, establece el resto de las políticas para la búsqueda predeterminada. Si dejas vacías esas políticas, el usuario podrá elegir el proveedor predeterminado. Si inhabilitas la política, no se realizará ninguna búsqueda cuando el usuario ingrese texto que no sea una URL en la barra de direcciones.
+
+      Si estableces la política, los usuarios no podrán cambiarla en <ph name="PRODUCT_NAME" />. Si no la estableces, se habilitará el proveedor de búsqueda predeterminado, y los usuarios podrán establecer la lista de proveedores de búsqueda.
+
+      En <ph name="MS_WIN_NAME" />, esta funcionalidad solo está disponible en instancias vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o inscritas en la Administración en la nube para el navegador Chrome. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation>
 <translation id="7673194325208122247">Período (milisegundos)</translation>
 <translation id="7677220829878081413">
       Si se establece en ArcSession, esta política forzará el reinicio del dispositivo después de que el usuario salga de su cuenta en el caso de que se inicie Android.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index a8b4e10..3bc93b0 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -193,6 +193,21 @@
 <translation id="1291880496936992484">Advertencia: RC4 se eliminará completamente de <ph name="PRODUCT_NAME" /> después de la versión 52 (en torno a septiembre de 2016) y dejará de funcionar.
 
       Si la política no se establece o se le asigna el valor false, no se habilitarán los conjuntos de cifrado de RC4 en TLS. Si por el contrario se le asigna el valor true, mantendrá la compatibilidad con un servidor obsoleto. Se trata de una medida provisional y el servidor se debería volver a configurar.</translation>
+<translation id="1294120942989031743">Si se define esta política, se especificará una lista de aplicaciones y extensiones que se instalarán de forma silenciosa, sin intervención del usuario, y que los usuarios no podrán desinstalar ni desactivar. Los permisos se concederán de forma implícita, incluidas las API de extensión enterprise.deviceAttributes y enterprise.platformKeys. Estas dos API no estarán disponibles para las aplicaciones y extensiones que no se instalen de manera forzada.
+
+      Si no se asigna ningún valor a esta política, no se instalará ninguna aplicación ni extensión de forma automática y los usuarios podrán desinstalar cualquier aplicación o extensión en <ph name="PRODUCT_NAME" />.
+
+      Esta política sustituye a la política <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si una aplicación o extensión que se haya instalado anteriormente de manera forzada se quita de la lista, <ph name="PRODUCT_NAME" /> la desinstalará automáticamente.
+
+      En instancias de <ph name="MS_WIN_NAME" />, las aplicaciones y extensiones que no estén alojadas en Chrome Web Store solo se instalarán de manera forzada si la instancia está vinculada a un dominio de <ph name="MS_AD_NAME" />, se ejecuta en Windows 10 Pro o se ha registrado en Gestión en la nube del navegador Chrome.
+
+      En instancias de <ph name="MAC_OS_NAME" />, las aplicaciones y extensiones que no estén alojadas en Chrome Web Store solo se instalarán de manera forzada si la instancia se gestiona mediante MDM o está vinculada a un dominio a través de MCX.
+
+      Los usuarios podrán modificar el código fuente de las extensiones mediante las herramientas para desarrolladores, lo que puede provocar problemas de funcionamiento en esas extensiones. Si te preocupa, configura la política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Cada elemento de la lista de la política es una cadena que contiene un ID de extensión y, opcionalmente, una URL de actualización separados por punto y coma (;). El ID de extensión es la cadena de 32 letras que aparece, por ejemplo, en chrome://extensions cuando está habilitado el modo desarrollador. Si se especifica, la URL de actualización debe dirigir a un documento XML de un archivo de manifiesto de actualización (https://developer.chrome.com/extensions/autoupdate). De forma predeterminada, se utiliza la URL de actualización de Chrome Web Store. La URL de actualización definida en esta política solo se usará en la instalación inicial. Las actualizaciones posteriores de la extensión usarán la URL de actualización indicada en el archivo de manifiesto de la extensión.
+
+       Nota: Esta política no se aplica al modo de incógnito. Para obtener más información sobre el alojamiento de extensiones, consulta https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="1294263471858445589">Habilita la autenticación pasiva en sesiones normales y de incógnito.</translation>
 <translation id="1295737447968372331">Habilita el dictado en la pantalla de inicio de sesión</translation>
 <translation id="1297182715641689552">Utilizar una secuencia de comandos .pac de proxy</translation>
@@ -985,6 +1000,13 @@
 
       En cambio, si tiene asignado el valor "False", no podrán usarla.</translation>
 <translation id="2435052056904485763">Lista de permitidos de servidores de delegación Kerberos</translation>
+<translation id="2439793457499023062">Si no se asigna ningún valor a esta política, cuando Limpiador de Chrome detecte software no deseado, podrá enviar metadatos sobre el análisis a Google de acuerdo con la política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado. El usuario tendrá la opción de compartir los resultados de este proceso con Google para ayudar a detectar software no deseado en el futuro. Estos resultados contienen metadatos de archivos, extensiones instaladas de forma automática y claves de registro, tal como se describe en la página de información sobre privacidad de Chrome.
+
+      Si se inhabilita esta política, cuando Limpiador de Chrome detecte software no deseado, no enviará metadatos sobre el análisis a Google y anulará cualquier política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado.  Los resultados de este proceso no se enviarán a Google, y el usuario tampoco podrá enviarlos.
+
+      Si se habilita esta política, cuando Limpiador de Chrome detecte software no deseado, podrá enviar metadatos sobre el análisis a Google de acuerdo con la política definida por SafeBrowsingExtendedReportingEnabled. Limpiador de Chrome preguntará al usuario si quiere eliminar el software no deseado.  Los resultados de este proceso se enviarán a Google, y el usuario no podrá impedirlo.
+
+      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome.</translation>
 <translation id="2440773021691931148">Envía estadísticas e identificadores de hardware relacionados con la energía.
 
       Si se asigna el valor "false" a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
@@ -1317,12 +1339,6 @@
 <translation id="2901725272378498025">Habilita las advertencias de seguridad en las instrucciones de línea de comandos</translation>
 <translation id="2905984450136807296">Duración de la caché de datos de autenticación</translation>
 <translation id="2906874737073861391">Lista de extensiones AppPack</translation>
-<translation id="2907992746861405243">Controla a qué impresoras de la política <ph name="BULK_PRINTERS_POLICY" /> tienen acceso los usuarios.
-
-      Designa qué política de acceso se utiliza para configurar impresoras en bloque. Si se selecciona <ph name="PRINTERS_ALLOW_ALL" />, se mostrarán todas las impresoras. Si se selecciona <ph name="PRINTERS_BLACKLIST" />, se utiliza <ph name="BULK_PRINTERS_BLACKLIST" /> para restringir el acceso a impresoras específicas. Si se selecciona <ph name="PRINTERS_WHITELIST" />, <ph name="BULK_PRINTERS_WHITELIST" /> designará únicamente las impresoras que se pueden seleccionar.
-
-      Si no se establece esta política, se utilizará <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Número máximo de conexiones simultáneas con el servidor proxy</translation>
 <translation id="2921222258441684334">Si se asigna el valor 1 a esta política, los sitios web podrán hacer un seguimiento de la ubicación física de los usuarios de forma predeterminada. Si se le asigna el valor 2, se bloqueará este seguimiento de forma predeterminada. Puedes configurar esta política para que pregunte siempre que un sitio quiera hacer un seguimiento de la ubicación física de los usuarios.
 
@@ -1593,6 +1609,11 @@
 Si se asigna el valor "True" a esta política o no se le asigna ningún valor, <ph name="PRODUCT_NAME" /> podrá usar notificaciones nativas.
 
 Si se le asigna el valor "False", <ph name="PRODUCT_NAME" /> no usará notificaciones nativas. Se usará el centro de mensajes de <ph name="PRODUCT_NAME" /> como alternativa.</translation>
+<translation id="3359446912268498764">Si se inhabilita, la función Limpiador de Chrome no podrá analizar el sistema para detectar software no deseado y eliminarlo. La opción para activar manualmente esta función desde chrome://settings/cleanup está inhabilitada.
+
+      Si se habilita o no se le asigna ningún valor, Limpiador de Chrome analizará el sistema periódicamente para detectar software no deseado y, si encuentra alguno, preguntará al usuario si quiere eliminarlo. La opción para activar manualmente esta función desde chrome://settings/cleanup está habilitada.
+
+      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome.</translation>
 <translation id="3360093276083825336">Ten en cuenta que esta política está obsoleta y se eliminará de la versión 85 de <ph name="PRODUCT_OS_NAME" />. Utiliza <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> en su lugar.
 
           Permite especificar el tiempo que debe transcurrir sin que el usuario realice ninguna acción antes de mostrar un cuadro de diálogo de advertencia (con batería).
@@ -1780,6 +1801,13 @@
 <translation id="355118380775352753">Sitios web que se abren en el navegador alternativo</translation>
 <translation id="3554498762428140109">Habilitar oclusión de ventana nativa</translation>
 <translation id="3554984410014457319">Permite que el Asistente de Google escuche la frase de activación</translation>
+<translation id="3562741878192828370">Lista de tipos de archivo que deberían abrirse automáticamente al descargarse. No se debe incluir el separador inicial al añadir un tipo de archivo a la lista, así que añade "txt" en lugar de ".txt".
+
+      Los archivos de los tipos que se deben abrir automáticamente seguirán estando sujetos a las comprobaciones de Navegación Segura y no se abrirán si no las superan.
+
+      Si no se establece esta política, solo se abrirán automáticamente al descargarse los tipos de archivo que haya especificado el usuario.
+
+      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias de macOS que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="356579196325389849">Los usuarios pueden configurar el canal de lanzamiento de Chrome​OS</translation>
 <translation id="3575011234198230041">Autenticación HTTP</translation>
 <translation id="3577251398714997599">Configuración de anuncios de sitios web con anuncios invasivos</translation>
@@ -2295,6 +2323,15 @@
 <translation id="4341199399451274159">Si <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> está activada y se asigna un valor a <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, se especificarán las codificaciones de caracteres admitidas por el proveedor de búsquedas. Las codificaciones son nombres de páginas de códigos, como UTF‑8, GB2312 o ISO-8859‑1. Se intentarán utilizar siguiendo el orden especificado.
 
       Si no se asigna ningún valor a <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, se utilizará la codificación UTF‑8.</translation>
+<translation id="4343304913975482972">Configura la lista de dominios en los que confiará la función Navegación Segura. Esto quiere decir que:
+      Navegación Segura no comprobará si los recursos son peligrosos (por ejemplo: suplantación de identidad, software malicioso o software no deseado) cuando sus URL coincidan con estos dominios.
+      El servicio de protección de descargas de Navegación Segura no comprobará las descargas alojadas en estos dominios.
+      El servicio de protección de contraseñas de Navegación Segura no comprobará si se está reutilizando la contraseña cuando la URL de la página coincida con estos dominios.
+
+      Si se habilita esta opción, Navegación Segura confiará en estos dominios.
+      Si no se habilita o no se configura, se aplicará la protección predeterminada de Navegación Segura a todos los recursos.
+
+      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias de macOS que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="4343382787226139147">Especifica los certificados de cliente que deberían registrarse usando el protocolo de gestión de dispositivos.</translation>
 <translation id="4347908978527632940">Si la política está activada y se trata de un usuario supervisado, otras aplicaciones de Android pueden consultar las restricciones web del usuario a través de un proveedor de contenido.
 
@@ -4658,6 +4695,11 @@
 <translation id="7648907905084499629">Usar el comportamiento de cookies de <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> en todos los sitios web</translation>
 <translation id="7651739109954974365">Permite determinar la habilitación de la itinerancia de datos en el dispositivo. Si el valor se establece en "true", se permite la itinerancia de datos. Si no se configura o si el valor se establece en "false", la itinerancia de datos no estará disponible.</translation>
 <translation id="7657261947024629645">Optimizar para un mejor rendimiento.</translation>
+<translation id="7668830462800981702">Si se asigna el valor "Habilitada" a esta política, se realiza una búsqueda predeterminada cuando un usuario introduce en la barra de direcciones texto que no es una URL. Para especificar el proveedor de búsqueda predeterminado, configura el resto de las políticas de búsqueda predeterminadas. Si no configuras esas políticas, el usuario podrá elegir el proveedor predeterminado. Si se le asigna el valor "Inhabilitada", no se realizará ninguna búsqueda cuando el usuario introduzca texto que no es una URL en la barra de direcciones.
+
+      Si se asigna un valor a esta política, los usuarios no podrán cambiarlo en <ph name="PRODUCT_NAME" />. Si no se le asigna ninguno, el proveedor de búsqueda predeterminado estará activado y los usuarios podrán crear la lista de proveedores de búsqueda.
+
+      En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en Gestión en la nube del navegador Chrome. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias de macOS que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
 <translation id="7673194325208122247">Periodo de tiempo (milisegundos)</translation>
 <translation id="7677220829878081413">
       Si se asigna el valor "ArcSession" a esta política, fuerza al dispositivo a reiniciarse cuando el usuario cierre sesión (si Android se ha iniciado).
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index b1fff5f4..c869f3b 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -194,6 +194,21 @@
 <translation id="1291880496936992484">Avertissement : RC4 sera intégralement supprimé de <ph name="PRODUCT_NAME" /> après la version 52 (autour de septembre 2016) et cette règle ne sera plus valable.
 
       Si cette règle n'est pas configurée, ou si elle est définie sur "False", les suites de chiffrement RC4 dans TLS ne seront pas activées. La règle peut être définie sur "True" pour assurer la compatibilité avec un serveur obsolète. Il s'agit là d'une solution provisoire, et le serveur devrait être reconfiguré.</translation>
+<translation id="1294120942989031743">Permet d'établir la liste des applications et des extensions qui s'installent de manière autonome, sans aucune intervention de l'utilisateur, et que celui-ci ne peut pas désinstaller ni désactiver. Les autorisations sont accordées implicitement, y compris pour les API d'extension enterprise.deviceAttributes et enterprise.platformKeys (ces deux API ne sont pas disponibles pour les applications et extensions qui ne sont pas installées d'office).
+
+      Si cette règle n'est pas configurée, aucune application ni extension ne s'installe automatiquement, et l'utilisateur peut désinstaller n'importe quelle application ou extension dans <ph name="PRODUCT_NAME" />.
+
+      Cette règle remplace la règle <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Si une application ou une extension installée d'office est supprimée de cette liste, <ph name="PRODUCT_NAME" /> la désinstalle automatiquement.
+
+      Pour les instances <ph name="MS_WIN_NAME" />, les applications et extensions ne venant pas du Chrome Web Store ne peuvent être installées d'office que si l'instance est associée à un domaine <ph name="MS_AD_NAME" />, exécutée sur Windows 10 Pro ou qu'elle bénéficie de la gestion cloud du navigateur Chrome.
+
+      Pour les instances <ph name="MAC_OS_NAME" />, les applications et extensions ne venant pas du Chrome Web Store ne peuvent être installées d'office que si l'instance est gérée via MDM ou associée à un domaine via MCX.
+
+      Le code source de toute extension peut être modifié par les utilisateurs à l'aide des outils pour les développeurs, ce qui peut entraîner des dysfonctionnements. Si cela pose problème, configurez la règle <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Chaque élément de la règle correspond à une chaîne constituée d'un ID d'extension et éventuellement d'une URL de mise à jour séparés par un point-virgule (;). L'ID d'extension est la chaîne de 32 lettres qui se trouve, par exemple, dans chrome://extensions en mode développeur. Si elle est indiquée, l'URL de mise à jour doit renvoyer à un fichier manifeste au format XML (voir https://developer.chrome.com/extensions/autoupdate). Par défaut, l'URL de mise à jour du Chrome Web Store est utilisée. L'URL de mise à jour spécifiée dans cette règle ne sert que pour l'installation initiale. Toute mise à jour ultérieure de l'extension est effectuée avec l'URL dans le fichier manifeste de l'extension.
+
+       Remarque : cette règle ne s'applique pas en mode navigation privée. Pour en savoir plus sur l'hébergement des extensions, consultez la page https://developer.chrome.com/extensions/hosting.</translation>
 <translation id="1294263471858445589">Activer l'authentification ambiante pour les sessions standards et de navigation privée.</translation>
 <translation id="1295737447968372331">Activer la dictée sur l'écran de connexion</translation>
 <translation id="1297182715641689552">Utiliser un script de proxy .pac</translation>
@@ -992,6 +1007,13 @@
 
       Si cette règle est définie sur "False", les utilisateurs ne peuvent pas utiliser la fonctionnalité Partages de fichiers en réseau.</translation>
 <translation id="2435052056904485763">Liste d'autorisation des serveurs de délégation Kerberos</translation>
+<translation id="2439793457499023062">Si cette règle n'est pas configurée et si l'outil Chrome Cleanup détecte des logiciels indésirables, celui-ci peut envoyer à Google des métadonnées concernant l'analyse, conformément à la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande ensuite à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés. Ce dernier peut choisir de nous communiquer les résultats du nettoyage afin de nous aider à améliorer la détection de ces logiciels. Ces résultats comprennent des métadonnées de fichiers, des extensions installées automatiquement et des clés de registre, tel que décrit dans le livre blanc sur la confidentialité dans Google Chrome.
+
+      Si cette règle est désactivée et si Chrome Cleanup détecte des logiciels indésirables, aucune métadonnée sur l'analyse n'est envoyée à Google, quelle que soit la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés.  Les résultats du nettoyage ne sont pas transmis à Google, et l'utilisateur n'a pas non plus la possibilité de le faire.
+
+      Si cette règle est activée et si Chrome Cleanup détecte des logiciels indésirables, celui-ci peut envoyer à Google des métadonnées sur l'analyse conformément à la configuration de la règle SafeBrowsingExtendedReportingEnabled. Chrome Cleanup demande à l'utilisateur s'il souhaite supprimer les logiciels indésirables détectés.  Les résultats du nettoyage sont transmis à Google, et l'utilisateur n'a pas la possibilité d'empêcher cette transmission.
+
+      Sur <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que pour les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sur Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome.</translation>
 <translation id="2440773021691931148">Envoie des rapports sur les statistiques et identifiants matériels associés à l'alimentation.
 
       Si la règle est définie sur "False" ou n'est pas définie, les statistiques ne seront pas envoyées.
@@ -1324,12 +1346,6 @@
 <translation id="2901725272378498025">Activer les alertes de sécurité pour les indicateurs de ligne de commande.</translation>
 <translation id="2905984450136807296">Durée de mise en cache des données d'authentification</translation>
 <translation id="2906874737073861391">Liste des extensions AppPack</translation>
-<translation id="2907992746861405243">Détermine les imprimantes de <ph name="BULK_PRINTERS_POLICY" /> qui sont à la disposition des utilisateurs.
-
-      Indique quelle règle d'accès est utilisée pour la configuration groupée des imprimantes. Si <ph name="PRINTERS_ALLOW_ALL" /> est sélectionné, toutes les imprimantes sont affichées. Si <ph name="PRINTERS_BLACKLIST" /> est sélectionné, <ph name="BULK_PRINTERS_BLACKLIST" /> est utilisé pour limiter l'accès aux imprimantes spécifiées. Si <ph name="PRINTERS_WHITELIST" /> est sélectionné, <ph name="BULK_PRINTERS_WHITELIST" /> indique uniquement les imprimantes qui peuvent être choisies.
-
-      Si cette règle n'est pas définie, <ph name="PRINTERS_ALLOW_ALL" /> est supposé s'appliquer.
-      </translation>
 <translation id="2908277604670530363">Nombre maximal de connexions simultanées au serveur proxy</translation>
 <translation id="2921222258441684334">Si cette règle est définie sur "1", les sites peuvent suivre la position géographique des utilisateurs (état par défaut). Si cette règle est définie sur "2", le suivi de la position est refusé par défaut. Vous pouvez définir cette règle de façon qu'un site demande systématiquement l'autorisation de suivre la position des utilisateurs.
 
@@ -1596,6 +1612,11 @@
 Si cette règle est définie sur "True" ou si elle n'est pas définie, <ph name="PRODUCT_NAME" /> est autorisé à utiliser les notifications natives.
 
 Si elle est définie sur "False", <ph name="PRODUCT_NAME" /> n'utilise pas les notifications natives. Le Centre de messagerie de <ph name="PRODUCT_NAME" /> sera utilisé à la place.</translation>
+<translation id="3359446912268498764">Si cette règle est désactivée, Chrome Cleanup ne peut pas analyser le système pour détecter les éventuels logiciels indésirables et les supprimer. Notez également que le déclenchement manuel de Chrome Cleanup depuis la page chrome://settings/cleanup est désactivé.
+
+      Si cette règle est activée ou si elle n'est pas configurée, Chrome Cleanup analyse régulièrement le système pour détecter les éventuels logiciels indésirables. Si Chrome Cleanup en trouve un, l'utilisateur devra confirmer qu'il souhaite le supprimer. Notez également que le déclenchement manuel de Chrome Cleanup depuis la page chrome://settings est activé.
+
+      Sur <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que pour les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sur Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome.</translation>
 <translation id="3360093276083825336">Cette règle étant obsolète, elle sera supprimée dans la version 85 de <ph name="PRODUCT_OS_NAME" />. (Veuillez utiliser la règle <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.)
 
           Délai d'inactivité de l'utilisateur au terme duquel un message d'avertissement s'affiche (en cas d'utilisation de la batterie).
@@ -1781,6 +1802,13 @@
 <translation id="355118380775352753">Sites Web à ouvrir dans le navigateur secondaire</translation>
 <translation id="3554498762428140109">Activer le recouvrement par la fenêtre native</translation>
 <translation id="3554984410014457319">Autoriser l'Assistant Google à écouter l'expression d'activation des commandes vocales</translation>
+<translation id="3562741878192828370">Liste des types de fichier à ouvrir automatiquement après leur téléchargement. Les extensions de votre liste doivent être spécifiées sans le séparateur qui les précède (par exemple, indiquez "txt" et non ".txt").
+
+      Les fichiers des types à ouvrir automatiquement restent sujets aux vérifications de navigation sécurisée, en cas d'activation, et ne seront ouverts que s'ils satisfont à ces critères.
+
+      Si cette règle n'est pas définie, seuls les fichiers des types précédemment spécifiés par l'utilisateur s'ouvriront automatiquement après leur téléchargement.
+
+      Sur <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que pour les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sur Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome. Sur <ph name="MAC_OS_NAME" />, cette fonctionnalité n'est disponible que pour les instances gérée via MDM ou associées à un domaine via MCX.</translation>
 <translation id="356579196325389849">Les utilisateurs peuvent configurer la version disponible de Chrome OS</translation>
 <translation id="3575011234198230041">Authentification HTTP</translation>
 <translation id="3577251398714997599">Paramètre des annonces pour les sites présentant des annonces intrusives</translation>
@@ -2295,6 +2323,14 @@
 <translation id="4341199399451274159">Si la règle <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> est activée, la règle <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> vous permet de spécifier les encodages de caractères compatibles avec le moteur de recherche. Ces encodages sont des noms de page de codes, comme UTF-8, GB2312 et ISO-8859-1, qui sont testés dans l'ordre dans lequel ils sont indiqués.
 
       Si la règle <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> n'est pas configurée, l'encodage UTF-8 est alors utilisé.</translation>
+<translation id="4343304913975482972">Elle permet d'établir la liste des domaines que la fonctionnalité de navigation sécurisée juge fiables. Autrement dit, cette fonctionnalité ne vérifie pas s'il y a des ressources dangereuses (hameçonnage, logiciels malveillants ou indésirables, par exemple) lorsque le domaine de l'URL concernée figure dans cette liste.
+      Le service de protection des téléchargements dans le cadre de la navigation privée ne vérifiera pas les téléchargements hébergés sur ces domaines.
+      De même, le service de protection par mot de passe ne vérifie pas non plus si un mot de passe est réutilisé lorsque le domaine de l'URL de la page concernée figure dans la liste.
+
+      Si ce paramètre est activé, la fonctionnalité de navigation privée considère ces domaines comme fiables.
+      Si ce paramètre est désactivé ou qu'il n'est pas défini, la fonctionnalité de navigation privée applique son service de protection par défaut à toutes les ressources.
+
+      Sur <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que pour les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sur Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome. Sur <ph name="MAC_OS_NAME" />, cette fonctionnalité n'est disponible que pour les instances gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="4343382787226139147">Indique les certificats clients qui doivent être enregistrés à l'aide du protocole de gestion des appareils.</translation>
 <translation id="4347908978527632940">Si la valeur est définie sur "True" et si l'utilisateur est supervisé, d'autres applications Android peuvent envoyer une requête concernant les restrictions Web de ce dernier via un fournisseur de contenu.
 
@@ -4644,6 +4680,11 @@
 <translation id="7648907905084499629">Utiliser le comportement <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> pour les cookies sur tous les sites</translation>
 <translation id="7651739109954974365">Détermine si l'itinérance des données doit être activée pour l'appareil. Si cette règle est définie sur "true", l'itinérance des données est autorisée. Si cette règle n'est pas configurée ou si elle est définie sur "false", l'itinérance des données n'est pas possible.</translation>
 <translation id="7657261947024629645">Privilégier les performances.</translation>
+<translation id="7668830462800981702">Si cette règle est activée et que l'utilisateur saisit autre chose qu'une URL dans la barre d'adresse, une recherche est alors lancée par défaut. Pour spécifier le moteur de recherche par défaut, définissez le reste des règles de recherche par défaut. Si vous ne configurez pas ces règles, l'utilisateur peut choisir le moteur par défaut. Si cette règle est désactivée et que l'utilisateur saisit autre chose qu'une URL dans la barre d'adresse, aucune recherche n'est lancée.
+
+      Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier dans <ph name="PRODUCT_NAME" />. Si cette règle n'est pas configurée, le moteur de recherche par défaut est activé, et les utilisateurs peuvent configurer la liste des moteurs de recherche.
+
+      Sur <ph name="MS_WIN_NAME" />, cette fonctionnalité n'est disponible que pour les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sur Windows 10 Pro ou qui bénéficient de la gestion cloud du navigateur Chrome. Sur <ph name="MAC_OS_NAME" />, cette fonctionnalité n'est disponible que pour les instances gérées via MDM ou associées à un domaine via MCX.</translation>
 <translation id="7673194325208122247">Période (millisecondes)</translation>
 <translation id="7677220829878081413">
       Si la règle est définie sur "ArcSession", elle contraint l'appareil à redémarrer lorsqu'un utilisateur se déconnecte si Android est en cours d'exécution.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index af37d01..6ae3c51 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -183,6 +183,21 @@
 <translation id="1291880496936992484">Peringatan: RC4 akan dihapus sepenuhnya dari <ph name="PRODUCT_NAME" /> setelah versi 52 (sekitar September 2016) dan sejak saat itu kebijakan ini tidak akan berlaku lagi.
 
       Jika kebijakan tidak disetel, atau disetel ke False, maka cipher suite RC4 di TLS tidak akan diaktifkan. Jika kebijakan disetel ke True, kebijakan akan tetap berlaku untuk mempertahankan kompatibilitas dengan server yang sudah usang. Tindakan ini hanya untuk sementara dan server sebaiknya dikonfigurasi ulang.</translation>
+<translation id="1294120942989031743">Menyetel kebijakan akan menentukan daftar aplikasi dan ekstensi yang diinstal otomatis, tanpa interaksi pengguna, dan yang tidak dapat di-uninstal atau dinonaktifkan pengguna. Izin akan diberikan secara implisit, termasuk untuk API ekstensi enterprise.deviceAttributes dan enterprise.platformKeys. (Dua API ini tidak tersedia untuk aplikasi dan ekstensi yang tidak diinstal otomatis.)
+
+      Jika kebijakan tidak disetel, tidak ada aplikasi atau ekstensi yang akan diinstal otomatis, dan pengguna dapat meng-uninstal aplikasi atau ekstensi apa pun di <ph name="PRODUCT_NAME" />.
+
+      Kebijakan ini akan menggantikan kebijakan <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Jika aplikasi atau ekstensi yang sebelumnya diinstal otomatis dihapus dari daftar ini, <ph name="PRODUCT_NAME" /> akan otomatis meng-uninstal-nya.
+
+      Di instance <ph name="MS_WIN_NAME" />, aplikasi dan ekstensi yang bukan dari Chrome Web Store hanya dapat diinstal otomatis jika instance dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser.
+
+      Di instance <ph name="MAC_OS_NAME" />, aplikasi dan ekstensi yang bukan dari Chrome Web Store hanya dapat diinstal otomatis jika instance dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.
+
+      Kode sumber ekstensi apa pun dapat diubah oleh pengguna melalui alat developer, yang berpotensi menyebabkan ekstensi tersebut tidak berfungsi lagi. Jika hal ini menjadi masalah, setel kebijakan <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Setiap item daftar kebijakan merupakan string yang berisi ID ekstensi dan, terkadang, URL "update" yang dipisahkan titik koma (;). ID ekstensi adalah string 32 huruf yang ditemukan, misalnya, di chrome://extensions saat dalam mode Developer. Jika ditentukan, URL "update" akan mengarah ke dokumen XML Manifes Update (https://developer.chrome.com/extensions/autoupdate). Secara default, URL update Chrome Web Store akan digunakan. URL "update" yang disetel dalam kebijakan ini hanya digunakan untuk penginstalan awal; update ekstensi berikutnya akan menggunakan URL update dalam manifes ekstensi.
+
+       Catatan: Kebijakan ini tidak berlaku untuk mode Samaran. Baca tentang ekstensi hosting (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="1294263471858445589">Mengaktifkan autentikasi standby di sesi samaran dan reguler.</translation>
 <translation id="1295737447968372331">Mengaktifkan dikte di layar login</translation>
 <translation id="1297182715641689552">Gunakan skrip proxy .pac</translation>
@@ -969,6 +984,13 @@
 
       Jika kebijakan ini disetel ke False, pengguna tidak dapat menggunakan fitur Berbagi File Jaringan.</translation>
 <translation id="2435052056904485763">Daftar server delegasi Kerberos yang diizinkan</translation>
+<translation id="2439793457499023062">Jika kebijakan tidak disetel dan Pembersih Chrome mendeteksi software yang tidak diinginkan, fitur ini dapat melaporkan metadata pemindaian ke Google sesuai kebijakan yang disetel dengan SafeBrowsingExtendedReportingEnabled. Pembersih Chrome kemudian menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak. Pengguna dapat memilih untuk membagikan hasil pembersihan ke Google guna membantu deteksi software yang tidak diinginkan di masa mendatang. Hasil ini memuat metadata file, ekstensi yang terinstal otomatis, dan kunci registry sebagaimana dijelaskan dalam Laporan Resmi Privasi Chrome.
+
+      Jika kebijakan dinonaktifkan dan Pembersih Chrome mendeteksi software yang tidak diinginkan, fitur ini tidak akan melaporkan metadata pemindaian ke Google, yang mengganti kebijakan apa pun yang disetel dengan SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak.  Hasil pembersihan tidak akan dilaporkan ke Google, dan pengguna tidak akan memiliki opsi untuk melaporkannya.
+
+      Jika diaktifkan dan Pembersih Chrome mendeteksi software yang tidak diinginkan, fitur ini dapat melaporkan metadata pemindaian ke Google sesuai kebijakan yang disetel dengan SafeBrowsingExtendedReportingEnabled. Pembersih Chrome akan menanyakan kepada pengguna apakah ia ingin menghapus software yang tidak diinginkan tersebut atau tidak.  Hasil pembersihan akan dilaporkan ke Google dan pengguna tidak akan memiliki opsi untuk mencegahnya.
+
+      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser.</translation>
 <translation id="2440773021691931148">Melaporkan ID dan statistik hardware yang terkait dengan daya.
 
       Jika kebijakan ditetapkan ke false atau tidak ditetapkan, statistik tidak akan dilaporkan.
@@ -1301,12 +1323,6 @@
 <translation id="2901725272378498025">Aktifkan peringatan keamanan untuk tanda command line</translation>
 <translation id="2905984450136807296">Masa berlaku cache data autentikasi</translation>
 <translation id="2906874737073861391">Daftar ekstensi AppPack</translation>
-<translation id="2907992746861405243">Mengontrol printer mana dari <ph name="BULK_PRINTERS_POLICY" /> yang tersedia bagi pengguna.
-
-      Menetapkan kebijakan akses yang digunakan untuk konfigurasi printer massal. Jika <ph name="PRINTERS_ALLOW_ALL" /> dipilih, semua printer akan ditampilkan. Jika <ph name="PRINTERS_BLACKLIST" /> dipilih, <ph name="BULK_PRINTERS_BLACKLIST" /> digunakan untuk membatasi akses ke printer tertentu.  Jika <ph name="PRINTERS_WHITELIST" /> dipilih, <ph name="BULK_PRINTERS_WHITELIST" /> hanya akan menetapkan printer yang dapat dipilih.
-
-      Jika kebijakan ini tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diterapkan.
-      </translation>
 <translation id="2908277604670530363">Jumlah maksimal sambungan serentak ke server proxy</translation>
 <translation id="2921222258441684334">Jika kebijakan disetel ke 1, situs akan dapat melacak lokasi fisik pengguna sebagai default. Jika kebijakan disetel ke 2, pelacakan akan ditolak secara default. Anda dapat menyetel kebijakan untuk menanyakan setiap kali situs ingin melacak lokasi fisik pengguna.
 
@@ -1577,6 +1593,11 @@
 Jika ditetapkan ke True atau tidak ditetapkan, <ph name="PRODUCT_NAME" /> akan diizinkan untuk menggunakan notifikasi native.
 
 Jika ditetapkan ke False, <ph name="PRODUCT_NAME" /> tidak akan menggunakan notifikasi native. Pusat Pesan <ph name="PRODUCT_NAME" /> akan digunakan sebagai penggantian.</translation>
+<translation id="3359446912268498764">Jika dinonaktifkan, Pembersih Chrome tidak akan memindai sistem untuk menemukan software yang tidak diinginkan dan menjalankan pembersihan. Pembersih Chrome tidak dapat dipicu secara manual dari chrome://settings/cleanup.
+
+      Jika diaktifkan atau tidak disetel, Pembersih Chrome akan memindai sistem secara berkala untuk menemukan software yang tidak diinginkan, dan jika ditemukan, akan menanyakan kepada pengguna apakah ia ingin menghapusnya atau tidak. Pembersih Chrome dapat dipicu secara manual dari chrome://settings.
+
+      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser.</translation>
 <translation id="3360093276083825336">Perhatikan bahwa kebijakan ini sudah tidak digunakan lagi dan akan dihapus di <ph name="PRODUCT_OS_NAME" /> versi 85. Sebagai gantinya, gunakan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Menentukan durasi waktu tanpa masukan pengguna setelah dialog peringatan ditampilkan saat menggunakan daya baterai.
@@ -1763,6 +1784,13 @@
 <translation id="355118380775352753">Situs yang akan dibuka di browser alternatif</translation>
 <translation id="3554498762428140109">Mengaktifkan Penghalangan Jendela Native</translation>
 <translation id="3554984410014457319">Mengizinkan Asisten Google mendengarkan frasa aktivasi suara</translation>
+<translation id="3562741878192828370">Daftar jenis file yang seharusnya terbuka otomatis di hasil download. Pemisah di awal tidak boleh disertakan saat mencantumkan jenis file, jadi cantumkan "txt", bukan ".txt".
+
+      File dengan jenis yang seharusnya terbuka otomatis tetap tunduk pada pemeriksaan Safe Browsing yang diaktifkan dan tidak akan dibuka jika gagal dalam pemeriksaan tersebut.
+
+      Jika kebijakan ini tidak disetel, hanya jenis file yang telah ditentukan pengguna yang akan terbuka otomatis saat didownload.
+
+      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di intance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="356579196325389849">Pengguna dapat mengonfigurasi saluran rilis Chrome OS</translation>
 <translation id="3575011234198230041">Autentikasi HTTP</translation>
 <translation id="3577251398714997599">Setelan iklan untuk situs yang menayangkan iklan mengganggu</translation>
@@ -2278,6 +2306,15 @@
 <translation id="4341199399451274159">Jika <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> aktif, menyetel <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> akan menentukan encoding karakter yang didukung oleh penyedia penelusuran. Encoding adalah nama halaman kode seperti UTF-8, GB2312, dan ISO-8859-1. Encoding dicoba sesuai urutan yang diberikan.
 
       Jika <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> tidak disetel, UTF-8 akan digunakan.</translation>
+<translation id="4343304913975482972">Mengonfigurasi daftar domain yang akan dipercaya Safe Browsing. Artinya:
+      Safe Browsing tidak akan memeriksa keberadaan resource berbahaya (misalnya phishing, malware, atau software yang tidak diinginkan) jika URL cocok dengan domain ini.
+      Layanan perlindungan download Safe Browsing tidak akan memeriksa download yang dihosting di domain ini.
+      Layanan perlindungan sandi Safe Browsing tidak akan memeriksa penggunaan ulang sandi jika URL halaman cocok dengan domain ini.
+
+      Jika setelan ini diaktifkan, Safe Browsing akan memercayai domain ini.
+      Jika setelan ini dinonaktifkan atau tidak disetel, perlindungan Safe Browsing default akan diterapkan untuk semua resource.
+
+      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di intance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="4343382787226139147">Menentukan sertifikat klien yang seharusnya didaftarkan menggunakan protokol pengelolaan perangkat.</translation>
 <translation id="4347908978527632940">Jika nilai disetel ke "true" dan pengguna adalah pengguna yang dilindungi, aplikasi Android lainnya dapat mengajukan kueri batasan web pengguna melalui penyedia konten.
 
@@ -4628,6 +4665,11 @@
 <translation id="7648907905084499629">Gunakan perilaku <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> untuk cookie di semua situs</translation>
 <translation id="7651739109954974365">Menentukan apakah roaming data harus diaktifkan untuk perangkat. Jika disetel ke true, roaming data akan diizinkan. Jika dibiarkan tanpa konfigurasi atau disetel ke false, roaming data tidak akan tersedia.</translation>
 <translation id="7657261947024629645">Mengoptimalkan performa.</translation>
+<translation id="7668830462800981702">Jika kebijakan disetel ke Aktif, penelusuran default akan dilakukan saat pengguna memasukkan teks non-URL ke kolom URL. Untuk menentukan penyedia penelusuran default, setel kebijakan penelusuran default lainnya. Jika kebijakan tersebut dibiarkan kosong, pengguna dapat memilih penyedia default. Jika kebijakan disetel ke Nonaktif, penelusuran tidak akan dilakukan saat pengguna memasukkan teks non-URL di kolom URL.
+
+      Jika kebijakan disetel, pengguna tidak dapat mengubahnya di <ph name="PRODUCT_NAME" />. Jika tidak disetel, penyedia penelusuran default akan diaktifkan, dan pengguna dapat menyetel daftar penyedia penelusuran.
+
+      Di <ph name="MS_WIN_NAME" />, fungsi ini hanya tersedia di instance yang dihubungkan ke domain <ph name="MS_AD_NAME" />, dijalankan di Windows 10 Pro, atau didaftarkan di Pengelolaan Cloud Chrome Browser. Di <ph name="MAC_OS_NAME" />, fungsi ini hanya tersedia di intance yang dikelola melalui MDM, atau dihubungkan ke domain melalui MCX.</translation>
 <translation id="7673194325208122247">Periode waktu (milidetik)</translation>
 <translation id="7677220829878081413">
       Jika ditetapkan ke ArcSession, kebijakan ini akan memaksa perangkat untuk reboot saat pengguna logout jika Android telah dimulai.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 0499c003..76901cae 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -375,11 +375,11 @@
 
       Se il criterio viene impostato su false o se non viene configurato, i file PDF vengono aperti, a meno che gli utenti disattivino il plug-in di PDF.</translation>
 <translation id="1608755754295374538">URL a cui verrà concesso l'accesso ai dispositivi di acquisizione audio senza richieste</translation>
-<translation id="1611394564825535541">Consente di controllare se gli utenti possono accedere alle stampanti non aziendali
+<translation id="1611394564825535541">Consente di controllare se gli utenti possono accedere alle stampanti non aziendali.
 
-      Se il criterio viene impostato su Vero o se non viene configurato, gli utenti possono aggiungere, configurare e stampare utilizzando le proprie stampanti.
+      Se il criterio viene impostato su Vero o se non viene configurato, gli utenti possono aggiungere, configurare e utilizzare le proprie stampanti.
 
-      Se il criterio viene impostato su Falso, gli utenti non possono aggiungere né configurare le proprie stampanti. Inoltre, non possono stampare utilizzando nessuna delle stampanti precedentemente configurate.
+      Se il criterio viene impostato su Falso, gli utenti non possono aggiungere né configurare le proprie stampanti. Inoltre, non possono utilizzare nessuna delle stampanti precedentemente configurate.
       </translation>
 <translation id="1615221548356595305">Consenti la coalescenza di connessioni HTTP/2 per questi host anche quando sono in uso i certificati client</translation>
 <translation id="1615855314789673708">Consente di specificare la configurazione del controller DTC (Diagnostics and Telemetry Controller) wilco.
@@ -1279,12 +1279,6 @@
 <translation id="2901725272378498025">Attiva gli avvisi sulla sicurezza per i flag della riga di comando</translation>
 <translation id="2905984450136807296">Durata dei dati di autenticazione nella cache</translation>
 <translation id="2906874737073861391">Elenco di estensioni AppPack</translation>
-<translation id="2907992746861405243">Consente di stabilire quali stampanti della norma <ph name="BULK_PRINTERS_POLICY" /> mettere a disposizione degli utenti.
-
-      Determina quale norma di accesso usare per la configurazione collettiva delle stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_ALLOW_ALL" />, vengono mostrate tutte le stampanti. Se viene selezionata l'opzione <ph name="PRINTERS_BLACKLIST" />, viene usata la norma <ph name="BULK_PRINTERS_BLACKLIST" /> per limitare l'accesso a stampanti specifiche. Se viene selezionata l'opzione <ph name="PRINTERS_WHITELIST" />, la norma <ph name="BULK_PRINTERS_WHITELIST" /> stabilisce soltanto le stampanti selezionabili.
-
-      Se questa norma non viene impostata, viene usata l'opzione <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Numero massimo di connessioni simultanee al server proxy</translation>
 <translation id="2921222258441684334">Se il criterio è impostato su 1, i siti possono tracciare la posizione fisica dell'utente come stato predefinito. Se il criterio è impostato su 2, il tracciamento viene negato per impostazione predefinita. Puoi impostare il criterio per chiedere ogni volta che un sito desidera tracciare la posizione fisica degli utenti.
 
@@ -2247,7 +2241,7 @@
 <translation id="4313767483634435271">Indirizzo MAC designato del dock del dispositivo</translation>
 <translation id="4322842393287974810">Consenti all'app kiosk avviata automaticamente senza ritardo di controllare la versione di <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="4325690621216251241">Aggiungi un pulsante di uscita all'area di notifica</translation>
-<translation id="4330372709562934569">Consenti ai siti elencati di effettuare richieste agli endpoint di rete privata da parte di contesti non sicuri.</translation>
+<translation id="4330372709562934569">Consente ai siti elencati di effettuare richieste agli endpoint di rete privata da parte di contesti non sicuri.</translation>
 <translation id="4332177773549877617">Registra eventi per le installazioni di app Android</translation>
 <translation id="4341199399451274159">Se il criterio <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> è attivo, l'assegnazione di un valore al criterio <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> consente di specificare le codifiche dei caratteri supportate dal provider di ricerca. Le codifiche sono nomi di pagine codificati come UTF-8, GB2312 e ISO-8859-1. Vengono provate nell'ordine indicato.
 
@@ -3155,11 +3149,11 @@
 
         Se il criterio non viene impostato o viene impostato su true, gli utenti possono inviare feedback a Google dal percorso Menu -&gt; Guida -&gt; Segnala un problema o tramite una combinazione di tasti.</translation>
 <translation id="5579179012798142131">Se ArcEnabled è impostato su True, ARC viene attivato per l'utente, a meno che la modalità temporanea o l'accesso simultaneo siano attivi durante la sessione utente. Se il criterio è impostato su False o non è configurato, gli utenti aziendali non possono utilizzare ARC.</translation>
-<translation id="5582429816116769246">Consente di controllare se gli utenti possono accedere alle stampanti non aziendali
+<translation id="5582429816116769246">Consente di controllare se gli utenti possono accedere alle stampanti non aziendali.
 
-      Se il criterio viene impostato su Vero o se non viene configurato, gli utenti possono aggiungere, configurare e stampare utilizzando le proprie stampanti native.
+      Se il criterio viene impostato su Vero o se non viene configurato, gli utenti possono aggiungere, configurare e utilizzare le proprie stampanti native.
 
-      Se il criterio viene impostato su Falso, gli utenti non possono aggiungere né configurare le proprie stampanti native. Inoltre, non possono stampare utilizzando nessuna delle stampanti native precedentemente configurate.
+      Se il criterio viene impostato su Falso, gli utenti non possono aggiungere né configurare le proprie stampanti native. Inoltre, non possono utilizzare nessuna delle stampanti native precedentemente configurate.
 
       Questo criterio è deprecato. Usa il criterio <ph name="USER_PRINTERS_ALLOWED" />.
       </translation>
@@ -3984,11 +3978,11 @@
 
       Se il criterio viene impostato su Disattivato, viene visualizzato invece un messaggio di errore.</translation>
 <translation id="6821268164692776674">Destinazioni <ph name="CLOUD_PRINT_NAME" /> e "Salva su Google Drive"</translation>
-<translation id="6823297401452148231">Consente di controllare se i siti web non sicuri possono effettuare richieste agli endpoint delle reti private. Ad esempio, consente di controllare se http://evil.com può effettuare richieste sia a "localhost" sia agli endpoint sulla rete privata, nessuno dei quali è accessibile dalla rete pubblica. Per maggiori dettagli, consulta il sito https://wicg.github.io/cors-rfc1918/#goals.
+<translation id="6823297401452148231">Consente di controllare se i siti web non sicuri possono effettuare richieste agli endpoint di rete privata. Ad esempio, consente di controllare se http://evil.com può effettuare richieste sia a "localhost" sia agli endpoint sulla rete privata, nessuno dei quali è accessibile dalla rete pubblica. Per maggiori dettagli, consulta il sito https://wicg.github.io/cors-rfc1918/#goals.
 
-          Se il criterio non viene configurato, il comportamento predefinito per le richieste da contesti non sicuri agli endpoint di rete privata dipende dalla configurazione personale dell'utente per la funzionalità <ph name="BLOCK_INSECURE_PRIVATE_NETWORK_REQUESTS_FEATURE_NAME" />, che può essere configurata in base a una prova pubblica o alla riga di comando.
+          Se il criterio non viene configurato, il comportamento predefinito per le richieste da contesti non sicuri agli endpoint di rete privata dipende dalla configurazione personale dell'utente per la funzionalità <ph name="BLOCK_INSECURE_PRIVATE_NETWORK_REQUESTS_FEATURE_NAME" />, che può essere configurata in base a una prova sul campo o alla riga di comando.
 
-          Se il criterio viene impostato su False, i siti web non sicuri non possono effettuare richieste agli endpoint di rete privata. Vale a dire che i siti web non sicuri pubblicati da indirizzi IP pubblici non possono effettuare richieste a localhost e indirizzi IP privati. I siti web non sicuri pubblicati da indirizzi IP privati non possono effettuare richieste a localhost.
+          Se il criterio viene impostato su Falso, i siti web non sicuri non possono effettuare richieste agli endpoint di rete privata. Vale a dire che i siti web non sicuri pubblicati da indirizzi IP pubblici non possono effettuare richieste a localhost e indirizzi IP privati. I siti web non sicuri pubblicati da indirizzi IP privati non possono effettuare richieste a localhost.
 
           Se il criterio viene impostato su Vero, i siti web non sicuri possono effettuare richieste a qualsiasi endpoint di rete, soggetti ad altri controlli multiorigine.</translation>
 <translation id="6833064854262015312">Se il criterio è impostato su True, la modalità ad alto contrasto viene attivata nella schermata di accesso. Se il criterio è impostato su False, la modalità ad alto contrasto viene disattivata nella schermata di accesso.
@@ -5630,7 +5624,7 @@
 <translation id="9112727953998243860">File di configurazione delle stampanti aziendali</translation>
 <translation id="9116740039944096995">Elenco di pattern URL. Le richieste di rete privata inoltrate da siti web non sicuri pubblicati dalle origini corrispondenti sono consentite.
 
-          Se non configurato, questo criterio si comporta come se fosse impostato sull'elenco vuoto.
+          Se non configurato, questo criterio considera l'elenco come vuoto.
 
           Per le origini non coperte dai pattern specificati qui, il valore predefinito globale viene utilizzato dal criterio <ph name="INSECURE_PRIVATE_NETWORK_REQUESTS_ALLOWED_POLICY_NAME" />, se configurato, o altrimenti dalla configurazione personale dell'utente.
 
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 9132d94..c1903c3 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -1293,12 +1293,6 @@
 <translation id="2901725272378498025">コマンドライン フラグに関するセキュリティ警告を有効にする</translation>
 <translation id="2905984450136807296">認証データのキャッシュ期間</translation>
 <translation id="2906874737073861391">AppPack 拡張機能リスト</translation>
-<translation id="2907992746861405243">ユーザーが <ph name="BULK_PRINTERS_POLICY" /> のどのプリンタを使用できるかを制御します。
-
-      このポリシーは、プリンタの一括設定で使用するアクセス ポリシーを指定するものです。<ph name="PRINTERS_ALLOW_ALL" /> が選択されている場合は、すべてのプリンタが表示されます。<ph name="PRINTERS_BLACKLIST" /> が選択されている場合は、<ph name="BULK_PRINTERS_BLACKLIST" /> で指定されたプリンタへのアクセスが制限されます。<ph name="PRINTERS_WHITELIST" /> が選択されている場合は、<ph name="BULK_PRINTERS_WHITELIST" /> で指定されたプリンタのみが選択可能になります。
-
-      このポリシーが未設定の場合は、<ph name="PRINTERS_ALLOW_ALL" /> が選択された場合と同じ動作になります。
-      </translation>
 <translation id="2908277604670530363">プロキシ サーバーへの最大同時接続数</translation>
 <translation id="2921222258441684334">このポリシーを 1 に設定した場合、サイトはデフォルトの状態としてユーザーの物理的な現在地を追跡できます。このポリシーを 2 に設定した場合、この追跡はデフォルトで拒否されます。サイトがユーザーの物理的な現在地を追跡しようとしたときに毎回確認するよう、このポリシーを設定することもできます。
 
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index aa2e6b8..2e4b9a1 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -194,6 +194,21 @@
 <translation id="1291880496936992484">경고: 버전 52(2016년 9월경)부터 <ph name="PRODUCT_NAME" />에서 RC4가 완전히 제거되며, 이후 이 정책은 적용되지 않습니다.
 
       이 정책이 설정되지 않았거나 'false'로 설정된 경우 TLS RC4 암호화 기술이 사용되지 않습니다. 그렇지 않으면 정책을 'true'로 설정해 오래된 서버와의 호환성을 유지할 수 있습니다. 이는 임시 조치이며 서버는 다시 구성해야 합니다.</translation>
+<translation id="1294120942989031743">정책을 설정하면 사용자 상호작용 없이 자동으로 설치되는 앱 및 확장 프로그램 목록이 지정되며, 사용자가 제거하거나 사용 중지할 수 없습니다. enterprise.deviceAttributes 및 enterprise.platformKeys 확장 프로그램 API의 권한을 비롯한 권한은 암시적으로 부여됩니다. (이 2개의 API는 강제 설치되지 않은 앱과 확장 프로그램에서 사용 가능합니다.)
+
+      정책을 설정하지 않으면 앱과 확장 프로그램이 자동 설치되지 않으며 사용자는 <ph name="PRODUCT_NAME" />에서 모든 앱 또는 확장 프로그램을 제거할 수 있습니다.
+
+      이 정책은 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> 정책을 대체합니다. 기존에 강제 설치된 앱 또는 확장 프로그램은 이 목록에서 삭제되며 <ph name="PRODUCT_NAME" />에 의해 자동으로 제거됩니다.
+
+      <ph name="MS_WIN_NAME" /> 인스턴스에서 인스턴스가 <ph name="MS_AD_NAME" /> 도메인에 연결되었거나 Windows 10 Pro에서 실행되거나 Chrome 브라우저 클라우드 관리에 등록된 경우 Chrome 웹 스토어 외부의 앱 및 확장 프로그램이 강제로 설치될 수 있습니다.
+
+      <ph name="MAC_OS_NAME" /> 인스턴스에서 인스턴스가 MDM을 통해 관리되거나 MCX를 통해 도메인에 연결된 경우 Chrome 웹 스토어 외부의 앱 및 확장 프로그램이 강제 설치될 수 있습니다.
+
+      모든 확장 프로그램의 소스 코드는 사용자가 개발자 도구를 통해 변경할 수 있으며, 이 과정에서 확장 프로그램 오작동이 발생할 수 있습니다. 이 점이 우려된다면 <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> 정책을 설정하세요.
+
+      정책의 각 목록 항목은 세미콜론(;)으로 구분된 확장 프로그램 ID 및 '업데이트' URL(선택사항)로 구성된 문자열입니다. 확장 프로그램 ID는 32자리 문자열로, 예를 들어 개발자 모드일 때 chrome://extensions에서 확인할 수 있습니다. '업데이트' URL을 지정하는 경우 업데이트 매니페스트 XML 문서( https://developer.chrome.com/extensions/autoupdate )로 연결되어야 합니다. 기본적으로 Chrome 웹 스토어의 업데이트 URL이 사용됩니다. 정책에 설정된 '업데이트' URL은 최초 설치 시에만 사용되며 향후 확장 프로그램 업데이트에서는 확장 프로그램 매니페스트에 있는 업데이트 URL이 사용됩니다.
+
+       참고: 이 정책은 시크릿 모드에는 적용되지 않습니다. 확장 프로그램 호스팅에 관해 자세히 알아보세요(https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="1294263471858445589">시크릿 모드와 일반 세션에서 수동 인증을 사용 설정합니다.</translation>
 <translation id="1295737447968372331">로그인 화면에서 음성기록 사용</translation>
 <translation id="1297182715641689552">.pac 프록시 스크립트 사용</translation>
@@ -983,6 +998,13 @@
 
       이 정책이 False로 설정되어 있으면 사용자가 네트워크 파일 공유를 사용할 수 없게 됩니다.</translation>
 <translation id="2435052056904485763">Kerberos 위임 서버 허용 목록</translation>
+<translation id="2439793457499023062">정책이 설정되지 않은 경우 Chrome 정리도구가 원치 않은 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책에 따라 Google에 검사 관련 메타데이터를 보고할 수 있습니다. 그런 다음 Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다. 사용자는 Google과 정리 결과를 공유하여 향후 원치 않은 소프트웨어 감지를 도울 것인지 여부를 선택할 수 있습니다. 이러한 결과에는 Chrome 개인정보 보호 백서에 명시된 바와 같이 파일 메타데이터, 자동 설치된 확장 프로그램, 레지스트리 키가 포함됩니다.
+
+      정책이 사용 중지된 경우 Chrome 정리도구가 원치 않은 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책을 재정의하여 Google에 검사 관련 메타데이터를 보고하지 않습니다. Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다.  정리 결과는 Google에 보고되지 않으며 사용자에게는 Google에 정리 결과를 보고하도록 선택할 옵션이 없습니다.
+
+      사용 설정된 경우 Chrome 정리도구가 원치 않은 소프트웨어를 발견하면 SafeBrowsingExtendedReportingEnabled에서 설정한 정책에 따라 Google에 검사 관련 메타데이터를 보고할 수 있습니다. Chrome 정리도구가 사용자에게 원치 않은 소프트웨어를 삭제할 것인지 묻습니다.  정리 결과는 Google에 보고되며 사용자에게는 Google에 정리 결과를 보고하지 않도록 선택할 옵션이 없습니다.
+
+      <ph name="MS_WIN_NAME" />에서 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="2440773021691931148">전원과 관련된 하드웨어 통계 및 식별자를 보고합니다.
 
       정책이 False로 설정되거나 설정되지 않으면 통계가 보고되지 않습니다.
@@ -1315,12 +1337,6 @@
 <translation id="2901725272378498025">명령줄 플래그에 보안 경고를 사용합니다.</translation>
 <translation id="2905984450136807296">인증 데이터 캐시 전체 기간</translation>
 <translation id="2906874737073861391">AppPack 확장 프로그램 목록</translation>
-<translation id="2907992746861405243"><ph name="BULK_PRINTERS_POLICY" />에 명시된 프린터 중 어떤 프린터를 사용자에게 제공할지 관리합니다.
-
-      일괄 프린터 설정에 사용할 액세스 정책을 지정합니다. <ph name="PRINTERS_ALLOW_ALL" />을(를) 선택하면 모든 프린터가 표시됩니다. <ph name="PRINTERS_BLACKLIST" />을(를) 선택하면 <ph name="BULK_PRINTERS_BLACKLIST" />이(가) 사용되어 특정 프린터에 관한 액세스 권한이 제한됩니다. <ph name="PRINTERS_WHITELIST" />을(를) 선택하면 <ph name="BULK_PRINTERS_WHITELIST" />이(가) 사용되어 선택 가능한 프린터만 지정됩니다.
-
-      이 정책이 설정되어 있지 않으면 <ph name="PRINTERS_ALLOW_ALL" />이(가) 기본적으로 사용됩니다.
-      </translation>
 <translation id="2908277604670530363">프록시 서버에 대한 최대 동시 연결 수</translation>
 <translation id="2921222258441684334">정책을 1로 설정하면 사이트에서 기본 상태로 사용자의 실제 위치를 추적하도록 허용합니다. 정책을 2로 설정하면 이 추적을 기본적으로 거부합니다. 사이트에서 사용자의 실제 위치를 추적하려고 할 때마다 사용자에게 묻도록 정책을 설정할 수 있습니다.
 
@@ -1587,6 +1603,11 @@
 True로 설정하거나 설정하지 않으면 <ph name="PRODUCT_NAME" />에서 기본 알림을 사용하도록 허용됩니다.
 
 False로 설정하면 <ph name="PRODUCT_NAME" />에서 기본 알림을 사용할 수 없습니다. <ph name="PRODUCT_NAME" />의 메시지 센터가 대체 알림으로 사용됩니다.</translation>
+<translation id="3359446912268498764">정책이 사용 중지되면 Chrome 정리도구가 시스템에 원치 않는 소프트웨어가 있는지 검사하지 않으며 정리를 실행하지 않습니다. chrome://settings/cleanup에서 Chrome 정리도구를 수동으로 실행할 수도 없습니다.
+
+      정책이 사용 설정되거나 설정되지 않으면 Chrome 정리도구가 시스템에 원치 않는 소프트웨어가 있는지 정기적으로 검사하여 이러한 소프트웨어가 발견될 경우 사용자에게 삭제할 것인지 묻습니다. chrome://settings에서 Chrome 정리도구를 수동으로 실행할 수도 있습니다.
+
+      <ph name="MS_WIN_NAME" />에서 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="3360093276083825336">이 정책은 지원이 중단되었으며 <ph name="PRODUCT_OS_NAME" /> 버전 85에서 삭제될 예정입니다. 대신 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> 정책을 사용하세요.
 
           배터리 전원 사용 시 사용자의 입력 없이 어느 정도의 시간이 지나면 경고 대화상자가 표시될지 지정합니다.
@@ -1776,6 +1797,13 @@
 <translation id="355118380775352753">대체 브라우저에서 열리는 웹사이트</translation>
 <translation id="3554498762428140109">네이티브 창 오클루전 사용 설정</translation>
 <translation id="3554984410014457319">Google 어시스턴트가 음성 활성화 문구를 감지하도록 허용</translation>
+<translation id="3562741878192828370">다운로드 시 자동으로 열려야 하는 파일 형식 목록입니다. 파일 형식을 나열할 때 접두 구분자가 포함되어서는 안 됩니다. '.txt' 대신 'txt'로 표시하세요.
+
+      세이프 브라우징 확인이 사용 설정된 경우 자동으로 열려야 하는 형식의 파일에도 적용되며, 파일이 이 확인을 통과하지 못하면 열리지 않습니다.
+
+      정책을 설정하지 않은 경우 사용자가 이미 자동으로 열리도록 지정한 파일 형식만 다운로드 시 자동으로 열립니다.
+
+      <ph name="MS_WIN_NAME" />에서 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다. <ph name="MAC_OS_NAME" />에서 이 기능은 MDM을 통해 관리되는 인스턴스 또는 MCX를 통해 도메인에 연결된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="356579196325389849">사용자가 Chrome OS 출시 채널을 구성할 수 있습니다.</translation>
 <translation id="3575011234198230041">HTTP 인증</translation>
 <translation id="3577251398714997599">방해가 되는 광고가 포함된 사이트의 광고 설정</translation>
@@ -2290,6 +2318,15 @@
 <translation id="4341199399451274159"><ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" />가 사용 설정되어 있으면 <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />을(를) 설정할 경우 검색 공급자에서 지원되는 문자 인코딩을 지정합니다. 인코딩은 UTF-8, GB2312 및 ISO-8859-1과 같은 코드 페이지 이름입니다. 인코딩은 제공된 순서대로 사용됩니다.
 
       <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />를 설정하지 않으면 UTF-8이 사용됩니다.</translation>
+<translation id="4343304913975482972">세이프 브라우징에서 신뢰할 도메인 목록을 구성합니다. 이는
+      URL이 신뢰할 도메인과 일치하면 세이프 브라우징에서 위험한 리소스(예: 피싱, 멀웨어, 원치 않은 소프트웨어) 여부를 확인하지 않는다는 의미입니다.
+      세이프 브라우징의 다운로드 보호 서비스에서 신뢰할 도메인에 호스팅된 다운로드 항목을 확인하지 않습니다.
+      페이지 URL이 신뢰할 도메인과 일치하면 세이프 브라우징의 비밀번호 보호 서비스가 비밀번호 재사용을 확인하지 않습니다.
+
+      이 설정을 사용하면 세이프 브라우징에서 이러한 도메인을 신뢰합니다.
+      사용 중지하거나 설정하지 않으면 세이프 브라우징의 기본 보호가 모든 리소스에 적용됩니다.
+
+      <ph name="MS_WIN_NAME" />에서 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다. <ph name="MAC_OS_NAME" />에서 이 기능은 MDM을 통해 관리되는 인스턴스 또는 MCX를 통해 도메인에 연결된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="4343382787226139147">기기 관리 프로토콜을 사용하여 등록해야 하는 클라이언트 인증서를 지정합니다.</translation>
 <translation id="4347908978527632940">true로 설정되어 있고 사용자가 관리 대상 사용자인 경우 다른 Android 앱에서 콘텐츠 제공업체를 통해 사용자의 웹 제한사항을 검색할 수 있습니다.
 
@@ -4661,6 +4698,11 @@
 <translation id="7648907905084499629">모든 사이트에서 쿠키에 <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> 동작 사용</translation>
 <translation id="7651739109954974365">데이터 로밍을 기기에 사용할 지 여부를 결정합니다. true로 설정하면 데이터 로밍이 허용됩니다. 구성하지 않거나 false로 설정하면 데이터 로밍은 사용할 수 없습니다.</translation>
 <translation id="7657261947024629645">성능에 최적화합니다.</translation>
+<translation id="7668830462800981702">정책을 '사용'으로 설정하면 사용자가 주소 표시줄에 URL이 아닌 텍스트를 입력했을 때 기본 검색이 수행됩니다. 기본 검색 공급자를 지정하려면 기본 검색 정책의 나머지를 설정하세요. 이러한 정책을 비워두면 사용자가 기본 공급자를 선택할 수 있습니다. 정책을 '사용 안함'으로 설정하면 사용자가 주소 표시줄에 URL이 아닌 텍스트를 입력했을 때 검색이 수행되지 않습니다.
+
+      정책을 설정하면 <ph name="PRODUCT_NAME" />에서 사용자가 변경할 수 없습니다. 정책을 설정하지 않으면 기본 검색 공급자가 사용 설정되고 사용자는 검색 공급자 목록을 설정할 수 있습니다.
+
+      <ph name="MS_WIN_NAME" />에서 이 기능은 <ph name="MS_AD_NAME" /> 도메인에 연결된 인스턴스, Windows 10 Pro에서 실행되는 인스턴스, Chrome 브라우저 클라우드 관리에 등록된 인스턴스에서만 사용할 수 있습니다. <ph name="MAC_OS_NAME" />에서 이 기능은 MDM을 통해 관리되는 인스턴스 또는 MCX를 통해 도메인에 연결된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="7673194325208122247">기간(밀리초)</translation>
 <translation id="7677220829878081413">
       이 정책을 ArcSession으로 설정하면 Android가 시작되었을 때 사용자가 로그아웃하면 기기가 강제로 재부팅됩니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 0c3f5b67..28b8580 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -195,6 +195,21 @@
 <translation id="1291880496936992484">Waarschuwing: RC4 wordt volledig verwijderd van <ph name="PRODUCT_NAME" /> na versie 52 (rond september 2016) en dit beleid werkt vanaf dan niet meer.
 
       Als het beleid niet is ingesteld of is ingesteld op 'False', worden de RC4-coderingssuites in TLS niet ingeschakeld. Anders kan het worden ingesteld op 'True' om compatibiliteit met een verouderde server te behouden. Dit is een tijdelijke oplossing en de server moet opnieuw worden geconfigureerd.</translation>
+<translation id="1294120942989031743">Als je het beleid instelt, wordt een lijst met apps en extensies gespecificeerd die op de achtergrond worden geïnstalleerd zonder interactie met de gebruiker en die niet kunnen worden verwijderd of uitgeschakeld door gebruikers. Rechten worden impliciet verleend, waaronder voor de extensie-API's enterprise.deviceAttributes en enterprise.platformKeys. (Deze twee API's zijn niet beschikbaar voor apps en extensies die niet afgedwongen geïnstalleerd zijn.)
+
+      Als je dit beleid niet instelt, worden apps of extensies niet automatisch geïnstalleerd en kunnen gebruikers elke app of extensie in <ph name="PRODUCT_NAME" /> verwijderen.
+
+      Dit beleid vervangt het beleid <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Als een eerder afgedwongen geïnstalleerde app of extensie wordt verwijderd uit deze lijst, verwijdert <ph name="PRODUCT_NAME" /> de app of extensie automatisch.
+
+      In <ph name="MS_WIN_NAME" /> kunnen instanties, apps en extensies van buiten de Chrome Web Store alleen afgedwongen worden geïnstalleerd als de instantie is gekoppeld aan een <ph name="MS_AD_NAME" />-domein, wordt uitgevoerd in Windows 10 Pro of is ingeschreven voor 'Cloudbeheer voor de Chrome-browser'.
+
+      In <ph name="MAC_OS_NAME" /> kunnen instanties, apps en extensies van buiten de Chrome Web Store alleen afgedwongen worden geïnstalleerd als de instantie wordt beheerd via MDM of aan een domein is gekoppeld via MCX.
+
+      Gebruikers kunnen de broncode van een extensie wijzigen via de ontwikkelaarstools, waardoor de extensie mogelijk niet meer functioneert. Als je je hierover zorgen maakt, moet je het beleid '<ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />' instellen.
+
+      Elk lijstitem van het beleid is een tekenreeks die een extensie-ID en optioneel een update-URL bevat, gescheiden door een puntkomma (;). De extensie-ID is de tekenreeks van 32 letters die bijvoorbeeld op chrome://extensions kan worden gevonden als de ontwikkelaarsmodus actief is. De update-URL, indien opgegeven, moet verwijzen naar een XML-updatedocument voor het manifest (https://developer.chrome.com/extensions/autoupdate). Standaard wordt de update-URL van de Chrome Web Store gebruikt. De update-URL die in dit beleid is ingesteld, wordt alleen voor de eerste installatie gebruikt. Daaropvolgende updates van de extensie gebruiken de update-URL die in het manifest van de extensie wordt aangegeven.
+
+       Opmerking: Dit beleid is niet van toepassing op de incognitomodus. Bekijk meer informatie over het hosten van extensies (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="1294263471858445589">Ambient-verificatie inschakelen in normale en incognitosessies.</translation>
 <translation id="1295737447968372331">Dicteren op het inlogscherm inschakelen</translation>
 <translation id="1297182715641689552">Een PAC-script voor de proxy gebruiken</translation>
@@ -964,6 +979,13 @@
 
       Wanneer dit beleid is ingesteld op 'False', kunnen gebruikers Network File Shares niet gebruiken.</translation>
 <translation id="2435052056904485763">Toelatingslijst voor Kerberos-delegatieserver</translation>
+<translation id="2439793457499023062">Als deze optie niet is ingesteld en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er mogelijk metadata over de scan naar Google gestuurd, volgens het beleid dat is ingesteld met SafeBrowsingExtendedReportingEnabled. Chrome Cleanup vraagt de gebruiker vervolgens of de ongewenste software moet worden opgeschoond. De gebruiker kan ervoor kiezen om de resultaten van de opschoonbewerking met Google te delen en bij te dragen aan de toekomstige detectie van ongewenste software. Deze resultaten bevatten metadata van bestanden, automatisch geïnstalleerde extensies en registersleutels zoals beschreven in de whitepaper over het privacybeleid voor Chrome.
+
+      Als deze optie uitgeschakeld is en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er geen metadata over de scan naar Google gestuurd en wordt het beleid overschreven dat is ingesteld met SafeBrowsingExtendedReportingEnabled. Chrome Cleanup vraagt de gebruiker of deze de ongewenste software wil opschonen.  De resultaten van de opschoonbewerking worden niet aan Google gemeld en de gebruiker beschikt ook niet over de optie om dit te doen.
+
+      Als deze optie is ingeschakeld en er ongewenste software door Chrome Cleanup wordt gedetecteerd, worden er mogelijk metadata over de scan naar Google gestuurd, volgens het beleid dat is ingesteld met SafeBrowsingExtendedReportingEnabled. Chrome Cleanup vraagt de gebruiker of deze de ongewenste software wil opschonen.  De resultaten van de opschoonbewerking worden gemeld aan Google en de gebruiker beschikt niet over de optie om dit te voorkomen.
+
+      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'.</translation>
 <translation id="2440773021691931148">Hiermee worden hardwarestatistieken en -ID's over de stroomstatus gerapporteerd.
 
       Als het beleid is ingesteld op False of niet is ingesteld, worden de statistieken niet gerapporteerd.
@@ -1296,12 +1318,6 @@
 <translation id="2901725272378498025">Beveiligingswaarschuwingen voor opdrachtregelmarkeringen inschakelen</translation>
 <translation id="2905984450136807296">Levensduur van verificatiegegevens in cachegeheugen</translation>
 <translation id="2906874737073861391">Lijst met app-pakketextensies</translation>
-<translation id="2907992746861405243">Hiermee wordt beheerd welke printers uit <ph name="BULK_PRINTERS_POLICY" /> beschikbaar zijn voor gebruikers.
-
-      Hiermee wordt aangegeven welk toegangsbeleid wordt gebruikt voor bulksgewijze printerconfiguratie. Als <ph name="PRINTERS_ALLOW_ALL" /> is geselecteerd, worden alle printers weergegeven. Als <ph name="PRINTERS_BLACKLIST" /> is geselecteerd, wordt <ph name="BULK_PRINTERS_BLACKLIST" /> gebruikt om de toegang tot de opgegeven printers te beperken. Als <ph name="PRINTERS_WHITELIST" /> is geselecteerd, geeft <ph name="BULK_PRINTERS_WHITELIST" /> alleen die printers aan die kunnen worden geselecteerd.
-
-      Als dit beleid niet is ingesteld, wordt er uitgegaan van <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Maximaal aantal gelijktijdige verbindingen met de proxyserver</translation>
 <translation id="2921222258441684334">Als je het beleid instelt op 1, kunnen sites de fysieke locatie van gebruikers standaard bijhouden. Als je het beleid instelt op 2, wordt het bijhouden van de fysieke locatie van gebruikers standaard geblokkeerd. Je kunt het beleid zo instellen dat om goedkeuring wordt gevraagd als een site de fysieke locatie van gebruikers wil bijhouden.
 
@@ -1568,6 +1584,11 @@
 Als dit beleid is ingesteld op True of niet is ingesteld, mag <ph name="PRODUCT_NAME" /> native meldingen gebruiken.
 
 Als dit beleid is ingesteld op False, gebruikt <ph name="PRODUCT_NAME" /> geen native meldingen. Het berichtencentrum van <ph name="PRODUCT_NAME" /> wordt gebruikt als reserve.</translation>
+<translation id="3359446912268498764">Als dit beleid uitgeschakeld is, scant Chrome Cleanup het systeem niet op ongewenste software en kan de tool niets opschonen. Het is in dit geval ook niet meer mogelijk Chrome Cleanup handmatig te starten via chrome://settings/cleanup.
+
+      Als het beleid ingeschakeld is, of niet ingesteld is, scant Chrome Cleanup het systeem periodiek op ongewenste software. Als er ongewenste software wordt aangetroffen, wordt de gebruiker gevraagd of deze software moet worden verwijderd. Het is in dit geval mogelijk Chrome Cleanup te starten via chrome://settings.
+
+      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'.</translation>
 <translation id="3360093276083825336">Dit beleid is beëindigd en wordt verwijderd in <ph name="PRODUCT_OS_NAME" />-versie 85. Gebruik in plaats daarvan <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Specificeert de tijdsduur zonder gebruikersinvoer waarna een waarschuwingsdialoogvenster wordt weergegeven als er op de batterij wordt gewerkt.
@@ -1755,6 +1776,13 @@
 <translation id="355118380775352753">Websites die worden geopend in de alternatieve browser</translation>
 <translation id="3554498762428140109">Native occlusie van vensters inschakelen</translation>
 <translation id="3554984410014457319">De Google Assistent laten luisteren naar de spraakactiveringszin</translation>
+<translation id="3562741878192828370">Lijst met bestandstypen die automatisch moeten worden geopend nadat ze zijn gedownload. Het voorafgaande scheidingsteken mag niet worden opgenomen als je het bestandstype vermeldt. Vermeld dus 'txt' in plaats van '.txt'.
+
+      Bestanden met typen die automatisch moeten worden geopend, vallen nog steeds onder de ingeschakelde Safe Browsing-checks en worden niet geopend als ze die checks niet doorstaan.
+
+      Als dit beleid niet is ingesteld, worden alleen bestandstypen waarvoor een gebruiker dit al heeft opgegeven, automatisch geopend nadat ze zijn gedownload.
+
+      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'. In <ph name="MAC_OS_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die via MDM worden beheerd of via MCX aan een domein zijn gekoppeld.</translation>
 <translation id="356579196325389849">Gebruikers kunnen het releasekanaal voor Chrome OS configureren.</translation>
 <translation id="3575011234198230041">HTTP-verificatie</translation>
 <translation id="3577251398714997599">Advertentie-instellingen voor sites met opdringerige advertenties</translation>
@@ -2268,6 +2296,15 @@
 <translation id="4341199399451274159">Als <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> is ingeschakeld en je <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> instelt, worden de tekencoderingen gespecificeerd die worden ondersteund door de zoekprovider. Deze coderingen zijn codepaginanamen zoals UTF-8, GB2312 en ISO-8859-1. Ze worden getest in de volgorde waarin ze worden opgegeven.
 
       Als je <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> niet instelt, wordt UTF-8 gebruikt.</translation>
+<translation id="4343304913975482972">Configureer de lijst met domeinen die door Safe Browsing worden vertrouwd. Dit betekent het volgende:
+      Safe Browsing checkt niet op gevaarlijke bronnen (zoals phishing, malware of ongewenste software) als de URL's van de bronnen overeenkomen met deze domeinen.
+      De downloadbeveiligingsservice van Safe Browsing checkt geen downloads die op deze domeinen worden gehost.
+      De wachtwoordbeveiligingsservice van Safe Browsing checkt niet of wachtwoorden opnieuw worden gebruikt als de pagina-URL overeenkomt met deze domeinen.
+
+      Als deze instelling is ingeschakeld, worden deze domeinen vertrouwd door Safe Browsing.
+      Als deze instelling uitgeschakeld of niet ingesteld is, wordt de standaard Safe Browsing-beveiliging toegepast op alle bronnen.
+
+      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'. In <ph name="MAC_OS_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die via MDM worden beheerd of via MCX aan een domein zijn gekoppeld.</translation>
 <translation id="4343382787226139147">Specificeert clientcertificaten die moeten worden ingeschreven via het protocol voor apparaatbeheer.</translation>
 <translation id="4347908978527632940">Als beleid 'True' is en de gebruiker een gebruiker met beperkte rechten is, kunnen andere Android-apps de internetbeperkingen van de gebruiker opvragen via de contentprovider.
 
@@ -4618,6 +4655,11 @@
 <translation id="7648907905084499629">Gedrag van <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> voor cookies op alle sites gebruiken</translation>
 <translation id="7651739109954974365">Bepaalt of dataroaming moet worden ingeschakeld voor het apparaat. Als dit is ingesteld op 'true', wordt dataroaming toegestaan. Als de instelling niet wordt geconfigureerd of op 'false' is ingesteld, is dataroaming niet beschikbaar.</translation>
 <translation id="7657261947024629645">Optimaliseren voor betere prestaties.</translation>
+<translation id="7668830462800981702">Als je het beleid inschakelt, wordt er een standaard zoekopdracht uitgevoerd als de gebruiker in de adresbalk tekst invoert die geen URL is. Als je de standaard zoekprovider wilt opgeven, stel je alle andere standaard zoekbeleidsregels in. Als je die zoekbeleidsregels leeg laat, kan de gebruiker zelf de standaardprovider kiezen. Als je het beleid uitschakelt, wordt er geen zoekopdracht uitgevoerd als de gebruiker in de adresbalk tekst invoert die geen URL is.
+
+      Als je het beleid instelt, kunnen gebruikers het niet wijzigen in <ph name="PRODUCT_NAME" />. Als je dit beleid niet instelt, wordt de standaard zoekprovider ingeschakeld en kunnen gebruikers de lijst met zoekproviders instellen.
+
+      In <ph name="MS_WIN_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein, worden uitgevoerd in Windows 10 Pro of zijn ingeschreven voor 'Cloudbeheer voor de Chrome-browser'. In <ph name="MAC_OS_NAME" /> is deze functionaliteit alleen beschikbaar voor instanties die via MDM worden beheerd of via MCX aan een domein zijn gekoppeld.</translation>
 <translation id="7673194325208122247">Periode (milliseconden)</translation>
 <translation id="7677220829878081413">
       Als dit beleid is ingesteld op ArcSession, wordt het apparaat gedwongen opnieuw opgestart na het uitloggen van een gebruiker als Android is gestart.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index fca2b5d..4afb8d1 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1317,12 +1317,6 @@
 <translation id="2901725272378498025">Ativar avisos de segurança para sinalizações de linha de comando</translation>
 <translation id="2905984450136807296">Ciclo de vida do cache de dados de autenticação</translation>
 <translation id="2906874737073861391">Lista de extensões AppPack</translation>
-<translation id="2907992746861405243">Controla quais impressoras da <ph name="BULK_PRINTERS_POLICY" /> estão disponíveis para o usuário.
-
-      Determina qual política de acesso é usada na configuração de impressoras em massa. Se a opção <ph name="PRINTERS_ALLOW_ALL" /> for selecionada, todas as impressoras serão exibidas. Se a opção <ph name="PRINTERS_BLACKLIST" /> for selecionada, <ph name="BULK_PRINTERS_BLACKLIST" /> será utilizada para restringir o acesso às impressoras especificadas. Se a opção <ph name="PRINTERS_WHITELIST" /> for selecionada, <ph name="BULK_PRINTERS_WHITELIST" /> designará apenas as impressoras que puderem ser selecionadas.
-
-      Se esta política não for definida, a opção <ph name="PRINTERS_ALLOW_ALL" /> será adotada.
-      </translation>
 <translation id="2908277604670530363">Número máximo de conexões simultâneas ao servidor proxy</translation>
 <translation id="2921222258441684334">Se a política for definida como 1, os sites poderão rastrear a localização física dos usuários como o estado padrão. Se a política for definida como 2, será negado o rastreamento como padrão. É possível definir a política para perguntar sempre que um site quiser rastrear a localização física dos usuários.
 
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 8d9e072e..d262e29 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1291,12 +1291,6 @@
 <translation id="2901725272378498025">Включить предупреждения системы безопасности для флагов командной строки</translation>
 <translation id="2905984450136807296">Срок использования кешированных данных аутентификации</translation>
 <translation id="2906874737073861391">Список расширений в пакете приложений</translation>
-<translation id="2907992746861405243">Позволяет настроить доступ к принтерам из правила <ph name="BULK_PRINTERS_POLICY" />.
-
-      Чтобы пользователи видели все принтеры, задайте параметр <ph name="PRINTERS_ALLOW_ALL" />. Если выбрать параметр <ph name="PRINTERS_BLACKLIST" />, доступ к определенным принтерам нужно будет закрыть с помощью правила <ph name="BULK_PRINTERS_BLACKLIST" />. Если выбрать <ph name="PRINTERS_WHITELIST" />, доступ нужно будет открыть с помощью правила <ph name="BULK_PRINTERS_WHITELIST" />.
-
-      Если правило не настроено, используется параметр <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Максимальное количество одновременных подключений к прокси-серверу</translation>
 <translation id="2921222258441684334">Если выбрано значение 1, сайтам будет по умолчанию разрешено отслеживать местоположение пользователей, а если выбрано значение 2, – запрещено. Вы можете настроить правило так, чтобы спрашивать, пытается ли сайт отследить местоположение пользователя
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 7b82337..40f57d1 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -194,6 +194,21 @@
 <translation id="1291880496936992484">คำเตือน: ระบบจะนำ RC4 ออกจาก <ph name="PRODUCT_NAME" /> โดยสมบูรณ์หลังจากเวอร์ชัน 52 (ประมาณเดือนกันยายน 2016) จากนั้นนโยบายนี้จะหยุดทำงาน
 
       หากไม่มีการตั้งค่านโยบายนี้หรือตั้งค่าเป็น False จะทำให้ไม่มีการเปิดใช้ชุดการเข้ารหัสของ RC4 ใน TLS มิเช่นนั้น อาจตั้งค่าเป็น True เพื่อรักษาความเข้ากันได้กับเซิร์ฟเวอร์ที่ล้าสมัย ซึ่งการดำเนินการนี้เป็นเพียงมาตรการชั่วคราวและควรกำหนดค่าเซิร์ฟเวอร์อีกครั้ง</translation>
+<translation id="1294120942989031743">การตั้งค่านโยบายนี้จะระบุรายชื่อแอปและส่วนขยายที่ติดตั้งแบบเงียบ (ไม่ต้องมีการโต้ตอบจากผู้ใช้) และผู้ใช้จะถอนการติดตั้งหรือปิดใช้ไม่ได้ ระบบจะให้สิทธิ์โดยปริยาย ซึ่งรวมถึงสิทธิ์การใช้ API ของส่วนขยาย enterprise.deviceAttributes และ enterprise.platformKeys (API ทั้งสองนี้ใช้ไม่ได้กับแอปและส่วนขยายที่ไม่ได้บังคับติดตั้ง)
+
+      หากไม่ตั้งค่านโยบายนี้ จะไม่มีแอปหรือส่วนขยายใดที่ติดตั้งโดยอัตโนมัติ และผู้ใช้จะถอนการติดตั้งแอปหรือส่วนขยายใดก็ได้ใน <ph name="PRODUCT_NAME" />
+
+      นโยบายนี้มีผลแทนนโยบาย <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> หากมีการนำแอปหรือส่วนขยายที่บังคับติดตั้งก่อนหน้านี้ออกจากรายชื่อนี้ <ph name="PRODUCT_NAME" /> จะถอนการติดตั้งแอปหรือส่วนขยายนั้นโดยอัตโนมัติ
+
+      ใน <ph name="MS_WIN_NAME" /> จะบังคับติดตั้งอินสแตนซ์ แอป และส่วนขยายที่ไม่ได้มาจาก Chrome เว็บสโตร์ได้เฉพาะในกรณีที่อินสแตนซ์นั้นเข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome
+
+      ใน <ph name="MAC_OS_NAME" /> จะบังคับติดตั้งอินสแตนซ์ แอป และส่วนขยายที่ไม่ได้มาจาก Chrome เว็บสโตร์ได้เฉพาะในกรณีที่อินสแตนซ์นั้นจัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX
+
+      ผู้ใช้จะแก้ไขซอร์สโค้ดของส่วนขยายใดๆ ผ่านเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ ซึ่งอาจทำให้ส่วนขยายทำงานผิดปกติ หากกังวลว่าจะเกิดปัญหานี้ขึ้น ให้ตั้งค่านโยบาย <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />
+
+      แต่ละรายการของนโยบายเป็นสตริงที่มีรหัสส่วนขยาย และอาจมี URL "อัปเดต" ที่คั่นด้วยอัฒภาค (;) รหัสส่วนขยายคือสตริงตัวอักษร 32 ตัว เช่น ที่พบใน chrome://extensions เมื่ออยู่ในโหมดนักพัฒนาซอฟต์แวร์ URL "อัปเดต" (หากระบุไว้) ควรชี้ไปยังเอกสาร XML ไฟล์ Manifest ของการอัปเดต (https://developer.chrome.com/extensions/autoupdate) ระบบจะใช้ URL อัปเดตของ Chrome เว็บสโตร์โดยค่าเริ่มต้น URL "อัปเดต" ที่กำหนดไว้ในนโยบายนี้จะใช้สำหรับการติดตั้งครั้งแรกเท่านั้น ส่วนการอัปเดตส่วนขยายในครั้งต่อๆ ไปจะใช้ URL อัปเดตในไฟล์ Manifest ของส่วนขยาย
+
+       หมายเหตุ: นโยบายนี้ไม่มีผลกับโหมดไม่ระบุตัวตน อ่านเกี่ยวกับการโฮสต์ส่วนขยาย (https://developer.chrome.com/extensions/hosting)</translation>
 <translation id="1294263471858445589">เปิดใช้การตรวจสอบสิทธิ์แบบแอมเบียนท์ในเซสชันไม่ระบุตัวตนและเซสชันปกติ</translation>
 <translation id="1295737447968372331">เปิดใช้ฟีเจอร์การเขียนตามคำบอกในหน้าจอการเข้าสู่ระบบ</translation>
 <translation id="1297182715641689552">ใช้สคริปต์พร็อกซี .pac</translation>
@@ -956,6 +971,13 @@
 
       ถ้าตั้งค่านโยบายนี้เป็น "เท็จ" ผู้ใช้จะใช้ฟีเจอร์พื้นที่แชร์ไฟล์ของเครือข่ายไม่ได้</translation>
 <translation id="2435052056904485763">รายการที่อนุญาตสำหรับเซิร์ฟเวอร์การมอบสิทธิ์ของ Kerberos</translation>
+<translation id="2439793457499023062">หากไม่ได้ตั้งค่า เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled จากนั้นการทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม ผู้ใช้มีสิทธิ์เลือกแชร์ผลการทำความสะอาดกับ Google เพื่อช่วยในการตรวจจับซอฟต์แวร์ไม่พึงประสงค์ในอนาคต ผลลัพธ์จะมีข้อมูลเมตาของไฟล์ ส่วนขยายที่ติดตั้งอัตโนมัติ และคีย์รีจิสทรีตามที่อธิบายไว้ในสมุดปกขาวเรื่องความเป็นส่วนตัวของ Chrome
+
+      หากปิดใช้ เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบจะไม่รายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google โดยจะลบล้างนโยบายใดๆ ที่ตั้งค่าไว้โดย SafeBrowsingExtendedReportingEnabled การทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม  ระบบจะไม่รายงานผลการทำความสะอาดไปยัง Google และผู้ใช้ก็จะไม่มีตัวเลือกในการรายงานด้วย
+
+หากเปิดใช้ เมื่อการทำความสะอาด Chrome ตรวจพบซอฟต์แวร์ไม่พึงประสงค์ ระบบอาจรายงานข้อมูลเมตาเกี่ยวกับการสแกนไปยัง Google เพื่อให้สอดคล้องกับนโยบายซึ่งกำหนดโดย SafeBrowsingExtendedReportingEnabled การทำความสะอาด Chrome จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ไม่พึงประสงค์ออกไหม  ระบบจะรายงานผลการทำความสะอาดไปยัง Google และผู้ใช้จะไม่มีตัวเลือกในการระงับการรายงานนี้
+
+      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome</translation>
 <translation id="2440773021691931148">รายงานสถิติฮาร์ดแวร์และตัวระบุเกี่ยวกับพลังงาน
 
       หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า จะไม่มีการรายงานสถิติ
@@ -1286,12 +1308,6 @@
 <translation id="2901725272378498025">เปิดใช้คำเตือนด้านความปลอดภัยสำหรับการติดธงบรรทัดคำสั่ง</translation>
 <translation id="2905984450136807296">อายุการใช้งานของแคชข้อมูลการตรวจสอบสิทธิ์</translation>
 <translation id="2906874737073861391">รายการส่วนขยายของ AppPack</translation>
-<translation id="2907992746861405243">ควบคุมว่าผู้ใช้จะใช้งานเครื่องพิมพ์จาก <ph name="BULK_PRINTERS_POLICY" /> เครื่องใดได้บ้าง
-
-      กำหนดนโยบายการเข้าถึงที่ใช้สำหรับการกำหนดค่าเครื่องพิมพ์จำนวนมาก ถ้าเลือก <ph name="PRINTERS_ALLOW_ALL" /> ระบบจะแสดงเครื่องพิมพ์ทั้งหมด ถ้าเลือก <ph name="PRINTERS_BLACKLIST" /> ระบบจะใช้ <ph name="BULK_PRINTERS_BLACKLIST" /> เพื่อจำกัดการเข้าถึงเครื่องพิมพ์ที่ระบุไว้ในนั้น ถ้าเลือก <ph name="PRINTERS_WHITELIST" /> ระบบจะใช้ <ph name="BULK_PRINTERS_WHITELIST" /> ซึ่งระบุเฉพาะเครื่องพิมพ์ที่เลือกใช้งานได้
-
-      ถ้าไม่ได้ตั้งค่านโยบายนี้ไว้ ระบบจะถือว่าเลือก <ph name="PRINTERS_ALLOW_ALL" />
-      </translation>
 <translation id="2908277604670530363">จำนวนสูงสุดของการเชื่อมต่อพร็อกซีเซิร์ฟเวอร์พร้อมกัน</translation>
 <translation id="2921222258441684334">การตั้งค่านโยบายเป็น 1 จะให้เว็บไซต์ติดตามสถานที่ตั้งจริงของผู้ใช้เป็นสถานะเริ่มต้นได้ การตั้งค่านโยบายเป็น 2 จะปฏิเสธการติดตามนี้โดยค่าเริ่มต้น คุณตั้งค่านี้ได้เพื่อถามทุกครั้งที่เว็บไซต์ต้องการติดตามสถานที่ตั้งจริงของผู้ใช้
 
@@ -1558,6 +1574,11 @@
 หากตั้งค่าเป็น "จริง" หรือไม่ได้ตั้งค่าไว้ <ph name="PRODUCT_NAME" /> จะได้รับอนุญาตให้ใช้การแจ้งเตือนดั้งเดิม
 
 หากตั้งค่าเป็น "เท็จ" <ph name="PRODUCT_NAME" /> จะไม่ใช้การแจ้งเตือนดั้งเดิม ระบบจะใช้ศูนย์ข้อความของ <ph name="PRODUCT_NAME" /> เป็นวิธีสำรอง</translation>
+<translation id="3359446912268498764">หากปิดใช้ จะป้องกันไม่ให้การทำความสะอาด Chrome สแกนระบบเพื่อหาซอฟต์แวร์ไม่พึงประสงค์และทำความสะอาด ระบบจะปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup
+
+      หากเปิดใช้หรือไม่ได้ตั้งค่า การทำความสะอาด Chrome จะสแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบอยู่เป็นระยะ และหากพบ ก็จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ดังกล่าวออกไหม ระบบจะเปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings
+
+      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome</translation>
 <translation id="3360093276083825336">โปรดทราบว่าจะมีการเลิกใช้งานและนำนโยบายนี้ออกใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 85 โปรดใช้ <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> แทน
 
           ระบุระยะเวลาก่อนแสดงกล่องคำเตือนหลังจากไม่มีการป้อนข้อมูลจากผู้ใช้ ขณะที่เครื่องทำงานโดยพลังงานแบตเตอรี่
@@ -1745,6 +1766,13 @@
 <translation id="355118380775352753">เว็บไซต์ที่จะเปิดในเบราว์เซอร์สำรอง</translation>
 <translation id="3554498762428140109">เปิดใช้การตรวจหาการบังหน้าต่างในเครื่อง</translation>
 <translation id="3554984410014457319">อนุญาตให้ Google Assistant คอยฟังข้อความการเปิดใช้งานด้วยเสียง</translation>
+<translation id="3562741878192828370">รายการของประเภทไฟล์ที่ควรเปิดโดยอัตโนมัติเมื่อดาวน์โหลดเสร็จ ไม่ควรใส่ตัวคั่นข้างหน้าเมื่อระบุประเภทไฟล์ เช่น ให้ใช้ "txt" แทน ".txt"
+
+      ไฟล์ประเภทที่ควรเปิดโดยอัตโนมัติยังจะต้องผ่านการตรวจสอบของ Google Safe Browsing ที่เปิดใช้อยู่ และระบบจะไม่เปิดไฟล์หากไม่ผ่านการตรวจสอบ
+
+      หากไม่ได้ตั้งค่านโยบาย ประเภทไฟล์ที่ผู้ใช้ระบุไว้แล้วว่าให้เปิดโดยอัตโนมัติเท่านั้นจึงจะเปิดโดยอัตโนมัติเมื่อดาวน์โหลดเสร็จ
+
+      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมในโดเมนผ่าน MCX</translation>
 <translation id="356579196325389849">ผู้ใช้อาจกำหนดค่าเวอร์ชันการเผยแพร่ของ Chrome OS</translation>
 <translation id="3575011234198230041">การตรวจสอบสิทธิ์ HTTP</translation>
 <translation id="3577251398714997599">เครื่องมือตั้งค่าโฆษณาสำหรับเว็บไซต์ที่มีโฆษณาที่แทรก</translation>
@@ -2254,6 +2282,14 @@
 <translation id="4341199399451274159">หาก <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> เปิดอยู่ การตั้งค่า <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> จะระบุการเข้ารหัสอักขระที่ผู้ให้บริการค้นหารองรับ การเข้ารหัสคือชื่อ Code Page เช่น UTF-8, GB2312 และ ISO-8859-1 โดยจะมีการใช้งานตามลำดับที่ระบุ
 
       การไม่ตั้งค่า <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> จะทำให้ระบบใช้งาน UTF-8</translation>
+<translation id="4343304913975482972">กำหนดค่ารายการโดเมนที่ Google Safe Browsing จะเชื่อถือ ซึ่งหมายความว่า Google Safe Browsing จะไม่ตรวจหาทรัพยากรที่เป็นอันตราย (เช่น ฟิชชิง มัลแวร์ หรือซอฟต์แวร์ไม่พึงประสงค์) หาก URL ของทรัพยากรตรงกับโดเมนเหล่านี้
+      บริการปกป้องการดาวน์โหลดของ Google Safe Browsing จะไม่ตรวจสอบการดาวน์โหลดที่โฮสต์ในโดเมนเหล่านี้
+      บริการปกป้องรหัสผ่านของ Google Safe Browsing จะไม่ตรวจสอบการใช้รหัสผ่านซ้ำหาก URL ของหน้าเว็บตรงกับโดเมนเหล่านี้
+
+      หากเปิดใช้การตั้งค่านี้ Google Safe Browsing จะเชื่อถือโดเมนเหล่านี้
+      หากปิดใช้การตั้งค่านี้หรือไม่ได้ตั้งค่า ระบบจะใช้การปกป้องด้วย Google Safe Browsing ที่เป็นค่าเริ่มต้นกับทรัพยากรทั้งหมด
+
+      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมในโดเมนผ่าน MCX</translation>
 <translation id="4343382787226139147">ระบุใบรับรองไคลเอ็นต์ที่ต้องลงทะเบียนโดยใช้โปรโตคอลการจัดการอุปกรณ์</translation>
 <translation id="4347908978527632940">หากเป็น True และผู้ใช้เป็นผู้ใช้ภายใต้การดูแล แอป Android อื่นๆ จะสามารถสืบค้นข้อจำกัดด้านเว็บของผู้ใช้คนดังกล่าวผ่านผู้ให้บริการเนื้อหาได้
 
@@ -4591,6 +4627,11 @@
 <translation id="7648907905084499629">ใช้ลักษณะการทำงาน <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> สำหรับคุกกี้ในทุกเว็บไซต์</translation>
 <translation id="7651739109954974365">กำหนดว่าควรจะเปิดใช้งานการโรมมิ่งข้อมูลสำหรับอุปกรณ์หรือไม่ หากตั้งค่าเป็น "จริง" การโรมมิ่งข้อมูลจะได้รับอนุญาต หากไม่กำหนดค่าหรือตั้งค่าเป็น "เท็จ" จะไม่สามารถใช้การโรมมิ่งข้อมูลได้</translation>
 <translation id="7657261947024629645">เพิ่มประสิทธิภาพ</translation>
+<translation id="7668830462800981702">หากตั้งค่านโยบายเป็น "เปิดใช้" ระบบจะทำการค้นหาที่เป็นค่าเริ่มต้นเมื่อผู้ใช้ป้อนข้อความที่ไม่ใช่ URL ในแถบที่อยู่ หากต้องการระบุผู้ให้บริการค้นหาที่เป็นค่าเริ่มต้น ให้ตั้งค่าส่วนที่เหลือของนโยบายการค้นหาเริ่มต้น หากปล่อยนโยบายเหล่านี้ว่างไว้ ผู้ใช้จะเลือกผู้ให้บริการเริ่มต้นได้ เมื่อตั้งค่านโยบายเป็น "ปิดใช้" จะไม่มีการค้นหาเมื่อผู้ใช้ป้อนข้อความที่ไม่ใช่ URL ในแถบที่อยู่
+
+      หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนค่านั้นใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่าไว้ ระบบจะเปิดใช้ผู้ให้บริการค้นหาเริ่มต้น และผู้ใช้จะกำหนดรายการผู้ให้บริการค้นหาได้
+
+      ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนในการจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมในโดเมนผ่าน MCX</translation>
 <translation id="7673194325208122247">ระยะเวลา (มิลลิวินาที)</translation>
 <translation id="7677220829878081413">
       เมื่อตั้งค่าเป็น ArcSession นโยบายนี้จะบังคับให้อุปกรณ์รีบูตเมื่อผู้ใช้ออกจากระบบหาก Android เริ่มต้นแล้ว
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 05b56ce..fc04fdc0 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -182,6 +182,21 @@
 <translation id="1291880496936992484">Uyarı: RC4, sürüm 52'den sonra (yaklaşık olarak Eylül 2016'da) <ph name="PRODUCT_NAME" /> ürününden tamamen kaldırılacak ve sonrasında bu politika çalışmayacaktır.
 
       Politika ayarlanmamışsa veya yanlış seçeneğine ayarlanmışsa, TLS'deki RC4 şifre paketleri etkinleştirilmez. Aksi takdirde, eski bir sunucuyla uyumluluğun korunması için doğru seçeneğine ayarlanabilir. Bu geçici bir tedbirdir ve sunucu yeniden yapılandırılmalıdır.</translation>
+<translation id="1294120942989031743">Politikanın ayarlanması, kullanıcı etkileşimi olmadan sessizce yüklenen, kullanıcı tarafından yüklemesi kaldırılamayan veya kapatılamayan uygulamaların ve uzantıların bir listesini belirtir. İzinler, enterprise.deviceAttributes ve enterprise.platformKeys uzantı API'leri için dolaylı olarak verilir. (Bu iki API zorunlu olarak yüklenmemiş uygulamalar ve uzantılar tarafından kullanılamaz.)
+
+      Bu politika ayarlanmadan bırakılırsa hiçbir uygulama veya uzantı otomatik olarak yüklenmez ve kullanıcılar <ph name="PRODUCT_NAME" /> ürünündeki uygulama veya uzantıları kaldırabilirler.
+
+      Bu politika, <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> politikasının yerini alır. Önceden zorunlu yüklenmiş bir uygulama veya uzantı listeden çıkarılırsa <ph name="PRODUCT_NAME" /> ürünü, otomatik olarak bu uygulamayı veya uzantıyı kaldırır.
+
+      <ph name="MS_WIN_NAME" /> örneklerinde, Chrome Web Mağazası dışından uygulamalar ve uzantılar, örnek yalnızca Windows 10 üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmışsa veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuşsa zorunlu olarak yüklenebilir.
+
+      <ph name="MAC_OS_NAME" /> örneklerinde, Chrome Web Mağazası dışından gelen uygulamalar ve uzantılar örnek yalnızca MDM ile çalışıyorsa veya MCX aracılığıyla bir alan adına katılmışsa zorunlu olarak yüklenebilir.
+
+      Herhangi bir uzantının kaynak kodu, kullanıcılar tarafından geliştirici araçları kullanılarak uzantının işlevselliğini devre dışı bırakabilecek şekilde değiştirilebilir. Böyle bir endişe olması durumunda <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> politikasını ayarlayın.
+
+      Politikaya ait her liste öğesi, noktalı virgülle (;) ayrılmış bir uzantı kimliği ve isteğe bağlı bir "güncelleme" URL'si içeren bir dizedir. Uzantı kimliği, örneğin Geliştirici modundayken chrome://extensions adresinde bulunabilen 32 harfli bir dizedir. Belirtilmişse "güncelleme" URL'si bir Güncelleme Manifest XML dokümanına işaret etmelidir. ( https://developer.chrome.com/extensions/autoupdate ). Varsayılan olarak Chrome Web Mağazası'nın güncelleme URL'si kullanılır. Bu politikada ayarlanan "güncelleme" URL'si yalnızca ilk yükleme için kullanılır. Uzantının sonraki güncellemelerinde ise uzantının manifest dosyasındaki güncelleme URL'si kullanılır.
+
+       Not: Bu politika gizli mod için geçerli değildir. Uzantıların barındırılması ( https://developer.chrome.com/extensions/hosting ) ile ilgili bilgi edinin.</translation>
 <translation id="1294263471858445589">Ambiyans kimlik doğrulamasını gizli ve normal oturumlarda etkinleştir.</translation>
 <translation id="1295737447968372331">Giriş ekranında dikte özelliğini etkinleştir</translation>
 <translation id="1297182715641689552">.pac proxy komut dosyası kullan</translation>
@@ -954,6 +969,13 @@
 
       Bu politika False (Yanlış) değerine ayarlanırsa, kullanıcılar Ağ Üzerinde Dosya Paylaşımı özelliğini kullanamazlar</translation>
 <translation id="2435052056904485763">Kerberos yetki sunucusu izin verilenler listesi</translation>
+<translation id="2439793457499023062">Ayarlanmadan bırakılırsa Chrome Temizleme Aracı istenmeyen yazılımlar tespit ettiğinde, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde taramayla ilgili meta verileri Google'a raporlayabilir. Chrome Temizleme Aracı, daha sonra kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar. Kullanıcı, ileride istenmeyen yazılımların tespiti konusunda yardımcı olması için temizleme işlemi sonuçlarının Google ile paylaşılmasını seçebilir. Bu sonuçlar, Chrome Gizlilik Raporu'nda açıklandığı gibi dosya meta verilerini, otomatik olarak yüklenen uzantıları ve kayıt defteri anahtarlarını içerir.
+
+      Devre dışı bırakılırsa Chrome Temizleme Aracı istenmeyen yazılımlar tespit ettiğinde, SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikayı geçersiz kılarak taramayla ilgili meta verileri Google'a raporlamaz. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar.  Temizleme işleminin sonuçları Google'a bildirilmez ve kullanıcıya bununla ilgili bir seçenek sunulmaz.
+
+      Etkinleştirilirse Chrome Temizleme, istenmeyen yazılımlar tespit ettiğinde, taramayla ilgili meta verileri SafeBrowsingExtendedReportingEnabled tarafından ayarlanan politikaya uygun şekilde Google'a raporlayabilir. Chrome Temizleme Aracı, kullanıcıya istenmeyen yazılımın temizlenmesini isteyip istemediğini sorar.  Temizleme işleminin sonuçları Google'a bildirilir ve kullanıcıya bunu önleme seçeneği sunulmaz.
+
+      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir.</translation>
 <translation id="2440773021691931148">Güçle ilgili donanım istatistiklerini ve tanımlayıcıları bildirir.
 
       Politika false (yanlış) değerine ayarlanırsa veya ayarlanmadan bırakılırsa istatistikler bildirilmez.
@@ -1286,12 +1308,6 @@
 <translation id="2901725272378498025">Komut satırı işaretleri için güvenlik uyarılarını etkinleştirme</translation>
 <translation id="2905984450136807296">Kimlik doğrulama verisi önbellek ömrü</translation>
 <translation id="2906874737073861391">AppPack uzantılarının listesi</translation>
-<translation id="2907992746861405243">Kullanıcıların <ph name="BULK_PRINTERS_POLICY" /> politikasındaki hangi yazıcıları kullanabileceğini kontrol eder.
-
-      Toplu yazıcı yapılandırması için hangi erişim politikasının kullanılacağını belirler. <ph name="PRINTERS_ALLOW_ALL" /> seçilirse tüm yazıcılar gösterilir. <ph name="PRINTERS_BLACKLIST" /> seçilirse, belirtilen yazıcılara erişimi kısıtlamak için <ph name="BULK_PRINTERS_BLACKLIST" /> kullanılır. <ph name="PRINTERS_WHITELIST" /> seçilirse, <ph name="BULK_PRINTERS_WHITELIST" /> yalnızca seçilebilir yazıcıları gösterir.
-
-      Bu politika ayarlanmazsa <ph name="PRINTERS_ALLOW_ALL" /> uygulanır.
-      </translation>
 <translation id="2908277604670530363">Proxy sunucusuyla yapılabilecek maksimum eşzamanlı bağlantı sayısı</translation>
 <translation id="2921222258441684334">Politikayı 1 değerine ayarlamak sitelerin kullanıcının fiziksel konumunu izlemesine izin verir. Politikayı 2 değerine ayarlamak izlemeyi varsayılan olarak kapatır. Politikayı, web siteleri fiziksel konumunuzu izlemek istediğinde sorması için ayarlayabilirsiniz.
 
@@ -1562,6 +1578,11 @@
 Bu politika True (Doğru) değerine ayarlanır veya ayarlanmadan bırakılırsa yerel bildirimlerin <ph name="PRODUCT_NAME" /> tarafından kullanılmasına izin verilir.
 
 Bu politika False (Yanlış) değerine ayarlanırsa <ph name="PRODUCT_NAME" /> yerel bildirimleri kullanmaz. <ph name="PRODUCT_NAME" /> Mesaj Merkezi yedek olarak kullanılır.</translation>
+<translation id="3359446912268498764">Devre dışı bırakılırsa Chrome Temizleme Aracı'nın sistemdeki istenmeyen yazılımları taramasını ve temizleme işlemleri gerçekleştirmesini engeller. Chrome Temizleme Aracı'nın chrome://settings/cleanup adresinden manuel olarak tetiklenmesi devre dışı bırakılır.
+
+      Etkinleştirilir veya ayarlanmadan bırakılırsa Chrome Temizleme Aracı belirli aralıklarla sistemdeki istenmeyen yazılımları tarar ve böyle bir yazılım bulursa kullanıcıya, bulduğu yazılımı kaldırmak isteyip istemediğini sorar. Chrome Temizleme Aracı'nın chrome://settings adresinden manuel olarak tetiklenmesi etkinleştirilir.
+
+      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir.</translation>
 <translation id="3360093276083825336">Bu politikanın artık kullanılmadığını ve <ph name="PRODUCT_OS_NAME" /> sürüm 85'te kaldırılacağını unutmayın. Lütfen bunun yerine <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" /> politikasını kullanın.
 
           Pil gücüyle çalışırken, kullanıcı ne kadar süre giriş yapmazsa bir uyarı iletişim kutusu görüntüleneceğini belirtir.
@@ -1748,6 +1769,13 @@
 <translation id="355118380775352753">Alternatif tarayıcıda açılacak web siteleri</translation>
 <translation id="3554498762428140109">Yerel Pencere Kapamayı etkinleştir</translation>
 <translation id="3554984410014457319">Google Asistan'ın sesli etkinleştirme ifadesini dinlemesine izin ver</translation>
+<translation id="3562741878192828370">İndirildiğinde otomatik olarak açılması gereken dosya türleri listesi. Dosya türü listelenirken baştaki ayırıcının eklenmemesi gerektiğinden, ".txt" yerine "txt" yazın.
+
+      Otomatik olarak açılması gereken türdeki dosyalar, yine de etkinleştirilmiş güvenli tarama kontrollerine tabidir ve bu kontrollerden geçmezse açılmaz.
+
+      Bu politika ayarlanmazsa yalnızca kullanıcının otomatik olarak açılmasını zaten belirttiği dosya türleri indirildiğinde otomatik olarak açılır.
+
+      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation>
 <translation id="356579196325389849">Kullanıcılar Chrome OS sürümü kanalını yapılandırabilir</translation>
 <translation id="3575011234198230041">HTTP kimlik doğrulaması</translation>
 <translation id="3577251398714997599">Araya giren reklamların yer aldığı siteler için reklam ayarı</translation>
@@ -2260,6 +2288,15 @@
 <translation id="4341199399451274159"><ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> açıksa <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> politikasının ayarlanması, arama sağlayıcı tarafından desteklenen karakter kodlamalarını belirtir. Kodlamalar UTF-8, GB2312 ve ISO-8859-1 gibi kod sayfası adlarıdır. Bunlar, sağlandıkları sırada denenirler.
 
       <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> politikası ayarlanmazsa UTF-8 kullanılır.</translation>
+<translation id="4343304913975482972">Güvenli Tarama'nın güveneceği alanların listesini yapılandırır. Bunun anlamı:
+      Tehlikeli kaynakların (ör. kimlik avı, kötü amaçlı yazılım veya istenmeyen yazılım) URL'leri bu alanlarla eşleşirse Güvenli Tarama tehlikeli kaynakları kontrol etmeyecektir.
+      Güvenli Tarama'nın indirme koruma hizmeti, bu alanlarda barındırılan indirmeleri kontrol etmeyecektir.
+      Sayfa URL'si bu alanlarla eşleşirse Güvenli Tarama'nın şifre koruma hizmeti şifre yeniden kullanımını kontrol etmeyecektir.
+
+      Bu ayar etkinleştirilirse Güvenli Tarama bu alanlara güvenecektir.
+      Bu ayar devre dışı bırakılırsa veya ayarlanmazsa varsayılan Güvenli Tarama koruması tüm kaynaklara uygulanır.
+
+      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation>
 <translation id="4343382787226139147">Cihaz yönetim protokolü kullanılarak kaydolunması gereken istemci sertifikalarını belirtir.</translation>
 <translation id="4347908978527632940">Doğru seçeneğine ayarlanırsa ve kullanıcı denetlenen bir kullanıcıysa, diğer Android uygulamaları kullanıcının web kısıtlamalarını bir içerik sağlayıcısı aracılığıyla sorgulayabilir.
 
@@ -4618,6 +4655,11 @@
 <translation id="7648907905084499629">Tüm sitelerde çerezler için <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> davranışını kullan</translation>
 <translation id="7651739109954974365">Veri dolaşımının etkin olup olmayacağını belirler. True olarak ayarlanırsa, veri dolaşımına izin verilir. Hiç ayarlanmazsa veya false değerine ayarlanırsa, veri dolaşımına izin verilmez.</translation>
 <translation id="7657261947024629645">Performans için optimize et.</translation>
+<translation id="7668830462800981702">Politika, Etkin değerine ayarlanırsa kullanıcı adres çubuğunda URL olmayan metin girdiğinde varsayılan arama gerçekleştirilir. Varsayılan arama sağlayıcısını belirtmek için geri kalan arama politikalarını ayarlayın. Bu politikaları boş bırakırsanız kullanıcı varsayılan sağlayıcısını seçebilir. Politika, Devre dışı değerine ayarlanırsa kullanıcı adres çubuğuna URL olmayan metin girdiğinde arama gerçekleşmez.
+
+      Bu politikayı ayarlarsanız kullanıcılar <ph name="PRODUCT_NAME" /> ürününde değiştiremez. Ayarlanmadan bırakılırsa varsayılan arama sağlayıcısı etkin hale gelir ve kullanıcılar, arama sağlayıcısı listesini ayarlayabilir.
+
+      <ph name="MS_WIN_NAME" /> işletim sisteminde bu işlev yalnızca Windows 10 Pro üzerinde çalışan bir <ph name="MS_AD_NAME" /> alan adına katılmış veya Chrome Tarayıcı Bulut Yönetimi'ne kaydolmuş örneklerde kullanılabilir. <ph name="MAC_OS_NAME" /> işletim sisteminde bu işlev yalnızca MDM ile çalışan veya MCX aracılığıyla bir alan adına katılmış örneklerde kullanılabilir.</translation>
 <translation id="7673194325208122247">Dönem (milisaniye)</translation>
 <translation id="7677220829878081413">
       Bu politika ArcSession değerine ayarlandığında, Android başlatılmışsa kullanıcı oturumu kapatıldığında cihazı yeniden başlamaya zorlar.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 608e63da..a148982 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -197,6 +197,21 @@
 <translation id="1291880496936992484">Застереження: шифри RC4 буде видалено з <ph name="PRODUCT_NAME" /> після версії 52 (приблизно у вересні 2016 року).
 
       Якщо це правило не налаштовано або має значення "false", набори шифрів RC4 в TLS не працюватимуть. Або для правила можна вибрати значення "true", щоб підтримувати сумісність із застарілим сервером. Це тимчасовий захід. Налаштування сервера буде змінено.</translation>
+<translation id="1294120942989031743">Налаштування цього правила визначають список додатків і розширень, які встановлюються автоматично, без взаємодії з користувачем і які він не може видалити або вимкнути. Дозволи, зокрема для API розширень enterprise.deviceAttributes і enterprise.platformKeys, надаються непрямо. (Ці два API доступні лише для примусово встановлених додатків.)
+
+      Якщо це правило не налаштовано, додатки й розширення не встановлюються автоматично, а користувачі можуть видаляти їх у <ph name="PRODUCT_NAME" />.
+
+      Це правило замінює <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Якщо вилучити з цього списку примусово встановлені додатки або розширення, вони автоматично видаляться в <ph name="PRODUCT_NAME" />.
+
+      У <ph name="MS_WIN_NAME" /> додатки й розширення не з Веб-магазину Chrome можна примусово встановлювати лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome.
+
+      У <ph name="MAC_OS_NAME" /> додатки й розширення не з Веб-магазину Chrome можна примусово встановлювати лише у версіях, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.
+
+      Вихідний код будь-якого розширення можна змінити за допомогою інструментів розробника (розширення може перестати працювати). Якщо це становить проблему, налаштуйте правило <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Кожний елемент у списку правила має вигляд сегмента з ідентифікатором розширення та URL-адресою "оновлення" (необов'язково), які розділені крапкою з комою (;). Ідентифікатор розширення – це рядок із 32 літер, приклад якого можна знайти на сторінці chrome://extensions у режимі розробника. URL-адреса "оновлення" (якщо її вказано) має спрямовувати на документ маніфесту оновлення у форматі XML (https://developer.chrome.com/extensions/autoupdate). За умовчанням використовується URL-адреса для оновлення Веб-магазину Chrome. URL-адреса "оновлення", указана для цього правила, використовується лише для початкового встановлення. Під час наступних оновлень розширення використовуватиметься URL-адреса, указана в маніфесті розширення.
+
+       Примітка: це правило не стосується режиму анонімного перегляду. Докладніше про розміщення розширень (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="1294263471858445589">Увімкнути фонову автентифікацію у звичайному й анонімному сеансах.</translation>
 <translation id="1295737447968372331">Увімкнути функцію "Диктування" на екрані входу</translation>
 <translation id="1297182715641689552">Використовувати сценарій .pac проксі-сервера</translation>
@@ -983,6 +998,13 @@
 
       Якщо для цього правила вибрано значення false, користувачі не можуть застосовувати спільні мережеві файли.</translation>
 <translation id="2435052056904485763">Список дозволених серверів, яким можна делегувати права за протоколом Kerberos</translation>
+<translation id="2439793457499023062">Якщо це правило не налаштовано, виявивши небажане програмне забезпечення, функція "Очищення Chrome" може передавати метадані про сканування компанії Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Користувачам буде запропоновано видалити таке небажане програмне забезпечення. Користувач може надіслати результати очищення компанії Google, щоб допомогти виявляти такі проблеми в майбутньому. У цих результатах містяться файли метаданих, автоматично встановлені розширення та реєстраційні ключі, як зазначено в Політиці конфіденційності Chrome.
+
+      Якщо це правило деактивовано, виявивши небажане програмне забезпечення, функція "Очищення Chrome" не передаватиме компанії Google метадані про сканування, замінюючи всі правила відповідно до правила SafeBrowsingExtendedReportingEnabled. Користувачам буде запропоновано видалити таке небажане програмне забезпечення.  Результати очищення не повідомлятимуться компанії Google, і користувачі не зможуть зробити цього.
+
+      Якщо це правило активовано, виявивши небажане програмне забезпечення, функція "Очищення Chrome" може передавати метадані про сканування в Google відповідно до правила SafeBrowsingExtendedReportingEnabled. Користувачам буде запропоновано видалити таке небажане програмне забезпечення.  Результати очищення повідомлятимуться компанії Google, і користувачі не зможуть перешкодити цьому.
+
+      У <ph name="MS_WIN_NAME" /> ця функція доступна лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome.</translation>
 <translation id="2440773021691931148">Повідомляє статистику й ідентифікатори апаратного забезпечення, пов'язані з живленням.
 
       Якщо для цього правила встановлено значення false або його не налаштовано, статистика не надсилатиметься.
@@ -1314,12 +1336,6 @@
 <translation id="2901725272378498025">Увімкнути застереження про небезпеку для позначок командного рядка</translation>
 <translation id="2905984450136807296">Увесь період зберігання кешу даних автентифікації</translation>
 <translation id="2906874737073861391">Список розширень AppPack</translation>
-<translation id="2907992746861405243">Визначає, які принтери з правила <ph name="BULK_PRINTERS_POLICY" /> доступні користувачам.
-
-      Указує, яке правило доступу діє для групового налаштування принтерів. Якщо вибрано значення <ph name="PRINTERS_ALLOW_ALL" />, видно всі принтери. Якщо вибрано <ph name="PRINTERS_BLACKLIST" />, параметр <ph name="BULK_PRINTERS_BLACKLIST" /> обмежує доступ до певних принтерів. Якщо вибрано <ph name="PRINTERS_WHITELIST" />, параметр <ph name="BULK_PRINTERS_WHITELIST" /> надає доступ лише до принтерів, які можна вибрати.
-
-      Якщо правило не налаштовано, застосовується параметр <ph name="PRINTERS_ALLOW_ALL" />.
-      </translation>
 <translation id="2908277604670530363">Максимальна кількість одночасних підключень до проксі-сервера</translation>
 <translation id="2921222258441684334">Якщо для цього правила вибрано значення 1, сайти можуть за умовчанням відстежувати місцезнаходження користувачів. Якщо для нього вибрано значення 2, відстеження буде вимкнено за умовчанням. У правилі можна налаштувати, щоб сайти запитували дозвіл на відстеження місцезнаходження користувачів.
 
@@ -1590,6 +1606,11 @@
 Якщо для правила вибрано значення true або його не налаштовано, <ph name="PRODUCT_NAME" /> може надсилати власні сповіщення.
 
 Якщо для правила вибрано значення false, <ph name="PRODUCT_NAME" /> не надсилатиме власні сповіщення. Центр повідомлень <ph name="PRODUCT_NAME" /> буде резервним варіантом.</translation>
+<translation id="3359446912268498764">Якщо це правило деактивовано, функція "Очищення Chrome" не скануватиме систему на наявність небажаного програмного забезпечення та не видалятиме його. Можливість активувати Очищення Chrome вручну на сторінці chrome://settings/cleanup вимкнено.
+
+      Якщо це правило активовано або не налаштовано, функція "Очищення Chrome" періодично скануватиме систему на наявність небажаного програмного забезпечення й запитуватиме користувача, чи потрібно його видалити. Можливість активувати Очищення Chrome вручну на сторінці chrome://settings увімкнено.
+
+      У <ph name="MS_WIN_NAME" /> ця функція доступна лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome.</translation>
 <translation id="3360093276083825336">Зауважте, що це правило більше не підтримується та буде вилучене в <ph name="PRODUCT_OS_NAME" /> версії 85. Натомість використовуйте правило <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Указує проміжок часу неактивності користувача, після якого з'являється діалогове вікно із застереженням, якщо використовується заряд акумулятора.
@@ -1777,6 +1798,13 @@
 <translation id="355118380775352753">Веб-сайти, які мають відкриватися в альтернативному веб-переглядачі</translation>
 <translation id="3554498762428140109">Увімкнути перекривання вікон Chrome</translation>
 <translation id="3554984410014457319">Дозволити Google Асистенту розпізнавати фразу для активації голосом</translation>
+<translation id="3562741878192828370">Список типів файлів, які мають автоматично відкриватися після завантаження. Назви типів файлів потрібно вказувати без роздільника, наприклад "txt" замість ".txt".
+
+      Файли тих типів, які мають автоматично відкриватися, усе одно перевірятимуться функцією "Безпечний перегляд", якщо її ввімкнено, і не відкриються, якщо перевірка виявить проблеми.
+
+      Якщо це правило не налаштовано, після завантаження автоматично відкриватимуться лише файли тих типів, які користувач указав раніше.
+
+      У <ph name="MS_WIN_NAME" /> ця функція доступна лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome. У <ph name="MAC_OS_NAME" /> ця функція доступна лише у версіях, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="356579196325389849">Користувачі можуть налаштовувати версію оновлення Chrome OS</translation>
 <translation id="3575011234198230041">Автентифікація HTTP</translation>
 <translation id="3577251398714997599">Налаштування реклами для сайтів із нав’язливими оголошеннями</translation>
@@ -2291,6 +2319,15 @@
 <translation id="4341199399451274159">Якщо правило <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> увімкнено, то параметр <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> указує кодування символів, яке підтримує пошукова система. Кодування – це закодовані назви сторінок, як-от UTF-8, GB2312 чи ISO-8859-1. Вони випробовуються в заданому порядку.
 
       Якщо правило <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> не налаштовано, використовується кодування UTF-8.</translation>
+<translation id="4343304913975482972">Налаштовує список надійних доменів для Безпечного перегляду. Це означає, що:
+      Безпечний перегляд не перевірятиме сайти на наявність небезпечних ресурсів (наприклад, фішинг, зловмисне чи небажане програмне забезпечення), якщо їх URL-адреси відповідають цим доменам;
+      захист завантажень у Безпечному перегляді не перевірятиме завантаження, розміщені на цих доменах;
+      захист паролів у Безпечному перегляді не перевірятиме повторно введені паролі, якщо URL-адреси сторінок відповідають цим доменам.
+
+      Якщо цей параметр активовано, Безпечний перегляд вважатиме ці домени надійними.
+      Якщо його деактивовано або не налаштовано, Безпечний перегляд буде ввімкнено для всіх ресурсів.
+
+      У <ph name="MS_WIN_NAME" /> ця функція доступна лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome. У <ph name="MAC_OS_NAME" /> ця функція доступна лише у версіях, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="4343382787226139147">Визначає сертифікати клієнтів, які потрібно реєструвати через протокол керування пристроєм.</translation>
 <translation id="4347908978527632940">Якщо користувач контрольований і для цього правила вибрано значення "true", інші додатки Android можуть запитувати в постачальника вмісту інформацію про обмеження користувача в Інтернеті.
 
@@ -4645,6 +4682,11 @@
 <translation id="7648907905084499629">Застосовувати поведінку <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> для файлів cookie на всіх сайтах</translation>
 <translation id="7651739109954974365">Визначає, чи має бути ввімкнено роумінг даних для пристрою. Якщо значення правила встановлено як "true", роумінг даних дозволено. Якщо правило не налаштовано чи його значення встановлено як "false", роумінг даних буде недоступним.</translation>
 <translation id="7657261947024629645">Оптимізація для підвищення ефективності.</translation>
+<translation id="7668830462800981702">Якщо це правило активовано, пошук за умовчанням виконується, коли користувач вводить в адресному рядку текст, який не є URL-адресою. Щоб указати потрібний пошуковий сервіс за умовчанням, налаштуйте решту правил пошуку за умовчанням. Якщо для цих правил не буде вказано значень, користувач зможе вибирати пошуковий сервіс за умовчанням. Якщо це правило деактивовано, пошук не виконується, коли користувач вводить в універсальне вікно пошуку текст, який не є URL-адресою.
+
+      Якщо це правило налаштовано, користувачі не зможуть змінювати його в <ph name="PRODUCT_NAME" />. Якщо це правило не налаштовано, пошуковий сервіс за умовчанням буде ввімкнено, а користувачі зможуть указати список пошукових сервісів.
+
+      У <ph name="MS_WIN_NAME" /> ця функція доступна лише у Windows 10 Pro або версіях, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи в Керуванні хмарними сервісами для веб-переглядача Chrome. У <ph name="MAC_OS_NAME" /> ця функція доступна лише у версіях, у яких працює додаток Керування мобільними пристроями або які зареєстровано в домені через MCX.</translation>
 <translation id="7673194325208122247">Період часу (мілісекунди)</translation>
 <translation id="7677220829878081413">
       Це правило (коли встановлено значення ArcSession) ініціює перезапуск пристрою після виходу користувача з облікового запису, якщо запущено Android.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 3e41374..7773a924 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -194,6 +194,21 @@
 <translation id="1291880496936992484">Cảnh báo: RC4 sẽ bị xóa hoàn toàn khỏi <ph name="PRODUCT_NAME" /> sau phiên bản 52 (khoảng tháng 9 năm 2016) và chính sách này sẽ ngừng hoạt động sau đó.
 
       Nếu chính sách này không được đặt hoặc được đặt thành false thì bộ mã hóa RC4 trong TLS sẽ không được bật. Ngoài ra, chính sách có thể được đặt thành true để duy trì khả năng tương thích với máy chủ lỗi thời. Đây là một biện pháp tạm thời và cần phải định cấu hình lại máy chủ.</translation>
+<translation id="1294120942989031743">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định danh sách những ứng dụng và tiện ích tự động cài đặt mà không cần sự can thiệp của người dùng, cũng như những người dùng nào không thể gỡ cài đặt hay tắt đi. Các quyền được cấp hoàn toàn, kể cả cho các API tiện ích enterprise.deviceAttributes và enterprise.platformKeys. (Những ứng dụng và tiện ích không buộc phải cài đặt sẽ không dùng được 2 API này.)
+
+      Nếu bạn không đặt chính sách này, các ứng dụng/tiện ích sẽ không tự động cài đặt và người dùng có thể gỡ cài đặt mọi ứng dụng/tiện ích trong <ph name="PRODUCT_NAME" />.
+
+      Chính sách này thay thế chính sách <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" />. Nếu một ứng dụng/tiện ích buộc phải cài đặt trước đây và hiện bị xóa khỏi danh sách này, thì <ph name="PRODUCT_NAME" /> sẽ tự động gỡ cài đặt ứng dụng/tiện ích đó.
+
+      Trên các phiên bản <ph name="MS_WIN_NAME" />, bạn chỉ có thể buộc cài đặt những ứng dụng và tiện ích từ bên ngoài Cửa hàng Chrome trực tuyến nếu phiên bản đó liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây.
+
+      Trên các phiên bản <ph name="MAC_OS_NAME" />, bạn chỉ có thể buộc cài đặt những ứng dụng và tiện ích từ bên ngoài Cửa hàng Chrome trực tuyến nếu phiên bản đó được quản lý qua MDM hoặc liên kết với một miền qua MCX.
+
+      Người dùng có thể thay đổi mã nguồn của mọi tiện ích thông qua các công cụ cho nhà phát triển (điều này có thể khiến tiện ích hoạt động không chính xác). Nếu bạn lo ngại về điều này, hãy đặt chính sách <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.
+
+      Mỗi mục danh sách của chính sách là một chuỗi chứa một mã tiện ích và một URL "cập nhật" (không bắt buộc) phân tách bằng dấu chấm phẩy (;). Mã tiện ích là một chuỗi gồm 32 chữ cái, chẳng hạn như trên chrome://extensions khi ở Chế độ nhà phát triển. Nếu được chỉ định, URL "cập nhật" phải trỏ đến tài liệu XML của tệp kê khai cập nhật (https://developer.chrome.com/extensions/autoupdate). Theo mặc định, URL cập nhật của Cửa hàng Chrome trực tuyến sẽ được sử dụng. URL "cập nhật" được đặt trong chính sách này chỉ dùng cho lần cài đặt ban đầu. Các lần cập nhật tiện ích tiếp theo sẽ sử dụng URL cập nhật nêu trong tệp kê khai của tiện ích.
+
+       Lưu ý: Chính sách này không áp dụng cho Chế độ ẩn danh. Hãy tìm hiểu về các tiện ích lưu trữ (https://developer.chrome.com/extensions/hosting).</translation>
 <translation id="1294263471858445589">Bật tùy chọn xác thực môi trường xung quanh cho các phiên thông thường và phiên ẩn danh.</translation>
 <translation id="1295737447968372331">Bật tính năng đọc chính tả trên màn hình đăng nhập</translation>
 <translation id="1297182715641689552">Sử dụng tập lệnh proxy .pac</translation>
@@ -980,6 +995,13 @@
 
       Khi đặt chính sách này thành False, người dùng sẽ không thể sử dụng tính năng Chia sẻ tệp trong mạng.</translation>
 <translation id="2435052056904485763">Danh sách cho phép máy chủ ủy quyền Kerberos</translation>
+<translation id="2439793457499023062">Nếu bạn không đặt chính sách này và tính năng Làm sạch Chrome phát hiện thấy phần mềm không mong muốn, thì tính năng này có thể báo cáo siêu dữ liệu về lần quét đó cho Google theo chính sách do SafeBrowsingExtendedReportingEnabled đặt. Sau đó, tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn đó hay không. Người dùng có thể chọn chia sẻ kết quả của quá trình làm sạch với Google để hỗ trợ việc phát hiện phần mềm không mong muốn trong tương lai. Những kết quả này chứa siêu dữ liệu tệp, tiện ích tự động cài đặt và khóa sổ đăng ký như mô tả trong Báo cáo chính thức về quyền riêng tư của Chrome.
+
+      Nếu bạn tắt chính sách này và tính năng Làm sạch Chrome phát hiện thấy phần mềm không mong muốn, thì tính năng này sẽ không báo cáo siêu dữ liệu về lần quét đó cho Google, ghi đè bất kỳ chính sách nào do SafeBrowsingExtendedReportingEnabled đặt. Tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn đó hay không.  Kết quả của quá trình làm sạch sẽ không được báo cáo cho Google và người dùng sẽ không có tùy chọn để làm như vậy.
+
+      Nếu bạn bật chính sách này và tính năng Làm sạch Chrome phát hiện thấy phần mềm không mong muốn, thì tính năng này có thể báo cáo siêu dữ liệu về lần quét đó cho Google theo chính sách do SafeBrowsingExtendedReportingEnabled đặt. Tính năng Làm sạch Chrome sẽ hỏi người dùng xem họ có muốn xóa phần mềm không mong muốn đó hay không.  Kết quả của quá trình làm sạch sẽ được báo cáo cho Google và người dùng sẽ không có tùy chọn để chọn không gửi.
+
+      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây.</translation>
 <translation id="2440773021691931148">Báo cáo thống kê phần cứng và mã nhận dạng liên quan đến nguồn.
 
       Nếu bạn không đặt chính sách này hoặc đặt thành false, thì số liệu thống kê sẽ không được báo cáo.
@@ -1312,12 +1334,6 @@
 <translation id="2901725272378498025">Bật cảnh báo bảo mật cho cờ dòng lệnh</translation>
 <translation id="2905984450136807296">Thời gian tồn tại của bộ nhớ đệm lưu trữ dữ liệu xác thực</translation>
 <translation id="2906874737073861391">Danh sách tiện ích trong AppPack</translation>
-<translation id="2907992746861405243">Kiểm soát máy in người dùng được phép sử dụng từ <ph name="BULK_PRINTERS_POLICY" />.
-
-      Chỉ định chính sách truy cập dùng cho cấu hình máy in số lượng lớn. Nếu bạn chọn <ph name="PRINTERS_ALLOW_ALL" />, thì tất cả máy in sẽ hiển thị. Nếu bạn chọn <ph name="PRINTERS_BLACKLIST" />, thì <ph name="BULK_PRINTERS_BLACKLIST" /> sẽ dùng để hạn chế truy cập vào các máy in đã chỉ định. Nếu bạn chọn <ph name="PRINTERS_WHITELIST" />, thì <ph name="BULK_PRINTERS_WHITELIST" /> sẽ chỉ chỉ định những máy in có thể chọn được.
-
-      Nếu bạn chưa đặt chính sách này, thì <ph name="PRINTERS_ALLOW_ALL" /> sẽ là tùy chọn mặc định.
-      </translation>
 <translation id="2908277604670530363">Số lượng tối đa kết nối đồng thời tới máy chủ proxy</translation>
 <translation id="2921222258441684334">Nếu bạn đặt chính sách này thành 1, thì các trang web có thể theo dõi vị trí thực của người dùng theo mặc định. Nếu bạn đặt chính sách này thành 2, thì các trang web không được theo dõi vị trí thực của người dùng theo mặc định. Bạn có thể đặt chính sách này để hỏi bất cứ khi nào một trang web muốn theo dõi vị trí thực của người dùng.
 
@@ -1587,6 +1603,11 @@
 Nếu đặt thành True hoặc không đặt chính sách này, thì <ph name="PRODUCT_NAME" /> sẽ được phép sử dụng các thông báo gốc.
 
 Nếu đặt thành False, thì <ph name="PRODUCT_NAME" /> sẽ không sử dụng các thông báo gốc. Trung tâm thông báo của <ph name="PRODUCT_NAME" /> sẽ được dùng làm tính năng dự phòng.</translation>
+<translation id="3359446912268498764">Nếu bạn tắt chính sách này, tính năng Làm sạch Chrome sẽ không quét hệ thống để tìm phần mềm không mong muốn và thực hiện các thao tác làm sạch. Tùy chọn kích hoạt thủ công tính năng Làm sạch Chrome trên trang chrome://settings/cleanup sẽ bị tắt.
+
+      Nếu bạn bật hoặc không đặt chính sách này, thì tính năng Làm sạch Chrome sẽ quét định kỳ hệ thống để tìm ra phần mềm không mong muốn. Khi tìm thấy phần mềm không mong muốn, tính năng này sẽ hỏi người dùng xem họ có muốn xóa phần mềm đó hay không. Tùy chọn kích hoạt thủ công tính năng Làm sạch Chrome trên trang chrome://settings sẽ được bật.
+
+      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây.</translation>
 <translation id="3360093276083825336">Lưu ý rằng chúng tôi không dùng chính sách này nữa và sẽ xóa khỏi <ph name="PRODUCT_OS_NAME" /> phiên bản 85. Thay vào đó, vui lòng sử dụng <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />.
 
           Chỉ định khoảng thời gian kể từ lần cuối cùng người dùng nhập cho đến thời điểm hộp thoại cảnh báo hiển thị khi chạy bằng pin.
@@ -1775,6 +1796,13 @@
 <translation id="355118380775352753">Các trang web sẽ mở trong trình duyệt thay thế</translation>
 <translation id="3554498762428140109">Bật tính năng Che kín cửa sổ gốc</translation>
 <translation id="3554984410014457319">Cho phép Trợ lý Google nghe cụm từ kích hoạt bằng giọng nói</translation>
+<translation id="3562741878192828370">Danh sách những loại tệp tự động mở khi tải xuống. Bạn không được thêm dấu phân cách phía trước khi liệt kê loại tệp. Do đó, hãy dùng "txt" thay cho ".txt".
+
+      Những tệp thuộc loại tự động mở sẽ vẫn phải trải qua các bước kiểm tra trong chế độ duyệt web an toàn mà người dùng đã bật. Các tệp này sẽ không mở nếu không vượt qua các bước kiểm tra đó.
+
+      Nếu bạn không đặt chính sách này, chỉ những loại tệp mà người dùng đã chỉ định là tự động mở mới tự động mở khi tải xuống.
+
+      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM, hoặc liên kết với một miền qua MCX.</translation>
 <translation id="356579196325389849">Người dùng có thể định cấu hình kênh phát hành Chrome OS</translation>
 <translation id="3575011234198230041">Xác thực HTTP</translation>
 <translation id="3577251398714997599">Cài đặt quảng cáo cho các trang web chứa quảng cáo xâm nhập</translation>
@@ -2288,6 +2316,15 @@
 <translation id="4341199399451274159">Nếu bạn bật <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" />, thì thao tác đặt <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> sẽ chỉ định phương thức mã hóa ký tự mà nhà cung cấp dịch vụ tìm kiếm hỗ trợ. Phương thức mã hóa là tên trang mã, chẳng hạn như UTF-8, GB2312 và ISO-8859-1. Các tên này được thử theo thứ tự cung cấp.
 
       Nếu bạn không đặt <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />, thì hệ thống sẽ sử dụng UTF-8.</translation>
+<translation id="4343304913975482972">Định cấu hình danh sách miền mà tính năng Duyệt web an toàn sẽ tin cậy. Điều này có nghĩa là:
+      Tính năng Duyệt web an toàn sẽ không kiểm tra các tài nguyên nguy hiểm (chẳng hạn như lừa đảo, phần mềm độc hại hoặc phần mềm không mong muốn) nếu URL của các tài nguyên đó khớp với những miền này.
+      Dịch vụ bảo vệ tệp tải xuống của tính năng Duyệt web an toàn sẽ không kiểm tra các tệp tải xuống được lưu trữ trên những miền này.
+      Dịch vụ bảo vệ mật khẩu của tính năng Duyệt web an toàn sẽ không kiểm tra việc sử dụng lại mật khẩu nếu URL của trang khớp với những miền này.
+
+      Nếu bạn bật tùy chọn cài đặt này, tính năng Duyệt web an toàn sẽ tin cậy những miền này.
+      Nếu bạn tắt hoặc không đặt tùy chọn cài đặt này, thì cơ chế bảo vệ mặc định của tính năng Duyệt web an toàn sẽ được áp dụng cho tất cả tài nguyên.
+
+      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM, hoặc liên kết với một miền qua MCX.</translation>
 <translation id="4343382787226139147">Chỉ định chứng chỉ ứng dụng cần được đăng ký bằng giao thức quản lý thiết bị.</translation>
 <translation id="4347908978527632940">Nếu đúng và người dùng là người dùng được giám sát thì các ứng dụng Android khác có thể truy vấn các giới hạn web của người dùng thông qua nhà cung cấp nội dung.
 
@@ -4657,6 +4694,11 @@
 <translation id="7648907905084499629">Dùng hành vi <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> cho các cookie trên tất cả các trang web</translation>
 <translation id="7651739109954974365">Xác định liệu chuyển vùng dữ liệu có được bật cho thiết bị hay không. Nếu được đặt thành đúng, chuyển vùng dữ liệu sẽ được phép. Nếu không được định cấu hình hoặc được đặt thành sai, chuyển vùng dữ liệu sẽ không khả dụng.</translation>
 <translation id="7657261947024629645">Tối ưu hóa cho hiệu suất.</translation>
+<translation id="7668830462800981702">Nếu bạn đặt chính sách này thành Bật, hệ thống sẽ thực hiện thao tác tìm kiếm mặc định khi người dùng nhập văn bản không phải là URL vào thanh địa chỉ. Để chỉ định nhà cung cấp dịch vụ tìm kiếm mặc định, hãy đặt các chính sách tìm kiếm mặc định còn lại. Nếu bạn để trống những chính sách đó thì người dùng có thể chọn nhà cung cấp mặc định. Nếu bạn đặt chính sách này thành Tắt, hệ thống sẽ không tìm kiếm khi người dùng nhập văn bản không phải là URL vào thanh địa chỉ.
+
+      Nếu bạn đặt chính sách này thì người dùng sẽ không thay đổi được trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, nhà cung cấp dịch vụ tìm kiếm mặc định sẽ được bật và người dùng có thể đặt danh sách nhà cung cấp dịch vụ tìm kiếm.
+
+      Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro, hoặc đã đăng ký tùy chọn Quản lý trình duyệt Chrome qua đám mây. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM, hoặc liên kết với một miền qua MCX.</translation>
 <translation id="7673194325208122247">Khoảng thời gian (mili giây)</translation>
 <translation id="7677220829878081413">
       Khi bạn đặt chính sách này thành ArcSession, nếu Android đã khởi động, thì chính sách này sẽ buộc thiết bị khởi động lại khi người dùng đăng xuất.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 7ace6436..0aae7496 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -181,6 +181,21 @@
 <translation id="1291880496936992484">警告:从 52 版开始,<ph name="PRODUCT_NAME" /> 中将彻底移除 RC4(2016 年 9 月左右)。届时,此政策将不再有效。
 
       如果此政策未设置或设为 false,系统将不会在 TLS 中启用 RC4 加密套件。您也可以将此政策设为 true,以便与过时的服务器保持兼容。但这只是一种权宜之计,对服务器进行重新配置才是正确之道。</translation>
+<translation id="1294120942989031743">通过设置此政策,您能以列表形式指定哪些应用和扩展程序无需用户互动即可静默安装且无法由用户卸载或停用。权限由系统默认授予,其中包括对 enterprise.deviceAttributes 和 enterprise.platformKeys 扩展程序 API 的权限(这 2 个 API 不适用于非强制安装的应用和扩展程序)。
+
+      如果您不设置此政策,系统将不会自动安装任何应用或扩展程序,而且用户可在 <ph name="PRODUCT_NAME" /> 中卸载任何应用或扩展程序。
+
+      此政策会取代 <ph name="EXTENSION_INSTALL_BLOCKLIST_POLICY_NAME" /> 政策。如果以前强制安装的某个应用或扩展程序被从此列表中移除了,<ph name="PRODUCT_NAME" /> 便会自动卸载该应用或扩展程序。
+
+      在 <ph name="MS_WIN_NAME" /> 实例上,只有当相应实例已加入 <ph name="MS_AD_NAME" /> 网域、在 Windows 10 专业版上运行,或已注册 Chrome 浏览器云管理时,才能强制安装 Chrome 网上应用店之外的应用和扩展程序。
+
+      在 <ph name="MAC_OS_NAME" /> 实例上,只有当相应实例是通过 MDM 进行管理或通过 MCX 加入网域时,才能强制安装 Chrome 网上应用店之外的应用和扩展程序。
+
+      用户可通过开发者工具更改任何扩展程序的源代码,这可能会导致扩展程序无法正常运行。如果您不希望用户进行此类更改,请设置 <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> 政策。
+
+      此政策的每个列表项都是一个字符串,其中包含一个扩展程序 ID 和一个可选的“更新”网址(这两者之间以英文分号 [;] 分隔)。扩展程序 ID 是一个由 32 个字母构成的字符串;若想查看该字符串,一种方法是在开发者模式下访问 chrome://extensions。“更新”网址(若指定)应指向一个更新清单 XML 文档 (https://developer.chrome.com/extensions/autoupdate)。默认情况下,系统会使用 Chrome 网上应用店的更新网址。此政策中设置的“更新”网址仅用于初次安装;扩展程序的后续更新将会使用该扩展程序的清单中的更新网址。
+
+       注意:此政策不适用于无痕模式。了解如何托管扩展程序 (https://developer.chrome.com/extensions/hosting)。</translation>
 <translation id="1294263471858445589">为无痕会话和常规会话启用静默身份验证。</translation>
 <translation id="1295737447968372331">在登录屏幕上启用“语音输入”</translation>
 <translation id="1297182715641689552">使用 .pac 代理脚本</translation>
@@ -938,6 +953,13 @@
 
       如果将此政策设为“False”,用户将无法使用网络文件共享功能。</translation>
 <translation id="2435052056904485763">Kerberos 委派服务器许可名单</translation>
+<translation id="2439793457499023062">如果此政策未设置,当 Chrome 清理功能检测到垃圾软件时,它可能会按照 SafeBrowsingExtendedReportingEnabled 设置的政策向 Google 报告与此项扫描相关的元数据。然后,Chrome 清理功能会询问用户是否要清理垃圾软件。用户可以选择与 Google 分享清理结果,以协助 Google 日后更好地检测垃圾软件。这些结果包括文件元数据、自动安装的扩展程序以及注册表项(如《Chrome 隐私权白皮书》中所述)。
+
+      如果此政策处于停用状态,当 Chrome 清理功能检测到垃圾软件时,它不会向 Google 报告与此项扫描相关的元数据,而是会覆盖 SafeBrowsingExtendedReportingEnabled 设置的任何政策。Chrome 清理功能会询问用户是否要清理垃圾软件。它不会向 Google 报告清理结果,也不会为用户提供用于向 Google 报告清理结果的选项。
+
+      如果此政策处于启用状态,当 Chrome 清理功能检测到垃圾软件时,它可能会按照 SafeBrowsingExtendedReportingEnabled 设置的政策向 Google 报告与此项扫描相关的元数据。Chrome 清理功能会询问用户是否要清理垃圾软件。它会向 Google 报告清理结果,但不会为用户提供用于禁止向 Google 报告清理结果的选项。
+
+      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。</translation>
 <translation id="2440773021691931148">报告与电源相关的硬件统计信息和标识符。
 
       如果此政策设为 false 或未设置,系统将不会报告这些统计信息。
@@ -1270,12 +1292,6 @@
 <translation id="2901725272378498025">针对命令行标记启用安全警告功能</translation>
 <translation id="2905984450136807296">身份验证数据缓存期限</translation>
 <translation id="2906874737073861391">AppPack 扩展程序列表</translation>
-<translation id="2907992746861405243">控制用户可以使用 <ph name="BULK_PRINTERS_POLICY" /> 中的哪些打印机。
-
-      指定对批量打印机配置使用哪项访问政策。如果选择 <ph name="PRINTERS_ALLOW_ALL" />,系统即会显示所有打印机。如果选择 <ph name="PRINTERS_BLACKLIST" />,系统便会使用 <ph name="BULK_PRINTERS_BLACKLIST" /> 来限制用户对指定打印机的访问权。如果选择 <ph name="PRINTERS_WHITELIST" />,<ph name="BULK_PRINTERS_WHITELIST" /> 则仅会指定可供用户选择的打印机。
-
-      如果未设置此政策,系统将会默认使用 <ph name="PRINTERS_ALLOW_ALL" />。
-      </translation>
 <translation id="2908277604670530363">可同时连接到代理服务器的连接数上限</translation>
 <translation id="2921222258441684334">如果此政策设为 1,系统会默认允许网站跟踪用户的实际位置。如果此政策设为 2,系统会默认禁止此类跟踪。您可通过设置此政策,让网站在每次想要跟踪用户的实际位置时都先询问用户的意见。
 
@@ -1542,6 +1558,11 @@
 如果此政策设为 True 或未设置,<ph name="PRODUCT_NAME" /> 将可以使用原生通知。
 
 如果此政策设为 False,<ph name="PRODUCT_NAME" /> 将不会使用原生通知。<ph name="PRODUCT_NAME" /> 的消息中心将被用作后备方案。</translation>
+<translation id="3359446912268498764">如果此政策处于停用状态,Chrome 清理功能将无法扫描系统以检测是否存在垃圾软件,也无法执行清理操作。此外,还会禁止通过 chrome://settings/cleanup 手动触发 Chrome 清理功能。
+
+      如果此政策处于启用状态或未设置,Chrome 清理功能将会定期扫描系统以检测是否存在垃圾软件,并会在发现任何垃圾软件时询问用户是否要将其移除。此外,还会允许通过 chrome://settings 手动触发 Chrome 清理功能。
+
+      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。</translation>
 <translation id="3360093276083825336">请注意,此政策已被弃用,并将在 <ph name="PRODUCT_OS_NAME" />版本 85 中移除。请改用 <ph name="POWER_MANAGEMENT_IDLE_SETTINGS_POLICY_NAME" />。
 
           指定当使用电池供电时系统应在设备闲置多久后显示警告对话框。
@@ -1725,6 +1746,13 @@
 <translation id="355118380775352753">要在替代浏览器中打开的网站</translation>
 <translation id="3554498762428140109">启用原生窗口遮挡</translation>
 <translation id="3554984410014457319">允许 Google 助理听取语音启动词组</translation>
+<translation id="3562741878192828370">此政策用于指定一系列应在下载完毕后自动打开的文件类型。罗列文件类型时不应添加前导分隔符,因此请罗列“txt”而非“.txt”。
+
+      应自动打开的文件类型所对应的文件仍须接受安全浏览检查(若已启用);如果未通过检查,便不会打开。
+
+      如果您不设置此政策,只有那些已被用户指定为自动打开的文件类型才会在下载完毕后自动打开。
+
+      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation>
 <translation id="356579196325389849">用户可以配置 Chrome 操作系统发布版本</translation>
 <translation id="3575011234198230041">HTTP 身份验证</translation>
 <translation id="3577251398714997599">针对含侵扰性广告的网站的广告设置</translation>
@@ -2235,6 +2263,15 @@
 <translation id="4341199399451274159">如果 <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> 已开启,您便可通过设置 <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" /> 来指定搜索服务提供商支持的字符编码。编码是 UTF-8、GB2312 和 ISO-8859-1 之类的代码页名称。系统会按照您指定的顺序尝试这些编码。
 
       如果您不设置 <ph name="DEFAULT_SEARCH_PROVIDER_ENCODINGS_POLICY_NAME" />,系统将使用 UTF-8。</translation>
+<translation id="4343304913975482972">配置“安全浏览”功能将会信任的网域列表。这意味着:
+      如果某个网页的网址与所指定的任一网域匹配,“安全浏览”功能将不会检查该网页是否含有危险资源(例如网上诱骗、恶意软件或垃圾软件)。
+      “安全浏览”功能的下载保护服务将不会检查托管在此类网域上的下载内容。
+      如果某个网页的网址与所指定的任一网域匹配,“安全浏览”功能的密码保护服务将不会检查该网页中的密码重用情况。
+
+      如果您启用了此设置,“安全浏览”功能将会信任这些网域。
+      如果您停用了或不配置此设置,系统便会将默认开启的安全浏览保护功能应用于所有资源。
+
+      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation>
 <translation id="4343382787226139147">指定应使用设备管理协议注册的客户端证书。</translation>
 <translation id="4347908978527632940">如果设为 true 且该用户是受监管用户,则其他 Android 应用可以通过内容提供方查询该用户的网络限制。
 
@@ -4559,6 +4596,11 @@
 <translation id="7648907905084499629">让所有网站上的 Cookie 都采用 <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> 行为</translation>
 <translation id="7651739109954974365">确定是否应为设备启用数据漫游。如果将此政策设置为 true,数据漫游就可以使用。如果未配置此政策或将其设置为 false,数据漫游就无法使用。</translation>
 <translation id="7657261947024629645">针对性能进行优化。</translation>
+<translation id="7668830462800981702">如果此政策已启用,当用户在地址栏中输入非网址的文字时,系统将会执行默认搜索。若要指定默认搜索服务提供商,请设置其余的默认搜索政策。如果您将这些政策留空,用户可自行选择默认提供商。如果此政策已停用,当用户在地址栏中输入非网址的文字时,系统将不会执行任何搜索。
+
+      如果您设置了此政策,用户便无法在 <ph name="PRODUCT_NAME" /> 中更改它。如果您不设置此政策,系统将启用默认的搜索服务提供商,而且用户可以设置搜索服务提供商列表。
+
+      在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 Chrome 浏览器云管理的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation>
 <translation id="7673194325208122247">时间段(毫秒)</translation>
 <translation id="7677220829878081413">
       如果此政策设为 ArcSession,且 Android 已启动,那么每当用户退出后,系统都会强制相应设备重新启动。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index accc3f2f..8f0a850 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1266,12 +1266,6 @@
 <translation id="2901725272378498025">啟用指令列標記的安全性警告</translation>
 <translation id="2905984450136807296">驗證資料快取生命週期</translation>
 <translation id="2906874737073861391">AppPack 擴充功能清單</translation>
-<translation id="2907992746861405243">根據 <ph name="BULK_PRINTERS_POLICY" /> 設定哪些印表機是可供使用的。
-
-      指派用於大量印表機設定的存取權政策。如果選取 <ph name="PRINTERS_ALLOW_ALL" />,系統會顯示所有印表機。如果選取 <ph name="PRINTERS_BLACKLIST" />,系統會使用 <ph name="BULK_PRINTERS_BLACKLIST" /> 限制對特定印表機的存取權。如果選取 <ph name="PRINTERS_WHITELIST" />,<ph name="BULK_PRINTERS_WHITELIST" /> 只會指派可選取的印表機。
-
-      如果未設定這項政策,系統會自動採用 <ph name="PRINTERS_ALLOW_ALL" />。
-      </translation>
 <translation id="2908277604670530363">Proxy 伺服器的並行連線數量上限</translation>
 <translation id="2921222258441684334">如果將這項政策設為 1,網站在預設狀態下會追蹤使用者所在的實際位置。如果將這項政策設為 2,網站在預設狀態下無法進行追蹤。你可以透過這項政策,規定網站必須先詢問使用者,才能追蹤其所在的實際位置。
 
diff --git a/components/previews/core/previews_features.cc b/components/previews/core/previews_features.cc
index 3f4e492..bec9f3a 100644
--- a/components/previews/core/previews_features.cc
+++ b/components/previews/core/previews_features.cc
@@ -14,12 +14,12 @@
 // are enabled are controlled by other features.
 const base::Feature kPreviews {
   "Previews",
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
       // Previews allowed for Android (but also allow on Linux for dev/debug).
       base::FEATURE_ENABLED_BY_DEFAULT
-#else   // !defined(OS_ANDROID) || defined(OS_LINUX)
+#else   // !defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
       base::FEATURE_DISABLED_BY_DEFAULT
-#endif  // defined(OS_ANDROID) || defined(OS_LINUX)
+#endif  // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 };
 
 // Enables the Offline previews on android slow connections.
diff --git a/components/sessions/content/content_serialized_navigation_builder.cc b/components/sessions/content/content_serialized_navigation_builder.cc
index fbffe0dd..27b66c0 100644
--- a/components/sessions/content/content_serialized_navigation_builder.cc
+++ b/components/sessions/content/content_serialized_navigation_builder.cc
@@ -180,8 +180,6 @@
                                                entry.get());
   }
 
-  entry->InitRestoredEntry(browser_context);
-
   // These fields should have default values.
   DCHECK_EQ(SerializedNavigationEntry::STATE_INVALID,
             navigation->blocked_state_);
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 502f3ae..8cf5421f 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">صيغ سطر الأوامر</translation>
 <translation id="129553762522093515">المغلقة حديثًا</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />جرّب محو ملفات تعريف الارتباط<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">‏زر "فتح نافذة التصفُّح المتخفي"، اضغط على مفتاح Enter لفتح نافذة جديدة للتصفُّح المتخفي في Chrome.</translation>
 <translation id="1301324364792935241">التحقّق من إعدادات نظام أسماء النطاقات الآمن</translation>
 <translation id="1307966114820526988">الميزات المتوقفة</translation>
 <translation id="131405271941274527">‏يريد <ph name="URL" /> إرسال المعلومات وتلقّيها عند النقر على جهاز NFC الظاهر على هاتفك.</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">يُرجى تحديث عبارة مرور المزامنة.</translation>
 <translation id="1787142507584202372">تظهر علامات التبويب المفتوحة هنا</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742">‏<ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" /> تتوفّر عدة إجراءات، اضغط على مفتاح التبويب (Tab) للتنقّل بينها.</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">اسم حامل البطاقة</translation>
 <translation id="1807528111851433570">ورقة البداية</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">الإعلانات</translation>
 <translation id="1919367280705858090">الحصول على مساعدة بخصوص رسالة خطأ محددة</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{بدون}=1{موقع واحد}two{ موقعان (#)}few{# مواقع}many{# موقعًا}other{# موقع}}</translation>
+<translation id="1926148189358507356">‏زر "إعادة التشغيل للتحديث"، اضغط على مفتاح Enter لتحديث متصفِّح Chrome.</translation>
 <translation id="1945968466830820669">‏قد تفقد إمكانية الوصول إلى حساب مؤسستك أو تتعرَّض لسرقة هويتك. لذا، يوصي Chromium بتغيير كلمة مرورك الآن.</translation>
 <translation id="1947454675006758438">وضع دبوس أعلى اليمين</translation>
 <translation id="1959001866257244765">‏المساعدة في تحسين مستوى الأمان على الإنترنت لجميع المستخدمين من خلال إرسال <ph name="BEGIN_WHITEPAPER_LINK" />عناوين URL لبعض الصفحات التي تزورها وعدد محدود من معلومات النظام وبعض أنواع محتوى الصفحات<ph name="END_WHITEPAPER_LINK" /> إلى Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />سياسة الخصوصية<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">المستوى</translation>
 <translation id="2380886658946992094">قانوني</translation>
 <translation id="2384307209577226199">السياسة تلقائية في المؤسسة ويمكن إلغاؤها</translation>
+<translation id="238547550913364157">‏<ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لفتح نافذة جديدة للتصفُّح المتخفي في Chrome.</translation>
 <translation id="2385809941344967209">‏تحديث Chrome من إعداداته</translation>
 <translation id="2386255080630008482">تم إبطال شهادة الخادم.</translation>
 <translation id="2392959068659972793">عرض السياسات التي لم يتم تعيين قيم لها</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">الحافظة</translation>
 <translation id="2587730715158995865">من <ph name="ARTICLE_PUBLISHER" />. يمكنك قراءة هذه المقالة و<ph name="OTHER_ARTICLE_COUNT" /> قصص أخرى.</translation>
 <translation id="2587841377698384444">رقم تعريف واجهة برمجة التطبيقات الدليل:</translation>
+<translation id="2592698726824597401">‏<ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح Enter لتحديث معلومات الملء التلقائي لبطاقة الائتمان في إعدادات متصفِّح Chrome.</translation>
 <translation id="2595719060046994702">لا تتم إدارة جهازك وحسابك من خلال شركة أو مؤسسة أخرى.</translation>
 <translation id="2597378329261239068">هذا المستند محمي بكلمة المرور.  يُرجى إدخال كلمة مرور.</translation>
 <translation id="2609632851001447353">الاختلافات</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">الخروج</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">أفضل حجم</translation>
+<translation id="2688738823074468716">‏زر "إدارة كلمات المرور"، اضغط على مفتاح Enter لإدارة كلمات المرور في إعدادات متصفِّح Chrome.</translation>
 <translation id="2688969097326701645">نعم، متابعة.</translation>
 <translation id="2691924980723297736">تحذير متعلق بالأمان</translation>
 <translation id="2699302886720511147">البطاقات المقبولة</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">‏طباعة جانب واحد image Y shift</translation>
 <translation id="4098354747657067197">أمامك موقع مخادع</translation>
 <translation id="4101413244023615925">النص والرسم</translation>
+<translation id="4103147722950692857">‏<ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لإدارة كلمات المرور في إعدادات متصفِّح Chrome.</translation>
 <translation id="4103249731201008433">الرقم التسلسلي للجهاز غير صالح</translation>
 <translation id="4103763322291513355">‏انتقل إلى &lt;strong&gt;chrome://policy&lt;/strong&gt; لمشاهدة قائمة بعناوين URL المضافة إلى القائمة السوداء والسياسات الأخرى التي فرضها مشرف النظام.</translation>
 <translation id="4110652170750985508">مراجعة الدفعة</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> اقتراحات البحث</translation>
 <translation id="4742407542027196863">إدارة كلمات المرور…</translation>
 <translation id="4744603770635761495">المسار التنفيذي</translation>
+<translation id="4750085040310563588">‏<ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لتحديث متصفِّح Chrome.</translation>
 <translation id="4750917950439032686">ستكون معلوماتك (مثل كلمات المرور أو أرقام بطاقة الائتمان) خاصة عند إرسالها إلى هذا الموقع.</translation>
 <translation id="4756388243121344051">ال&amp;سجل</translation>
 <translation id="4758311279753947758">إضافة معلومات الاتصال</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">يجب تحديدها.</translation>
 <translation id="4926159001844873046">يعرض موقع <ph name="SITE" /></translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101">‏<ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter للبحث.</translation>
 <translation id="4930153903256238152">سِعة كبيرة</translation>
 <translation id="4943872375798546930">لا نتائج</translation>
 <translation id="4950898438188848926">‏زر التبديل بين علامات التبويب، اضغط على Enter للتبديل إلى علامة التبويب المفتوحة هذه <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">‏طرق الدفع والعناوين باستخدام Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">البريد الإلكتروني مطلوب</translation>
+<translation id="5222994811833658317">‏زر "محو البيانات"، اضغط على مفتاح Enter لمحو بيانات سجلّ التصفُّح على Chrome.</translation>
 <translation id="5230733896359313003">عنوان الشحن</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">‏أجهزة NFC</translation>
 <translation id="5344579389779391559">قد تُحاول هذه الصفحة تحصيل رسوم منك</translation>
 <translation id="5355557959165512791">لا يمكنك زيارة <ph name="SITE" /> الآن لأنه تم إبطال شهادته. أخطاء الشبكة والهجمات عليها عادةً ما تكون مؤقتة، لذا ستعمل هذه الصفحة في وقت على الأرجح.</translation>
+<translation id="5361930801096459163">‏زر "البحث"، اضغط على مفتاح Enter للبحث عن <ph name="KEYWORD_SUFFIX" />.</translation>
 <translation id="536296301121032821">تعذّر تخزين إعدادات السياسة</translation>
 <translation id="5371425731340848620">تحديث البطاقة</translation>
 <translation id="5377026284221673050">‏""توقيت ساعتك متأخِّر" أو "توقيت ساعتك متقدِّم" أو "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">‏جارٍ إيقاف "مساعد Google" على Chrome</translation>
 <translation id="6305205051461490394">يتعذر الوصول إلى <ph name="URL" />.</translation>
 <translation id="6312113039770857350">صفحة الويب غير متاحة</translation>
+<translation id="6315224405718249523">‏زر "ترجمة الصفحة"، اضغط على مفتاح Enter لترجمة هذه الصفحة.</translation>
 <translation id="6321917430147971392">التحقق من إعدادات نظام أسماء النطاقات</translation>
 <translation id="6322182122604171028">‏تعذّر استخدام Windows Hello</translation>
 <translation id="6328639280570009161">تجربة إيقاف التنبؤ بإجراءات الشبكة</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">عمل ثقبَين يسارًا</translation>
 <translation id="6554795675067793129">يدير <ph name="ENROLLMENT_DOMAIN" /> حسابك.</translation>
 <translation id="6556866813142980365">إعادة</translation>
+<translation id="6566840325635607048">‏زر "تحديث بطاقة الائتمان"، اضغط على مفتاح Enter لتحديث معلومات الملء التلقائي لبطاقة الائتمان في إعدادات متصفِّح Chrome.</translation>
 <translation id="6569060085658103619">أنت تعرض صفحة إضافة</translation>
 <translation id="6573200754375280815">عمل ثقبَين يمينًا</translation>
 <translation id="6578796323535178455">‏C2 (مغلف)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">تتطلب صفحة الويب هذه البيانات التي أدخلتها في وقت سابق لعرضها بشكل صحيح. يمكنك إرسال هذه المعلومات مرة أخرى ولكن بذلك ستكرر أي إجراء اتخذته هذه الصفحة في وقت سابق.</translation>
 <translation id="7550637293666041147">‏اسم مستخدم الجهاز واسم مستخدم Chrome</translation>
 <translation id="7552846755917812628">جرّب النصائح التالية:</translation>
+<translation id="7553823544414963579">‏<ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لمحو بيانات سجلّ التصفُّح على Chrome.</translation>
 <translation id="7554791636758816595">علامة تبويب جديدة</translation>
 <translation id="7564049878696755256">‏قد تفقد إمكانية الوصول إلى حسابك على <ph name="ORG_NAME" /> أو تتعرض لسرقة هويتك. لذا يوصي Chrome بتغيير كلمة مرورك الآن.</translation>
 <translation id="7567204685887185387">هذا الخادم لم يتمكن من إثبات أن ذلك <ph name="DOMAIN" />؛ بل إنه شهادة أمان تم إصدارها عن طريق الاحتيال. وربما يكون سبب ذلك خطأ في التكوين أو مهاجمًا يعترض اتصالك.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">اختار الشخص الذي أعد جهاز الكمبيوتر حظر الموقع الإلكتروني هذا.</translation>
 <translation id="8228419419708659934">عرض صفحتين</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />، <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479">‏<ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لترجمة هذه الصفحة.</translation>
 <translation id="8232343881378637145">درجة حرارة النظام الأساسي</translation>
 <translation id="8238581221633243064">يمكنك فتح الصفحة في علامة تبويب جديدة للتصفح المتخفي</translation>
 <translation id="8241707690549784388">استخدمت الصفحة التي تبحث عنها المعلومات التي أدخلتها وقد يؤدّي الرجوع إليها  إلى تكرار  جميع الإجراءات السابقة. هل تريد المتابعة؟</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 6c4c1a6..64ed7aa6 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">কামাণ্ড লাইনৰ ভিন্নতা</translation>
 <translation id="129553762522093515">শেহতীয়াকৈ বন্ধ কৰা</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />আপোনাৰ কুকিবোৰ মচি চাওক<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ইনক’গনিট’ ৱিণ্ড’ খোলক বুটাম, নতুন Chrome ইনক’গনিট’ ৱিণ্ড’ খুলিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="1301324364792935241">আপোনাৰ সুৰক্ষিত DNS ছেটিংসমূহ পৰীক্ষা কৰক</translation>
 <translation id="1307966114820526988">অপ্ৰচলিত সুবিধাসমূহ</translation>
 <translation id="131405271941274527">আপুনি নিজৰ ফ’নটো কোনো NFC ডিভাইচত লগালে <ph name="URL" />এ তথ্য পঠিয়াব আৰু গ্ৰহণ কৰিবলৈ বিচাৰে</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">অনুগ্ৰহ কৰি আপোনাৰ ছিংক পাছফ্ৰেজ আপডে’ট কৰক।</translation>
 <translation id="1787142507584202372">আপুনি খোলা টেববোৰ ইয়াত দেখা যাব</translation>
 <translation id="1791429645902722292">Google স্মাৰ্ট লক</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, একাধিক কাৰ্য উপলব্ধ, সেইবিলাক এটা এটাকৈ চাবলৈ টেব টিপক</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">কার্ড অধিকাৰীৰ নাম</translation>
 <translation id="1807528111851433570">আৰম্ভণিৰ শ্বীট</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">বিজ্ঞাপনসমূহ</translation>
 <translation id="1919367280705858090">কোনো নির্দিষ্ট আসোঁৱাহ বার্তাৰ জৰিয়তে সহায় পাওক</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{এটাও নহয়}=1{১টা ছাইট}one{#টা ছাইট}other{#টা ছাইট}}</translation>
+<translation id="1926148189358507356">আপডে’ট কৰিবলৈ পুনৰ লঞ্চ কৰক বুটাম, Chrome আপডে’ট কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="1945968466830820669">আপুনি আপোনাৰ প্ৰতিষ্ঠানৰ একাউণ্টটো এক্সেছ কৰিব নোৱাৰা হ‘ব পাৰে বা আপোনাৰ পৰিচয় চুৰি হোৱাৰ নিচিনা ঘটনাৰ মুখামুখী হ‘ব পাৰে। Chromiumএ আপোনাৰ পাছৱৰ্ডটো এতিয়াই সলনি কৰাটো চুপাৰিছ কৰিছে।</translation>
 <translation id="1947454675006758438">সোঁফালে ওপৰৰ অংশত ষ্টে'পল কৰক</translation>
 <translation id="1959001866257244765">Googleলৈ <ph name="BEGIN_WHITEPAPER_LINK" />আপুনি চোৱা কিছুমান পৃষ্ঠাৰ URLসমূহ, ছিষ্টেমৰ সীমিত তথ্য আৰু পৃষ্ঠাৰ কিছু সমল<ph name="END_WHITEPAPER_LINK" /> পঠিয়াই ৱেবত সকলোৰে বাবে সুৰক্ষা উন্নত কৰাত সহায় কৰক। <ph name="BEGIN_PRIVACY_PAGE_LINK" />গোপনীয়তাৰ নীতি<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">স্তৰ</translation>
 <translation id="2380886658946992094">লিগেল</translation>
 <translation id="2384307209577226199">এণ্টাৰপ্ৰাইজৰ ডিফ’ল্ট</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, নতুন Chrome ইনক’গনিট’ ৱিণ্ড’ খুলিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="2385809941344967209">আপোনাৰ Chromeৰ ছেটিংসমূহৰ পৰা Chrome আপডে’ট কৰক</translation>
 <translation id="2386255080630008482">ছাৰ্ভাৰৰ প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে।</translation>
 <translation id="2392959068659972793">কোনো মান ছেট নকৰা নীতিবোৰ দেখুৱাওক</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">ক্লিপব'ৰ্ড</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" />ৰ পৰা। <ph name="OTHER_ARTICLE_COUNT" /> আৰু অন্য লেখাসমূহ পঢ়ক।</translation>
 <translation id="2587841377698384444">ডাইৰেক্টৰী এপিআই আইডি:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeৰ ছেটিংসমূহত ক্ৰেডিট কাৰ্ডৰ স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱা তথ্য আপডে’ট কৰিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="2595719060046994702">এই ডিভাইচ আৰু একাউণ্ট কোনো কোম্পানী বা অন্য প্ৰতিষ্ঠানে পৰিচালনা নকৰে।</translation>
 <translation id="2597378329261239068">এই নথি পাছৱর্ডৰ দ্বাৰা সুৰক্ষিত।  অনুগ্ৰহ কৰি এটা পাছৱর্ড দিয়ক।</translation>
 <translation id="2609632851001447353">প্ৰকাৰভেদ</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">ত্যাগ কৰক</translation>
 <translation id="2684561033061424857">১১x১২</translation>
 <translation id="2687555958734450033">উত্তম মিল</translation>
+<translation id="2688738823074468716">পাছৱৰ্ডসমূহ পৰিচালনা কৰক বুটাম, Chromeৰ ছেটিংসমূহত পাছৱৰ্ডসমূহ পৰিচালনা কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="2688969097326701645">হয়, অব্যাহত ৰাখক</translation>
 <translation id="2691924980723297736">সুৰক্ষা সম্পর্কীয় সতর্কবার্তা</translation>
 <translation id="2699302886720511147">গ্ৰহণ কৰা কাৰ্ডসমূহ</translation>
@@ -738,6 +744,7 @@
 <translation id="4088981014127559358">কাষৰ ১ প্ৰতিচ্ছবি Y শ্বিফ্ট</translation>
 <translation id="4098354747657067197">আগত বিভ্ৰান্তিকৰ ছাইট আছে</translation>
 <translation id="4101413244023615925">পাঠ আৰু গ্ৰাফিক</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeৰ ছেটিংসমূহত পাছৱৰ্ডসমূহ পৰিচালনা কৰিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="4103249731201008433">ডিভাইচৰ ক্ৰমিক নম্বৰটো অমান্য</translation>
 <translation id="4103763322291513355">ব্লেকলিষ্টত অন্তর্ভুক্ত কৰা URLসমূহৰ সূচীখন চাবলৈ আৰু আপোনাৰ ছিষ্টেমৰ প্ৰশাসকে বলৱৎ কৰা নীতিসমূহ চাবলৈ &lt;strong&gt;chrome://policy&lt;/strong&gt; চাওক।</translation>
 <translation id="4110652170750985508">আপোনাৰ পৰিশোধ চালি জাৰি চাওক</translation>
@@ -907,6 +914,7 @@
 <translation id="4738601419177586157">পৰামর্শৰ সন্ধান <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">পাছৱৰ্ডবোৰ পৰিচালনা কৰক…</translation>
 <translation id="4744603770635761495">সম্পাদনযোগ্য পথ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome আপডে’ট কৰিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="4750917950439032686">আপোনাৰ তথ্য (উদাহৰণ স্বৰুপে পাছৱৰ্ড বা ক্ৰেডিট কাৰ্ডৰ নম্বৰ) এই ছাইটলৈ পঠিওৱাৰ পিছতো ব্যক্তিগত হৈ থাকিব।</translation>
 <translation id="4756388243121344051">&amp;ইতিহাস</translation>
 <translation id="4758311279753947758">সম্পর্কৰ তথ্য যোগ কৰক</translation>
@@ -948,6 +956,7 @@
 <translation id="4926049483395192435">নির্দিষ্ট হ’বই লাগিব।</translation>
 <translation id="4926159001844873046"><ph name="SITE" />এ কয় যে</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, সন্ধান কৰিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="4930153903256238152">সৰহীয়া বহনক্ষমতা</translation>
 <translation id="4943872375798546930">কোনো ফলাফল নাই</translation>
 <translation id="4950898438188848926">টেব সলনি কৰা বুটাম, খুলি থোৱা <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> টেবটোলৈ যাবলৈ Enter দবাওক</translation>
@@ -1024,6 +1033,7 @@
 <translation id="5215116848420601511">Google Pay ব্যৱহাৰ কৰা পৰিশোধ পদ্ধতি আৰু ঠিকনা</translation>
 <translation id="5215363486134917902">ফ'লিঅ'-Sp</translation>
 <translation id="5222812217790122047">ইমেইল বাধ্যতামূলক</translation>
+<translation id="5222994811833658317">ডেটা মচক বুটাম, Chromeৰ ব্ৰাউজিঙৰ ইতিহাসৰ ডেটা মচিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="5230733896359313003">শ্বিপিঙৰ ঠিকনা</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">১২x১৯</translation>
@@ -1064,6 +1074,7 @@
 <translation id="534295439873310000">NFC ডিভাইচসমূহ</translation>
 <translation id="5344579389779391559">এই পৃষ্ঠাটোৱে আপোনাৰ পৰা মাচুল লোৱাৰ চেষ্টা কৰিব পাৰে</translation>
 <translation id="5355557959165512791">বর্তমান আপুনি <ph name="SITE" />ৰ চাব নোৱাৰে কাৰণ ইয়াৰ প্ৰমাণপত্ৰ প্ৰত্যাহাৰ কৰা হৈছে। নেটৱর্কৰ সমস্যা আৰু আক্ৰমণবোৰ সাধাৰণতে অস্থায়ী হয় গতিকে এই পৃষ্ঠাটোৱে পাছত কাম কৰিব পাৰে।</translation>
+<translation id="5361930801096459163">সন্ধান কৰক বুটাম, <ph name="KEYWORD_SUFFIX" />ত সন্ধান কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="536296301121032821">নীতিৰ ছেটিংসমূহ ষ্ট’ৰ কৰিবলৈ সক্ষম নহ’ল</translation>
 <translation id="5371425731340848620">কাৰ্ড আপডে’ট কৰক</translation>
 <translation id="5377026284221673050">"আপোনাৰ ঘড়ী লেহেমীয়াকৈ চলি আছে" বা "আপোনাৰ ঘড়ী খৰকৈ চলি আছে " বা "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1287,6 +1298,7 @@
 <translation id="6302269476990306341">Chromeত Google Assistant বন্ধ হ'ব</translation>
 <translation id="6305205051461490394"><ph name="URL" />ত উপনীত হ’ব নোৱাৰি৷</translation>
 <translation id="6312113039770857350">ৱেবপৃষ্ঠা উপলব্ধ নহয়</translation>
+<translation id="6315224405718249523">পৃষ্ঠাখন অনুবাদ কৰক বুটাম, এই পৃষ্ঠাখন অনুবাদ কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="6321917430147971392">আপোনাৰ DNS ছেটিং পৰীক্ষা কৰক</translation>
 <translation id="6322182122604171028">Windows Hello ব্যৱহাৰ কৰিব পৰা নগ’ল</translation>
 <translation id="6328639280570009161">নেটৱৰ্কৰ পূৰ্বানুমান অক্ষম কৰি চাওক</translation>
@@ -1341,6 +1353,7 @@
 <translation id="6547208576736763147">বাওঁফালে দুবাৰ পাঞ্চ কৰক</translation>
 <translation id="6554795675067793129">আপোনাৰ একাউণ্টটো <ph name="ENROLLMENT_DOMAIN" />এ পৰিচালনা কৰে।</translation>
 <translation id="6556866813142980365">ৰিডু</translation>
+<translation id="6566840325635607048">ক্ৰেডিট কাৰ্ড আপডে’ট কৰক বুটাম, Chromeৰ ছেটিংসমূহত ক্ৰেডিট কাৰ্ডৰ স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱা তথ্য আপডে’ট কৰিবলৈ এণ্টাৰ টিপক</translation>
 <translation id="6569060085658103619">আপুনি কোনো এক্সটেনশ্বনৰ পৃষ্ঠা চাই আছে</translation>
 <translation id="6573200754375280815">সোঁফালে দুবাৰ পাঞ্চ কৰক</translation>
 <translation id="6578796323535178455">C2 (লেফাফা)</translation>
@@ -1578,6 +1591,7 @@
 <translation id="7548892272833184391">সংযোগ সম্পর্কীয় সমস্যাৰ সমাধান কৰক</translation>
 <translation id="7549584377607005141">সঠিকভাৱে দেখুৱাবলৈ ৱেব পৃষ্ঠাটোক আপুনি আগতে দিয়া ডেটাৰ প্ৰয়োজন হ'ব। আপুনি এই ডেটাখিনি পুনৰ পঠিয়াব পাৰে, কিন্তু সেয়া কৰিলে এই পৃষ্ঠাটোৱে কৰা পূৰ্বৱৰ্তী কোনো কাৰ্যৰ পুনৰাবৃত্তি হ'ব পাৰে।</translation>
 <translation id="7550637293666041147">আপোনাৰ ডিভাইচৰ ব্যৱহাৰকাৰী নাম আৰু Chromeৰ ব্যৱহাৰকাৰী নাম</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeৰ ব্ৰাউজিঙৰ ইতিহাসৰ ডেটা মচিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="7554791636758816595">নতুন টেব</translation>
 <translation id="7564049878696755256">আপুনি <ph name="ORG_NAME" /> একাউণ্টটো এক্সেছ কৰিব নোৱাৰা হ’ব পাৰে বা আপোনাৰ পৰিচয় চুৰি হোৱাৰ নিচিনা ঘটনাৰ মুখামুখী হ’ব পাৰে। Chromeএ আপোনাৰ পাছৱৰ্ডটো এতিয়াই সলনি কৰাটো চুপাৰিছ কৰে।</translation>
 <translation id="7567204685887185387">এই ছার্ভাৰটোৱে নিজকে <ph name="DOMAIN" /> বুলি প্ৰমাণ কৰিব নোৱাৰিলে; ইয়াৰ সুৰক্ষাৰ প্ৰমাণপত্ৰ ভুৱাকৈ দিয়া হ'ব পাৰে। এয়া কোনো ভুল কনফিগাৰেশ্বনৰ বাবে বা কোনো আক্ৰমণকাৰীয়ে আপোনাৰ সংযোগ অৱৰোধ কৰাৰ বাবে হ'ব পাৰে।</translation>
@@ -1744,6 +1758,7 @@
 <translation id="8225771182978767009">এই কম্পিউটাৰটো ছেট আপ কৰা লোকজনে এই ছাইটটো অৱৰোধ কৰিছে।</translation>
 <translation id="8228419419708659934">দুই পৃষ্ঠাৰ ভিউ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, এই পৃষ্ঠাখন অনুবাদ কৰিবলৈ টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="8232343881378637145">প্লেটফৰ্মৰ তাপমান</translation>
 <translation id="8238581221633243064">এটা নতুন ইনক’গনিট’ টেবত পৃষ্ঠা খোলক</translation>
 <translation id="8241707690549784388">আপুনি বিচাৰি থকা পৃষ্ঠাটোৱে আপুনি দিয়া তথ্য ব্যৱহাৰ কৰিছে। সেই পৃষ্ঠাটোলৈ উভতি গ’লে আপুনি লোৱা কোনো কাৰ্যকলাপৰ পুনৰাবৃত্তি হ’ব পাৰে। আপুনি অব্যাহত ৰাখিবলৈ বিচাৰেনে?</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 5938b895..603cc94 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Əmr xəttinin növləri</translation>
 <translation id="129553762522093515">Son qapadılan</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Kukiləriniz təmizlənir<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">"Anonim Pəncərə Açın" düyməsi, yeni Chrome anonim pəncərə açmaq üçün Enter düyməsinə basın</translation>
 <translation id="1301324364792935241">Təhlükəsiz DNS ayarlarınızı yoxlayın</translation>
 <translation id="1307966114820526988">Ləğv edilmiş funksiya</translation>
 <translation id="131405271941274527">NFC cihazında telefonunuza toxunan zaman <ph name="URL" /> məlumat göndərmək və qəbul etmək istəyir</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Lütfən, sinxronizasiya parol ifadəsini güncəlləşdirin.</translation>
 <translation id="1787142507584202372">Açıq tablarınız burada görünür</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, bir neçə əməliyyat əlçatandır, onları nəzərdən keçirmək üçün Tab düyməsinə basın</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kart Sahibinin Adı</translation>
 <translation id="1807528111851433570">Başlama vərəqi</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Reklamlar</translation>
 <translation id="1919367280705858090">Spesifik xəta mesajı ilə bağlı yardım əldə edin</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Yoxdur}=1{1 sayt}other{# sayt}}</translation>
+<translation id="1926148189358507356">"Güncəlləmək üçün Yenidən Başladın" düyməsi, Chrome'u güncəlləmək üçün Enter düyməsinə basın</translation>
 <translation id="1945968466830820669">Təşkilat hesabına girişi itirə və ya kimlik oğurluğu ilə üzləşə bilərsiniz. Chromium parollarınızı indi dəyişməyi məsləhət görür.</translation>
 <translation id="1947454675006758438">Yuxarı sağ tərəfdən ştapel vurun</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />Daxil olduğunuz bəzi səhifələrin keçidlərini, məhdud sistem məlumatlarını və bəzi səhifə məzmununu<ph name="END_WHITEPAPER_LINK" /> Google'a göndərməklə vebdə hər kəs üçün təhlükəsizliyi artırmağa yardım edin. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Məxfilik siyasəti<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Səviyyə</translation>
 <translation id="2380886658946992094">Hüquqi</translation>
 <translation id="2384307209577226199">Korporativ defolt</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq yeni Chrome anonim pəncərə açın</translation>
 <translation id="2385809941344967209">Chrome'u Chrome ayarlarınızdan güncəlləyin</translation>
 <translation id="2386255080630008482">Serverin sertifikatı geri alındı.</translation>
 <translation id="2392959068659972793">Heç bir dəyəri ayarlanmamış qaydaları göstərin</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Mübadilə buferi</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> adlı şəxsdən. Bunu və digər <ph name="OTHER_ARTICLE_COUNT" /> hekayəni oxuyun.</translation>
 <translation id="2587841377698384444">Direktoriya API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq Chrome ayarlarında kredit kartının avto doldurma məlumatlarını güncəlləyin</translation>
 <translation id="2595719060046994702">Bu cihaz və hesab şirkət və ya başqa təşkilat tərəfindən idarə olunmur.</translation>
 <translation id="2597378329261239068">Bu sənəd parol ilə qorunur. Parolu yazın.</translation>
 <translation id="2609632851001447353">Variasiyalar</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Tərk edin</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Ən uyğun</translation>
+<translation id="2688738823074468716">"Parolları İdarə Edin" düyməsi, Chrome ayarlarında parolları idarə etmək üçün Enter düyməsinə basın</translation>
 <translation id="2688969097326701645">Bəli, davam edin</translation>
 <translation id="2691924980723297736">Təhlükəsizlik xəbərdarlığı</translation>
 <translation id="2699302886720511147">Qəbul edilən Kartlar</translation>
@@ -738,6 +744,7 @@
 <translation id="4088981014127559358">Şəklin 1-ci tərəfinin Y oxu üzrə yerdəyişməsi</translation>
 <translation id="4098354747657067197">Qabaqda aldadıcı site</translation>
 <translation id="4101413244023615925">Mətn və qrafik</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq Chrome ayarlarında parolları idarə edin</translation>
 <translation id="4103249731201008433">Cihazın seriya nömrəsi yanlışdır</translation>
 <translation id="4103763322291513355">Qara siyahıya alınmış URL-ləri görmək üçün buraya keçin: &lt;strong&gt;chrome://policy&lt;/strong&gt;</translation>
 <translation id="4110652170750985508">Ödənişi nəzərdən keçirin</translation>
@@ -907,6 +914,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> axtarış təklifi</translation>
 <translation id="4742407542027196863">Parolları idarə edin...</translation>
 <translation id="4744603770635761495">İcra olunan yol</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq Chrome'u güncəlləyin</translation>
 <translation id="4750917950439032686">Bu saytda göndərildiyi zaman məlumatınız (məsələn, parol və ya kredit kartı nömrəsi) gizli saxlanır.</translation>
 <translation id="4756388243121344051">&amp;Tarixçə</translation>
 <translation id="4758311279753947758">Kontakt məlumatı əlavə edin</translation>
@@ -948,6 +956,7 @@
 <translation id="4926049483395192435">Göstərilməlidir.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> deyir:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq axtarış edin</translation>
 <translation id="4930153903256238152">Böyük tutum</translation>
 <translation id="4943872375798546930">Nəticə yoxdur</translation>
 <translation id="4950898438188848926">Keçid düyməsinə klikləyin, açıq <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> tabına keçmək üçün "Daxil olun" düyməsinə basın</translation>
@@ -1024,6 +1033,7 @@
 <translation id="5215116848420601511">Google Pay istifadə edən kart və ünvanlar</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-poçt ünvanı tələb olunur</translation>
+<translation id="5222994811833658317">"Datanı Təmizləyin" düyməsi, Chrome'un brauzer tarixçəsi datasını təmizləmək üçün Enter düyməsinə basın</translation>
 <translation id="5230733896359313003">Göndəriş Ünvanı</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1064,6 +1074,7 @@
 <translation id="534295439873310000">NFC cihazları</translation>
 <translation id="5344579389779391559">Bu səhifədə Sizdən ödəniş tutula bilər</translation>
 <translation id="5355557959165512791">Hazırda <ph name="SITE" /> saytına daxil olmaq mümkün deyil, çünki onun sertifikatı silinib. Şəbəkə xətaları və hücumları adətən müvəqqəti olur, beləliklə, səhifə yəqin ki daha sonra işləyəcək.</translation>
+<translation id="5361930801096459163">Axtarış düyməsi, <ph name="KEYWORD_SUFFIX" /> axtarmaq üçün Enter düyməsinə basın</translation>
 <translation id="536296301121032821">Siyasət ayarlarını saxlamaq uğursuz oldu</translation>
 <translation id="5371425731340848620">Kartı yeniləyin</translation>
 <translation id="5377026284221673050">"Saatınız geridədir" və ya "Saatınız qabaqdadır" və ya "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1289,6 +1300,7 @@
 <translation id="6302269476990306341">Google Assistent Chrome'da dayanmağa başlayır</translation>
 <translation id="6305205051461490394"><ph name="URL" /> əlçatmazdır.</translation>
 <translation id="6312113039770857350">Veb səhifə əlçatan deyil</translation>
+<translation id="6315224405718249523">"Səhifəni Tərcümə Edin" düyməsi, bu səhifəni tərcümə etmək üçün Enter düyməsinə basın</translation>
 <translation id="6321917430147971392">DNS ayarlarınızı yoxlayın</translation>
 <translation id="6322182122604171028">Windows Hello istifadə etmək mümkün olmadı</translation>
 <translation id="6328639280570009161">Şəbəkə proqnozunu deaktiv etməyə çalışın</translation>
@@ -1343,6 +1355,7 @@
 <translation id="6547208576736763147">Soldan qoşa deşik açın</translation>
 <translation id="6554795675067793129">Hesabınızı <ph name="ENROLLMENT_DOMAIN" /> idarə edir.</translation>
 <translation id="6556866813142980365">Yenidən edin</translation>
+<translation id="6566840325635607048">"Kredit Kartını Güncəlləyin" düyməsi, Chrome ayarlarında kredit kartı avto doldurma məlumatlarını güncəlləmək üçün Enter düyməsinə basın</translation>
 <translation id="6569060085658103619">Artırma səhifəsinə baxırsınız</translation>
 <translation id="6573200754375280815">Sağdan qoşa deşik açın</translation>
 <translation id="6578796323535178455">C2 (Zərf)</translation>
@@ -1583,6 +1596,7 @@
 <translation id="7549584377607005141">Bu veb səhifə düzgün görüntülənmək üçün əvvəlcə daxil etdiyiniz datanı tələb edir. Bu datanı yenidən göndərə bilərsiniz, amma bununla, bu səhifənin əvvəllər etdiyi əməliyyatı təkrarlamış olacaqsınız.</translation>
 <translation id="7550637293666041147">Cihazın istifadəçi adı və Chrome istifadəçi adı</translation>
 <translation id="7552846755917812628">Aşağıdakı məsləhətləri sınayın:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq Chrome'un brauzer tarixçəsi datasını təmizləyin</translation>
 <translation id="7554791636758816595">Yeni Panel</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> hesabına girişi itirə və ya kimlik oğurluğu ilə üzləşə bilərsiniz. Chrome parollarınızı indi dəyişməyi məsləhət görür.</translation>
 <translation id="7567204685887185387">Bu server <ph name="DOMAIN" /> olduğunu sübut edə bilmədi; güvənlik sertifikatı saxta ola bilər. Buna yalnış quraşdırma və ya hücumçu bağlantısı səbəb ola bilər.</translation>
@@ -1749,6 +1763,7 @@
 <translation id="8225771182978767009">Kompüteri quraşdıran şəxs bu saytı blok etməyi seçib.</translation>
 <translation id="8228419419708659934">İki səhifə görünüşü</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq bu səhifəni tərcümə edin</translation>
 <translation id="8232343881378637145">Platforma temperaturu</translation>
 <translation id="8238581221633243064">Yeni Gizli tabda səhifə açın</translation>
 <translation id="8241707690549784388">Baxdığınız səhifə daxil etdiyiniz məlumatı işlədir. Həmin səhifəyə qayıtmaq, etdiyiniz istənilən əməlin təkrarlanmasına səbəb ola bilər. Davam edirsiniz?</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index e7a69752..7b69ec4 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -8,6 +8,7 @@
 <translation id="1019413721762100891">выключана</translation>
 <translation id="1021110881106174305">Карткі, якія прымаюцца</translation>
 <translation id="1021753677514347426">Гэта праблема ўзнікае з-за сертыфіката, усталяванага на вашай прыладзе вамі або іншым карыстальнікам. Ёсць інфармацыя, што гэты сертыфікат выкарыстоўваецца для маніторынгу і перахопу сетак, і таму ён не з'яўляецца давераным для Chromium. Бываюць выпадкі, калі такі маніторынг не з'яўляецца незаконным (напрыклад, калі прылада знаходзіцца ў сетцы кампаніі або навучальнай установы), але ў любым выпадку мы хацелі б папярэдзіць вас пра існаванне такога сертыфіката. Выпадкі маніторынгу могуць адбывацца ў любым браўзеры або ў любой праграме, якая мае доступ да інтэрнэту.</translation>
+<translation id="1024111578869940408">Зламыснікі часам імітуюць сайты, уносячы амаль непрыкметныя змяненні ў вэб-адрас.</translation>
 <translation id="1030706264415084469">Сайт <ph name="URL" /> запытвае дазволу захоўваць вялікі аб'ём даных на вашай прыладзе</translation>
 <translation id="1032854598605920125">Павярнуць па гадзіннікавай стрэлцы</translation>
 <translation id="1036348656032585052">Выключыць</translation>
@@ -81,6 +82,7 @@
 <translation id="1294154142200295408">Варыянты для каманднага радка</translation>
 <translation id="129553762522093515">Нядаўна закрытыя</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Паспрабуйце выдаліць файлы cookie<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Кнопка "Адкрыць акно ў рэжыме інкогніта". Каб адкрыць новае акно ў рэжыме інкогніта, націсніце Enter</translation>
 <translation id="1301324364792935241">Праверце налады абароненай DNS</translation>
 <translation id="1307966114820526988">Састарэлыя функцыі</translation>
 <translation id="131405271941274527">Сайт <ph name="URL" /> запытвае доступ на абмен інфармацыяй, калі вы націсканнем выбіраеце свой тэлефон на прыладзе NFC</translation>
@@ -198,6 +200,7 @@
 <translation id="1717494416764505390">Паштовая скрынка 3</translation>
 <translation id="1718029547804390981">Занадта вялікі дакумент для анатацый</translation>
 <translation id="1721424275792716183">* Абавязковае поле</translation>
+<translation id="1724638245199909652">Доступ да лакальных шрыфтоў</translation>
 <translation id="1727741090716970331">Дадайце нумар дзеючай карткі</translation>
 <translation id="1728677426644403582">Вы праглядаеце крыніцу вэб-старонкі</translation>
 <translation id="173080396488393970">Карткі гэтага тыпу не падтрымліваюцца</translation>
@@ -223,6 +226,7 @@
 <translation id="1783075131180517613">Абнавіце фразу-пароль для сінхранізацыі.</translation>
 <translation id="1787142507584202372">Адкрытыя ўкладкі з'явяцца тут</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, даступна некалькі дзеянняў. Для іх прагляду націскайце Tab</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Імя ўладальніка карткі</translation>
 <translation id="1807528111851433570">Пачатковы аркуш</translation>
@@ -251,6 +255,7 @@
 <translation id="1919345977826869612">Рэклама</translation>
 <translation id="1919367280705858090">Дапамога пры асобных паведамленнях аб памылцы</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Няма}=1{1 сайт}one{# сайт}few{# сайты}many{# сайтаў}other{# сайта}}</translation>
+<translation id="1926148189358507356">Кнопка "Перазапусціць, каб абнавіць". Каб абнавіць Chrome, націсніце Enter</translation>
 <translation id="1945968466830820669">Вы можаце страціць доступ да ўліковага запісу арганізацыі, або ў вас могуць скрасці асабістыя даныя. Chromium рэкамендуе змяніць пароль.</translation>
 <translation id="1947454675006758438">Скаба зверху справа</translation>
 <translation id="1959001866257244765">Дапамагаць павысіць бяспеку ў інтэрнэце для ўсіх карыстальнікаў, адпраўляючы <ph name="BEGIN_WHITEPAPER_LINK" />URL-адрасы некаторых наведаных вамі старонак, пэўную сістэмную інфармацыю і змесціва старонак<ph name="END_WHITEPAPER_LINK" /> у Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Палітыка прыватнасці<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -355,6 +360,7 @@
 <translation id="2367567093518048410">Узровень</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Стандартная карпаратыўная</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб адкрыць новае акно ў рэжыме інкогніта ў Chrome</translation>
 <translation id="2385809941344967209">Абнавіць браўзер Chrome праз яго налады</translation>
 <translation id="2386255080630008482">Сертыфікат сервера адкліканы.</translation>
 <translation id="2392959068659972793">Паказваць палітыкі з незададзенымі значэннямі</translation>
@@ -397,6 +403,7 @@
 <translation id="2586657967955657006">Буфер абмену</translation>
 <translation id="2587730715158995865">Крыніца: <ph name="ARTICLE_PUBLISHER" />. Вы можаце прачытаць гэты і яшчэ <ph name="OTHER_ARTICLE_COUNT" /> артыкулаў.</translation>
 <translation id="2587841377698384444">Ідэнтыфікатар API каталога:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб абнавіць звесткі аўтазапаўнення даных крэдытнай карткі ў наладах Chrome</translation>
 <translation id="2595719060046994702">Гэта прылада не знаходзіцца пад кіраваннем кампаніі або іншай арганізацыі.</translation>
 <translation id="2597378329261239068">Гэты дакумент абаронены паролем.  Увядзіце пароль.</translation>
 <translation id="2609632851001447353">Варыянты</translation>
@@ -418,6 +425,8 @@
 <translation id="2677748264148917807">Выйсці</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Аптымальны памер</translation>
+<translation id="2688738823074468716">Кнопка "Кіраваць паролямі". Каб кіраваць паролямі ў наладах Chrome, націсніце Enter</translation>
+<translation id="2688969097326701645">Так, працягнуць</translation>
 <translation id="2691924980723297736">Папярэджанне сістэмы бяспекі</translation>
 <translation id="2699302886720511147">Якія карткі прымаюцца</translation>
 <translation id="2701514975700770343">Рабочым бокам уніз</translation>
@@ -511,6 +520,7 @@
 <translation id="3107591622054137333"><ph name="BEGIN_LINK" />Праверыць канфігурацыю абароненай DNS<ph name="END_LINK" /></translation>
 <translation id="3109728660330352905">Вы не аўтарызаваны для прагляду гэтай старонкі.</translation>
 <translation id="3113284927548439113">Трэцяя змена</translation>
+<translation id="3115874930288085374">Вы выкарыстоўваеце дамен "<ph name="ENROLLMENT_DOMAIN" />", які патрабуе ад вас стварыць рэзервовую копію сваіх даных і вярнуць прыладу <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3116158981186517402">Ламінацыя</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Паспрабаваць запусціць дыягностыку падключэння<ph name="END_LINK" />.</translation>
@@ -737,6 +747,7 @@
 <translation id="4088981014127559358">Зрух відарыса па восі Y, бок 1</translation>
 <translation id="4098354747657067197">Вы збіраецеся перайсці на сайт, вядомы падманнымі паводзінамі</translation>
 <translation id="4101413244023615925">Тэкст і графіка</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб кіраваць паролямі ў наладах Chrome</translation>
 <translation id="4103249731201008433">Серыйны нумар прылады – памылковы</translation>
 <translation id="4103763322291513355">Каб прагледзець чорны спіс URL-адрасоў і іншыя палітыкі, якімі кіруе сістэмны адміністратар, наведайце &lt;strong&gt;chrome://policy&lt;/strong&gt;.</translation>
 <translation id="4110652170750985508">Праверце плацеж</translation>
@@ -907,6 +918,7 @@
 <translation id="4738601419177586157">Прапанова пошуку: <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Кіраваць паролямі…</translation>
 <translation id="4744603770635761495">Выканальны шлях</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб абнавіць Chrome</translation>
 <translation id="4750917950439032686">Ваша інфармацыя (напрыклад, паролі або нумары крэдытных картак) пры адпраўцы на гэты сайт застаецца прыватнай.</translation>
 <translation id="4756388243121344051">&amp;Гісторыя</translation>
 <translation id="4758311279753947758">Дадаць кантактную інфармацыю</translation>
@@ -948,6 +960,7 @@
 <translation id="4926049483395192435">Трэба вызначыць.</translation>
 <translation id="4926159001844873046">Паведамленне на старонцы <ph name="SITE" /></translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, для пошуку націсніце Tab, затым Enter</translation>
 <translation id="4930153903256238152">Вялікая ёмістасць</translation>
 <translation id="4943872375798546930">Няма вынікаў</translation>
 <translation id="4950898438188848926">Кнопка пераключэння ўкладак. Націсніце Enter, каб пераключыцца на адкрытую ўкладку, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1024,6 +1037,7 @@
 <translation id="5215116848420601511">Спосабы аплаты і адрасы, якія выкарыстоўваюць Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Электронны адрас (абавязкова)</translation>
+<translation id="5222994811833658317">Кнопка "Выдаліць даныя". Каб выдаліць даныя гісторыі праглядаў сайтаў у Chrome, націсніце Enter</translation>
 <translation id="5230733896359313003">Адрас дастаўкі</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1064,6 +1078,7 @@
 <translation id="534295439873310000">Прылады NFC</translation>
 <translation id="5344579389779391559">Гэта старонка можа паспрабаваць спагнаць з вас грошы</translation>
 <translation id="5355557959165512791">Наведаць сайт <ph name="SITE" /> зараз нельга: яго сертыфікат адкліканы. Звычайна сеткавыя памылкі і атакі – часовая з'ява, таму гэта старонка будзе, хутчэй за ўсё, працаваць пазней.</translation>
+<translation id="5361930801096459163">Кнопка "Пошук". Каб выканаць пошук па запыце "<ph name="KEYWORD_SUFFIX" />", націсніце Enter</translation>
 <translation id="536296301121032821">Не ўдалося захаваць налады палітыкі</translation>
 <translation id="5371425731340848620">Абнавіць картку</translation>
 <translation id="5377026284221673050">"Ваш гадзіннік спазняецца", або "Ваш гадзіннік спяшаецца", або "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1289,6 +1304,7 @@
 <translation id="6302269476990306341">Памочнік Google у Chrome спыняецца</translation>
 <translation id="6305205051461490394">Сайт <ph name="URL" /> недаступны.</translation>
 <translation id="6312113039770857350">Вэб-старонка недаступная</translation>
+<translation id="6315224405718249523">Кнопка "Перакласці старонку". Каб перакласці гэту старонку, націсніце Enter</translation>
 <translation id="6321917430147971392">Праверце налады DNS</translation>
 <translation id="6322182122604171028">Не ўдалося выкарыстаць Windows Hello</translation>
 <translation id="6328639280570009161">Паспрабуйце выключыць прагназаванне сеткі</translation>
@@ -1343,6 +1359,7 @@
 <translation id="6547208576736763147">Дзве дзіркі злева</translation>
 <translation id="6554795675067793129">Вашым уліковым запісам кіруе дамен <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Узнавіць</translation>
+<translation id="6566840325635607048">Кнопка "Абнавіць крэдытную картку". Каб абнавіць звесткі аўтазапаўнення даных крэдытнай карткі ў наладах Chrome, націсніце Enter</translation>
 <translation id="6569060085658103619">Вы праглядаеце старонку пашырэння</translation>
 <translation id="6573200754375280815">Дзве дзіркі справа</translation>
 <translation id="6578796323535178455">C2 (канверт)</translation>
@@ -1484,6 +1501,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> не адпавядае стандартам бяспекі.</translation>
 <translation id="7210993021468939304">Дзеянні Linux у кантэйнеры, а таксама ўсталёўка і запуск праграм Linux у кантэйнеры</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /> пра гэту праблему.</translation>
+<translation id="7214062855724067749">Выкарыстоўваць усталяваныя на камп'ютары шрыфты для лепшага афармлення тэксту</translation>
 <translation id="7217745192097460130">Пацвердзіць і завяршыць куплю з дапамогай Touch ID?</translation>
 <translation id="7219179957768738017">На падключэнні выкарыстоўваецца <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Ідзе апрацоўка</translation>
@@ -1583,6 +1601,7 @@
 <translation id="7549584377607005141">Для правільнага паказу старонкі патрабуюцца ўведзеныя раней даныя. Можна адправіць гэтыя даныя яшчэ раз, але тым самым будуць паўтораны дзеянні, выкананыя на гэтай старонцы раней.</translation>
 <translation id="7550637293666041147">Ваша імя карыстальніка Chrome і імя карыстальніка на прыладзе</translation>
 <translation id="7552846755917812628">Паспрабуйце наступнае:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб выдаліць даныя гісторыі праглядаў сайтаў у Chrome</translation>
 <translation id="7554791636758816595">Новая ўкладка</translation>
 <translation id="7564049878696755256">Вы можаце страціць доступ да свайго ўліковага запісу <ph name="ORG_NAME" />, або ў вас могуць скрасці асабістыя даныя. Chrome рэкамендуе змяніць пароль.</translation>
 <translation id="7567204685887185387">Серверу не ўдалося даказаць, што гэта <ph name="DOMAIN" />: магчыма, яго сертыфікат бяспекі быў выдадзены падманным шляхам. Прычынай могуць быць няправільныя налады або зламыснік, які спрабуе перахапіць падключэнне.</translation>
@@ -1749,6 +1768,7 @@
 <translation id="8225771182978767009">Карыстальнік, які наладжваў гэты камп'ютар, вырашыў заблакіраваць гэты сайт.</translation>
 <translation id="8228419419708659934">Двухстаронкавы выгляд</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, націсніце Tab, затым Enter, каб перакласці гэту старонку</translation>
 <translation id="8232343881378637145">Тэмпература платформы</translation>
 <translation id="8238581221633243064">Адкрыйце старонку ва ўкладцы інкогніта</translation>
 <translation id="8241707690549784388">Старонка, на якую вы спрабуеце перайсці, выкарыстоўвала ўведзеныя вамі звесткі. Калі вярнуцца на яе, у выніку можа быць паўторна зробленае вамі дзеянне. Працягнуць?</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index fae109e0..fbcd9041 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -81,6 +81,7 @@
 <translation id="1294154142200295408">কম্যান্ড-লাইন ভেরিয়েশন</translation>
 <translation id="129553762522093515">সম্প্রতি বন্ধ হয়েছে</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />আপনার কুকিজ সাফ করে দেখুন<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">'ছদ্মবেশী উইন্ডো খুলুন' বোতাম, Chrome-এ নতুন ছদ্মবেশী উইন্ডো খুলতে এন্টার টিপুন</translation>
 <translation id="1301324364792935241">আপনার সুরক্ষিত DNS সেটিংস চেক করে দেখুন</translation>
 <translation id="1307966114820526988">শীঘ্রই বন্ধ করা হবে এমন ফিচার</translation>
 <translation id="131405271941274527">NFC ডিভাইসে আপনার ফোন ট্যাপ করলে <ph name="URL" /> তথ্য পাঠাতে এবং পেতে চায়</translation>
@@ -223,6 +224,7 @@
 <translation id="1783075131180517613">দয়া করে আপনার সিঙ্ক পাসফ্রেজ আপডেট করুন৷</translation>
 <translation id="1787142507584202372">আপনার খোলা ট্যাবগুলি এখানে দেখা যাবে</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, একাধিক কাজ করা যাবে, বিকল্পগুলি এক এক করে দেখতে ট্যাব টিপুন</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">কার্ড হোল্ডারের নাম</translation>
 <translation id="1807528111851433570">শুরুর শিট</translation>
@@ -252,6 +254,7 @@
 <translation id="1919345977826869612">বিজ্ঞাপন</translation>
 <translation id="1919367280705858090">কোনও নির্দিষ্ট এরর মেসেজের বিষয়ে সাহায্য পান</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{কিছুই নয়}=1{১টি সাইট}one{#টি সাইট}other{#টি সাইট}}</translation>
+<translation id="1926148189358507356">'আপডেট করতে আবার লঞ্চ করুন' বোতাম, Chrome আপডেট করতে এন্টার টিপুন</translation>
 <translation id="1945968466830820669">আপনি নিজের প্রতিষ্ঠানের অ্যাকাউন্টের অ্যাক্সেস হারাতে পারেন অথবা আপনার পরিচয় চুরি হয়ে যেতে পারে। Chromium এখনই আপনার পাসওয়ার্ড পরিবর্তন করার আর্জি জানাচ্ছে।</translation>
 <translation id="1947454675006758438">উপরের ডানদিকে স্টেপল করুন</translation>
 <translation id="1959001866257244765">Google-এ <ph name="BEGIN_WHITEPAPER_LINK" />আপনার দেখা পৃষ্ঠাগুলির ইউআরএল, সিস্টেমের কিছু সীমিত তথ্য এবং পৃষ্ঠার কিছু কন্টেন্ট<ph name="END_WHITEPAPER_LINK" /> পাঠিয়ে ওয়েবে সকলের জন্য নিরাপত্তা উন্নত করতে সাহায্য করুন। <ph name="BEGIN_PRIVACY_PAGE_LINK" />গোপনীয়তা নীতি<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -356,6 +359,7 @@
 <translation id="2367567093518048410">স্তর</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">এন্টারপ্রাইজ ডিফল্ট</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-এ নতুন ছদ্মবেশী উইন্ডো খুলতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="2385809941344967209">Chrome সেটিংস থেকে ব্রাউজার আপডেট করুন</translation>
 <translation id="2386255080630008482">সার্ভারের সার্টিফিকেটটি প্রত্যাহার করা হয়েছে৷</translation>
 <translation id="2392959068659972793">কোনো মান সেট করা নেই এমন নীতিগুলি দেখান</translation>
@@ -398,6 +402,7 @@
 <translation id="2586657967955657006">ক্লিপবোর্ড</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> থেকে পাওয়া। এটি এবং আরও <ph name="OTHER_ARTICLE_COUNT" />টি গল্প পড়ুন।</translation>
 <translation id="2587841377698384444">ডিরেক্টরি API আইডি:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome সেটিংসে ক্রেডিট কার্ড অটোফিল তথ্য আপডেট করতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="2595719060046994702">কোনও কোম্পানি বা সংস্থা এই ডিভাইস ও অ্যাকাউন্ট ম্যানেজ করে না।</translation>
 <translation id="2597378329261239068">এই দস্তাবেজটি পাসওয়ার্ড সুরক্ষিত৷  দয়া করে একটি পাসওয়ার্ড লিখুন৷</translation>
 <translation id="2609632851001447353">বৈচিত্রতা</translation>
@@ -419,6 +424,7 @@
 <translation id="2677748264148917807">ছেড়ে চলে যান</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">সবচেয়ে মানানসই</translation>
+<translation id="2688738823074468716">'পাসওয়ার্ড ম্যানেজ করুন' বোতাম, Chrome সেটিংসে পাসওয়ার্ড ম্যানেজ করতে এন্টার টিপুন</translation>
 <translation id="2691924980723297736">নিরাপত্তা সম্পর্কিত সতর্কতা</translation>
 <translation id="2699302886720511147">এই কার্ডগুলি গ্রহণ করা হয়</translation>
 <translation id="2701514975700770343">সামনের দিক নিচে</translation>
@@ -739,6 +745,7 @@
 <translation id="4088981014127559358">সাইড 1 ছবি Y শিফ্ট</translation>
 <translation id="4098354747657067197">সামনে ধোঁকাবাজ সাইট</translation>
 <translation id="4101413244023615925">টেক্সট ও গ্রাফিক</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome সেটিংসে পাসওয়ার্ড ম্যানেজ করতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="4103249731201008433">ডিভাইসের ক্রমিক সংখ্যা ভুল</translation>
 <translation id="4103763322291513355">কালো তালিকাভুক্ত ইউআরএলগুলির তালিকা এবং আপনার সিস্টেম অ্যাডমিনিস্ট্রেটরের প্রয়োগ করা অন্যান্য নীতিগুলি দেখার জন্য &lt;strong&gt;chrome://policy&lt;/strong&gt;-এ যান৷</translation>
 <translation id="4110652170750985508">আপনার পেমেন্টের রিভিউ</translation>
@@ -909,6 +916,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> সার্চ সাজেশন</translation>
 <translation id="4742407542027196863">পাসওয়ার্ডগুলি পরিচালনা করুন…</translation>
 <translation id="4744603770635761495">সম্পাদনযোগ্য পাথ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome আপডেট করতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="4750917950439032686">আপনার তথ্য (উদাহরণস্বরূপ, পাসওয়ার্ড বা ক্রেডিট কার্ড নম্বর) যখন এই সাইটে পাঠানো হয় তখন সেটি ব্যক্তিগত থাকে।</translation>
 <translation id="4756388243121344051">&amp;ইতিহাস</translation>
 <translation id="4758311279753947758">পরিচিতির তথ্য জুড়ুন</translation>
@@ -950,6 +958,7 @@
 <translation id="4926049483395192435">নির্দিষ্ট করা উচিত৷</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> এ এটি দেখানো হচ্ছে</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, সার্চ করতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="4930153903256238152">অধিক ক্ষমতা সম্পন্ন</translation>
 <translation id="4943872375798546930">কোন ফলাফল নেই</translation>
 <translation id="4950898438188848926">একটি ট্যাব থেকে অন্য ট্যাবে যাওয়ার বোতাম, খোলা ট্যাবে যেতে এন্টার টিপুন, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1026,6 +1035,7 @@
 <translation id="5215116848420601511">Google Pay ব্যবহার করে এমন পেমেন্টের পদ্ধতি এবং ঠিকানা</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ইমেল আইডি প্রয়োজন</translation>
+<translation id="5222994811833658317">'ডেটা মুছুন' বোতাম, Chrome ব্রাউজিং ইতিহাসের ডেটা মুছে দিতে এন্টার টিপুন</translation>
 <translation id="5230733896359313003">শিপিংয়ের ঠিকানা</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1066,6 +1076,7 @@
 <translation id="534295439873310000">NFC ডিভাইস</translation>
 <translation id="5344579389779391559">এই পৃষ্ঠাতে আপনাকে চার্জ করা হতে পারে</translation>
 <translation id="5355557959165512791">ওয়েবসাইটটির সার্টিফিকেট তুলে নেওয়ার কারণে আপনি এখন <ph name="SITE" /> এ যেতে পারবেন না। নেটওয়ার্ক সমস্যা এবং আক্রমণ সাধারণত সাময়িকভাবে হয়, তাই এই পৃষ্ঠাটি সম্ভবত পরে কাজ করবে।</translation>
+<translation id="5361930801096459163">'সার্চ করুন' বোতাম, <ph name="KEYWORD_SUFFIX" /> সার্চ করতে এন্টার টিপুন</translation>
 <translation id="536296301121032821">নীতি সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে</translation>
 <translation id="5371425731340848620">কার্ড আপডেট করুন</translation>
 <translation id="5377026284221673050">"আপনার ঘড়ি লেটে চলছে" অথবা "আপনার ঘড়ি ফাস্ট আছে" অথবা "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1290,6 +1301,7 @@
 <translation id="6302269476990306341">Chrome-এ Google অ্যাসিস্ট্যান্ট এতক্ষণ পরে বন্ধ হয়ে যাবে:</translation>
 <translation id="6305205051461490394"><ph name="URL" /> এ পৌঁছানো যাচ্ছে না</translation>
 <translation id="6312113039770857350">Webpage not available</translation>
+<translation id="6315224405718249523">'পৃষ্ঠা অনুবাদ করুন' বোতাম, এই পৃষ্ঠা অনুবাদ করতে এন্টার টিপুন</translation>
 <translation id="6321917430147971392">আপনার DNS সেটিংস পরীক্ষা করুন</translation>
 <translation id="6322182122604171028">Windows Hello ব্যবহার করা যায়নি</translation>
 <translation id="6328639280570009161">নেটওয়ার্ক পূর্বানুমান নিষ্ক্রিয় করার চেষ্টা করুন</translation>
@@ -1344,6 +1356,7 @@
 <translation id="6547208576736763147">বাঁদিকে ডুয়াল পাঞ্চ</translation>
 <translation id="6554795675067793129">আপনার অ্যাকাউন্ট <ph name="ENROLLMENT_DOMAIN" /> ম্যানেজ করে।</translation>
 <translation id="6556866813142980365">আবার করুন</translation>
+<translation id="6566840325635607048">'ক্রেডিট কার্ড আপডেট করুন' বোতাম, Chrome সেটিংসে ক্রেডিট কার্ড অটোফিল তথ্য আপডেট করতে এন্টার টিপুন</translation>
 <translation id="6569060085658103619">আপনি একটি এক্সটেনশন পৃষ্ঠা দেখছেন</translation>
 <translation id="6573200754375280815">ডানদিকে ডুয়াল পাঞ্চ</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1583,6 +1596,7 @@
 <translation id="7549584377607005141">ঠিকঠাক ডিসপ্লে করার জন্য এই ওয়েবপৃষ্ঠার আপনার আগে দেওয়া ডেটা প্রযোজন৷ আপনি এই ডেটাটি আবার পাঠাতে পারেন, কিন্তু এমনটি করে আপনি যেকোনো পদক্ষেপের পুনরাবৃত্তি করবেন যা এই পৃষ্ঠাটি আগেই সম্পাদনা করেছে৷</translation>
 <translation id="7550637293666041147">আপনার ডিভাইসের ব্যবহারকারীর নাম এবং Chrome-এর ব্যবহারকারীর নাম</translation>
 <translation id="7552846755917812628">নিম্নোল্লিখিত টিপ্স ব্যবহার করে দেখুন:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ব্রাউজিং ইতিহাসের ডেটা মুছে দিতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="7554791636758816595">নতুন ট্যাব</translation>
 <translation id="7564049878696755256">আপনি নিজের <ph name="ORG_NAME" /> অ্যাকাউন্টের অ্যাক্সেস হারাতে পারেন অথবা আপনার পরিচয় চুরি হয়ে যেতে পারে। Chrome এখনই আপনার পাসওয়ার্ড পরিবর্তন করার আর্জি জানাচ্ছে।</translation>
 <translation id="7567204685887185387">এই সার্ভার প্রমাণ করতে পারেনি যে এটি <ph name="DOMAIN" />; এর নিরাপত্তা সার্টিফিকেট প্রতারণাপূর্ণভাবে ইস্যু করা হয়ে থাকতে পারে। কোনো ভুল কনফিগারেশনের কারণে অথবা কোনো আক্রমণকারী আপনার সংযোগ মাঝপথে আটকে দিচ্ছে বলে এমনটা হতে পারে।</translation>
@@ -1749,6 +1763,7 @@
 <translation id="8225771182978767009">এই কম্পিউটার যিনি সেট-আপ করেছেন তিনি এই সাইটটি অবরুদ্ধ করার বিষয়টি চয়ন করেছেন।</translation>
 <translation id="8228419419708659934">দুটি পৃষ্ঠা দেখুন</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, এই পৃষ্ঠা অনুবাদ করতে ট্যাব টিপে এন্টার টিপুন</translation>
 <translation id="8232343881378637145">প্ল্যাটফর্মের তাপমাত্রা</translation>
 <translation id="8238581221633243064">নতুন ছদ্মবেশী ট্যাবে একটি পৃষ্ঠা খুলুন</translation>
 <translation id="8241707690549784388">আপনি যে পৃষ্ঠাটি খুঁজছেন সেটি আপনার দেওয়া তথ্য ব্যবহার করছে৷ এই পৃষ্ঠাতে ফিরে এলে কোনো অ্যাকশন আবার করতে হতে পারে৷ আপনি কি চালিয়ে যেতে চান?</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index 27c83cba..b5ce8ee1 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Varianty pro příkazový řádek</translation>
 <translation id="129553762522093515">Nedávno zavřené</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Zkuste vymazat soubory cookie<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Tlačítko Otevřít anonymní okno, stisknutím klávesy Enter v Chromu otevřete nové anonymní okno</translation>
 <translation id="1301324364792935241">Zkontrolujte nastavení zabezpečeného DNS</translation>
 <translation id="1307966114820526988">Funkce, které již nejsou podporovány</translation>
 <translation id="131405271941274527">Web <ph name="URL" /> chce odesílat a přijímat informace, když se telefonem dotknete zařízení NFC</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">Aktualizujte prosím heslovou frázi pro synchronizaci.</translation>
 <translation id="1787142507584202372">Zde se zobrazí otevřené karty</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, je k dispozici několik akcí, můžete je procházet stisknutím klávesy Tab</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Jméno držitele karty</translation>
 <translation id="1807528111851433570">Počáteční list</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">Reklamy</translation>
 <translation id="1919367280705858090">Nápověda ke konkrétní chybové zprávě</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Žádné}=1{1 web}few{# weby}many{# webu}other{# webů}}</translation>
+<translation id="1926148189358507356">Tlačítko Spustit znovu a aktualizovat, stisknutím klávesy Enter aktualizujete Chrome</translation>
 <translation id="1945968466830820669">Mohli byste ztratit přístup k účtu organizace nebo by mohlo dojít k odcizení vaší identity. Chromium doporučuje okamžitě změnit heslo.</translation>
 <translation id="1947454675006758438">Sponka vpravo nahoře</translation>
 <translation id="1959001866257244765">Pomozte se zlepšováním bezpečnosti na webu tím, že do Googlu budete odesílat <ph name="BEGIN_WHITEPAPER_LINK" />adresy URL některých navštívených stránek, omezené informace o systému a část obsahu stránek<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Zásady ochrany soukromí<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">Úroveň</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Výchozí podnikové nastavení</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter v Chromu otevřete nové anonymní okno</translation>
 <translation id="2385809941344967209">Aktualizujte Chrome v nastavení Chromu</translation>
 <translation id="2386255080630008482">Certifikát serveru byl zamítnut.</translation>
 <translation id="2392959068659972793">Zobrazit zásady bez nastavených hodnot</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">Schránka</translation>
 <translation id="2587730715158995865">Vydavatel: <ph name="ARTICLE_PUBLISHER" />. Přečtěte si tento článek a další (<ph name="OTHER_ARTICLE_COUNT" />).</translation>
 <translation id="2587841377698384444">ID rozhraní Directory API:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter aktualizujete informace pro automatické vyplňování kreditních karet v nastavení Chromu</translation>
 <translation id="2595719060046994702">Toto zařízení a účet nespravuje žádná společnost ani organizace.</translation>
 <translation id="2597378329261239068">Tento dokument je chráněn heslem. Zadejte prosím heslo.</translation>
 <translation id="2609632851001447353">Varianty</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">Odejít</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Přizpůsobit</translation>
+<translation id="2688738823074468716">Tlačítko Spravovat hesla, stisknutím klávesy Enter můžete spravovat hesla v nastavení Chromu</translation>
 <translation id="2688969097326701645">Ano, pokračovat</translation>
 <translation id="2691924980723297736">Bezpečnostní upozornění</translation>
 <translation id="2699302886720511147">Přijímané karty</translation>
@@ -731,6 +737,7 @@
 <translation id="4088981014127559358">Posun obrázku strany 1 na ose Y</translation>
 <translation id="4098354747657067197">Chystáte se navštívit podvodné webové stránky</translation>
 <translation id="4101413244023615925">Text a obrázek</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter můžete spravovat hesla v nastavení Chromu</translation>
 <translation id="4103249731201008433">Sériové číslo zařízení je neplatné</translation>
 <translation id="4103763322291513355">Na stránce &lt;strong&gt;chrome://policy&lt;/strong&gt; naleznete seznam zakázaných adres URL a další zásady vynucené vaším správcem systému.</translation>
 <translation id="4110652170750985508">Kontrola platby</translation>
@@ -897,6 +904,7 @@
 <translation id="4738601419177586157">Návrh vyhledávacího dotazu <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Spravovat hesla…</translation>
 <translation id="4744603770635761495">Spustitelná cesta</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter aktualizujete Chrome</translation>
 <translation id="4750917950439032686">Vaše údaje (například hesla nebo čísla platebních karet) jsou při odesílání na tento web soukromé.</translation>
 <translation id="4756388243121344051">Historie</translation>
 <translation id="4758311279753947758">Přidat kontaktní údaje</translation>
@@ -938,6 +946,7 @@
 <translation id="4926049483395192435">Musí být uvedeno</translation>
 <translation id="4926159001844873046">Web <ph name="SITE" /> říká</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, vyhledávat můžete stisknutím klávesy Tab a poté Enter</translation>
 <translation id="4930153903256238152">Velká kapacita</translation>
 <translation id="4943872375798546930">Žádné výsledky</translation>
 <translation id="4950898438188848926">Tlačítko přepínání karet. Stisknutím klávesy Enter přejdete na otevřenou kartu (<ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />)</translation>
@@ -1014,6 +1023,7 @@
 <translation id="5215116848420601511">Platební metody a adresy pomocí služby Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Je nutné zadat e-mail</translation>
+<translation id="5222994811833658317">Tlačítko Vymazat data, stisknutím klávesy Enter z Chromu vymažete údaje o historii prohlížení</translation>
 <translation id="5230733896359313003">Dodací adresa</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1054,6 +1064,7 @@
 <translation id="534295439873310000">Zařízení NFC</translation>
 <translation id="5344579389779391559">Tato stránka se vám může pokusit naúčtovat poplatky</translation>
 <translation id="5355557959165512791">Web <ph name="SITE" /> teď nemůžete navštívit, protože jeho certifikát byl zrušen. Síťové chyby a útoky jsou obvykle dočasné, tato stránka pravděpodobně později bude fungovat.</translation>
+<translation id="5361930801096459163">Tlačítko Hledat, stisknutím klávesy Enter vyhledáte <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Ukládání nastavení zásady se nezdařilo</translation>
 <translation id="5371425731340848620">Aktualizace karty</translation>
 <translation id="5377026284221673050">Vaše hodiny se zpožďují, Vaše hodiny jdou napřed nebo &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;</translation>
@@ -1278,6 +1289,7 @@
 <translation id="6302269476990306341">Zastavování Asistenta Google v Chromu</translation>
 <translation id="6305205051461490394">Web <ph name="URL" /> není dostupný.</translation>
 <translation id="6312113039770857350">Webová stránka není k dispozici</translation>
+<translation id="6315224405718249523">Tlačítko Přeložit stránku, stisknutím klávesy Enter tuto stránku přeložíte</translation>
 <translation id="6321917430147971392">Zkontrolujte nastavení DNS</translation>
 <translation id="6322182122604171028">Windows Hello nebylo možné použít</translation>
 <translation id="6328639280570009161">Zkuste deaktivovat předvídání akcí sítě</translation>
@@ -1332,6 +1344,7 @@
 <translation id="6547208576736763147">Dva otvory vlevo</translation>
 <translation id="6554795675067793129">Váš účet je spravován doménou <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Opakovat</translation>
+<translation id="6566840325635607048">Tlačítko Aktualizovat platební kartu, stisknutím klávesy Enter aktualizujete informace pro automatické vyplňování kreditních karet v nastavení Chromu</translation>
 <translation id="6569060085658103619">Prohlížíte si stránku rozšíření</translation>
 <translation id="6573200754375280815">Dvě díry vpravo</translation>
 <translation id="6578796323535178455">C2 (obálka)</translation>
@@ -1571,6 +1584,7 @@
 <translation id="7549584377607005141">Tato stránka potřebuje ke správnému zobrazení data, která jste zadali dříve. Tyto údaje můžete odeslat znovu, ale zopakujete tím všechny akce, které tato stránka již předtím provedla.</translation>
 <translation id="7550637293666041147">Vaše uživatelské jméno na zařízení a v Chromu</translation>
 <translation id="7552846755917812628">Vyzkoušejte následující tipy:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter z Chromu vymažete údaje o historii prohlížení</translation>
 <translation id="7554791636758816595">Nová karta</translation>
 <translation id="7564049878696755256">Mohli byste ztratit přístup k účtu <ph name="ORG_NAME" /> nebo by mohlo dojít k odcizení vaší identity. Doporučujeme vám okamžitě změnit heslo.</translation>
 <translation id="7567204685887185387">Server nedokázal prokázat, že patří doméně <ph name="DOMAIN" />. Jeho bezpečnostní certifikát byl zřejmě vydán podvodně. Může to být způsobeno nesprávnou konfigurací nebo tím, že vaše připojení zachytává útočník.</translation>
@@ -1737,6 +1751,7 @@
 <translation id="8225771182978767009">Uživatel, který tento počítač nastavoval, se rozhodl tento web blokovat.</translation>
 <translation id="8228419419708659934">Zobrazení dvou stránek</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter tuto stránku přeložíte</translation>
 <translation id="8232343881378637145">Teplota platformy</translation>
 <translation id="8238581221633243064">Otevřete stránku na nové anonymní kartě</translation>
 <translation id="8241707690549784388">Stránka, kterou hledáte, používala vámi zadané informace. Návrat na tuto stránku by mohl způsobit, že akce, kterou jste provedli, bude opakována. Přejete si pokračovat?</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index d66b6e11..d039c67 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variaciones en la línea de comandos</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Intenta borrar tus cookies<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Botón Abrir ventana de incógnito: Presiona Intro para abrir una nueva ventana de incógnito de Chrome</translation>
 <translation id="1301324364792935241">Revisa la configuración de DNS seguro</translation>
 <translation id="1307966114820526988">Funciones obsoletas</translation>
 <translation id="131405271941274527"><ph name="URL" /> quiere enviar y recibir información cuando presionas tu teléfono en un dispositivo NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Actualiza tu frase de contraseña de sincronización.</translation>
 <translation id="1787142507584202372">Tus pestañas abiertas aparecen aquí</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />: Hay varias acciones disponibles; presiona Tab para elegir una</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nombre del titular de la tarjeta</translation>
 <translation id="1807528111851433570">Hoja de inicio</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Anuncios</translation>
 <translation id="1919367280705858090">Cómo obtener ayuda con un mensaje de error específico</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Ninguno}=1{1 sitio}other{# sitios}}</translation>
+<translation id="1926148189358507356">Botón Reiniciar para actualizar: Presiona Intro para actualizar Chrome</translation>
 <translation id="1945968466830820669">Es posible que hayas perdido el acceso a la cuenta de tu organización o sufrido un robo de identidad. Chromium te recomienda que cambies la contraseña ahora.</translation>
 <translation id="1947454675006758438">Grapa en la esquina superior derecha</translation>
 <translation id="1959001866257244765">Si quieres ayudar a mejorar la seguridad de la Web para todos, envía <ph name="BEGIN_WHITEPAPER_LINK" />las URL de algunas páginas que visitas, información limitada sobre el sistema y determinado contenido de páginas<ph name="END_WHITEPAPER_LINK" /> a Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Política de Privacidad<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Empresa (predeterminada)</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para abrir una nueva ventana de incógnito de Chrome</translation>
 <translation id="2385809941344967209">Actualiza Chrome desde la configuración</translation>
 <translation id="2386255080630008482">Se ha revocado el certificado del servidor.</translation>
 <translation id="2392959068659972793">Mostrar políticas sin valor establecido</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Portapapeles</translation>
 <translation id="2587730715158995865">De <ph name="ARTICLE_PUBLISHER" />. Lee este artículo y <ph name="OTHER_ARTICLE_COUNT" /> más.</translation>
 <translation id="2587841377698384444">ID de API de directorio:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para actualizar la información de Autocompletar para la tarjeta de crédito en la configuración de Chrome</translation>
 <translation id="2595719060046994702">Este dispositivo y esta cuenta no están administrados por una empresa ni otra organización.</translation>
 <translation id="2597378329261239068">Este documento está protegido por contraseña. Ingresa una contraseña.</translation>
 <translation id="2609632851001447353">Variaciones</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Abandonar</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Ajustar tamaño</translation>
+<translation id="2688738823074468716">Botón Administrar contraseñas: Presiona Intro para administrar las contraseñas en la configuración de Chrome</translation>
 <translation id="2688969097326701645">Sí, continuar</translation>
 <translation id="2691924980723297736">Advertencia de seguridad</translation>
 <translation id="2699302886720511147">Tarjetas aceptadas</translation>
@@ -741,6 +747,7 @@
 <translation id="4088981014127559358">Cambio en el eje Y del lado 1 de la imagen</translation>
 <translation id="4098354747657067197">Sitio engañoso</translation>
 <translation id="4101413244023615925">Texto y gráficos</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para administrar las contraseñas en la configuración de Chrome</translation>
 <translation id="4103249731201008433">El número de serie del dispositivo no es válido.</translation>
 <translation id="4103763322291513355">Visita &lt;strong&gt;chrome://policy&lt;/strong&gt; para ver las URL en lista negra y otras políticas que estableció el administrador del sistema.</translation>
 <translation id="4110652170750985508">Revisar el pago</translation>
@@ -911,6 +918,7 @@
 <translation id="4738601419177586157">Sugerencia de búsqueda: <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Administrar contraseñas…</translation>
 <translation id="4744603770635761495">Ruta ejecutable</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para actualizar Chrome</translation>
 <translation id="4750917950439032686">Tu información (p. ej., contraseñas o números de tarjetas de crédito) es privada cuando se envía a este sitio.</translation>
 <translation id="4756388243121344051">&amp;Historial</translation>
 <translation id="4758311279753947758">Agregar información de contacto</translation>
@@ -952,6 +960,7 @@
 <translation id="4926049483395192435">Debe especificarse un valor.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> dice</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para realizar una búsqueda</translation>
 <translation id="4930153903256238152">Gran capacidad</translation>
 <translation id="4943872375798546930">Sin resultados</translation>
 <translation id="4950898438188848926">Botón para cambiar de pestaña; presiona Intro para cambiar a la pestaña abierta <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1028,6 +1037,7 @@
 <translation id="5215116848420601511">Formas de pago y direcciones con Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Correo electrónico (obligatorio)</translation>
+<translation id="5222994811833658317">Botón Borrar datos: Presiona Intro para borrar los datos del historial de navegación de Chrome</translation>
 <translation id="5230733896359313003">Dirección de envío</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1068,6 +1078,7 @@
 <translation id="534295439873310000">Dispositivos NFC</translation>
 <translation id="5344579389779391559">Es posible que esta página intente cobrarte dinero</translation>
 <translation id="5355557959165512791">No puedes visitar <ph name="SITE" /> ahora porque este certificado se revocó. Los ataques y errores de red suelen ser temporales, por lo que es posible que esta página funcione más tarde.</translation>
+<translation id="5361930801096459163">Botón Buscar: Presiona Intro para realizar una búsqueda en <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Error al almacenar la configuración de la política</translation>
 <translation id="5371425731340848620">Actualizar tarjeta</translation>
 <translation id="5377026284221673050">"El reloj está atrasado", "El reloj está adelantado" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1293,6 +1304,7 @@
 <translation id="6302269476990306341">Se está deteniendo el Asistente de Google en Chrome</translation>
 <translation id="6305205051461490394">No se puede acceder a <ph name="URL" />.</translation>
 <translation id="6312113039770857350">Página web no disponible</translation>
+<translation id="6315224405718249523">Botón Traducir página: Presiona Intro para traducir esta página</translation>
 <translation id="6321917430147971392">Revisa la configuración de DNS.</translation>
 <translation id="6322182122604171028">No se pudo usar Windows Hello</translation>
 <translation id="6328639280570009161">Intenta inhabilitar la predicción de red.</translation>
@@ -1347,6 +1359,7 @@
 <translation id="6547208576736763147">Perforación doble a la izquierda</translation>
 <translation id="6554795675067793129"><ph name="ENROLLMENT_DOMAIN" /> administra tu cuenta.</translation>
 <translation id="6556866813142980365">Rehacer</translation>
+<translation id="6566840325635607048">Botón Actualizar tarjeta de crédito: Presiona Intro a fin de actualizar la información de Autocompletar para la tarjeta de crédito en la configuración de Chrome</translation>
 <translation id="6569060085658103619">Estás viendo la página de una extensión</translation>
 <translation id="6573200754375280815">Perforación doble a la derecha</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1587,6 +1600,7 @@
 <translation id="7549584377607005141">Esta página web necesita los datos ingresados anteriormente para mostrarse correctamente. Puedes volver a enviar los datos, pero ten en cuenta que se repetirán las acciones que la página haya realizado anteriormente.</translation>
 <translation id="7550637293666041147">Tu nombre de usuario de Chrome y el de tu dispositivo</translation>
 <translation id="7552846755917812628">Intenta las siguientes sugerencias:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para borrar los datos del historial de navegación de Chrome</translation>
 <translation id="7554791636758816595">Nueva pestaña</translation>
 <translation id="7564049878696755256">Es posible que hayas perdido el acceso a tu cuenta de <ph name="ORG_NAME" /> o sufrido un robo de identidad. Chrome te recomienda que cambies la contraseña ahora.</translation>
 <translation id="7567204685887185387">Este servidor no pudo probar que su dominio es <ph name="DOMAIN" />; el certificado de seguridad podría haberse emitido de forma fraudulenta. Es posible que esto se deba a una configuración incorrecta o a que un atacante interceptó la conexión.</translation>
@@ -1753,6 +1767,7 @@
 <translation id="8225771182978767009">La persona que configuró esta computadora decidió bloquear este sitio.</translation>
 <translation id="8228419419708659934">Vista de dos páginas</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />: Presiona Tab y, luego, Intro para traducir esta página</translation>
 <translation id="8232343881378637145">Temperatura de la plataforma</translation>
 <translation id="8238581221633243064">Abre la página en una nueva pestaña de incógnito.</translation>
 <translation id="8241707690549784388">La página que buscas ha utilizado la información que has especificado. Volver a la página podría provocar la repetición de alguna acción. ¿Deseas continuar?</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 877467f5..9ff12d7 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variaciones de la línea de comandos</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Borrar las cookies<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Botón Abrir una ventana de incógnito, pulsa Intro para abrir una ventana de incógnito nueva en Chrome</translation>
 <translation id="1301324364792935241">Revisa tu configuración de DNS seguro</translation>
 <translation id="1307966114820526988">Funciones obsoletas</translation>
 <translation id="131405271941274527"><ph name="URL" /> quiere enviar y recibir información cuando tu teléfono toque un dispositivo NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Actualiza tu frase de contraseña de sincronización.</translation>
 <translation id="1787142507584202372">Las pestañas abiertas aparecen aquí</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, hay varias acciones disponibles, pulsa Tabulador para desplazarte entre ellas</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nombre del titular de la tarjeta</translation>
 <translation id="1807528111851433570">Hoja de inicio</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Anuncios</translation>
 <translation id="1919367280705858090">Solucionar un error específico</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Ninguno}=1{1 sitio web}other{# sitios web}}</translation>
+<translation id="1926148189358507356">Botón Reinicia para actualizar, pulsa Intro para actualizar Chrome</translation>
 <translation id="1945968466830820669">Podrías perder el acceso a la cuenta de tu organización o tener problemas de suplantación de identidad. Chromium te recomienda que cambies tu contraseña ahora.</translation>
 <translation id="1947454675006758438">Grapado en la parte superior derecha</translation>
 <translation id="1959001866257244765">Ayuda a mejorar la seguridad de todos en la Web enviando a Google las <ph name="BEGIN_WHITEPAPER_LINK" />URL de algunas de las páginas que visites, información limitada del sistema y parte del contenido de las páginas<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Política de Privacidad<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Empresa (con valores predeterminados)</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para abrir una ventana de incógnito nueva en Chrome</translation>
 <translation id="2385809941344967209">Actualiza Chrome desde la configuración</translation>
 <translation id="2386255080630008482">Se ha revocado el certificado de servidor.</translation>
 <translation id="2392959068659972793">Mostrar políticas sin valores establecidos</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Portapapeles</translation>
 <translation id="2587730715158995865">De <ph name="ARTICLE_PUBLISHER" />. Lee este y <ph name="OTHER_ARTICLE_COUNT" /> artículos más.</translation>
 <translation id="2587841377698384444">ID de la API del directorio:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para actualizar la información de autocompletar tarjetas de crédito en la configuración de Chrome</translation>
 <translation id="2595719060046994702">Este dispositivo y esta cuenta no están administrados por ninguna empresa ni organización.</translation>
 <translation id="2597378329261239068">Este documento está protegido por contraseña. Introduce una contraseña.</translation>
 <translation id="2609632851001447353">Variaciones</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Salir</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Mejor ajuste</translation>
+<translation id="2688738823074468716">Botón Administrar contraseñas, pulsa Intro para gestionar contraseñas desde la configuración de Chrome</translation>
 <translation id="2688969097326701645">Sí, continuar</translation>
 <translation id="2691924980723297736">Advertencia de seguridad</translation>
 <translation id="2699302886720511147">Tarjetas aceptadas</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Cara 1 del desplazamiento de la imagen en el eje Y</translation>
 <translation id="4098354747657067197">El sitio web al que vas a acceder es engañoso</translation>
 <translation id="4101413244023615925">Texto e imágenes</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para gestionar contraseñas desde la configuración de Chrome</translation>
 <translation id="4103249731201008433">El número de serie del dispositivo no es válido.</translation>
 <translation id="4103763322291513355">Accede a la página &lt;strong&gt;chrome://policy&lt;/strong&gt; para ver la lista de URLs no admitidas y otras políticas establecidas por el administrador del sistema.</translation>
 <translation id="4110652170750985508">Revisa tu pago</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Sugerencia de búsqueda de <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Gestionar contraseñas…</translation>
 <translation id="4744603770635761495">Ruta del ejecutable</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para actualizar Chrome</translation>
 <translation id="4750917950439032686">Tu información (por ejemplo, las contraseñas o los números de las tarjetas de crédito) es privada cuando se envía a este sitio web.</translation>
 <translation id="4756388243121344051">&amp;Historial</translation>
 <translation id="4758311279753947758">Añadir información de contacto</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Se debe especificar un valor.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> dice</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para buscar</translation>
 <translation id="4930153903256238152">Gran capacidad</translation>
 <translation id="4943872375798546930">Sin resultados</translation>
 <translation id="4950898438188848926">Botón de cambio de pestaña; pulsa Intro para cambiar a la pestaña abierta, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Métodos de pago y direcciones con Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Correo electrónico obligatorio</translation>
+<translation id="5222994811833658317">Botón Borrar datos, pulsa Intro para borrar los datos del historial de navegación de Chrome</translation>
 <translation id="5230733896359313003">Dirección de envío</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">Dispositivos NFC</translation>
 <translation id="5344579389779391559">Es posible que esta página intente aplicar algún cargo</translation>
 <translation id="5355557959165512791">No puedes acceder a <ph name="SITE" /> en este momento porque su certificado se ha revocado. Los ataques y los errores de red suelen ser temporales, por lo que es probable que esta página funcione más tarde.</translation>
+<translation id="5361930801096459163">Botón Buscar, pulsa Intro para buscar en <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Error al almacenar la configuración de la política</translation>
 <translation id="5371425731340848620">Actualizar tarjeta</translation>
 <translation id="5377026284221673050">"Tu reloj está atrasado" o "Tu reloj está adelantado" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Se está parando el Asistente de Google en Chrome</translation>
 <translation id="6305205051461490394">No se puede acceder a <ph name="URL" />.</translation>
 <translation id="6312113039770857350">Página web no disponible</translation>
+<translation id="6315224405718249523">Botón Traducir página, pulsa Intro para traducir esta página</translation>
 <translation id="6321917430147971392">Comprueba tu configuración de DNS</translation>
 <translation id="6322182122604171028">No se ha podido usar Windows Hello</translation>
 <translation id="6328639280570009161">Prueba a inhabilitar la predicción de red</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Perforado doble en la parte izquierda</translation>
 <translation id="6554795675067793129"><ph name="ENROLLMENT_DOMAIN" /> administra tu cuenta.</translation>
 <translation id="6556866813142980365">Rehacer</translation>
+<translation id="6566840325635607048">Botón Actualizar tarjeta de crédito, pulsa Intro para actualizar la información de autocompletar tarjetas de crédito en la configuración de Chrome</translation>
 <translation id="6569060085658103619">Estas viendo la página de una extensión</translation>
 <translation id="6573200754375280815">Perforado doble en la parte derecha</translation>
 <translation id="6578796323535178455">C2 (sobre)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Esta página web necesita los datos introducidos anteriormente para mostrarse correctamente. Puedes volver a enviar los datos, pero se repetirán las acciones que haya realizado la página.</translation>
 <translation id="7550637293666041147">Tu nombre de usuario en el dispositivo y en Chrome</translation>
 <translation id="7552846755917812628">Prueba los siguientes consejos:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para borrar los datos del historial de navegación de Chrome</translation>
 <translation id="7554791636758816595">Nueva pestaña</translation>
 <translation id="7564049878696755256">Podrías perder el acceso a tu cuenta de <ph name="ORG_NAME" /> o tener problemas de suplantación de identidad. Chrome te recomienda que cambies tu contraseña ahora.</translation>
 <translation id="7567204685887185387">Este servidor no ha podido probar que su dominio es <ph name="DOMAIN" />, su certificado de seguridad podría haberse emitido de forma fraudulenta. El problema puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">La persona que ha configurado este ordenador ha elegido bloquear este sitio web.</translation>
 <translation id="8228419419708659934">Vista de dos páginas</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" /> o <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para traducir esta página</translation>
 <translation id="8232343881378637145">Temperatura de plataforma</translation>
 <translation id="8238581221633243064">Abre una página en una nueva pestaña de incógnito</translation>
 <translation id="8241707690549784388">La página que buscas ha utilizado la información que has especificado. Volver a la página podría provocar la repetición de alguna acción. ¿Quieres continuar?</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index 3fe10cc..11c2314 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Agindu-lerroaren aldaerak</translation>
 <translation id="129553762522093515">Itxitako azkenak</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Saiatu cookieak garbituta<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">"Ireki ezkutuko moduko leihoa" botoia: sakatu "Sartu" Chrome-ko ezkutuko moduko leiho bat irekitzeko</translation>
 <translation id="1301324364792935241">Egiaztatu DNS ezarpen seguruak</translation>
 <translation id="1307966114820526988">Eginbide zaharkituak</translation>
 <translation id="131405271941274527"><ph name="URL" /> webguneak informazioa bidali eta jaso nahi du telefonoarekin NFC bidezko gailu bat ukituz gero</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">Eguneratu sinkronizatzeko pasaesaldia.</translation>
 <translation id="1787142507584202372">Ireki dituzun fitxak agertuko dira hemen</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />: hainbat ekintza dituzu eskuragarri. Sakatu tabuladorea batetik bestera joateko.</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Txartelaren titularraren izena</translation>
 <translation id="1807528111851433570">Hasierako orria</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">Iragarkiak</translation>
 <translation id="1919367280705858090">Lortu errore-mezu jakin bati buruzko laguntza</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Bat ere ez}=1{1 webgune}other{# webgune}}</translation>
+<translation id="1926148189358507356">"Abiarazi berriro eguneratzeko" botoia: sakatu "Sartu" Chrome eguneratzeko</translation>
 <translation id="1945968466830820669">Erakundearen konturako sarbidea gal zenezake, edo nortasuna lapur liezazukete. Pasahitza aldatzea gomendatzen dizu Chromium-ek.</translation>
 <translation id="1947454675006758438">Grapa bat goian, eskuinetara</translation>
 <translation id="1959001866257244765">Sareko segurtasuna hobetzen laguntzeko, bidali <ph name="BEGIN_WHITEPAPER_LINK" />ireki dituzun orrietako batzuen URLak, sistemari buruzko informazio mugatua eta orrietako edukiaren zati bat<ph name="END_WHITEPAPER_LINK" /> Google-ri. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Pribatutasun-gidalerroak<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">Maila</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Enpresaren balio lehenetsia</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" Chrome-ko ezkutuko moduko leiho bat irekitzeko</translation>
 <translation id="2385809941344967209">Eguneratu Chrome arakatzaile horren ezarpenetan</translation>
 <translation id="2386255080630008482">Zerbitzariaren ziurtagiria baliogabetu egin da.</translation>
 <translation id="2392959068659972793">Erakutsi balioak ezarri gabe dituzten gidalerroak</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">Arbela</translation>
 <translation id="2587730715158995865">Iturburua: <ph name="ARTICLE_PUBLISHER" />. Irakurri hau eta beste <ph name="OTHER_ARTICLE_COUNT" /> artikulu.</translation>
 <translation id="2587841377698384444">Direktorioko APIaren IDa:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" kreditu-txartela automatikoki betetzeko datuak eguneratzeko Chrome-ren ezarpenetan</translation>
 <translation id="2595719060046994702">Ez dago gailua eta kontua kudeatzen dituen enpresa edo erakunderik.</translation>
 <translation id="2597378329261239068">Dokumentua pasahitzez babestuta dago. Idatzi pasahitza.</translation>
 <translation id="2609632851001447353">Aldaerak</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">Irten</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Doikuntzarik onena</translation>
+<translation id="2688738823074468716">"Kudeatu pasahitzak" botoia: sakatu "Sartu" pasahitzak kudeatzeko Chrome-ren ezarpenetan</translation>
 <translation id="2688969097326701645">Bai, egin aurrera</translation>
 <translation id="2691924980723297736">Segurtasun-abisua</translation>
 <translation id="2699302886720511147">Onartzen diren txartelak</translation>
@@ -731,6 +737,7 @@
 <translation id="4088981014127559358">1. aldeko irudia Y ardatzaren arabera aldatuta</translation>
 <translation id="4098354747657067197">Webgune engainagarria</translation>
 <translation id="4101413244023615925">Testua eta grafikoa</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" pasahitzak kudeatzeko Chrome-ren ezarpenetan</translation>
 <translation id="4103249731201008433">Gailuaren serie-zenbakiak ez du balio</translation>
 <translation id="4103763322291513355">Joan &lt;strong&gt;chrome://policy&lt;/strong&gt; orrira sistema-administratzaileak zerrenda beltzean ezarritako URLen zerrenda eta aplikatutako gidalerroak ikusteko.</translation>
 <translation id="4110652170750985508">Berrikusi ordainketa</translation>
@@ -897,6 +904,7 @@
 <translation id="4738601419177586157">Bilaketa-iradokizuna: <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Kudeatu pasahitzak…</translation>
 <translation id="4744603770635761495">Exekuta daitekeen fitxategiaren bide-izena</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" Chrome eguneratzeko</translation>
 <translation id="4750917950439032686">Informazioa (adibidez, pasahitzak edo kreditu-txartelen zenbakiak) eduki pribatu gisa bidaltzen da webgune honetara.</translation>
 <translation id="4756388243121344051">&amp;Historia</translation>
 <translation id="4758311279753947758">Gehitu harremanetarako informazioa</translation>
@@ -938,6 +946,7 @@
 <translation id="4926049483395192435">Nahitaez zehaztu behar da.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> webguneak hau dio:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" bilaketa egiteko</translation>
 <translation id="4930153903256238152">Edukiera handia</translation>
 <translation id="4943872375798546930">Ez dago emaitzarik</translation>
 <translation id="4950898438188848926">Fitxa aldatzeko botoia. Ireki duzun fitxara (<ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />) joateko, sakatu Sartu.</translation>
@@ -1014,6 +1023,7 @@
 <translation id="5215116848420601511">Google Pay-rekin erabiltzen dituzun ordainketa-metodoak eta helbideak</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Nahitaez zehaztu behar duzu helbide elektronikoa</translation>
+<translation id="5222994811833658317">"Garbitu datuak" botoia: sakatu "Sartu" Chrome-ko arakatze-historiako datuak garbitzeko</translation>
 <translation id="5230733896359313003">Bidalketa-helbidea</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1054,6 +1064,7 @@
 <translation id="534295439873310000">NFC darabilten gailuak</translation>
 <translation id="5344579389779391559">Baliteke orri hau dirua kobratzen saiatzea</translation>
 <translation id="5355557959165512791">Une honetan ezin zara joan <ph name="SITE" /> webgunera ziurtagiria ukatu egin delako. Sareko erroreak eta erasoak aldi baterakoak izan ohi dira; beraz, geroago funtzionatuko du orriak, segur aski.</translation>
+<translation id="5361930801096459163">"Bilatu" botoia: sakatu "Sartu" <ph name="KEYWORD_SUFFIX" /> bilatzeko</translation>
 <translation id="536296301121032821">Ezin izan dira gorde gidalerroaren ezarpenak</translation>
 <translation id="5371425731340848620">Eguneratu txartela</translation>
 <translation id="5377026284221673050">"Erlojua atzeratuta duzu", "Erlojua aurreratuta duzu" edo "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1278,6 +1289,7 @@
 <translation id="6302269476990306341">Chrome-rako Google-ren Laguntzailea gelditzen</translation>
 <translation id="6305205051461490394">Ezin da konektatu <ph name="URL" /> webgunera.</translation>
 <translation id="6312113039770857350">Ez dago erabilgarri web-orria</translation>
+<translation id="6315224405718249523">"Itzuli orria" botoia: sakatu "Sartu" orria itzultzeko</translation>
 <translation id="6321917430147971392">Begiratu DNS ezarpenak</translation>
 <translation id="6322182122604171028">Ezin izan da erabili Windows Hello</translation>
 <translation id="6328639280570009161">Saiatu sarearen iragarpena desgaitzen</translation>
@@ -1332,6 +1344,7 @@
 <translation id="6547208576736763147">Bi zulo ezkerrean</translation>
 <translation id="6554795675067793129"><ph name="ENROLLMENT_DOMAIN" /> domeinuak kudeatzen du zure kontua.</translation>
 <translation id="6556866813142980365">Berregin</translation>
+<translation id="6566840325635607048">"Eguneratu kreditu-txartela" botoia: sakatu "Sartu" kreditu-txartela automatikoki betetzeko datuak eguneratzeko Chrome-ren ezarpenetan</translation>
 <translation id="6569060085658103619">Luzapen baten orria ari zara ikusten</translation>
 <translation id="6573200754375280815">Bi zulo eskuinean</translation>
 <translation id="6578796323535178455">C2 (gutun-azala)</translation>
@@ -1572,6 +1585,7 @@
 <translation id="7549584377607005141">Web-orriak lehen idatzitako datuak behar ditu behar bezala bistaratzeko. Datuak berriro bidal ditzakezu, baina, hori eginez gero, orriak lehen egindako ekintza bera gauzatuko du berriro.</translation>
 <translation id="7550637293666041147">Gailuko eta Chrome-ko erabiltzaile-izenak</translation>
 <translation id="7552846755917812628">Saiatu hauek egiten:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" Chrome-ko arakatze-historiako datuak garbitzeko</translation>
 <translation id="7554791636758816595">Fitxa berria</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> konturako sarbidea gal zenezake, edo kontua lapur liezazukete. Pasahitza aldatzea gomendatzen dizu Chrome-k.</translation>
 <translation id="7567204685887185387">Zerbitzari honek ezin izan du egiaztatu <ph name="DOMAIN" /> domeinua denik. Bere segurtasun-ziurtagiria iruzurrezko moduan igorrita egon liteke. Baliteke gaizki konfiguratuta dagoelako izatea edo erasotzaile batek zure konexioa atzeman duelako izatea.</translation>
@@ -1738,6 +1752,7 @@
 <translation id="8225771182978767009">Ordenagailua konfiguratu duen pertsonak webgune hau blokeatzea aukeratu du.</translation>
 <translation id="8228419419708659934">Bi orriko ikuspegia</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu "Sartu" orria itzultzeko</translation>
 <translation id="8232343881378637145">Plataformaren tenperatura</translation>
 <translation id="8238581221633243064">Ireki orria ezkutuko moduko fitxa berri batean</translation>
 <translation id="8241707690549784388">Bilatzen ari zaren orriak idatzi duzun informazioa erabili du. Orrira itzultzen bazara, baliteke egin dituzun ekintzak errepikatzea. Jarraitu nahi duzu?</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 2da0f4fc0..4cde82f4 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Komentorivin muunnelmat</translation>
 <translation id="129553762522093515">Hiljattain suljetut välilehdet</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Tyhjennä evästeet.<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Avaa incognito-ikkuna ‑painike, avaa uusi Chromen incognito-ikkuna painamalla Enter</translation>
 <translation id="1301324364792935241">Tarkista suojatun DNS:n asetukset</translation>
 <translation id="1307966114820526988">Käytöstä poistetut ominaisuudet</translation>
 <translation id="131405271941274527"><ph name="URL" /> haluaa lähettää ja vastaanottaa tietoja, kun kosketat puhelimella NFC-laitetta</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Päivitä synkronoinnin tunnuslause.</translation>
 <translation id="1787142507584202372">Avoimet välilehdet näkyvät tässä.</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, useita toimintoja saatavilla, selaa niitä painamalla sarkainta</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kortinhaltijan nimi</translation>
 <translation id="1807528111851433570">Aloitussivu</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Mainokset</translation>
 <translation id="1919367280705858090">Tiettyjen virheiden korjaaminen</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Ei mitään}=1{1 sivusto}other{# sivustoa}}</translation>
+<translation id="1926148189358507356">Käynnistä uudelleen ja päivitä ‑painike, päivitä Chrome painamalla Enter</translation>
 <translation id="1945968466830820669">Voit menettää organisaatiosi tilin käyttöoikeuden tai joutua identiteettivarkauden uhriksi. Chromium suosittelee vaihtamaan salasanan välittömästi.</translation>
 <translation id="1947454675006758438">Niitti oikeassa yläkulmassa</translation>
 <translation id="1959001866257244765">Auta parantamaan kaikkien verkkoturvallisuutta lähettämällä Googlelle <ph name="BEGIN_WHITEPAPER_LINK" />joidenkin avaamiesi sivujen URL-osoitteita, rajallisia järjestelmätietoja ja osia sivujen sisällöstä<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Tietosuojakäytäntö<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Taso</translation>
 <translation id="2380886658946992094">Lakiasiat</translation>
 <translation id="2384307209577226199">Yrityksen oletus</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, avaa uusi Chromen incognito-ikkuna painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="2385809941344967209">Päivitä Chrome sen asetuksista</translation>
 <translation id="2386255080630008482">Palvelimen varmenne on kumottu.</translation>
 <translation id="2392959068659972793">Näytä käytännöt, joille ei ole asetettu arvoa</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Leikepöytä</translation>
 <translation id="2587730715158995865">Julkaisijalta <ph name="ARTICLE_PUBLISHER" />. Lue tämä ja <ph name="OTHER_ARTICLE_COUNT" /> muuta tarinaa.</translation>
 <translation id="2587841377698384444">Hakemistosovellusliittymän tunnus:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, päivitä credit-korttien automaattiset täyttötiedot Chromen asetuksissa painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="2595719060046994702">Yritys tai muu organisaatio ei ylläpidä tätä laitetta tai tiliä.</translation>
 <translation id="2597378329261239068">Tämä asiakirja on suojattu salasanalla. Lisää salasana.</translation>
 <translation id="2609632851001447353">Muunnelmat</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Poistu</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Sopivin koko</translation>
+<translation id="2688738823074468716">Ylläpidä salasanoja ‑painike, ylläpidä salasanoja Chromen asetuksissa painamalla Enter</translation>
 <translation id="2688969097326701645">Kyllä, jatka</translation>
 <translation id="2691924980723297736">Turvallisuusvaroitus</translation>
 <translation id="2699302886720511147">Hyväksytyt kortit</translation>
@@ -743,6 +749,7 @@
 <translation id="4088981014127559358">1. puolen kuvan Y vaihto</translation>
 <translation id="4098354747657067197">Seuraava sivusto on petollinen</translation>
 <translation id="4101413244023615925">Teksti ja grafiikka</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ylläpidä salasanoja Chromen asetuksissa painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="4103249731201008433">Laitteen sarjanumero on virheellinen</translation>
 <translation id="4103763322291513355">Voit lukea listan kielletyistä URL-osoitteista ja muut järjestelmänvalvojasi määräämät käytännöt osoitteessa &lt;strong&gt;chrome://policy&lt;/strong&gt;.</translation>
 <translation id="4110652170750985508">Tarkasta maksu</translation>
@@ -913,6 +920,7 @@
 <translation id="4738601419177586157">Hakuehdotus <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Ylläpidä salasanoja…</translation>
 <translation id="4744603770635761495">Suoritettavan tiedoston polku</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, päivitä Chrome painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="4750917950439032686">Salasanat, luottokorttinumerot ja muut tietosi pysyvät yksityisinä, kun ne lähetetään tälle sivustolle.</translation>
 <translation id="4756388243121344051">&amp;Historia</translation>
 <translation id="4758311279753947758">Lisää yhteystiedot</translation>
@@ -954,6 +962,7 @@
 <translation id="4926049483395192435">On määritettävä.</translation>
 <translation id="4926159001844873046">Viesti osoitteesta <ph name="SITE" /></translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tee haku painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="4930153903256238152">Suuri kapasiteetti</translation>
 <translation id="4943872375798546930">Ei tuloksia</translation>
 <translation id="4950898438188848926">Välilehden vaihtopainike, siirry avoimelle välilehdelle painamalla Enter, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1030,6 +1039,7 @@
 <translation id="5215116848420601511">Maksutavat ja osoitteet Google Paysta</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Sähköposti vaaditaan</translation>
+<translation id="5222994811833658317">Poista data ‑painike, tyhjennä Chromen selaushistoriadata painamalla Enter</translation>
 <translation id="5230733896359313003">Toimitusosoite</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1070,6 +1080,7 @@
 <translation id="534295439873310000">NFC-laitteet</translation>
 <translation id="5344579389779391559">Tämä sivu voi yrittää veloittaa sinua</translation>
 <translation id="5355557959165512791"><ph name="SITE" /> ei juuri nyt ole käytettävissä, koska sen varmenne ei ole voimassa. Verkkovirheet ja hyökkäykset ovat yleensä väliaikaisia, joten sivu luultavasti toimii myöhemmin.</translation>
+<translation id="5361930801096459163">Haku-painike, hae painamalla Enter: <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Käytännön asetuksien tallentaminen epäonnistui</translation>
 <translation id="5371425731340848620">Päivitä kortti</translation>
 <translation id="5377026284221673050">"Kellosi jätättää", "Kellosi edistää" tai "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1295,6 +1306,7 @@
 <translation id="6302269476990306341">Chromen Google Assistant suljetaan</translation>
 <translation id="6305205051461490394">Sivustoon <ph name="URL" /> ei saada yhteyttä.</translation>
 <translation id="6312113039770857350">Verkkosivu ei ole saatavilla</translation>
+<translation id="6315224405718249523">Käännä sivu ‑painike, käännä tämä sivu painamalla Enter</translation>
 <translation id="6321917430147971392">Tarkista DNS-asetukset</translation>
 <translation id="6322182122604171028">Windows Hellon käyttö ei onnistunut</translation>
 <translation id="6328639280570009161">Kokeile verkon ennakoinnin poistamista käytöstä.</translation>
@@ -1349,6 +1361,7 @@
 <translation id="6547208576736763147">Kaksi reikää vasemmalla</translation>
 <translation id="6554795675067793129">Tätä tiliä ylläpitää <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Tee uudelleen</translation>
+<translation id="6566840325635607048">Päivitä credit-kortti ‑painike, päivitä credit-korttien automaattiset täyttötiedot Chromen asetuksissa</translation>
 <translation id="6569060085658103619">Tämä on laajennussivu.</translation>
 <translation id="6573200754375280815">Kaksi reikää oikealla</translation>
 <translation id="6578796323535178455">C2 (kirjekuori)</translation>
@@ -1589,6 +1602,7 @@
 <translation id="7549584377607005141">Tämän sivun näyttäminen oikein edellyttää aiemmin lähetettyjä tietoja. Voit lähettää tiedot uudelleen, mutta tällöin sivulla mahdollisesti suoritettu toiminto toistetaan.</translation>
 <translation id="7550637293666041147">Käyttäjänimi laitteella ja käyttäjänimi Chromessa</translation>
 <translation id="7552846755917812628">Kokeile seuraavia keinoja:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, tyhjennä Chromen selaushistoriadata painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="7554791636758816595">Uusi välilehti</translation>
 <translation id="7564049878696755256">Saatat menettää <ph name="ORG_NAME" />-tilisi käyttöoikeuden tai joutua identiteettivarkauden uhriksi. Chrome suosittelee salasanan vaihtamista välittömästi.</translation>
 <translation id="7567204685887185387">Palvelin ei voinut todistaa olevansa <ph name="DOMAIN" />; sen suojausvarmenne on ehkä luotu vilpillisesti. Tämä voi johtua määritysvirheestä tai verkkoyhteytesi siepanneesta hyökkääjästä.</translation>
@@ -1755,6 +1769,7 @@
 <translation id="8225771182978767009">Tämän tietokoneen määrittänyt henkilö on estänyt tämän sivuston.</translation>
 <translation id="8228419419708659934">Kahden sivun näkymä</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, käännä tämä sivu painamalla ensin sarkainta ja sitten Enter</translation>
 <translation id="8232343881378637145">Alustan lämpötila</translation>
 <translation id="8238581221633243064">Avaa sivu uudessa incognito-välilehdessä.</translation>
 <translation id="8241707690549784388">Etsimäsi sivu käytti antamiasi tietoja. Sivulle palaaminen voi johtaa jokaisen tekemäsi toiminnon toistamiseen. Haluatko jatkaa?</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 9deb74c..44affef 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Mga variation ng command-line</translation>
 <translation id="129553762522093515">Kamakailang isinara</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Subukang i-clear ang iyong cookies<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Button na Magbukas ng Incognito Window, pindutin ang Enter para magbukas ng bagong incognito window ng Chrome</translation>
 <translation id="1301324364792935241">Suriin ang iyong mga setting ng Secure na DNS</translation>
 <translation id="1307966114820526988">Mga Hindi na Ginagamit na Feature</translation>
 <translation id="131405271941274527">Gusto ng <ph name="URL" /> na magpadala at makatanggap ng impormasyon kapag na-tap mo ang iyong telepono sa isang NFC device</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Mangyaring i-update ang iyong passphrase ng pag-sync.</translation>
 <translation id="1787142507584202372">Lalabas dito ang iyong mga bukas na tab</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, maraming available na pagkilos, pindutin ang Tab para makita ang mga ito</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Pangalan ng Cardholder</translation>
 <translation id="1807528111851433570">Panimulang sheet</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Mga Ad</translation>
 <translation id="1919367280705858090">Humingi ng tulong sa partikular na mensahe ng error</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Wala}=1{1 site}one{# site}other{# na site}}</translation>
+<translation id="1926148189358507356">Button na Ilunsad Ulit para I-update, pindutin ang Enter para i-update ang Chrome</translation>
 <translation id="1945968466830820669">Maaari kang mawalan ng access sa account ng iyong organisasyon o manakawan ng pagkakakilanlan. Inirerekomenda ng Chromium na palitan ang iyong password ngayon.</translation>
 <translation id="1947454675006758438">Staple top right</translation>
 <translation id="1959001866257244765">Tumulong na pahusayin ang seguridad sa web para sa lahat sa pamamagitan ng pagpapadala ng <ph name="BEGIN_WHITEPAPER_LINK" />mga URL ng ilang page na binibisita mo, limitadong impormasyon ng system, at ilang content ng page<ph name="END_WHITEPAPER_LINK" /> sa Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Patakaran sa privacy<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Antas</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Default ng enterprise</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para magbukas ng bagong incognito window ng Chrome</translation>
 <translation id="2385809941344967209">I-update ang Chrome mula sa iyong mga setting ng Chrome</translation>
 <translation id="2386255080630008482">Nabawi ang certificate ng server.</translation>
 <translation id="2392959068659972793">Ipakita ang mga patakarang walang nakatakdang halaga</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Clipboard</translation>
 <translation id="2587730715158995865">Mula sa <ph name="ARTICLE_PUBLISHER" />. Basahin ito at ang <ph name="OTHER_ARTICLE_COUNT" /> (na) iba pang kwento.</translation>
 <translation id="2587841377698384444">Directory API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para i-update ang impormasyon ng credit card para sa pag-autofill sa mga setting ng Chrome</translation>
 <translation id="2595719060046994702">Ang device at account na ito ay hindi pinapamahalaan ng kumpanya o iba pang organisasyon.</translation>
 <translation id="2597378329261239068">Protektado ng password ang dokumentong ito.  Mangyaring magpasok ng password.</translation>
 <translation id="2609632851001447353">Mga Pagkakaiba-iba</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Umalis</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Pinakakasya</translation>
+<translation id="2688738823074468716">Button na Pamahalaan ang Mga Password, pindutin ang Enter para pamahalaan ang mga password sa mga setting ng Chrome</translation>
 <translation id="2688969097326701645">Oo, magpatuloy</translation>
 <translation id="2691924980723297736">Babala sa kaligtasan</translation>
 <translation id="2699302886720511147">Mga Tinatanggap na Card</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Pag-shift ng gilid 1 larawan Y</translation>
 <translation id="4098354747657067197">Mapupunta sa nakakapanlinlang na site</translation>
 <translation id="4101413244023615925">Text at graphic</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para pamahalaan ang mga password sa mga setting ng Chrome</translation>
 <translation id="4103249731201008433">Di-wasto ang serial number ng device</translation>
 <translation id="4103763322291513355">Bisitahin ang &lt;strong&gt;chrome://policy&lt;/strong&gt; upang makita ang listahan ng mga naka-blacklist na URL at iba pang mga patakaran na ipinapatupad ng iyong system administrator.</translation>
 <translation id="4110652170750985508">Suriin ang iyong pagbabayad</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Suhestyon sa paghahanap para sa <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Pamahalaan ang mga password...</translation>
 <translation id="4744603770635761495">Naipapatupad na Path</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para i-update ang Chrome</translation>
 <translation id="4750917950439032686">Pribado ang iyong impormasyon (halimbawa, mga password o credit card number) kapag ipinadala ito sa site na ito.</translation>
 <translation id="4756388243121344051">&amp;History</translation>
 <translation id="4758311279753947758">Magdagdag ng impormasyon sa pakikipag-ugnayan</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Dapat na tukuyin.</translation>
 <translation id="4926159001844873046">Isinasaad ng <ph name="SITE" /> na</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para maghanap</translation>
 <translation id="4930153903256238152">Malaking kapasidad</translation>
 <translation id="4943872375798546930">Walang mga resulta</translation>
 <translation id="4950898438188848926">Button sa paglipat ng tab, pindutin ang Enter para lumipat sa nakabukas na tab, na <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Mga paraan ng pagbabayad at address gamit ang Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Kailangan ng email</translation>
+<translation id="5222994811833658317">Button na I-clear ang Data, pindutin ang Enter para i-clear ang data ng history ng pag-browse ng Chrome</translation>
 <translation id="5230733896359313003">Address na Padadalhan</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">Mga NFC device</translation>
 <translation id="5344579389779391559">Maaari kang singilin ng pera ng page na ito</translation>
 <translation id="5355557959165512791">Hindi mo maaaring bisitahin ang <ph name="SITE" /> sa ngayon dahil binawi na ang certificate nito. Karaniwang pansamantala lang ang mga error at pag-atake sa network, kaya malamang na gagana ang page na ito sa ibang pagkakataon.</translation>
+<translation id="5361930801096459163">Button na Maghanap, pindutin ang Enter para hanapin ang <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Nabigo i-load ang mga setting ng patakaran sa store</translation>
 <translation id="5371425731340848620">I-update ang card</translation>
 <translation id="5377026284221673050">"Nahuhuli ang iyong orasan" o "Nauuna ang iyong orasan" o "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Ihinihinto ang Google Assistant sa Chrome</translation>
 <translation id="6305205051461490394">Hindi makakonekta sa <ph name="URL" />.</translation>
 <translation id="6312113039770857350">Hindi available ang webpage</translation>
+<translation id="6315224405718249523">Button na Isalin ang Page, pindutin ang Enter para isalin ang page na ito</translation>
 <translation id="6321917430147971392">Suriin ang iyong mga setting ng DNS</translation>
 <translation id="6322182122604171028">Hindi magamit ang Windows Hello</translation>
 <translation id="6328639280570009161">Subukang i-disable ang paghula ng network</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Dual punch left</translation>
 <translation id="6554795675067793129">Pinapamahalaan ng <ph name="ENROLLMENT_DOMAIN" /> ang iyong account.</translation>
 <translation id="6556866813142980365">Redo</translation>
+<translation id="6566840325635607048">Button na I-update ang Credit Card, pindutin ang Enter para i-update ang impormasyon ng credit card para sa pag-autofill sa mga setting ng Chrome</translation>
 <translation id="6569060085658103619">Isang page ng extension ang tinitingnan mo</translation>
 <translation id="6573200754375280815">Dual punch right</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Kinakailangan ng webpage na ito ng data na inilagay mo dati upang maipakita nang maayos. Maipapadala mong muli ang data na ito, ngunit kapag ginawa mo iyon, mauulit ang anumang pagkilos na isinagawa dati ng pahinang ito.</translation>
 <translation id="7550637293666041147">Username ng iyong device at username sa Chrome</translation>
 <translation id="7552846755917812628">Subukan ang mga sumusunod na tip:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para i-clear ang data ng history ng pag-browse ng Chrome</translation>
 <translation id="7554791636758816595">Bagong Tab</translation>
 <translation id="7564049878696755256">Maaari kang mawalan ng access sa iyong account sa <ph name="ORG_NAME" /> o manakawan ng pagkakakilanlan. Inirerekomenda ng Chrome na palitan ang iyong password ngayon.</translation>
 <translation id="7567204685887185387">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; maaaring mapanlokong ibinigay ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">Pinili ng taong nag-set up ng computer na ito na i-block ang site na ito.</translation>
 <translation id="8228419419708659934">Dalawang page na view</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay Enter para isalin ang page na ito</translation>
 <translation id="8232343881378637145">Temperatura ng platform</translation>
 <translation id="8238581221633243064">Buksan ang page sa bagong Incognito tab</translation>
 <translation id="8241707690549784388">Ang pahina na hinahanap mo para sa paggamit ng impormasyon na ipinasok mo. Ang pagbalik sa pahinang iyon maaaring magsanhi ng anumang aksyon na akalo mo ay naulit. Nais mo bang ipagpatuloy?</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index 7ab9538..3cc0027e 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variantes de ligne de commande</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Essayez d'effacer vos témoins<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Bouton Ouvrir une fenêtre de navigation privée, appuyez sur Entrée pour ouvrir une nouvelle fenêtre de navigation privée dans Chrome</translation>
 <translation id="1301324364792935241">Vérifiez les paramètres de DNS sécurisés</translation>
 <translation id="1307966114820526988">Fonctionnalités obsolètes</translation>
 <translation id="131405271941274527"><ph name="URL" /> souhaite vous envoyer et recevoir de l'information lorsque vous touchez votre téléphone sur un appareil NFC</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">Veuillez mettre à jour votre phrase de passe de synchronisation.</translation>
 <translation id="1787142507584202372">Vos onglets ouverts s'affichent ici</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, plusieurs actions sont possibles, appuyez sur la touche Tab pour les parcourir</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nom du titulaire de la carte</translation>
 <translation id="1807528111851433570">Feuille de début</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">Annonces</translation>
 <translation id="1919367280705858090">Obtenir de l'aide pour un message d'erreur spécifique</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Aucun}=1{1 site}one{# site}other{# sites}}</translation>
+<translation id="1926148189358507356">Bouton Relancer pour mettre à jour, appuyez sur Entrée pour mettre à jour Chrome</translation>
 <translation id="1945968466830820669">Vous risquez de perdre l'accès au compte de votre organisation ou d'être victime d'un vol d'identité. Chromium recommande de modifier votre mot de passe maintenant.</translation>
 <translation id="1947454675006758438">Agrafe en haut à droite</translation>
 <translation id="1959001866257244765">Aidez-nous à améliorer la sécurité pour tout le monde sur Internet en envoyant <ph name="BEGIN_WHITEPAPER_LINK" />les URL de certaines pages que vous visitez, certaines données système et certains contenus des pages en question<ph name="END_WHITEPAPER_LINK" /> à Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Politique de confidentialité<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2380886658946992094">Légal</translation>
 <translation id="2384307209577226199">Politique d'entreprise par défaut</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tab, puis sur la touche Entrée pour ouvrir une nouvelle fenêtre de navigation privée dans Chrome</translation>
 <translation id="2385809941344967209">Mettez à jour Chrome dans les paramètres de Chrome</translation>
 <translation id="2386255080630008482">Le certificat du serveur a été révoqué.</translation>
 <translation id="2392959068659972793">Afficher les règles non paramétrées</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">Presse-papiers</translation>
 <translation id="2587730715158995865">Publié par <ph name="ARTICLE_PUBLISHER" />. Lisez cet article et <ph name="OTHER_ARTICLE_COUNT" /> autres.</translation>
 <translation id="2587841377698384444">Identifiant d'API de l'annuaire :</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, puis appuyez sur la touche Tab, puis sur la touche Entrée pour mettre à jour les renseignements de carte de crédit utilisés avec le remplissage automatique dans les paramètres de Chrome</translation>
 <translation id="2595719060046994702">Cet appareil et ce compte ne sont pas gérés par une entreprise ou une autre organisation.</translation>
 <translation id="2597378329261239068">Ce document est protégé par un mot de passe. Veuillez entrer ce mot de passe.</translation>
 <translation id="2609632851001447353">Variations</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">Quitter</translation>
 <translation id="2684561033061424857">11 po x 12 po</translation>
 <translation id="2687555958734450033">Ajustement optimal</translation>
+<translation id="2688738823074468716">Bouton Gérer les mots de passe, appuyez sur la touche Entrée pour gérer les mots de passe dans les paramètres de Chrome</translation>
 <translation id="2688969097326701645">Oui, continuer</translation>
 <translation id="2691924980723297736">Avertissement de sécurité</translation>
 <translation id="2699302886720511147">Cartes acceptées</translation>
@@ -735,6 +741,7 @@
 <translation id="4088981014127559358">Décalage Y de l'image côté 1</translation>
 <translation id="4098354747657067197">Vous naviguez vers un site Web trompeur</translation>
 <translation id="4101413244023615925">Texte et images</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tab, puis sur la touche Entrée pour gérer les mots de passe dans les paramètres de Chrome</translation>
 <translation id="4103249731201008433">Le numéro de série de l'appareil n'est pas valide</translation>
 <translation id="4103763322291513355">Consultez &lt;strong&gt;chrome://policy&lt;/strong&gt; pour voir les adresses URL mises sur la liste noire et des politiques mises en œuvre par votre administrateur système.</translation>
 <translation id="4110652170750985508">Examiner votre paiement</translation>
@@ -901,6 +908,7 @@
 <translation id="4738601419177586157">Suggestion de recherche <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Gérer les mots de passe…</translation>
 <translation id="4744603770635761495">Chemin d'accès exécutable</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tab, puis sur la touche Entrée pour mettre à jour Chrome</translation>
 <translation id="4750917950439032686">Vos données (par exemple, vos mots de passe ou vos numéros de carte de crédit) sont privées lorsqu'elles sont envoyées à ce site.</translation>
 <translation id="4756388243121344051">&amp;Historique</translation>
 <translation id="4758311279753947758">Ajouter des coordonnées</translation>
@@ -942,6 +950,7 @@
 <translation id="4926049483395192435">Cette valeur est requise.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> indique</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tab, puis sur la touche Entrée pour lancer la recherche</translation>
 <translation id="4930153903256238152">Grande capacité</translation>
 <translation id="4943872375798546930">Aucun résultat</translation>
 <translation id="4950898438188848926">Bouton de commutation d'onglet, appuyez sur Entrée pour basculer vers l'onglet ouvert, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1018,6 +1027,7 @@
 <translation id="5215116848420601511">Modes de paiement et adresses utilisant Google Pay</translation>
 <translation id="5215363486134917902">Folio SP</translation>
 <translation id="5222812217790122047">Adresse de courriel obligatoire</translation>
+<translation id="5222994811833658317">Bouton Effacer les données, appuyez sur Entrée pour effacer l'historique de navigation de Chrome</translation>
 <translation id="5230733896359313003">Adresse de livraison</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12 po x 19 po</translation>
@@ -1058,6 +1068,7 @@
 <translation id="534295439873310000">Appareils NFC</translation>
 <translation id="5344579389779391559">L'accès à cette page peut engendrer des frais</translation>
 <translation id="5355557959165512791">Vous ne pouvez pas consulter le site <ph name="SITE" /> pour le moment, car son certificat a été révoqué. Les erreurs réseau et les attaques sont généralement temporaires, ce qui signifie que cette page devrait fonctionner de nouveau plus tard.</translation>
+<translation id="5361930801096459163">Bouton Rechercher, appuyez sur la touche Entrée pour rechercher <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Échec de stockage des paramètres de la règle</translation>
 <translation id="5371425731340848620">Mettre à jour la carte</translation>
 <translation id="5377026284221673050">« Votre horloge est en retard », « Votre horloge est en avance » ou « &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt; »</translation>
@@ -1283,6 +1294,7 @@
 <translation id="6302269476990306341">Arrêt de l'Assistant Google dans Chrome en cours…</translation>
 <translation id="6305205051461490394">Impossible d'accéder à <ph name="URL" />.</translation>
 <translation id="6312113039770857350">La page Web n'est pas disponible</translation>
+<translation id="6315224405718249523">Bouton Traduire la page, appuyez sur la touche Entrée pour traduire cette page</translation>
 <translation id="6321917430147971392">Vérifier vos paramètres DNS</translation>
 <translation id="6322182122604171028">Impossible d'utiliser Windows Hello</translation>
 <translation id="6328639280570009161">Essayez de désactiver la prédiction du réseau</translation>
@@ -1337,6 +1349,7 @@
 <translation id="6547208576736763147">Double perforation à gauche</translation>
 <translation id="6554795675067793129">Votre compte est géré par <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Rétablir</translation>
+<translation id="6566840325635607048">Bouton Mettre à jour la carte de crédit, appuyez sur la touche Entrée pour mettre à jour les données de remplissage automatique dans les paramètres de Chrome</translation>
 <translation id="6569060085658103619">Vous consultez une page d'extension</translation>
 <translation id="6573200754375280815">Double perforation à droite</translation>
 <translation id="6578796323535178455">Enveloppe C2</translation>
@@ -1577,6 +1590,7 @@
 <translation id="7549584377607005141">Pour s'afficher correctement, cette page Web a besoin des données que vous avez entrées précédemment. Vous pouvez envoyer de nouveau ces données. Cependant, en procédant ainsi, vous répéterez toute action déjà effectuée sur cette page.</translation>
 <translation id="7550637293666041147">Le nom d'utilisateur de votre appareil et de Chrome</translation>
 <translation id="7552846755917812628">Essayez les conseils suivants :</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, puis appuyez sur la touche Tab, puis sur la touche Entrée pour effacer l'historique de navigation de Chrome</translation>
 <translation id="7554791636758816595">Nouvel onglet</translation>
 <translation id="7564049878696755256">Vous risquez de perdre l'accès à votre compte <ph name="ORG_NAME" /> ou d'être victime d'un vol d'identité. Chrome recommande de modifier votre mot de passe maintenant.</translation>
 <translation id="7567204685887185387">Impossible de vérifier sur le serveur qu'il s'agit bien du domaine <ph name="DOMAIN" />. Il se peut que son certificat de sécurité ait été émis de manière frauduleuse. Cela peut être dû à une mauvaise configuration ou bien à l'interception de votre connexion par un pirate informatique.</translation>
@@ -1743,6 +1757,7 @@
 <translation id="8225771182978767009">La personne qui a configuré cet ordinateur a choisi de bloquer ce site.</translation>
 <translation id="8228419419708659934">Affichage de deux pages</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tab, puis sur la touche Entrée pour traduire cette page</translation>
 <translation id="8232343881378637145">Température de la plateforme</translation>
 <translation id="8238581221633243064">Ouvrir la page dans un nouvel onglet de navigation privée</translation>
 <translation id="8241707690549784388">La page que vous recherchez a utilisé de l'information que vous avez envoyée. Si vous revenez sur cette page, chaque action précédemment effectuée sera peut-être répétée. Souhaitez-vous continuer?</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index cbbf2b8..51a9806 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variations de ligne de commande</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Essayez de supprimer les cookies.<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Bouton "Ouvrir une fenêtre de navigation privée", appuyez sur Entrée pour ouvrir une nouvelle fenêtre Chrome en mode navigation privée</translation>
 <translation id="1301324364792935241">Vérifier les paramètres du DNS sécurisé</translation>
 <translation id="1307966114820526988">Fonctionnalités obsolètes</translation>
 <translation id="131405271941274527"><ph name="URL" /> souhaite envoyer et recevoir des informations lorsque votre téléphone entre en contact avec un appareil NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Mettre à jour votre phrase secrète de synchronisation</translation>
 <translation id="1787142507584202372">Les onglets ouverts s'affichent ici</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, plusieurs actions disponibles, appuyez sur Tabulation pour passer de l'une à l'autre</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nom du titulaire de la carte</translation>
 <translation id="1807528111851433570">Feuille de début</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Annonces</translation>
 <translation id="1919367280705858090">Obtenir de l'aide pour un message d'erreur spécifique</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Aucun}=1{1 site}one{# site}other{# sites}}</translation>
+<translation id="1926148189358507356">Bouton "Redémarrer pour mettre à jour", appuyez sur Entrée pour mettre à jour Chrome</translation>
 <translation id="1945968466830820669">Vous risquez de perdre l'accès au compte de votre organisation ou d'être victime d'usurpation d'identité. L'équipe Chromium vous recommande de modifier votre mot de passe maintenant.</translation>
 <translation id="1947454675006758438">Agrafe en haut à droite</translation>
 <translation id="1959001866257244765">Contribuez à renforcer la sécurité sur le Web pour tous en envoyant à Google les <ph name="BEGIN_WHITEPAPER_LINK" />URL de certaines pages que vous consultez, ainsi que des informations système limitées et une partie du contenu de certaines pages<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Règles de confidentialité<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Valeur par défaut définie par l'entreprise</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour ouvrir une nouvelle fenêtre Chrome en mode navigation privée</translation>
 <translation id="2385809941344967209">Mettez à jour votre navigateur dans les paramètres Chrome</translation>
 <translation id="2386255080630008482">Le certificat du serveur a été révoqué.</translation>
 <translation id="2392959068659972793">Afficher les règles non paramétrées</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Presse-papiers</translation>
 <translation id="2587730715158995865">Proposé par <ph name="ARTICLE_PUBLISHER" />. Lisez cet article et <ph name="OTHER_ARTICLE_COUNT" /> autres.</translation>
 <translation id="2587841377698384444">ID de l'API d'annuaire : </translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour mettre à jour les informations de carte de crédit saisie automatiquement dans les paramètres Chrome</translation>
 <translation id="2595719060046994702">Cet appareil et ce compte ne sont pas gérés par une entreprise ni par une autre organisation.</translation>
 <translation id="2597378329261239068">Ce document est protégé par mot de passe. Veuillez saisir ce dernier.</translation>
 <translation id="2609632851001447353">Variantes</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Quitter</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Taille optimale</translation>
+<translation id="2688738823074468716">Bouton "Gérer les mots de passe", appuyez sur Entrée pour gérer les mots de passe dans les paramètres Chrome</translation>
 <translation id="2688969097326701645">Continuer</translation>
 <translation id="2691924980723297736">Avertissement de sécurité</translation>
 <translation id="2699302886720511147">Cartes acceptées</translation>
@@ -740,6 +746,7 @@
 <translation id="4088981014127559358">Décalage Y de l'image côté 1</translation>
 <translation id="4098354747657067197">Le site Web que vous allez ouvrir est trompeur</translation>
 <translation id="4101413244023615925">Texte et image</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour gérer vos mots de passe dans les paramètres Chrome</translation>
 <translation id="4103249731201008433">Le numéro de série de l'appareil n'est pas valide.</translation>
 <translation id="4103763322291513355">Accédez à &lt;strong&gt;chrome://policy&lt;/strong&gt; pour consulter une liste des URL ajoutées à la liste noire et des autres règles définies par votre administrateur système.</translation>
 <translation id="4110652170750985508">Vérifier votre paiement</translation>
@@ -910,6 +917,7 @@
 <translation id="4738601419177586157">Suggestion de recherche sur "<ph name="TEXT" />"</translation>
 <translation id="4742407542027196863">Gérer les mots de passe…</translation>
 <translation id="4744603770635761495">Chemin d'accès exécutable</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour mettre à jour Chrome</translation>
 <translation id="4750917950439032686">Vos informations, comme vos mots de passe ou vos numéros de carte de paiement, sont privées lorsqu'elles sont transmises à ce site.</translation>
 <translation id="4756388243121344051">&amp;Historique</translation>
 <translation id="4758311279753947758">Ajouter des coordonnées</translation>
@@ -951,6 +959,7 @@
 <translation id="4926049483395192435">Doit être spécifié.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> indique</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour lancer une recherche</translation>
 <translation id="4930153903256238152">Grande capacité</translation>
 <translation id="4943872375798546930">Aucun résultat</translation>
 <translation id="4950898438188848926">Bouton pour changer d'onglet (appuyez sur Entrée pour passer à l'onglet ouvert, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />)</translation>
@@ -1027,6 +1036,7 @@
 <translation id="5215116848420601511">Modes de paiement et adresses utilisés dans Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Veuillez saisir une adresse e-mail</translation>
+<translation id="5222994811833658317">Bouton "Effacer les données", appuyez sur Entrée pour effacer l'historique de navigation Chrome</translation>
 <translation id="5230733896359313003">Adresse de livraison</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1067,6 +1077,7 @@
 <translation id="534295439873310000">Appareils NFC</translation>
 <translation id="5344579389779391559">L'accès à la page suivante peut engendrer des frais</translation>
 <translation id="5355557959165512791">Le site <ph name="SITE" /> est actuellement inaccessible, car son certificat a été révoqué. Les erreurs réseau et les attaques sont généralement temporaires. Vous devriez donc pouvoir accéder à cette page plus tard.</translation>
+<translation id="5361930801096459163">Bouton de recherche, appuyez sur Entrée pour faire une recherche sur "<ph name="KEYWORD_SUFFIX" />"</translation>
 <translation id="536296301121032821">Échec du stockage des paramètres de la règle.</translation>
 <translation id="5371425731340848620">Mettre à jour la carte</translation>
 <translation id="5377026284221673050">"Votre horloge est en retard.", "Votre horloge est en avance." ou "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1292,6 +1303,7 @@
 <translation id="6302269476990306341">Arrêt de l'Assistant Google dans Chrome</translation>
 <translation id="6305205051461490394"><ph name="URL" /> est inaccessible.</translation>
 <translation id="6312113039770857350">Page Web non disponible</translation>
+<translation id="6315224405718249523">Bouton "Traduire la page", appuyez sur Entrée pour traduire cette page</translation>
 <translation id="6321917430147971392">Vérifiez vos paramètres DNS</translation>
 <translation id="6322182122604171028">Impossible d'utiliser Windows Hello</translation>
 <translation id="6328639280570009161">Essayez de désactiver la prédiction réseau</translation>
@@ -1346,6 +1358,7 @@
 <translation id="6547208576736763147">Double perforation à gauche</translation>
 <translation id="6554795675067793129">Votre compte est géré par <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Rétablir</translation>
+<translation id="6566840325635607048">Bouton "Mettre à jour la carte de crédit", appuyez sur Entrée pour mettre à jour les informations de carte de crédit saisies automatiquement dans les paramètres Chrome</translation>
 <translation id="6569060085658103619">Vous consultez actuellement une page d'extension</translation>
 <translation id="6573200754375280815">Double perforation à droite</translation>
 <translation id="6578796323535178455">C2 (enveloppe)</translation>
@@ -1586,6 +1599,7 @@
 <translation id="7549584377607005141">Pour s'afficher correctement, cette page Web a besoin des données que vous avez saisies précédemment. Vous pouvez envoyer de nouveau ces données. Cependant, en procédant ainsi, vous répéterez toute action déjà effectuée sur cette page.</translation>
 <translation id="7550637293666041147">Votre nom d'utilisateur Chrome et celui lié à votre appareil</translation>
 <translation id="7552846755917812628">Essayez les astuces suivantes :</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour effacer l'historique de navigation Chrome</translation>
 <translation id="7554791636758816595">Nouvel onglet</translation>
 <translation id="7564049878696755256">Vous risquez de perdre l'accès à votre compte <ph name="ORG_NAME" /> ou d'être victime d'usurpation d'identité. L'équipe Chrome vous recommande de modifier votre mot de passe maintenant.</translation>
 <translation id="7567204685887185387">Impossible de vérifier sur le serveur qu'il s'agit bien du domaine <ph name="DOMAIN" />. Il se peut que son certificat de sécurité ait été émis de manière frauduleuse. Cela peut être dû à une mauvaise configuration ou bien à l'interception de votre connexion par un pirate informatique.</translation>
@@ -1752,6 +1766,7 @@
 <translation id="8225771182978767009">La personne qui a configuré cet ordinateur a choisi de bloquer ce site.</translation>
 <translation id="8228419419708659934">Vue sur deux pages</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis Entrée pour traduire cette page</translation>
 <translation id="8232343881378637145">Température de la plate-forme</translation>
 <translation id="8238581221633243064">Ouvrir la page dans un nouvel onglet de navigation privée</translation>
 <translation id="8241707690549784388">La page que vous recherchez a utilisé des informations que vous avez envoyées. Si vous revenez sur cette page, chaque action précédemment effectuée sera répétée. Souhaitez-vous continuer ?</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 63ed89a..38313cf 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">આદેશ વાક્યમાં વિવિધતા</translation>
 <translation id="129553762522093515">તાજેતરમાં બંધ કરેલા</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />તમારી કૂકીઝને સાફ કરવાનો પ્રયાસ કરો<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">છૂપી વિન્ડો બટન ખોલો, નવી Chrome છૂપી વિન્ડો ખોલવા માટે Enter દબાવો</translation>
 <translation id="1301324364792935241">તમારા સુરક્ષિત DNS સેટિંગ ચેક કરો</translation>
 <translation id="1307966114820526988">નાપસંદ કરેલી સુવિધાઓ</translation>
 <translation id="131405271941274527">જ્યારે તમે NFC ડિવાઇસ પર તમારા ફોન પર ટૅપ કરો, ત્યારે <ph name="URL" /> માહિતી મોકલવા અને પ્રાપ્ત કરવા માગે છે</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">કૃપા કરી તમારા સમન્વયન પાસફ્રેઝને અપડેટ કરો.</translation>
 <translation id="1787142507584202372">તમારા ખુલ્લા ટૅબ્સ અહીં દેખાય છે</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, એકથી વધારે ક્રિયાઓ ઉપલબ્ધ છે, એ બધી પર નજર કરવા માટે Tab કી દબાવો</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">કાર્ડધારકનું નામ</translation>
 <translation id="1807528111851433570">શરૂઆતની શીટ</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">જાહેરાતો</translation>
 <translation id="1919367280705858090">ભૂલના ચોક્કસ સંદેશ વડે સહાય મેળવો</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{કોઈ નહીં}=1{1 સાઇટ}one{# સાઇટ}other{# સાઇટ}}</translation>
+<translation id="1926148189358507356">અપડેટ કરવા માટે ફરીથી લૉન્ચ કરો બટન, Chromeને અપડેટ કરવા માટે Enter દબાવો</translation>
 <translation id="1945968466830820669">તમે તમારી સંસ્થાના એકાઉન્ટ માટે ઍક્સેસ ગુમાવી શકો છો અથવા તમને ઓળખ ચોરીનો અનુભવ થઈ શકે છે. Chromium તમને હમણાં જ તમારો પાસવર્ડ બદલવાની ભલામણ કરે છે.</translation>
 <translation id="1947454675006758438">ઉપર જમણી બાજુએ સ્ટેપલ લગાવો</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />તમે મુલાકાત લો તે કેટલાક પેજના URLs, સિસ્ટમ વિશેની સીમિત માહિતી અને પેજનું કેટલુંક કન્ટેન્ટ<ph name="END_WHITEPAPER_LINK" /> Googleને મોકલીને વેબ પર દરેક જણ માટે સુરક્ષા વધુ સારી બનાવવામાં સહાય કરો. <ph name="BEGIN_PRIVACY_PAGE_LINK" />પ્રાઇવસી પૉલિસી<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">સ્તર</translation>
 <translation id="2380886658946992094">કાનૂની</translation>
 <translation id="2384307209577226199">એન્ટરપ્રાઇઝ ડિફોલ્ટ</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, નવી Chrome છૂપી વિન્ડો ખોલવા માટે Tab પછી Enter દબાવો</translation>
 <translation id="2385809941344967209">તમારા Chrome સેટિંગમાંથી Chrome અપડેટ કરો</translation>
 <translation id="2386255080630008482">સર્વરનું પ્રમાણપત્ર રદ કરવામાં આવ્યું છે.</translation>
 <translation id="2392959068659972793">કોઈ કિંમત સેટ નહીં સાથે નીતિઓ બતાવો</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">ક્લિપબોર્ડ</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> તરફથી. આ અને અન્ય <ph name="OTHER_ARTICLE_COUNT" /> વાર્તાઓ વાંચો.</translation>
 <translation id="2587841377698384444">ડિરેક્ટરી API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome સેટિંગમાં ક્રેડિટ કાર્ડની માહિતી ઑટોમેટિક રીતે ભરાય તે અપડેટ કરવા માટે Tab અને પછી Enter દબાવો</translation>
 <translation id="2595719060046994702">આ ડિવાઇસ એક કંપની અથવા અન્ય સંસ્થા દ્વારા મેનેજ કરવામાં આવે છે.</translation>
 <translation id="2597378329261239068">આ દસ્તાવેજ પાસવર્ડ સુરક્ષિત છે. કૃપા કરીને પાસવર્ડ દાખલ કરો.</translation>
 <translation id="2609632851001447353">વૈવિધ્ય</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">છોડો</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">શ્રેષ્ઠ ફિટ</translation>
+<translation id="2688738823074468716">પાસવર્ડ બટનને મેનેજ કરો, Chromeના સેટિંગમાં પાસવર્ડ મેનેજ કરવા માટે Enter દબાવો</translation>
 <translation id="2688969097326701645">હા, ચાલુ રાખો</translation>
 <translation id="2691924980723297736">સલામતીની ચેતવણી</translation>
 <translation id="2699302886720511147">સ્વીકૃત કાર્ડ</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">બાજુ 1 છબીને Y અક્ષ પર ખસેડો</translation>
 <translation id="4098354747657067197">આગળ છેતરામણી સાઇટ છે</translation>
 <translation id="4101413244023615925">ટેક્સ્ટ અને ગ્રાફિક</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome સેટિંગમાં તમારા પાસવર્ડને મેનેજ કરવા માટે Tab દબાવો</translation>
 <translation id="4103249731201008433">ઉપકરણ અનુક્ર્માંક નંબર અમાન્ય છે</translation>
 <translation id="4103763322291513355">બ્લેકલિસ્ટ કરેલા URL ની સૂચિ અને તમારા સિસ્ટમ વ્યવસ્થાપક દ્વારા લાગુ અન્ય નીતિઓ જોવા માટે &lt;strong&gt;chrome://policy&lt;/strong&gt; ની મુલાકાત લો.</translation>
 <translation id="4110652170750985508">તમારી ચુકવણીને રિવ્યૂ કરો</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> શોધ સૂચન</translation>
 <translation id="4742407542027196863">પાસવર્ડ મેનેજ કરો…</translation>
 <translation id="4744603770635761495">અમલ કરવાયોગ્ય પાથ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeને અપડેટ કરવા માટે Tab અને પછી Enter દબાવો</translation>
 <translation id="4750917950439032686">તમારી માહિતી (ઉદાહરણ તરીકે, પાસવર્ડ્સ અથવા ક્રેડિટ કાર્ડ નંબર્સ) ખાનગી હોય છે જ્યારે તે આ સાઇટ પર મોકલવામાં આવે.</translation>
 <translation id="4756388243121344051">&amp;ઇતિહાસ</translation>
 <translation id="4758311279753947758">સંપર્ક માહિતી ઉમેરો</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">ઉલ્લેખિત હોવું આવશ્યક છે.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> કહે છે કે</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, શોધવા માટે Tab અને પછી Enter દબાવો</translation>
 <translation id="4930153903256238152">વિશાળ ક્ષમતા</translation>
 <translation id="4943872375798546930">પરિણામો નથી</translation>
 <translation id="4950898438188848926">ટૅબ, સ્વિચ બટન, ખુલ્લા ટૅબ, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> પર સ્વિચ કરવા માટે Enter દબાવો</translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Google Payનો ઉપયોગ કરતી ચુકવણી પદ્ધતિઓ અને ઍડ્રેસ</translation>
 <translation id="5215363486134917902">ફોલિયો-Sp</translation>
 <translation id="5222812217790122047">ઇમેઇલ આવશ્યક છે</translation>
+<translation id="5222994811833658317">ડેટા બટન સાફ કરો, Chromeના બ્રાઉઝિંગ ઇતિહાસનો ડેટા સાફ કરવા માટે Enter દબાવો</translation>
 <translation id="5230733896359313003">વિતરણ માટેનું સરનામું</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">NFC ડિવાઇસ</translation>
 <translation id="5344579389779391559">આ પેજ કદાચ તમારી પાસેથી શુલ્ક વસૂલ કરવાનો પ્રયાસ કરી શકે છે</translation>
 <translation id="5355557959165512791">તમે અત્યારે <ph name="SITE" />ની મુલાકાત લઈ શકતાં નથી કારણ કે તેનું પ્રમાણપત્ર રદબાતલ કરવામાં આવ્યું છે. નેટવર્કમાં ભૂલ આવવી અને હુમલા થવા સામાન્ય રીતે અસ્થાયી હોય છે, તેથી આ પેજ સંભવિત રૂપે થોડા સમય પછી કાર્ય કરશે.</translation>
+<translation id="5361930801096459163">Search બટન, <ph name="KEYWORD_SUFFIX" /> શોધવા માટે Enter દબાવો</translation>
 <translation id="536296301121032821">નીતિ સેટિંગ્સ સ્ટોર કરવામાં નિષ્ફળ થયાં</translation>
 <translation id="5371425731340848620">કાર્ડને અપડેટ કરો</translation>
 <translation id="5377026284221673050">"તમારી ઘડિયાળ પાછળ છે" અથવા "તમારી ઘડિયાળ આગળ છે" અથવા "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Chromeમાં Google આસિસ્ટંટ રોકાઈ રહ્યું છે</translation>
 <translation id="6305205051461490394"><ph name="URL" />, પહોંચવા યોગ્ય નથી.</translation>
 <translation id="6312113039770857350">વેબપેજ ઉપલબ્ધ નથી</translation>
+<translation id="6315224405718249523">પેજનો અનુવાદ કરો બટન, આ પેજનો અનુવાદ કરવા માટે Enter દબાવો</translation>
 <translation id="6321917430147971392">તમારી DNS સેટિંગ્સ તપાસો</translation>
 <translation id="6322182122604171028">Windows Helloનો ઉપયોગ કરી શક્યાં નથી</translation>
 <translation id="6328639280570009161">નેટવર્ક પૂર્વાનુમાનને અક્ષમ કરવાનો પ્રયાસ કરો</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">ડાબી બાજુએ બે ચતુષ્કોણ કાણાં પાડો</translation>
 <translation id="6554795675067793129"><ph name="ENROLLMENT_DOMAIN" /> દ્વારા તમારું એકાઉન્ટ મેનેજ કરવામાં આવે છે.</translation>
 <translation id="6556866813142980365">ફરી કરો</translation>
+<translation id="6566840325635607048">ક્રેડિટ કાર્ડ બટન અપડેટ કરો, Chrome સેટિંગમાં ક્રેડિટ કાર્ડની માહિતી ઑટોમેટિક રીતે ભરાય તે અપડેટ કરવા માટે Enter દબાવો</translation>
 <translation id="6569060085658103619">તમે એક્સ્ટેન્શન પૃષ્ઠ જોઈ રહ્યાં છો</translation>
 <translation id="6573200754375280815">જમણી બાજુએ બે કાણાં પાડો</translation>
 <translation id="6578796323535178455">C2 (એન્વલપ)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">આ વેબપેજને તે ડેટાની જરૂર છે જે તમે પહેલાં બરાબર રીતે પ્રદર્શિત થાય તે માટે દાખલ કર્યો હતો. તમે આ ડેટા ફરીથી મોકલી શકો છો, પણ આમ કરીને તમે કોઈપણ ક્રિયા કે જે પેજ પહેલાં જ કરી ચૂક્યું છે તેનું પુનરાવર્તન કરશો.</translation>
 <translation id="7550637293666041147">તમારું ડિવાઇસ વપરાશકર્તા નામ અને Chrome વપરાશકર્તા નામ</translation>
 <translation id="7552846755917812628">નીચેની ટિપને અજમાવો:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeના બ્રાઉઝિંગ ઇતિહાસનો ડેટા સાફ કરવા માટે Tab અને પછી Enter દબાવો</translation>
 <translation id="7554791636758816595">નવું ટૅબ</translation>
 <translation id="7564049878696755256">તમે તમારા <ph name="ORG_NAME" /> એકાઉન્ટનો ઍક્સેસ ગુમાવી શકો છો અથવા તમને ઓળખ ચોરીનો અનુભવ થઈ શકે છે. Chrome તમને હમણાં જ તમારો પાસવર્ડ બદલવાની ભલામણ કરે છે.</translation>
 <translation id="7567204685887185387">આ સર્વર સાબિત કરી શક્યું નથી કે તે <ph name="DOMAIN" /> છે; તેનું સુરક્ષા પ્રમાણપત્ર કપટપૂર્વક રજૂ કરવામાં આવેલ હોઈ શકે છે. આ કોઈ ખોટી ગોઠવણીને કારણે થયું હશે અથવા કોઈ હુમલાખોર તમારા કનેક્શનને અટકાવી રહ્યો છે.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">આ કમ્પ્યુટરને સેટ કરનાર વ્યક્તિએ આ સાઇટને અવરોધિત કરવાનું પસંદ કર્યું છે.</translation>
 <translation id="8228419419708659934">બે પેજવાળો વ્યૂ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, આ પેજનો અનુવાદ કરવા માટે Tab પછી Enter દબાવો</translation>
 <translation id="8232343881378637145">પ્લૅટફૉર્મનું તાપમાન</translation>
 <translation id="8238581221633243064">એક નવી છુપી વિંડોમાં પેજ ખોલો</translation>
 <translation id="8241707690549784388">તમારા દ્વારા દાખલ કરાયેલી વપરાયેલી માહિતી માટે આ પાનું તમે જોઈ રહ્યા છો. તે પૃષ્ઠ પર પાછા જવાથી એવી કોઈપણ ક્રિયા ફરીથી થઈ શકે છે જે તમે પહેલા કરી હતી. શું તમે ચાલુ રાખવા માંગો છો?</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 039f14a8..b784bd9 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">अलग-अलग तरह की कमांड-लाइन</translation>
 <translation id="129553762522093515">हाल ही में बंद किए गए</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />अपनी कुकी साफ़ करके देखें<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">'गुप्त विंडो खोलें' बटन, Chrome में नई गुप्त विंडो खोलने के लिए Enter दबाएं</translation>
 <translation id="1301324364792935241">अपने सुरक्षित डीएनएस की सेटिंग की जांच करें</translation>
 <translation id="1307966114820526988">बंद की गई सुविधाएं</translation>
 <translation id="131405271941274527">किसी NFC डिवाइस में आपके फ़ोन पर टैप किए जाने पर, <ph name="URL" /> जानकारी भेजना और पाना चाहता है</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">कृपया अपना सिंक 'पासफ्रेज़' अपडेट करें.</translation>
 <translation id="1787142507584202372">  खोले गए टैब, यहां दिखाई देंगे</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, एक से ज़्यादा कार्रवाइयां उपलब्ध हैं, एक-एक करने उन पर जाने के लिए Tab दबाएं</translation>
 <translation id="1800473098294731951">बी9</translation>
 <translation id="1803264062614276815">कार्ड के मालिक का नाम</translation>
 <translation id="1807528111851433570">स्टार्ट शीट</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">विज्ञापन</translation>
 <translation id="1919367280705858090">गड़बड़ी के किसी खास मैसेज से मदद पाना</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{कुछ नहीं}=1{1 साइट}one{# साइट}other{# साइट}}</translation>
+<translation id="1926148189358507356">'अपडेट करने के लिए फिर से लॉन्च करें' बटन, Chrome को अपडेट करने के लिए Enter दबाएं</translation>
 <translation id="1945968466830820669">आपके संगठन के खाते का एक्सेस खो सकता है या आपकी पहचान चोरी हो सकती है. Chromium आपको अभी अपना पासवर्ड बदलने का सुझाव देता है.</translation>
 <translation id="1947454675006758438">सबसे ऊपर दाईं ओर स्टेपल</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />आप जिन पेजों पर जाते हैं उनमें से कुछ के यूआरएल, सिस्टम की थोड़ी जानकारी, और पेज का कुछ कॉन्टेंट<ph name="END_WHITEPAPER_LINK" /> Google को भेजकर, वेब पर सभी के लिए सुरक्षा को बेहतर बनाने में मदद करें. <ph name="BEGIN_PRIVACY_PAGE_LINK" />निजता नीति<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">स्तर</translation>
 <translation id="2380886658946992094">कानूनी</translation>
 <translation id="2384307209577226199">एंटरप्राइज़ डिफ़ॉल्ट</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome में नई गुप्त विंडो खोलने के लिए, Tab के बाद Enter दबाएं</translation>
 <translation id="2385809941344967209">अपनी Chrome की सेटिंग में जाकर Chrome को अपडेट करें</translation>
 <translation id="2386255080630008482">सर्वर का प्रमाणपत्र निरस्त कर दिया गया है.</translation>
 <translation id="2392959068659972793">ऐसी नीतियां दिखाएं जिनके लिए कोई मान सेट नहीं किया गया है</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">क्लिपबोर्ड</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> की ओर से. यह और <ph name="OTHER_ARTICLE_COUNT" /> दूसरे समाचार पढ़ें.</translation>
 <translation id="2587841377698384444">निर्देशिका API (एपीआई) आईडी:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome की सेटिंग में क्रेडिट कार्ड की अपने-आप भरने वाली जानकारी अपडेट करने के लिए, Tab के बाद Enter दबाएं</translation>
 <translation id="2595719060046994702">इस डिवाइस और खाते का प्रबंधन कोई कंपनी या दूसरा संगठन नहीं करता है.</translation>
 <translation id="2597378329261239068">यह दस्तावेज़ पासवर्ड सुरक्षित है.  कृपया पासवर्ड डालें.</translation>
 <translation id="2609632851001447353">विविधताएं</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">छोड़ें</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">सबसे बढ़िया फ़िटिंग</translation>
+<translation id="2688738823074468716">'पासवर्ड प्रबंधित करें' बटन, Chrome की सेटिंग में पासवर्ड प्रबंधित करने के लिए Enter दबाएं</translation>
 <translation id="2688969097326701645">हां, जारी रखें</translation>
 <translation id="2691924980723297736">सुरक्षा की चेतावनी</translation>
 <translation id="2699302886720511147">स्वीकार किए जाने वाले कार्ड</translation>
@@ -739,6 +745,7 @@
 <translation id="4088981014127559358">साइड 1 इमेज Y शिफ़्ट</translation>
 <translation id="4098354747657067197">आगे भ्रामक साइट है</translation>
 <translation id="4101413244023615925">टेक्स्ट और ग्राफ़िक</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome की सेटिंग में पासवर्ड प्रबंधित करने के लिए, Tab के बाद Enter दबाएं</translation>
 <translation id="4103249731201008433">डिवाइस की क्रम संख्या गलत है</translation>
 <translation id="4103763322291513355">प्रतिबंधित किए गए यूआरएल और आपके सिस्टम ए़़डमिन ने जिन अन्य नीतियों को लागू किया है, उन्हें देखने के लिए &lt;strong&gt;chrome://policy&lt;/strong&gt; पर जाएं.</translation>
 <translation id="4110652170750985508">अपना भुगतान देखें</translation>
@@ -909,6 +916,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> खोज सुझाव</translation>
 <translation id="4742407542027196863">पासवर्ड प्रबंधित करें…</translation>
 <translation id="4744603770635761495">निष्पादित किए जाने वाले पाथ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome को अपडेट करने के लिए Tab के बाद Enter दबाएं</translation>
 <translation id="4750917950439032686">आपकी जानकारी (जैसे- पासवर्ड या क्रेडिट कार्ड नंबर वगैरह) जब इस साइट पर भेजी जाती है, तब वह निजी होती है.</translation>
 <translation id="4756388243121344051">&amp;इतिहास</translation>
 <translation id="4758311279753947758">संपर्क जानकारी जोड़ें</translation>
@@ -950,6 +958,7 @@
 <translation id="4926049483395192435">बताया जाना चाहिए.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> का कहना है कि</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, खोजने के लिए Tab के बाद Enter दबाएं</translation>
 <translation id="4930153903256238152">ज़्यादा क्षमता</translation>
 <translation id="4943872375798546930">कोई परिणाम नहीं</translation>
 <translation id="4950898438188848926">'टैब' बदलने का बटन, नए टैब पर जाने के लिए Enter दबाएं, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1026,6 +1035,7 @@
 <translation id="5215116848420601511">Google Pay का इस्तेमाल करने वाले भुगतान के तरीके और पते</translation>
 <translation id="5215363486134917902">फ़ोलियो-एसपी</translation>
 <translation id="5222812217790122047">ईमेल आवश्यक है</translation>
+<translation id="5222994811833658317">'डेटा मिटाएं' बटन, Chrome के ब्राउज़िंग इतिहास का डेटा मिटाने के लिए Enter दबाएं</translation>
 <translation id="5230733896359313003">शिपिंग पता</translation>
 <translation id="5230815978613972521">बी8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1066,6 +1076,7 @@
 <translation id="534295439873310000">NFC डिवाइस</translation>
 <translation id="5344579389779391559">यह पेज आपसे शुल्क लेने की कोशिश कर सकता है</translation>
 <translation id="5355557959165512791">आप इस समय <ph name="SITE" /> पर नहीं जा सकते हैं क्योंकि उसका प्रमाणपत्र रद्द कर दिया गया है. नेटवर्क की गड़बड़ी और हमले आमतौर पर कुछ देर के लिए होते हैं, इसलिए मुमकिन है कि यह पेज बाद में काम करे.</translation>
+<translation id="5361930801096459163">'खोजें' बटन, खोजने के लिए Enter दबाएं <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">नीति सेटिंग संग्रहित करने में विफल</translation>
 <translation id="5371425731340848620">कार्ड अपडेट करें</translation>
 <translation id="5377026284221673050">"आपकी घड़ी पीछे चल रही है" या "आपकी घड़ी आगे चल रही है" या "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1291,6 +1302,7 @@
 <translation id="6302269476990306341">'Chrome में Google Assistant' को रोका जा रहा है</translation>
 <translation id="6305205051461490394"><ph name="URL" /> तक नहीं पहुंचा जा सकता.</translation>
 <translation id="6312113039770857350">वेबपेज उपलब्ध नहीं है</translation>
+<translation id="6315224405718249523">'पेज का अनुवाद करें' बटन, इस पेज का अनुवाद करने के लिए Enter दबाएं</translation>
 <translation id="6321917430147971392">अपनी DNS सेटिंग जांचे</translation>
 <translation id="6322182122604171028">Windows Hello का इस्तेमाल नहीं किया जा सका</translation>
 <translation id="6328639280570009161">नेटवर्क पूर्वानुमान को अक्षम करके देखें</translation>
@@ -1345,6 +1357,7 @@
 <translation id="6547208576736763147">बाईं ओर ड्युएल पंच</translation>
 <translation id="6554795675067793129">आपके खाते का प्रबंधन <ph name="ENROLLMENT_DOMAIN" /> करता हैै.</translation>
 <translation id="6556866813142980365">फिर से करें</translation>
+<translation id="6566840325635607048">'क्रेडिट कार्ड अपडेट करें' बटन, Chrome की सेटिंग में क्रेडिट कार्ड की अपने-आप भरने वाली जानकारी अपडेट करने के लिए Enter दबाएं</translation>
 <translation id="6569060085658103619">आप एक एक्सटेंशन पेज देख रहे हैं</translation>
 <translation id="6573200754375280815">दाईं ओर ड्युएल पंच</translation>
 <translation id="6578796323535178455">सी2 (एन्वेलप)</translation>
@@ -1585,6 +1598,7 @@
 <translation id="7549584377607005141">इस वेबपेज को उस डेटा की ज़रूरत है जिसे आपने पहले सही तरह से दिखाने के लिए डाला था. आप इस डेटा को फिर से भेज सकते हैं, लेकिन ऐसा करने से इस पेज पर पहले से हो चुकी कार्रवाई फिर से होगी.</translation>
 <translation id="7550637293666041147">आपके डिवाइस का उपयोगकर्ता नाम और Chrome उपयोगकर्ता नाम</translation>
 <translation id="7552846755917812628">ये टिप्स आज़माएं:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome के ब्राउज़िंग इतिहास का डेटा मिटाने के लिए, Tab के बाद Enter दबाएं</translation>
 <translation id="7554791636758816595">नया टैब</translation>
 <translation id="7564049878696755256">आपके <ph name="ORG_NAME" /> खाते का एक्सेस खो सकता है या पहचान चोरी हो सकती है. Chrome आपको अभी अपना पासवर्ड बदलने का सुझाव देता है.</translation>
 <translation id="7567204685887185387">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" /> है; हो सकता है इसका सुरक्षा प्रमाणपत्र धोखे से जारी किया गया हो. ऐसा गलत कॉन्फ़िगरेशन के कारण या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
@@ -1751,6 +1765,7 @@
 <translation id="8225771182978767009">जिस व्यक्ति ने इस कंप्यूटर को सेट किया है, उसने इस साइट को ब्लॉक करना चुना है.</translation>
 <translation id="8228419419708659934">दो पेजों वाला व्यू</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, इस पेज का अनुवाद करने के लिए Tab के बाद Enter दबाएं</translation>
 <translation id="8232343881378637145">प्लैटफ़ॉर्म का तापमान</translation>
 <translation id="8238581221633243064">पेज को नए गुप्त टैब में खोलें</translation>
 <translation id="8241707690549784388">आप जिस पेज को ढूंढ रहे हैं उसने आपकी डाली गई जानकारी का इस्तेमाल किया है. उस पेज पर वापस लौटने से आपकी कोई कार्रवाई दोहराई जा सकती है. क्या आप जारी रखना चाहते हैं?</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index a3150b6c..5000e2b6 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Parancssorváltozatok</translation>
 <translation id="129553762522093515">Mostanában bezárt</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Próbálkozzon a cookie-k törlésével<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Inkognitó ablak megnyitása gomb, nyomja le az Enter gombot új Chrome inkognitó ablak megnyitásához</translation>
 <translation id="1301324364792935241">Ellenőrizze a biztonságos DNS beállításait</translation>
 <translation id="1307966114820526988">Elavult funkciók</translation>
 <translation id="131405271941274527">A(z) <ph name="URL" /> adatokat akar küldeni, amikor Ön rákoppint telefonjára egy NFC-eszközön</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Kérjük, frissítse szinkronizálási összetett jelszavát.</translation>
 <translation id="1787142507584202372">A megnyitott lapok helye</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, több művelet is rendelkezésre áll, a Tab gombbal mozoghat közöttük</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kártyatulajdonos neve</translation>
 <translation id="1807528111851433570">Indítási lap</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Hirdetések</translation>
 <translation id="1919367280705858090">Segítség kérése adott hibaüzenet esetén</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Nincs}=1{1 webhely}other{# webhely}}</translation>
+<translation id="1926148189358507356">Újraindítás a frissítéshez gomb, nyomja le az Enter gombot a Chrome frissítéséhez</translation>
 <translation id="1945968466830820669">Elveszítheti a hozzáférést szervezete fiókjához, vagy visszaélhetnek személyes adataival. A Chromium azt javasolja, hogy azonnal módosítsa jelszavát.</translation>
 <translation id="1947454675006758438">Kapocs jobbra fent</translation>
 <translation id="1959001866257244765">Segítsen az internet biztonságosabbá tételében mindenki számára azzal, hogy továbbítja <ph name="BEGIN_WHITEPAPER_LINK" />egyes felkeresett oldalak URL-jét, valamint korlátozott rendszer-információkat és bizonyos oldaltartalmakat<ph name="END_WHITEPAPER_LINK" /> a Google-nak. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Adatvédelmi irányelvek<ph name="END_PRIVACY_PAGE_LINK" />.</translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Szint</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Vállalati alapértelmezett</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot új Chrome inkognitó ablak megnyitásához</translation>
 <translation id="2385809941344967209">A Chrome-ot a Chrome-beállítások között frissítheti</translation>
 <translation id="2386255080630008482">A szerver tanúsítványát visszavonták.</translation>
 <translation id="2392959068659972793">Beállított értékkel nem rendelkező házirendek megjelenítése</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Vágólap</translation>
 <translation id="2587730715158995865">Forrás: <ph name="ARTICLE_PUBLISHER" />. Olvassa el ezt és további <ph name="OTHER_ARTICLE_COUNT" /> hírt.</translation>
 <translation id="2587841377698384444">Könyvtár API-azonosítója:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot a hitelkártya automatikus kitöltési adatainak frissítéséhez a Chrome beállításaiban</translation>
 <translation id="2595719060046994702">Ezt az eszközt és fiókot nem kezeli cég vagy más szervezet.</translation>
 <translation id="2597378329261239068">Ez a dokumentum jelszóval védett. Kérjük, adja meg a jelszót.</translation>
 <translation id="2609632851001447353">Változatok</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Lap elhagyása</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Legjobb illeszkedés</translation>
+<translation id="2688738823074468716">Jelszavak kezelése gomb, nyomja le az Entert a jelszavaknak a Chrome beállításaiban való kezeléséhez</translation>
 <translation id="2688969097326701645">Igen, folytatás</translation>
 <translation id="2691924980723297736">Biztonsági figyelmeztetés</translation>
 <translation id="2699302886720511147">Elfogadott kártyák</translation>
@@ -738,6 +744,7 @@
 <translation id="4088981014127559358">1. oldali kép Y-eltolása</translation>
 <translation id="4098354747657067197">Megtévesztő webhely megnyitására készül</translation>
 <translation id="4101413244023615925">Szöveg és grafika</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot a jelszavaknak a Chrome beállításaiban való kezeléséhez</translation>
 <translation id="4103249731201008433">Az eszköz sorozatszáma érvénytelen</translation>
 <translation id="4103763322291513355">Látogasson el a &lt;strong&gt;chrome://policy&lt;/strong&gt; oldalra a feketelistán lévő URL-ek és egyéb, a rendszergazda által előírt szabályok megtekintéséhez.</translation>
 <translation id="4110652170750985508">Befizetés áttekintése</translation>
@@ -908,6 +915,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> keresési javaslat</translation>
 <translation id="4742407542027196863">Jelszavak kezelése…</translation>
 <translation id="4744603770635761495">Végrehajtható fájl útvonala</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot a Chrome frissítéséhez</translation>
 <translation id="4750917950439032686">Adatai (például jelszava vagy hitelkártyaszáma) nem láthatók más számára, amikor a rendszer elküldi őket a webhelynek.</translation>
 <translation id="4756388243121344051">&amp;Előzmények</translation>
 <translation id="4758311279753947758">Névjegyadatok hozzáadása</translation>
@@ -949,6 +957,7 @@
 <translation id="4926049483395192435">Meg kell határozni.</translation>
 <translation id="4926159001844873046">A(z) <ph name="SITE" /> közlendője</translation>
 <translation id="4926340098269537727"><ph name="TOTAL_MATCHCOUNT" />/<ph name="ACTIVE_MATCH" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, a kereséshez nyomja le a Tab, majd az Enter gombot</translation>
 <translation id="4930153903256238152">Nagy kapacitás</translation>
 <translation id="4943872375798546930">Nincs találat</translation>
 <translation id="4950898438188848926">Lapváltó gomb. Nyomja meg az Entert a következő megnyitott lapra való váltáshoz: <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1025,6 +1034,7 @@
 <translation id="5215116848420601511">A Google Pay szolgáltatásban használt fizetési módok és címek</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Az e-mail-cím megadása kötelező</translation>
+<translation id="5222994811833658317">Adatok törlése gomb, nyomja le az Enter gombot a Chrome böngészési előzményeinek törléséhez</translation>
 <translation id="5230733896359313003">Szállítási cím</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1065,6 +1075,7 @@
 <translation id="534295439873310000">NFC-eszközök</translation>
 <translation id="5344579389779391559">Ez az oldal fizetésre próbálhatja meg rávenni</translation>
 <translation id="5355557959165512791">Pillanatnyilag nem tudja felkeresni a(z) <ph name="SITE" /> webhelyet, mert a webhely tanúsítványát visszavonták. A hálózati hibák és támadások rendszerint átmenetiek, ezért az említett oldal működése később valószínűleg helyreáll.</translation>
+<translation id="5361930801096459163">Keresés gomb, nyomja le az Enter gombot a következőre való kereséshez: <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Az irányelv-beállítások tárolása sikertelen</translation>
 <translation id="5371425731340848620">Kártya frissítése</translation>
 <translation id="5377026284221673050">„Az óra késik”, „Az óra siet” vagy „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
@@ -1290,6 +1301,7 @@
 <translation id="6302269476990306341">A Google Segéd a Chrome-ban szolgáltatás leáll</translation>
 <translation id="6305205051461490394">A(z) <ph name="URL" /> nem érhető el.</translation>
 <translation id="6312113039770857350">A weboldal nem érhető el</translation>
+<translation id="6315224405718249523">Oldal fordítása gomb, nyomja le az Enter gombot az oldal lefordításához</translation>
 <translation id="6321917430147971392">Ellenőrizze a DNS-beállításokat</translation>
 <translation id="6322182122604171028">Hiba történt a Windows Hello használata során</translation>
 <translation id="6328639280570009161">Próbálkozzon a hálózati előrejelzések kikapcsolásával</translation>
@@ -1344,6 +1356,7 @@
 <translation id="6547208576736763147">Kettő lyuk a bal oldalon</translation>
 <translation id="6554795675067793129">Az Ön fiókkezelője: <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Újra</translation>
+<translation id="6566840325635607048">Hitelkártya frissítése gomb, nyomja le az Entert a hitelkártya automatikus kitöltési adatainak frissítéséhez a Chrome beállításaiban</translation>
 <translation id="6569060085658103619">Jelenleg bővítményoldalt tekint meg</translation>
 <translation id="6573200754375280815">Kettő lyuk a jobb oldalon</translation>
 <translation id="6578796323535178455">C2 (boríték)</translation>
@@ -1584,6 +1597,7 @@
 <translation id="7549584377607005141">Ez a weboldal korábban megadott adatokat kér ahhoz, hogy megfelelően jelenjen meg. Az adatokat újra elküldheti, de ezzel meg fog ismételni minden olyan műveletet, amelyet ez az oldal korábban végrehajtott.</translation>
 <translation id="7550637293666041147">Az Ön eszközhöz és Chrome-hoz tartozó felhasználóneve</translation>
 <translation id="7552846755917812628">Próbálja ki az alábbi tippeket:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot a Chrome böngészési előzményeinek törléséhez</translation>
 <translation id="7554791636758816595">Új lap</translation>
 <translation id="7564049878696755256">Elveszítheti hozzáférést <ph name="ORG_NAME" />-fiókjához, vagy visszaélhetnek személyes adataival. A Chrome azt javasolja, hogy azonnal módosítsa jelszavát.</translation>
 <translation id="7567204685887185387">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványát csalással állíthatták ki. Ennek oka lehet konfigurációs hiba, vagy hogy egy támadó eltérítette az Ön kapcsolódását.</translation>
@@ -1750,6 +1764,7 @@
 <translation id="8225771182978767009">A számítógépet beállító személy a webhely letiltása mellett döntött.</translation>
 <translation id="8228419419708659934">Kétoldalas nézet</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" /> és <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter gombot az oldal lefordításához</translation>
 <translation id="8232343881378637145">Platform hőmérséklete</translation>
 <translation id="8238581221633243064">Oldal megnyitása új inkognitó ablakban</translation>
 <translation id="8241707690549784388">A keresett oldal a megadott információt használta. Ha visszatér arra az oldalra, akkor lehet, hogy az egyszer már megtett mozdulatok ismétlésre kerülnek. Mégis továbblép?</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index e6d57b5..cfdd3e2 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variasi baris perintah</translation>
 <translation id="129553762522093515">Baru saja ditutup</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Coba hapus cookie Anda<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Tombol Buka Jendela Samaran, tekan Enter untuk membuka jendela samaran Chrome baru</translation>
 <translation id="1301324364792935241">Periksa setelan DNS Aman Anda</translation>
 <translation id="1307966114820526988">Fitur yang Tidak Digunakan Lagi</translation>
 <translation id="131405271941274527"><ph name="URL" /> ingin mengirim dan menerima info saat Anda mengetukkan ponsel pada perangkat NFC</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">Perbarui frasa sandi sinkronisasi Anda.</translation>
 <translation id="1787142507584202372">Tab yang terbuka muncul di sini</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, beberapa tindakan tersedia, tekan Tab untuk melihat semua tindakan</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nama Pemegang Kartu</translation>
 <translation id="1807528111851433570">Lembar mulai</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">Iklan</translation>
 <translation id="1919367280705858090">Mendapatkan bantuan terkait pesan error tertentu</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Tidak ada}=1{1 situs}other{# situs}}</translation>
+<translation id="1926148189358507356">Tombol Luncurkan Kembali untuk Update, tekan Enter untuk mengupdate Chrome</translation>
 <translation id="1945968466830820669">Anda dapat kehilangan akses ke akun organisasi atau mengalami pencurian identitas. Chromium menyarankan Anda untuk mengubah sandi sekarang.</translation>
 <translation id="1947454675006758438">Jepretan di kanan atas</translation>
 <translation id="1959001866257244765">Bantu sempurnakan keamanan di web untuk semua orang dengan mengirimkan <ph name="BEGIN_WHITEPAPER_LINK" />URL beberapa halaman yang Anda kunjungi, informasi sistem terbatas, dan beberapa konten halaman<ph name="END_WHITEPAPER_LINK" /> ke Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Kebijakan privasi<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">Tingkat</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Default perusahaan</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk membuka jendela samaran Chrome baru</translation>
 <translation id="2385809941344967209">Update Chrome dari setelan Chrome</translation>
 <translation id="2386255080630008482">Sertifikat server telah dicabut.</translation>
 <translation id="2392959068659972793">Tampilkan kebijakan tanpa nilai yang disetel</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">Papan klip</translation>
 <translation id="2587730715158995865">Dari <ph name="ARTICLE_PUBLISHER" />. Baca artikel ini dan <ph name="OTHER_ARTICLE_COUNT" /> artikel lainnya.</translation>
 <translation id="2587841377698384444">ID API Direktori:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk memperbarui info isi otomatis kartu kredit di setelan Chrome</translation>
 <translation id="2595719060046994702">Perangkat dan akun ini tidak dikelola oleh perusahaan atau organisasi lain.</translation>
 <translation id="2597378329261239068">Dokumen ini dilindungi sandi. Masukkan sandi.</translation>
 <translation id="2609632851001447353">Variasi</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">Keluar</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Paling pas</translation>
+<translation id="2688738823074468716">Tombol Kelola Sandi, tekan Enter untuk mengelola sandi di setelan Chrome</translation>
 <translation id="2688969097326701645">Ya, lanjutkan</translation>
 <translation id="2691924980723297736">Peringatan keamanan</translation>
 <translation id="2699302886720511147">Kartu yang Diterima</translation>
@@ -736,6 +742,7 @@
 <translation id="4088981014127559358">Perpindahan image Y sisi 1</translation>
 <translation id="4098354747657067197">Situs yang akan dibuka berisi penipuan</translation>
 <translation id="4101413244023615925">Teks dan grafis</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk mengelola sandi di setelan Chrome</translation>
 <translation id="4103249731201008433">Nomor seri perangkat tidak valid</translation>
 <translation id="4103763322291513355">Kunjungi &lt;strong&gt;chrome://policy&lt;/strong&gt; untuk melihat daftar URL yang masuk daftar hitam dan kebijakan lain yang diterapkan oleh administrator sistem Anda.</translation>
 <translation id="4110652170750985508">Tinjau pembayaran</translation>
@@ -902,6 +909,7 @@
 <translation id="4738601419177586157">Saran penelusuran <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Kelola sandi...</translation>
 <translation id="4744603770635761495">Jalur Yang Dapat Dijalankan</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk mengupdate Chrome</translation>
 <translation id="4750917950439032686">Informasi Anda (misalnya, sandi atau nomor kartu kredit) bersifat pribadi saat dikirimkan ke situs ini.</translation>
 <translation id="4756388243121344051">&amp;Riwayat</translation>
 <translation id="4758311279753947758">Tambahkan info kontak</translation>
@@ -943,6 +951,7 @@
 <translation id="4926049483395192435">Harus ditentukan.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> menyatakan</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk menelusuri</translation>
 <translation id="4930153903256238152">Kapasitas besar</translation>
 <translation id="4943872375798546930">Tidak ada hasil</translation>
 <translation id="4950898438188848926">Tombol beralih tab, tekan Enter untuk beralih ke tab yang terbuka, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1019,6 +1028,7 @@
 <translation id="5215116848420601511">Metode pembayaran dan alamat yang menggunakan Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Email wajib diisi</translation>
+<translation id="5222994811833658317">Tombol Hapus Data, tekan Enter untuk menghapus data histori penjelajahan Chrome</translation>
 <translation id="5230733896359313003">Alamat Pengiriman</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1059,6 +1069,7 @@
 <translation id="534295439873310000">Perangkat NFC</translation>
 <translation id="5344579389779391559">Halaman ini mungkin mencoba menagih Anda</translation>
 <translation id="5355557959165512791">Anda tidak dapat membuka <ph name="SITE" /> sekarang karena sertifikatnya telah dicabut. Error jaringan dan serangan biasanya bersifat sementara, sehingga halaman ini mungkin akan berfungsi nanti.</translation>
+<translation id="5361930801096459163">Tombol Telusuri, tekan Enter untuk menelusuri <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Gagal menyimpan setelan kebijakan</translation>
 <translation id="5371425731340848620">Perbarui kartu</translation>
 <translation id="5377026284221673050">"Jam Anda terlalu lambat" atau "Jam Anda terlalu cepat" atau "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1284,6 +1295,7 @@
 <translation id="6302269476990306341">Asisten Google di Chrome sedang dihentikan</translation>
 <translation id="6305205051461490394"><ph name="URL" /> tidak dapat dijangkau.</translation>
 <translation id="6312113039770857350">Halaman web tidak tersedia</translation>
+<translation id="6315224405718249523">Tombol Terjemahkan Halaman, tekan Enter untuk menerjemahkan halaman ini</translation>
 <translation id="6321917430147971392">Periksa setelan DNS Anda</translation>
 <translation id="6322182122604171028">Tidak dapat menggunakan Windows Hello</translation>
 <translation id="6328639280570009161">Coba nonaktifkan prediksi jaringan</translation>
@@ -1338,6 +1350,7 @@
 <translation id="6547208576736763147">Dua lubang di kiri</translation>
 <translation id="6554795675067793129">Akun Anda dikelola oleh <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Urungkan</translation>
+<translation id="6566840325635607048">Tombol Perbarui Kartu Kredit, tekan Enter untuk memperbarui info isi otomatis kartu kredit di setelan Chrome</translation>
 <translation id="6569060085658103619">Anda melihat halaman ekstensi</translation>
 <translation id="6573200754375280815">Dua lubang di kanan</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1576,6 +1589,7 @@
 <translation id="7549584377607005141">Halaman web ini membutuhkan data yang Anda masukkan sebelumnya agar dapat ditampilkan dengan benar. Anda dapat mengirimkan data ini lagi, namun dengan begitu Anda akan mengulangi tindakan apa pun yang sebelumnya dilakukan oleh halaman ini.</translation>
 <translation id="7550637293666041147">Nama pengguna perangkat dan nama pengguna Chrome Anda</translation>
 <translation id="7552846755917812628">Coba tips berikut:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk menghapus data histori penjelajahan Chrome</translation>
 <translation id="7554791636758816595">Tab Baru</translation>
 <translation id="7564049878696755256">Anda dapat kehilangan akses ke akun <ph name="ORG_NAME" /> atau mengalami pencurian identitas. Chrome menyarankan Anda untuk mengubah sandi sekarang.</translation>
 <translation id="7567204685887185387">Server ini tidak dapat membuktikan bahwa ini adalah <ph name="DOMAIN" />; sertifikat keamanannya mungkin telah dikeluarkan dengan curang. Hal ini disebabkan oleh kesalahan konfigurasi atau penyerang memotong sambungan Anda.</translation>
@@ -1742,6 +1756,7 @@
 <translation id="8225771182978767009">Orang yang menyiapkan komputer ini telah memilih untuk memblokir situs ini.</translation>
 <translation id="8228419419708659934">Tampilan dua halaman</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk menerjemahkan halaman ini</translation>
 <translation id="8232343881378637145">Suhu platform</translation>
 <translation id="8238581221633243064">Buka halaman dalam tab Samaran baru</translation>
 <translation id="8241707690549784388">Halaman yang dicari menggunakan informasi yang Anda masukkan. Kembali ke halaman tersebut dapat menyebabkan pengulangan tindakan apa pun yang Anda lakukan. Apakah Anda ingin melanjutkan?</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 2140ba5..6f13c1fd 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -199,7 +199,7 @@
 <translation id="1717494416764505390">Mailbox 3</translation>
 <translation id="1718029547804390981">Il documento è troppo voluminoso per potervi inserire annotazioni</translation>
 <translation id="1721424275792716183">* Campo obbligatorio</translation>
-<translation id="1724638245199909652">Accesso font locali</translation>
+<translation id="1724638245199909652">Accesso ai caratteri locali</translation>
 <translation id="1727741090716970331">Aggiungi un numero di carta valido</translation>
 <translation id="1728677426644403582">È visualizzata l'origine di una pagina web</translation>
 <translation id="173080396488393970">Questo tipo di carta non è supportato</translation>
@@ -1485,7 +1485,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> non è conforme agli standard di sicurezza.</translation>
 <translation id="7210993021468939304">Attività Linux all'interno del container; possono installare ed eseguire app Linux all'interno del container</translation>
 <translation id="721197778055552897"><ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /> su questo problema.</translation>
-<translation id="7214062855724067749">Usare i caratteri installati sul computer per consentirti di creare tipografia avanzata</translation>
+<translation id="7214062855724067749">Usare i caratteri installati sul computer per consentirti di utilizzare opzioni di tipografia avanzata</translation>
 <translation id="7217745192097460130">Vuoi usare Touch ID per verificare e completare l'acquisto?</translation>
 <translation id="7219179957768738017">La connessione utilizza <ph name="SSL_VERSION" />.</translation>
 <translation id="7220786058474068424">Elaborazione in corso</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index 3a3ca00..98251d6 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">ბრძანებათა სტრიქონის ვარიანტები</translation>
 <translation id="129553762522093515">ბოლოს დახურული</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ცადეთ თქვენი ქუქი-ჩანაწერების გასუფთავება<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ღილაკი „ინკოგნიტო ფანჯრის გახსნა“, დააჭირეთ Enter-ს Chrome-ის ახალი ინკოგნიტო ფანჯრის გასახსნელად</translation>
 <translation id="1301324364792935241">შეამოწმეთ თქვენი დაცული DNS-ის პარამეტრები</translation>
 <translation id="1307966114820526988">მოძველებული ფუნქციები</translation>
 <translation id="131405271941274527"><ph name="URL" /> ითხოვს ინფორმაციის გაგზავნას/მიღებას NFC მოწყობილობაზე თქვენს ტელეფონზე შეხებისას</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">გთხოვთ განაახლეთ თქვენი სინქრ. პაროლის ფრაზა.</translation>
 <translation id="1787142507584202372">აქ გამოჩნდება თქვენი გახსნილი ჩანართები</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, შესაძლებელია რამდენიმე მოქმედება, დააჭირეთ Tab-ს მათ სანახავად</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ბარათის მფლობელის სახელი</translation>
 <translation id="1807528111851433570">საწყისი ფურცელი</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">რეკლამა</translation>
 <translation id="1919367280705858090">შეცდომის შესახებ კონკრეტულ შეტყობინებებთან დაკავშირებული დახმარება</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{არცერთი}=1{1 საიტი}other{# საიტი}}</translation>
+<translation id="1926148189358507356">ღილაკი „ხელახლა გაშვება გასაახლებლად“, დააჭირეთ Enter-ს Chrome-ის გასაახლებლად</translation>
 <translation id="1945968466830820669">თქვენ შეიძლება მოგპარონ პერსონალური მონაცემები, ან დაკარგოთ წვდომა თქვენი ორგანიზაციის ანგარიშზე. Chromium გირჩევთ, ახლავე შეცვალოთ პაროლი.</translation>
 <translation id="1947454675006758438">ზედა მარჯვენა ნაწილის დასტეპლერება</translation>
 <translation id="1959001866257244765">შეუწყვეთ ხელი ვების უსაფრთხოების ყველასთვის გაუმჯობესებას <ph name="BEGIN_WHITEPAPER_LINK" />თქვენ მიერ მონახულებული ზოგიერთი გვერდის URL-ების, სისტემის შეზღუდული ინფორმაციისა და გვერდების გარკვეული კონტენტის<ph name="END_WHITEPAPER_LINK" /> Google-ისთვის გაგზავნით. <ph name="BEGIN_PRIVACY_PAGE_LINK" />კონფიდენციალურობის დებულება<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">დონე</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">ორგანიზაციის (ნაგულისხმევი)</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს Chrome-ის ახალი ინკოგნიტო ფანჯრის გასახსნელად</translation>
 <translation id="2385809941344967209">განაახლეთ Chrome თქვენი Chrome-ის პარამეტრებიდან</translation>
 <translation id="2386255080630008482">სერვერის სერტიფიკატი გაუქმდა.</translation>
 <translation id="2392959068659972793">წესების ჩვენება მნიშვნელობების ნაკრების გარეშე</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">გაცვლის ბუფერი</translation>
 <translation id="2587730715158995865">წყარო: <ph name="ARTICLE_PUBLISHER" />. წაიკითხეთ ეს და <ph name="OTHER_ARTICLE_COUNT" /> სხვა სტატია.</translation>
 <translation id="2587841377698384444">კატალოგის API-ის ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს საკრედიტო ბარათის ავტომატური შევსების ინფორმაციის გასაახლებლად Chrome-ის პარამეტრებიდან</translation>
 <translation id="2595719060046994702">ამ მოწყობილობასა და ანგარიშს არ მართავს კომპანია თუ სხვა ტიპის ორგანიზაცია.</translation>
 <translation id="2597378329261239068">ეს დოკუმენტი დაცულია პაროლით. შეიყვანეთ პაროლი.</translation>
 <translation id="2609632851001447353">ვარიაციები</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">დატოვება</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">საუკეთესოდ მორგება</translation>
+<translation id="2688738823074468716">ღილაკი „პაროლების მართვა“, დააჭირეთ Enter-ს პაროლების სამართავად Chrome-ის პარამეტრებიდან</translation>
 <translation id="2688969097326701645">გაგრძელება</translation>
 <translation id="2691924980723297736">გაფრთხილება უსაფრთხოების შესახებ</translation>
 <translation id="2699302886720511147">მისაღები ბარათები</translation>
@@ -735,6 +741,7 @@
 <translation id="4088981014127559358">მხარე 1 — სურათის წანაცვლება Y ღერძზე</translation>
 <translation id="4098354747657067197">მოერიდეთ შეცდომაში შემყვან საიტს</translation>
 <translation id="4101413244023615925">ტექსტი და გრაფიკა</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს პაროლების სამართავად Chrome-ის პარამეტრებიდან</translation>
 <translation id="4103249731201008433">მოწყობილობის სერიული ნომერი არასწორია</translation>
 <translation id="4103763322291513355">ეწვიეთ საიტს &lt;strong&gt;chrome://policy&lt;/strong&gt; URL-ების შავი სიის სანახავად და ადმინისტრატორის მიერ გააქტიურებული სხვა წესების დასათვალიერებლად.</translation>
 <translation id="4110652170750985508">გადახედეთ თქვენს გადახდას</translation>
@@ -901,6 +908,7 @@
 <translation id="4738601419177586157">„<ph name="TEXT" />“-ის ძიების შემოთავაზება</translation>
 <translation id="4742407542027196863">პაროლების მართვა…</translation>
 <translation id="4744603770635761495">შესრულებადი მისამართი</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს Chrome-ის გასაახლებლად</translation>
 <translation id="4750917950439032686">თქვენი ინფორმაცია (მაგალითად, პაროლები ან საკრედიტო ბარათების ნომრები) ამ საიტზე კონფიდენციალურად გაიგზავნება.</translation>
 <translation id="4756388243121344051">&amp;ისტორია</translation>
 <translation id="4758311279753947758">საკონტაქტო ინფორმაციის დამატება</translation>
@@ -942,6 +950,7 @@
 <translation id="4926049483395192435">საჭიროა მიუთითოთ.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> იუწყება:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" />-დან</translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, მოსაძიებლად დააჭირეთ Tab-ს, შემდეგ Enter-ს</translation>
 <translation id="4930153903256238152">დიდი მოცულობის</translation>
 <translation id="4943872375798546930">შედეგები არ არის</translation>
 <translation id="4950898438188848926">ჩანართის გადართვის ღილაკი, ამ ჩანართზე გადასართველად დააჭირეთ კლავიშს „Enter“, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1018,6 +1027,7 @@
 <translation id="5215116848420601511">გადახდის მეთოდები და მისამართები Google Pay-დან</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">აუცილებელია ელფოსტის მითითება</translation>
+<translation id="5222994811833658317">ღილაკი „მონაცემების გასუფთავება“, დააჭირეთ Enter-ს Chrome-ის დათვალიერების ისტორიის მონაცემების გასასუფთავებლად</translation>
 <translation id="5230733896359313003">მიწოდების მისამართი</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1058,6 +1068,7 @@
 <translation id="534295439873310000">NFC მოწყობილობები</translation>
 <translation id="5344579389779391559">ამ გვერდმა შეიძლება დაგაკისროთ თანხის გადახდა</translation>
 <translation id="5355557959165512791"><ph name="SITE" />-ზე შესვლა ამჟამად ვერ მოხერხდება, რადგან მისი სერტიფიკატი გაუქმდა. ქსელის შეცდომები და მასზე შეტევები, ჩვეულებრივ, დროებითი მოვლენებია და შესაბამისად, ეს გვერდი შეიძლება მოგვიანებით ამუშავდეს.</translation>
+<translation id="5361930801096459163">ძიების ღილაკი, დააჭირეთ Enter-ს <ph name="KEYWORD_SUFFIX" />-ის მოსაძიებლად</translation>
 <translation id="536296301121032821">ვერ მოხერხდა პოლიტიკის პარამეტრების შენახვა</translation>
 <translation id="5371425731340848620">ბარათის განახლება</translation>
 <translation id="5377026284221673050">„თქვენი საათი უკანაა“, „თქვენი საათი წინაა“ ან „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;“</translation>
@@ -1283,6 +1294,7 @@
 <translation id="6302269476990306341">Google ასისტენტი Chrome-ში წყვეტს მუშაობას</translation>
 <translation id="6305205051461490394"><ph name="URL" /> მიუწვდომელია.</translation>
 <translation id="6312113039770857350">ვებგვერდი მიუწვდომელია</translation>
+<translation id="6315224405718249523">ღილაკი „გვერდის თარგმნა“, დააჭირეთ Enter-ს ამ გვერდის გადასათარგმნად</translation>
 <translation id="6321917430147971392">შეამოწმეთ თქვენი DNS პარამეტრები</translation>
 <translation id="6322182122604171028">Windows Hello-ს გამოყენება ვერ მოხერხდა</translation>
 <translation id="6328639280570009161">სცადეთ ქსელის პროგნოზის გამორთვა</translation>
@@ -1337,6 +1349,7 @@
 <translation id="6547208576736763147">ორმაგად გახვრეტა მარცხნივ</translation>
 <translation id="6554795675067793129">თქვენს ანგარიშს მართავს <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">გამეორება</translation>
+<translation id="6566840325635607048">ღილაკი „საკრედიტო ბარათის განახლება“, დააჭირეთ Enter-ს საკრედიტო ბარათის ავტომატური შევსების ინფორმაციის გასაახლებლად Chrome-ის პარამეტრებიდან</translation>
 <translation id="6569060085658103619">თქვენ ათვალიერებთ გაფართოების გვერდს</translation>
 <translation id="6573200754375280815">ორმაგად გახვრეტა მარჯვნივ</translation>
 <translation id="6578796323535178455">C2 (კონვერტი)</translation>
@@ -1577,6 +1590,7 @@
 <translation id="7549584377607005141">ამ ვებგვერდის სწორად გამოსაჩენად საჭიროა ადრე შეყვანილი მონაცემები. შეგიძლიათ ხელახლა გაგზავნოთ ეს მონაცემები, მაგრამ ამ შემთხვევაში თქვენ გაიმეორებთ ამ გვერდის მიერ ადრე შესრულებულ მოქმედებებს.</translation>
 <translation id="7550637293666041147">თქვენი მოწყობილობისა და Chrome-ის მომხმარებლის სახელები</translation>
 <translation id="7552846755917812628">ცადეთ შემდეგი:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს Chrome-ის დათვალიერების ისტორიის მონაცემების გასასუფთავებლად</translation>
 <translation id="7554791636758816595">ახალი ჩანართი</translation>
 <translation id="7564049878696755256">თქვენ შეიძლება მოგპარონ პერსონალური მონაცემები, ან დაკარგოთ წვდომა თქვენს <ph name="ORG_NAME" /> ანგარიშზე. Chrome გირჩევთ, ახლავე შეცვალოთ პაროლი.</translation>
 <translation id="7567204685887185387">ეს სერვერი ვერ ამტკიცებს, რომ ის არის <ph name="DOMAIN" />; მისი უსაფრთხოების სერთიფიკატი შეიძლება გაიცა თაღლითურად. ეს შეიძლება იყოს გამოწვეული არასწორი კონფიგურაციით ან თავდამსხმელის მიერ თქვენი კავშირის გადაჭრით.</translation>
@@ -1743,6 +1757,7 @@
 <translation id="8225771182978767009">პიროვნებამ, რომელმაც ეს კომპიუტერი გამართა, ამ საიტის დაბლოკვა აირჩია.</translation>
 <translation id="8228419419708659934">ორგვერდიანი ხედი</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, დააჭირეთ Tab-ს, შემდეგ Enter-ს ამ გვერდის გადასათარგმნად</translation>
 <translation id="8232343881378637145">პლატფორმის ტემპერატურა</translation>
 <translation id="8238581221633243064">გვერდის ახალ ინკოგნიტო ჩანართში გახსნა</translation>
 <translation id="8241707690549784388">გვერდი, რომელსაც ეძებთ, იყენებს თქვენ მიერ შეყვანილ ინფორმაციას. ამ გვერდზე დაბრუნების შემთხვევაში, ნებისმიერი ადრე განხორციელებული მოქმედება შეიძლება გამეორდეს. გსურთ გააგრძელოთ?</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 40a1b0f..0dfcd988 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Пәрмендер жолының нұсқалары</translation>
 <translation id="129553762522093515">Жақында жабылған</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Сookie файлдарын жоюға тырысыңыз<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">"Инкогнито терезесін ашу" түймесі. Chrome-нан жаңа инкогнито терезесін ашу үшін Enter пернесін басыңыз.</translation>
 <translation id="1301324364792935241">Қауіпсіз DNS параметрлерін тексеріңіз.</translation>
 <translation id="1307966114820526988">Ескі функциялар</translation>
 <translation id="131405271941274527">NFC құрылғыңыздағы телефоныңызды түрткенде, <ph name="URL" /> ақпарат алмасуға рұқсат сұрайды.</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Синхрондау құпия фразасын жаңартыңыз.</translation>
 <translation id="1787142507584202372">Ашық қойынды осы жерден шығады</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />. Бірнеше әрекет қолжетімді, оларды қарап шығу үшін Tab пернесін басыңыз.</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Карта иесінің аты</translation>
 <translation id="1807528111851433570">Бастапқы парақ</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Жарнамалар</translation>
 <translation id="1919367280705858090">Арнайы қате туралы хабар арқылы көмек алу</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Жоқ}=1{1 сайт}other{# сайт}}</translation>
+<translation id="1926148189358507356">"Жаңарту үшін қайта іске қосу" түймесі. Chrome-ды жаңарту үшін Enter пернесін басыңыз.</translation>
 <translation id="1945968466830820669">Ұйымның есептік жазбасына кіре алмай қалуыңыз мүмкін немесе жеке деректеріңіз ұрлануы ықтимал. Chromium құпия сөзіңізді қазір өзгертуге кеңес береді.</translation>
 <translation id="1947454675006758438">Жоғарғы оң жағын қапсыру</translation>
 <translation id="1959001866257244765">Google-ға <ph name="BEGIN_WHITEPAPER_LINK" />кірген беттердің URL мекенжайларын, шектеулі жүйе ақпаратын және кейбір бет мазмұнын<ph name="END_WHITEPAPER_LINK" /> жіберу арқылы барлық пайдаланушы үшін интернет қауіпсіздігін жақсартуға көмектесіңіз. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Құпиялылық саясаты<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Деңгей</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Кәсіпорын (әдепкі)</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome-нан жаңа инкогнито терезесін ашу үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="2385809941344967209">Chrome браузерін Chrome параметрлерінен жаңартыңыз.</translation>
 <translation id="2386255080630008482">Сервер сертификаты қайтарып алынды.</translation>
 <translation id="2392959068659972793">Мәні орнатылмаған саясаттарды көрсету</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Буфер</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> ұсынады. Осы және басқа <ph name="OTHER_ARTICLE_COUNT" /> мақаланы оқыңыз.</translation>
 <translation id="2587841377698384444">Каталогтің API идентификаторы:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome параметрлерінде несиелік картаның автолтолтырылуы туралы ақпаратты жаңарту үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="2595719060046994702">Құрылғы мен есептік жазбаны компания не басқа ұйым басқармайды.</translation>
 <translation id="2597378329261239068">Бұл құжат құпия сөзбен қорғалған. Құпия сөзді енгізіңіз.</translation>
 <translation id="2609632851001447353">Нұсқалар</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Шығу</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Ең оңтайлы</translation>
+<translation id="2688738823074468716">"Құпия сөздерді басқару" түймесі. Chrome параметрлерінен құпия сөздерді басқару үшін Enter пернесін басыңыз.</translation>
 <translation id="2688969097326701645">Иә, жалғастырамын</translation>
 <translation id="2691924980723297736">Қауіпсіздік туралы ескерту</translation>
 <translation id="2699302886720511147">Қабылданатын карталар</translation>
@@ -741,6 +747,7 @@
 <translation id="4088981014127559358">Кескіннің Y осі бойынша 1-жағында ығысуы</translation>
 <translation id="4098354747657067197">Жалған сайт</translation>
 <translation id="4101413244023615925">Мәтін және графика</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome параметрлерінде құпия сөздерді басқару үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="4103249731201008433">Құрылғы сериялық нөмірі жарамсыз болып табылады</translation>
 <translation id="4103763322291513355">Қара тізімге енгізілген URL мекенжайлары және жүйе әкімшісі енгізген басқа саясаттар тізімін қарау үшін &lt;strong&gt;chrome://policy&lt;/strong&gt; кіріңіз.</translation>
 <translation id="4110652170750985508">Төлеміңізді тексеріңіз</translation>
@@ -911,6 +918,7 @@
 <translation id="4738601419177586157">Ұсынылатын сұрау: <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Құпия сөздерді басқару...</translation>
 <translation id="4744603770635761495">Орындалатын жол</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome-ды жаңарту үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="4750917950439032686">Бұл сайтқа жіберілетін жеке ақпаратыңыз (мысалы, құпия сөздер не несиелік карта нөмірлері) құпия сақталады.</translation>
 <translation id="4756388243121344051">&amp;Тарих</translation>
 <translation id="4758311279753947758">Контакт ақпаратын қосу</translation>
@@ -952,6 +960,7 @@
 <translation id="4926049483395192435">Көрсетілуі керек.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> сайтындағы сұрау</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />. Іздеу үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="4930153903256238152">Үлкен сыйымдылық</translation>
 <translation id="4943872375798546930">Нәтижесіз</translation>
 <translation id="4950898438188848926">Қойынды ауыстыру түймесі: ашық қойындыға ауысу үшін Enter пернесін басыңыз, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1028,6 +1037,7 @@
 <translation id="5215116848420601511">Google Pay қызметін пайдаланатын төлеу әдістері және мекенжайлар</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Электрондық пошта мекенжайы көрсетілуі қажет</translation>
+<translation id="5222994811833658317">"Деректерді өшіру" түймесі. Chrome браузерін қолдану тарихы туралы деректерді өшіру үшін Enter пернесін басыңыз.</translation>
 <translation id="5230733896359313003">Жеткізу мекенжайы</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1068,6 +1078,7 @@
 <translation id="534295439873310000">NFC функциясы бар құрылғылар</translation>
 <translation id="5344579389779391559">Бетті ашсаңыз, ақы алынуы мүмкін</translation>
 <translation id="5355557959165512791">Қазір <ph name="SITE" /> сайтына кіре алмайсыз, себебі мұның сертификаты қайтарып алынды. Желі қателері мен шабуылдары әдетте уақытша болады, сондықтан бұл бет кейінірек жұмыс істеуі мүмкін.</translation>
+<translation id="5361930801096459163">"Іздеу" түймесі. "<ph name="KEYWORD_SUFFIX" />" іздеу үшін Enter пернесін басыңыз.</translation>
 <translation id="536296301121032821">Саясат параметрлерін сақтау сәтсіз аяқталды</translation>
 <translation id="5371425731340848620">Картаны жаңарту</translation>
 <translation id="5377026284221673050">"Сағатыңыз артта", "Сағатыңыз алда" немесе "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1293,6 +1304,7 @@
 <translation id="6302269476990306341">Chrome браузеріндегі Google Assistant тоқтатылуда</translation>
 <translation id="6305205051461490394"><ph name="URL" /> мекенжайына кіру мүмкін емес.</translation>
 <translation id="6312113039770857350">Веб-бет қол жетімді емес</translation>
+<translation id="6315224405718249523">"Бетті аудару" түймесі. Осы бетті аудару үшін Enter пернесін басыңыз.</translation>
 <translation id="6321917430147971392">DNS параметрлерін тексеріңіз</translation>
 <translation id="6322182122604171028">Windows Hello платформасын пайдалану мүмкін болмады</translation>
 <translation id="6328639280570009161">Желілік болжамды өшіруге әрекет ету</translation>
@@ -1347,6 +1359,7 @@
 <translation id="6547208576736763147">Сол жағын екі рет тесу</translation>
 <translation id="6554795675067793129">Есептік жазбаңызды <ph name="ENROLLMENT_DOMAIN" /> басқарады.</translation>
 <translation id="6556866813142980365">Қайта орындау</translation>
+<translation id="6566840325635607048">"Несиелік картаны жаңарту" түймесі. Chrome параметрлерінде несиелік картаның автотолтырылуы туралы ақпаратты жаңарту үшін Enter пернесін басыңыз.</translation>
 <translation id="6569060085658103619">Кеңейтім бетін көрудесіз</translation>
 <translation id="6573200754375280815">Оң жағын екі рет тесу</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1587,6 +1600,7 @@
 <translation id="7549584377607005141">Бұл веб-бет дұрыс көрсетілу мақсатында бұрын енгізілген деректерді қажет етеді. Бұл деректерді қайта жібере аласыз, бірақ бұл арқылы осы бетте бұрын орындалған кез келген әрекетті қайталайсыз.</translation>
 <translation id="7550637293666041147">Құрылғыңыздың пайдаланушы аты және Chrome браузеріңіздің пайдаланушы аты</translation>
 <translation id="7552846755917812628">Келесі кеңестерді орындап көріңіз:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome браузерін қолдану тарихы деректерін өшіру үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="7554791636758816595">Жаңа қойынды</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> есептік жазбаңызға кіру мүмкіндігін жоғалтып алуыңыз немесе жеке мәліметтеріңізді беріп қоюыңыз мүмкін. Chrome құпия сөзіңізді дереу өзгертуге кеңес береді.</translation>
 <translation id="7567204685887185387">Бұл сервер өзінің <ph name="DOMAIN" /> екенін дәлелдей алмады; оның қауіпсіздік сертификаты алаяқтық жолмен шығарылған болуы мүмкін. Бұл дұрыс конфигурацияланбағаннан немесе зиянды бағдарламаның байланысқа кедергі келтіргенінен болуы мүмкін.</translation>
@@ -1753,6 +1767,7 @@
 <translation id="8225771182978767009">Бұл компьютерді орнатқан адам осы сайтты бөгеуді ұйғарды.</translation>
 <translation id="8228419419708659934">Екі бетті көру</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Осы бетті аудару үшін алдымен Tab, одан кейін Enter пернесін басыңыз.</translation>
 <translation id="8232343881378637145">Платформа температурасы</translation>
 <translation id="8238581221633243064">Бетті жаңа инкогнито қойындысында ашу</translation>
 <translation id="8241707690549784388">Ізделіп жатқан бет сіз енгізген ақпаратты пайдаланды. Аталмыш бетке қайту сіз орындаған әрекетті қайталауға себеп болуы мүмкін. Жалғастыру керек пе?</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index a710baa..341957f7 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -83,6 +83,7 @@
 <translation id="1294154142200295408">អថេរ​នៃ​អត្ថបទ​បញ្ជា</translation>
 <translation id="129553762522093515">បានបិទកន្លងទៅថ្មីៗ</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />សាកល្បងជម្រះខុកឃីរបស់អ្នក<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ប៊ូតុង​បើក​ផ្ទាំងឯកជន សូមចុច Enter ដើម្បីបើក​ផ្ទាំងឯកជន Chrome ថ្មី</translation>
 <translation id="1301324364792935241">ពិនិត្យ​ការកំណត់ DNS សុវត្ថិភាពរបស់អ្នក</translation>
 <translation id="1307966114820526988">មុខងារ​ដែលបាន​បញ្ឈប់</translation>
 <translation id="131405271941274527"><ph name="URL" /> ចង់ផ្ញើ និង​ទទួលព័ត៌មាន នៅពេល​អ្នកចុច​ទូរសព្ទ​របស់អ្នក នៅលើ​ឧបករណ៍ NFC</translation>
@@ -227,6 +228,7 @@
 <translation id="1783075131180517613">សូមធ្វើបច្ចុប្បន្នភាពឃ្លាសម្ងាត់សមកម្មរបស់អ្នក។</translation>
 <translation id="1787142507584202372">ផ្ទាំង​ដែល​អ្នកបានបើកបង្ហាញ​នៅ​ទីនេះ</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, អាចធ្វើ​សកម្មភាព​បានច្រើន សូមចុច Tab ដើម្បីរុករក​សកម្មភាព​ទាំងនោះ</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ឈ្មោះ​ម្ចាស់​បណ្ណ</translation>
 <translation id="1807528111851433570">សន្លឹក​ចាប់ផ្ដើម</translation>
@@ -255,6 +257,7 @@
 <translation id="1919345977826869612">ពាណិជ្ជកម្ម</translation>
 <translation id="1919367280705858090">ទទួល​បានជំនួយដោយ​ប្រើ​​សារ​បញ្ហា​ជាក់លាក់មួយ</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{គ្មាន}=1{ទំព័រ 1}other{ទំព័រ #}}</translation>
+<translation id="1926148189358507356">ប៊ូតុង​ចាប់ផ្ដើម​ឡើងវិញ​ដើម្បី​ធ្វើបច្ចុប្បន្នភាព សូមចុច Enter ដើម្បី​ធ្វើបច្ចុប្បន្នភាព Chrome</translation>
 <translation id="1945968466830820669">អ្នក​អាច​បាត់បង់​សិទ្ធិចូល​ប្រើ​គណនីរបស់​ស្ថាប័ន​អ្នក ឬ​ជួបប្រទះ​នឹង​ការលួចយក​អត្តសញ្ញាណ។ Chromium សូមណែនាំ​ឱ្យប្ដូរ​ពាក្យសម្ងាត់​របស់អ្នក​ឥឡូវ​នេះ។</translation>
 <translation id="1947454675006758438">កិប​ខាងលើ​ផ្នែកខាងស្ដាំ</translation>
 <translation id="1959001866257244765">ជួយពង្រឹង​សុវត្ថិភាព​នៅលើ​អ៊ីនធឺណិត​សម្រាប់​អ្នករាល់គ្នា​តាមរយៈការផ្ញើ <ph name="BEGIN_WHITEPAPER_LINK" />URL របស់ទំព័រ​មួយចំនួន​ដែលអ្នកចូលមើល ព័ត៌មាន​ប្រព័ន្ធមួយចំនួន និងខ្លឹមសារទំព័រ​មួយចំនួន<ph name="END_WHITEPAPER_LINK" />ទៅ Google។ <ph name="BEGIN_PRIVACY_PAGE_LINK" />គោលការណ៍​ឯកជនភាព<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -359,6 +362,7 @@
 <translation id="2367567093518048410">កម្រិត</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">លំនាំដើមសហគ្រាស</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បីបើក​ផ្ទាំងឯកជន Chrome ថ្មី</translation>
 <translation id="2385809941344967209">ដំឡើង​កំណែ Chrome ពីការកំណត់ Chrome របស់អ្នក</translation>
 <translation id="2386255080630008482">វិញ្ញាបនប័ត្រម៉ាស៊ីនមេត្រូវបានបញ្ឈប់សុពលភាព។</translation>
 <translation id="2392959068659972793">បង្ហាញគោលការណ៍ដែលមិនកំណត់តម្លៃ</translation>
@@ -402,6 +406,7 @@
 <translation id="2586657967955657006">អង្គ​ចងចាំ</translation>
 <translation id="2587730715158995865">ពី <ph name="ARTICLE_PUBLISHER" /> ។ សូមអានអត្ថបទនេះ និង​អត្ថបទ <ph name="OTHER_ARTICLE_COUNT" /> ផ្សេងទៀត។</translation>
 <translation id="2587841377698384444">API ID ថតផ្ទុកឯកសារ៖</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បីធ្វើបច្ចុប្បន្នភាព​ព័ត៌មាន​បំពេញ​បណ្ណឥណទាន​ស្វ័យប្រវត្តិ​នៅក្នុង​ការកំណត់ Chrome</translation>
 <translation id="2595719060046994702">ឧបករណ៍​ និងគណនីនេះ​មិនស្ថិត​ក្រោមការគ្រប់គ្រង​របស់​ក្រុមហ៊ុនណាមួយ ឬស្ថាប័ន​ផ្សេងទៀត​ឡើយ។</translation>
 <translation id="2597378329261239068">ឯកសារនេះត្រូវបានការពារដោយពាក្យសម្ងាត់។ សូមបញ្ចូលពាក្យសម្ងាត់។</translation>
 <translation id="2609632851001447353">បំរែបម្រួល</translation>
@@ -423,6 +428,7 @@
 <translation id="2677748264148917807">ចាកចេញ</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ស័ក្តិសម​បំផុត</translation>
+<translation id="2688738823074468716">ប៊ូតុង​គ្រប់គ្រង​ពាក្យសម្ងាត់ សូមចុច Enter ដើម្បី​គ្រប់គ្រង​ពាក្យសម្ងាត់​នៅក្នុង​ការកំណត់ Chrome</translation>
 <translation id="2688969097326701645">បាទ/ចាស បន្ត</translation>
 <translation id="2691924980723297736">ការព្រមាន​អំពីសុវត្ថិភាព</translation>
 <translation id="2699302886720511147">បណ្ណដែលទទួលយក</translation>
@@ -745,6 +751,7 @@
 <translation id="4088981014127559358">ការប្ដូរ​រូបភាព Y នៃចំហៀងទី 1</translation>
 <translation id="4098354747657067197">មានគេហទំព័រឆបោកនៅខាងមុខ</translation>
 <translation id="4101413244023615925">អក្សរ និងក្រាហ្វិក</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បី​គ្រប់គ្រង​ពាក្យសម្ងាត់​នៅក្នុង​ការកំណត់ Chrome</translation>
 <translation id="4103249731201008433">លេខសេរ៊ីឧបករណ៍គ្មានសុពលភាព</translation>
 <translation id="4103763322291513355">ទៅកាន់ &lt;strong&gt;chrome://policy&lt;/strong&gt; ដើម្បីមើល URL ដែលបានដាក់ក្នុងបញ្ជីខ្មៅ និងគោលការណ៍ដ៏ទៃដែលត្រូវបានអនុម័តដោយអ្នកគ្រប់គ្រងប្រព័ន្ធរបស់អ្នក។</translation>
 <translation id="4110652170750985508">ពិនិត្យ​មើល​ការបង់ប្រាក់​របស់អ្នក​</translation>
@@ -916,6 +923,7 @@
 <translation id="4738601419177586157">ការណែនាំ​ការស្វែងរក <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">គ្រប់គ្រង​ពាក្យ​សម្ងាត់…</translation>
 <translation id="4744603770635761495">ផ្លូវដែលអាចប្រតិបតិ្តការបាន</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បី​ធ្វើបច្ចុប្បន្នភាព Chrome</translation>
 <translation id="4750917950439032686">ព័ត៌មានរបស់អ្នក (ឧទារហរណ៍៖ ពាក្យសម្ងាត់ ឬលេខកាតឥណទាន) ស្ថិតក្នុងលក្ខណៈឯកជននៅពេលដែលវាត្រូវបានផ្ញើទៅគេហទំព័រនេះ។</translation>
 <translation id="4756388243121344051">ប្រវត្តិ</translation>
 <translation id="4758311279753947758">បន្ថែមព័ត៌មានទំនាក់ទំនង</translation>
@@ -957,6 +965,7 @@
 <translation id="4926049483395192435">ត្រូវតែបញ្ជាក់</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> និយាយ​ថា</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បីស្វែងរក</translation>
 <translation id="4930153903256238152">ទំហំផ្ទុកធំ</translation>
 <translation id="4943872375798546930">គ្មានលទ្ធផលទេ</translation>
 <translation id="4950898438188848926">ចុច​ប៊ូតុងប្ដូរ រួចចុច "Enter" ដើម្បី​ប្ដូរទៅ​ផ្ទាំងបើក <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1033,6 +1042,7 @@
 <translation id="5215116848420601511">វិធី​បង់ប្រាក់ និង​អាសយដ្ឋាន​ដែលប្រើ Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">តម្រូវ​ឲ្យ​មាន​អ៊ីមែល</translation>
+<translation id="5222994811833658317">ប៊ូតុង​សម្អាតទិន្នន័យ សូមចុច Enter ដើម្បីសម្អាត​ទិន្នន័យប្រវត្តិ​រុករក​តាមអ៊ីនធឺណិត​របស់ Chrome</translation>
 <translation id="5230733896359313003">អាសយដ្ឋាន​ដឹក​ជញ្ជូន</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1073,6 +1083,7 @@
 <translation id="534295439873310000">ឧបករណ៍ NFC</translation>
 <translation id="5344579389779391559">ទំព័រ​នេះ​អាច​នឹងព្យាយាម​គិតប្រាក់ពីអ្នក</translation>
 <translation id="5355557959165512791">អ្នក​មិន​អាច​ចូលទៅ​កាន់ <ph name="SITE" /> ឥឡូវនេះ​បានទេ ដោយសារតែវិញ្ញាបនបត្ររបស់វា​ត្រូវ​បានដក​ហូតហើយ។ ជាទូទៅបញ្ហា​បណ្តាញ ឬ​ការវាយប្រហារ​​កើត​ឡើង​ជាបណ្តោះអាសន្ន ដូច្នេះ​ទំព័រ​នេះ​នឹងដំណើរការល្អឡើងវិញនៅពេលក្រោយ។</translation>
+<translation id="5361930801096459163">ប៊ូតុង​ស្វែងរក សូមចុច Enter ដើម្បី​ស្វែងរក <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">បានបរាជ័យក្នុងការស្តារការកំណត់គោលការណ៍នេះ</translation>
 <translation id="5371425731340848620">ធ្វើបច្ចុប្បន្នភាពកាត</translation>
 <translation id="5377026284221673050">"នាឡិកា​របស់អ្នក​ដើរយឺត" ឬ "នាឡិកា​របស់អ្នក​ដើរលឿន" ឬ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1298,6 +1309,7 @@
 <translation id="6302269476990306341">ការបញ្ឈប់ Google ជំនួយការនៅក្នុង Chrome</translation>
 <translation id="6305205051461490394"><ph name="URL" /> មិនអាចភ្ជាប់បានទេ</translation>
 <translation id="6312113039770857350">គេហទំព័រមិនអាចប្រើបានទេ</translation>
+<translation id="6315224405718249523">ប៊ូតុង​បកប្រែ​ទំព័រ សូមចុច Enter ដើម្បីបកប្រែ​ទំព័រ​នេះ</translation>
 <translation id="6321917430147971392">ពិនិត្យការកំណត់ DNS របស់អ្នក</translation>
 <translation id="6322182122604171028">មិនអាចប្រើ Windows Hello បានទេ</translation>
 <translation id="6328639280570009161">សាកល្បងការបិទដំណើរការការព្យាករណ៍បណ្តាញ</translation>
@@ -1352,6 +1364,7 @@
 <translation id="6547208576736763147">ចោះ​ពីររន្ធ​ខាងឆ្វេង</translation>
 <translation id="6554795675067793129">គណនី​របស់​អ្នក​ស្ថិតក្រោម​ការគ្រប់គ្រង​របស់ <ph name="ENROLLMENT_DOMAIN" /> ។</translation>
 <translation id="6556866813142980365">ធ្វើវិញ</translation>
+<translation id="6566840325635607048">ប៊ូតុង​ធ្វើបច្ចុប្បន្នភាព​បណ្ណឥណទាន សូម​ចុច Enter ដើម្បីធ្វើបច្ចុប្បន្នភាព​ព័ត៌មាន​បំពេញ​បណ្ណឥណទាន​ស្វ័យប្រវត្តិ​នៅក្នុង​ការកំណត់ Chrome</translation>
 <translation id="6569060085658103619">អ្នក​កំពុងមើល​ទំព័រ​កម្មវិធី​បន្ថែម</translation>
 <translation id="6573200754375280815">ចោះ​ពីររន្ធ​ខាងស្ដាំ</translation>
 <translation id="6578796323535178455">C2 (ស្រោម​សំបុត្រ)</translation>
@@ -1592,6 +1605,7 @@
 <translation id="7549584377607005141">គេហទំព័រនេះតម្រូវឲ្យមានទិន្នន័យដែលអ្នកបញ្ចូលពីមុនដើម្បីបង្ហាញឲ្យបានត្រឹមត្រូវ។ អ្នកអាចផ្ញើទិន្នន័យនេះម្តងទៀត ប៉ុន្តែការធ្វើដូច្នេះ ធ្វើឲ្យសកម្មភាពសកម្មភាពណាមួួយដែលទំព័រនេះបានប្រតិបត្តិការកើតឡើងសាជាថ្មី។</translation>
 <translation id="7550637293666041147">ឈ្មោះអ្នកប្រើប្រាស់ Chrome និង​ឈ្មោះអ្នកប្រើប្រាស់ឧបករណ៍​របស់អ្នក</translation>
 <translation id="7552846755917812628">សាកល្បងធ្វើតាមគន្លឹះខាងក្រោម៖</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បីសម្អាត​ទិន្នន័យប្រវត្តិ​រុករក​តាមអ៊ីនធឺណិត​របស់ Chrome</translation>
 <translation id="7554791636758816595">ផ្ទាំងថ្មី</translation>
 <translation id="7564049878696755256">អ្នកអាច​បាត់បង់​សិទ្ធិចូល​ប្រើ​គណនី <ph name="ORG_NAME" /> របស់អ្នក ឬ​ជួបប្រទះ​នឹង​ការលួចយក​អត្តសញ្ញាណ។ Chrome ណែនាំ​ឱ្យប្ដូរ​ពាក្យសម្ងាត់​របស់អ្នក​ឥឡូវនេះ។</translation>
 <translation id="7567204685887185387">ម៉ាស៊ីនមេនេះមិនអាចបង្ហាញថាវាជា <ph name="DOMAIN" /> ទេ វិញ្ញាបនប័ត្រសុវត្ថិភាពរបស់វា
@@ -1759,6 +1773,7 @@
 <translation id="8225771182978767009">អ្នកដែលដំឡើងកុំព្យូទ័រនេះបានជ្រើសយកការរារាំងគេហទំព័រនេះ</translation>
 <translation id="8228419419708659934">ការមើល​ជាទំព័រពីរ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, សូមចុច Tab បន្ទាប់មក Enter ដើម្បី​បកប្រែ​ទំព័រនេះ</translation>
 <translation id="8232343881378637145">សីតុណ្ហភាព​ប្រព័ន្ធ</translation>
 <translation id="8238581221633243064">បើក​ទំព័រ​នៅក្នុង​ផ្ទាំង​ឯកជន​ថ្មី</translation>
 <translation id="8241707690549784388">ទំព័រដែលអ្នកកំពុងស្វែងរកបានប្រើព័ត៌មានដែលអ្នកបានបញ្ចូល។ ការត្រលប់ទៅទំព័រនោះអាចបណ្តាលឲ្យសកម្មភាពដែលអ្នកធ្វើកើតឡើងសារជាថ្មី។ តើអ្នកចង់បន្តទេ?</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 4e4a671ab..3e8c589 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -8,6 +8,7 @@
 <translation id="1019413721762100891">ಆಫ್</translation>
 <translation id="1021110881106174305">ಸ್ವೀಕೃತ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="1021753677514347426">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ನೀವು ಅಥವಾ ಬೇರೊಬ್ಬರು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರುವ ಪ್ರಮಾಣಪತ್ರದಿಂದಾಗಿ ಈ ಸಮಸ್ಯೆ ಉಂಟಾಗುತ್ತದೆ. ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಮತ್ತು ಪ್ರತಿಬಂಧಿಸಲು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಎಂದು ತಿಳಿದುಬಂದಿದೆ ಮತ್ತು ಈ ಪ್ರಮಾಣಪತ್ರದ ಕುರಿತು Chromium ಗೆ ವಿಶ್ವಾಸವಿಲ್ಲ. ಕೆಲವು ಕಾನೂನುಬದ್ಧ ಮೇಲ್ವಿಚಾರಣೆ ಪ್ರಕರಣಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೂ, ಉದಾಹರಣೆಗೆ ಶಾಲೆ ಅಥವಾ ಕಂಪನಿಯ ನೆಟ್‌ವರ್ಕ್‌, ಅದನ್ನು ತಡೆಯಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೂ ಸಹ, ಮೇಲ್ವಿಚಾರಣೆ ನಡೆಯುತ್ತಿದೆ ಎಂಬುದು ನಿಮಗೆ ತಿಳಿದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು Chromium ಬಯಸುತ್ತದೆ. ವೆಬ್ ಅನ್ನು ಪ್ರವೇಶಿಸುವ ಯಾವುದೇ ಬ್ರೌಸರ್ ಅಥವಾ ಆ್ಯಪ್‌ನಲ್ಲಿ ಮೇಲ್ವಿಚಾರಣೆ ನಡೆಯಬಹುದು.</translation>
+<translation id="1024111578869940408">ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗದ ರೀತಿಯಲ್ಲಿ ವೆಬ್ ವಿಳಾಸಕ್ಕೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುವ ಮೂಲಕ ದಾಳಿಕೋರರು ಕೆಲವೊಮ್ಮೆ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಅನುಕರಣೆ ಮಾಡುತ್ತಾರೆ.</translation>
 <translation id="1030706264415084469">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಣೆ ಮಾಡಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ</translation>
 <translation id="1032854598605920125">ಪ್ರದಕ್ಷಿಣಾಕಾರದಲ್ಲಿ ತಿರುಗಿಸು</translation>
 <translation id="1036348656032585052">ಆಫ್ ಮಾಡು</translation>
@@ -81,6 +82,7 @@
 <translation id="1294154142200295408">ಕಮಾಂಡ್-ಲೈನ್ ವ್ಯತ್ಯಾಸಗಳು</translation>
 <translation id="129553762522093515">ಇತ್ತೀಚೆಗೆ ಮುಚ್ಚಲಾಗಿರುವುದು</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ನಿಮ್ಮ ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ಅಜ್ಞಾತ ವಿಂಡೋ ಬಟನ್. ಹೊಸ Chrome ಅಜ್ಞಾತ ವಿಂಡೋ ತೆರೆಯಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="1301324364792935241">ನಿಮ್ಮ ಸುರಕ್ಷಿತ DNS ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="1307966114820526988">ತೆಗೆದುಹಾಕಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳು</translation>
 <translation id="131405271941274527">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು NFC ಸಾಧನವೊಂದರ ಮೇಲೆ ನೀವು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ, <ph name="URL" /> ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಲು ಮತ್ತು ಸ್ವೀಕರಿಸಲು ಬಯಸುತ್ತದೆ</translation>
@@ -197,6 +199,7 @@
 <translation id="1717494416764505390">ಮೇಲ್‌ಬಾಕ್ಸ್ 3</translation>
 <translation id="1718029547804390981">ಟಿಪ್ಪಣಿ ಮಾಡಲು ಡಾಕ್ಯುಮೆಂಟ್‌ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ</translation>
 <translation id="1721424275792716183">* ಈ ಫೀಲ್ಡ್ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="1724638245199909652">ಸ್ಥಳೀಯ ಫಾಂಟ್ ಪ್ರವೇಶ</translation>
 <translation id="1727741090716970331">ಮಾನ್ಯವಾದ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="1728677426644403582">ನೀವು ವೆಬ್ ಪುಟದ ಮೂಲವನ್ನು ವೀಕ್ಷಿಸುತ್ತಿರುವಿರಿ</translation>
 <translation id="173080396488393970">ಈ ರೀತಿಯ ಕಾರ್ಡ್‌ಗೆ ಬೆಂಬಲವಿಲ್ಲ</translation>
@@ -221,6 +224,7 @@
 <translation id="1783075131180517613">ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ.</translation>
 <translation id="1787142507584202372">ನಿಮ್ಮ ತೆರೆಯಲಾದ ಟ್ಯಾಬ್‌ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ಅನೇಕ ಕ್ರಿಯೆಗಳು ಲಭ್ಯವಿವೆ. ಅವುಗಳನ್ನು ಒಂದೊಂದಾಗಿ ನೋಡಲು ಟ್ಯಾಬ್ ಒತ್ತಿ</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ಕಾರ್ಡ್‌ಹೋಲ್ಡರ್ ಹೆಸರು</translation>
 <translation id="1807528111851433570">ಪ್ರಾರಂಭಿಕ ಶೀಟ್</translation>
@@ -249,6 +253,7 @@
 <translation id="1919345977826869612">ಜಾಹೀರಾತುಗಳು</translation>
 <translation id="1919367280705858090">ನಿರ್ದಿಷ್ಟ ದೋಷ ಸಂದೇಶಕ್ಕೆ ಸಹಾಯ ಪಡೆಯಿರಿ</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ಸೈಟ್}one{# ಸೈಟ್‌ಗಳು}other{# ಸೈಟ್‌ಗಳು}}</translation>
+<translation id="1926148189358507356">ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಮರುಪ್ರಾರಂಭಿಸಿ ಬಟನ್. Chrome ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="1945968466830820669">ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಗುರುತು ಕಳ್ಳತನಕ್ಕೆ ಒಳಗಾಗಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಇದೀಗ ಬದಲಾಯಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="1947454675006758438">ಮೇಲಿನ ಬಲಭಾಗದಲ್ಲಿ ಸ್ಟೇಪಲ್ ಹಾಕಿ</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವೊಂದು ಪುಟಗಳ URL ಗಳು, ಸಿಸ್ಟಂಗೆ ಸಂಬಂಧಿಸಿದ ಸೀಮಿತ ಮಾಹಿತಿ ಹಾಗೂ ಪುಟದಲ್ಲಿನ ಕೆಲವು ವಿಷಯ<ph name="END_WHITEPAPER_LINK" /> ಮುಂತಾದವುಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ ಎಲ್ಲರಿಗಾಗಿ ವೆಬ್‌ನ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ. <ph name="BEGIN_PRIVACY_PAGE_LINK" />ಗೌಪ್ಯತೆ ನೀತಿ<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +358,7 @@
 <translation id="2367567093518048410">ಹಂತ</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">ಎಂಟರ್‌ಪ್ರೈಸ್ ಡಿಫಾಲ್ಟ್</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, ಹೊಸ Chrome ಅಜ್ಞಾತ ವಿಂಡೋ ತೆರೆಯಲು, ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="2385809941344967209">ನಿಮ್ಮ Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಂದ Chrome ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="2386255080630008482">ಸರ್ವರ್‌ನ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹಿಂಪಡೆಯಲಾಗಿದೆ.</translation>
 <translation id="2392959068659972793">ಯಾವುದೇ ಮೌಲ್ಯ ಹೊಂದಿಸಿಲ್ಲದ ನೀತಿಗಳನ್ನು ತೋರಿಸಿ</translation>
@@ -395,6 +401,7 @@
 <translation id="2586657967955657006">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> ಅವರಿಂದ. ಇದನ್ನು ಮತ್ತು ಇತರ <ph name="OTHER_ARTICLE_COUNT" /> ಸುದ್ದಿಗಳನ್ನು ಓದಿ.</translation>
 <translation id="2587841377698384444">ಡೈರೆಕ್ಟರಿ API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸ್ವಯಂಭರ್ತಿ ಮಾಹಿತಿಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="2595719060046994702">ಈ ಸಾಧನ ಮತ್ತು ಖಾತೆಯನ್ನು ಕಂಪನಿ ಅಥವಾ ಇತರ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿಲ್ಲ.</translation>
 <translation id="2597378329261239068">ಈ ಡಾಕ್ಯುಮೆಂಟ್‌ ಅನ್ನು ಪಾಸ್‌ವರ್ಡ್‌ನಿಂದ ರಕ್ಷಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="2609632851001447353">ಪರಿವರ್ತನೆಗಳು</translation>
@@ -416,6 +423,8 @@
 <translation id="2677748264148917807">ತೊರೆಯಿರಿ</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ಅತ್ಯುತ್ತಮ ಹೊಂದಿಕೆ</translation>
+<translation id="2688738823074468716">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ ಬಟನ್, Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
+<translation id="2688969097326701645">ಹೌದು, ಮುಂದುವರಿಯಿರಿ</translation>
 <translation id="2691924980723297736">ಸುರಕ್ಷತೆಯ ಎಚ್ಚರಿಕೆ</translation>
 <translation id="2699302886720511147">ಸ್ವೀಕೃತ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="2701514975700770343">ಮುಖ ಕೆಳಗೆ</translation>
@@ -507,6 +516,7 @@
 <translation id="3107591622054137333"><ph name="BEGIN_LINK" />ಸುರಕ್ಷಿತ DNS ಕಾನ್ಫಿಗರೇಶನ್‌ ಅನ್ನು ಪರಿಶೀಲಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="3109728660330352905">ಈ ಪುಟ ವೀಕ್ಷಿಸುವ ಅಧಿಕಾರ ನಿಮಗಿಲ್ಲ</translation>
 <translation id="3113284927548439113">ಮೂರನೇ ಶಿಫ್ಟ್</translation>
+<translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="3116158981186517402">ಲ್ಯಾಮಿನೇಟ್ ಮಾಡಿ</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />ಸಂಪರ್ಕ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ‌<ph name="END_LINK" />.</translation>
@@ -730,6 +740,7 @@
 <translation id="4088981014127559358">ಅಂಚು 1 ಚಿತ್ರ Y ಶಿಫ್ಟ್</translation>
 <translation id="4098354747657067197">ವಂಚನೆಯ ಸೈಟ್ ಮುಂದಿದೆ</translation>
 <translation id="4101413244023615925">ಪಠ್ಯ ಮತ್ತು ಗ್ರಾಫಿಕ್</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="4103249731201008433">ಸಾಧನದ ಸರಣಿಯ ಸಂಖ್ಯೆ ಅಮಾನ್ಯವಾಗಿದೆ</translation>
 <translation id="4103763322291513355">ನಿಮ್ಮ ಸಿಸ್ಟಂ ನಿರ್ವಾಹಕರು ವಿಧಿಸಿರುವ ಕಪ್ಪುಪಟ್ಟಿಯ URLಗಳು ಮತ್ತು ಇತರ ನೀತಿಗಳನ್ನು ವೀಕ್ಷಿಸಲು &lt;strong&gt;chrome://policy&lt;/strong&gt; ಗೆ ಭೇಟಿ ನೀಡಿ.</translation>
 <translation id="4110652170750985508">ನಿಮ್ಮ ಪಾವತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
@@ -896,6 +907,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> ಹುಡುಕಾಟ ಸಲಹೆ</translation>
 <translation id="4742407542027196863">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ…</translation>
 <translation id="4744603770635761495">ಪ್ರದರ್ಶನಗೊಳ್ಳುವಂತಹ ಹಾದಿ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="4750917950439032686">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಕಳುಹಿಸಿದಾಗ ಅದು (ಉದಾಹರಣೆಗೆ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಗಳು) ಖಾಸಗಿಯಾಗಿರುತ್ತದೆ.</translation>
 <translation id="4756388243121344051">&amp;ಇತಿಹಾಸ</translation>
 <translation id="4758311279753947758">ಸಂಪರ್ಕ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ</translation>
@@ -937,6 +949,7 @@
 <translation id="4926049483395192435">ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕಾಗಿದೆ.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> ಹೀಗೆ ಹೇಳುತ್ತದೆ</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, ಹುಡುಕುವುದಕ್ಕಾಗಿ ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="4930153903256238152">ದೊಡ್ಡ ಸಾಮರ್ಥ್ಯ</translation>
 <translation id="4943872375798546930">ಯಾವುದೇ ಫಲಿತಾಂಶಗಳಿಲ್ಲ</translation>
 <translation id="4950898438188848926">ಟ್ಯಾಬ್ ಬದಲಿಸುವ ಬಟನ್, ತೆರೆದಿರುವ ಟ್ಯಾಬ್, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> ಗೆ ಬದಲಾಯಿಸಲು Enter ಒತ್ತಿರಿ</translation>
@@ -1013,6 +1026,7 @@
 <translation id="5215116848420601511">Google Pay ಅನ್ನು ಬಳಸುವ ಪಾವತಿ ವಿಧಾನಗಳು ಮತ್ತು ವಿಳಾಸಗಳು</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ಇಮೇಲ್ ಅಗತ್ಯವಿದೆ</translation>
+<translation id="5222994811833658317">ಡೇಟಾ ತೆರವುಗೊಳಿಸಿ ಬಟನ್. Chrome ನ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸದ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="5230733896359313003">ಶಿಪ್ಪಿಂಗ್ ವಿಳಾಸ</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1036,7 +1050,7 @@
 <translation id="5289384342738547352">ಹಲವಾರು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ನಿರ್ವಹಣೆ</translation>
 <translation id="5295292838686006428">ಯಾವುದೋ ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್‌ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಿದೆ. ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತಕ್ಷಣ ಪರಿಶೀಲಿಸಬೇಕೆಂದು Chrome ಶಿಫಾರಸು ಮಾಡಿದೆ.</translation>
 <translation id="5299298092464848405">ನೀತಿಯ ಪಾರ್ಸಿಂಗ್‌ನಲ್ಲಿ ದೋಷ</translation>
-<translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
+<translation id="5300589172476337783">ತೋರಿಸಿ</translation>
 <translation id="5306593769196050043">ಎರಡೂ ಶೀಟ್‌ಗಳು</translation>
 <translation id="5308380583665731573">ಸಂಪರ್ಕಿಸು</translation>
 <translation id="5308689395849655368">ಕ್ರ‍್ಯಾಶ್‌‌ ವರದಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation>
@@ -1053,6 +1067,7 @@
 <translation id="534295439873310000">NFC ಸಾಧನಗಳು</translation>
 <translation id="5344579389779391559">ಈ ಪುಟವು ನಿಮಗೆ ಶುಲ್ಕ ವಿಧಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು</translation>
 <translation id="5355557959165512791">ಸದ್ಯಕ್ಕೆ ನೀವು <ph name="SITE" /> ಗೆ ಭೇಟಿ ನೀಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಏಕೆಂದರೆ ಇದರ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹಿಂಪಡೆದುಕೊಳ್ಳಲಾಗಿದೆ. ನೆಟ್‌ವರ್ಕ್ ದೋಷಗಳು ಮತ್ತು ಆಕ್ರಮಣಗಳು ತಾತ್ಕಾಲಿಕವಾಗಿರುತ್ತವೆ, ಹೀಗಾಗಿ ಈ ಪುಟವು ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು.</translation>
+<translation id="5361930801096459163">Search ಬಟನ್. <ph name="KEYWORD_SUFFIX" /> ಅನ್ನು ಹುಡುಕಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="536296301121032821">ನೀತಿಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="5371425731340848620">ಕಾರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="5377026284221673050">"ನಿಮ್ಮ ಗಡಿಯಾರ ಹಿಂದಿದೆ" ಅಥವಾ "ನಿಮ್ಮ ಗಡಿಯಾರ ಮುಂದಿದೆ" ಅಥವಾ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1277,6 +1292,7 @@
 <translation id="6302269476990306341">Chrome ನಲ್ಲಿನ Google ಅಸಿಸ್ಟೆಂಟ್ ನಿಲ್ಲುತ್ತಿದೆ</translation>
 <translation id="6305205051461490394"><ph name="URL" /> ತಲುಪಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="6312113039770857350">ವೆಬ್‌ಪುಟ ಲಭ್ಯವಿಲ್ಲ</translation>
+<translation id="6315224405718249523">ಪುಟ ಅನುವಾದಿಸಿ ಬಟನ್. ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="6321917430147971392">ನಿಮ್ಮ DNS ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="6322182122604171028">Windows Hello ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="6328639280570009161">ನೆಟ್‌ವರ್ಕ್ ಮುನ್ಸೂಚನೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ</translation>
@@ -1331,6 +1347,7 @@
 <translation id="6547208576736763147">ಎಡಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡಿ</translation>
 <translation id="6554795675067793129">ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ನಿರ್ವಹಿಸುತ್ತಿದೆ.</translation>
 <translation id="6556866813142980365">ಪುನಃ ಮಾಡು</translation>
+<translation id="6566840325635607048">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ ಬಟನ್. Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸ್ವಯಂಭರ್ತಿ ಮಾಹಿತಿಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="6569060085658103619">ನೀವು ವಿಸ್ತರಣೆ ಪುಟವನ್ನು ವೀಕ್ಷಿಸುತ್ತಿರುವಿರಿ</translation>
 <translation id="6573200754375280815">ಬಲಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡಿ</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1472,6 +1489,7 @@
 <translation id="7210863904660874423"><ph name="HOST_NAME" /> ಭದ್ರತೆ ಮಾನದಂಡಗಳನ್ನು ಅನುಸರಿಸುತ್ತಿಲ್ಲ.</translation>
 <translation id="7210993021468939304">ಕಂಟೇನರ್‌ನಲ್ಲಿ Linux ಚಟುವಟಿಕೆ ಮತ್ತು ಕಂಟೇನರ್‌ನಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಬಹುದಾದ ಮತ್ತು ರನ್ ಮಾಡಬಹುದಾದ Linux ಆ್ಯಪ್‌ಗಳು</translation>
 <translation id="721197778055552897">ಈ ತೊಂದರೆಯ ಬಗ್ಗೆ <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" />.</translation>
+<translation id="7214062855724067749">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾದ ಫಾಂಟ್‌ಗಳನ್ನು ಬಳಸಲು; ಇದರಿಂದ ನೀವು ಸುಧಾರಿತ ಟೈಪೋಗ್ರಾಫಿಯನ್ನು ರಚಿಸಬಹುದು</translation>
 <translation id="7217745192097460130">ನಿಮ್ಮ ಖರೀದಿಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಪೂರ್ಣಗೊಳಿಸಲು ಟಚ್ ID ಬಳಸಿ?</translation>
 <translation id="7219179957768738017">ಸಂಪರ್ಕವು <ph name="SSL_VERSION" /> ಅನ್ನು ಬಳಸುತ್ತದೆ.</translation>
 <translation id="7220786058474068424">ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
@@ -1569,6 +1587,7 @@
 <translation id="7549584377607005141">ಈ ವೆಬ್‌ಪುಟವು ಸರಿಯಾಗಿ ಪ್ರದರ್ಶನಗೊಳ್ಳಲು ಈ ಮೊದಲು ನೀವು ನಮೂದಿಸಿದ ಡೇಟಾದ ಅಗತ್ಯವಿದೆ. ನೀವು ಈ ಡೇಟಾವನ್ನು ಮತ್ತೆ ಕಳುಹಿಸಬಹುದು, ಆದರೆ ಹಾಗೆ ಮಾಡುವುದರಿಂದ ಈ ಪುಟವು ಈ ಮೊದಲು ಪೂರೈಸಿದ ಯಾವುದೇ ಕ್ರಿಯೆಯನ್ನು ನೀವು ಪುನರಾವರ್ತಿಸುತ್ತೀರಿ.</translation>
 <translation id="7550637293666041147">ನಿಮ್ಮ ಸಾಧನದ ಬಳಕೆದಾರರ ಹೆಸರು ಮತ್ತು Chrome ಬಳಕೆದಾರರ ಹೆಸರು</translation>
 <translation id="7552846755917812628">ಕೆಳಗಿನ ಸಲಹೆಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ನ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಲು, ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="7554791636758816595">ಹೊಸ ಟ್ಯಾಬ್</translation>
 <translation id="7564049878696755256">ನಿಮ್ಮ <ph name="ORG_NAME" /> ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಗುರುತು ಕಳ್ಳತನಕ್ಕೆ ಒಳಗಾಗಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಇದೀಗ ಬದಲಾಯಿಸುವಂತೆ Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="7567204685887185387">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವನ್ನು ವಂಚನೆಯಿಂದ ನೀಡಿರಬಹುದು. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
@@ -1735,6 +1754,7 @@
 <translation id="8225771182978767009">ಈ ಕಂಪ್ಯೂಟರ್ ಹೊಂದಿಸಿರುವ ವ್ಯಕ್ತಿಯು ಈ ಸೈಟ್ ನಿರ್ಬಂಧಿಸಲು ಆಯ್ಕೆಮಾಡಿದ್ದಾರೆ.</translation>
 <translation id="8228419419708659934">ಎರಡು ಪುಟ ವೀಕ್ಷಣೆ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ಟ್ಯಾಬ್ ಒತ್ತಿ, ನಂತರ ಎಂಟರ್ ಒತ್ತಿ</translation>
 <translation id="8232343881378637145">ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್ ತಾಪಮಾನ</translation>
 <translation id="8238581221633243064">ಪುಟವನ್ನು ಹೊಸ ಅದೃಶ್ಯ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="8241707690549784388">ನೀವು ಎದುರು ನೋಡುತ್ತಿರುವ ಪುಟ ನೀವು ನಮೂದಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿದೆ. ಆ ಪುಟಕ್ಕೆ ಹಿಂದಿರುಗುವುದರಿಂದ ನೀವು ಮಾಡಿದ ಯಾವುದೇ ಕ್ರಿಯೆ ಪುನರಾವರ್ತಿಸುವಂತೆ ಮಾಡುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 9540ddfb..c8f25c0 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">명령줄 변형</translation>
 <translation id="129553762522093515">최근에 닫은 탭</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />쿠키 삭제해 보기<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">시크릿 창 열기 버튼, Enter를 눌러 새 Chrome 시크릿 창 열기</translation>
 <translation id="1301324364792935241">보안 DNS 설정 확인</translation>
 <translation id="1307966114820526988">지원 중단 기능</translation>
 <translation id="131405271941274527">NFC 기기에 휴대전화를 갖다 댈 때 <ph name="URL" />에서 정보를 보내고 받으려고 합니다.</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">동기화 암호를 업데이트하세요.</translation>
 <translation id="1787142507584202372">열린 탭이 여기에 표시됩니다.</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, 여러 작업 이용 가능, Tab을 눌러 작업 둘러보기</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">카드 소유자 이름</translation>
 <translation id="1807528111851433570">시작 시트</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">광고</translation>
 <translation id="1919367280705858090">특정 오류 메시지에 관한 도움말 보기</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{없음}=1{사이트 1개}other{사이트 #개}}</translation>
+<translation id="1926148189358507356">업데이트를 위해 다시 시작 버튼, Enter를 눌러 Chrome 업데이트</translation>
 <translation id="1945968466830820669">조직의 계정에 액세스할 수 없게 되거나 신원 도용이 발생할 수도 있습니다. 지금 비밀번호를 변경하는 것이 좋습니다.</translation>
 <translation id="1947454675006758438">오른쪽 상단 스테이플</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />방문한 일부 페이지의 URL, 제한된 시스템 정보, 일부 페이지 콘텐츠<ph name="END_WHITEPAPER_LINK" />를 Google에 전송하여 모든 웹 사용자를 위해 보안을 강화하는 데 참여해 주세요. <ph name="BEGIN_PRIVACY_PAGE_LINK" />개인정보처리방침<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">수준</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">엔터프라이즈 기본값</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 새 Chrome 시크릿 창 열기</translation>
 <translation id="2385809941344967209">Chrome 설정에서 Chrome을 업데이트하세요.</translation>
 <translation id="2386255080630008482">서버 인증서가 폐기되었습니다.</translation>
 <translation id="2392959068659972793">값이 설정되지 않은 정책 표시</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">클립보드</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" />에서 제공한 기사입니다. <ph name="OTHER_ARTICLE_COUNT" />개의 다른 뉴스도 읽어 보세요.</translation>
 <translation id="2587841377698384444">Directory API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Chrome 설정에서 신용카드 자동 완성 정보 업데이트</translation>
 <translation id="2595719060046994702">회사 또는 다른 조직에서 관리하지 않는 기기 및 계정입니다.</translation>
 <translation id="2597378329261239068">문서가 비밀번호로 보호되고 있습니다. 비밀번호를 입력하세요.</translation>
 <translation id="2609632851001447353">유사 버전</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">나가기</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">자동 맞춤</translation>
+<translation id="2688738823074468716">비밀번호 관리 버튼, Enter를 눌러 Chrome 설정에서 비밀번호 관리</translation>
 <translation id="2688969097326701645">예, 계속 진행합니다.</translation>
 <translation id="2691924980723297736">안전 경고</translation>
 <translation id="2699302886720511147">사용할 수 있는 카드</translation>
@@ -735,6 +741,7 @@
 <translation id="4088981014127559358">첫 번째 면 이미지 Y 시프트</translation>
 <translation id="4098354747657067197">사기성 사이트 주의</translation>
 <translation id="4101413244023615925">텍스트 및 그래픽</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Chrome 설정에서 비밀번호 관리</translation>
 <translation id="4103249731201008433">기기 일련번호가 잘못됨</translation>
 <translation id="4103763322291513355">차단된 URL 및 시스템 관리자가 설정한 기타 정책 목록을 확인하려면 &lt;strong&gt;chrome://policy&lt;/strong&gt;를 방문하세요.</translation>
 <translation id="4110652170750985508">결제 검토</translation>
@@ -901,6 +908,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> 추천 검색어</translation>
 <translation id="4742407542027196863">비밀번호 관리...</translation>
 <translation id="4744603770635761495">실행 가능 경로</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Chrome 업데이트</translation>
 <translation id="4750917950439032686">비밀번호나 신용카드 번호 등의 정보는 비공개 상태로 이 사이트에 전송됩니다.</translation>
 <translation id="4756388243121344051">방문 기록(&amp;H)</translation>
 <translation id="4758311279753947758">연락처 정보 추가</translation>
@@ -942,6 +950,7 @@
 <translation id="4926049483395192435">지정해야 합니다.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> 내용:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 검색</translation>
 <translation id="4930153903256238152">대용량</translation>
 <translation id="4943872375798546930">검색결과가 없습니다.</translation>
 <translation id="4950898438188848926">탭 전환 버튼, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> 열린 탭으로 전환하려면 Enter를 누르세요</translation>
@@ -1018,6 +1027,7 @@
 <translation id="5215116848420601511">Google Pay에 사용되는 결제 수단 및 주소</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">이메일은 필수입니다.</translation>
+<translation id="5222994811833658317">데이터 삭제 버튼, Enter를 눌러 Chrome의 방문 기록 데이터 삭제</translation>
 <translation id="5230733896359313003">배송지 주소</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1058,6 +1068,7 @@
 <translation id="534295439873310000">NFC 기기</translation>
 <translation id="5344579389779391559">이 페이지에서 금액을 청구할 수 있습니다.</translation>
 <translation id="5355557959165512791">인증서가 취소되었기 때문에 현재 <ph name="SITE" />에 방문할 수 없습니다. 네트워크 오류와 공격은 대부분 일시적이므로 나중에 이 페이지가 정상적으로 작동할 수 있습니다.</translation>
+<translation id="5361930801096459163">검색 버튼, Enter를 눌러 <ph name="KEYWORD_SUFFIX" /> 검색</translation>
 <translation id="536296301121032821">정책 설정 저장 실패</translation>
 <translation id="5371425731340848620">카드 업데이트</translation>
 <translation id="5377026284221673050">'시간이 너무 먼 과거로 설정되어 있습니다.', '시간이 너무 먼 미래로 설정되어 있습니다.', 또는  '&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;'</translation>
@@ -1283,6 +1294,7 @@
 <translation id="6302269476990306341">Chrome의 Google 어시스턴트 중지하는 중</translation>
 <translation id="6305205051461490394"><ph name="URL" />에 연결할 수 없습니다.</translation>
 <translation id="6312113039770857350">웹페이지를 사용할 수 없음</translation>
+<translation id="6315224405718249523">페이지 번역 버튼, Enter를 눌러 이 페이지 번역</translation>
 <translation id="6321917430147971392">DNS 설정 확인</translation>
 <translation id="6322182122604171028">Windows Hello를 사용할 수 없음</translation>
 <translation id="6328639280570009161">네트워크 예측을 사용 중지해 보세요.</translation>
@@ -1337,6 +1349,7 @@
 <translation id="6547208576736763147">왼쪽 2공 펀칭</translation>
 <translation id="6554795675067793129">사용자의 계정은 <ph name="ENROLLMENT_DOMAIN" />에서 관리합니다.</translation>
 <translation id="6556866813142980365">다시실행</translation>
+<translation id="6566840325635607048">신용카드 업데이트 버튼, Enter를 눌러 Chrome 설정에서 신용카드 자동 완성 정보 업데이트</translation>
 <translation id="6569060085658103619">확장 프로그램 페이지를 보는 중</translation>
 <translation id="6573200754375280815">오른쪽 2공 펀칭</translation>
 <translation id="6578796323535178455">C2(봉투)</translation>
@@ -1576,6 +1589,7 @@
 <translation id="7549584377607005141">이 웹페이지를 제대로 표시하려면 이전에 입력한 데이터가 필요합니다. 이 데이터를 다시 보낼 수 있지만 이 경우 해당 페이지에서 이전에 수행한 작업이 반복됩니다.</translation>
 <translation id="7550637293666041147">기기 사용자 이름 및 Chrome 사용자 이름</translation>
 <translation id="7552846755917812628">다음 도움말을 확인해 보세요.</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Chrome의 방문 기록 데이터 삭제</translation>
 <translation id="7554791636758816595">새 탭</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> 계정에 액세스할 수 없게 되거나 신원 도용이 발생할 수도 있습니다. 따라서 지금 비밀번호를 변경하는 것이 좋습니다.</translation>
 <translation id="7567204685887185387">이 서버가 <ph name="DOMAIN" />임을 입증할 수 없으며 서버의 보안 인증서가 부정한 방식으로 발행되었을 수 있습니다. 서버를 잘못 설정했거나 불법 사용자가 연결을 가로채고 있기 때문일 수 있습니다.</translation>
@@ -1742,6 +1756,7 @@
 <translation id="8225771182978767009">컴퓨터를 설정한 사용자가 이 사이트를 차단했습니다.</translation>
 <translation id="8228419419708659934">두 페이지씩 보기</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 이 페이지 번역</translation>
 <translation id="8232343881378637145">플랫폼 온도</translation>
 <translation id="8238581221633243064">새 시크릿 창에서 페이지 열기</translation>
 <translation id="8241707690549784388">찾고 있는 페이지에서 사용자가 입력한 정보를 사용했습니다. 해당 페이지로 돌아가면 기존 작업을 반복할 수 있습니다. 계속하시겠습니까?</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index ec5ca14..e5d4e25c 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Буйрук сабынын варианттары</translation>
 <translation id="129553762522093515">Жакында жабылган</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Кукилериңизди тазалап көрүңүз<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Жашыруун терезени ачуу баскычы. Chrome'до жаңы Жашыруун терезени ачуу үчүн, Enter баскычын басыңыз</translation>
 <translation id="1301324364792935241">Коопсуз DNS жөндөөлөрүңүздү текшериңиз</translation>
 <translation id="1307966114820526988">Жоюлган функциялар</translation>
 <translation id="131405271941274527">NFC түзмөгүндө телефонуңузду таптаганда <ph name="URL" /> маалыматты жөнөтүүгө жана алууга уруксат сурап жатат</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Шайкештештирүү купуя сөз айкашыңызды жаңыртыңыз.</translation>
 <translation id="1787142507584202372">Ачылган өтмөктөр бул жерден көрүнөт</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, бир нече аракет жеткиликтүү, Tab баскычын басып, аларды карап чыгыңыз</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Карта ээсинин аты-жөнү</translation>
 <translation id="1807528111851433570">Баштоо барагы</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Жарнамалар</translation>
 <translation id="1919367280705858090">Белгилүү бир каталар боюнча жардам алуу</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Бирөө да жок}=1{1 сайт}other{# сайт}}</translation>
+<translation id="1926148189358507356">Жаңыртуу үчүн кайра иштетүү баскычы, Chrome'ду жаңыртуу үчүн Enter баскычын басыңыз</translation>
 <translation id="1945968466830820669">Кимдир бирөө сиздин жеке дайындарыңызга же уюмуңуздун аккаунтуна кирип алган окшойт. Chromium сырсөзүңүздү азыр өзгөртүүнү сунуштайт.</translation>
 <translation id="1947454675006758438">Жогорку оң жагын илмек менен бекитүү</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />Баш баккан айрым сайттарыңыздын URL'дерин, тутум тууралуу чектелген маалыматты жана барактагы айрым мазмунду<ph name="END_WHITEPAPER_LINK" /> Google'га жөнөтүү менен Интернеттеги коопсуздукту баары үчүн күчөтүүгө жардам бериңиз. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Купуялык саясаты<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Деңгээли</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Демейки ишкана</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome'до жаңы Жашыруун терезени ачуу үчүн, Tab, андан соң Enter баскычын басыңыз</translation>
 <translation id="2385809941344967209">Chrome'дун жөндөөлөрүнө өтүп, Chrome'ду жаңыртыңыз</translation>
 <translation id="2386255080630008482">Сервер тастыктамасы жокко чыгарылды.</translation>
 <translation id="2392959068659972793">Мааниси коюлбаган саясаттарды көрсөтүү</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Алмашуу буфери</translation>
 <translation id="2587730715158995865">Булагы: <ph name="ARTICLE_PUBLISHER" />. Башка макалалар дагы бар (<ph name="OTHER_ARTICLE_COUNT" />).</translation>
 <translation id="2587841377698384444">Каталогдун API'синин ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome'дун жөндөөлөрүнө өтүп, автотолтурууда колдонулган насыя картасынын маалыматын жаңыртуу үчүн, Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="2595719060046994702">Бул түзмөк менен аккаунт компания же башка уюм тарабынан башкарылган жок.</translation>
 <translation id="2597378329261239068">Бул документ сырсөз менен корголгон. Сырсөздү киргизиңиз.</translation>
 <translation id="2609632851001447353">Варианттар</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Чыгуу</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Туура формат</translation>
+<translation id="2688738823074468716">Сырсөздөрдү башкаруу баскычы. Chrome'дун жөндөөлөрүнө өтүп, сырсөздөрдү башкаруу үчүн, Enter баскычын басыңыз</translation>
 <translation id="2688969097326701645">Ооба, уланта берели</translation>
 <translation id="2691924980723297736">Коопсуздук эскертүүсү</translation>
 <translation id="2699302886720511147">Кабыл алынган карточкалар</translation>
@@ -741,6 +747,7 @@
 <translation id="4088981014127559358">1-тараптын Y сүрөтүн жылдыруу</translation>
 <translation id="4098354747657067197">Алдыда жалган сайт</translation>
 <translation id="4101413244023615925">Текст жана графика</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome'дун жөндөөлөрүнө өтүп, сырсөздөрдү башкаруу үчүн, Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="4103249731201008433">Түзмөктүн сериялык номери жараксыз</translation>
 <translation id="4103763322291513355">Кара тизмедеги URL'дерди жана тутум администраторуңуз ишке киргизген саясаттарды көрүү үчүн, &lt;strong&gt;chrome://policy&lt;/strong&gt; дарегине кириңиз.</translation>
 <translation id="4110652170750985508">Төлөмүңүздү карап чыгыңыз</translation>
@@ -911,6 +918,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> издөө сунушу</translation>
 <translation id="4742407542027196863">Сырсөздөрдү башкаруу…</translation>
 <translation id="4744603770635761495">Аткарылуучу жол</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome'ду жаңыртуу үчүн Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="4750917950439032686">Бул сайтка жөнөтүлүп жаткан маалымат (мисалы, сырсөздөр же насыя карточкасынын номерлери) купуя болуп саналат.</translation>
 <translation id="4756388243121344051">&amp;Таржымал</translation>
 <translation id="4758311279753947758">Байланыш маалыматын кошуу</translation>
@@ -952,6 +960,7 @@
 <translation id="4926049483395192435">Белгилениши керек.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> мындай дейт:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />. Издөө үчүн Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="4930153903256238152">Сыйымдуулугу чоң</translation>
 <translation id="4943872375798546930">Натыйжалар жок</translation>
 <translation id="4950898438188848926">Өтмөктү которуштуруу баскычы. Ачык өтмөккө өтүү үчүн, "Enter" баскычын басыңыз, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1028,6 +1037,7 @@
 <translation id="5215116848420601511">Google Pay'ди колдонгон төлөм ыкмалары жана даректер</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Электрондук почта дареги талап кылынат</translation>
+<translation id="5222994811833658317">Маалыматты өчүрүү баскычы. Chrome'до көрүлгөн вебсайттар тууралуу маалыматты өчүрүү үчүн, Enter баскычын басыңыз</translation>
 <translation id="5230733896359313003">Жөнөтүү дареги</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1068,6 +1078,7 @@
 <translation id="534295439873310000">NFC түзмөктөрү</translation>
 <translation id="5344579389779391559">Бул баракта акы алынышы мүмкүн</translation>
 <translation id="5355557959165512791">Тастыктамасы жоюлгандыктан, <ph name="SITE" /> сайтына азыр кире албайсыз. Адатта тармактагы каталар жана чабуулдар убактылуу көрүнүш болгондуктан, бул баракча кийинчерээк иштеп калышы мүмкүн.</translation>
+<translation id="5361930801096459163">Издөө баскычы. <ph name="KEYWORD_SUFFIX" /> издөө үчүн, Enter баскычын басыңыз</translation>
 <translation id="536296301121032821">Саясат жөндөөлөрү сакталбай калды</translation>
 <translation id="5371425731340848620">Картаны жаңыртуу</translation>
 <translation id="5377026284221673050">"Саатыңыз артта" же "Саатыңыз алдыда" же "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1293,6 +1304,7 @@
 <translation id="6302269476990306341">Chrome'догу Google Жардамчы токтотулууда</translation>
 <translation id="6305205051461490394"><ph name="URL" /> сайты жеткиликсиз.</translation>
 <translation id="6312113039770857350">Веб-баракча жеткиликтүү эмес</translation>
+<translation id="6315224405718249523">Баракты которуу баскычы. Бул баракты которуу үчүн, Enter баскычын басыңыз</translation>
 <translation id="6321917430147971392">DNS жөндөөлөрүңүздү текшериңиз</translation>
 <translation id="6322182122604171028">Windows Hello'ну колдонуу мүмкүн эмес</translation>
 <translation id="6328639280570009161">Тармакты алдын-ала божомолдоо мүмкүнчүлүгүн өчүрүп көрүңүз</translation>
@@ -1347,6 +1359,7 @@
 <translation id="6547208576736763147">Муштум менен сол жакка эки жолу уруу</translation>
 <translation id="6554795675067793129">Аккаунтуңуз <ph name="ENROLLMENT_DOMAIN" /> тарабынан башкарылууда.</translation>
 <translation id="6556866813142980365">Кайталоо</translation>
+<translation id="6566840325635607048">Насыя картасын жаңыртуу баскычы. Chrome'дун жөндөөлөрүнө өтүп, автотолтурууда колдонулган насыя картасынын маалыматын жаңыртуу үчүн, Enter баскычын басыңыз</translation>
 <translation id="6569060085658103619">Кеңейтүү баракчасын карап жатасыз</translation>
 <translation id="6573200754375280815">Оң жагын эки жолу тешүү</translation>
 <translation id="6578796323535178455">C2 (Конверт)</translation>
@@ -1587,6 +1600,7 @@
 <translation id="7549584377607005141">Бул веб-баракча туура ачылышы үчүн мурун киргизилген дайындар талап кылынат. Дайындарды кайра жиберсеңиз болот, бирок анда бул баракчада буга чейин жасалган аракеттерди кайталап каласыз.</translation>
 <translation id="7550637293666041147">Түзмөктөгү колдонуучу атыңыз жана Chrome'догу колдонуучу атыңыз</translation>
 <translation id="7552846755917812628">Төмөнкү кеңештерди пайдаланып көрүңүз:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome'до көрүлгөн вебсайттар тууралуу маалыматты өчүрүү үчүн, Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="7554791636758816595">Жаңы өтмөк</translation>
 <translation id="7564049878696755256">Кимдир бирөө сиздин жеке дайындарыңызга же <ph name="ORG_NAME" /> аккаунтуңузга кирип алган окшойт. Chrome сырсөзүңүздү азыр өзгөртүүнү сунуштайт.</translation>
 <translation id="7567204685887185387">Бул сервер <ph name="DOMAIN" /> экендигин далилдей алган жок; себеби анын коопсуздук тастыктамасы алдамчылык жол менен чыгарылган окшойт. Мындай көйгөй туура эмес конфигурация менен шартталышы мүмкүн же туташууңузга чабуулчу кийлигишип жатат.</translation>
@@ -1753,6 +1767,7 @@
 <translation id="8225771182978767009">Бул компьютерди жөндөгөн адам ушул сайтты бөгөттөп салган.</translation>
 <translation id="8228419419708659934">Эки барак көрүнүшү</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Бул баракты которуу үчүн Tab, андан соң Enter баскычтарын басыңыз</translation>
 <translation id="8232343881378637145">Платформанын температурасы</translation>
 <translation id="8238581221633243064">Баракчаны жаңы жашыруун өтмөктө ачуу</translation>
 <translation id="8241707690549784388">Изделип жаткан бет сиз жазган маалыматты колдонгон. Ал бетке кайтып барсаңыз, жасалган аракеттердин бардыгы кайталанышы мүмкүн. Улантасызбы?</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index ade89cde..0b3aabe8 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">ການປ່ຽນແປງແຖວຄຳສັ່ງ</translation>
 <translation id="129553762522093515">ປິດ​ບໍ່​ດົນ​ມາ​ນີ້</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ລອງລຶບລ້າງຄຸກກີ້ຂອງທ່ານ<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ປຸ່ມເປີດໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ, ກົດ Enter ເພື່ອເປີດໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່ໃນ Chrome</translation>
 <translation id="1301324364792935241">ກວດເບິ່ງການຕັ້ງຄ່າ DNS ທີ່ປອດໄພຂອງທ່ານ</translation>
 <translation id="1307966114820526988">ຄຸນສົມບັດທີ່ເຊົາຮອງຮັບແລ້ວ</translation>
 <translation id="131405271941274527"><ph name="URL" /> ຕ້ອງການສົ່ງ ແລະ ຮັບຂໍ້ມູນເມື່ອທ່ານແຕະໂທລະສັບຂອງທ່ານໃນອຸປະກອນ NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">ກະລຸນາອັບເດດວະລີຜ່ານຊິງຄ໌ຂອງທ່ານ.</translation>
 <translation id="1787142507584202372">ແຖບທີ່ເປີດຢູ່ຂອງທ່ານປາກົດຢູ່ບ່ອນນີ້</translation>
 <translation id="1791429645902722292">ລັອກ​ອັດ​ສະ​ລິ​ຍະ Google</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ມີຫຼາຍຄຳສັ່ງພ້ອມໃຫ້ນຳໃຊ້, ກົດ Tab ເພື່ອເບິ່ງພວກມັນ</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ຊື່ຜູ້ຖືບັດ</translation>
 <translation id="1807528111851433570">ແຜ່ນວຽກເລີ່ມຕົ້ນ</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">ໂຄສະນາ</translation>
 <translation id="1919367280705858090">ຂໍຄວາມຊ່ວຍເຫຼືອເລື່ອງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດສະເພາະ</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ບໍ່ມີ}=1{1 ເວັບໄຊ}other{# ເວັບໄຊ}}</translation>
+<translation id="1926148189358507356">ປຸ່ມເລີ່ມເປີດໃຊ້ໃໝ່ເພື່ອອັບເດດ, ກົດ Enter ເພື່ອອັບເດດ Chrome</translation>
 <translation id="1945968466830820669">ທ່ານອາດຈະສູນເສຍການເຂົ້າເຖິງບັນຊີຂອງອົງການຂອງທ່ານ ຫຼື ປະສົບກັບການລັກໃຊ້ຕົວຕົນ.</translation>
 <translation id="1947454675006758438">ໜີບກະຫຼັບເຟີຢູ່ເທິງສຸດເບື້ອງຂວາ</translation>
 <translation id="1959001866257244765">ຊ່ວຍປັບປຸງຄວາມປອດໄພຂອງເວັບໄຊສຳລັບທຸກຄົນໂດຍການສົ່ງ <ph name="BEGIN_WHITEPAPER_LINK" />URL ຂອງບາງໜ້າເວັບທີ່ທ່ານເຂົ້າເບິ່ງ, ຂໍ້ມູນລະບົບແບບຈຳກັດ ແລະ ບາງເນື້ອຫາໃນໜ້າເວັບ<ph name="END_WHITEPAPER_LINK" /> ໄປໃຫ້ Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">ລະ​ດັບ</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">ຄ່າເລີ່ມຕົ້ນ​ວິ​ສາ​ຫະ​ກິດ</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອເປີດໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່ໃນ Chrome</translation>
 <translation id="2385809941344967209">ອັບເດດ Chrome ຈາກການຕັ້ງຄ່າ Chrome ຂອງທ່ານ</translation>
 <translation id="2386255080630008482">ໃບຢັ້ງຢືນຂອງເຊີບເວີຖືກຖອນຄືນແລ້ວ.</translation>
 <translation id="2392959068659972793">ສະແດງນະ​ໂຍ​ບາຍໂດຍບໍ່ມີຄ່າຕັ້ງໄວ້​</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">ຄລິບບອດ</translation>
 <translation id="2587730715158995865">ຈາກ <ph name="ARTICLE_PUBLISHER" />. ອ່ານຂ່າວນີ້ ແລະ ອີກ <ph name="OTHER_ARTICLE_COUNT" /> ຂ່າວອື່ນ.</translation>
 <translation id="2587841377698384444">ລະ​ຫັດ API ຂອງໄດເຣັກທໍຣີ:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອອັບເດດຂໍ້ມູນບັດເຄຣດິດສຳລັບການຕື່ມຂໍ້ມູນອັດຕະໂນມັດໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="2595719060046994702">ອຸປະກອນ ແລະ ບັນຊີນີ້ບໍ່ຖືກຈັດການໂດຍບໍລິສັດ ຫຼື ອົງການຈັດຕັ້ງອື່ນ.</translation>
 <translation id="2597378329261239068">ເອກະສານນີ້ມີລະຫັດຜ່ານປ້ອງກັນໄວ້. ກະລຸນາໃສ່ລະຫັດຜ່ານ.</translation>
 <translation id="2609632851001447353">ການ​ປ່ຽນ​ແປງ</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">ອອກ​ໄປ</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ປັບໃຫ້ພໍດີ</translation>
+<translation id="2688738823074468716">ຈັດການປຸ່ມລະຫັດຜ່ານ, ກົດ Enter ເພື່ອຈັດການລະຫັດຜ່ານໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="2688969097326701645">ຕົກລົງ, ສືບຕໍ່</translation>
 <translation id="2691924980723297736">ຄຳເຕືອນຄວາມປອດໄພ</translation>
 <translation id="2699302886720511147">ບັດທີ່ຍອມຮັບ</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">ປ່ຽນຕຳແໜ່ງຮູບພາບດ້ານ 1 ຕາມແກນ Y</translation>
 <translation id="4098354747657067197">ເວັບ​ໄຊ​ທ໌​ຫຼອກ​ລວງ​ຢູ່​ຂ້າງ​ໜ້າ</translation>
 <translation id="4101413244023615925">ຂໍ້ຄວາມ ແລະ ກຣາຟິກ</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອຈັດການລະຫັດຜ່ານໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="4103249731201008433">ເລກລໍາດັບອຸປະກອນໃຊ້ບໍ່ໄດ້</translation>
 <translation id="4103763322291513355">ເຂົ້າໄປເບິ່ງ &lt;strong&gt;chrome://policy&lt;/strong&gt; ເພື່ອເບິ່ງລາຍຊື່ຂອງ URLs ທີ່ຖືກເປັນບັນຊີດໍາ ແລະນະໂຍບາຍອື່ນທີຜູ້ຄວບຄຸມລະບົບຂອງທ່ານບັງຄັບໃຊ້.</translation>
 <translation id="4110652170750985508">ກວດເບິ່ງການຈ່າຍເງິນຂອງທ່ານ</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">ການແນະນຳການຊອກຫາ <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">ຈັດການລະຫັດຜ່ານ...</translation>
 <translation id="4744603770635761495">ຊ່ອງ​ທາງ​ທີ່ປະ​ຕິ​ບັດໄດ້</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອອັບເດດ Chrome</translation>
 <translation id="4750917950439032686">ຂໍ້ມູນຂອງທ່ານ (ຕົວຢ່າງ: ລະຫັດຜ່ານ ຫຼື ເລກບັດເຄຣດິດ) ແມ່ນເປັນຄວາມລັບເມື່ອມັນຖືກສົ່ງຫາເວັບໄຊນີ້.</translation>
 <translation id="4756388243121344051">ປະຫວັດ</translation>
 <translation id="4758311279753947758">ເພີ່ມຂໍ້ມູນຕິດຕໍ່</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">ຕ້ອງ​ໄດ້​ຮັບ​ການລະບຸ.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> ບອກວ່າ</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອຊອກຫາ</translation>
 <translation id="4930153903256238152">ຄວາມຈຸຫຼາຍ</translation>
 <translation id="4943872375798546930">ບໍ່​ມີ​ຜົນ​ໄດ້​ຮັບ</translation>
 <translation id="4950898438188848926">ແຕະປຸ່ມສະຫຼັບ, ກົດ Enter ເພື່ອປ່ຽນເປັນແຖບທີ່ເປີດຢູ່, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">ວິທີການຈ່າຍເງິນ ແລະ ທີ່ຢູ່ທີ່ໃຊ້ Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ຈຳເປັນຕ້ອງມີອີເມວ</translation>
+<translation id="5222994811833658317">ປຸ່ມລຶບລ້າງຂໍ້ມູນ, ກົດ Enter ເພື່ອລຶບລ້າງຂໍ້ມູນປະຫວັດການທ່ອງເວັບໃນ Chrome</translation>
 <translation id="5230733896359313003">ທີ່ຢູ່ຈັດສົ່ງ</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">ອຸປະກອນ NFC</translation>
 <translation id="5344579389779391559">ໜ້ານີ້ອາດຈະພະຍາຍາມຮຽກເກັບເງິນນຳທ່ານ</translation>
 <translation id="5355557959165512791">ທ່ານບໍ່ສາມາດເຂົ້າເບິ່ງ <ph name="SITE" /> ໄດ້ໃນຂະນະນີ້ ເພາະວ່າໃບຢັ້ງຢືນຂອງມັນໄດ້ຖືກຖອນຄືນແລ້ວ. ໂດຍປົກກະຕິແລ້ວ ຂໍ້ຜິດພາດ ແລະ ການໂຈມຕີທາງເຄືອຂ່າຍແມ່ນຊົ່ວຄາວເທົ່ານັ້ນ, ສະນັ້ນ ໜ້ານີ້ອາດຈະໃຊ້ໄດ້ໃນພາຍຫຼັງ.</translation>
+<translation id="5361930801096459163">ປຸ່ມຊອກຫາ, ກົດ Enter ເພື່ອຊອກຫາ <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">ເກັບຮັກສາການຕັ້ງຄ່ານະໂຍບາຍບໍ່ສໍາເລັດ</translation>
 <translation id="5371425731340848620">ອັບເດດບັດ</translation>
 <translation id="5377026284221673050">"ໂມງຂອງທ່ານຊ້າກວ່າ" ຫຼື "ໂມງຂອງທ່ານໄວກວ່າ" ຫຼື "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">ກຳລັງຢຸດຜູ້ຊ່ວຍ Google ໃນ Chrome</translation>
 <translation id="6305205051461490394"><ph name="URL" /> ບໍ່ສາມາດເຂົ້າເຖິງໄດ້</translation>
 <translation id="6312113039770857350">ບໍ່​ມີ​ໜ້າ​ເວັບ​ຢູ່</translation>
+<translation id="6315224405718249523">ປຸ່ມແປໜ້າ, ກົດ Enter ເພື່ອແປໜ້ານີ້</translation>
 <translation id="6321917430147971392">ກວດເບິ່ງການຕັ້ງຄ່າ DNS ຂອງ​ທ່ານ</translation>
 <translation id="6322182122604171028">ບໍ່ສາມາດໃຊ້ Windows Hello ໄດ້</translation>
 <translation id="6328639280570009161">ລອງປິດໃຊ້ງານການເດົາເຄືອຂ່າຍ</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">ເຈາະຮູເບື້ອງຊ້າຍສອງຮູ</translation>
 <translation id="6554795675067793129">ບັນຊີຂອງທ່ານຖືກຈັດການໂດຍ <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">ເຮັດຄືນ</translation>
+<translation id="6566840325635607048">ປຸ່ມອັບເດດບັດເຄຣດິດ, ກົດ Enter ເພື່ອອັບເດດຂໍ້ມູນບັດເຄຣດິດສຳລັບການຕື່ມຂໍ້ມູນອັດຕະໂນມັດໃນການຕັ້ງຄ່າ Chrome</translation>
 <translation id="6569060085658103619">ທ່ານກຳລັງເບິ່ງໜ້າສ່ວນຂະຫຍາຍ</translation>
 <translation id="6573200754375280815">ເຈາະຮູຢູ່ເບື້ອງຂວາສອງຮູ</translation>
 <translation id="6578796323535178455">C2 (ຊອງຈົດໝາຍ)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">ເວັບໄຊທ໌ນີ້ຕ້ອງການຂໍ້ມູນທີ່ທ່ານປ້ອນແຕ່ຫົວທີ ເພື່ອໃຫ້ສະແດງຂຶ້ນຢ່າງຖືກຕ້ອງ. ທ່ານສາມາດສົ່ງຂໍ້ມູນນີ້ໄດ້ອີກ, ແຕ່ໂດຍການເຮັດແນວນັ້ນ ທ່ານອາດຈະເຮັດການກະທໍາໃດໜຶ່ງຊໍ້າຄືນໜ້ານີ້ທີ່ໄດ້ເຮັດຜ່ານມາແລ້ວ.</translation>
 <translation id="7550637293666041147">ຊື່ຜູ້ໃຊ້ອຸປະກອນ ແລະ ຊື່ຜູ້ໃຊ້ Chrome ຂອງທ່ານ</translation>
 <translation id="7552846755917812628">ລອງຄຳແນະນຳຕໍ່ໄປນີ້:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອລຶບລ້າງຂໍ້ມູນປະຫວັດການທ່ອງເວັບໃນ Chrome</translation>
 <translation id="7554791636758816595">ແຖບ​ໃຫມ່</translation>
 <translation id="7564049878696755256">ທ່ານສາມາດສູນເສຍການເຂົ້າເຖິງບັນຊີ <ph name="ORG_NAME" /> ຂອງທ່ານ ຫຼື ປະສົບກັບການຖືກລັກໃຊ້ຕົວຕົນ. Chrome ຂໍແນະນຳໃຫ້ປ່ຽນລະຫັດຜ່ານຂອງທ່ານດຽວນີ້.</translation>
 <translation id="7567204685887185387">ເຊີບເວີນີ້ບໍ່ສາມາດພິສູດໄດ້ວ່າ ມັນແມ່ນ <ph name="DOMAIN" />; ໃບຢັ້ງຢືນຄວາມປອດໄພຂອງມັນອາດຈະໄດ້ຮັບການອອກໃຫ້ແບບຫຼອກລວງ. ອັນນີ້ອາດຈະເຮັດໃຫ້ເກີດມີການປັບຕັ້ງຄ່າຜິດ ຫຼືຜູ້ໂຈມຕີອາດຈະດັກເອົາການເຊື່ອມຕໍ່ຂອງທ່ານ.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">ບຸກຄົນຜູ້ທີ່ຕັ້ງຄ່າຄອມພິວເຕີນີ້ໄດ້ເລືອກບລັອກເວັບໄຊນີ້ໄວ້.</translation>
 <translation id="8228419419708659934">ມຸມມອງສອງໜ້າ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນ Enter ເພື່ອແປໜ້ານີ້</translation>
 <translation id="8232343881378637145">ອຸນຫະພູມຂອງແພລດຟອມ</translation>
 <translation id="8238581221633243064">ເປີດໜ້າເວັບໃນແຖບບໍ່ເປີດເຜີຍຕົວຕົນໃໝ່</translation>
 <translation id="8241707690549784388">ໜ້າທີ່ທ່ານກໍາລັງຊອກຫາຂໍ້ມູນໃຊ້ແລ້ວທີ່ທ່ານປ້ອນເຂົ້າໄປ. ການກັບຄືນມາຫາໜ້ານັ້ນອາດຈະເຮັດໃຫ້ການກະທໍາໃດໜຶ່ງທີ່ທ່ານເຮັດແລ້ວຖືກເຮັດຊໍ້າຄືນ. ທ່ານຕ້ອງການສືບຕໍ່ບໍ?</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 1a6ae1c2..8dcd567 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Komandos eilutės kintamieji</translation>
 <translation id="129553762522093515">Neseniai uždarytas</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Pabandykite išvalyti slapukus<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Mygtukas „Atidaryti inkognito langą“, paspauskite „Enter“, kad būtų atidarytas naujas „Chrome“ inkognito langas</translation>
 <translation id="1301324364792935241">Patikrinkite saugios DNS nustatymus</translation>
 <translation id="1307966114820526988">Nebenaudojamos funkcijos</translation>
 <translation id="131405271941274527"><ph name="URL" /> nori siųsti ir gauti informaciją, kai paliečiate telefoną ALR įrenginyje</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Atnaujinkite sinchronizavimo slaptafrazę.</translation>
 <translation id="1787142507584202372">Atidaryti skirtukai bus rodomi čia</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, galimi keli veiksmai, paspauskite skirtuką, norėdami juos perjungti</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kortelės savininko vardas</translation>
 <translation id="1807528111851433570">Pradžios lapas</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Skelbimai</translation>
 <translation id="1919367280705858090">Gaukite pagalbos dėl konkretaus klaidos pranešimo</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Nėra}=1{1 svetainė}one{# svetainė}few{# svetainės}many{# svetainės}other{# svetainių}}</translation>
+<translation id="1926148189358507356">Mygtukas „Paleisti iš naujo, kad būtų atnaujinta“, paspauskite „Enter“, kad „Chrome“ būtų atnaujinta</translation>
 <translation id="1945968466830820669">Galite prarasti prieigą prie organizacijos paskyros arba gali būti pavogta tapatybė. „Chromium“ rekomenduoja pakeisti slaptažodį dabar.</translation>
 <translation id="1947454675006758438">Sankabėlė viršuje dešinėje</translation>
 <translation id="1959001866257244765">Padėkite gerinti visų naudotojų saugumą žiniatinklyje – atsiųskite <ph name="BEGIN_WHITEPAPER_LINK" />lankomų puslapių URL, ribotos sistemos informacijos ir puslapių turinio<ph name="END_WHITEPAPER_LINK" /> į „Google“. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Privatumo politika<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Lygis</translation>
 <translation id="2380886658946992094">Teisinis</translation>
 <translation id="2384307209577226199">Numatytieji įmonės nustatymai</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite skirtuką, tada – „Enter“, kad būtų atidaryras naujas „Chrome“ inkognito langas</translation>
 <translation id="2385809941344967209">Atnaujinkite „Chrome“ šios naršyklės nustatymuose</translation>
 <translation id="2386255080630008482">Serverio sertifikatas panaikintas.</translation>
 <translation id="2392959068659972793">Rodyti politiką su nenustatyta verte</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Iškarpinė</translation>
 <translation id="2587730715158995865">Nuo „<ph name="ARTICLE_PUBLISHER" />“. Skaitykite šią ir kitas istorijas (<ph name="OTHER_ARTICLE_COUNT" />).</translation>
 <translation id="2587841377698384444">Katalogo API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, norėdami „Chrome“ nustatymuose atnaujinti automatiškai užpildomą kredito kortelės informaciją, paspauskite skirtuką, tada – „Enter“</translation>
 <translation id="2595719060046994702">Šio įrenginio ir paskyros netvarko įmonė ar kita organizacija.</translation>
 <translation id="2597378329261239068">Šis dokumentas apsaugotas slaptažodžiu. Įveskite slaptažodį.</translation>
 <translation id="2609632851001447353">Variantai</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Išeiti</translation>
 <translation id="2684561033061424857">11 x 12</translation>
 <translation id="2687555958734450033">Geriausias dydis</translation>
+<translation id="2688738823074468716">Mygtukas „Tvarkyti slaptažodžius“, paspauskite „Enter“, jei norite tvarkyti slaptažodžius „Chrome“ nustatymuose</translation>
 <translation id="2688969097326701645">Taip, tęsti</translation>
 <translation id="2691924980723297736">Saugos įspėjimas</translation>
 <translation id="2699302886720511147">Tinkamos kortelės</translation>
@@ -743,6 +749,7 @@
 <translation id="4088981014127559358">1 pusė: sukti vaizdą pagal Y ašį</translation>
 <translation id="4098354747657067197">Ketinate apsilankyti apgaulingoje svetainėje</translation>
 <translation id="4101413244023615925">Tekstas ir grafiniai elementai</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite skirtuką, tada – „Enter“, norėdami tvarkyti slaptažodžius „Chrome“ nustatymuose</translation>
 <translation id="4103249731201008433">Netinkamas įrenginio serijos numeris</translation>
 <translation id="4103763322291513355">Apsilankykite &lt;strong&gt;chrome://policy&lt;/strong&gt;, kad peržiūrėtumėte į juodąjį sąrašą įtrauktų URL sąrašą ir kitą politiką, kurią priverstinai paleido sistemos administratorius.</translation>
 <translation id="4110652170750985508">Mokėjimo peržiūra</translation>
@@ -913,6 +920,7 @@
 <translation id="4738601419177586157">„<ph name="TEXT" />“ paieškos pasiūlymas</translation>
 <translation id="4742407542027196863">Tvarkyti slaptažodžius…</translation>
 <translation id="4744603770635761495">Vykdomasis kelias</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, norėdami atnaujinti „Chrome“, paspauskite skirtuką</translation>
 <translation id="4750917950439032686">Į šią svetainę siunčiama informacija (pvz., slaptažodžiai arba kredito kortelių numeriai) yra privati.</translation>
 <translation id="4756388243121344051">&amp;Istorija</translation>
 <translation id="4758311279753947758">Pridėti kontaktinę informaciją</translation>
@@ -954,6 +962,7 @@
 <translation id="4926049483395192435">Turi būti nurodyta.</translation>
 <translation id="4926159001844873046">Svetainėje <ph name="SITE" /> nurodyta:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" /> / <ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, norėdami ieškoti paspauskite skirtuką, tada – „Enter“</translation>
 <translation id="4930153903256238152">Didelė talpa</translation>
 <translation id="4943872375798546930">Rezultatų nėra</translation>
 <translation id="4950898438188848926">Skirtuko perjungimo mygtukas. Paspauskite „Enter“, kad perjungtumėte į atidarytą skirtuką „<ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />“</translation>
@@ -1030,6 +1039,7 @@
 <translation id="5215116848420601511">„Google Pay“ naudojami mokėjimo metodai ir adresai</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Būtina nurodyti el. paštą</translation>
+<translation id="5222994811833658317">Mygtukas „Išvalyti duomenis“, paspauskite „Enter“, kad būtų išvalyti „Chrome“ naršymo istorijos duomenys</translation>
 <translation id="5230733896359313003">Pristatymo adresas</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12 x 19</translation>
@@ -1070,6 +1080,7 @@
 <translation id="534295439873310000">ALR įrenginiai</translation>
 <translation id="5344579389779391559">Šiame puslapyje gali būti bandoma jus apmokestinti</translation>
 <translation id="5355557959165512791">Negalite dabar apsilankyti svetainėje <ph name="SITE" />, nes jos sertifikatas buvo anuliuotas. Tinklo klaidos ir užpuolimai dažniausiai yra laikini, todėl šis puslapis vėliau tikriausiai veiks.</translation>
+<translation id="5361930801096459163">Paieškos mygtukas, paspauskite „Enter“, kad būtų ieškoma „<ph name="KEYWORD_SUFFIX" />“</translation>
 <translation id="536296301121032821">Išsaugant politikos nustatymus įvyko klaida</translation>
 <translation id="5371425731340848620">Atnaujinkite kortelę</translation>
 <translation id="5377026284221673050">„Laikrodis atsilieka“, „Laikrodis skuba“ arba „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;“</translation>
@@ -1295,6 +1306,7 @@
 <translation id="6302269476990306341">„Google“ padėjėjas sistemoje „Chrome“ sustabdomas</translation>
 <translation id="6305205051461490394"><ph name="URL" /> nepasiekiama.</translation>
 <translation id="6312113039770857350">Tinklalapis nepasiekiamas</translation>
+<translation id="6315224405718249523">Mygtukas „Versti puslapį“, paspauskite „Enter“, kad šis puslapis būtų išverstas</translation>
 <translation id="6321917430147971392">Patikrinkite DNS nustatymus</translation>
 <translation id="6322182122604171028">Nepavyko naudoti „Windows Hello“</translation>
 <translation id="6328639280570009161">Bandykite neleisti tinklo numatymo</translation>
@@ -1349,6 +1361,7 @@
 <translation id="6547208576736763147">Dvi skylės kairėje</translation>
 <translation id="6554795675067793129">Jūsų paskyrą tvarko <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Grąžinti</translation>
+<translation id="6566840325635607048">Mygtukas „Atnaujinti kredito kortelę“, paspauskite „Enter“ ir „Chrome“ nustatymuose atnaujinkite automatiškai užpildomą kredito kortelės informaciją</translation>
 <translation id="6569060085658103619">Peržiūrite plėtinio puslapį</translation>
 <translation id="6573200754375280815">Dvi skylės dešinėje</translation>
 <translation id="6578796323535178455">C2 (vokas)</translation>
@@ -1589,6 +1602,7 @@
 <translation id="7549584377607005141">Jei norite, kad šis tinklalapis būtų tinkamai pateikiamas, reikalingi anksčiau įvesti duomenys. Galite nusiųsti šiuos duomenis iš naujo, bet taip pakartosite visus anksčiau šiame puslapyje įvykdytus veiksmus.</translation>
 <translation id="7550637293666041147">Įrenginio naudotojo vardas ir „Chrome“ naudotojo vardas</translation>
 <translation id="7552846755917812628">Išbandykite toliau pateiktus patarimus.</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, norėdami išvalyti „Chrome“ naršymo istorijos duomenis, paspauskite skirtuką, tada – „Enter“</translation>
 <translation id="7554791636758816595">Naujas skirtukas</translation>
 <translation id="7564049878696755256">Galite prarasti galimybę pasiekti „<ph name="ORG_NAME" />“ paskyrą arba gali būti pavogta tapatybė. „Chrome“ rekomenduoja pakeisti slaptažodį dabar.</translation>
 <translation id="7567204685887185387">Šiam serveriui nepavyko patvirtinti, kad tai yra <ph name="DOMAIN" />; jo saugos sertifikatas gali būti neteisėtai išduotas. Taip gali nutikti dėl netinkamos konfigūracijos ar dėl ryšį pertraukusio užgrobėjo.</translation>
@@ -1755,6 +1769,7 @@
 <translation id="8225771182978767009">Šį kompiuterį nustatęs asmuo pasirinko blokuoti šią svetainę.</translation>
 <translation id="8228419419708659934">Dviejų puslapių peržiūra</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite skirtuką, tada „Enter“, kad šis puslapis būtų išverstas</translation>
 <translation id="8232343881378637145">Platformos temperatūra</translation>
 <translation id="8238581221633243064">Atidarykite puslapį naujame inkognito skirtuke</translation>
 <translation id="8241707690549784388">Jūsų ieškomas puslapis ieškojo informacijos, kurią įvedėte. Grįžus į tą puslapį bet kokie jūsų atliekami veiksmai gali būti kartojami. Ar norite tęsti?</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 4886e2e..8aa1243 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">കമാൻഡ്-ലൈൻ വ്യതിയാനങ്ങൾ</translation>
 <translation id="129553762522093515">സമീപകാലത്ത് അടച്ചവ</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />നിങ്ങളുടെ കുക്കികൾ മായ്‌ക്കുന്നത് പരീക്ഷിക്കുക<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">'അദൃശ്യ വിൻഡോ തുറക്കുക' ബട്ടൺ, പുതിയൊരു Chrome അദൃശ്യ വിൻഡോ തുറക്കാൻ 'Enter' അമർത്തുക</translation>
 <translation id="1301324364792935241">നിങ്ങളുടെ സുരക്ഷിത DNS ക്രമീകരണം പരിശോധിക്കുക</translation>
 <translation id="1307966114820526988">അവസാനിപ്പിച്ച ഫീച്ചറുകൾ</translation>
 <translation id="131405271941274527">ഒരു NFC ഉപകരണത്തിൽ നിങ്ങളുടെ ഫോൺ ടാപ്പ് ചെയ്യുമ്പോൾ വിവരങ്ങൾ അയയ്ക്കാനും സ്വീകരിക്കാനും <ph name="URL" /> താൽപ്പര്യപ്പെടുന്നു</translation>
@@ -224,6 +225,7 @@
 <translation id="1783075131180517613">നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രേസ് അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
 <translation id="1787142507584202372">നിങ്ങൾ നിലവിൽ തുറന്നിട്ടുള്ള ടാബുകൾ ഇവിടെ ദൃശ്യമാകും</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ഒന്നിലധികം പ്രവർത്തനങ്ങൾ ലഭ്യമാണ്, ഒന്നിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറാൻ 'Tab' അമർത്തുക</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">കാർഡ് ഉടമയുടെ പേര്</translation>
 <translation id="1807528111851433570">ആദ്യ ഷീറ്റ്</translation>
@@ -252,6 +254,7 @@
 <translation id="1919345977826869612">പരസ്യങ്ങള്‍</translation>
 <translation id="1919367280705858090">നിർദ്ദിഷ്ട പിശക് സന്ദേശവുമായി ബന്ധപ്പെട്ട് സഹായം നേടുക</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ഒന്നുമില്ല}=1{ഒരു സൈറ്റ്}other{# സൈറ്റുകൾ}}</translation>
+<translation id="1926148189358507356">'അപ്ഡേറ്റ് ചെയ്യാൻ വീണ്ടും ആരംഭിക്കുക' ബട്ടൺ, Chrome അപ്ഡേറ്റ് ചെയ്യാൻ 'Enter' അമർത്തുക</translation>
 <translation id="1945968466830820669">നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ അക്കൗണ്ടിലേക്കുള്ള ആക്‌സസ് നഷ്‌ടമാകാനോ ഐഡന്‍റിറ്റി മോഷ്ടിക്കപ്പെടാനോ സാധ്യതയുണ്ട്. ഇപ്പോൾ തന്നെ പാസ്‍വേഡ് മാറ്റാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation>
 <translation id="1947454675006758438">മുകളിൽ വലതുവശത്ത് സ്‌റ്റേപ്പിൾ ചെയ്യുക</translation>
 <translation id="1959001866257244765">നിങ്ങൾ സന്ദർശിക്കുന്ന ചില പേജുകളുടെ <ph name="BEGIN_WHITEPAPER_LINK" />URL, പരിമിത സിസ്‌റ്റം വിവരങ്ങൾ, ചില പേജുകളുടെ ഉള്ളടക്കം<ph name="END_WHITEPAPER_LINK" /> എന്നിവ Google-ലേക്ക് അയച്ച് എല്ലാവർക്കുമായി വെബിലെ സുരക്ഷ മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. <ph name="BEGIN_PRIVACY_PAGE_LINK" />സ്വകാര്യതാ നയം<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -356,6 +359,7 @@
 <translation id="2367567093518048410">നില</translation>
 <translation id="2380886658946992094">നിയമപരം</translation>
 <translation id="2384307209577226199">എന്റര്‍പ്രൈസ് ഡിഫോൾട്ട്</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, പുതിയൊരു Chrome അദൃശ്യ വിൻഡോ തുറക്കാൻ Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="2385809941344967209">നിങ്ങളുടെ Chrome ക്രമീകരണത്തിൽ നിന്ന് Chrome അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="2386255080630008482">സെർവറിന്റെ സർട്ടിഫിക്കറ്റ് റദ്ദാക്കി.</translation>
 <translation id="2392959068659972793">മൂല്യമൊന്നും സജ്ജമാക്കാത്ത നയങ്ങൾ കാണിക്കുക</translation>
@@ -398,6 +402,7 @@
 <translation id="2586657967955657006">ക്ലിപ്പ്ബോർഡ്</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> എന്നയാളുടെ ലേഖനം. ഇതും മറ്റ് <ph name="OTHER_ARTICLE_COUNT" /> ലേഖനങ്ങളും വായിക്കുക.</translation>
 <translation id="2587841377698384444">ഡയറക്‌റ്ററി API ഐഡി:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ക്രമീകരണത്തിൽ ക്രെഡിറ്റ് കാര്‍ഡിന്റെ സ്വയമേവ പൂരിപ്പിക്കൽ വിവരങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="2595719060046994702">ഏതെങ്കിലും കമ്പനിയോ മറ്റ് സ്ഥാപനമോ മാനേജ് ചെയ്യുന്നതല്ല ഈ ഉപകരണവും അക്കൗണ്ടും.</translation>
 <translation id="2597378329261239068">ഈ പ്രമാണം പാസ്‌വേഡ് പരിരക്ഷിതമാണ്. പാസ്‌വേഡ് നല്‍‌കുക.</translation>
 <translation id="2609632851001447353">വേരിയേഷനുകൾ</translation>
@@ -419,6 +424,7 @@
 <translation id="2677748264148917807">ഉപേക്ഷിക്കുക</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ഏറ്റവും അനുയോജ്യമായത്</translation>
+<translation id="2688738823074468716">'പാസ്‌വേഡുകൾ മാനേജ് ചെയ്യുക' ബട്ടൺ, Chrome ക്രമീകരണത്തിൽ പാസ്‌വേഡുകൾ മാനേജ് ചെയ്യാൻ 'Enter' അമർത്തുക</translation>
 <translation id="2688969097326701645">ഉവ്വ്, തുടരുക</translation>
 <translation id="2691924980723297736">സുരക്ഷാ മുന്നറിയിപ്പ്</translation>
 <translation id="2699302886720511147">സ്വീകരിക്കുന്ന കാർഡുകൾ</translation>
@@ -738,6 +744,7 @@
 <translation id="4088981014127559358">സൈഡ് 1 ചിത്രം Y ഷിഫ്റ്റ്</translation>
 <translation id="4098354747657067197">വഞ്ചനാപരമായ സൈറ്റ് ഉണ്ട്</translation>
 <translation id="4101413244023615925">ടെക്സ്റ്റും ഗ്രാഫിക്കും</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ക്രമീകരണത്തിൽ പാസ്‌വേഡുകൾ മാനേജ് ചെയ്യാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="4103249731201008433">ഉപകരണ സീരിയൽ നമ്പർ അസാധുവാണ്</translation>
 <translation id="4103763322291513355">ബ്ലാക്ക്‌ലിസ്റ്റിൽപ്പെട്ട URL-കളുടെ ലിസ്റ്റും നിങ്ങളുടെ സിസ്റ്റം അഡ്‌മിനിസ്‌ട്രേറ്റർ നടപ്പിലാക്കിയ മറ്റ് നയങ്ങളും കാണുന്നതിന് &lt;strong&gt;chrome://policy&lt;/strong&gt; സന്ദർശിക്കുക.</translation>
 <translation id="4110652170750985508">നിങ്ങളുടെ പേയ്‌മെന്‍റ് അവലോകനം ചെയ്യുക</translation>
@@ -906,6 +913,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> തിരയൽ നിർദ്ദേശം</translation>
 <translation id="4742407542027196863">പാസ്‌വേഡുകൾ മാനേജ് ചെയ്യുക…</translation>
 <translation id="4744603770635761495">നിര്‍വ്വഹിക്കാവുന്ന പാത</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome അപ്ഡേറ്റ് ചെയ്യാൻ, 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="4750917950439032686">നിങ്ങളുടെ വിവരങ്ങൾ (ഉദാഹരണത്തിന്, പാസ്‌വേഡുകളോ ക്രെഡിറ്റ് കാർഡ് നമ്പറുകളോ) ഈ സൈറ്റിലേക്ക് അയച്ച് കഴിഞ്ഞാൽ പിന്നെയത് സ്വകാര്യമായിരിക്കും.</translation>
 <translation id="4756388243121344051">&amp;ചരിത്രം</translation>
 <translation id="4758311279753947758">കോൺടാക്റ്റ് വിവരങ്ങൾ ചേർക്കുക</translation>
@@ -947,6 +955,7 @@
 <translation id="4926049483395192435">വ്യക്തമാക്കേണ്ടതാണ്.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> പറയുന്നത്:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, തിരയാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="4930153903256238152">ഉയർന്ന ശേഷി</translation>
 <translation id="4943872375798546930">ഫലങ്ങളൊന്നുമില്ല</translation>
 <translation id="4950898438188848926">ടാബ് മാറാനുള്ള ബട്ടൺ, തുറന്നിരിക്കുന്ന ടാബായ <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> എന്നതിലേക്ക് മാറാൻ എൻ്റർ അമർത്തുക</translation>
@@ -1023,6 +1032,7 @@
 <translation id="5215116848420601511">Google Pay ഉപയോഗിക്കുന്ന വിലാസങ്ങളും പേയ്മെന്റ് രീതികളും</translation>
 <translation id="5215363486134917902">ഫോളിയോ-Sp</translation>
 <translation id="5222812217790122047">ഇമെയിൽ ആവശ്യമാണ്</translation>
+<translation id="5222994811833658317">'ഡാറ്റ മായ്ക്കുക' ബട്ടൺ, Chrome-ന്റെ ബ്രൗസിംഗ് ചരിത്രത്തിന്റെ ഡാറ്റ മായ്‌ക്കാൻ 'Enter' അമർത്തുക</translation>
 <translation id="5230733896359313003">ഷിപ്പിംഗ് വിലാസം</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1063,6 +1073,7 @@
 <translation id="534295439873310000">NFC ഉപകരണങ്ങൾ</translation>
 <translation id="5344579389779391559">ഈ പേജ് നിങ്ങളില്‍ നിന്ന് പണം ഈടാക്കാനിടയുണ്ട്</translation>
 <translation id="5355557959165512791">സർട്ടിഫിക്കറ്റ് റദ്ദാക്കിയതിനാൽ നിങ്ങൾക്കിപ്പോൾ <ph name="SITE" /> സന്ദർശിക്കാനാകില്ല. നെറ്റ്‌വർക്ക് പിശകുകളും ആക്രമണങ്ങളും സാധാരണ താൽക്കാലികമായിരിക്കും, അതിനാൽ ഈ പേജ് മിക്കവാറും പിന്നീട് പ്രവർത്തിക്കും.</translation>
+<translation id="5361930801096459163">'തിരയുക' ബട്ടൺ, <ph name="KEYWORD_SUFFIX" /> എന്നത് തിരയാൻ 'Enter' അമർത്തുക</translation>
 <translation id="536296301121032821">നയ ക്രമീകരണങ്ങൾ സംഭരിക്കുന്നതിൽ പരാജയപ്പെട്ടു</translation>
 <translation id="5371425731340848620">കാർഡ് അപ്ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="5377026284221673050">"നിങ്ങളുടെ സമയം പിന്നിലാണ്" അല്ലെങ്കിൽ "നിങ്ങളുടെ സമയം മുന്നിലാണ്" അല്ലെങ്കിൽ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1288,6 +1299,7 @@
 <translation id="6302269476990306341">Chrome സ്വമേധയാ പൂരിപ്പിക്കൽ നിർത്തുന്നതിലെ Google അസിസ്‌റ്റന്റ് സാന്നിധ്യം</translation>
 <translation id="6305205051461490394"><ph name="URL" /> ലഭ്യമല്ല.</translation>
 <translation id="6312113039770857350">വെബ്പേജ് ലഭ്യമല്ല</translation>
+<translation id="6315224405718249523">'പേജ് വിവർത്തനം ചെയ്യുക' ബട്ടൺ, ഈ പേജ് വിവർത്തനം ചെയ്യാൻ 'Enter' അമർത്തുക</translation>
 <translation id="6321917430147971392">നിങ്ങളുടെ DNS ക്രമീകരണങ്ങൾ പരിശോധിക്കുക</translation>
 <translation id="6322182122604171028">Windows Hello ഉപയോഗിക്കാനായില്ല</translation>
 <translation id="6328639280570009161">നെറ്റ്‌വർക്ക് പ്രവചനം പ്രവർത്തനരഹിതമാക്കാൻ ശ്രമിക്കുക</translation>
@@ -1342,6 +1354,7 @@
 <translation id="6547208576736763147">ഇടതുവശത്ത് ഇരട്ട പഞ്ച് ചെയ്യുക</translation>
 <translation id="6554795675067793129">നിങ്ങളുടെ അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="ENROLLMENT_DOMAIN" /> ആണ്.</translation>
 <translation id="6556866813142980365">വീണ്ടും ചെയ്യുക</translation>
+<translation id="6566840325635607048">'ക്രെഡിറ്റ് കാര്‍ഡ് അപ്ഡേറ്റ് ചെയ്യുക' ബട്ടൺ, Chrome ക്രമീകരണത്തിൽ ക്രെഡിറ്റ് കാര്‍ഡിന്റെ സ്വയമേവ പൂരിപ്പിക്കൽ വിവരങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ 'Enter' അമർത്തുക</translation>
 <translation id="6569060085658103619">നിങ്ങൾ ഒരു വിപുലീകരണ പേജാണ് കാണുന്നത്</translation>
 <translation id="6573200754375280815">വലതുവശത്ത് ഇരട്ട പഞ്ച് ചെയ്യുക</translation>
 <translation id="6578796323535178455">C2 (എൻവലപ്പ്)</translation>
@@ -1580,6 +1593,7 @@
 <translation id="7549584377607005141">ശരിയായി പ്രദർശിപ്പിക്കാൻ ഈ വെബ്‌ പേജിന് നിങ്ങൾ മുമ്പ് നൽകിയ ഡാറ്റ ആവശ്യമാണ്. നിങ്ങൾക്ക് ഈ ഡാറ്റ വീണ്ടും അയയ്‌ക്കാനാകുമെങ്കിലും, അങ്ങനെ ചെയ്യുന്നത് ഈ പേജിൽ മുമ്പ് ചെയ്‌ത ഏത് പ്രവർത്തനവും നിങ്ങൾക്ക് ആവർത്തിക്കേണ്ടതായി വരും.</translation>
 <translation id="7550637293666041147">നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഉപയോക്തൃനാമവും Chrome ഉപയോക്തൃനാമവും</translation>
 <translation id="7552846755917812628">ഇനിപ്പറയുന്ന നുറുങ്ങുകൾ പരീക്ഷിക്കൂ:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-ന്റെ ബ്രൗസിംഗ് ചരിത്രത്തിന്റെ ഡാറ്റ മായ്‌ക്കാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="7554791636758816595">പുതിയ ടാബ്</translation>
 <translation id="7564049878696755256">നിങ്ങളുടെ <ph name="ORG_NAME" /> അക്കൗണ്ടിലേക്കുള്ള ആക്‌സസ് നഷ്‌ടമാകാനോ ഐഡന്‍റിറ്റി മോഷ്ടിക്കപ്പെടാനോ സാധ്യതയുണ്ട്. ഇപ്പോൾ തന്നെ പാസ്‍വേഡ് മാറ്റാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation>
 <translation id="7567204685887185387">ഈ സെർവറിന് അത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; സെർവറിന്റെ സുരക്ഷ സർട്ടിഫിക്കറ്റ് വഞ്ചനാപരമായി ഇഷ്യൂ ചെയ്‌തിരിക്കാം. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു അക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.</translation>
@@ -1746,6 +1760,7 @@
 <translation id="8225771182978767009">ഈ കമ്പ്യൂട്ടർ സജ്ജമാക്കിയ വ്യക്തി, ഈ സൈറ്റ് ബ്ലോക്ക് ചെയ്യാൻ തീരുമാനിച്ചിരുന്നു.</translation>
 <translation id="8228419419708659934">രണ്ട് പേജ് കാഴ്ച</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ഈ പേജ് വിവർത്തനം ചെയ്യാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation>
 <translation id="8232343881378637145">പ്ലാറ്റ്‌ഫോം താപനില</translation>
 <translation id="8238581221633243064">പുതിയൊരു അദൃശ്യ ടാബിൽ പേജ് തുറക്കുക</translation>
 <translation id="8241707690549784388">നിങ്ങൾ തിരയുന്ന പേജ് നിങ്ങൾ നൽകിയ വിവരങ്ങൾ ഉപയോഗിക്കുന്നു. ആ പേജിലേയ്‌ക്ക് തിരികെ പോകുന്നത് നിങ്ങളുടെ എല്ലാ പ്രവർത്തനങ്ങളും ആവർത്തിക്കുന്നതിന് ഇടയാക്കാം. തുടരണോ?</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 3678bb0..6b9e735 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Тушаалын мөрийн хувилбар</translation>
 <translation id="129553762522093515">Саяхан хаагдсан</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Күүкигээ устгана уу<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Нууцлалтай цонхыг нээх товч, Chrome-н нууцлалтай цонхыг шинээр нээхийн тулд Enter дарна уу</translation>
 <translation id="1301324364792935241">Аюулгүй DNS тохиргоогоо шалгана уу</translation>
 <translation id="1307966114820526988">Хуучирсан онцлог</translation>
 <translation id="131405271941274527">Таныг NFC төхөөрөмж дээр утсаараа товших үед <ph name="URL" /> нь мэдээлэл илгээх, хүлээн авах хүсэлтэй байна</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Та өөрийн тохиргоо хийдэг нууц үгийг шинэчлэнэ үү.</translation>
 <translation id="1787142507584202372">Таны нээлттэй чихтэй хуудас энд харагдана</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, олон үйлдэл хийх боломжтой, үйлдэл хооронд шилжихийн тулд Таб дээр дарна уу</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Карт эзэмшигчийн нэр</translation>
 <translation id="1807528111851433570">Эхлэлийн хүснэгт</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Зар</translation>
 <translation id="1919367280705858090">Тодорхой алдаатай зурвасаар тусламж авах</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Байхгүй}=1{1 сайт}other{# сайт}}</translation>
+<translation id="1926148189358507356">Шинэчлэхээр дахин ачаалах товч, Chrome-г шинэчлэхийн тулд Enter дарна уу</translation>
 <translation id="1945968466830820669">Та байгууллагынхаа бүртгэлд хандах эрх эсвэл нууц үгээ бусдад алдаж болзошгүй. Chromium-с таныг нууц үгээ өөрчлөхийг зөвлөж байна.</translation>
 <translation id="1947454675006758438">Баруун дээд буланд үдэх</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />Зарим зочилдог хуудасныхаа URL, системийн хязгаарлагдмал мэдээлэл болон зарим хуудасны контент<ph name="END_WHITEPAPER_LINK" />-ыг Google-д илгээж, хүн бүрд вэбийн аюулгүй байдлыг сайжруулахад тусална уу. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Нууцлалын бодлого<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Түвшин</translation>
 <translation id="2380886658946992094">Хууль ёсны</translation>
 <translation id="2384307209577226199">Байгууллагын өгөгдмөл</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-н нууцлалтай цонх шинээр нээхийн тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="2385809941344967209">Chrome-н тохиргоон дээрээс Chrome-г шинэчлэх</translation>
 <translation id="2386255080630008482">Серверийн гэрчилгээг цуцалсан байна.</translation>
 <translation id="2392959068659972793">Утга нь тодорхойлогдоогүй журмуудыг харуул</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Түр санах ой</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" />-н энэ болон бусад <ph name="OTHER_ARTICLE_COUNT" /> нийтлэлийг уншина уу.</translation>
 <translation id="2587841377698384444">Хадгалалтын сангийн API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-н тохиргоонд кредит картын автоматаар бөглөх хэсгийн мэдээллийг шинэчлэхийн тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="2595719060046994702">Энэ төхөөрөмж болон бүртгэлийг компани эсвэл бусад байгууллагаас удирдаагүй байна.</translation>
 <translation id="2597378329261239068">Энэхүү баримт бичиг нь нууц үгээр хамгаалагдсан. Нууц үгээ оруулна уу.</translation>
 <translation id="2609632851001447353">Хувилбарууд</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Үлдээх</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Хамгийн оновтой тохирол</translation>
+<translation id="2688738823074468716">Нууц үг удирдах товч, Chrome-н тохиргоонд нууц үгийг удирдахын тулд Enter дарна уу</translation>
 <translation id="2688969097326701645">Тийм, үргэлжлүүлье</translation>
 <translation id="2691924980723297736">Аюулгүй байдлын анхааруулга</translation>
 <translation id="2699302886720511147">Зөвшөөрсөн карт</translation>
@@ -743,6 +749,7 @@
 <translation id="4088981014127559358">Хуудасны нүүрэн тал дээр Y тэнхлэгийн дагуу зураг шилжүүлэх</translation>
 <translation id="4098354747657067197">Сэжиг бүхий сайт байна</translation>
 <translation id="4101413244023615925">Текст болон график</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-н тохиргоон дээр нууц үг удирдахын тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="4103249731201008433">Төхөөрөмжийн сериал дугаар буруу байна</translation>
 <translation id="4103763322291513355">Системийн админаас тодорхойлсон хар жагсаалтанд орсон холбоосууд болон бусад бодлогуудыг харахаар бол  &lt;strong&gt; chrome://policy&lt;/strong&gt; руу орно уу.</translation>
 <translation id="4110652170750985508">Төлбөрөө хянах</translation>
@@ -913,6 +920,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" />-н хайлтын зөвлөмж</translation>
 <translation id="4742407542027196863">Нууц үгийг удирдах...</translation>
 <translation id="4744603770635761495">Гүйцэтгэх боломжтой зам</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-г шинэчлэхийн тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="4750917950439032686">Таны мэдээллийг (нууц үг, кредит картын дугаар зэрэг) энэ сайтад нууцлалтайгаар илгээнэ.</translation>
 <translation id="4756388243121344051">&amp; Түүх</translation>
 <translation id="4758311279753947758">Харилцагчийн мэдээлэл нэмэх</translation>
@@ -954,6 +962,7 @@
 <translation id="4926049483395192435">Заасан өгсөн байх ёстой.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> хэлэхдээ</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, хайхын тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="4930153903256238152">Их багтаамжтай</translation>
 <translation id="4943872375798546930">Илэрц байхгүй байна</translation>
 <translation id="4950898438188848926">Таб сэлгэх товчлуур, нээлттэй таб <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> руу сэлгэхийн тулд Enter дээр дарна уу</translation>
@@ -1030,6 +1039,7 @@
 <translation id="5215116848420601511">Google Pay-г ашиглаж буй төлбөрийн хэрэгсэл болон хаяг</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Имэйл шаардлагатай</translation>
+<translation id="5222994811833658317">Өгөгдөл арилгах товч, Chrome-н хөтчийн түүхийн өгөгдлийг арилгахын тулд Enter дарна уу</translation>
 <translation id="5230733896359313003">Хүргэлтийн хаяг</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1070,6 +1080,7 @@
 <translation id="534295439873310000">NFC төхөөрөмжүүд</translation>
 <translation id="5344579389779391559">Энэ хуудас танд төлбөр ногдуулахаар оролдож болзошгүй</translation>
 <translation id="5355557959165512791"><ph name="SITE" />-н сертификат хүчингүй болсон тул тус сайтад одоогоор зочлох боломжгүй байна. Сүлжээний алдаа, халдлага нь ихэвчлэн түр зуурынх байдаг тул энэ хуудас удахгүй хэвийн ажиллана.</translation>
+<translation id="5361930801096459163">Хайх товч, <ph name="KEYWORD_SUFFIX" />-г хайхын тулд Enter дарна уу</translation>
 <translation id="536296301121032821">бодлогын тохиргоог хадгалах үйлдэл амжилтгүй болсон байна.</translation>
 <translation id="5371425731340848620">Картыг шинэчлэх</translation>
 <translation id="5377026284221673050">"Таны цаг хоцорч байна" эсвэл "Таны цаг түрүүлж байна" эсвэл "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Chrome-н Google Туслахыг зогсоож байна</translation>
 <translation id="6305205051461490394"><ph name="URL" />-г ашиглах боломжгүй байна.</translation>
 <translation id="6312113039770857350">Вэб хуудас боломжгүй байна</translation>
+<translation id="6315224405718249523">Хуудас орчуулах товч, энэ хуудсыг орчуулахын тулд Enter дарна уу</translation>
 <translation id="6321917430147971392">DNS тохиргоогоо шалгана уу</translation>
 <translation id="6322182122604171028">Windows Hello-г ашиглаж чадсангүй</translation>
 <translation id="6328639280570009161">Сүлжээний таамаглалыг идэвхгүй болгох гээд үзээрэй</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Зүүн ирмэг дагуу хоёр нүх цоолох</translation>
 <translation id="6554795675067793129">Таны бүртгэлийг <ph name="ENROLLMENT_DOMAIN" />-с удирдаж байна.</translation>
 <translation id="6556866813142980365">Дахин хийх</translation>
+<translation id="6566840325635607048">Кредит карт шинэчлэх товч, Chrome-н тохиргоонд кредит картын автоматаар бөглөх хэсгийн мэдээллийг шинэчлэхийн тулд Enter дарна уу</translation>
 <translation id="6569060085658103619">Та өргөтгөлийн хуудсыг харж байна.</translation>
 <translation id="6573200754375280815">Баруун ирмэг дагуу хоёр нүх цоолох</translation>
 <translation id="6578796323535178455">C2 (Дугтуй)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Энэ вэб хуудас нь зохих хэмжээнд гарахын тулд таны өмнө оруулсан мэдээллийг шаардаж байна. Та энэ өгөгдлийг дахин илгээж болно, гэхдээ үүнийг хийснээрээ та энэ хуудасны өмнө нь хийж байсан үйлдлийг давтах хэрэгтэй болно.</translation>
 <translation id="7550637293666041147">Таны төхөөрөмжийн хэрэглэгчийн нэр болон Chrome хэрэглэгчийн нэр</translation>
 <translation id="7552846755917812628">Дараах зөвлөгөөг дагана уу:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome-н хөтчийн түүхийн өгөгдлийг арилгахын тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="7554791636758816595">Шинэ таб</translation>
 <translation id="7564049878696755256">Та <ph name="ORG_NAME" /> бүртгэлдээ хандах эрх эсвэл нууц үгээ бусдад алдаж болзошгүй. Chrome-с таныг нууц үгээ өөрчлөхийг зөвлөж байна.</translation>
 <translation id="7567204685887185387">Энэ сервер нь <ph name="DOMAIN" />-аа баталж чадсангүй;  хамгаалалтын сертификат хууль бусаар боловсруулагдсан байж болзошгүй. Энэ нь тохиргоо буруу хийгдсэнээс эсвэл халдагч таны холболтон саад учруулж байж болох юм.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">Энэ компьютерийг тохиуулсан хүн энэ сайтыг блоклосон байна.</translation>
 <translation id="8228419419708659934">Хоёр хуудсаар харах</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, энэ хуудсыг орчуулахын тулд Таб дээр, дараа нь Enter дарна уу</translation>
 <translation id="8232343881378637145">Платформын температур</translation>
 <translation id="8238581221633243064">Хуудсыг шинэ Нууцлалтай цонхонд нээх</translation>
 <translation id="8241707690549784388">Таны хайж буй хуудас нь таны оруулсан мэдээллийг ашиглаж байна.  Энэ хуудас руу буцсанаар та хийсэн үйлдлээ дахин давтах хэрэгтэй болж магадгүй. Та үргэлжлүүлэхийг хүсч байна уу?</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 94589e9f..675f3f9 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">विविध कमांड लाइन</translation>
 <translation id="129553762522093515">अलीकडे बंद केलेले</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />आपल्या कुकीज साफ करून पहा<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">गुप्त विंडो उघडा बटण, नवीन Chrome गुप्त विंडो उघडण्यासाठी एंटर दाबा</translation>
 <translation id="1301324364792935241">तुमची सुरक्षित DNS सेटिंग्ज तपासा</translation>
 <translation id="1307966114820526988">कालबाह्य झालेली वैशिष्‍ट्ये</translation>
 <translation id="131405271941274527">तुम्ही तुमचा फोन NFC डिव्हाइसवर टॅप करता तेव्हा <ph name="URL" /> ला माहिती पाठवायची आणि मिळवायची असते</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">कृपया तुमचे सिंक केलेली सांकेतिक पासफ्रेज अपडेट करा.</translation>
 <translation id="1787142507584202372">तुमचे खुले टॅब येथे दिसतात</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, एकाहून अधिक कृती उपलब्ध आहेत, प्रत्येकावर जाण्यासाठी टॅब दाबा</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">कार्डधारकाचे नाव</translation>
 <translation id="1807528111851433570">पत्रक सुरू करा</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">जाहिराती</translation>
 <translation id="1919367280705858090">विशिष्ट एरर मेसेजच्या बाबतीत मदत मिळवा</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{काहीही नाही}=1{1 साइट}other{# साइट}}</translation>
+<translation id="1926148189358507356">अपडेट करण्यासाठी पुन्हा लाँच करा बटण, Chrome अपडेट करण्यासाठी एंटर दाबा</translation>
 <translation id="1945968466830820669">तुम्ही तुमच्या संस्थेच्या खात्याचा ॲक्सेस गमावू शकता किंवा तुमची संवेदनशील माहिती चोरीला जाऊ शकते. Chromium तुमचा पासवर्ड लगेच बदलण्याची शिफारस करत आहे.</translation>
 <translation id="1947454675006758438">स्टेपल टॉप राइट</translation>
 <translation id="1959001866257244765">Google ला <ph name="BEGIN_WHITEPAPER_LINK" />तुम्ही भेट देत असलेल्या काही पेजच्या URL, मर्यादित सिस्टम माहिती आणि पेजवरील काही आशय<ph name="END_WHITEPAPER_LINK" /> पाठवून वेबवरील प्रत्येकासाठी सुरक्षिततेत सुधारणा करण्यात मदत करा. <ph name="BEGIN_PRIVACY_PAGE_LINK" />गोपनीयता धोरण<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">दर्जा</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">एंटरप्राइझ डीफॉल्ट</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, नवीन Chrome गुप्त विंडो उघडण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="2385809941344967209">तुमच्‍या Chrome सेटिंग्जमधून Chrome अपडेट करा</translation>
 <translation id="2386255080630008482">सर्व्हरचे सर्टिफिकेट रिव्होक केले गेले.</translation>
 <translation id="2392959068659972793">कोणतेही मूल्य सेट केल्याशिवाय धोरणे दर्शवा</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">क्लिपबोर्ड</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> कडील. हे आणि अन्य <ph name="OTHER_ARTICLE_COUNT" /> कथा वाचा.</translation>
 <translation id="2587841377698384444">शब्दकोश API आयडी:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome सेटिंग्जमधील क्रेडिट कार्ड ऑटोफिल माहिती अपडेट करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="2595719060046994702">हे डिव्हाइस आणि खाते कंपनीद्वारे किंवा इतर संस्थेद्वारे व्यवस्थापित केले जात नाही.</translation>
 <translation id="2597378329261239068">हा दस्तऐवज पासवर्ड संरक्षित आहे. कृपया पासवर्ड एंटर करा.</translation>
 <translation id="2609632851001447353">तफावत</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">सोडा</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">सर्वोत्तम फिट</translation>
+<translation id="2688738823074468716">पासवर्ड व्यवस्थापित करा बटण, Chrome सेटिंग्जमध्ये पासवर्ड व्यवस्थापित करण्यासाठी एंटर दाबा</translation>
 <translation id="2688969097326701645">होय, सुरू ठेवा</translation>
 <translation id="2691924980723297736">सुरक्षा चेतावणी</translation>
 <translation id="2699302886720511147">स्वीकारली जाणारी कार्डे</translation>
@@ -741,6 +747,7 @@
 <translation id="4088981014127559358">साइन १ इमेज Y शिफ्ट</translation>
 <translation id="4098354747657067197">भ्रामक साइट पुढे आहे</translation>
 <translation id="4101413244023615925">मजकूर आणि ग्राफिक</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome सेटिंग्जमध्ये पासवर्ड व्यवस्थापित करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="4103249731201008433">डिव्हाइस सिरीयल क्रमांक चुकीचा आहे</translation>
 <translation id="4103763322291513355">तुमच्या सिस्टम ॲडमिनिस्ट्रेटरद्वारे प्रवर्तित ब्लॅकलिस्टीतील URLs आणि अन्य धोरणांची सूची पाहण्यासाठी &lt;strong&gt;chrome://policy&lt;/strong&gt; ला भेट द्या.</translation>
 <translation id="4110652170750985508">तुमचे पेमेंट पुन्हा एकदा तपासा</translation>
@@ -911,6 +918,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> शोध सूचना</translation>
 <translation id="4742407542027196863">पासवर्ड व्यवस्थापित करा…</translation>
 <translation id="4744603770635761495">कार्यवाहीयोग्य पथ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome अपडेट करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="4750917950439032686">तुमची माहिती (उदाहरणार्थ, पासवर्ड किंवा क्रेडिट कार्ड क्रमांक) या साइटवर पाठविली जाते तेव्हा ती खाजगी राहते.</translation>
 <translation id="4756388243121344051">&amp;इतिहास</translation>
 <translation id="4758311279753947758">संपर्क माहिती जोडा</translation>
@@ -952,6 +960,7 @@
 <translation id="4926049483395192435">निर्दिष्‍ट केले जाणे आवश्‍यक आहे.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> चे म्हणणे हे आहे की</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, शोधण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="4930153903256238152">जास्त क्षमता</translation>
 <translation id="4943872375798546930">परिणाम नाहीत</translation>
 <translation id="4950898438188848926">टॅब स्विच बटण, उघड्या टॅबवर स्विच करण्यासाठी एंटर दाबा, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1028,6 +1037,7 @@
 <translation id="5215116848420601511">Google Pay वापरून पेमेंट पद्धती आणि पत्ते</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ईमेल आवश्यक आहे</translation>
+<translation id="5222994811833658317">डेटा साफ करा बटण, Chrome चा ब्राउझिंग इतिहास डेटा साफ करण्यासाठी एंटर दाबा</translation>
 <translation id="5230733896359313003">पाठविण्याचा पत्ता</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1068,6 +1078,7 @@
 <translation id="534295439873310000">NFC डिव्हाइस</translation>
 <translation id="5344579389779391559">या पेजवर कदाचित तुमच्याकडून शुल्क आकारले जाऊ शकते</translation>
 <translation id="5355557959165512791">तुम्ही आत्ता <ph name="SITE" /> ला भेट देऊ शकत नाही कारण तिचे सर्टिफिकेट काढून टाकले आहे. नेटवर्क एरर आणि आक्रमण शक्यतो तात्पुरती असतात, त्यामुळे हे पेज नंतर पाहता येईल.</translation>
+<translation id="5361930801096459163">शोधा बटण, <ph name="KEYWORD_SUFFIX" /> शोधण्यासाठी एंटर दाबा</translation>
 <translation id="536296301121032821">धोरण सेटिंग्ज संचयित करण्यात अयशस्वी</translation>
 <translation id="5371425731340848620">कार्ड अपडेट करा</translation>
 <translation id="5377026284221673050">"तुमचे क्लॉक मागे पडले आहे" किंवा "तुमचे क्लॉक वेळेपेक्षा पुढे आहे" किंवा "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Chrome मधील Google असिस्टंट थांबत आहे</translation>
 <translation id="6305205051461490394"><ph name="URL" /> आवाक्याबाहेर आहे.</translation>
 <translation id="6312113039770857350">वेबपेज उपलब्ध नाही</translation>
+<translation id="6315224405718249523">पेज भाषांतरित करा बटण, हे पेज भाषांतरित करण्यासाठी एंटर दाबा</translation>
 <translation id="6321917430147971392">आपल्या DNS सेटिंग्ज तपासा</translation>
 <translation id="6322182122604171028">Windows Hello वापरता आले नाही</translation>
 <translation id="6328639280570009161">नेटवर्क पूर्वानुमान अक्षम करून पहा</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">ड्युअल पंच लेफ्ट</translation>
 <translation id="6554795675067793129">तुमचे खाते <ph name="ENROLLMENT_DOMAIN" /> ने व्यवस्थापित केले आहे.</translation>
 <translation id="6556866813142980365">पुन्हा करा</translation>
+<translation id="6566840325635607048">क्रेडिट कार्ड अपडेट करा बटण, Chrome सेटिंग्जमधील क्रेडिट कार्ड ऑटोफिल माहिती अपडेट करण्यासाठी एंटर दाबा</translation>
 <translation id="6569060085658103619">तुम्ही एक एक्स्टेंशन पेज पाहत आहात</translation>
 <translation id="6573200754375280815">ड्युअल पंच राइट</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">हे वेबपेज योग्यरितीने प्रदर्शित केले जाण्यासाठी तुम्ही पूर्वी एंटर केलेला डेटा आवश्यक आहे. तुम्ही हा डेटा पुन्हा पाठवू शकता, परंतु असे केल्याने या पेजने मागे केलेली कोणत्याही क्रियेची पुनरावृत्ती तुम्ही कराल.</translation>
 <translation id="7550637293666041147">तुमच्या डिव्हाइसचे वापरकर्ता नाव आणि Chrome चे वापरकर्ता नाव</translation>
 <translation id="7552846755917812628">खालील टिपा वापरून पहा:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome चा ब्राउझिंग इतिहास डेटा साफ करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="7554791636758816595">नवीन टॅब</translation>
 <translation id="7564049878696755256">तुम्ही तुमच्या Google <ph name="ORG_NAME" /> चा ॲक्सेस गमावू शकता किंवा तुमची संवेदनशील माहिती चोरीला जाऊ शकते. Chrome लगेच तुमचा पासवर्ड बदलण्याची शिफारस करत आहे.</translation>
 <translation id="7567204685887185387">हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षितता सर्टिफिकेट कदाचित लबाडीने जारी केले असावे. हे कदाचित एका चुकीच्या कॉंफिगरेशनमुळे किंवा हल्लेखोराने तुमचे कनेक्शन इंटरसेप्ट केल्यामुळे झाले असू शकते.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">ज्या व्यक्तीने हा कॉंप्युटर सेट केला त्या व्यक्तीने ही साइट ब्लॉक करण्याचे निवडले आहे.</translation>
 <translation id="8228419419708659934">दोन पेज दृश्य</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, हे पेज भाषांतरित करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="8232343881378637145">प्लॅटफॉर्मचे तापमान</translation>
 <translation id="8238581221633243064">पेज नवीन गुप्त टॅबमध्ये उघडा</translation>
 <translation id="8241707690549784388">तुम्ही जे पेज शोधत आहत ते तुम्ही एंटर केलेली माहिती वापरत आहे. त्या पेजकडे परत गेल्यास कदाचित तुम्ही केलेल्या कोणत्याही क्रियेची पुनरावृत्ती होईल. तुम्ही सुरू ठेवू इच्छिता?</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 333a388..9d3c7436 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variasi baris perintah</translation>
 <translation id="129553762522093515">Ditutup baru-baru ini</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Cuba kosongkan kuki anda<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Buka butang Tetingkap Inkognito, tekan Enter untuk membuka tetingkap inkognito Chrome baharu</translation>
 <translation id="1301324364792935241">Semak tetapan DNS Selamat anda</translation>
 <translation id="1307966114820526988">Ciri yang Ditamatkan</translation>
 <translation id="131405271941274527"><ph name="URL" /> mahu menghantar dan menerima maklumat apabila anda mengetik telefon anda pada peranti NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Sila kemas kini frasa laluan segerak anda.</translation>
 <translation id="1787142507584202372">Tab yang dibuka dipaparkan di sini</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, pelbagai tindakan tersedia, tekan Tab untuk pergi ke setiap tindakan</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Nama Pemegang Kad</translation>
 <translation id="1807528111851433570">Helaian permulaan</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Iklan</translation>
 <translation id="1919367280705858090">Dapatkan bantuan berkaitan mesej ralat tertentu</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Tiada}=1{1 tapak}other{# tapak}}</translation>
+<translation id="1926148189358507356">Lancarkan semula untuk Mengemas kini butang, tekan Enter untuk mengemas kini Chrome</translation>
 <translation id="1945968466830820669">Anda boleh kehilangan akses kepada akaun organisasi anda atau mengalami kecurian identiti. Chromium mengesyorkan supaya kata laluan anda ditukar sekarang.</translation>
 <translation id="1947454675006758438">Kokot atas sebelah kanan</translation>
 <translation id="1959001866257244765">Bantu kami meningkatkan keselamatan di web untuk semua orang dengan menghantar <ph name="BEGIN_WHITEPAPER_LINK" />URL sesetengah halaman yang anda lawati, maklumat sistem terhad dan sesetengah kandungan halaman<ph name="END_WHITEPAPER_LINK" /> kepada Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Dasar privasi<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Tahap</translation>
 <translation id="2380886658946992094">Perundangan</translation>
 <translation id="2384307209577226199">Lalai perusahaan</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk membuka tetingkap inkognito Chrome baharu</translation>
 <translation id="2385809941344967209">Kemas kini Chrome daripada tetapan Chrome anda</translation>
 <translation id="2386255080630008482">Sijil pelayan telah dibatalkan.</translation>
 <translation id="2392959068659972793">Paparkan dasar tanpa nilai yang ditetapkan</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Papan Keratan</translation>
 <translation id="2587730715158995865">Daripada <ph name="ARTICLE_PUBLISHER" />. Baca artikel ini dan <ph name="OTHER_ARTICLE_COUNT" /> cerita lain.</translation>
 <translation id="2587841377698384444">ID API Direktori:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk mengemas kini maklumat autolengkap kredit kad dalam tetapan Chrome</translation>
 <translation id="2595719060046994702">Peranti dan akaun ini tidak diurus oleh syarikat atau organisasi lain.</translation>
 <translation id="2597378329261239068">Dokumen ini dilindungi kata laluan.  Sila masukkan kata laluan.</translation>
 <translation id="2609632851001447353">Variasi</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Tinggalkan</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Paling sesuai</translation>
+<translation id="2688738823074468716">Urus butang Kata Laluan, tekan Enter untuk mengurus kata laluan dalam tetapan Chrome</translation>
 <translation id="2688969097326701645">Ya, teruskan</translation>
 <translation id="2691924980723297736">Amaran keselamatan</translation>
 <translation id="2699302886720511147">Kad yang Diterima</translation>
@@ -743,6 +749,7 @@
 <translation id="4088981014127559358">Anjakan Y sisi 1 imej</translation>
 <translation id="4098354747657067197">Tapak menipu di hadapan</translation>
 <translation id="4101413244023615925">Teks dan grafik</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk mengurus kata laluan dalam tetapan Chrome</translation>
 <translation id="4103249731201008433">Nombor siri peranti tidak sah</translation>
 <translation id="4103763322291513355">Lawati &lt;strong&gt;chrome://policy&lt;/strong&gt; untuk melihat senarai URL yang disenarai hitam dan dasar lain yang dikuatkuasakan oleh pentadbir sistem anda.</translation>
 <translation id="4110652170750985508">Semak pembayaran anda</translation>
@@ -913,6 +920,7 @@
 <translation id="4738601419177586157">Cadangan carian <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Urus kata laluan…</translation>
 <translation id="4744603770635761495">Laluan Boleh Laku</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk mengemas kini Chrome</translation>
 <translation id="4750917950439032686">Maklumat anda (contohnya, kata laluan atau nombor kad kredit) adalah berciri peribadi apabila dihantar ke tapak ini.</translation>
 <translation id="4756388243121344051">&amp;Sejarah</translation>
 <translation id="4758311279753947758">Tambahkan maklumat hubungan</translation>
@@ -954,6 +962,7 @@
 <translation id="4926049483395192435">Mesti ditentukan.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> menyatakan</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk mencari</translation>
 <translation id="4930153903256238152">Kapasiti besar</translation>
 <translation id="4943872375798546930">Tiada hasil carian</translation>
 <translation id="4950898438188848926">Butang peralihan tab, tekan Enter untuk beralih ke tab yang terbuka, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1030,6 +1039,7 @@
 <translation id="5215116848420601511">Kaedah pembayaran dan alamat yang menggunakan Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-mel diperlukan</translation>
+<translation id="5222994811833658317">Butang Kosongkan Data, tekan Enter untuk mengosongkan data sejarah penyemakan imbas Chrome</translation>
 <translation id="5230733896359313003">Alamat Penghantaran</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1070,6 +1080,7 @@
 <translation id="534295439873310000">Peranti NFC</translation>
 <translation id="5344579389779391559">Halaman ini mungkin cuba mengenakan bayaran kepada anda</translation>
 <translation id="5355557959165512791">Anda tidak boleh melawati <ph name="SITE" /> sekarang kerana sijil tapak ini telah ditarik balik. Ralat dan serangan rangkaian biasanya bersifat sementara. Oleh sebab itu, halaman ini mungkin akan berfungsi semula kemudian.</translation>
+<translation id="5361930801096459163">Butang Carian, tekan Enter untuk mencari <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Gagal menyimpan tetapan dasar</translation>
 <translation id="5371425731340848620">Kemas kini kad</translation>
 <translation id="5377026284221673050">"Jam anda lambat" atau "Jam anda cepat" atau "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1295,6 +1306,7 @@
 <translation id="6302269476990306341">Google Assistant dalam Chrome berhenti</translation>
 <translation id="6305205051461490394"><ph name="URL" /> tidak dapat dicapai.</translation>
 <translation id="6312113039770857350">Halaman web tidak tersedia</translation>
+<translation id="6315224405718249523">Butang Terjemahkan Halaman, tekan Enter untuk menterjemahkan halaman ini</translation>
 <translation id="6321917430147971392">Semak tetapan DNS anda</translation>
 <translation id="6322182122604171028">Tidak dapat menggunakan Windows Hello</translation>
 <translation id="6328639280570009161">Cuba lumpuhkan ramalan rangkaian</translation>
@@ -1349,6 +1361,7 @@
 <translation id="6547208576736763147">Dua tebukan kiri</translation>
 <translation id="6554795675067793129">Akaun anda diurus oleh <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Buat semula</translation>
+<translation id="6566840325635607048">Kemas kini butang Kad Kredit, tekan Enter untuk mengemas kini maklumat autolengkap kad kredit dalam tetapan Chrome</translation>
 <translation id="6569060085658103619">Anda sedang melihat halaman sambungan</translation>
 <translation id="6573200754375280815">Dua tebukan kanan</translation>
 <translation id="6578796323535178455">C2 (Sampul Surat)</translation>
@@ -1589,6 +1602,7 @@
 <translation id="7549584377607005141">Halaman web ini memerlukan data yang anda masukkan sebelum ini agar dapat dipaparkan dengan betul. Anda boleh menghantar data ini semula, tetapi dengan berbuat demikian anda akan mengulangi sebarang tindakan terdahulu yang telah dilakukan oleh halaman ini.</translation>
 <translation id="7550637293666041147">Nama pengguna peranti dan nama pengguna Chrome anda</translation>
 <translation id="7552846755917812628">Cuba petua berikut:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk mengosongkan data sejarah penyemakan imbas Chrome</translation>
 <translation id="7554791636758816595">Tab Baharu</translation>
 <translation id="7564049878696755256">Anda boleh kehilangan akses kepada akaun <ph name="ORG_NAME" /> anda atau mengalami kecurian identiti. Chrome mengesyorkan supaya kata laluan anda ditukar sekarang.</translation>
 <translation id="7567204685887185387">Pelayan ini tidak dapat membuktikan bahawa domainnya ialah <ph name="DOMAIN" />; sijil keselamatannya mungkin telah dikeluarkan melalui penipuan. Ini mungkin disebabkan oleh kesilapan konfigurasi atau penyerang yang memintasi sambungan anda.</translation>
@@ -1755,6 +1769,7 @@
 <translation id="8225771182978767009">Orang yang menyediakan komputer ini telah memilih untuk menyekat tapak ini.</translation>
 <translation id="8228419419708659934">Paparan dua halaman</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk menterjemahkan halaman ini</translation>
 <translation id="8232343881378637145">Suhu platform</translation>
 <translation id="8238581221633243064">Buka halaman dalam tab Inkognito baharu</translation>
 <translation id="8241707690549784388">Halaman yang anda cari untuk maklumat terpakai yang anda masukkan. Kembali ke halaman tersebut mungkin menyebabkan mana-mana tindakan yang anda ambil akan diulang. Adakah anda mahu teruskan?</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index d9befe5..adde0d5 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -81,6 +81,7 @@
 <translation id="1294154142200295408">कमान्ड लाइनसम्बन्धी विविधताहरू</translation>
 <translation id="129553762522093515">हालैमा बन्द गरिएको</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />कुकीहरूलाई खाली गर्ने प्रयास गर्नुहोस्<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">'इन्कोग्निटो विन्डो खोल्नुहोस्' नामक बटन, Chrome मा नयाँ इन्कोग्निटो विन्डो खोल्न Enter थिच्नुहोस्</translation>
 <translation id="1301324364792935241">DNS सेटिङ</translation>
 <translation id="1307966114820526988">चल्तीबाट हटाइएका सुविधाहरू</translation>
 <translation id="131405271941274527"><ph name="URL" /> तपाईंले NFC यन्त्रहरूमा ट्याप गर्दा जानकारी पठाउन तथा प्राप्त गर्न चाहन्छ</translation>
@@ -223,6 +224,7 @@
 <translation id="1783075131180517613">कृपया तपाइँको समक्रमण पासफ्रेज अपडेट गर्नुहोस्।</translation>
 <translation id="1787142507584202372">तपाईंका खुला ट्याबहरू यहाँ देखा पर्छन्</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, एकभन्दा बढी कार्य गर्न सकिन्छ, एक एक गरी प्रत्येक कार्य गर्न Tab थिच्नुहोस्</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">कार्डवालाको नाम</translation>
 <translation id="1807528111851433570">सुरुवाती पाना</translation>
@@ -251,6 +253,7 @@
 <translation id="1919345977826869612">विज्ञापनहरू</translation>
 <translation id="1919367280705858090">निर्दिष्ट त्रुटिसम्बन्धी सन्देशमार्फत मद्दत प्राप्त गर्नुहोस्।</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{कुनै पनि होइन}=1{१ साइट}other{# साइटहरू}}</translation>
+<translation id="1926148189358507356">'अपडेट गर्न पुनः सुरु गर्नुहोस्' नामक बटन, Chrome अपडेट गर्न Enter थिच्नुहोस्</translation>
 <translation id="1945968466830820669">तपाईं आफ्नो सङ्गठनको खातामाथिको पहुँच गुमाउन सक्नुहुन्छ वा तपाईंको पहिचान चोरी हुन सक्छ। Chromium तपाईंलाई आफ्नो पासवर्ड अहिले नै परिवर्तन गर्न सिफारिस गर्छ।</translation>
 <translation id="1947454675006758438">सिरानको दायाँपट्टि स्टिच</translation>
 <translation id="1959001866257244765">Google लाई आफूले हेर्ने केही पृष्ठका <ph name="BEGIN_WHITEPAPER_LINK" />URL, प्रणालीसम्बन्धी निश्चित जानकारी र पृष्ठका केही सामग्रीहरू<ph name="END_WHITEPAPER_LINK" /> पठाएर वेब प्रयोग गर्ने सम्पूर्ण प्रयोगकर्ताहरूलाई झन् सुरक्षित राख्न मद्दत गर्नुहोस्। <ph name="BEGIN_PRIVACY_PAGE_LINK" />गोपनीयता नीति<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -355,6 +358,7 @@
 <translation id="2367567093518048410">चरण</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">उद्यम पूर्वनिर्धारित</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome मा नयाँ इन्कोग्निटो विन्डो खोल्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="2385809941344967209">आफ्नो Chrome ब्राउजरका सेटिङमा गई Chrome अपडेट गर्नुहोस्</translation>
 <translation id="2386255080630008482">सर्भरको प्रमाणपत्रलाई खारेज गरिएको छ।</translation>
 <translation id="2392959068659972793">कुनै मान सेट बिना नै नीतिहरू देखाउनुहोस्</translation>
@@ -397,6 +401,7 @@
 <translation id="2586657967955657006">क्लिपबोर्ड</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> बाट। यो र <ph name="OTHER_ARTICLE_COUNT" /> अन्य कथाहरू पढ्नुहोस्।</translation>
 <translation id="2587841377698384444">डाइरेक्ट्री API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome का सेटिङमा गई क्रेडिट कार्डको स्वतः भरिने जानकारी अपडेट गर्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="2595719060046994702">कुनै कम्पनी वा अन्य सङ्गठनले यो यन्त्र वा खाताको व्यवस्थापन गर्दैन।</translation>
 <translation id="2597378329261239068">यो कागजात पासवर्ड सुरक्षित छ। कृपया पासवर्ड प्रविष्टि गर्नुहोस्।</translation>
 <translation id="2609632851001447353">विचरणहरू</translation>
@@ -418,6 +423,7 @@
 <translation id="2677748264148917807">छोड्नुहोस्</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">सबैभन्दा मिल्ने</translation>
+<translation id="2688738823074468716">'पासवर्डहरू व्यवस्थापन गर्नुहोस्' नामक बटन, Chrome का सेटिङमा गई पासवर्डहरू व्यवस्थापन गर्न Enter थिच्नुहोस्</translation>
 <translation id="2691924980723297736">सुरक्षासम्बन्धी चेतावनी</translation>
 <translation id="2699302886720511147">स्वीकार गरिने कार्डहरू</translation>
 <translation id="2701514975700770343">तलतिर फर्केको</translation>
@@ -735,6 +741,7 @@
 <translation id="4088981014127559358">सतह १ मा रहेको छविको Y सिफ्ट</translation>
 <translation id="4098354747657067197">अगाडि धोकेबाज साइट</translation>
 <translation id="4101413244023615925">पाठ र ग्राफिक</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome का सेटिङमा गई पासवर्डहरू व्यवस्थापन गर्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="4103249731201008433">यन्त्र सिरियल नम्बर अवैध छ</translation>
 <translation id="4103763322291513355">कालोपत्र गरिएका युआरएलहरू र तपाइँको प्रणाली प्रशासकद्वारा लागू गरिएका अन्य नीतिहरू हेर्नको लागि &lt;strong&gt;chrome://policy&lt;/strong&gt; भ्रमण गर्नुहोस्।</translation>
 <translation id="4110652170750985508">आफ्नो भुक्तानीको समीक्षा गर्नुहोस्</translation>
@@ -904,6 +911,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> को खोजसम्बन्धी सुझाव</translation>
 <translation id="4742407542027196863">पासवर्डहरूको व्यवस्थापन गर्नुहोस्…</translation>
 <translation id="4744603770635761495">कार्यान्वयनयोग्य मार्ग</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome अपडेट गर्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="4750917950439032686">यस साइटमा तपाईँको जानकारी (उदाहरणका लागि पासवर्ड वा क्रेडिट कार्डको नम्बर) पठाउँदा त्यो निजी रहन्छ।</translation>
 <translation id="4756388243121344051">&amp;इतिहास</translation>
 <translation id="4758311279753947758">सम्पर्क बारे जानकारी थप्नुहोस्</translation>
@@ -945,6 +953,7 @@
 <translation id="4926049483395192435">निर्दिष्ट हुनु पर्छ।</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> यसो भन्छ</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, खोज्नका लागि Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="4930153903256238152">धेरै क्षमता भएको</translation>
 <translation id="4943872375798546930">कुनै नतिजा छैन</translation>
 <translation id="4950898438188848926">ट्याब बदल्ने बटन, खुला रहेको ट्याबमा जान Enter थिच्नुहोस्, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1021,6 +1030,7 @@
 <translation id="5215116848420601511">Google Pay को प्रयोग गर्ने भुक्तानी विधि र ठेगानाहरू</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">इमेल आवश्यक छ</translation>
+<translation id="5222994811833658317">'डेटा मेटाउनुहोस्' नामक बटन, Chrome को ब्राउजिङ इतिहाससम्बन्धी डेटा मेटाउन Enter थिच्नुहोस्</translation>
 <translation id="5230733896359313003">ढुवानीको ठेगाना</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1061,6 +1071,7 @@
 <translation id="534295439873310000">NFC यन्त्रहरू</translation>
 <translation id="5344579389779391559">यो पृष्ठले तपाईंलाई पैसा तिराउने प्रयास गर्न सक्छ</translation>
 <translation id="5355557959165512791">यो साइटको प्रमाणपत्र खारेज गरिएको हुनाले तपाईं अहिले नै <ph name="SITE" /> मा जान सक्नुहुन्न। नेटवर्कसम्बन्धी त्रुटि र आक्रमणहरू सामान्यतया अस्थायी हुन्छन्, त्यसैले यो पृष्ठले पछि सम्भवतः काम गर्नसक्नेछ।</translation>
+<translation id="5361930801096459163">खोज बटन, <ph name="KEYWORD_SUFFIX" /> खोज्न Enter थिच्नुहोस्</translation>
 <translation id="536296301121032821">नीति सेटिङहरू भण्डारण गर्न असफल भयो</translation>
 <translation id="5371425731340848620">कार्ड अपडेट गर्नुहोस्</translation>
 <translation id="5377026284221673050">"तपाईंको घडी ढिला छ" वा "तपाईंको घडी छिटो छ" अथवा "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1286,6 +1297,7 @@
 <translation id="6302269476990306341">Chrome को Google सहायक रोकिँदै छ</translation>
 <translation id="6305205051461490394"><ph name="URL" /> पहुँच गर्न सकिँदैन।</translation>
 <translation id="6312113039770857350">वेबपृष्ठ उपलब्ध छैन</translation>
+<translation id="6315224405718249523">'पृष्ठ अनुवाद गर्नुहोस्' नामक बटन, यो पृष्ठ अनुवाद गर्न Enter थिच्नुहोस्</translation>
 <translation id="6321917430147971392">तपाइँको डिएनएस सेटिङहरू हेर्नुहोस्</translation>
 <translation id="6322182122604171028">Windows Hello प्रयोग गर्न सकिएन</translation>
 <translation id="6328639280570009161">सञ्जाल भविष्यवाणि असक्षम गर्नुहोस्</translation>
@@ -1340,6 +1352,7 @@
 <translation id="6547208576736763147">बायाँपट्टि दुई प्वाल</translation>
 <translation id="6554795675067793129">तपाईंको खाता <ph name="ENROLLMENT_DOMAIN" /> द्वारा व्यवस्थापन गरिएको छ।</translation>
 <translation id="6556866813142980365">फेरि गर्नुहोस्</translation>
+<translation id="6566840325635607048">'क्रेडिट कार्डको जानकारी अपडेट गर्नुहोस्' नामक बटन, Chrome का सेटिङमा गई क्रेडिट कार्डको स्वतः भरिने जानकारी अपडेट गर्न Enter थिच्नुहोस्</translation>
 <translation id="6569060085658103619">तपाईं एउटा विस्तार सम्बन्धी पृष्ठ हेर्दै हुनुहुन्छ</translation>
 <translation id="6573200754375280815">दायाँपट्टि दुई प्वाल</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1579,6 +1592,7 @@
 <translation id="7549584377607005141">यो वेबपृष्ठ ठीकसँग प्रदर्शित हुनको लागि यस वेबपृष्ठलाई तपाइँले पहिले प्रविष्ट गर्नुभएको लगत आवश्यक छ। तपाइँले यो लगत फेरि पठाउन सक्नुहुन्छ, तर यसो गर्नाले यस पृष्ठले पहिले प्रददर्शन गरेको कुनै पनि कार्य तपाइँले फेरि गर्नुहुनेछ।</translation>
 <translation id="7550637293666041147">तपाईंको यन्त्रको प्रयोगकर्ताको नाम र Chrome को प्रयोगकर्ताको नाम</translation>
 <translation id="7552846755917812628">निम्न सुझावहरूको पालना गरी हेर्नुहोस्:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome को ब्राउजिङ इतिहाससम्बन्धी डेटा मेटाउन Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="7554791636758816595">नयाँ ट्याब</translation>
 <translation id="7564049878696755256">तपाईंले आफ्नो <ph name="ORG_NAME" /> खातामाथिको पहुँच गुमाउन सक्नुहुन्छ वा तपाईंको पहिचान चोरी हुन सक्छ। Chrome तपाईंलाई आफ्नो पासवर्ड अहिले नै परिवर्तन गर्न सिफारिस गर्छ।</translation>
 <translation id="7567204685887185387">यो सर्भरले यो <ph name="DOMAIN" /> को भनि प्रमाणित गर्न सकेन; यसको सुरक्षा प्रमाणपत्रलाई कपटपूर्वक जारी गरिएको हुन सक्छ। यो कुनै एउटा मिसकन्फिगरेसन वा कुनै आक्रमणकारीले तपाईंको जडानमा गरेको हस्तक्षेपको कारणले गर्दा भएको हुन सक्छ।</translation>
@@ -1745,6 +1759,7 @@
 <translation id="8225771182978767009">यो कम्प्युटर सेटअप गर्ने व्यक्तिले यो साइटमाथि रोक लगाउने छनौट गर्नुभएको छ।</translation>
 <translation id="8228419419708659934">दुई पृष्ठमा देखाइने दृश्य</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, यो पृष्ठ अनुवाद गर्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="8232343881378637145">प्लेटफर्मको तापक्रम</translation>
 <translation id="8238581221633243064">पृष्ठलाई नयाँ इन्कोग्निटो ट्याबमा खोल्नुहोस्</translation>
 <translation id="8241707690549784388">तपाईंले खोजिरहनुभएको पृष्ठले तपाईंले प्रविष्ट गर्नुभएको जानकारी प्रयोग गर्‍यो। त्यस पृष्ठमा फर्किनाले तपाईंले दोहोरिनका लागि लिनुभएको कुनैपनि  प्रवेश कि प्रयोग जानकारी खोज्दै हुनुहुन्छ पृष्ठ कि। कि पृष्ठ फर्केपछि तिमी ले कुनै पनि काम नदोहोरिने गर्न लगाउँछ। तपाईं जारी राख्न चाहनुहुन्छ?</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 2176f16e..b9df460 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Opdrachtregelvarianten</translation>
 <translation id="129553762522093515">Recent gesloten</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Probeer je cookies te wissen<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Knop 'Incognitovenster openen', druk op 'Enter' om een nieuw incognitovenster in Chrome te openen.</translation>
 <translation id="1301324364792935241">Controleer je instellingen voor beveiligde DNS</translation>
 <translation id="1307966114820526988">Verouderde functies</translation>
 <translation id="131405271941274527"><ph name="URL" /> wil informatie sturen en ontvangen als je je telefoon tegen een NFC-apparaat houdt</translation>
@@ -222,6 +223,7 @@
 <translation id="1783075131180517613">Update je wachtwoordzin voor synchronisatie.</translation>
 <translation id="1787142507584202372">Je geopende tabbladen worden hier weergegeven</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, er zijn meerdere acties beschikbaar, druk op 'Tab' om erdoorheen te bladeren</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Naam kaarthouder</translation>
 <translation id="1807528111851433570">Startblad</translation>
@@ -250,6 +252,7 @@
 <translation id="1919345977826869612">Advertenties</translation>
 <translation id="1919367280705858090">Hulp bij een specifieke foutmelding</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Geen}=1{1 site}other{# sites}}</translation>
+<translation id="1926148189358507356">Knop 'Herstarten om te updaten', druk op 'Enter' om Chrome te updaten</translation>
 <translation id="1945968466830820669">Je kunt de toegang tot het account van je organisatie kwijtraken of slachtoffer worden van identiteitsdiefstal. Chromium raadt je aan je wachtwoord nu te wijzigen.</translation>
 <translation id="1947454675006758438">Nietje rechtsboven</translation>
 <translation id="1959001866257244765">Help de beveiliging op internet te verbeteren voor iedereen door <ph name="BEGIN_WHITEPAPER_LINK" />URL's van sommige pagina's die je bezoekt, beperkte systeemgegevens en bepaalde paginacontent<ph name="END_WHITEPAPER_LINK" /> naar Google te sturen. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Privacybeleid<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -354,6 +357,7 @@
 <translation id="2367567093518048410">Niveau</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Zakelijk standaard</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om een nieuw incognitovenster in Chrome te openen</translation>
 <translation id="2385809941344967209">Chrome updaten in de Chrome-instellingen</translation>
 <translation id="2386255080630008482">Het servercertificaat is ingetrokken.</translation>
 <translation id="2392959068659972793">Beleid zonder ingestelde waarde weergeven</translation>
@@ -396,6 +400,7 @@
 <translation id="2586657967955657006">Klembord</translation>
 <translation id="2587730715158995865">Van <ph name="ARTICLE_PUBLISHER" />. Lees dit en <ph name="OTHER_ARTICLE_COUNT" /> andere artikelen.</translation>
 <translation id="2587841377698384444">Directory API-ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om de gegevens voor het automatisch aanvullen van creditcardgegevens in de Chrome-instellingen te updaten.</translation>
 <translation id="2595719060046994702">Dit apparaat en dit account worden niet beheerd door een bedrijf of andere organisatie.</translation>
 <translation id="2597378329261239068">Dit document is beveiligd met een wachtwoord. Geef een wachtwoord op.</translation>
 <translation id="2609632851001447353">Varianten</translation>
@@ -417,6 +422,7 @@
 <translation id="2677748264148917807">Verlaten</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Best passend</translation>
+<translation id="2688738823074468716">Knop 'Wachtwoorden beheren', druk op 'Enter' om wachtwoorden te beheren in de Chrome-instellingen</translation>
 <translation id="2688969097326701645">Ja, doorgaan</translation>
 <translation id="2691924980723297736">Veiligheidswaarschuwing</translation>
 <translation id="2699302886720511147">Geaccepteerde passen</translation>
@@ -732,6 +738,7 @@
 <translation id="4088981014127559358">Beeldverschuiving Y van zijde 1</translation>
 <translation id="4098354747657067197">Misleidende site gedetecteerd</translation>
 <translation id="4101413244023615925">Tekst en graphics</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' om wachtwoorden te beheren in de Chrome-instellingen</translation>
 <translation id="4103249731201008433">Serienummer van apparaat is ongeldig</translation>
 <translation id="4103763322291513355">Ga naar &lt;strong&gt;chrome://policy&lt;/strong&gt; om de lijst met URL's op de zwarte lijst en andere beleidsregels te bekijken die worden afgedwongen door je systeembeheerder.</translation>
 <translation id="4110652170750985508">Je betaling controleren</translation>
@@ -902,6 +909,7 @@
 <translation id="4738601419177586157">Zoeksuggestie: <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Wachtwoorden beheren…</translation>
 <translation id="4744603770635761495">Uitvoerbaar pad</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om Chrome te updaten</translation>
 <translation id="4750917950439032686">Je gegevens (zoals wachtwoorden of creditcardnummers) zijn privé wanneer ze worden verzonden naar deze site.</translation>
 <translation id="4756388243121344051">Gesc&amp;hiedenis</translation>
 <translation id="4758311279753947758">Contactgegevens toevoegen</translation>
@@ -943,6 +951,7 @@
 <translation id="4926049483395192435">Moet worden opgegeven.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> meldt het volgende</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om te zoeken</translation>
 <translation id="4930153903256238152">Hoge capaciteit</translation>
 <translation id="4943872375798546930">Geen resultaten</translation>
 <translation id="4950898438188848926">Schakelknop voor tabbladen, druk op Enter om naar het geopende tabblad, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />, te schakelen</translation>
@@ -1019,6 +1028,7 @@
 <translation id="5215116848420601511">Betaalmethoden en adressen die Google Pay gebruiken</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-mailadres vereist</translation>
+<translation id="5222994811833658317">Knop 'Gegevens wissen', druk op 'Enter' om de browsegeschiedenisgegevens van Chrome te wissen</translation>
 <translation id="5230733896359313003">Verzendadres</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1059,6 +1069,7 @@
 <translation id="534295439873310000">NFC-apparaten</translation>
 <translation id="5344579389779391559">Deze pagina brengt je mogelijk kosten in rekening</translation>
 <translation id="5355557959165512791">Je kunt <ph name="SITE" /> momenteel niet bezoeken, omdat het bijbehorende certificaat is ingetrokken. Netwerkfouten en aanvallen zijn doorgaans tijdelijk, dus deze pagina werkt later waarschijnlijk correct.</translation>
+<translation id="5361930801096459163">Knop 'Zoeken', druk op 'Enter' om op '<ph name="KEYWORD_SUFFIX" />' te zoeken</translation>
 <translation id="536296301121032821">Opslaan van beleidsinstellingen is mislukt</translation>
 <translation id="5371425731340848620">Pas updaten</translation>
 <translation id="5377026284221673050">'Je klok loopt achter', 'Je klok loopt voor' of '&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;'</translation>
@@ -1283,6 +1294,7 @@
 <translation id="6302269476990306341">De Google Assistent in Chrome wordt gestopt</translation>
 <translation id="6305205051461490394"><ph name="URL" /> is niet bereikbaar.</translation>
 <translation id="6312113039770857350">Webpagina niet beschikbaar</translation>
+<translation id="6315224405718249523">Knop 'Pagina vertalen', druk op 'Enter' om deze pagina te vertalen</translation>
 <translation id="6321917430147971392">Controleer je DNS-instellingen</translation>
 <translation id="6322182122604171028">Kan Windows Hello niet gebruiken</translation>
 <translation id="6328639280570009161">Probeer netwerkvoorspelling uit te schakelen</translation>
@@ -1337,6 +1349,7 @@
 <translation id="6547208576736763147">Twee perforaties links</translation>
 <translation id="6554795675067793129">Je account wordt beheerd door <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Opnieuw</translation>
+<translation id="6566840325635607048">Knop 'Creditcard updaten', druk op 'Enter' om de gegevens voor het automatisch aanvullen van creditcardgegevens in de Chrome-instellingen te updaten</translation>
 <translation id="6569060085658103619">Je bekijkt een extensiepagina</translation>
 <translation id="6573200754375280815">Twee perforaties rechts</translation>
 <translation id="6578796323535178455">C2 (envelop)</translation>
@@ -1577,6 +1590,7 @@
 <translation id="7549584377607005141">Deze webpagina kan alleen correct worden weergegeven op basis van gegevens die je eerder hebt opgegeven. Je kunt deze gegevens opnieuw verzenden, maar hierdoor worden de acties herhaald die eerder op deze pagina zijn uitgevoerd.</translation>
 <translation id="7550637293666041147">De gebruikersnaam van je apparaat en je Chrome-gebruikersnaam</translation>
 <translation id="7552846755917812628">Probeer de volgende tips:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om de browsegeschiedenisgegevens van Chrome te wissen</translation>
 <translation id="7554791636758816595">Nieuw tabblad</translation>
 <translation id="7564049878696755256">Je kunt de toegang tot je account van <ph name="ORG_NAME" /> kwijtraken of slachtoffer worden van identiteitsdiefstal. Chrome raadt je aan je wachtwoord nu te wijzigen.</translation>
 <translation id="7567204685887185387">De server kan niet bewijzen dat dit <ph name="DOMAIN" /> is. Het beveiligingscertificaat van de server is mogelijk frauduleus verstrekt. Dit kan worden veroorzaakt door een verkeerde configuratie of een aanvaller die je verbinding onderschept.</translation>
@@ -1743,6 +1757,7 @@
 <translation id="8225771182978767009">De persoon die deze computer heeft geconfigureerd, heeft deze site geblokkeerd.</translation>
 <translation id="8228419419708659934">Weergave met twee pagina's</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op 'Tab' en vervolgens op 'Enter' om deze pagina te vertalen</translation>
 <translation id="8232343881378637145">Temperatuur van plateau</translation>
 <translation id="8238581221633243064">Pagina openen op een nieuw incognitotabblad</translation>
 <translation id="8241707690549784388">De pagina die je zoekt, heeft informatie gebruikt die je hebt opgegeven Als je terugkeert naar deze pagina, worden acties die je hebt uitgevoerd, mogelijk herhaald. Wil je doorgaan?</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 6d92e12..ba22aa8 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variasjoner i kommandolinjen</translation>
 <translation id="129553762522093515">Nylig lukket</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Prøv å slette informasjonskapslene dine<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Knappen «Åpne inkognitovindu» – trykk på Enter for å åpne et nytt inkognitovindu i Chrome</translation>
 <translation id="1301324364792935241">Kontrollér innstillingene for sikker DNS</translation>
 <translation id="1307966114820526988">Avviklede funksjoner</translation>
 <translation id="131405271941274527"><ph name="URL" /> vil sende og motta info når du berører NFC-enheter med telefonen</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Oppdater passordfrasen for synkronisering.</translation>
 <translation id="1787142507584202372">De åpne fanene dine vises her</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" /> – flere handlinger er tilgjengelige. Trykk på Tab for å bla gjennom dem</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kortinnehaverens navn</translation>
 <translation id="1807528111851433570">Startark</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Annonser</translation>
 <translation id="1919367280705858090">Få hjelp med spesifikke feilmeldinger</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Ingen}=1{1 nettsted}other{# nettsteder}}</translation>
+<translation id="1926148189358507356">Knappen «Start på nytt for å oppdatere» – trykk på Enter for å oppdatere Chrome</translation>
 <translation id="1945968466830820669">Du kan miste tilgangen til organisasjonskontoen din eller bli utsatt for identitetstyveri. Chromium anbefaler at du endrer passordet ditt nå.</translation>
 <translation id="1947454675006758438">Stift oppe til høyre</translation>
 <translation id="1959001866257244765">Bidra til å gjøre sikkerheten på nettet bedre for alle ved å sende <ph name="BEGIN_WHITEPAPER_LINK" />nettadressene til noen av sidene du besøker, begrenset systeminformasjon og noe sideinnhold<ph name="END_WHITEPAPER_LINK" /> til Google. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Personvernregler<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Nivå</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Bedriftsstandard</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å åpne et nytt inkognitovindu i Chrome</translation>
 <translation id="2385809941344967209">Oppdater Chrome fra Chrome-innstillingene</translation>
 <translation id="2386255080630008482">Tjenerens sertifikat er tilbakekalt.</translation>
 <translation id="2392959068659972793">Vis innstillinger uten verdi</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Utklippstavle</translation>
 <translation id="2587730715158995865">Fra <ph name="ARTICLE_PUBLISHER" />. Les denne og <ph name="OTHER_ARTICLE_COUNT" /> andre nyhetssaker.</translation>
 <translation id="2587841377698384444">ID for katalog-API:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å oppdatere autofyll av kredittkortinformasjon i Chrome-innstillingene</translation>
 <translation id="2595719060046994702">Denne enheten og kontoen administreres ikke av et selskap eller en annen organisasjon.</translation>
 <translation id="2597378329261239068">Dette dokumentet er passordbeskyttet. Skriv inn et passord.</translation>
 <translation id="2609632851001447353">Varianter</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Gå ut</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Beste tilpassing</translation>
+<translation id="2688738823074468716">Knappen «Administrer passord» – trykk på Enter for å administrere passord i Chrome-innstillingene</translation>
 <translation id="2688969097326701645">Ja, fortsett</translation>
 <translation id="2691924980723297736">Sikkerhetsadvarsel</translation>
 <translation id="2699302886720511147">Godkjente kort</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Y-forskyvning av bilde på side 1</translation>
 <translation id="4098354747657067197">Villedende nettsted i sikte</translation>
 <translation id="4101413244023615925">Tekst og grafikk</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å administrere passord i Chrome-innstillingene</translation>
 <translation id="4103249731201008433">Enhetens serienummer er ugyldig</translation>
 <translation id="4103763322291513355">Gå til &lt;strong&gt;chrome://policy&lt;/strong&gt; for å se listen over sperrede nettadresser og andre innstillinger aktivert av systemadministratoren din.</translation>
 <translation id="4110652170750985508">Gjennomgå betalingen</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Søkeforslag for <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Administrer passord…</translation>
 <translation id="4744603770635761495">Kjørbar sti</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å oppdatere Chrome</translation>
 <translation id="4750917950439032686">Informasjonen din (for eksempel passord eller kredittkortnumre) er privat når den sendes til dette nettstedet.</translation>
 <translation id="4756388243121344051">&amp;Logg</translation>
 <translation id="4758311279753947758">Legg til kontaktinformasjon</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Må angis.</translation>
 <translation id="4926159001844873046">På <ph name="SITE" /> står det</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å søke</translation>
 <translation id="4930153903256238152">Stor kapasitet</translation>
 <translation id="4943872375798546930">Ingen resultater</translation>
 <translation id="4950898438188848926">Knappen for å bytte fane – trykk på Enter for å bytte til den åpne fanen, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Betalingsmåter og adresser som bruker Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-post er obligatorisk</translation>
+<translation id="5222994811833658317">Knappen «Fjern data» – trykk på Enter for å tømme nettleserloggen i Chrome</translation>
 <translation id="5230733896359313003">Leveringsadresse</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">NFC-enheter</translation>
 <translation id="5344579389779391559">Denne siden kan prøve å belaste deg for penger</translation>
 <translation id="5355557959165512791">Du kan ikke gå til <ph name="SITE" /> akkurat nå, siden sertifikatet for nettstedet er trukket tilbake. Nettverksfeil- og angrep er vanligvis midlertidige, så denne siden fungerer sannsynligvis senere.</translation>
+<translation id="5361930801096459163">Søkeknappen – trykk på Enter for å søke etter <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Kunne ikke lagre angivelsen for enhetsinnstillinger</translation>
 <translation id="5371425731340848620">Oppdater kortet</translation>
 <translation id="5377026284221673050">«Klokken går for sent», «Klokken går for fort» eller «&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;»</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Stopper Google-assistenten i Chrome</translation>
 <translation id="6305205051461490394"><ph name="URL" /> er ikke tilgjengelig.</translation>
 <translation id="6312113039770857350">Nettsiden er ikke tilgjengelig</translation>
+<translation id="6315224405718249523">Knappen «Oversett siden» – trykk på Enter for å oversette denne siden</translation>
 <translation id="6321917430147971392">Kontrollér DNS-innstillingene dine</translation>
 <translation id="6322182122604171028">Kunne ikke bruke Windows Hello</translation>
 <translation id="6328639280570009161">Prøv å slå av nettverksforutsigelse</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">To hull venstre</translation>
 <translation id="6554795675067793129">Kontoen din administreres av <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Gjør om</translation>
+<translation id="6566840325635607048">Knappen «Oppdater kredittkort» – trykk på Enter for å oppdatere autofyll av kredittkortinformasjon i Chrome-innstillingene</translation>
 <translation id="6569060085658103619">Du ser på en utvidelsesside</translation>
 <translation id="6573200754375280815">To hull høyre</translation>
 <translation id="6578796323535178455">C2 (konvolutt)</translation>
@@ -1587,6 +1600,7 @@
 <translation id="7549584377607005141">Denne nettsiden krever data som du har skrevet inn tidligere for å vises korrekt. Du kan sende inn dataene på nytt, men hvis du gjør det, gjentas eventuelle handlinger denne siden utførte.</translation>
 <translation id="7550637293666041147">Brukernavnet ditt på enheten og i Chrome</translation>
 <translation id="7552846755917812628">Prøv følgende tips:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å tømme nettleserloggen i Chrome</translation>
 <translation id="7554791636758816595">Ny fane</translation>
 <translation id="7564049878696755256">Du kan miste tilgangen til <ph name="ORG_NAME" />-kontoen din eller bli utsatt for identitetstyveri. Chrome anbefaler at du endrer passordet ditt nå.</translation>
 <translation id="7567204685887185387">Denne tjeneren kunne ikke bevise at den er <ph name="DOMAIN" />. Tjenerens sikkerhetssertifikat kan ha blitt utstedt på uredelig vis. Dette kan være forårsaket av en feilkonfigurering eller en angriper som avskjærer tilkoblingen din.</translation>
@@ -1753,6 +1767,7 @@
 <translation id="8225771182978767009">Personen som konfigurerte denne datamaskinen, har valgt å blokkere dette nettstedet.</translation>
 <translation id="8228419419708659934">Visning med to sider</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å oversette denne siden</translation>
 <translation id="8232343881378637145">Plattformtemperatur</translation>
 <translation id="8238581221633243064">Åpne siden i et nytt inkognitovindu</translation>
 <translation id="8241707690549784388">Siden du ser etter, brukte informasjon som du anga. Hvis du går tilbake til denne siden, kan det føre til at handlinger som er utført, blir gjentatt. Vil du fortsette?</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 7683a3c..87df7c7 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">ਆਦੇਸ਼-ਰੇਖਾ ਵਖਰੇਂਵੇ</translation>
 <translation id="129553762522093515">ਹਾਲ ਵਿੱਚ ਹੀ ਬੰਦ ਕੀਤੇ</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ਆਪਣੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਨੂੰ ਅਜ਼ਮਾਓ<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">'ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਖੋਲ੍ਹੋ' ਬਟਨ, ਨਵੀਂ Chrome ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="1301324364792935241">ਆਪਣੀਆਂ ਸੁਰੱਖਿਅਤ DNS ਸੈਟਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation>
 <translation id="1307966114820526988">ਨਾਪਸੰਦ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ</translation>
 <translation id="131405271941274527">ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਕਿਸੇ NFC ਡੀਵਾਈਸ 'ਤੇ ਟੈਪ ਕਰਦੇ ਹੋ ਤਾਂ <ph name="URL" /> ਜਾਣਕਾਰੀ ਭੇਜਣਾ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਸਿੰਕ ਪਾਸਫਰੇਜ਼ ਅੱਪਡੇਟ ਕਰੋ।</translation>
 <translation id="1787142507584202372">ਤੁਹਾਡੇ ਖੁੱਲ੍ਹੇ ਟੈਬ ਇੱਥੇ ਵਿਖਾਈ ਦੇਣਗੇ</translation>
 <translation id="1791429645902722292">Google ਸਮਾਰਟ ਲੌਕ</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ਇੱਕ ਤੋਂ ਵੱਧ ਕਾਰਵਾਈਆਂ ਉਪਲਬਧ ਹਨ, ਉਹਨਾਂ ਵਿੱਚ ਚੱਕਰ ਲਗਾਉਣ ਲਈ Tab ਦਬਾਓ</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ਕਾਰਡਧਾਰਕ ਦਾ ਨਾਮ</translation>
 <translation id="1807528111851433570">ਸ਼ੁਰੂਆਤੀ ਸ਼ੀਟ</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">ਵਿਗਿਆਪਨ</translation>
 <translation id="1919367280705858090">ਇੱਕ ਖਾਸ ਗੜਬੜ-ਸੁਨੇਹਾ ਸੰਬੰਧੀ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰੋ</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ਕੋਈ ਨਹੀਂ}=1{1 ਸਾਈਟ}other{# ਸਾਈਟਾਂ}}</translation>
+<translation id="1926148189358507356">'ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਮੁੜ-ਲਾਂਚ ਕਰੋ' ਬਟਨ, Chrome ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="1945968466830820669">ਤੁਸੀਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਖਾਤੇ 'ਤੇ ਪਹੁੰਚ ਗੁਆ ਸਕਦੇ ਹੋ ਜਾਂ ਤੁਹਾਡੀ ਪਛਾਣ ਚੋਰੀ ਹੋ ਸਕਦੀ ਹੈ। Chromium ਵੱਲੋਂ ਹੁਣੇ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।</translation>
 <translation id="1947454675006758438">ਉੱਪਰ ਸੱਜੇ ਪਾਸੇ ਪਿੰਨ</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੇ ਕੁਝ ਪੰਨਿਆਂ ਦੇ URL, ਸੀਮਤ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਅਤੇ ਕੁਝ ਪੰਨਾ ਸਮੱਗਰੀ<ph name="END_WHITEPAPER_LINK" /> Google ਨੂੰ ਭੇਜ ਕੇ ਵੈੱਬ 'ਤੇ ਸੁਰੱਖਿਆ ਨੂੰ ਹਰੇਕ ਲਈ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ। <ph name="BEGIN_PRIVACY_PAGE_LINK" />ਪਰਦੇਦਾਰੀ ਨੀਤੀ<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">ਪੱਧਰ</translation>
 <translation id="2380886658946992094">ਕਨੂੰਨੀ</translation>
 <translation id="2384307209577226199">ਐਂਟਰਪ੍ਰਾਈਜ਼ ਪੂਰਵ-ਨਿਰਧਾਰਤ</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ ਨਵੀਂ Chrome ਇਨਕੋਗਨਿਟੋ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="2385809941344967209">ਆਪਣੀਆਂ Chrome ਸੈਟਿੰਗਾਂ ਤੋਂ Chrome ਅੱਪਡੇਟ ਕਰੋ</translation>
 <translation id="2386255080630008482">ਸਰਵਰ ਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਰੱਦ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
 <translation id="2392959068659972793">ਕੋਈ ਵੈਲਯੂ ਸੈਟ ਨਾ ਹੋਣ ਵਾਲੀਆਂ ਨੀਤੀਆਂ ਦਿਖਾਓ</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">ਕਲਿੱਪਬੋਰਡ</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> ਵੱਲੋਂ। ਇਸਨੂੰ ਅਤੇ <ph name="OTHER_ARTICLE_COUNT" /> ਹੋਰ ਖਬਰ ਲੇਖਾਂ ਨੂੰ ਪੜ੍ਹੋ।</translation>
 <translation id="2587841377698384444">ਡਾਇਰੈਕਟਰੀ API ਆਈ.ਡੀ.:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਆਟੋਫਿਲ ਜਾਣਕਾਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="2595719060046994702">ਇਸ ਡੀਵਾਈਸ ਅਤੇ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ ਕਿਸੇ ਕੰਪਨੀ ਜਾਂ ਹੋਰ ਸੰਸਥਾ ਵੱਲੋਂ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।</translation>
 <translation id="2597378329261239068">ਇਹ ਦਸਤਾਵੇਜ਼ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ।</translation>
 <translation id="2609632851001447353">ਵੈਰੀਏਸ਼ੰਸ</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">ਛੱਡੋ</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ਪੂਰੀ ਤਰ੍ਹਾਂ ਫਿੱਟ</translation>
+<translation id="2688738823074468716">'ਪਾਸਵਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ' ਬਟਨ, Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਪਾਸਵਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="2688969097326701645">ਹਾਂ, ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="2691924980723297736">ਸੁਰੱਖਿਆ ਚਿਤਾਵਨੀ</translation>
 <translation id="2699302886720511147">ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਕਾਰਡ</translation>
@@ -733,6 +739,7 @@
 <translation id="4088981014127559358">ਸਾਈਡ 1 ਚਿੱਤਰ Y ਸ਼ਿਫਟ</translation>
 <translation id="4098354747657067197">ਅੱਗੇ ਧੋਖੇਬਾਜ਼ ਸਾਈਟ ਹੈ</translation>
 <translation id="4101413244023615925">ਲਿਖਤ ਅਤੇ ਗ੍ਰਾਫ਼ਿਕ</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਪਾਸਵਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="4103249731201008433">ਡੀਵਾਈਸ ਦਾ ਸੀਰੀਅਲ ਨੰਬਰ ਅਵੈਧ ਹੈ</translation>
 <translation id="4103763322291513355">ਬਲੈਕਲਿਸਟ ਕੀਤੇ URL ਅਤੇ ਤੁਹਾਡੇ ਸਿਸਟਮ ਪ੍ਰਬੰਧਕ ਵੱਲੋਂ ਲਾਗੂ ਕੀਤੀਆਂ ਹੋਰ ਨੀਤੀਆਂ ਦੀ ਸੂਚੀ ਦੇਖਣ ਲਈ &lt;strong&gt;chrome://policy&lt;/strong&gt; 'ਤੇ ਜਾਓ।</translation>
 <translation id="4110652170750985508">ਆਪਣੇ ਭੁਗਤਾਨ ਦੀ ਸਮੀਖਿਆ ਕਰੋ</translation>
@@ -899,6 +906,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> ਖੋਜ ਸੁਝਾਅ</translation>
 <translation id="4742407542027196863">ਪਾਸਵਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ…</translation>
 <translation id="4744603770635761495">ਐਗਜੀਕਿਊਟੇਬਲ ਪਾਥ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ Chrome ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="4750917950439032686">ਤੁਹਾਡੀ ਜਾਣਕਾਰੀ (ਉਦਾਹਰਨ ਲਈ, ਪਾਸਵਰਡ ਜਾਂ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ) ਨਿੱਜੀ ਹੈ ਜਦੋਂ ਉਸਨੂੰ ਇਸ ਸਾਈਟ 'ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।</translation>
 <translation id="4756388243121344051">&amp;ਇਤਿਹਾਸ</translation>
 <translation id="4758311279753947758">ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਕਰੋ</translation>
@@ -940,6 +948,7 @@
 <translation id="4926049483395192435">ਨਿਰਦਿਸ਼ਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> ਦੇ ਮੁਤਾਬਕ</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ ਖੋਜ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="4930153903256238152">ਵੱਧ ਸਮਰੱਥਾ</translation>
 <translation id="4943872375798546930">ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ</translation>
 <translation id="4950898438188848926">ਟੈਬ ਬਦਲਣ ਦਾ ਬਟਨ, ਖੁੱਲ੍ਹੀ ਟੈਬ, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> 'ਤੇ ਜਾਣ ਲਈ ਐਂਟਰ ਦਬਾਓ</translation>
@@ -1016,6 +1025,7 @@
 <translation id="5215116848420601511">Google Pay ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੀਆਂ ਭੁਗਤਾਨ ਵਿਧੀਆਂ ਅਤੇ ਪਤੇ</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ਈਮੇਲ ਲੋੜੀਂਦੀ ਹੈ</translation>
+<translation id="5222994811833658317">'ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ' ਬਟਨ, Chrome ਦੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਡਾਟੇ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="5230733896359313003">ਸ਼ਿਪਿੰਗ ਪਤਾ</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1056,6 +1066,7 @@
 <translation id="534295439873310000">NFC ਡੀਵਾਈਸਾਂ</translation>
 <translation id="5344579389779391559">ਸ਼ਾਇਦ ਇਸ ਪੰਨੇ 'ਤੇ ਤੁਹਾਡੇ ਤੋਂ ਖਰਚਾ ਲਿਆ ਜਾਵੇ</translation>
 <translation id="5355557959165512791">ਤੁਸੀਂ ਇਸ ਵੇਲੇ <ph name="SITE" /> 'ਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹੋ, ਕਿਉਂਕਿ ਇਸਦਾ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਰੱਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਨੈੱਟਵਰਕ ਗੜਬੜੀਆਂ ਅਤੇ ਹਮਲੇ ਆਮ ਤੌਰ 'ਤੇ ਅਸਥਾਈ ਹੁੰਦੇ ਹਨ, ਇਸਲਈ ਇਹ ਪੰਨਾ ਸ਼ਾਇਦ ਬਾਅਦ ਵਿੱਚ ਠੀਕ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰੇਗਾ।</translation>
+<translation id="5361930801096459163">'ਖੋਜੋ' ਬਟਨ, <ph name="KEYWORD_SUFFIX" /> ਨੂੰ ਖੋਜਣ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="536296301121032821">ਨੀਤੀ ਸੈਟਿੰਗਾਂ ਸਟੋਰ ਕਰਨ ਵਿੱਚ ਅਸਫਲ</translation>
 <translation id="5371425731340848620">ਕਾਰਡ ਅੱਪਡੇਟ ਕਰੋ</translation>
 <translation id="5377026284221673050">"ਤੁਹਾਡੀ ਘੜੀ ਪਿੱਛੇ ਹੈ" ਜਾਂ "ਤੁਹਾਡੀ ਘੜੀ ਅੱਗੇ ਹੈ" ਜਾਂ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1280,6 +1291,7 @@
 <translation id="6302269476990306341">Chrome ਵਿੱਚ 'Google ਅਸਿਸਟੈਂਟ' ਨੂੰ ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
 <translation id="6305205051461490394"><ph name="URL" /> ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੈ।</translation>
 <translation id="6312113039770857350">ਵੈਬਸਫ਼ਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</translation>
+<translation id="6315224405718249523">'ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ' ਕਰੋ ਬਟਨ, ਇਸ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="6321917430147971392">ਆਪਣੀਆਂ DNS ਸੈਟਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation>
 <translation id="6322182122604171028">Windows Hello ਨੂੰ ਨਹੀਂ ਵਰਤ ਸਕੇ</translation>
 <translation id="6328639280570009161">ਨੈੱਟਵਰਕ ਪੂਰਵ-ਸੂਚਨਾ ਨੂੰ ਬੰਦ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
@@ -1334,6 +1346,7 @@
 <translation id="6547208576736763147">ਖੱਬੇ ਪਾਸੇ ਦੋ ਮੋਰੀਆਂ</translation>
 <translation id="6554795675067793129">ਤੁਹਾਡੇ ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="ENROLLMENT_DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।</translation>
 <translation id="6556866813142980365">ਮੁੜ-ਓਹੀ ਕਰੋ</translation>
+<translation id="6566840325635607048">'ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਅੱਪਡੇਟ ਕਰੋ' ਬਟਨ, Chrome ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਆਟੋਫਿਲ ਜਾਣਕਾਰੀ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="6569060085658103619">ਤੁਸੀਂ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਪੰਨਾ ਦੇਖ ਰਹੇ ਹੋ</translation>
 <translation id="6573200754375280815">ਸੱਜੇ ਦੋ ਮੋਰੀਆਂ</translation>
 <translation id="6578796323535178455">C2 (ਲਿਫ਼ਾਫ਼ਾ)</translation>
@@ -1574,6 +1587,7 @@
 <translation id="7549584377607005141">ਇਸ ਵੈੱਬ-ਪੰਨੇ ਲਈ ਉਹ ਡਾਟਾ ਲੋੜੀਂਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਡਿਸਪਲੇ ਕਰਨ ਲਈ ਪਹਿਲਾਂ ਦਰਜ ਕੀਤਾ ਸੀ। ਤੁਸੀਂ ਇਹ ਡਾਟਾ ਦੁਬਾਰਾ ਭੇਜ ਸਕਦੇ ਹੋ, ਪਰ ਅਜਿਹਾ ਕਰਕੇ ਤੁਸੀਂ ਐਕਸ਼ਨ ਨੂੰ ਦੁਹਰਾਓਗੇ ਜੋ ਇਸ ਪੰਨੇ ਵੱਲੋਂ ਪਹਿਲਾਂ ਵੀ ਕਾਰਗੁਜ਼ਾਰੀ ਕੀਤੀ ਗਈ ਹੈ।</translation>
 <translation id="7550637293666041147">ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ Chrome ਵਰਤੋਂਕਾਰ ਨਾਮ</translation>
 <translation id="7552846755917812628">ਅੱਗੇ ਦਿੱਤੇ ਨੁਕਤਿਆਂ ਨੂੰ ਅਜ਼ਮਾਓ:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ Chrome ਦੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਡਾਟੇ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="7554791636758816595">ਨਵੀਂ ਟੈਬ</translation>
 <translation id="7564049878696755256">ਤੁਸੀਂ ਆਪਣੇ <ph name="ORG_NAME" /> ਖਾਤੇ 'ਤੇ ਪਹੁੰਚ ਗੁਆ ਸਕਦੇ ਹੋ ਜਾਂ ਤੁਹਾਡੀ ਪਛਾਣ ਚੋਰੀ ਹੋ ਸਕਦੀ ਹੈ। Chrome ਵੱਲੋਂ ਹੁਣੇ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।</translation>
 <translation id="7567204685887185387">ਇਹ ਸਰਵਰ ਇਹ ਸਿੱਧ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿ ਇਹ <ph name="DOMAIN" /> ਹੈ; ਇਸਦਾ ਸੁਰੱਖਿਆ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਧੋਖ਼ੇਬਾਜ਼ੀ ਨਾਲ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਇੱਕ ਗਲਤ ਸੰਰੂਪਣ ਕਾਰਨ ਹੋ ਸਕਦਾ ਹੈ ਜਾਂ ਕੋਈ ਹਮਲਾਵਰ ਤੁਹਾਡੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਰਾਹ ਵਿੱਚ ਰੋਕ ਰਿਹਾ ਹੈ।</translation>
@@ -1740,6 +1754,7 @@
 <translation id="8225771182978767009">ਜਿਸ ਵਿਅਕਤੀ ਨੇ ਇਸ ਕੰਪਿਊਟਰ ਦਾ ਸੈੱਟ ਅੱਪ ਕੀਤਾ ਹੈ ਉਸ ਵੱਲੋਂ ਇਸ ਸਾਈਟ ਨੂੰ ਬਲਾਕ ਕਰਨਾ ਚੁਣਿਆ ਗਿਆ ਹੈ।</translation>
 <translation id="8228419419708659934">ਦੋ ਪੰਨਾ-ਦ੍ਰਿਸ਼</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ ਇਸ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation>
 <translation id="8232343881378637145">ਪਲੇਟਫਾਰਮ ਦਾ ਤਾਪਮਾਨ</translation>
 <translation id="8238581221633243064">ਕਿਸੇ ਨਵੀਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬ ਵਿੱਚ ਪੰਨਾ ਖੋਲ੍ਹੋ</translation>
 <translation id="8241707690549784388">ਪੰਨਾ ਜੋ ਤੁਸੀਂ ਵਰਤੀ ਗਈ ਜਾਣਕਾਰੀ ਲਈ ਖੋਜ ਰਹੇ ਹੋ, ਉਹ ਤੁਸੀਂ ਦਰਜ ਕੀਤਾ ਸੀ। ਉਸ ਪੰਨਾ 'ਤੇ ਵਾਪਸ ਜਾਣ ਨਾਲ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੀਤੀ ਗਈ ਕੋਈ ਵੀ ਕਾਰਵਾਈ ਦੁਹਰਾਈ ਜਾ ਸਕਦੀ ਹੈ। ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index a403087c..eeb830c 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Variații ale liniilor de comandă</translation>
 <translation id="129553762522093515">Închise recent</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Șterge cookie-urile<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Butonul Deschide o fereastră incognito, apasă pe Enter pentru a deschide o nouă fereastră incognito în Chrome</translation>
 <translation id="1301324364792935241">Verifică setările pentru DNS securizat</translation>
 <translation id="1307966114820526988">Funcții învechite</translation>
 <translation id="131405271941274527"><ph name="URL" /> dorește să trimită și să primească informații când atingi telefonul de pe un dispozitiv NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Actualizează expresia de acces pentru sincronizare.</translation>
 <translation id="1787142507584202372">Filele deschise sunt afișate aici</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, sunt disponibile mai multe acțiuni, apasă pe Tab pentru a le răsfoi</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Numele titularului cardului</translation>
 <translation id="1807528111851433570">Foaia inițială</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Anunțuri</translation>
 <translation id="1919367280705858090">Obține ajutor în privința unui anumit mesaj de eroare</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Niciunul}=1{1 site}few{# site-uri}other{# de site-uri}}</translation>
+<translation id="1926148189358507356">Butonul Relansează pentru a actualiza, apasă pe Enter pentru a actualiza Chrome</translation>
 <translation id="1945968466830820669">Este posibil să pierzi accesul la contul organizației sau să fii victima unui furt de identitate. Chromium îți recomandă să îți schimbi acum parola.</translation>
 <translation id="1947454675006758438">Capsare în dreapta sus</translation>
 <translation id="1959001866257244765">Contribuie la îmbunătățirea securității pe web pentru toată lumea trimițând la Google <ph name="BEGIN_WHITEPAPER_LINK" />adresele URL ale unor pagini pe care le accesezi, informații de sistem limitate și părți din conținutul paginilor<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Politică de confidențialitate<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Nivel</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Setare prestabilită la nivel de companie</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a deschide o nouă fereastră incognito în Chrome</translation>
 <translation id="2385809941344967209">Actualizează Chrome din setările Chrome</translation>
 <translation id="2386255080630008482">Certificatul serverului a fost revocat.</translation>
 <translation id="2392959068659972793">Afișați politicile care nu au valori setate</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Clipboard</translation>
 <translation id="2587730715158995865">De la <ph name="ARTICLE_PUBLISHER" />. Citește acest articol și încă <ph name="OTHER_ARTICLE_COUNT" />.</translation>
 <translation id="2587841377698384444">ID-ul API-ului Directory:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a actualiza informațiile pentru completarea automată a cardurilor de credit în setările Chrome</translation>
 <translation id="2595719060046994702">Dispozitivul și contul nu sunt gestionate de o companie sau o altă organizație.</translation>
 <translation id="2597378329261239068">Acest document este protejat cu parolă. Introdu o parolă.</translation>
 <translation id="2609632851001447353">Modificări</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Ieși</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Potrivire optimă</translation>
+<translation id="2688738823074468716">Butonul Gestionează parolele, apasă pe Enter pentru a gestiona parolele din setările Chrome</translation>
 <translation id="2688969097326701645">Da, continuă</translation>
 <translation id="2691924980723297736">Avertisment de siguranță</translation>
 <translation id="2699302886720511147">Carduri acceptate</translation>
@@ -740,6 +746,7 @@
 <translation id="4088981014127559358">Deplasarea poziției Y a imaginii de pe fața 1</translation>
 <translation id="4098354747657067197">Urmează un site înșelător</translation>
 <translation id="4101413244023615925">Text și elemente grafice</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a gestiona parolele în setările Chrome</translation>
 <translation id="4103249731201008433">Numărul de serie al gadgetului este nevalid</translation>
 <translation id="4103763322291513355">Accesați &lt;strong&gt;chrome://policy&lt;/strong&gt; pentru a vedea adresele URL introduse pe lista neagră și alte politici impuse de către administratorul de sistem.</translation>
 <translation id="4110652170750985508">Examinează plata</translation>
@@ -910,6 +917,7 @@
 <translation id="4738601419177586157">Sugestie de căutare <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Gestionează parolele…</translation>
 <translation id="4744603770635761495">Cale executabilă</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a actualiza Chrome</translation>
 <translation id="4750917950439032686">Informațiile tale (de exemplu, parolele și numerele cardurilor de credit) sunt private când sunt trimise la acest site.</translation>
 <translation id="4756388243121344051">&amp;Istoric</translation>
 <translation id="4758311279753947758">Adaugă informații de contact</translation>
@@ -951,6 +959,7 @@
 <translation id="4926049483395192435">Valoarea trebuie specificată.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> afișează mesajul</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a căuta</translation>
 <translation id="4930153903256238152">Capacitate mare</translation>
 <translation id="4943872375798546930">Nu există rezultate</translation>
 <translation id="4950898438188848926">Butonul Comută între file, apasă pe Enter pentru a comuta la fila deschisă, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1027,6 +1036,7 @@
 <translation id="5215116848420601511">Metodele de plată și adresele care folosesc Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Adresa de e-mail este obligatorie</translation>
+<translation id="5222994811833658317">Butonul Șterge datele, apasă pe Enter pentru a șterge datele istoricului de navigare din Chrome</translation>
 <translation id="5230733896359313003">Adresă de expediere</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1067,6 +1077,7 @@
 <translation id="534295439873310000">Dispozitive NFC</translation>
 <translation id="5344579389779391559">Această pagină poate să genereze costuri</translation>
 <translation id="5355557959165512791">Nu poți accesa <ph name="SITE" /> acum, deoarece certificatul său a fost revocat. Erorile de rețea și atacurile sunt de obicei temporare și probabil că această pagină va funcționa mai târziu.</translation>
+<translation id="5361930801096459163">Butonul Caută, apasă pe Enter pentru a căuta <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Setările pentru politică nu au putut fi stocate</translation>
 <translation id="5371425731340848620">Actualizează cardul</translation>
 <translation id="5377026284221673050">„Ora este setată în trecut”, „Ora este setată în viitor” sau „&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
@@ -1292,6 +1303,7 @@
 <translation id="6302269476990306341">Asistentul Google în Chrome se oprește</translation>
 <translation id="6305205051461490394">Adresa URL <ph name="URL" /> nu poate fi accesată.</translation>
 <translation id="6312113039770857350">Pagina web nu este disponibilă</translation>
+<translation id="6315224405718249523">Butonul Tradu pagina, apasă pe Enter pentru a traduce această pagină</translation>
 <translation id="6321917430147971392">Verificați setările DNS</translation>
 <translation id="6322182122604171028">Nu am putut folosi Windows Hello</translation>
 <translation id="6328639280570009161">Încercați să dezactivați anticiparea rețelei</translation>
@@ -1346,6 +1358,7 @@
 <translation id="6547208576736763147">Perforare dublă în stânga</translation>
 <translation id="6554795675067793129">Contul tău este administrat de <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Repetă</translation>
+<translation id="6566840325635607048">Butonul Actualizează cardul de credit, apasă pe Enter pentru a actualiza informațiile pentru completarea automată a cardurilor de credit în setările Chrome</translation>
 <translation id="6569060085658103619">Se afișează pagina unei extensii</translation>
 <translation id="6573200754375280815">Perforare dublă în dreapta</translation>
 <translation id="6578796323535178455">C2 (Plic)</translation>
@@ -1586,6 +1599,7 @@
 <translation id="7549584377607005141">Pentru a fi afișată corespunzător, această pagină web necesită date pe care le-ați introdus anterior. Puteți trimite aceste date din nou, dar astfel veți repeta orice acțiuni realizate anterior de această pagină.</translation>
 <translation id="7550637293666041147">Numele de utilizator al dispozitivului și numele de utilizator Chrome</translation>
 <translation id="7552846755917812628">Încearcă următoarele sfaturi:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a șterge datele istoricului de navigare din Chrome</translation>
 <translation id="7554791636758816595">Filă nouă</translation>
 <translation id="7564049878696755256">Este posibil să pierzi accesul la contul <ph name="ORG_NAME" /> sau să fii victima unui furt de identitate. Chrome îți recomandă să îți schimbi acum parola.</translation>
 <translation id="7567204685887185387">Acest server nu a putut dovedi că este <ph name="DOMAIN" />; este posibil ca certificatul său de securitate să fi fost emis fraudulos. Cauza poate fi o configurare greșită sau interceptarea conexiunii de către un atacator.</translation>
@@ -1752,6 +1766,7 @@
 <translation id="8225771182978767009">Persoana care a configurat computerul a ales să blocheze acest site.</translation>
 <translation id="8228419419708659934">Afișare cu două pagini</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a traduce această pagină</translation>
 <translation id="8232343881378637145">Temperatura platformei</translation>
 <translation id="8238581221633243064">Deschide pagina într-o filă incognito nouă</translation>
 <translation id="8241707690549784388">Pagina pe care o cauți a utilizat informațiile pe care le-ai introdus. Întoarcerea la acea pagină ar putea face ca orice acțiune să fie repetată. Vrei să continui?</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 44c1167..6a83e281 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">විධාන-පේළි ප්‍රභේදනයන්</translation>
 <translation id="129553762522093515">මෑත දී වැසිණි</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ඔබේ කුකි හිස් කරමින්<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">අප්‍රසිද්ධ කවුළු බොත්තම විවෘත කරන්න, නව Chrome අප්‍රසිද්ධ කවුළුව විවෘත කිරීමට Enter ඔබන්න</translation>
 <translation id="1301324364792935241">ඔබේ සුරක්‍ෂිත DNS සැකසුම් පරීක්‍ෂා කරන්න</translation>
 <translation id="1307966114820526988">අත් හරින ලද විශේෂාංග</translation>
 <translation id="131405271941274527"><ph name="URL" /> හට ඔබ NFC උපාංගයක ඔබේ දුරකථනය තට්ටු කරන විට තතු යැවීමට සහ ලැබීමට අවශ්‍යයි</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">කරුණාකර ඔබගේ සමමුහුර්ත කරන රහස්පදය යාවත්කාලීන කරන්න.</translation>
 <translation id="1787142507584202372">ඔබේ විවෘත කළ පටිති මෙහි දිස් වේ</translation>
 <translation id="1791429645902722292">Google ස්මාට් අගුල</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, බහුවිධ ක්‍රියාමාර්ග ලබා ගත හැකිය, ඒවා හරහා චක්‍රීය කිරීමට Tab ඔබන්න</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">කාඩ්පත් හිමිකරුගේ නම</translation>
 <translation id="1807528111851433570">ආරම්භක පත්‍රය</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">වෙළඳ දැන්වීම්</translation>
 <translation id="1919367280705858090">නිශ්චිත දෝෂ පණිවිඩයක් සමඟ උදවු ලබා ගන්න</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{කිසිවක් නැත}=1{1 අඩවියක්}one{අඩවි #ක්}other{අඩවි #ක්}}</translation>
+<translation id="1926148189358507356">බොත්තම යාවත්කාලීන කිරීමට නැවත දියත් කරන්න, Chrome යාවත්කාලීන කිරීමට Enter ඔබන්න</translation>
 <translation id="1945968466830820669">ඔබට ඔබේ සංවිධානයේ ගිණුමට ප්‍රවේශය අහිමි වීමට හෝ අනන්‍යතා සොරකමක් අත්විඳීමට සිදු විය හැකිය. දැන් ඔබේ මුරපදය වෙනස් කිරීම සඳහා Chromium නිර්දේශ කරයි.</translation>
 <translation id="1947454675006758438">ඉහළ දකුණ ස්ටේපල් කරන්න</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />ඔබ පිවිසෙන ඇතැම් පිටුවල URL, සීමිත පද්ධති තොරතුරු සහ ඇතැම් පිටුවල අන්තර්ගත<ph name="END_WHITEPAPER_LINK" /> Google වෙත යැවීමෙන් සෑම දෙනාටම වෙබයේ ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා සහාය වන්න. <ph name="BEGIN_PRIVACY_PAGE_LINK" />රහස්‍යතා ප්‍රතිපත්තිය<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">මට්ටම</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">ව්‍යවසාය පෙරනිමි</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, නව Chrome අප්‍රසිද්ධ කවුළුව විවෘත කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="2385809941344967209">ඔබගේ Chrome සැකසීම් වෙතින් Chrome යාවත්කාලීන කරන්න</translation>
 <translation id="2386255080630008482">සර්වරයේ සහතිකය අවලංගු කර තිබේ.</translation>
 <translation id="2392959068659972793">අගයක් සකසා නොමැති ප්‍රතිපත්ති පෙන්වන්න</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">පසුරු පුවරුව</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> වෙතින්. මෙය සහ තවත් කථාන්දර <ph name="OTHER_ARTICLE_COUNT" />ක් කියවන්න.</translation>
 <translation id="2587841377698384444">නාමාවලිය API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome සැකසීම් තුළ ණය කාඩ්පත් ස්වයං පිරවුම් තතු යාවත්කාලීන කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="2595719060046994702">මෙම උපාංගය සහ ගිණුම සමාගමක් හෝ වෙනත් සංවිධානයක් විසින් කළමනා නොකෙරෙති.</translation>
 <translation id="2597378329261239068">මෙම ලේඛනයේ රහස්වචනය ආරක්ෂා කර තිබේ. කරුණාකර රහස්වචනයක් ඇතුළු කරන්න.</translation>
 <translation id="2609632851001447353">විචලතා</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">හැර යන්න</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">හොඳින්ම ගැළපේ</translation>
+<translation id="2688738823074468716">මුරපද කළමනාකරණය කරන්න බොත්තම, Chrome සැකසීම් තුළ මුරපද කළමනාකරණය කිරීමට Enter ඔබන්න</translation>
 <translation id="2688969097326701645">ඔව්, දිගටම කරගෙන යන්න</translation>
 <translation id="2691924980723297736">ආරක්‍ෂක අවවාදය</translation>
 <translation id="2699302886720511147">පිළිගත් කාඩ්පත්</translation>
@@ -740,6 +746,7 @@
 <translation id="4088981014127559358">පැත්ත 1 රූප Y වැඩ මුරය</translation>
 <translation id="4098354747657067197">රැවටිලිකාර අඩවියක් ඉදිරියෙනි</translation>
 <translation id="4101413244023615925">පාඨය සහ චිත්‍රකය</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome සැකසීම් තුළ ඔබගේ මුරපද කළමනාකරණය කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="4103249731201008433">උපාංග අනුක්‍රමික අංකය අවලංගුය</translation>
 <translation id="4103763322291513355">ඔබේ පරිපාලක විසින් යෙදූ කළු ලැයිස්තුගත කළ ලිපින හා වෙනත් ප්‍රතිපත්ති නැරඹීමට  &lt;strong&gt;chrome://policy&lt;/strong&gt; ක්ලික් කරන්න.</translation>
 <translation id="4110652170750985508">ඔබේ ගෙවීම සමාලෝචනය කරන්න</translation>
@@ -907,6 +914,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> සෙවුම් යෝජනාව</translation>
 <translation id="4742407542027196863">මුරපද කළමනාකරණය කරන්න…</translation>
 <translation id="4744603770635761495">විධානගතකළහැකි මඟ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome යාවත්කාලීන කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="4750917950439032686">ඔබගේ තොරතුරු (උදාහරණයක් ලෙස, මුරපද හෝ ණය කාඩ්පත් අංක) මෙම අඩවිය වෙත යවන විට රහසිගත වේ.</translation>
 <translation id="4756388243121344051">&amp;ඉතිහාසය</translation>
 <translation id="4758311279753947758">සම්බන්ධතා තතු එක් කරන්න</translation>
@@ -948,6 +956,7 @@
 <translation id="4926049483395192435">නිශ්චිතව දැක්විය යුතුය.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> කියයි</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, සෙවීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="4930153903256238152">විශාල ධාරිතාව</translation>
 <translation id="4943872375798546930">ප්‍රතිඵල නැත</translation>
 <translation id="4950898438188848926">පටිත්ත මාරු වීමේ බොත්තමෙන්, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> විවෘත පටිත්තට මාරු වීමට Enter ඔබන්න</translation>
@@ -1024,6 +1033,7 @@
 <translation id="5215116848420601511">Google Pay භාවිතයෙන් ගෙවීම් ක්‍රම සහ ලිපින</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ඊ-තැපෑල අවශ්‍යයි</translation>
+<translation id="5222994811833658317">දත්ත හිස් කරන්න බොත්තම, Chrome හි ගවේෂණ ඉතිහාස දත්ත හිස් කිරීමට Enter ඔබන්න</translation>
 <translation id="5230733896359313003">නැව්ගත කිරීමේ ලිපිනය</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1064,6 +1074,7 @@
 <translation id="534295439873310000">NFC උපාංග</translation>
 <translation id="5344579389779391559">මෙම පිටුව ඔබේ මුදල මාරු කිරීමට උත්සාහ කළ හැක</translation>
 <translation id="5355557959165512791">ඔබට මේ දැන් <ph name="SITE" /> වෙත එහි සහතිකය අහෝසි කර ඇති බැවින් පිවිසිය නොහැක. ජාල දෝෂ සහ ප්‍රහාර සාමාන්‍යයෙන් තාවකාලිකය, එනිසා මෙම පිටුව සමහර විට පසුව වැඩ කරනු ඇත.</translation>
+<translation id="5361930801096459163">සෙවීම් බොත්තම, සෙවීමට Enter ඔබන්න <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">ප්‍රතිපත්ති සැකසුම් ගබඩා කිරීමට අසමත් විය</translation>
 <translation id="5371425731340848620">කාඩ්පත යාවත්කාලීන කරන්න</translation>
 <translation id="5377026284221673050">"ඔබේ ඔරලෝසුව පිටුපසින්" හෝ "ඔබේ ඔරලෝසුව ඉදිරියෙන්" හෝ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1289,6 +1300,7 @@
 <translation id="6302269476990306341">Chrome හි Google සහායක නැවතෙයි</translation>
 <translation id="6305205051461490394"><ph name="URL" /> වෙත ළඟා විය නොහැකිය.</translation>
 <translation id="6312113039770857350">වෙබ් පිටුව ලබා ගත නොහැකිය</translation>
+<translation id="6315224405718249523">පිටුව පරිවර්තනය කරන්න බොත්තම, මෙම පිටුව පරිවර්තනය කිරීමට Enter ඔබන්න</translation>
 <translation id="6321917430147971392">ඔබේ DNS පසුතල පරීක්ෂා කරන්න</translation>
 <translation id="6322182122604171028">Windows Hello භාවිත කළ නොහැක</translation>
 <translation id="6328639280570009161">ජාල අනාවැකි අක්‍රීය කිරීමට උත්සහ ගන්න</translation>
@@ -1343,6 +1355,7 @@
 <translation id="6547208576736763147">වමට ද්වි අනින්න</translation>
 <translation id="6554795675067793129">ඔබගේ ගිණුම <ph name="ENROLLMENT_DOMAIN" /> විසින් කළමනා කෙරේ.</translation>
 <translation id="6556866813142980365">නැවත කරන්න</translation>
+<translation id="6566840325635607048">ණය කාඩ්පත යාවත්කාලීන කරන්න බොත්තම, Chrome සැකසීම් තුළ ණය කාඩ්පත් ස්වයං පිරවුම් තතු යාවත්කාලීන කිරීමට Enter ඔබන්න</translation>
 <translation id="6569060085658103619">ඔබ දිගු පිටුවක් බලමින් සිටී</translation>
 <translation id="6573200754375280815">දකුණට දෙවරක් අනින්න</translation>
 <translation id="6578796323535178455">C2 (ලියුම් කවරය)</translation>
@@ -1583,6 +1596,7 @@
 <translation id="7549584377607005141">මෙම වෙබ් පිටුව නිසි ලෙස දර්ශනය කිරීම සඳහා ඔබ පෙර ඇතුළත් කළ දත්ත අවශ්‍ය වේ. ඔබට මෙම දත්ත නැවතත් යැවිය හැකි නමුත් එසේ කිරීමෙන් මෙම පිටුව මඟින් පෙරදී සිදු වූ ක්‍රියාව නැවතත් සිදු වනු ඇත.</translation>
 <translation id="7550637293666041147">ඔබේ උපාංග පරිශීලක නාමය සහ Chrome පරිශීලක නාමය</translation>
 <translation id="7552846755917812628">පහත ඉඟි උත්සාහ කරන්න:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome හි බ්‍රවුස් කිරීමේ ඉතිහාස දත්ත හිස් කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="7554791636758816595">නව ටැබය</translation>
 <translation id="7564049878696755256">ඔබට ඔබේ <ph name="ORG_NAME" /> ගිණුමට ප්‍රවේශය අහිමි වීමට හෝ අනන්‍යතා සොරකමක් අත්විඳීමට සිදු විය හැකිය. දැන් ඔබේ මුරපදය වෙනස් කිරීම සඳහා Chrome නිර්දේශ කරයි.</translation>
 <translation id="7567204685887185387">මෙම සේවාදායකයට එය <ph name="DOMAIN" /> බව සනාථ කිරීමට නොහැකි විය; එහි ආරක්ෂණ සහතිකය වංචාකාරි ලෙස නිකුත් කර තිබිය හැකිය. මෙය වැරදි වින්‍යාස කිරීමක් හෝ ප්‍රහාරකයකු ඔබගේ සබැඳුමට බාධා කිරීමක් නිසා විය හැකිය.</translation>
@@ -1749,6 +1763,7 @@
 <translation id="8225771182978767009">මෙම පරිගණකය පිහිටුවීම කළ පුද්ගලයා මෙම අඩවිය අවහිර කිරීමට තෝරා ඇත.</translation>
 <translation id="8228419419708659934">පිටු දෙකේ දසුන</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, මෙම පිටුව පරිවර්තනය කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="8232343881378637145">වේදිකා උෂ්ණත්වය</translation>
 <translation id="8238581221633243064">පිටුව නව අප්‍රසිද්ධ පටිත්තක විවෘත කරන්න</translation>
 <translation id="8241707690549784388">ඔබ සොයමින් සිටින පිටුව ඔබ ඇතුළු කළ තොරතුරු භාවිතා කරන ලදි. එම පිටුව වෙත ආපසු යාමෙන් ඔබ ගත් කිසියම් ක්‍රියාමාර්ගයක් නැවත සිදු කෙරෙනු ඇත. ඔබට ඉදිරියට යාමට අවශ්‍යද?</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index c7d49a42..845bfe7d 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Različice ukazne vrstice</translation>
 <translation id="129553762522093515">Nedavno zaprto</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Poskusite izbrisati piškotke<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Odprite gumb »Okno brez beleženja dejavnosti«, nato Enter, če želite odpreti novo okno brez beleženja dejavnosti v Chromu</translation>
 <translation id="1301324364792935241">Preverite nastavitve za varni DNS</translation>
 <translation id="1307966114820526988">Zastarele funkcije</translation>
 <translation id="131405271941274527"><ph name="URL" /> želi pošiljati in prejemati podatke, ko se dotaknete telefona v napravi s tehnologijo NFC</translation>
@@ -199,7 +200,7 @@
 <translation id="1717494416764505390">Nabiralnik 3</translation>
 <translation id="1718029547804390981">Dokument je prevelik, da bi mu dodali pripise</translation>
 <translation id="1721424275792716183">*Polje je obvezno</translation>
-<translation id="1724638245199909652">Dostop do lokalne pisave</translation>
+<translation id="1724638245199909652">Dostop do lokalnih pisav</translation>
 <translation id="1727741090716970331">Dodajanje veljavne številke kartice</translation>
 <translation id="1728677426644403582">Ogledujete si izvorno kodo spletne strani</translation>
 <translation id="173080396488393970">Ta vrsta kartice ni podprta</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Posodobite geslo za sinhronizacijo.</translation>
 <translation id="1787142507584202372">Tu so prikazani odprti zavihki</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, na viljo je več dejanj, pritisnite tabulatorko, če želite krožiti po njih</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Ime imetnika kartice</translation>
 <translation id="1807528111851433570">Začetni list</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Oglasi</translation>
 <translation id="1919367280705858090">Pomoč pri določenem sporočilu o napaki</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Brez}=1{1 spletno mesto}one{# spletno mesto}two{# spletni mesti}few{# spletna mesta}other{# spletnih mest}}</translation>
+<translation id="1926148189358507356">Gumb »Znova zaženite za posodobitev«, pritisnite Enter, če želite posodobiti Chrome</translation>
 <translation id="1945968466830820669">Izgubite lahko dostop do računa za organizacijo ali postanete žrtev kraje identitete. Chromium priporoča, da spremenite geslo.</translation>
 <translation id="1947454675006758438">Spenjanje zgoraj desno</translation>
 <translation id="1959001866257244765">S pošiljanjem <ph name="BEGIN_WHITEPAPER_LINK" />URL-jev nekaterih strani, ki jih obiščete, omejenih podatkov o sistemu in nekatere vsebine strani<ph name="END_WHITEPAPER_LINK" /> Googlu lahko pomagate izboljšati varnost v spletu za vse. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Pravilnik o zasebnosti<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Raven</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Privzeto za podjetja</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite odpreti novo okno brez beleženja dejavnosti v Chromu</translation>
 <translation id="2385809941344967209">Posodabljanje Chroma v nastavitvah v Chromu</translation>
 <translation id="2386255080630008482">Potrdilo strežnika je bilo preklicano.</translation>
 <translation id="2392959068659972793">Pokaži pravilnike brez nastavljene vrednosti</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Odložišče</translation>
 <translation id="2587730715158995865">Izdajatelj: <ph name="ARTICLE_PUBLISHER" />. Preberite to in še toliko drugih člankov: <ph name="OTHER_ARTICLE_COUNT" />.</translation>
 <translation id="2587841377698384444">ID API-ja imenika:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite posodobiti podatke za samodejno izpolnjevanje za kreditne kartice v Chromovih nastavitvah</translation>
 <translation id="2595719060046994702">Te naprave in računa ne upravlja podjetje ali druga organizacija.</translation>
 <translation id="2597378329261239068">Dokument je zaščiten z geslom. Vnesite geslo.</translation>
 <translation id="2609632851001447353">Različice</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Zapusti</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Najustreznejše</translation>
+<translation id="2688738823074468716">Gumb »Upravljanje gesel«, pritisnite Enter če želite upravljati gesla v Chromovih nastavitvah</translation>
 <translation id="2688969097326701645">Da, nadaljuj</translation>
 <translation id="2691924980723297736">Varnostno opozorilo</translation>
 <translation id="2699302886720511147">Sprejete kartice</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Pomik slike na 1. strani v Y</translation>
 <translation id="4098354747657067197">Zavajajoče spletno mesto</translation>
 <translation id="4101413244023615925">Besedilo in grafični elementi</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite upravljati gesla v Chromovih nastavitvah</translation>
 <translation id="4103249731201008433">Neveljavna serijska številka naprave</translation>
 <translation id="4103763322291513355">Na &lt;strong&gt;chrome://policy&lt;/strong&gt; si lahko ogledate seznam blokiranih URL-jev in drugih pravilnikov, ki jih uveljavlja skrbnik sistema.</translation>
 <translation id="4110652170750985508">Pregled plačila</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Predlog za iskanje poizvedbe <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Upravljaj gesla …</translation>
 <translation id="4744603770635761495">Pot do izvedljive datoteke</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite posodobiti Chrome</translation>
 <translation id="4750917950439032686">Vaši podatki (npr. gesla ali številke kreditnih kartic) so zasebni, kadar so poslani temu spletnemu mestu.</translation>
 <translation id="4756388243121344051">&amp;Zgodovina</translation>
 <translation id="4758311279753947758">Dodaj podatke za stik</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Vrednost mora biti določena.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> sporoča:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite iskati</translation>
 <translation id="4930153903256238152">Velika zmogljivost</translation>
 <translation id="4943872375798546930">Ni rezultatov</translation>
 <translation id="4950898438188848926">Gumb za preklop zavihkov, pritisnite Enter, če želite preklopiti na odprti zavihek, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Plačilna sredstva in naslovi z Googlom Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-poštni naslov je obvezen</translation>
+<translation id="5222994811833658317">Gumb »Izbriši podatke«, pritisnite Enter, če želite izbrisati podatke zgodovine brskanja v Chromu</translation>
 <translation id="5230733896359313003">Naslov za pošiljanje</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">Naprave s tehnologijo NFC</translation>
 <translation id="5344579389779391559">Ta stran vam bo morda poskusila kaj zaračunati</translation>
 <translation id="5355557959165512791">Spletnega mesta <ph name="SITE" /> trenutno ni mogoče obiskati, saj je to potrdilo preklicano. Napake omrežja in napadi na omrežje so običajno začasni, zato bo ta stran verjetno delovala pozneje.</translation>
+<translation id="5361930801096459163">Gumb »Iskanje«, pritisnite Enter, če želite iskati <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Nastavitev pravilnika ni bilo mogoče shraniti</translation>
 <translation id="5371425731340848620">Posodobite kartico</translation>
 <translation id="5377026284221673050">Ura zaostaja« ali »Ura prehiteva« ali »&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;«</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Pomočnik Google v Chromu se ustavlja</translation>
 <translation id="6305205051461490394">Naslov <ph name="URL" /> je nedosegljiv.</translation>
 <translation id="6312113039770857350">Spletna stran ni na voljo</translation>
+<translation id="6315224405718249523">Gumb »Prevedi stran«, pritisnite Enter, če želite prevesti stran</translation>
 <translation id="6321917430147971392">Preverite nastavitve za DNS</translation>
 <translation id="6322182122604171028">Funkcije Windows Hello ni bilo mogoče uporabiti</translation>
 <translation id="6328639280570009161">Poskusite onemogočiti omrežno predvidevanje</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Dvojno luknjanje na levi</translation>
 <translation id="6554795675067793129">Vaš račun upravlja <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Uveljavi</translation>
+<translation id="6566840325635607048">Gumb »Posodobitev kreditne kartice«, pritisnite Enter, če želite posodobiti podatke za samodejno izpolnjevanje za kreditne kartice v Chromovih nastavitvah</translation>
 <translation id="6569060085658103619">Ogledujete si stran razširitve</translation>
 <translation id="6573200754375280815">Dvojno luknjanje na desni</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Za pravilen prikaz te strani so potrebni podatki, ki ste jih vnesli prej. Podatke lahko pošljete še enkrat, vendar se bodo s tem ponovila vsa prejšnja dejanja strani.</translation>
 <translation id="7550637293666041147">Uporabniško ime v napravi in uporabniško ime v Chromu</translation>
 <translation id="7552846755917812628">Poskusite te nasvete:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite izbrisati podatke zgodovine brskanja v Chromu</translation>
 <translation id="7554791636758816595">Nov zavihek</translation>
 <translation id="7564049878696755256">Izgubite lahko dostop do računa za <ph name="ORG_NAME" /> ali postanete žrtev kraje identitete. Chrome priporoča, da spremenite geslo.</translation>
 <translation id="7567204685887185387">Strežniku ni uspelo dokazati, da je <ph name="DOMAIN" />; njegovo varnostno potrdilo je bilo morda izdano z goljufijo. Razlog za to je lahko napačna konfiguracija ali napadalčevo prestrezanje povezave.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">Oseba, ki je nastavila ta računalnik, je blokirala to spletno mesto.</translation>
 <translation id="8228419419708659934">Pogled dveh strani</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite prevesti to stran</translation>
 <translation id="8232343881378637145">Temperatura platforme</translation>
 <translation id="8238581221633243064">Odpiranje strani v novem zavihku brez beleženja zgodovine.</translation>
 <translation id="8241707690549784388">Stran, ki jo iščete, je uporabila informacije, ki ste jih vnesli. Z vrnitvijo na to stran se bodo morda ponovila vsa vaša dejanja, ki ste jih opravili. Ali želite nadaljevati?</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index ba36b16..b19a917 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Varianter på kommandoraden</translation>
 <translation id="129553762522093515">Nyligen stängda</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Testa att rensa cookies<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Knappen Öppna ett inkognitofönster, tryck på Retur om du vill öppna ett nytt inkognitofönster i Chrome</translation>
 <translation id="1301324364792935241">Kontrollera inställningarna för den säkra DNS-konfigurationen</translation>
 <translation id="1307966114820526988">Utfasade funktioner</translation>
 <translation id="131405271941274527"><ph name="URL" /> vill skicka och ta emot information när du snuddar vid en NFC-enhet med telefonen</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Uppdatera lösenfrasen för synkroniseringen.</translation>
 <translation id="1787142507584202372">Öppna flikar visas här</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, flera åtgärder tillgängliga, byt mellan dem med Tabb</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Namn på kortinnehavare</translation>
 <translation id="1807528111851433570">Första ark</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Annonser</translation>
 <translation id="1919367280705858090">Få hjälp med ett specifikt felmeddelande</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Ingen}=1{1 webbplats}other{# webbplatser}}</translation>
+<translation id="1926148189358507356">Knappen Starta om för att uppdatera, tryck på Retur om du vill uppdatera Chrome</translation>
 <translation id="1945968466830820669">Du kan förlora åtkomsten till organisationens konto eller bli utsatt för identitetsstöld. Du rekommenderas att ändra lösenordet nu.</translation>
 <translation id="1947454675006758438">Häfta uppe till höger</translation>
 <translation id="1959001866257244765">Hjälp oss att göra webben säkrare för alla genom att skicka <ph name="BEGIN_WHITEPAPER_LINK" />webbadresser till vissa sidor som du besöker, vissa systemuppgifter och visst sidinnehåll<ph name="END_WHITEPAPER_LINK" /> till Google <ph name="BEGIN_PRIVACY_PAGE_LINK" />Sekretesspolicy<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Nivå</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Standardinställning i företaget</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill öppna ett nytt inkognitofönster i Chrome</translation>
 <translation id="2385809941344967209">Uppdatera Chrome via inställningarna för Chrome</translation>
 <translation id="2386255080630008482">Servercertifikatet har återkallats.</translation>
 <translation id="2392959068659972793">Visa policyer utan inställt värde</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Urklipp</translation>
 <translation id="2587730715158995865">Från <ph name="ARTICLE_PUBLISHER" />. Läs denna och <ph name="OTHER_ARTICLE_COUNT" /> andra artiklar.</translation>
 <translation id="2587841377698384444">Id för katalog-API:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill uppdatera kreditkortsuppgifterna för autofyll i Chrome-inställningarna</translation>
 <translation id="2595719060046994702">Enheten och kontot hanteras inte av ett företag eller annan organisation.</translation>
 <translation id="2597378329261239068">Dokumentet är lösenordsskyddat. Ange ett lösenord.</translation>
 <translation id="2609632851001447353">Varianter</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Lämna</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Bästa passning</translation>
+<translation id="2688738823074468716">Knappen Hantera lösenord, tryck på Retur om du vill hantera lösenord i Chrome-inställningarna</translation>
 <translation id="2688969097326701645">Ja, fortsätt</translation>
 <translation id="2691924980723297736">Säkerhetsvarning</translation>
 <translation id="2699302886720511147">Godkända kort</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Sida 1 bild Y – byte</translation>
 <translation id="4098354747657067197">Webbplatsen som öppnas är bedräglig</translation>
 <translation id="4101413244023615925">Text och bild</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill hantera lösenord i Chrome-inställningarna</translation>
 <translation id="4103249731201008433">Enhetens serienummer är ogiltigt</translation>
 <translation id="4103763322291513355">Besök &lt;strong&gt;chrome://policy&lt;/strong&gt; om du vill visa listan med webbadresser som inte är godkända och andra policyer som angetts av systemadministratören.</translation>
 <translation id="4110652170750985508">Granska betalningen</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Sökförslag för <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Hantera lösenord …</translation>
 <translation id="4744603770635761495">Sökväg till körbar fil</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill uppdatera Chrome</translation>
 <translation id="4750917950439032686">Dina uppgifter (till exempel lösenord eller kreditkortsnummer) är privata när de skickas till den här webbplatsen.</translation>
 <translation id="4756388243121344051">&amp;Historik</translation>
 <translation id="4758311279753947758">Lägg till kontaktuppgifter</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Värdet måste anges.</translation>
 <translation id="4926159001844873046">Från <ph name="SITE" />:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill söka</translation>
 <translation id="4930153903256238152">Hög kapacitet</translation>
 <translation id="4943872375798546930">Inga resultat</translation>
 <translation id="4950898438188848926">Knapp för flikbyte. Tryck på retur för att byta till den öppna fliken <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Betalningsmetoder och adresser som används med Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-postadress måste anges</translation>
+<translation id="5222994811833658317">Knappen Rensa data, tryck på Retur om du vill rensa webbhistoriken i Chrome</translation>
 <translation id="5230733896359313003">Leveransadress</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">NFC-enheter</translation>
 <translation id="5344579389779391559">Den här sidan kan försöka debitera dig</translation>
 <translation id="5355557959165512791">Det går inte att besöka <ph name="SITE" /> just nu eftersom dess certifikat har återkallats. Nätverksfel och attacker är ofta tillfälliga, så sidan kommer förmodligen att fungera senare.</translation>
+<translation id="5361930801096459163">Knappen Sök, tryck på Retur om du vill söka på <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Det gick inte att spara policyinställningarna</translation>
 <translation id="5371425731340848620">Uppdatera kortet</translation>
 <translation id="5377026284221673050">Klockan går efter, Klockan går före eller &lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Google-assistenten i Chrome stoppas</translation>
 <translation id="6305205051461490394"><ph name="URL" /> kan inte nås.</translation>
 <translation id="6312113039770857350">Webbsidan är inte tillgänglig</translation>
+<translation id="6315224405718249523">Knappen Översätt sidan, tryck på Retur om du vill översätta den här sidan</translation>
 <translation id="6321917430147971392">Kontrollera DNS-inställningarna</translation>
 <translation id="6322182122604171028">Det gick inte att använda Windows Hello</translation>
 <translation id="6328639280570009161">Prova att inaktivera nätverksförslag</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Två hål till vänster</translation>
 <translation id="6554795675067793129">Kontot hanteras av <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Upprepa</translation>
+<translation id="6566840325635607048">Knappen Uppdatera kreditkortet, tryck på Retur om du vill uppdatera kreditkortsuppgifterna för autofyll i Chrome-inställningarna</translation>
 <translation id="6569060085658103619">Du visar en tilläggssida</translation>
 <translation id="6573200754375280815">Två hål till höger</translation>
 <translation id="6578796323535178455">C2 (kuvert)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Den här webbsidan kräver uppgifter som du har angett tidigare för att kunna visas korrekt. Du kan skicka uppgifterna igen, men om du gör det upprepas de åtgärder som har utförts av sidan tidigare.</translation>
 <translation id="7550637293666041147">Ditt användarnamn på enheten och användarnamn i Chrome</translation>
 <translation id="7552846755917812628">Testa följande tips:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill rensa webbhistoriken i Chrome</translation>
 <translation id="7554791636758816595">Ny flik</translation>
 <translation id="7564049878696755256">Du kan förlora åtkomsten till kontot på <ph name="ORG_NAME" /> eller bli utsatt för identitetsstöld. Du rekommenderas att ändra lösenordet nu.</translation>
 <translation id="7567204685887185387">Servern kunde inte bevisa att den är <ph name="DOMAIN" /> eftersom dess säkerhetscertifikat kan ha utfärdats utan behörighet. Detta kan orsakas av en felaktig konfigurering eller att någon spärrar anslutningen.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">Personen som konfigurerade datorn har valt att blockera den här webbplatsen.</translation>
 <translation id="8228419419708659934">Dubbelsidig vy</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill översätta sidan</translation>
 <translation id="8232343881378637145">Plattformstemperatur</translation>
 <translation id="8238581221633243064">Öppna sidan på en ny inkognitoflik</translation>
 <translation id="8241707690549784388">Önskad sida använder information som du har angett. Om du återgår till sidan kan eventuella åtgärder på sidan upprepas. Vill du fortsätta?</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index d851bc03..d50db20 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">கட்டளை வரி மாற்று வடிவங்கள்</translation>
 <translation id="129553762522093515">சமீபத்தில் மூடியவை</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />குக்கீகளை அழிக்கவும்<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">’மறைநிலை சாளரத்தைத் திற’ பட்டன், புதிய Chrome மறைநிலை சாளரத்தைத் திறக்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="1301324364792935241">உங்கள் பாதுகாப்பான DNS அமைப்புகளைச் சரிபாருங்கள்</translation>
 <translation id="1307966114820526988">நிறுத்தப்பட்ட அம்சங்கள்</translation>
 <translation id="131405271941274527">NFC சாதனத்தில் உங்கள் மொபைலைத் தட்டும்போது தகவலை அனுப்புவதற்கும் பெறுவதற்குமான அனுமதி <ph name="URL" />க்குத் தேவை</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">உங்களின் ஒத்திசை சொற்றொடரைப் புதுப்பிக்கவும்.</translation>
 <translation id="1787142507584202372">உங்கள் தாவல்கள் இங்கே தோன்றும்</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, ஒன்றுக்கும் மேற்பட்ட செயல்கள் உள்ளன, அவற்றில் ஒன்றைத் தேர்ந்தெடுக்க Tab விசையை அழுத்துங்கள்</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">கார்டு உரிமையாளரின் பெயர்</translation>
 <translation id="1807528111851433570">முதல் தாள்</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">விளம்பரங்கள்</translation>
 <translation id="1919367280705858090">குறிப்பிட்ட பிழைச் செய்திக்கான உதவியைப் பெறுங்கள்</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ஏதுமில்லை}=1{1 தளம்}other{# தளங்கள்}}</translation>
+<translation id="1926148189358507356">’புதுப்பிப்பதற்கு மீண்டும் தொடங்கு’ பட்டன், Chromeமைப் புதுப்பிக்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="1945968466830820669">உங்கள் நிறுவனத்தின் கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="1947454675006758438">ஸ்டேப்பில் டாப் ரைட்</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />நீங்கள் பார்வையிட்ட சில பக்கங்களின் URLகளையும் வரம்பிற்குட்பட்ட சிஸ்டம் தகவல்களையும் சில பக்கங்களின் உள்ளடக்கத்தையும்<ph name="END_WHITEPAPER_LINK" /> Googleளுக்கு அனுப்பி இணையத்தில் உள்ள அனைவரின் பாதுகாப்பையும் மேம்படுத்த உதவுங்கள். <ph name="BEGIN_PRIVACY_PAGE_LINK" />தனியுரிமைக் கொள்கை<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">நிலை</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">நிறுவன இயல்புநிலை</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, புதிய Chrome மறைநிலை சாளரத்தைத் திறக்க Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="2385809941344967209">Chrome அமைப்புகளில் Chromeமைப் புதுப்பித்தல்</translation>
 <translation id="2386255080630008482">சேவையகச் சான்றிதழ் திரும்பப் பெறப்பட்டது.</translation>
 <translation id="2392959068659972793">மதிப்பும் எதுவும் அமைக்கப்படாத கொள்கைகளைக் காட்டு</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">கிளிப்போர்டு</translation>
 <translation id="2587730715158995865">வெளியீட்டாளர்: <ph name="ARTICLE_PUBLISHER" />. இதையும் பிற வெளியீட்டாளர்கள் வழங்கும் <ph name="OTHER_ARTICLE_COUNT" /> கட்டுரைகளையும் படிக்கவும்.</translation>
 <translation id="2587841377698384444">கோப்பக API ஐடி:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome அமைப்புகளில் கிரெடிட் கார்டு குறித்த தன்னிரப்பித் தகவலை மாற்ற Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="2595719060046994702">இந்தச் சாதனமும் கணக்கும் ஒரு நிறுவனத்தின் மூலமோ பிற அமைப்பின் மூலமோ நிர்வகிக்கப்படவில்லை.</translation>
 <translation id="2597378329261239068">இந்த ஆவணம் கடவுச்சொல் பாதுகாக்கப்பட்ட ஒன்று. தயவுசெய்து ஒரு கடவுச்சொல்லை உள்ளிடுக.</translation>
 <translation id="2609632851001447353">வேறுபாடுகள்</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">வெளியேறு</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">கச்சிதமாகப் பொருந்தும் அளவு</translation>
+<translation id="2688738823074468716">’கடவுச்சொற்களை நிர்வகியுங்கள்’ பட்டன், Chrome அமைப்புகளில் கடவுச்சொற்களை நிர்வகிக்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="2688969097326701645">ஆம், தொடர்க</translation>
 <translation id="2691924980723297736">பாதுகாப்பு எச்சரிக்கை</translation>
 <translation id="2699302886720511147">ஏற்கப்படும் கார்டுகள்</translation>
@@ -736,6 +742,7 @@
 <translation id="4088981014127559358">சைடு 1 இமேஜ் Y ஷிஃப்ட்</translation>
 <translation id="4098354747657067197">மோசடிசெய்யும் தளம் உள்ளது</translation>
 <translation id="4101413244023615925">உரை &amp; கிராஃபிக்</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome அமைப்புகளில் கடவுச்சொற்களை நிர்வகிப்பதற்கு Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="4103249731201008433">சாதன சீரியல் எண் தவறானது</translation>
 <translation id="4103763322291513355">ஏற்கத்தகாத URLகளின் பட்டியலையும் உங்கள் கணினி நிர்வாகியால் செயற்படுத்தப்படும் பிற கொள்கைகளையும் காண &lt;strong&gt;chrome://policy&lt;/strong&gt; ஐப் பார்வையிடவும்.</translation>
 <translation id="4110652170750985508">உங்கள் கட்டணத்தை மதிப்பாய்வு செய்யவும்</translation>
@@ -906,6 +913,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> தேடல் பரிந்துரை</translation>
 <translation id="4742407542027196863">கடவுச்சொற்களை நிர்வகி…</translation>
 <translation id="4744603770635761495">இயக்கநிரல் பாதை</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeமைப் புதுப்பிக்க Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="4750917950439032686">உங்கள் தகவலை (எடுத்துக்காட்டு: கடவுச்சொற்கள் அல்லது கிரெடிட் கார்டு எண்கள்) இந்தத் தளத்திற்கு அனுப்பும் போது, தனிப்பட்டதாக இருக்கும்.</translation>
 <translation id="4756388243121344051">&amp;வரலாறு</translation>
 <translation id="4758311279753947758">தொடர்புத் தகவலைச் சேர்</translation>
@@ -947,6 +955,7 @@
 <translation id="4926049483395192435">கட்டாயம் குறிப்பிட வேண்டும்.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> தெரிவிப்பது:</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, தேட Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="4930153903256238152">அதிக கொள்ளளவு</translation>
 <translation id="4943872375798546930">முடிவுகள் இல்லை</translation>
 <translation id="4950898438188848926"><ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /> தாவலைத் திறக்க, ‘தாவல்’ மாற்ற பட்டனைத் தட்டி, ‘எண்டர்’ பட்டனை அழுத்தவும்</translation>
@@ -1023,6 +1032,7 @@
 <translation id="5215116848420601511">Google Payவைப் பயன்படுத்தும் கட்டண முறைகளும் முகவரிகளும்</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">மின்னஞ்சல் தேவை</translation>
+<translation id="5222994811833658317">’தரவை அழி’ பட்டன், Chromeமின் உலாவல் வரலாற்றுத் தரவை அழிக்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="5230733896359313003">ஷிப்பிங் முகவரி</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1063,6 +1073,7 @@
 <translation id="534295439873310000">NFC சாதனங்கள்</translation>
 <translation id="5344579389779391559">இந்தப் பக்கம் உங்களிடமிருந்து கட்டணம் வசூலிக்கலாம்</translation>
 <translation id="5355557959165512791"><ph name="SITE" /> தளத்தின் சான்றிதழ் ரத்துசெய்யப்பட்டதால், தற்போது அதைப் பார்க்க முடியாது. பொதுவாக நெட்வொர்க் பிழைகளும் பாதிப்புகளும் தற்காலிகமானவை என்பதால், இந்தப் பக்கம் பின்னர் சரியாகச் செயல்படக்கூடும்.</translation>
+<translation id="5361930801096459163">’தேடு’ பட்டன், <ph name="KEYWORD_SUFFIX" /> இல் தேட Enter விசையை அழுத்துங்கள்</translation>
 <translation id="536296301121032821">கொள்கை அமைப்புகளைச் சேமிப்பதில் தோல்வி</translation>
 <translation id="5371425731340848620">கார்டை மாற்றவும்</translation>
 <translation id="5377026284221673050">"நேரம் பின்தங்கியுள்ளது" அல்லது "நேரம் கூடுதலாக அமைக்கப்பட்டுள்ளது" அல்லது "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1287,6 +1298,7 @@
 <translation id="6302269476990306341">’Chromeமில் Google அசிஸ்டண்ட்’ நிறுத்தப்படுகிறது</translation>
 <translation id="6305205051461490394"><ph name="URL" />ஐ அடையமுடியவில்லை.</translation>
 <translation id="6312113039770857350">இணையப்பக்கம் கிடைக்கவில்லை</translation>
+<translation id="6315224405718249523">’பக்கத்தை மொழிபெயர்’ பட்டன், இந்தப் பக்கத்தை மொழிபெயர்க்க Enter விசையை அழுத்துங்கள்</translation>
 <translation id="6321917430147971392">உங்கள் DNS அமைப்புகளைச் சரிபார்க்கவும்</translation>
 <translation id="6322182122604171028">Windows Helloவைப் பயன்படுத்த இயலவில்லை</translation>
 <translation id="6328639280570009161">நெட்வொர்க் யூகத்தை முடக்க முயலவும்</translation>
@@ -1341,6 +1353,7 @@
 <translation id="6547208576736763147">டூயல் பஞ்ச் லெஃப்ட்</translation>
 <translation id="6554795675067793129">உங்கள் கணக்கை நிர்வகிப்பது: <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">மீண்டும் செய்</translation>
+<translation id="6566840325635607048">’கிரெடிட் கார்டைப் புதுப்பியுங்கள்’ பட்டன், Chrome அமைப்புகளில் கிரெடிட் கார்டு குறித்த தன்னிரப்பித் தகவலை மாற்ற Enter விசையை அழுத்துங்கள்</translation>
 <translation id="6569060085658103619">நீட்டிப்புப் பக்கத்தைப் பார்க்கிறீர்கள்</translation>
 <translation id="6573200754375280815">டூயல் பஞ்ச் ரைட்</translation>
 <translation id="6578796323535178455">C2 (என்வலப்)</translation>
@@ -1581,6 +1594,7 @@
 <translation id="7549584377607005141">சரியாக காண்பிக்கப்படுவதற்கு நீங்கள் ஏற்கனவே உள்ளிட்ட தரவு இந்த இணையப்பக்கத்திற்கு தேவைப்படுகிறது. இந்த தரவை நீங்கள் மீண்டும் அனுப்பலாம், ஆனால் அவ்வாறு செய்வதனால் இந்தப் பக்கம் ஏற்கனவே செயற்படுத்திய எல்லாச் செயலையும் மீண்டும் செய்வீர்கள்.</translation>
 <translation id="7550637293666041147">உங்கள் சாதன மற்றும் Chrome பயனர்பெயர்</translation>
 <translation id="7552846755917812628">பின்வரும் உதவிக் குறிப்புகளைச் செய்து பார்க்கவும்:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeமின் உலாவல் வரலாற்றுத் தரவை அழிக்க Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="7554791636758816595">புதிய தாவல்</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chrome பரிந்துரைக்கிறது.</translation>
 <translation id="7567204685887185387">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழில் மோசடி செய்யப்பட்டிருக்கலாம். இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
@@ -1747,6 +1761,7 @@
 <translation id="8225771182978767009">இந்தக் கம்ப்யூட்டரை அமைத்த நபர் இந்தத் தளத்தைத் தடுக்கும்படி தேர்வுசெய்துள்ளார்.</translation>
 <translation id="8228419419708659934">இரண்டு பக்கப்பார்வை</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, இந்தப் பக்கத்தை மொழிபெயர்க்க Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation>
 <translation id="8232343881378637145">பிளாட்ஃபார்ம் வெப்பநிலை</translation>
 <translation id="8238581221633243064">புதிய மறைநிலைத் தாவலில் பக்கத்தைத் திறக்கவும்</translation>
 <translation id="8241707690549784388">நீங்கள் தேடும் பக்கமானது நீங்கள் உள்ளிட்ட தகவலைப் பயன்படுத்தியது. மீண்டும் அந்த பக்கத்திற்கு திரும்பினால், நீங்கள் செய்த ஏதேனும் செயலை மீண்டும் செய்ய வேண்டியிருக்கலாம். தொடர விரும்புகிறீர்களா?</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 17a937a..6bfd61c 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">ఆదేశ-పంక్తి వ్యత్యాసాలు</translation>
 <translation id="129553762522093515">ఇటీవల మూసివెయ్యబడినవి</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />మీ కుక్కీలను తీసివేయడానికి ప్రయత్నించండి<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">అజ్ఞాత విండోను తెరిచే బటన్, కొత్త Chrome అజ్ఞాత విండోను తెరవడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="1301324364792935241">మీ సెక్యూర్ DNS సెట్టింగ్‌లను తనిఖీ చేయండి</translation>
 <translation id="1307966114820526988">విస్మరించబడిన ఫీచర్‌లు</translation>
 <translation id="131405271941274527">మీరు NFC పరికరంలో మీ ఫోన్‌పై నొక్కినప్పుడు సమాచారం పంపడానికి, అందుకోవడానికి <ph name="URL" /> అనుమతి కోరుతోంది</translation>
@@ -227,6 +228,7 @@
 <translation id="1783075131180517613">దయచేసి మీ సింక్‌ ర‌హ‌స్య ప‌ద‌బంధాన్ని అప్‌డేట్ చేయండి.</translation>
 <translation id="1787142507584202372">మీ తెరవబడిన ట్యాబ్‌లు ఇక్కడ కనిపిస్తాయి</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, పలు చర్యలు అందుబాటులో ఉన్నాయి, వాటిలో దేనిని అయినా ఎంచుకోవడానికి 'Tab'ను నొక్కండి</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">కార్డుదారుని పేరు</translation>
 <translation id="1807528111851433570">మొదటి షీట్</translation>
@@ -255,6 +257,7 @@
 <translation id="1919345977826869612">ప్రకటనలు</translation>
 <translation id="1919367280705858090">నిర్దిష్ట ఎర్రర్ సందేశానికి సంబంధించిన సహాయం పొందండి</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ఏమీ లేవు}=1{1 సైట్}other{# సైట్‌లు}}</translation>
+<translation id="1926148189358507356">అప్‌డేట్ చేయడానికి మళ్లీ ప్రారంభించే బటన్, Chromeను అప్‌డేట్ చేయడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="1945968466830820669">మీరు మీ సంస్థ ఖాతాకు యాక్సెస్‌ను కోల్పోవచ్చు. లేదా గుర్తింపు స‌మాచారం చౌర్యానికి గురికావచ్చు. Chromium మీరు ఇప్పుడే మీ పాస్‌వర్డ్‌ను మార్చాల్సిందిగా సిఫార్సు చేస్తోంది.</translation>
 <translation id="1947454675006758438">కుడివైపు ఎగువ భాగంలో స్టేపుల్</translation>
 <translation id="1959001866257244765">Googleకు <ph name="BEGIN_WHITEPAPER_LINK" />మీరు సందర్శించిన కొన్ని పేజీల URLలు, పరిమిత సిస్టమ్ సమాచారం, కొంత పేజీ కంటెంట్<ph name="END_WHITEPAPER_LINK" />ను పంపడం ద్వారా వెబ్‌లో ప్రతిఒక్కరికీ భద్రతను మెరుగుపరచడంలో సహాయం చేయండి. <ph name="BEGIN_PRIVACY_PAGE_LINK" />గోప్యతా పాలసీ<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -359,6 +362,7 @@
 <translation id="2367567093518048410">స్థాయి</translation>
 <translation id="2380886658946992094">చట్టపరం</translation>
 <translation id="2384307209577226199">ఎంటర్‌ప్రైజ్ డిఫాల్ట్</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeలో కొత్త అజ్ఞాత విండోను తెరవడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="2385809941344967209">మీ Chrome సెట్టింగ్‌ల నుండి Chromeను అప్‌డేట్ చేయండి</translation>
 <translation id="2386255080630008482">సర్వర్ ప్రమాణపత్రం రద్దు చెయ్యబడింది.</translation>
 <translation id="2392959068659972793">విలువ సెట్ చేయని విధానాలను చూపు</translation>
@@ -401,6 +405,7 @@
 <translation id="2586657967955657006">క్లిప్‌బోర్డ్</translation>
 <translation id="2587730715158995865">ప్రచురణకర్త <ph name="ARTICLE_PUBLISHER" />. దీన్ని మరియు మరో <ph name="OTHER_ARTICLE_COUNT" /> ఇతర కథనాలను చదవండి.</translation>
 <translation id="2587841377698384444">డైరెక్టరీ API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome సెట్టింగ్‌లలో క్రెడిట్ కార్డ్ ఆటోఫిల్ సమాచారాన్ని అప్‌డేట్ చేయడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="2595719060046994702">ఈ పరికరం మరియు ఖాతా రెండూ కూడా కంపెనీ లేదా ఇతర సంస్థ నిర్వహణలో లేవు.</translation>
 <translation id="2597378329261239068">ఈ పత్రం అనుమతి పదంచే రక్షించబడింది. దయచేసి అనుమతి పదాన్ని నమోదు చేయండి.</translation>
 <translation id="2609632851001447353">వ్యత్యాసాలు</translation>
@@ -422,6 +427,7 @@
 <translation id="2677748264148917807">నిష్క్రమించు</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">సరిపోయేలా అమర్చు</translation>
+<translation id="2688738823074468716">పాస్‌వర్డ్‌లను మేనేజ్ చేసే బటన్, Chrome సెట్టింగ్‌లలో పాస్‌వర్డ్‌లను మేనేజ్ చేయడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="2688969097326701645">అవును, కొనసాగించు</translation>
 <translation id="2691924980723297736">భద్రతా హెచ్చరిక</translation>
 <translation id="2699302886720511147">ఆమోదించే కార్డ్‌లు</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">1 వైపు ప్రింట్‌లో చిత్రాన్ని Y అక్షంలో జరపు</translation>
 <translation id="4098354747657067197">ముందున్న సైట్ మోసపూరితమైనది</translation>
 <translation id="4101413244023615925">టెక్స్ట్, గ్రాఫిక్స్</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome సెట్టింగ్‌లలో పాస్‌వర్డ్‌లను మేనేజ్ చేయడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="4103249731201008433">పరికరం క్రమ సంఖ్య చెల్లదు</translation>
 <translation id="4103763322291513355">బ్లాక్‌లిస్ట్‌లో ఉన్న URLల జాబితాను మరియు మీ సిస్టమ్ నిర్వాహకుని ద్వారా అమలు చేయబడిన ఇతర విధానాలను చూడటానికి &lt;strong&gt;chrome://policy&lt;/strong&gt;ని సందర్శించండి.</translation>
 <translation id="4110652170750985508">మీ చెల్లింపును సమీక్షించండి</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> శోధన సూచన</translation>
 <translation id="4742407542027196863">పాస్‌వర్డ్‌లను నిర్వహించు…</translation>
 <translation id="4744603770635761495">అమలు చేయగల పాథ్‌</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeను అప్‌డేట్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
 <translation id="4750917950439032686">మీ సమాచారాన్ని (ఉదాహరణకు, పాస్‌వర్డ్‌లు లేదా క్రెడిట్ కార్డ్ నంబర్‌లు) ఈ సైట్‌కు పంపినప్పుడు అది ప్రైవేట్‌గా ఉంచబడుతుంది.</translation>
 <translation id="4756388243121344051">&amp;చరిత్ర</translation>
 <translation id="4758311279753947758">సంప్రదింపు సమాచారాన్ని జోడించు</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">ఖచ్చితంగా పేర్కొనాలి.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> ఇలా చెబుతోంది</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, వెతకడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="4930153903256238152">ఎక్కువ సామర్థ్యం</translation>
 <translation id="4943872375798546930">ఫలితాలు ఏవీ లేవు</translation>
 <translation id="4950898438188848926">ట్యాబ్ మార్పు బటన్, తెరిచియున్న ట్యాబ్ <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" />కు మారడానికి ఎంటర్ నొక్కండి</translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Google Payని ఉపయోగిస్తున్న చెల్లింపు పద్ధతులు మరియు చిరునామాలు</translation>
 <translation id="5215363486134917902">ఫోలియో-Sp</translation>
 <translation id="5222812217790122047">ఇమెయిల్ అవ‌స‌రం</translation>
+<translation id="5222994811833658317">డేటాను క్లియర్ చేసే బటన్, Chrome బ్రౌజింగ్ హిస్టరీ డేటాను క్లియర్ చేయడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="5230733896359313003">బట్వాడా చిరునామా</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">NFC పరికరాలు</translation>
 <translation id="5344579389779391559">ఈ పేజీ మీకు డబ్బు ఛార్జీ చేయడానికి ప్రయత్నించవచ్చు</translation>
 <translation id="5355557959165512791"><ph name="SITE" /> యొక్క ప్రమాణపత్రం రద్దు చేయబడినందున మీరు ప్రస్తుతం దీన్ని సందర్శించలేరు. నెట్‌వర్క్ లోపాలు మరియు దాడులు సాధారణంగా తాత్కాలికమే, కనుక ఈ పేజీ తర్వాత పని చేయవచ్చు.</translation>
+<translation id="5361930801096459163">సెర్చ్ బటన్, <ph name="KEYWORD_SUFFIX" />ను వెతకడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="536296301121032821">విధాన సెట్టింగ్‌లను నిల్వ చేయడంలో విఫలమైంది</translation>
 <translation id="5371425731340848620">కార్డ్‌ని అప్‌డేట్ చేయండి</translation>
 <translation id="5377026284221673050">"మీ గడియారం ఆలస్యంగా నడుస్తోంది" లేదా "మీ గడియారం ముందుగా ఉంది" లేదా "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Chromeలో Google అసిస్టెంట్ ఆపివేయబడుతోంది</translation>
 <translation id="6305205051461490394"><ph name="URL" />ని చేరుకోలేకపోయాము.</translation>
 <translation id="6312113039770857350">వెబ్‌పేజీ అందుబాటులో లేదు</translation>
+<translation id="6315224405718249523">పేజీని అనువాదించే బటన్, ఈ పేజీని అనువదించడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="6321917430147971392">మీ DNS సెట్టింగ్‌లను తనిఖీ చేయండి</translation>
 <translation id="6322182122604171028">Windows Helloను ఉపయోగించడం సాధ్యం కాలేదు</translation>
 <translation id="6328639280570009161">నెట్‌వర్క్ సూచనను నిలిపివేసి ప్రయత్నించండి</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">ఎడమవైపు రెండు రంధ్రాలు</translation>
 <translation id="6554795675067793129">మీ ఖాతా <ph name="ENROLLMENT_DOMAIN" /> నిర్వహణలో ఉంది.</translation>
 <translation id="6556866813142980365">మళ్లీ చేయి</translation>
+<translation id="6566840325635607048">క్రెడిట్ కార్డ్‌ను అప్‌డేట్ చేసే బటన్, Chrome సెట్టింగ్‌లలో క్రెడిట్ కార్డ్ ఆటోఫిల్ సమాచారాన్ని అప్‌డేట్ చేయడానికి 'Enter'ను నొక్కండి</translation>
 <translation id="6569060085658103619">మీరు పొడిగింపు పేజీని వీక్షిస్తున్నారు</translation>
 <translation id="6573200754375280815">కుడివైపు రెండు రంధ్రాలు</translation>
 <translation id="6578796323535178455">C2 (ఎన్వలప్)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">ఈ వెబ్‌పేజీ సరిగ్గా ప్రదర్శించబడటానికి మీరు మునుపు నమోదు చేసిన డేటా అవసరం. మీరు ఈ డేటాను మళ్లీ పంపవచ్చు. కానీ అలా చేయడం వ‌ల్ల‌ ఈ పేజీ మునుపు ప్రదర్శించిన ఏదైనా చర్య పునరావృతం కావచ్చు.</translation>
 <translation id="7550637293666041147">మీ పరికరం వినియోగదారు పేరు మరియు Chrome వినియోగదారు పేరు</translation>
 <translation id="7552846755917812628">క్రింది చిట్కాలను ప్రయత్నించండి:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome బ్రౌజింగ్ హిస్టరీ డేటాను క్లియర్ చేయడానికి 'Tab'ను నొక్కి, 'ఆపై Enter'ను నొక్కండి</translation>
 <translation id="7554791636758816595">కొత్త ట్యాబ్</translation>
 <translation id="7564049878696755256">మీరు మీ <ph name="ORG_NAME" /> ఖాతాకు యాక్సెస్‌ని కోల్పోవచ్చు లేదా గుర్తింపు చోరీకి గురి కావచ్చు. మీ పాస్‌వర్డ్‌ని ఇప్పుడే రీసెట్ చేయాల్సిందిగా Chrome సిఫార్సు చేస్తోంది.</translation>
 <translation id="7567204685887185387">ఈ సర్వర్ <ph name="DOMAIN" /> అని నిరూపించుకోలేకపోయింది; దీని భద్రతా ప్రమాణపత్రం మోసపూరితంగా జారీ అయ్యి ఉండవచ్చు. ఇది తప్పుగా కాన్ఫిగర్ చేయడం వలన లేదా దాడిచేసే వ్యక్తి మీ కనెక్షన్‌కు అంతరాయం కలిగించడం వలన జరిగి ఉండవచ్చు.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">ఈ కంప్యూటర్‌ను సెటప్ చేసిన వ్యక్తి ఈ సైట్‌ను బ్లాక్ చేయడం ఎంచుకున్నారు.</translation>
 <translation id="8228419419708659934">రెండు పేజీల వీక్షణ</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ఈ పేజీని అనువదించడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
 <translation id="8232343881378637145">ప్లాట్‌ఫామ్ ఉష్ణోగ్రత</translation>
 <translation id="8238581221633243064">కొత్త అజ్ఞాత ట్యాబ్‌లో పేజీని తెరవండి</translation>
 <translation id="8241707690549784388">మీరు వెతికే పేజీ మీరు ఎంటర్ చేసిన సమాచారాన్ని ఉపయోగించుకుంది. ఆ పేజీకి తిరిగి వెళ్ల‌డం ద్వారా మీరు చేసిన ఏ చర్య అయినా పునరావృతం చేయ‌వలసి వస్తుంది. మీరు కొనసాగాలని అనుకుంటున్నారా?</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 218eece..a585b66 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">บรรทัดคำสั่งรูปแบบต่างๆ</translation>
 <translation id="129553762522093515">เพิ่งปิด</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ลองล้างคุกกี้<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">ปุ่มเปิดหน้าต่างที่ไม่ระบุตัวตน, กด Enter เพื่อเปิดหน้าต่างใหม่ที่ไม่ระบุตัวตนใน Chrome</translation>
 <translation id="1301324364792935241">ตรวจสอบการตั้งค่า DNS ที่ปลอดภัย</translation>
 <translation id="1307966114820526988">ฟีเจอร์ที่เลิกใช้งานแล้ว</translation>
 <translation id="131405271941274527"><ph name="URL" /> ต้องการส่งและรับข้อมูลเมื่อคุณแตะโทรศัพท์กับอุปกรณ์ NFC</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">โปรดอัปเดตข้อความรหัสผ่านที่ซิงค์ของคุณ</translation>
 <translation id="1787142507584202372">แท็บที่คุณเปิดไว้จะปรากฏที่นี่</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, มีการทำงานหลายอย่างที่ทำได้ กด Tab เพื่อวนดูการทำงานดังกล่าว</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">ชื่อผู้ถือบัตร</translation>
 <translation id="1807528111851433570">แผ่นงานเริ่มต้น</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">โฆษณา</translation>
 <translation id="1919367280705858090">ขอความช่วยเหลือเกี่ยวกับข้อความแสดงข้อผิดพลาดที่เจาะจง</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{ไม่มี}=1{เว็บไซต์ 1 แห่ง}other{เว็บไซต์ # แห่ง}}</translation>
+<translation id="1926148189358507356">ปุ่มเปิดอีกครั้งเพื่ออัปเดต, กด Enter เพื่ออัปเดต Chrome</translation>
 <translation id="1945968466830820669">คุณอาจเข้าถึงบัญชีขององค์กรไม่ได้หรือถูกโจรกรรมข้อมูลประจำตัว Chromium ขอแนะนำให้เปลี่ยนรหัสผ่านตอนนี้เลย</translation>
 <translation id="1947454675006758438">เย็บด้วยลวดเย็บกระดาษด้านขวาบน</translation>
 <translation id="1959001866257244765">ช่วยปรับปรุงความปลอดภัยในอินเทอร์เน็ตสำหรับทุกคนโดยการส่ง <ph name="BEGIN_WHITEPAPER_LINK" />URL ของหน้าเว็บบางหน้าที่คุณเข้าชม ข้อมูลระบบที่จำกัด และเนื้อหาบางส่วนของหน้า<ph name="END_WHITEPAPER_LINK" />ให้ Google <ph name="BEGIN_PRIVACY_PAGE_LINK" />นโยบายความเป็นส่วนตัว<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">ระดับ</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">ค่าเริ่มต้นขององค์กร</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่อเปิดหน้าต่างใหม่ที่ไม่ระบุตัวตนใน Chrome</translation>
 <translation id="2385809941344967209">อัปเดต Chrome จากการตั้งค่า Chrome</translation>
 <translation id="2386255080630008482">ใบรับรองของเซิร์ฟเวอร์ถูกเพิกถอนแล้ว</translation>
 <translation id="2392959068659972793">แสดงนโยบายโดยที่ไม่ได้ตั้งค่า</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">คลิปบอร์ด</translation>
 <translation id="2587730715158995865">จาก <ph name="ARTICLE_PUBLISHER" /> อ่านเรื่องราวนี้และอื่นๆ อีก <ph name="OTHER_ARTICLE_COUNT" /> เรื่อง</translation>
 <translation id="2587841377698384444">รหัส API ไดเรกทอรี:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่ออัปเดตข้อมูลบัตรเครดิตสำหรับการป้อนข้อความอัตโนมัติในการตั้งค่า Chrome</translation>
 <translation id="2595719060046994702">อุปกรณ์และบัญชีนี้ไม่ได้จัดการโดยบริษัทหรือองค์กรอื่น</translation>
 <translation id="2597378329261239068">เอกสารนี้ได้รับการป้องกันด้วยรหัสผ่าน โปรดป้อนรหัสผ่าน</translation>
 <translation id="2609632851001447353">รูปแบบต่างๆ</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">ออก</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">ปรับพอดี</translation>
+<translation id="2688738823074468716">ปุ่มจัดการรหัสผ่าน, กด Enter เพื่อจัดการรหัสผ่านในการตั้งค่า Chrome</translation>
 <translation id="2688969097326701645">ใช่ ดำเนินการต่อ</translation>
 <translation id="2691924980723297736">คำเตือนด้านความปลอดภัย</translation>
 <translation id="2699302886720511147">บัตรที่ยอมรับ</translation>
@@ -734,6 +740,7 @@
 <translation id="4088981014127559358">เปลี่ยนตำแหน่งรูปภาพด้าน 1 ตามแกน Y</translation>
 <translation id="4098354747657067197">เว็บไซต์ข้างหน้ามีการหลอกลวง</translation>
 <translation id="4101413244023615925">ข้อความและกราฟิก</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่อจัดการรหัสผ่านในการตั้งค่า Chrome</translation>
 <translation id="4103249731201008433">หมายเลขซีเรียลของอุปกรณ์ไม่ถูกต้อง</translation>
 <translation id="4103763322291513355">ไปที่ &lt;strong&gt;chrome://policy&lt;/strong&gt; เพื่อดูรายการของ URL ที่ไม่ได้รับอนุญาต และนโยบายอื่นๆ ที่ผู้ดูแลระบบของคุณบังคับใช้</translation>
 <translation id="4110652170750985508">ตรวจสอบการชำระเงิน</translation>
@@ -900,6 +907,7 @@
 <translation id="4738601419177586157">การแนะนำการค้นหา <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">จัดการรหัสผ่าน…</translation>
 <translation id="4744603770635761495">เส้นทางปฏิบัติการ</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่ออัปเดต Chrome</translation>
 <translation id="4750917950439032686">ข้อมูลของคุณ (ตัวอย่างเช่น รหัสผ่านหรือหมายเลขบัตรเครดิต) จะเป็นส่วนตัวเมื่อส่งมายังเว็บไซต์นี้</translation>
 <translation id="4756388243121344051">&amp;ประวัติการเข้าชม</translation>
 <translation id="4758311279753947758">เพิ่มข้อมูลติดต่อ</translation>
@@ -941,6 +949,7 @@
 <translation id="4926049483395192435">ต้องระบุ</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> บอกว่า</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่อค้นหา</translation>
 <translation id="4930153903256238152">ความจุมาก</translation>
 <translation id="4943872375798546930">ไม่มีผลการค้นหา</translation>
 <translation id="4950898438188848926">ปุ่มเปลี่ยนแท็บ โปรดกด Enter เพื่อเปลี่ยนไปยังแท็บที่เปิดอยู่ <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1017,6 +1026,7 @@
 <translation id="5215116848420601511">วิธีการชำระเงินและที่อยู่จาก Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">ต้องระบุอีเมล</translation>
+<translation id="5222994811833658317">ปุ่มล้างข้อมูล, กด Enter เพื่อล้างข้อมูลประวัติการท่องเว็บใน Chrome</translation>
 <translation id="5230733896359313003">ที่อยู่ในการจัดส่ง</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1057,6 +1067,7 @@
 <translation id="534295439873310000">อุปกรณ์ NFC</translation>
 <translation id="5344579389779391559">อาจมีการพยายามเรียกเก็บเงินจากคุณในหน้านี้</translation>
 <translation id="5355557959165512791">คุณไม่สามารถไปที่ <ph name="SITE" /> ได้ในขณะนี้เนื่องจากใบรับรองถูกเพิกถอนแล้ว โดยปกติข้อผิดพลาดของเครือข่ายและการโจมตีจะเกิดขึ้นเพียงชั่วคราว หน้านี้จึงอาจจะใช้งานได้ในภายหลัง</translation>
+<translation id="5361930801096459163">ปุ่มค้นหา, กด Enter เพื่อค้นหา <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">ไม่สามารถจัดเก็บการตั้งค่านโยบาย</translation>
 <translation id="5371425731340848620">อัปเดตบัตร</translation>
 <translation id="5377026284221673050">"นาฬิกาของคุณช้ากว่าปัจจุบัน" หรือ "นาฬิกาของคุณเร็วกว่าปัจจุบัน" หรือ "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1282,6 +1293,7 @@
 <translation id="6302269476990306341">Google Assistant ใน Chrome หยุดทำงาน</translation>
 <translation id="6305205051461490394">ไม่สามารถเข้าถึง <ph name="URL" /></translation>
 <translation id="6312113039770857350">หน้าเว็บไม่พร้อมใช้งาน</translation>
+<translation id="6315224405718249523">ปุ่มแปลหน้าเว็บ, กด Enter เพื่อแปลหน้านี้</translation>
 <translation id="6321917430147971392">ตรวจสอบการตั้งค่า DNS</translation>
 <translation id="6322182122604171028">ใช้ Windows Hello ไม่ได้</translation>
 <translation id="6328639280570009161">ลองปิดการคาดคะเนเครือข่าย</translation>
@@ -1336,6 +1348,7 @@
 <translation id="6547208576736763147">เจาะรูด้านซ้าย 2 รู</translation>
 <translation id="6554795675067793129">บัญชีของคุณจัดการโดย <ph name="ENROLLMENT_DOMAIN" /></translation>
 <translation id="6556866813142980365">ทำซ้ำ</translation>
+<translation id="6566840325635607048">ปุ่มอัปเดตบัตรเครดิต, กด Enter เพื่ออัปเดตข้อมูลบัตรเครดิตสำหรับการป้อนข้อความอัตโนมัติในการตั้งค่า Chrome</translation>
 <translation id="6569060085658103619">คุณกำลังดูหน้าส่วนขยาย</translation>
 <translation id="6573200754375280815">เจาะรูด้านขวา 2 รู</translation>
 <translation id="6578796323535178455">C2 (ซองจดหมาย)</translation>
@@ -1576,6 +1589,7 @@
 <translation id="7549584377607005141">หน้าเว็บนี้ต้องใช้ข้อมูลที่คุณป้อนก่อนหน้านี้เพื่อให้แสดงได้อย่างถูกต้อง คุณสามารถส่งข้อมูลนี้ได้อีกครั้ง แต่การทำเช่นนั้นจะเป็นการทำสิ่งที่หน้าเว็บนี้เคยดำเนินการซ้ำอีกครั้ง</translation>
 <translation id="7550637293666041147">ชื่อผู้ใช้ของคุณในอุปกรณ์และใน Chrome</translation>
 <translation id="7552846755917812628">ลองทำตามเคล็ดลับต่อไปนี้:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่อล้างข้อมูลประวัติการท่องเว็บใน Chrome</translation>
 <translation id="7554791636758816595">แท็บใหม่</translation>
 <translation id="7564049878696755256">คุณอาจเข้าถึงบัญชี <ph name="ORG_NAME" /> ไม่ได้หรือถูกโจรกรรมข้อมูลประจำตัว Chrome ขอแนะนำให้เปลี่ยนรหัสผ่านตอนนี้เลย</translation>
 <translation id="7567204685887185387">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เพราะอาจมีการออกใบรับรองความปลอดภัยปลอม โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ</translation>
@@ -1742,6 +1756,7 @@
 <translation id="8225771182978767009">ผู้ที่ตั้งค่าคอมพิวเตอร์เครื่องนี้เลือกบล็อกเว็บไซต์นี้</translation>
 <translation id="8228419419708659934">ดูแบบ 2 หน้า</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, กด Tab ตามด้วย Enter เพื่อแปลหน้านี้</translation>
 <translation id="8232343881378637145">อุณหภูมิของแพลตฟอร์ม</translation>
 <translation id="8238581221633243064">เปิดหน้าเว็บในแท็บไม่ระบุตัวตนใหม่</translation>
 <translation id="8241707690549784388">หน้าที่คุณกำลังมองหาใช้ข้อมูลที่คุณได้ป้อนไว้แล้ว การกลับไปสู่หน้านั้นอาจทำให้คุณต้องทำซ้ำการดำเนินการใดๆ ที่คุณทำแล้ว คุณต้องการดำเนินการต่อหรือไม่</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 79e0328..14cd3ed 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Komut satırı varyasyonları</translation>
 <translation id="129553762522093515">Son kapatılan</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Çerezlerinizi temizlemeyi deneyin<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Gizli Pencere Aç düğmesi, yeni Chrome gizli penceresi açmak için Enter'a basın</translation>
 <translation id="1301324364792935241">Güvenli DNS ayarlarınızı kontrol edin</translation>
 <translation id="1307966114820526988">Kullanımdan Kaldırılan Özellikler</translation>
 <translation id="131405271941274527"><ph name="URL" />, bir NFC cihazında telefonunuza dokunduğunuzda bilgi gönderip almak istiyor</translation>
@@ -222,6 +223,7 @@
 <translation id="1783075131180517613">Lütfen senkronizasyon parolanızı güncelleyin.</translation>
 <translation id="1787142507584202372">Açık sekmeleriniz burada görünür</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, birden fazla işlem mevcut, işlemler arasında geçiş yapmak için Sekme'ye basın</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Kart Sahibinin Adı</translation>
 <translation id="1807528111851433570">Başlangıç sayfası</translation>
@@ -250,6 +252,7 @@
 <translation id="1919345977826869612">Reklamlar</translation>
 <translation id="1919367280705858090">Belirli bir hata mesajıyla ilgili yardım alma</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Yok}=1{1 site}other{# site}}</translation>
+<translation id="1926148189358507356">Güncellemek için Yeniden Başlat düğmesi, Chrome'u güncellemek için Enter'a basın</translation>
 <translation id="1945968466830820669">Kuruluşunuzun hesabına erişimi kaybedebilir veya kimlik hırsızlığına maruz kalabilirsiniz. Chromium, şifrenizi hemen değiştirmenizi önerir.</translation>
 <translation id="1947454675006758438">Sağ üstte tel zımba</translation>
 <translation id="1959001866257244765">Google'a <ph name="BEGIN_WHITEPAPER_LINK" />ziyaret ettiğiniz bazı sitelerin URL'lerini, sınırlı sistem bilgisini ve bazı sayfa içeriklerini<ph name="END_WHITEPAPER_LINK" /> göndererek herkes için web güvenliğini iyileştirmeye yardımcı olun. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Gizlilik politikası<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -354,6 +357,7 @@
 <translation id="2367567093518048410">Düzey</translation>
 <translation id="2380886658946992094">Hukuk</translation>
 <translation id="2384307209577226199">Kuruluşun varsayılan ayarı</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, yeni Chrome gizli penceresi açmak için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="2385809941344967209">Chrome ayarlarınızdan Chrome'u güncelleyin</translation>
 <translation id="2386255080630008482">Sunucunun sertifikası iptal edildi.</translation>
 <translation id="2392959068659972793">Hiçbir değer ayarlanmamış politikaları göster</translation>
@@ -396,6 +400,7 @@
 <translation id="2586657967955657006">Pano</translation>
 <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> adlı yayıncıdan. Bunu ve diğer <ph name="OTHER_ARTICLE_COUNT" /> haberi okuyun.</translation>
 <translation id="2587841377698384444">Dizin API'sı Kimliği:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ayarlarından kredi kartı otomatik doldurma bilgilerini güncellemek için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="2595719060046994702">Bu cihaz ve hesap bir şirket veya başka kuruluş tarafından yönetilmiyor.</translation>
 <translation id="2597378329261239068">Doküman şifre korumalı. Lütfen şifreyi girin.</translation>
 <translation id="2609632851001447353">Varyasyonlar</translation>
@@ -417,6 +422,7 @@
 <translation id="2677748264148917807">Çık</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">En uygun</translation>
+<translation id="2688738823074468716">Şifreleri Yönet düğmesi, Chrome ayarlarından şifreleri yönetmek için Enter'a basın</translation>
 <translation id="2688969097326701645">Evet, devam et</translation>
 <translation id="2691924980723297736">Güvenlik uyarısı</translation>
 <translation id="2699302886720511147">Kabul Edilen Kartlar</translation>
@@ -736,6 +742,7 @@
 <translation id="4088981014127559358">Taraf 1 resim Y kayması</translation>
 <translation id="4098354747657067197">Yanıltıcı bir siteye girmek üzeresiniz</translation>
 <translation id="4101413244023615925">Metin ve grafik</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome ayarlarından şifrelerinizi yönetmek için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="4103249731201008433">Cihazın seri numarası geçersiz</translation>
 <translation id="4103763322291513355">Kara listeye alınmış URL'lerin ve sistem yöneticinizin zorunlu tuttuğu diğer politikaların listesini görmek için &lt;strong&gt;chrome://policy&lt;/strong&gt; adresini ziyaret edin.</translation>
 <translation id="4110652170750985508">Ödemenizi inceleyin</translation>
@@ -903,6 +910,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> arama önerisi</translation>
 <translation id="4742407542027196863">Şifreleri yönet…</translation>
 <translation id="4744603770635761495">Çalıştırılabilir Yol</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome'u güncellemek için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="4750917950439032686">Bilgileriniz (örneğin şifreler veya kredi kartı numaraları), bu siteye gönderilirken gizli olur.</translation>
 <translation id="4756388243121344051">&amp;Geçmiş</translation>
 <translation id="4758311279753947758">İletişim bilgilerinizi ekleyin</translation>
@@ -944,6 +952,7 @@
 <translation id="4926049483395192435">Belirtilmelidir.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> web sitesinin mesajı</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, aramak için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="4930153903256238152">Yüksek kapasite</translation>
 <translation id="4943872375798546930">Sonuç yok</translation>
 <translation id="4950898438188848926">Sekme değiştirme düğmesi, açık sekmeye geçmek için enter tuşuna basın, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1020,6 +1029,7 @@
 <translation id="5215116848420601511">Google Pay'i kullanan ödeme yöntemleri ve adresler</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-posta gerekli</translation>
+<translation id="5222994811833658317">Verileri Temizle düğmesi, Chrome'un tarama geçmişi verilerini temizlemek için Enter'a basın</translation>
 <translation id="5230733896359313003">Gönderim Adresi</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1060,6 +1070,7 @@
 <translation id="534295439873310000">NFC cihazları</translation>
 <translation id="5344579389779391559">Bu sayfa sizden para almaya çalışabilir</translation>
 <translation id="5355557959165512791">Sertifikası iptal edildiği için <ph name="SITE" /> sitesini şu anda ziyaret edemezsiniz. Ağ hataları ve saldırılar genellikle geçici olduğundan, bu sayfa muhtemelen daha sonra çalışacaktır.</translation>
+<translation id="5361930801096459163">Arama düğmesi, <ph name="KEYWORD_SUFFIX" /> sitesini aramak için Enter'a basın</translation>
 <translation id="536296301121032821">Politika ayarları saklanamadı</translation>
 <translation id="5371425731340848620">Kartı güncelle</translation>
 <translation id="5377026284221673050">"Saatiniz geri", "Saatiniz ileri" veya "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1285,6 +1296,7 @@
 <translation id="6302269476990306341">Chrome'da Google Asistan durduruluyor</translation>
 <translation id="6305205051461490394"><ph name="URL" /> adresine ulaşılamıyor.</translation>
 <translation id="6312113039770857350">Web sayfası mevcut değil</translation>
+<translation id="6315224405718249523">Sayfayı Çevir düğmesi, bu sayfayı çevirmek için Enter'a basın</translation>
 <translation id="6321917430147971392">DNS ayarlarınızı kontrol edin</translation>
 <translation id="6322182122604171028">Windows Hello kullanılamadı</translation>
 <translation id="6328639280570009161">Ağ tahmin özelliğini devre dışı bırakmayı deneyin</translation>
@@ -1339,6 +1351,7 @@
 <translation id="6547208576736763147">Solda ikili delik</translation>
 <translation id="6554795675067793129">Hesabınız <ph name="ENROLLMENT_DOMAIN" /> tarafından yönetiliyor.</translation>
 <translation id="6556866813142980365">Yeniden Yap</translation>
+<translation id="6566840325635607048">Kredi Kartını Güncelle düğmesi, Chrome ayarlarından kredi kartı otomatik doldurma bilgilerini güncellemek için Enter'a basın</translation>
 <translation id="6569060085658103619">Bir uzantı sayfası görüntülüyorsunuz</translation>
 <translation id="6573200754375280815">Sağda ikili delik</translation>
 <translation id="6578796323535178455">C2 (Zarf)</translation>
@@ -1579,6 +1592,7 @@
 <translation id="7549584377607005141">Bu Web sayfasının düzgün şekilde görüntülenmesi için, önceden girdiğiniz veriler gerekiyor. Bu verileri tekrar gönderebilirsiniz, ancak bunu yaptığınızda bu sayfanın daha önce gerçekleştirdiği işlemler de tekrar edilir.</translation>
 <translation id="7550637293666041147">Cihaz kullanıcı adınız ve Chrome kullanıcı adınız</translation>
 <translation id="7552846755917812628">Aşağıdaki ipuçlarını deneyin:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome'un tarama geçmişi verilerini temizlemek için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="7554791636758816595">Yeni Sekme</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> hesabınıza erişimi kaybedebilir veya kimlik hırsızlığına maruz kalabilirsiniz. Chrome, şifrenizi hemen değiştirmenizi önerir.</translation>
 <translation id="7567204685887185387">Bu sunucu <ph name="DOMAIN" /> olduğunu kanıtlayamadı. Güvenlik sertifikası hileli bir şekilde yayınlanmış olabilir. Bu durum, bir yanlış yapılandırmadan veya bağlantıya müdahale eden bir saldırgandan kaynaklanıyor olabilir.</translation>
@@ -1745,6 +1759,7 @@
 <translation id="8225771182978767009">Bu bilgisayarı kuran kişi bu siteyi engellemeyi seçmiş.</translation>
 <translation id="8228419419708659934">İki sayfalı görünüm</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bu sayfayı çevirmek için Sekme'ye, sonra Enter'a basın</translation>
 <translation id="8232343881378637145">Platform sıcaklığı</translation>
 <translation id="8238581221633243064">Sayfayı yeni bir Gizli sekmede aç</translation>
 <translation id="8241707690549784388">Aradığınız sayfa, girdiğiniz bilgileri kullandı. O sayfaya dönmeniz, gerçekleştirdiğiniz işlemlerin tekrarlanmasına yol açabilir. Devam etmek istiyor musunuz?</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index b3baa1f2..adcb3ad 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Варіанти командного рядка</translation>
 <translation id="129553762522093515">Нещодавно закриті</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Спробуйте видалити файли cookie<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Кнопка "Відкрити вікно в режимі анонімного перегляду"; натисніть Enter, щоб відкрити нове вікно в режимі анонімного перегляду в Chrome</translation>
 <translation id="1301324364792935241">Перевірте налаштування безпеки DNS</translation>
 <translation id="1307966114820526988">Функції не підтримуються</translation>
 <translation id="131405271941274527">Сайт <ph name="URL" /> хоче обмінюватися даними з телефоном через NFC</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Оновіть парольну фразу для синхронізації.</translation>
 <translation id="1787142507584202372">Тут відображатимуться ваші відкриті вкладки</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />; доступно кілька дій, натискайте Tab, щоб переходити між ними</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Ім’я та прізвище власника картки</translation>
 <translation id="1807528111851433570">Перший аркуш</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Оголошення</translation>
 <translation id="1919367280705858090">Як виправити конкретну помилку</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Немає}=1{1 сайт}one{# сайт}few{# сайти}many{# сайтів}other{# сайту}}</translation>
+<translation id="1926148189358507356">Кнопка "Перезапустити, щоб оновити"; натисніть Enter, щоб оновити Chrome</translation>
 <translation id="1945968466830820669">Ви можете втратити доступ до облікового запису організації, або хтось може викрасти вашу особисту інформацію. Chromium радить змінити пароль.</translation>
 <translation id="1947454675006758438">Скріпити вгорі праворуч</translation>
 <translation id="1959001866257244765">Допоможіть посилити безпеку в Інтернеті для всіх користувачів, надсилаючи в Google <ph name="BEGIN_WHITEPAPER_LINK" />URL-адреси та вміст деяких відвіданих сторінок, а також обмежену системну інформацію<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Політика конфіденційності<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Рівень</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Стандартне корпоративне правило</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб відкрити нове вікно в режимі анонімного перегляду в Chrome</translation>
 <translation id="2385809941344967209">Оновити веб-переглядач Chrome у його налаштуваннях</translation>
 <translation id="2386255080630008482">Сертифікат сервера відкликано.</translation>
 <translation id="2392959068659972793">Показувати правила, для яких не встановлено значення</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Буфер обміну</translation>
 <translation id="2587730715158995865">Видавець: <ph name="ARTICLE_PUBLISHER" />. Читайте цю та ще <ph name="OTHER_ARTICLE_COUNT" /> статей.</translation>
 <translation id="2587841377698384444">Ідентифікатор API каталогу:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб оновити дані кредитних карток для автозаповнення в налаштуваннях Chrome</translation>
 <translation id="2595719060046994702">Цими пристроєм і обліковим записом не керує компанія чи інша організація.</translation>
 <translation id="2597378329261239068">Цей документ захищено паролем. Введіть пароль.</translation>
 <translation id="2609632851001447353">Різновиди</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Вийти</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Оптимальний розмір</translation>
+<translation id="2688738823074468716">Кнопка "Керувати паролями"; натисніть Enter, щоб керувати паролями в налаштуваннях Chrome</translation>
 <translation id="2688969097326701645">Так, продовжити</translation>
 <translation id="2691924980723297736">Попередження щодо безпеки</translation>
 <translation id="2699302886720511147">Картки, які приймаються до оплати</translation>
@@ -740,6 +746,7 @@
 <translation id="4088981014127559358">Вертикальний зсув сторони 1 зображення</translation>
 <translation id="4098354747657067197">Оманливий сайт</translation>
 <translation id="4101413244023615925">Текст і графіка</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб керувати паролями в налаштуваннях Chrome</translation>
 <translation id="4103249731201008433">Недійсний серійний номер пристрою</translation>
 <translation id="4103763322291513355">Перейдіть на сторінку &lt;strong&gt;chrome://policy&lt;/strong&gt;, щоб переглянути список URL-адрес із "чорного" списку й інші правила, що примусово застосовується системним адміністратором.</translation>
 <translation id="4110652170750985508">Переглянути платіж</translation>
@@ -910,6 +917,7 @@
 <translation id="4738601419177586157">Пропозиція пошуку за запитом "<ph name="TEXT" />"</translation>
 <translation id="4742407542027196863">Керувати паролями…</translation>
 <translation id="4744603770635761495">Виконуваний шлях</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб оновити Chrome</translation>
 <translation id="4750917950439032686">Ваша інформація (як-от паролі та номери кредитних карток) залишається конфіденційною, коли надсилається на цей сайт.</translation>
 <translation id="4756388243121344051">&amp;Історія</translation>
 <translation id="4758311279753947758">Додати контактну інформацію</translation>
@@ -951,6 +959,7 @@
 <translation id="4926049483395192435">Потрібно вказати.</translation>
 <translation id="4926159001844873046">Повідомлення з <ph name="SITE" /></translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" /> з <ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб шукати</translation>
 <translation id="4930153903256238152">Велика місткість</translation>
 <translation id="4943872375798546930">Не знайдено жодного результату</translation>
 <translation id="4950898438188848926">Кнопка перемикання вкладки: натисніть Enter, щоб перейти на відкриту вкладку, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1027,6 +1036,7 @@
 <translation id="5215116848420601511">Способи оплати й адреси, пов’язані з Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Укажіть електронну адресу</translation>
+<translation id="5222994811833658317">Кнопка "Очистити дані"; натисніть Enter, щоб очистити історію веб-перегляду Chrome</translation>
 <translation id="5230733896359313003">Адреса доставки</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1067,6 +1077,7 @@
 <translation id="534295439873310000">Пристрої NFC</translation>
 <translation id="5344579389779391559">Ця сторінка може спробувати стягнути плату</translation>
 <translation id="5355557959165512791">Зараз не можна перейти на сторінку <ph name="SITE" />, оскільки цей сертифікат відкликано. Помилки мережі й атаки зазвичай тимчасові, тому ця сторінка, скоріш за все, запрацює пізніше.</translation>
+<translation id="5361930801096459163">Кнопка "Шукати"; натисніть Enter, щоб шукати <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Помилка збереження налаштувань правила</translation>
 <translation id="5371425731340848620">Оновити картку</translation>
 <translation id="5377026284221673050">"Ваш годинник відстає", "Ваш годинник спішить" або "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1292,6 +1303,7 @@
 <translation id="6302269476990306341">Припинення роботи Google Асистента в Chrome</translation>
 <translation id="6305205051461490394">Сторінка <ph name="URL" /> недоступна.</translation>
 <translation id="6312113039770857350">Веб-сторінка недоступна</translation>
+<translation id="6315224405718249523">Кнопка "Перекласти сторінку"; натисніть Enter, що перекласти цю сторінку</translation>
 <translation id="6321917430147971392">Перевірте налаштування DNS</translation>
 <translation id="6322182122604171028">Не вдалося скористатися Windows Hello</translation>
 <translation id="6328639280570009161">Спробуйте вимкнути прогнозування мережі.</translation>
@@ -1346,6 +1358,7 @@
 <translation id="6547208576736763147">Пробити два отвори ліворуч</translation>
 <translation id="6554795675067793129">Вашим обліковим записом керує <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Повторити</translation>
+<translation id="6566840325635607048">Кнопка "Оновити кредитну картку"; натисніть Enter, щоб оновити дані кредитних карток для автозаповнення в налаштуваннях Chrome</translation>
 <translation id="6569060085658103619">Ви переглядаєте сторінку розширень</translation>
 <translation id="6573200754375280815">Пробити два отвори праворуч</translation>
 <translation id="6578796323535178455">C2 (конверт)</translation>
@@ -1586,6 +1599,7 @@
 <translation id="7549584377607005141">Для належного відображення цій веб-сторінці потрібні введені вами раніше дані. Можна ще раз надіслати дані, однак зробивши це, ви повторите всі дії, які ця сторінка виконувала раніше.</translation>
 <translation id="7550637293666041147">Імена користувачів для пристрою та Chrome</translation>
 <translation id="7552846755917812628">Виконайте вказівки нижче.</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб очистити історію веб-перегляду Chrome</translation>
 <translation id="7554791636758816595">Нова вкладка</translation>
 <translation id="7564049878696755256">Ви можете втратити доступ до облікового запису, який вам надає <ph name="ORG_NAME" />, або хтось може викрасти вашу особисту інформацію. Chrome радить змінити пароль.</translation>
 <translation id="7567204685887185387">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Можливо, його сертифікат безпеки видали шахраї. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation>
@@ -1752,6 +1766,7 @@
 <translation id="8225771182978767009">Користувач, який налаштував комп’ютер, заблокував цей сайт.</translation>
 <translation id="8228419419708659934">Перегляд по дві сторінки</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб перекласти цю сторінку</translation>
 <translation id="8232343881378637145">Температура платформи</translation>
 <translation id="8238581221633243064">Відкрити сторінку в новій анонімній вкладці</translation>
 <translation id="8241707690549784388">Сторінка, яку ви шукаєте, використовувала інформацію, введену вами. Повернення до такої сторінки може призвести до повторення ваших попередніх дій. Ви дійсно бажаєте продовжити?</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 703875f1..dd81becc 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Buyruqlar qatori variantlari</translation>
 <translation id="129553762522093515">Yaqinda yopilganlar</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Cookie-fayllarni tozalab ko‘ring<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Inkognito oynasi tugmasini oching, yangi Chrome inkognito oynasini ochish uchun Enter tugmasini bosing</translation>
 <translation id="1301324364792935241">DNS sozlamalar himoyasini tekshiring</translation>
 <translation id="1307966114820526988">Eskirgan funksiyalar</translation>
 <translation id="131405271941274527"><ph name="URL" /> sayti NFC orqali axborot almashinishga ruxsat soʻramoqda</translation>
@@ -224,6 +225,7 @@
 <translation id="1783075131180517613">Iltimos, sinxronlash uchun kodli iborani yangilang.</translation>
 <translation id="1787142507584202372">Ochiq varaqlar shu yerda ko‘rsatiladi</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, bir nechta amal mavjud, ularga oʻtish uchun Tab tugmasini bosing</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Karta egasining ismi</translation>
 <translation id="1807528111851433570">Birinchi varaq</translation>
@@ -252,6 +254,7 @@
 <translation id="1919345977826869612">Reklamalar</translation>
 <translation id="1919367280705858090">Maxsus turdagi xato xabarlari asosida yordam olish</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Yo‘q}=1{1 ta sayt}other{# ta sayt}}</translation>
+<translation id="1926148189358507356">Yangilash uchun qayta ishga tushirish tugmasi, Chrome brauzerini yangilash uchun Enter tugmasini bosing</translation>
 <translation id="1945968466830820669">Tashkilot hisobingiz xavf ostida va o‘g‘irlanishi mumkin. Chromium parolingizni hoziroq o‘zgartirishni tavsiya etadi.</translation>
 <translation id="1947454675006758438">Yuqori oʻngdan steplerlash</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />Ochilgan sahifalar manzillari, tizim va sahifalar<ph name="END_WHITEPAPER_LINK" /> haqidagi ayrim maʼlumotlarni Google serverlariga yuborish orqali internetdagi xavfsizlik tizimini hamma uchun yaxshilashga yordam berasiz. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Maxfiylik siyosati<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -356,6 +359,7 @@
 <translation id="2367567093518048410">Daraja</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Korporativ (birlamchi)</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, yangi Chrome inkognito oynasini ochish uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="2385809941344967209">Chrome brauzerini Chrome sozlamalari orqali yangilash</translation>
 <translation id="2386255080630008482">Server sertifikati bekor qilingan.</translation>
 <translation id="2392959068659972793">Qiymati belgilanmagan qoidalarni ko‘rsatish</translation>
@@ -398,6 +402,7 @@
 <translation id="2586657967955657006">Klipbord</translation>
 <translation id="2587730715158995865">Manba: <ph name="ARTICLE_PUBLISHER" />. Bu va yana <ph name="OTHER_ARTICLE_COUNT" /> ta maqolani mutolaa qilishingiz mumkin.</translation>
 <translation id="2587841377698384444">Katalog API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome sozlamalari orqali kredit karta uchun avtomatik kiritish axborotini yangilash uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="2595719060046994702">Bu qurilma va hisob kompaniya yoki tashkilot boshqaruvida emas.</translation>
 <translation id="2597378329261239068">Bu hujjat parol bilan himoyalangan. Iltimos parolni kiriting.</translation>
 <translation id="2609632851001447353">Variantlar</translation>
@@ -419,6 +424,7 @@
 <translation id="2677748264148917807">Tark etish</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Eng mos</translation>
+<translation id="2688738823074468716">Parollarni boshqarish tugmasi, Chrome sozlamalari orqali parollarni boshqarish uchun Enter tugmasini bosing</translation>
 <translation id="2688969097326701645">Ha, davom etilsin</translation>
 <translation id="2691924980723297736">Ogohlantirish</translation>
 <translation id="2699302886720511147">Qabul qilinadigan kartalar</translation>
@@ -737,6 +743,7 @@
 <translation id="4088981014127559358">Tasvirning old tomondagi Y oʻqidagi siljish</translation>
 <translation id="4098354747657067197">Ehtiyot bo‘ling, qalbaki sayt!</translation>
 <translation id="4101413244023615925">Matn va grafika</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome sozlamalari orqali parollarni boshqarish uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="4103249731201008433">Qurilma seriya raqami noto‘g‘ri</translation>
 <translation id="4103763322291513355">Administrator tomonidan qora ro‘yxatga qo‘shilgan URL manzillar va boshqa parametrlarni ko‘rish uchun quyidagi sahifaga o‘ting: &lt;strong&gt;chrome://policy&lt;/strong&gt;</translation>
 <translation id="4110652170750985508">To‘lovingizni tekshiring</translation>
@@ -907,6 +914,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" /> qidiruv taklifi</translation>
 <translation id="4742407542027196863">Parollarni boshqarish…</translation>
 <translation id="4744603770635761495">Ishga tushirish havolasi</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome brauzerini yangilash uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="4750917950439032686">Bu saytga shaxsiy ma’lumotlaringiz (parollar yoki bank kartalar kabi) xavfsiz uzatiladi.</translation>
 <translation id="4756388243121344051">&amp;Tarix</translation>
 <translation id="4758311279753947758">Aloqa ma’lumotini qo‘shish</translation>
@@ -948,6 +956,7 @@
 <translation id="4926049483395192435">Qiymatini belgilang.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> saytidagi amalni tasdiqlang</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, qidirish uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="4930153903256238152">Koʻp sigʻimli</translation>
 <translation id="4943872375798546930">Hech narsa topilmadi</translation>
 <translation id="4950898438188848926">Varaqlar orasida almashish tugmasi, shu varaqqa almashish uchun Enter tugmasini bosing, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1024,6 +1033,7 @@
 <translation id="5215116848420601511">Google Pay xizmatidagi bank kartalari va manzillar</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">E-pochtangizni kiriting</translation>
+<translation id="5222994811833658317">“Maʼlumotlarni tozalash” tugmasi, Chrome brauzeri tarixini tozalash uchun Enter tugmasini bosing</translation>
 <translation id="5230733896359313003">Yetkazib berish manzili</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1064,6 +1074,7 @@
 <translation id="534295439873310000">NFC qurilmalar</translation>
 <translation id="5344579389779391559">Bu sahifa sizdan pul talab qilishi mumkin</translation>
 <translation id="5355557959165512791"><ph name="SITE" /> sayti ochilmadi, bu sayt bekor qilingan sertifikatdan foydalanayotgan bo‘lishi mumkin. Bunday xatolik tarmoq xatoligi va saytga hujumlar bo‘layotganda yuz beradi, lekin keyinroq sayt ishlab ketishi mumkin.</translation>
+<translation id="5361930801096459163">Qidiruv tugasi, <ph name="KEYWORD_SUFFIX" /> deb qidirish uchun Enter tugmasini bosing</translation>
 <translation id="536296301121032821">Tartib-qoida parametrlarini saqlab bo‘lmadi</translation>
 <translation id="5371425731340848620">Kartani yangilash</translation>
 <translation id="5377026284221673050">“Soatingiz orqada” yoki “Soatingiz oldinda” yoki “&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
@@ -1288,6 +1299,7 @@
 <translation id="6302269476990306341">Chrome ichidagi Google Assistent toʻxtatilmoqda</translation>
 <translation id="6305205051461490394"><ph name="URL" /> bilan aloqa o‘rnatib bo‘lmadi.</translation>
 <translation id="6312113039770857350">Veb-sahifa mavjud emas</translation>
+<translation id="6315224405718249523">“Sahifani tarjima qilish” tugmasi, bu sahifani tarjima qilish uchun Enter tugasini bosing</translation>
 <translation id="6321917430147971392">DNS sozlamalarini tekshiring</translation>
 <translation id="6322182122604171028">Windows Hello ishlatib boʻlmadi</translation>
 <translation id="6328639280570009161">Tarmoqni oldindan aniqlash funksiyasidan foydalanib ko‘ring</translation>
@@ -1342,6 +1354,7 @@
 <translation id="6547208576736763147">Chapdan 2 ta teshik ochish</translation>
 <translation id="6554795675067793129">Hisobingiz <ph name="ENROLLMENT_DOMAIN" /> domenida boshqariladi.</translation>
 <translation id="6556866813142980365">Qaytarish</translation>
+<translation id="6566840325635607048">Kredit kartani yangilash tugmasi, Chrome sozlamalari orqali kredit karta axborotini avtomatik toʻldirishni oʻzgartirish uchun Enter tugmasini bosing</translation>
 <translation id="6569060085658103619">Siz kengaytma sahifasidasiz.</translation>
 <translation id="6573200754375280815">Oʻngdan 2 ta teshik ochish</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1582,6 +1595,7 @@
 <translation id="7549584377607005141">Veb-sahifaning to‘g‘ri ko‘rsatilishi uchun avval kiritilgan ma’lumotlar kerak bo‘ladi. Ularni qayta jo‘natish mumkin, lekin bu holatda sahifada bajarilgan barcha amallarni qaytadan bajarish kerak bo‘ladi.</translation>
 <translation id="7550637293666041147">Qurilmangiz va Chrome foydalanuvchilari nomi</translation>
 <translation id="7552846755917812628">Quyidagi amallarni bajarib ko‘ring:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome brauzeri tarixini tozalash uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="7554791636758816595">Yangi varaq</translation>
 <translation id="7564049878696755256"><ph name="ORG_NAME" /> hisobingiz xavf ostida va shaxsiy ma’lumotlaringizni kimdir ko‘rishi mumkin. Parolingizni hoziroq o‘zgartirishni tavsiya etamiz.</translation>
 <translation id="7567204685887185387">Bu <ph name="DOMAIN" /> serveri ekanligini tasdiqlab bo‘lmadi. Uning havfsizlik sertifikati ishonchli tuyulmayapti. Server noto‘g‘ri sozlangan yoki kimdir ma’lumotlaringizni o‘g‘rilashga urinayotgan bo‘lishi mumkin.</translation>
@@ -1748,6 +1762,7 @@
 <translation id="8225771182978767009">Bu saytga kirish ushbu kompyuter sozlamalarida taqiqlab qo‘yilgan.</translation>
 <translation id="8228419419708659934">Ikkita sahifani chiqarish</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bu sahifani tarjima qilish uchun avval Tab, keyin esa Enter tugmasini bosing</translation>
 <translation id="8232343881378637145">Platforma harorati</translation>
 <translation id="8238581221633243064">Sahifani yangi inkognito varaqda ochish</translation>
 <translation id="8241707690549784388">Siz qidirayotgan sahifada o‘zingiz kiritgan ma’lumotlardan foydalanilgan. Unga qaytib borsangiz, u yerda bajargan amallaringiz takrorlanishi mumkin. Davom etasizmi?</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index d82c74b..be5d7f4 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">Các biến thể của dòng lệnh</translation>
 <translation id="129553762522093515">Các thẻ đã đóng gần đây</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Thử xóa các cookie của bạn<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">Nút Mở cửa sổ ẩn danh, nhấn Enter để mở cửa sổ ẩn danh mới trên Chrome</translation>
 <translation id="1301324364792935241">Kiểm tra tùy chọn cài đặt của DNS bảo mật</translation>
 <translation id="1307966114820526988">Tính năng sắp ngừng hoạt động</translation>
 <translation id="131405271941274527"><ph name="URL" /> muốn gửi và nhận thông tin khi bạn chạm điện thoại của bạn vào thiết bị dùng công nghệ giao tiếp tầm gần (NFC)</translation>
@@ -225,6 +226,7 @@
 <translation id="1783075131180517613">Vui lòng cập nhật cụm mật khẩu đồng bộ hóa của bạn.</translation>
 <translation id="1787142507584202372">Thẻ đang mở của bạn xuất hiện ở đây</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />, có nhiều thao tác, nhấn phím Tab để chuyển giữa các thao tác đó</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">Tên chủ thẻ</translation>
 <translation id="1807528111851433570">Tờ đầu</translation>
@@ -253,6 +255,7 @@
 <translation id="1919345977826869612">Quảng cáo</translation>
 <translation id="1919367280705858090">Nhận trợ giúp về thông báo lỗi cụ thể</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{Không có}=1{1 trang web}other{# trang web}}</translation>
+<translation id="1926148189358507356">Nút Khởi động lại để cập nhật, nhấn Enter để cập nhật Chrome</translation>
 <translation id="1945968466830820669">Bạn có thể mất quyền truy cập vào tài khoản của tổ chức mình hoặc bị đánh cắp danh tính. Chromium khuyên bạn nên thay đổi mật khẩu ngay bây giờ.</translation>
 <translation id="1947454675006758438">Dập ghim trên cùng bên phải</translation>
 <translation id="1959001866257244765">Giúp tăng cường khả năng bảo mật trên web cho mọi người bằng cách gửi cho Google <ph name="BEGIN_WHITEPAPER_LINK" />các URL của một số trang mà bạn truy cập, thông tin hệ thống có giới hạn và một số nội dung trang<ph name="END_WHITEPAPER_LINK" />. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Chính sách quyền riêng tư<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -357,6 +360,7 @@
 <translation id="2367567093518048410">Mức độ</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">Đặt mặc định trong môi trường doanh nghiệp</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để mở cửa sổ ẩn danh mới trên Chrome</translation>
 <translation id="2385809941344967209">Cập nhật Chrome từ phần cài đặt của Chrome</translation>
 <translation id="2386255080630008482">Chứng chỉ của máy chủ đã bị thu hồi.</translation>
 <translation id="2392959068659972793">Hiển thị chính sách không có giá trị được đặt</translation>
@@ -399,6 +403,7 @@
 <translation id="2586657967955657006">Khay nhớ tạm</translation>
 <translation id="2587730715158995865">Từ <ph name="ARTICLE_PUBLISHER" />. Đọc tin bài này và <ph name="OTHER_ARTICLE_COUNT" /> tin bài khác.</translation>
 <translation id="2587841377698384444">ID API thư mục:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để cập nhật thông tin tự động điền thẻ tín dụng trong phần cài đặt của Chrome</translation>
 <translation id="2595719060046994702">Thiết bị và tài khoản này không thuộc quyền quản lý của một công ty hoặc tổ chức khác.</translation>
 <translation id="2597378329261239068">Tài liệu này được bảo vệ bằng mật khẩu. Vui lòng nhập mật khẩu.</translation>
 <translation id="2609632851001447353">Các biến thể</translation>
@@ -420,6 +425,7 @@
 <translation id="2677748264148917807">Rời khỏi</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">Phù hợp nhất</translation>
+<translation id="2688738823074468716">Nút Quản lý mật khẩu, nhấn Enter để quản lý mật khẩu trong phần cài đặt của Chrome</translation>
 <translation id="2688969097326701645">Có, tiếp tục</translation>
 <translation id="2691924980723297736">Cảnh báo an toàn</translation>
 <translation id="2699302886720511147">Thẻ được chấp nhận</translation>
@@ -742,6 +748,7 @@
 <translation id="4088981014127559358">Trục Y của hình ảnh mặt 1</translation>
 <translation id="4098354747657067197">Bạn sắp truy cập trang web lừa đảo</translation>
 <translation id="4101413244023615925">Văn bản và đồ họa</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để quản lý mật khẩu trong phần cài đặt của Chrome</translation>
 <translation id="4103249731201008433">Số sê-ri thiết bị không hợp lệ</translation>
 <translation id="4103763322291513355">Truy cập &lt;strong&gt;chrome://policy&lt;/strong&gt; để xem danh sách các URL bị chặn quyền truy cập và các chính sách khác bị quản trị viên hệ thống buộc phải thực thi.</translation>
 <translation id="4110652170750985508">Xem xét thanh toán của bạn</translation>
@@ -912,6 +919,7 @@
 <translation id="4738601419177586157">Đề xuất tìm kiếm <ph name="TEXT" /></translation>
 <translation id="4742407542027196863">Quản lý mật khẩu…</translation>
 <translation id="4744603770635761495">Đường dẫn thực thi</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để cập nhật Chrome</translation>
 <translation id="4750917950439032686">Thông tin của bạn (ví dụ: mật khẩu hoặc số thẻ tín dụng) sẽ được bảo mật khi được gửi tới trang web này.</translation>
 <translation id="4756388243121344051">&amp;Lịch sử</translation>
 <translation id="4758311279753947758">Thêm thông tin liên hệ</translation>
@@ -953,6 +961,7 @@
 <translation id="4926049483395192435">Phải được chỉ định.</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> cho biết</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để tìm kiếm</translation>
 <translation id="4930153903256238152">Dung tích lớn</translation>
 <translation id="4943872375798546930">Không tìm thấy kết quả nào</translation>
 <translation id="4950898438188848926">Nút chuyển đổi thẻ, nhấn phím Enter để chuyển sang thẻ đang mở, <ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1029,6 +1038,7 @@
 <translation id="5215116848420601511">Địa chỉ và phương thức thanh toán lưu trong Google Pay</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">Cần có email</translation>
+<translation id="5222994811833658317">Nút Xóa dữ liệu, nhấn Enter để xóa dữ liệu lịch sử duyệt web trên Chrome</translation>
 <translation id="5230733896359313003">Địa chỉ giao hàng</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1069,6 +1079,7 @@
 <translation id="534295439873310000">Thiết bị dùng công nghệ NFC</translation>
 <translation id="5344579389779391559">Trang này có thể tìm cách tính phí bạn</translation>
 <translation id="5355557959165512791">Bạn không thể truy cập vào <ph name="SITE" /> ngay bây giờ vì chứng chỉ của trang này đã bị thu hồi. Lỗi mạng và các cuộc tấn công mạng thường chỉ là tạm thời nên trang này có thể sẽ hoạt động lại sau.</translation>
+<translation id="5361930801096459163">Nút Tìm kiếm, nhấn Enter để tìm kiếm <ph name="KEYWORD_SUFFIX" /></translation>
 <translation id="536296301121032821">Không thể lưu trữ cài đặt chính sách</translation>
 <translation id="5371425731340848620">Cập nhật thẻ</translation>
 <translation id="5377026284221673050">"Đồng hồ của bạn chạy chậm" hoặc "Đồng hồ của bạn chạy nhanh" hay "&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;"</translation>
@@ -1294,6 +1305,7 @@
 <translation id="6302269476990306341">Trợ lý Google trong Chrome đang dừng</translation>
 <translation id="6305205051461490394">Không thể truy cập <ph name="URL" />.</translation>
 <translation id="6312113039770857350">Trang web hiện không khả dụng</translation>
+<translation id="6315224405718249523">Nút Dịch trang, nhấn Enter để dịch trang này</translation>
 <translation id="6321917430147971392">Kiểm tra cài đặt DNS của bạn</translation>
 <translation id="6322182122604171028">Không thể dùng Windows Hello</translation>
 <translation id="6328639280570009161">Thử tắt dự đoán mạng</translation>
@@ -1348,6 +1360,7 @@
 <translation id="6547208576736763147">Đục 2 lỗ bên trái</translation>
 <translation id="6554795675067793129">Tài khoản của bạn do <ph name="ENROLLMENT_DOMAIN" /> quản lý.</translation>
 <translation id="6556866813142980365">Làm lại</translation>
+<translation id="6566840325635607048">Nút Cập nhật thẻ tín dụng, nhấn Enter để cập nhật thông tin tự động điền thẻ tín dụng trong phần cài đặt của Chrome</translation>
 <translation id="6569060085658103619">Bạn đang xem trang tiện ích</translation>
 <translation id="6573200754375280815">Đục 2 lỗ bên phải</translation>
 <translation id="6578796323535178455">C2 (Phong bì)</translation>
@@ -1588,6 +1601,7 @@
 <translation id="7549584377607005141">Trang web này yêu cầu dữ liệu mà bạn đã nhập trước đó để được hiển thị đúng cách. Bạn có thể gửi lại dữ liệu này nhưng làm như vậy bạn sẽ lặp lại mọi hoạt động mà trang này đã thực hiện trước đó.</translation>
 <translation id="7550637293666041147">Tên người dùng Chrome và tên người dùng thiết bị của bạn</translation>
 <translation id="7552846755917812628">Thử các mẹo sau:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để xóa dữ liệu lịch sử duyệt web trên Chrome</translation>
 <translation id="7554791636758816595">Thẻ mới</translation>
 <translation id="7564049878696755256">Bạn có thể mất quyền truy cập vào tài khoản <ph name="ORG_NAME" /> của mình hoặc bị đánh cắp danh tính. Chrome khuyên bạn nên thay đổi mật khẩu ngay bây giờ.</translation>
 <translation id="7567204685887185387">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này có thể đã bị gian lận khi phát hành. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
@@ -1754,6 +1768,7 @@
 <translation id="8225771182978767009">Người thiết lập máy tính này đã chọn chặn trang web này.</translation>
 <translation id="8228419419708659934">Chế độ xem hai trang</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để dịch trang này</translation>
 <translation id="8232343881378637145">Nhiệt độ bệ máy</translation>
 <translation id="8238581221633243064">Mở trang trong thẻ Ẩn danh mới</translation>
 <translation id="8241707690549784388">Trang mà bạn đang tìm sử dụng thông tin bạn đã nhập vào. Việc quay lại trang đó có thể lặp lại bất kỳ tác vụ nào bạn đã thực hiện. Bạn có muốn tiếp tục không?</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 2dd62a2..4d49bcd 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">命令行变体</translation>
 <translation id="129553762522093515">最近关闭的标签页</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />尝试清除 Cookie<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">“打开无痕式窗口”按钮,按 Enter 键可打开新的 Chrome 无痕式窗口</translation>
 <translation id="1301324364792935241">请检查您的安全 DNS 设置</translation>
 <translation id="1307966114820526988">已被弃用的功能</translation>
 <translation id="131405271941274527"><ph name="URL" /> 想在您的手机与 NFC 设备触碰时发送和接收信息</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">请更新您的同步密码。</translation>
 <translation id="1787142507584202372">您打开的标签页会显示在此处</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />,可执行多种操作,按 Tab 键可循环浏览这些操作</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">持卡人姓名</translation>
 <translation id="1807528111851433570">起始工作表</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">广告</translation>
 <translation id="1919367280705858090">了解如何解决特定错误消息指出的错误</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{无}=1{1 个网站}other{# 个网站}}</translation>
+<translation id="1926148189358507356">“重新启动以进行更新”按钮,按 Enter 键可更新 Chrome</translation>
 <translation id="1945968466830820669">您可能会无法再访问所属组织的帐号,或被他人盗用身份信息。Chromium 建议您立即更改密码。</translation>
 <translation id="1947454675006758438">钉装(右上角)</translation>
 <translation id="1959001866257244765">向 Google 发送<ph name="BEGIN_WHITEPAPER_LINK" />您访问的部分网页的网址、有限的系统信息以及部分网页内容<ph name="END_WHITEPAPER_LINK" />,帮助我们为所有人改善网络安全环境。<ph name="BEGIN_PRIVACY_PAGE_LINK" />隐私权政策<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -353,6 +356,7 @@
 <translation id="2367567093518048410">级别</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">在企业环境中默认实施</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可打开新的 Chrome 无痕式窗口</translation>
 <translation id="2385809941344967209">请前往 Chrome 设置以更新 Chrome</translation>
 <translation id="2386255080630008482">服务器的证书已撤消。</translation>
 <translation id="2392959068659972793">显示未设定值的政策</translation>
@@ -395,6 +399,7 @@
 <translation id="2586657967955657006">剪贴板</translation>
 <translation id="2587730715158995865">来自<ph name="ARTICLE_PUBLISHER" />。阅读这篇报道以及其他 <ph name="OTHER_ARTICLE_COUNT" /> 篇报道。</translation>
 <translation id="2587841377698384444">Directory API ID:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可在 Chrome 设置中更新信用卡自动填充信息</translation>
 <translation id="2595719060046994702">此设备和帐号不由某个公司或其他组织管理。</translation>
 <translation id="2597378329261239068">本文档设置了密码保护,请输入密码。</translation>
 <translation id="2609632851001447353">其他变体</translation>
@@ -416,6 +421,7 @@
 <translation id="2677748264148917807">离开</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">最适合</translation>
+<translation id="2688738823074468716">“管理密码”按钮,按 Enter 键可在 Chrome 设置中管理密码</translation>
 <translation id="2688969097326701645">是的,继续</translation>
 <translation id="2691924980723297736">安全警告</translation>
 <translation id="2699302886720511147">接受的银行卡</translation>
@@ -731,6 +737,7 @@
 <translation id="4088981014127559358">侧边 1,图片沿 Y 轴位移</translation>
 <translation id="4098354747657067197">您要访问的是诈骗网站</translation>
 <translation id="4101413244023615925">文字和图形</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可在 Chrome 设置中管理密码</translation>
 <translation id="4103249731201008433">设备序列号无效</translation>
 <translation id="4103763322291513355">请访问 &lt;strong&gt;chrome:// 政策&lt;/strong&gt;,查看列入黑名单的网址列表以及您的系统管理员强制要求执行的其他政策。</translation>
 <translation id="4110652170750985508">查看您的付款</translation>
@@ -897,6 +904,7 @@
 <translation id="4738601419177586157"><ph name="TEXT" />搜索建议</translation>
 <translation id="4742407542027196863">管理密码…</translation>
 <translation id="4744603770635761495">可执行文件路径</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可更新 Chrome</translation>
 <translation id="4750917950439032686">您发送给这个网站的信息(例如密码或信用卡号)不会外泄。</translation>
 <translation id="4756388243121344051">历史记录(&amp;H)</translation>
 <translation id="4758311279753947758">添加联系信息</translation>
@@ -938,6 +946,7 @@
 <translation id="4926049483395192435">必须指定。</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> 显示</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可进行搜索</translation>
 <translation id="4930153903256238152">大容量</translation>
 <translation id="4943872375798546930">找不到结果</translation>
 <translation id="4950898438188848926">标签页切换按钮,按 Enter 键可切换到打开的标签页,<ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1014,6 +1023,7 @@
 <translation id="5215116848420601511">Google Pay 中存储的付款方式和地址信息</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">需要提供电子邮件地址</translation>
+<translation id="5222994811833658317">“清除数据”按钮,按 Enter 键可清除 Chrome 的浏览记录数据</translation>
 <translation id="5230733896359313003">送货地址</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1054,6 +1064,7 @@
 <translation id="534295439873310000">NFC 设备</translation>
 <translation id="5344579389779391559">此页面可能会向您收取费用</translation>
 <translation id="5355557959165512791">您目前无法访问 <ph name="SITE" />,因为此证书已被撤消。网络错误和攻击行为通常是暂时的,因此,此网页稍后可能会恢复正常。</translation>
+<translation id="5361930801096459163">“搜索”按钮,按 Enter 键可搜索“<ph name="KEYWORD_SUFFIX" />”</translation>
 <translation id="536296301121032821">无法存储策略设置</translation>
 <translation id="5371425731340848620">更新信用卡</translation>
 <translation id="5377026284221673050">“您的时钟慢了”、“您的时钟快了”或“&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;”</translation>
@@ -1278,6 +1289,7 @@
 <translation id="6302269476990306341">Chrome 中的 Google 助理即将停止工作</translation>
 <translation id="6305205051461490394">无法访问 <ph name="URL" />。</translation>
 <translation id="6312113039770857350">网页无法打开</translation>
+<translation id="6315224405718249523">“翻译网页”按钮,按 Enter 键可翻译此网页</translation>
 <translation id="6321917430147971392">请检查您的DNS设置是否正确</translation>
 <translation id="6322182122604171028">无法使用 Windows Hello</translation>
 <translation id="6328639280570009161">请尝试停用网络联想查询功能</translation>
@@ -1332,6 +1344,7 @@
 <translation id="6547208576736763147">双孔(左侧)</translation>
 <translation id="6554795675067793129">您的帐号由 <ph name="ENROLLMENT_DOMAIN" /> 管理。</translation>
 <translation id="6556866813142980365">重做</translation>
+<translation id="6566840325635607048">“更新信用卡”按钮,按 Enter 键可在 Chrome 设置中更新信用卡自动填充信息</translation>
 <translation id="6569060085658103619">您正在查看扩展程序页面</translation>
 <translation id="6573200754375280815">双孔(右侧)</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
@@ -1572,6 +1585,7 @@
 <translation id="7549584377607005141">此网页需要使用您之前输入的数据才能正常显示。您可以重新发送这些数据,不过,这么做会重复执行此网页之前执行过的所有操作。</translation>
 <translation id="7550637293666041147">您的设备用户名和 Chrome 用户名</translation>
 <translation id="7552846755917812628">请尝试按以下提示操作:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可清除 Chrome 的浏览记录数据</translation>
 <translation id="7554791636758816595">新标签页</translation>
 <translation id="7564049878696755256">您可能会无法再访问自己的 <ph name="ORG_NAME" /> 帐号,或者身份信息遭到盗用。Chrome 建议您立即更改密码。</translation>
 <translation id="7567204685887185387">此服务器无法证明它是<ph name="DOMAIN" />;其安全证书可能是由骗子发出的。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
@@ -1738,6 +1752,7 @@
 <translation id="8225771182978767009">设置此计算机的用户已选择屏蔽此网站。</translation>
 <translation id="8228419419708659934">双页视图</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />、<ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />,按 Tab 键再按 Enter 键可翻译此网页</translation>
 <translation id="8232343881378637145">平台温度</translation>
 <translation id="8238581221633243064">在新的无痕式标签页中打开网页</translation>
 <translation id="8241707690549784388">您所查找的网页要使用已输入的信息。返回此页可能需要重复已进行的所有操作。是否要继续操作?</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index f5472b57..b09fa06 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -82,6 +82,7 @@
 <translation id="1294154142200295408">指令的變化</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />嘗試清除 Cookie<ph name="END_LINK" /></translation>
+<translation id="1299917195319242089">開啟無痕式視窗按鈕,㩒一下 Enter 鍵就可以開新嘅 Chrome 無痕式視窗</translation>
 <translation id="1301324364792935241">請檢查您的安全 DNS 設定</translation>
 <translation id="1307966114820526988">這些功能已被淘汰</translation>
 <translation id="131405271941274527"><ph name="URL" /> 想在您以手機觸踫 NFC 裝置時傳送和接收資料</translation>
@@ -221,6 +222,7 @@
 <translation id="1783075131180517613">請更新您的同步複雜密碼。</translation>
 <translation id="1787142507584202372">您最近開啟的分頁會在這裡顯示</translation>
 <translation id="1791429645902722292">Google Smart Lock</translation>
+<translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />,可以進行幾種動作,㩒 Tab 鍵就可以跟次序轉換唔同嘅動作</translation>
 <translation id="1800473098294731951">B9</translation>
 <translation id="1803264062614276815">持卡人姓名</translation>
 <translation id="1807528111851433570">起始工作表</translation>
@@ -249,6 +251,7 @@
 <translation id="1919345977826869612">廣告</translation>
 <translation id="1919367280705858090">瞭解如何修正特定錯誤訊息指出的錯誤</translation>
 <translation id="192020519938775529">{COUNT,plural, =0{無}=1{1 個網站}other{# 個網站}}</translation>
+<translation id="1926148189358507356">重新啟動就可以更新按鈕,㩒一下 Enter 鍵就可以更新 Chrome</translation>
 <translation id="1945968466830820669">您有可能會失去機構帳戶存取權,或會遭身份盜用。Chromium 建議您立即變更密碼。</translation>
 <translation id="1947454675006758438">釘裝 (右上方)</translation>
 <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />將您瀏覽的部分網頁網址、有限的系統資料以及部分網頁內容<ph name="END_WHITEPAPER_LINK" />傳送給 Google,以協助改善其他使用者的網絡安全性。<ph name="BEGIN_PRIVACY_PAGE_LINK" />私隱權政策<ph name="END_PRIVACY_PAGE_LINK" /></translation>
@@ -352,6 +355,7 @@
 <translation id="2367567093518048410">級別</translation>
 <translation id="2380886658946992094">Legal</translation>
 <translation id="2384307209577226199">企業預設</translation>
+<translation id="238547550913364157"><ph name="LAUNCH_INCOGNITO_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以開新嘅 Chrome 無痕式視窗</translation>
 <translation id="2385809941344967209">從 Chrome 設定更新 Chrome</translation>
 <translation id="2386255080630008482">伺服器憑證已被撤銷。</translation>
 <translation id="2392959068659972793">顯示尚未設定任何值的政策</translation>
@@ -394,6 +398,7 @@
 <translation id="2586657967955657006">剪貼簿</translation>
 <translation id="2587730715158995865">來自「<ph name="ARTICLE_PUBLISHER" />」。閱讀這篇和另外 <ph name="OTHER_ARTICLE_COUNT" /> 篇報導。</translation>
 <translation id="2587841377698384444">目錄 API 識別碼:</translation>
+<translation id="2592698726824597401"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以喺 Chrome 設定度更新信用卡自動填入資料</translation>
 <translation id="2595719060046994702">此裝置和帳戶未受任何公司或其他機構管理。</translation>
 <translation id="2597378329261239068">此文件受到密碼保護,請輸入密碼。</translation>
 <translation id="2609632851001447353">變化</translation>
@@ -415,6 +420,7 @@
 <translation id="2677748264148917807">離開</translation>
 <translation id="2684561033061424857">11x12</translation>
 <translation id="2687555958734450033">最適合</translation>
+<translation id="2688738823074468716">管理密碼按鈕,㩒一下 Enter 鍵就可以喺 Chrome 設定度管理密碼</translation>
 <translation id="2688969097326701645">是,請繼續</translation>
 <translation id="2691924980723297736">安全警告</translation>
 <translation id="2699302886720511147">接受的付款卡</translation>
@@ -733,6 +739,7 @@
 <translation id="4088981014127559358">側邊 1 圖片 Y 軸移動</translation>
 <translation id="4098354747657067197">前往的是欺詐網站</translation>
 <translation id="4101413244023615925">文字和圖片</translation>
+<translation id="4103147722950692857"><ph name="MANAGE_PASSWORDS_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以喺 Chrome 設定度管理密碼</translation>
 <translation id="4103249731201008433">裝置序號無效</translation>
 <translation id="4103763322291513355">請前往 &lt;strong&gt;chrome://policy&lt;/strong&gt; 查看列入黑名單的網址清單,以及其他系統管理員強制執行的政策。</translation>
 <translation id="4110652170750985508">查看您的付款</translation>
@@ -899,6 +906,7 @@
 <translation id="4738601419177586157">「<ph name="TEXT" />」搜尋建議</translation>
 <translation id="4742407542027196863">管理密碼…</translation>
 <translation id="4744603770635761495">可執行檔的路徑</translation>
+<translation id="4750085040310563588"><ph name="UPDATE_CHROME_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以更新 Chrome</translation>
 <translation id="4750917950439032686">傳送資料至此網站時 (例如密碼或信用卡號碼),您的資料將會保密。</translation>
 <translation id="4756388243121344051">記錄(&amp;H)</translation>
 <translation id="4758311279753947758">新增聯絡人資訊</translation>
@@ -940,6 +948,7 @@
 <translation id="4926049483395192435">必須指定。</translation>
 <translation id="4926159001844873046"><ph name="SITE" /> 顯示</translation>
 <translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
+<translation id="4929871932072157101"><ph name="KEYWORD_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以搵</translation>
 <translation id="4930153903256238152">大容量</translation>
 <translation id="4943872375798546930">沒有結果</translation>
 <translation id="4950898438188848926">分頁切換按鈕,㩒一下 Enter 鍵就可以轉去開以下嘅分頁:<ph name="TAB_SWITCH_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -1016,6 +1025,7 @@
 <translation id="5215116848420601511">使用 Google Pay 儲存的付款方法和地址</translation>
 <translation id="5215363486134917902">Folio-Sp</translation>
 <translation id="5222812217790122047">需要提供電郵</translation>
+<translation id="5222994811833658317">清除資料按鈕,㩒一下 Enter 鍵就可以清除 Chrome 嘅瀏覽記錄資料</translation>
 <translation id="5230733896359313003">付運地址</translation>
 <translation id="5230815978613972521">B8</translation>
 <translation id="5233045608889518621">12x19</translation>
@@ -1056,6 +1066,7 @@
 <translation id="534295439873310000">NFC 裝置</translation>
 <translation id="5344579389779391559">此網頁可能會向您收取費用</translation>
 <translation id="5355557959165512791">您目前無法瀏覽 <ph name="SITE" />,因為此網站的憑證已被撤銷。網絡錯誤和攻擊行為通常是暫時性問題,所以此網頁可能稍後就能正常使用。</translation>
+<translation id="5361930801096459163">搜尋按鈕,㩒一下 Enter 鍵就可以搵「<ph name="KEYWORD_SUFFIX" />」</translation>
 <translation id="536296301121032821">無法儲存政策設定</translation>
 <translation id="5371425731340848620">更新信用卡</translation>
 <translation id="5377026284221673050">「您的時鐘慢了」、「您的時鐘快了」或「&lt;span class="error-code"&gt;NET::ERR_CERT_DATE_INVALID&lt;/span&gt;」</translation>
@@ -1281,6 +1292,7 @@
 <translation id="6302269476990306341">正在停止 Chrome 的「Google 助理」</translation>
 <translation id="6305205051461490394">無法存取 <ph name="URL" />。</translation>
 <translation id="6312113039770857350">網頁無法使用</translation>
+<translation id="6315224405718249523">翻譯網頁按鈕,㩒一下 Enter 鍵就可以翻譯呢個網頁</translation>
 <translation id="6321917430147971392">檢查 DNS 設定</translation>
 <translation id="6322182122604171028">無法使用 Windows Hello</translation>
 <translation id="6328639280570009161">建議停用網絡預測功能</translation>
@@ -1335,6 +1347,7 @@
 <translation id="6547208576736763147">雙孔 (左側)</translation>
 <translation id="6554795675067793129">您的帳戶由 <ph name="ENROLLMENT_DOMAIN" /> 管理。</translation>
 <translation id="6556866813142980365">重做</translation>
+<translation id="6566840325635607048">更新信用卡按鈕,㩒一下 Enter 鍵就可以喺 Chrome 設定度更新信用卡自動填入資料</translation>
 <translation id="6569060085658103619">您正在查看擴充程式頁面</translation>
 <translation id="6573200754375280815">雙孔 (右側)</translation>
 <translation id="6578796323535178455">C2 (信封)</translation>
@@ -1575,6 +1588,7 @@
 <translation id="7549584377607005141">這個網頁需要使用您先前輸入的數據才能正確顯示。您可以重新傳送這些數據,但這樣做會重複這個網頁先前已執行的動作。</translation>
 <translation id="7550637293666041147">您的裝置使用者名稱和 Chrome 使用者名稱</translation>
 <translation id="7552846755917812628">請嘗試按照以下提示操作:</translation>
+<translation id="7553823544414963579"><ph name="CLEAR_BROWSING_DATA_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以清除 Chrome 嘅瀏覽記錄資料</translation>
 <translation id="7554791636758816595">新分頁</translation>
 <translation id="7564049878696755256">您有可能會失去 <ph name="ORG_NAME" /> 帳戶存取權,或會遭身份盜用。Chrome 建議您立即變更密碼。</translation>
 <translation id="7567204685887185387">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證或許曾以欺詐方式發行。這可能是因為設定錯誤,或有攻擊者攔截您的連線。</translation>
@@ -1741,6 +1755,7 @@
 <translation id="8225771182978767009">設定此電腦的用戶已封鎖此網站。</translation>
 <translation id="8228419419708659934">雙頁檢視</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />、<ph name="TYPE_2" /></translation>
+<translation id="8230646577665563479"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以翻譯呢個網頁</translation>
 <translation id="8232343881378637145">平台溫度</translation>
 <translation id="8238581221633243064">在新無痕式分頁中開啟網頁</translation>
 <translation id="8241707690549784388">您尋找的網頁使用了您輸入的資料。返回該頁會重複您剛才的動作。您確定要繼續嗎?</translation>
diff --git a/components/test/data/feed/response.binarypb b/components/test/data/feed/response.binarypb
index 23df4491..1d395b1 100644
--- a/components/test/data/feed/response.binarypb
+++ b/components/test/data/feed/response.binarypb
Binary files differ
diff --git a/components/viz/test/data/scaled_mask_with_effect_gl.png b/components/viz/test/data/scaled_mask_with_effect_gl.png
index f02eace8..58615ef 100644
--- a/components/viz/test/data/scaled_mask_with_effect_gl.png
+++ b/components/viz/test/data/scaled_mask_with_effect_gl.png
Binary files differ
diff --git a/components/viz/test/data/scaled_mask_with_effect_skia_gl.png b/components/viz/test/data/scaled_mask_with_effect_skia_gl.png
index d2e1278..f4e965c 100644
--- a/components/viz/test/data/scaled_mask_with_effect_skia_gl.png
+++ b/components/viz/test/data/scaled_mask_with_effect_skia_gl.png
Binary files differ
diff --git a/components/viz/test/data/scaled_mask_with_effect_skia_vk.png b/components/viz/test/data/scaled_mask_with_effect_skia_vk.png
index 93736c75..f4e965c 100644
--- a/components/viz/test/data/scaled_mask_with_effect_skia_vk.png
+++ b/components/viz/test/data/scaled_mask_with_effect_skia_vk.png
Binary files differ
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
index 87dafcd7..ede5341 100644
--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
@@ -66,9 +66,9 @@
   AXTextEditTypeAttributesChange
 };
 
+// Native mac notifications fired.
 NSString* const NSAccessibilityAutocorrectionOccurredNotification =
     @"AXAutocorrectionOccurred";
-NSString* const NSAccessibilityLayoutCompleteNotification = @"AXLayoutComplete";
 NSString* const NSAccessibilityNewDocumentLoadCompleteNotification =
     @"AXNewDocumentLoadComplete";
 NSString* const NSAccessibilityInvalidStatusChangedNotification =
@@ -81,6 +81,9 @@
 NSString* const NSAccessibilityMenuItemSelectedNotification =
     @"AXMenuItemSelected";
 
+// The following native mac notifications are not fired:
+// AXLayoutComplete: Voiceover does not use this, it is considered too spammy.
+
 // Attributes used for NSAccessibilitySelectedTextChangedNotification and
 // NSAccessibilityValueChangedNotification.
 NSString* const NSAccessibilityTextStateChangeTypeKey =
@@ -163,9 +166,6 @@
     case ax::mojom::Event::kAutocorrectionOccured:
       mac_notification = NSAccessibilityAutocorrectionOccurredNotification;
       break;
-    case ax::mojom::Event::kLayoutComplete:
-      mac_notification = NSAccessibilityLayoutCompleteNotification;
-      break;
     default:
       return;
   }
@@ -223,23 +223,18 @@
       break;
     case ui::AXEventGenerator::Event::LOAD_COMPLETE:
       // |NSAccessibilityNewDocumentLoadCompleteNotification| should only be
-      // fired on the top document. Iframes should use
-      // |ax::mojom::Event::kLayoutComplete| to signify that they have finished
-      // loading. |NSAccessibilityNewDocumentLoadCompleteNotification| is the
-      // event that Webkit notifies VoiceOver that a page load has completed.
+      // fired on the top document.
+      // |NSAccessibilityNewDocumentLoadCompleteNotification| is the event that
+      // Webkit notifies VoiceOver that a page load has completed.
       // TODO(crbug.com/1049320): Verify in MacOS 10.16 that the "Automatically
       // speak the webpage" option in the VoiceOver utility is triggered upon
       // observing this event.
       if (IsRootTree()) {
         mac_notification = NSAccessibilityNewDocumentLoadCompleteNotification;
       } else {
-        mac_notification = NSAccessibilityLayoutCompleteNotification;
+        return;
       }
       break;
-    case ui::AXEventGenerator::Event::PORTAL_ACTIVATED:
-      DCHECK(IsRootTree());
-      mac_notification = NSAccessibilityLayoutCompleteNotification;
-      break;
     case ui::AXEventGenerator::Event::INVALID_STATUS_CHANGED:
       mac_notification = NSAccessibilityInvalidStatusChangedNotification;
       break;
@@ -445,6 +440,7 @@
     case ui::AXEventGenerator::Event::OBJECT_ATTRIBUTE_CHANGED:
     case ui::AXEventGenerator::Event::OTHER_ATTRIBUTE_CHANGED:
     case ui::AXEventGenerator::Event::PLACEHOLDER_CHANGED:
+    case ui::AXEventGenerator::Event::PORTAL_ACTIVATED:
     case ui::AXEventGenerator::Event::POSITION_IN_SET_CHANGED:
     case ui::AXEventGenerator::Event::READONLY_CHANGED:
     case ui::AXEventGenerator::Event::RELATED_NODE_CHANGED:
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 6a3a859..e613f9a2 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -852,8 +852,14 @@
   RunAriaTest(FILE_PATH_LITERAL("aria-menuitem.html"));
 }
 
+#if defined(OS_ANDROID)
+#define MAYBE_AccessibilityAriaMenuItemInGroup \
+  DISABLED_AccessibilityAriaMenuItemInGroup
+#else
+#define MAYBE_AccessibilityAriaMenuItemInGroup AccessibilityAriaMenuItemInGroup
+#endif
 IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest,
-                       AccessibilityAriaMenuItemInGroup) {
+                       MAYBE_AccessibilityAriaMenuItemInGroup) {
   RunAriaTest(FILE_PATH_LITERAL("aria-menuitem-in-group.html"));
 }
 // crbug.com/442278 will stop creating new text elements representing title.
@@ -2227,6 +2233,10 @@
   RunHtmlTest(FILE_PATH_LITERAL("svg.html"));
 }
 
+IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilitySvgG) {
+  RunHtmlTest(FILE_PATH_LITERAL("svg-g.html"));
+}
+
 IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityTableSimple) {
   RunHtmlTest(FILE_PATH_LITERAL("table-simple.html"));
 }
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc
index 77c6af8f..54b3a0a 100644
--- a/content/browser/appcache/appcache_update_job.cc
+++ b/content/browser/appcache/appcache_update_job.cc
@@ -43,6 +43,7 @@
 enum class ResourceCheck {
   kValid,
   kInvalid,
+  kCorrupt,
 };
 
 std::string FormatUrlErrorMessage(
@@ -154,6 +155,10 @@
 
   if (found_corruption) {
     update_metrics.IncrementExistingResourceCorrupt();
+    if (base::FeatureList::IsEnabled(kAppCacheCorruptionRecoveryFeature)) {
+      update_metrics.IncrementExistingResourceCorruptionRecovery();
+      return ResourceCheck::kCorrupt;
+    }
   } else {
     update_metrics.IncrementExistingResourceNotCorrupt();
   }
@@ -205,6 +210,9 @@
 
 }  // namespace
 
+const base::Feature kAppCacheCorruptionRecoveryFeature{
+    "AppCacheCorruptionRecovery", base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kAppCacheUpdateResourceOn304Feature{
     "AppCacheUpdateResourceOn304", base::FEATURE_DISABLED_BY_DEFAULT};
 
@@ -1622,7 +1630,14 @@
     LoadFromNewestCacheFailed(url, nullptr);  // no response found
   } else {
     ResourceCheck result = CanUseExistingResource(http_info, update_metrics_);
-    if (result == ResourceCheck::kInvalid) {
+    if (result == ResourceCheck::kCorrupt) {
+      // A corrupt resource was found.  In this case, we want to cause the next
+      // fetch attempt for this resource to be issued without conditional
+      // headers so a 200 OK response is the only result.  We do that by not
+      // passing along |response_info| here.  This case can only occur when the
+      // AppCacheCorruptionRecovery feature is enabled.
+      LoadFromNewestCacheFailed(url, nullptr);
+    } else if (result == ResourceCheck::kInvalid) {
       // An invalid resource was found, but we may want to add conditional
       // headers that could result in a 304 NOT MODIFIED response.
       LoadFromNewestCacheFailed(url, response_info);
diff --git a/content/browser/appcache/appcache_update_job.h b/content/browser/appcache/appcache_update_job.h
index c0c2fd4..b673e25 100644
--- a/content/browser/appcache/appcache_update_job.h
+++ b/content/browser/appcache/appcache_update_job.h
@@ -48,6 +48,7 @@
 class AppCacheResponseInfo;
 class HostNotifier;
 
+CONTENT_EXPORT extern const base::Feature kAppCacheCorruptionRecoveryFeature;
 CONTENT_EXPORT extern const base::Feature kAppCacheUpdateResourceOn304Feature;
 
 // Application cache Update algorithm and state.
diff --git a/content/browser/appcache/appcache_update_job_unittest.cc b/content/browser/appcache/appcache_update_job_unittest.cc
index 3b4ebe3f..92246ea 100644
--- a/content/browser/appcache/appcache_update_job_unittest.cc
+++ b/content/browser/appcache/appcache_update_job_unittest.cc
@@ -113,6 +113,16 @@
     "CACHE:\n"
     "notmodified\n";
 
+const char kManifest1WithMaybeModifiedContents[] =
+    "CACHE MANIFEST\n"
+    "explicit1\n"
+    "FALLBACK:\n"
+    "fallback1 fallback1a\n"
+    "NETWORK:\n"
+    "*\n"
+    "CACHE:\n"
+    "maybemodified\n";
+
 const char kExplicit1Contents[] = "explicit1";
 
 // By default, kManifest2Contents is served from a path in /files/, so any
@@ -273,6 +283,9 @@
     } else if (path == "/files/manifest1-with-notmodified") {
       (*headers) = std::string(manifest_headers, base::size(manifest_headers));
       (*body) = kManifest1WithNotModifiedContents;
+    } else if (path == "/files/manifest1-with-maybemodified") {
+      (*headers) = std::string(manifest_headers, base::size(manifest_headers));
+      (*body) = kManifest1WithMaybeModifiedContents;
     } else if (path == "/files/manifest-fb-404") {
       (*headers) = std::string(manifest_headers, base::size(manifest_headers));
       (*body) =
@@ -313,6 +326,13 @@
           "CACHE MANIFEST\n"
           "CHROMIUM-INTERCEPT:\n"
           "intercept1 return intercept1a\n";
+    } else if (path == "/files/maybemodified") {
+      (*headers) =
+          std::string(not_modified_headers, base::size(not_modified_headers));
+      (*body) = "maybemodified";
+    } else if (path == "/files/modified") {
+      (*headers) = std::string(ok_headers, base::size(ok_headers));
+      (*body) = "modified";
     } else if (path == "/files/notmodified") {
       (*headers) =
           std::string(not_modified_headers, base::size(not_modified_headers));
@@ -709,12 +729,24 @@
     if (it != http_headers_request_test_jobs_.end())
       it->second->ValidateExtraHeaders(url_request.headers);
 
+    // Copy the URL so we can optionally override it under certain conditions.
+    GURL requested_url = url_request.url;
+
+    // If "files/maybemodified" is requested without a conditional header,
+    // treat the request as if it's a request for "files/modified".  The
+    // result will be a 200 OK response (rather than maybemodified's normal
+    // 304 response).
+    if (requested_url.path() == "/files/maybemodified" &&
+        !url_request.headers.HasHeader("If-Modified-Since")) {
+      requested_url = GURL("http://mockhost/files/modified");
+    }
+
     std::string headers;
     std::string body;
-    if (RetryRequestTestJob::IsRetryUrl(url_request.url)) {
-      RetryRequestTestJob::GetResponseForURL(url_request.url, &headers, &body);
+    if (RetryRequestTestJob::IsRetryUrl(requested_url)) {
+      RetryRequestTestJob::GetResponseForURL(requested_url, &headers, &body);
     } else {
-      MockHttpServer::GetMockResponse(url_request.url.path(), &headers, &body);
+      MockHttpServer::GetMockResponse(requested_url.path(), &headers, &body);
     }
 
     net::HttpResponseInfo info;
@@ -3978,6 +4010,173 @@
     // Continues async in |TestComplete|.
   }
 
+  void RequestResponseTimesCorruptionFixedTest() {
+    RequestResponseTimesCorruption(/*expect_modified=*/true);
+  }
+
+  void RequestResponseTimesCorruptionNotFixedTest() {
+    RequestResponseTimesCorruption(/*expect_modified=*/false);
+  }
+
+  void RequestResponseTimesCorruption(bool expect_modified) {
+    MakeService();
+    group_ = base::MakeRefCounted<AppCacheGroup>(
+        service_->storage(),
+        MockHttpServer::GetMockUrl("files/manifest1-with-maybemodified"), 111);
+    AppCacheUpdateJob* update =
+        new AppCacheUpdateJob(service_.get(), group_.get());
+    group_->update_job_ = update;
+
+    // Create a cache without a manifest entry.  The manifest entry will be
+    // added later.
+    AppCache* cache = MakeCacheForGroup(service_->storage()->NewCacheId(), -1);
+    MockFrontend* frontend = MakeMockFrontend();
+    AppCacheHost* host = MakeHost(frontend);
+    host->AssociateCompleteCache(cache);
+
+    // Set up checks for when update job finishes.
+    do_checks_after_update_finished_ = true;
+    expect_group_obsolete_ = false;
+    expect_group_has_cache_ = true;
+    tested_manifest_ = MANIFEST1_WITH_MAYBEMODIFIED;
+    if (!expect_modified) {
+      expect_old_cache_ = cache;
+    }
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_CHECKING_EVENT);
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_DOWNLOADING_EVENT);
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_PROGRESS_EVENT);
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_PROGRESS_EVENT);
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_PROGRESS_EVENT);
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_PROGRESS_EVENT);  // final
+    frontend->AddExpectedEvent(
+        blink::mojom::AppCacheEventID::APPCACHE_UPDATE_READY_EVENT);
+
+    AppCacheCacheTestHelper::CacheEntries cache_entries;
+
+    // Add cache entry for manifest.
+    // Seed storage with expected manifest response info that will cause
+    // an If-Modified-Since header to be put in the manifest fetch request.
+    {
+      const char data[] =
+          "HTTP/1.1 200 OK\0"
+          "Last-Modified: Sat, 29 Oct 2019 19:43:31 GMT\0";
+      scoped_refptr<net::HttpResponseHeaders> headers =
+          base::MakeRefCounted<net::HttpResponseHeaders>(
+              std::string(data, base::size(data)));
+      std::unique_ptr<net::HttpResponseInfo> response_info =
+          std::make_unique<net::HttpResponseInfo>();
+      response_info->headers = std::move(headers);
+      response_info->request_time = base::Time::Now() - kOneYear;
+      response_info->response_time = base::Time::Now() - kOneYear;
+      AppCacheCacheTestHelper::AddCacheEntry(
+          &cache_entries, group_->manifest_url(), AppCacheEntry::EXPLICIT,
+          /*expect_if_modified_since=*/std::string(),
+          /*expect_if_none_match=*/std::string(), /*headers_allowed=*/true,
+          std::move(response_info), kManifest1WithMaybeModifiedContents);
+    }
+
+    // Add cache entry for maybemodified.
+    // Seed storage with expected cache response info that will cause
+    // an If-Modified-Since header to be put in the fetch request.
+    {
+      const char data[] =
+          "HTTP/1.1 200 OK\0"
+          "Last-Modified: Sat, 29 Oct 2019 19:43:31 GMT\0";
+      scoped_refptr<net::HttpResponseHeaders> headers =
+          base::MakeRefCounted<net::HttpResponseHeaders>(
+              std::string(data, base::size(data)));
+      std::unique_ptr<net::HttpResponseInfo> response_info =
+          std::make_unique<net::HttpResponseInfo>();
+      response_info->headers = std::move(headers);
+      CHECK_EQ(response_info->request_time, base::Time());
+      CHECK_EQ(response_info->response_time, base::Time());
+      std::string expect_if_modified_since;
+      if (!expect_modified) {
+        expect_if_modified_since = "Sat, 29 Oct 2019 19:43:31 GMT";
+      }
+      AppCacheCacheTestHelper::AddCacheEntry(
+          &cache_entries, MockHttpServer::GetMockUrl("files/maybemodified"),
+          AppCacheEntry::EXPLICIT,
+          /*expect_if_modified_since=*/expect_if_modified_since,
+          /*expect_if_none_match=*/std::string(), /*headers_allowed=*/true,
+          std::move(response_info), /*body=*/"cached-maybemodified");
+    }
+
+    // Add all header checks from |cache_entries|.
+    for (auto& it : cache_entries) {
+      http_headers_request_test_jobs_.emplace(
+          it.first,
+          std::make_unique<HttpHeadersRequestTestJob>(
+              it.second->expect_if_modified_since,
+              it.second->expect_if_none_match, it.second->headers_allowed));
+    }
+
+    cache_helper_ = std::make_unique<AppCacheCacheTestHelper>(
+        service_.get(), group_->manifest_url(), cache, std::move(cache_entries),
+        base::BindOnce(
+            &AppCacheUpdateJobTest::StartUpdateAfterSeedingStorageData,
+            base::Unretained(this)));
+    cache_helper_->Write();
+
+    post_update_finished_cb_ = base::BindOnce(
+        &AppCacheUpdateJobTest::RequestResponseTimesCorruptionUpdateFinished,
+        base::Unretained(this), expect_modified);
+
+    // Start update after data write completes asynchronously.
+    // After update is finished, continues async in
+    // |RequestResponseTimesCorruptionUpdateFinished|.
+  }
+
+  void RequestResponseTimesCorruptionUpdateFinished(bool expect_modified) {
+    // After cache write was complete, we note that we expect an item to be
+    // copied for the not modified case.
+    if (!expect_modified) {
+      expect_response_ids_.insert(std::map<GURL, int64_t>::value_type(
+          MockHttpServer::GetMockUrl("files/maybemodified"),
+          expect_old_cache_
+              ->GetEntry(MockHttpServer::GetMockUrl("files/maybemodified"))
+              ->response_id()));  // copied
+    }
+    ASSERT_NE(group_->newest_complete_cache(), cache_helper_->write_cache());
+    ASSERT_NE(group_->newest_complete_cache(), nullptr);
+    cache_helper_->PrepareForRead(
+        group_->newest_complete_cache(),
+        base::BindOnce(
+            &AppCacheUpdateJobTest::RequestResponseTimesCorruptionReadFinished,
+            base::Unretained(this), expect_modified));
+    cache_helper_->Read();
+    // Continues async in |RequestResponseTimesCorruptionReadFinished|.
+  }
+
+  void RequestResponseTimesCorruptionReadFinished(bool expect_modified) {
+    std::string resource_name;
+    resource_name = "files/maybemodified";
+    auto it = cache_helper_->read_cache_entries().find(
+        MockHttpServer::GetMockUrl(resource_name));
+    ASSERT_NE(it, cache_helper_->read_cache_entries().end());
+    if (expect_modified) {
+      // Verify that the cache body on the entry matches the expected mock
+      // return body.
+      CHECK_EQ(it->second->body, "modified");
+      CHECK_GT(it->second->response_info->request_time,
+               base::Time::Now() - kOneHour);
+      CHECK_GT(it->second->response_info->response_time,
+               base::Time::Now() - kOneHour);
+    } else {
+      CHECK_EQ(it->second->body, "cached-maybemodified");
+      CHECK_EQ(it->second->response_info->request_time, base::Time());
+      CHECK_EQ(it->second->response_info->response_time, base::Time());
+    }
+    TriggerTestComplete();
+    // Continues async in |TestComplete|.
+  }
+
   void IfNoneMatchRefetchTest() {
     MakeService();
     group_ = base::MakeRefCounted<AppCacheGroup>(
@@ -4426,7 +4625,10 @@
           VerifyManifest1(cache);
           break;
         case MANIFEST1_WITH_NOTMODIFIED:
-          VerifyManifest1WithNotmodified(cache);
+          VerifyManifest1WithNotModified(cache);
+          break;
+        case MANIFEST1_WITH_MAYBEMODIFIED:
+          VerifyManifest1WithMaybeModified(cache);
           break;
         case MANIFEST2_WITH_ROOT_SCOPE:
           VerifyManifest2WithRootScope(cache);
@@ -4502,7 +4704,7 @@
     EXPECT_TRUE(cache->update_time_ > base::Time());
   }
 
-  void VerifyManifest1WithNotmodified(AppCache* cache) {
+  void VerifyManifest1WithNotModified(AppCache* cache) {
     size_t expected = 4 + expect_extra_entries_.size();
     EXPECT_EQ(expected, cache->entries().size());
     const char* kManifestPath = tested_manifest_path_override_
@@ -4512,6 +4714,49 @@
         cache->GetEntry(MockHttpServer::GetMockUrl(kManifestPath));
     ASSERT_TRUE(entry);
     EXPECT_EQ(AppCacheEntry::MANIFEST, entry->types());
+    entry = cache->GetEntry(MockHttpServer::GetMockUrl("files/notmodified"));
+    ASSERT_TRUE(entry);
+    EXPECT_TRUE(entry->IsExplicit());
+    entry = cache->GetEntry(MockHttpServer::GetMockUrl("files/explicit1"));
+    ASSERT_TRUE(entry);
+    EXPECT_TRUE(entry->IsExplicit());
+    entry = cache->GetEntry(MockHttpServer::GetMockUrl("files/fallback1a"));
+    ASSERT_TRUE(entry);
+    EXPECT_EQ(AppCacheEntry::FALLBACK, entry->types());
+
+    for (const auto& pair : expect_extra_entries_) {
+      entry = cache->GetEntry(pair.first);
+      ASSERT_TRUE(entry);
+      EXPECT_EQ(pair.second.types(), entry->types());
+    }
+
+    expected = 1;
+    ASSERT_EQ(expected, cache->fallback_namespaces_.size());
+    EXPECT_TRUE(
+        cache->fallback_namespaces_[0] ==
+        AppCacheNamespace(APPCACHE_FALLBACK_NAMESPACE,
+                          MockHttpServer::GetMockUrl("files/fallback1"),
+                          MockHttpServer::GetMockUrl("files/fallback1a")));
+
+    EXPECT_TRUE(cache->online_safelist_namespaces_.empty());
+    EXPECT_TRUE(cache->online_safelist_all_);
+
+    EXPECT_TRUE(cache->update_time_ > base::Time());
+  }
+
+  void VerifyManifest1WithMaybeModified(AppCache* cache) {
+    size_t expected = 4 + expect_extra_entries_.size();
+    EXPECT_EQ(expected, cache->entries().size());
+    const char* kManifestPath = tested_manifest_path_override_
+                                    ? tested_manifest_path_override_
+                                    : "files/manifest1-with-maybemodified";
+    AppCacheEntry* entry =
+        cache->GetEntry(MockHttpServer::GetMockUrl(kManifestPath));
+    ASSERT_TRUE(entry);
+    EXPECT_EQ(AppCacheEntry::MANIFEST, entry->types());
+    entry = cache->GetEntry(MockHttpServer::GetMockUrl("files/maybemodified"));
+    ASSERT_TRUE(entry);
+    EXPECT_TRUE(entry->IsExplicit());
     entry = cache->GetEntry(MockHttpServer::GetMockUrl("files/explicit1"));
     ASSERT_TRUE(entry);
     EXPECT_TRUE(entry->IsExplicit());
@@ -4894,6 +5139,7 @@
   enum TestedManifest {
     NONE,
     MANIFEST1,
+    MANIFEST1_WITH_MAYBEMODIFIED,
     MANIFEST1_WITH_NOTMODIFIED,
     MANIFEST2_WITH_ROOT_SCOPE,
     MANIFEST2_WITH_FILES_SCOPE,
@@ -5145,6 +5391,30 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+class AppCacheUpdateJobWithCorruptionRecoveryTest
+    : public AppCacheUpdateJobTest {
+ public:
+  AppCacheUpdateJobWithCorruptionRecoveryTest() {
+    scoped_feature_list_.InitAndEnableFeature(
+        kAppCacheCorruptionRecoveryFeature);
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
+class AppCacheUpdateJobWithoutCorruptionRecoveryTest
+    : public AppCacheUpdateJobTest {
+ public:
+  AppCacheUpdateJobWithoutCorruptionRecoveryTest() {
+    scoped_feature_list_.InitAndDisableFeature(
+        kAppCacheCorruptionRecoveryFeature);
+  }
+
+ private:
+  base::test::ScopedFeatureList scoped_feature_list_;
+};
+
 TEST_F(AppCacheUpdateJobTest, AlreadyChecking) {
   MockAppCacheService service;
   auto group = base::MakeRefCounted<AppCacheGroup>(
@@ -5550,6 +5820,18 @@
       &AppCacheUpdateJobTest::RequestResponseTimesAreNotModifiedTest);
 }
 
+TEST_F(AppCacheUpdateJobWithCorruptionRecoveryTest,
+       RequestResponseTimesCorruptionFixed) {
+  RunTestOnUIThread(
+      &AppCacheUpdateJobTest::RequestResponseTimesCorruptionFixedTest);
+}
+
+TEST_F(AppCacheUpdateJobWithoutCorruptionRecoveryTest,
+       RequestResponseTimesCorruptionNotFixed) {
+  RunTestOnUIThread(
+      &AppCacheUpdateJobTest::RequestResponseTimesCorruptionNotFixedTest);
+}
+
 TEST_F(AppCacheUpdateJobTest, IfNoneMatchRefetch) {
   RunTestOnUIThread(&AppCacheUpdateJobTest::IfNoneMatchRefetchTest);
 }
diff --git a/content/browser/appcache/appcache_update_metrics_recorder.cc b/content/browser/appcache/appcache_update_metrics_recorder.cc
index ce7a008..e8a141a 100644
--- a/content/browser/appcache/appcache_update_metrics_recorder.cc
+++ b/content/browser/appcache/appcache_update_metrics_recorder.cc
@@ -34,6 +34,15 @@
   existing_resource_corrupt_++;
 }
 
+void AppCacheUpdateMetricsRecorder::
+    IncrementExistingResourceCorruptionRecovery() {
+#if DCHECK_IS_ON()
+  DCHECK(!finalized_) << "UploadMetrics() already called";
+#endif  // DCHECK_IS_ON()
+
+  existing_resource_corruption_recovery_++;
+}
+
 void AppCacheUpdateMetricsRecorder::IncrementExistingResourceNotCorrupt() {
 #if DCHECK_IS_ON()
   DCHECK(!finalized_) << "UploadMetrics() already called";
@@ -88,6 +97,9 @@
                                 existing_resource_check_, 50);
   base::UmaHistogramExactLinear("appcache.UpdateJob.ExistingResourceCorrupt",
                                 existing_resource_corrupt_, 50);
+  base::UmaHistogramExactLinear(
+      "appcache.UpdateJob.ExistingResourceCorruptionRecovery",
+      existing_resource_corruption_recovery_, 50);
   base::UmaHistogramExactLinear("appcache.UpdateJob.ExistingResourceNotCorrupt",
                                 existing_resource_not_corrupt_, 50);
   base::UmaHistogramExactLinear("appcache.UpdateJob.ExistingResourceReused",
diff --git a/content/browser/appcache/appcache_update_metrics_recorder.h b/content/browser/appcache/appcache_update_metrics_recorder.h
index 29f20cf..1f25fec 100644
--- a/content/browser/appcache/appcache_update_metrics_recorder.h
+++ b/content/browser/appcache/appcache_update_metrics_recorder.h
@@ -37,6 +37,12 @@
   // will not be detected/reported through this metric.
   void IncrementExistingResourceCorrupt();
 
+  // IncrementExistingResourceCorruptionRecovery() keeps track of the number of
+  // times we detected a corrupt resource and triggered corruption recovery.
+  // This will only occur when the corruption recovery feature is enabled in
+  // a given Chromium instance.
+  void IncrementExistingResourceCorruptionRecovery();
+
   // IncrementExistingResourceNotCorrupt() keeps track of the number of non-
   // corrupt resources that we've encountered.  Non-corrupt cache entries that
   // are present and haven't been read or haven't been checked to see if they
@@ -76,6 +82,7 @@
   int existing_corruption_fixed_in_update_ = 0;
   int existing_resource_check_ = 0;
   int existing_resource_corrupt_ = 0;
+  int existing_resource_corruption_recovery_ = 0;
   int existing_resource_not_corrupt_ = 0;
   int existing_resource_reused_ = 0;
   int existing_vary_during_304_ = 0;
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc
index 6a8f95d6..38eedf7 100644
--- a/content/browser/back_forward_cache_browsertest.cc
+++ b/content/browser/back_forward_cache_browsertest.cc
@@ -6891,4 +6891,46 @@
   }
 }
 
+IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, ReplacedNavigationEntry) {
+  // Set the bfcache value to 1 to ensure that the test fails if a page
+  // that replaces the current history entry is stored in back-forward cache.
+  web_contents()
+      ->GetController()
+      .GetBackForwardCache()
+      .set_cache_size_limit_for_testing(1);
+
+  ASSERT_TRUE(embedded_test_server()->Start());
+  GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+  GURL url_b(embedded_test_server()->GetURL("b.com", "/title1.html"));
+  GURL url_c(embedded_test_server()->GetURL("c.com", "/title1.html"));
+
+  // 1) Navigate to A.
+  EXPECT_TRUE(NavigateToURL(shell(), url_a));
+
+  RenderFrameHostImpl* rfh_a = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_a(rfh_a);
+
+  // 2) Navigate to B.
+  EXPECT_TRUE(NavigateToURL(shell(), url_b));
+  RenderFrameHostImpl* rfh_b = current_frame_host();
+  RenderFrameDeletedObserver delete_observer_rfh_b(rfh_b);
+
+  EXPECT_FALSE(delete_observer_rfh_a.deleted());
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+  EXPECT_FALSE(rfh_b->IsInBackForwardCache());
+
+  // 3) Navigate to a new page by replacing the location. The old page can't be
+  // navigated back to and we should not store it in the back-forward cache.
+  EXPECT_TRUE(
+      ExecJs(shell(), JsReplace("window.location.replace($1);", url_c.spec())));
+  EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
+  delete_observer_rfh_b.WaitUntilDeleted();
+
+  // 4) Confirm A is still in BackForwardCache and it wasn't evicted due to the
+  // cache size limit, which would happen if we tried to store a new page in the
+  // cache in the previous step.
+  ASSERT_FALSE(delete_observer_rfh_a.deleted());
+  EXPECT_TRUE(rfh_a->IsInBackForwardCache());
+}
+
 }  // namespace content
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
index 7b3c963..dd73c3499 100644
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -187,13 +187,13 @@
 }
 
 bool ProcessLock::operator==(const ProcessLock& rhs) const {
-  // As we add additional features, like site-/origin-keying, we'll expand this
-  // comparison.
+  // As we add additional features to SiteInfo, we'll expand this comparison.
   // Note that this should *not* compare site_url() values from the SiteInfo,
   // since those include effective URLs which may differ even if the actual
   // document origins match. We use process_lock_url() comparisons to account
   // for this.
-  return site_info_.process_lock_url() == rhs.site_info_.process_lock_url();
+  return site_info_.process_lock_url() == rhs.site_info_.process_lock_url() &&
+         site_info_.is_origin_keyed() == rhs.site_info_.is_origin_keyed();
 }
 
 bool ProcessLock::operator!=(const ProcessLock& rhs) const {
@@ -1398,14 +1398,10 @@
     // Check for special cases, like blob:null/ and data: URLs, where the
     // origin does not contain information to match against the process lock,
     // but using the whole URL can result in a process lock match.
-    // TODO(wjmaclean): at present, DetermineProcessLockURL() just returns the
-    // lock url, and not an entire ProcessLock (including the related SiteInfo),
-    // so below we have to just compare URLs. It would be nice to directly
-    // compare ProcessLock objects instead.
-    const GURL expected_process_lock_url =
-        SiteInstanceImpl::DetermineProcessLockURL(isolation_context, url);
+    const ProcessLock expected_process_lock =
+        SiteInstanceImpl::DetermineProcessLock(isolation_context, url);
     const ProcessLock& actual_process_lock = GetProcessLock(child_id);
-    if (actual_process_lock.lock_url() == expected_process_lock_url)
+    if (actual_process_lock == expected_process_lock)
       return CanCommitStatus::CAN_COMMIT_ORIGIN_AND_URL;
 
     return CanCommitStatus::CANNOT_COMMIT_URL;
@@ -1502,12 +1498,15 @@
   DCHECK(IsRunningOnExpectedThread());
   base::AutoLock lock(lock_);
 
+  // TODO(wjmaclean): The following call to GetSecurityState can retrieve the
+  // wrong one if there are multiple browsing instances in one renderer process.
+  // https://crbug.com/1099718
   SecurityState* security_state = GetSecurityState(child_id);
   BrowserOrResourceContext browser_or_resource_context;
   if (security_state)
     browser_or_resource_context = security_state->GetBrowserOrResourceContext();
 
-  GURL expected_process_lock_url;
+  ProcessLock expected_process_lock;
   std::string failure_reason;
 
   if (!security_state) {
@@ -1515,24 +1514,25 @@
   } else if (!browser_or_resource_context) {
     failure_reason = "no_browser_or_resource_context";
   } else {
+    // Note: The following choice for |isolation_context| can cause calls to
+    // functions like DetermineProcessLock()/ComputeSiteInfo() to return the
+    // wrong value for |is_origin_keyed| (internally) if there are multiple
+    // browsing instances in one renderer process. https://crbug.com/1099718
     IsolationContext isolation_context(
         security_state->lowest_browsing_instance_id(),
         browser_or_resource_context);
-    // TODO(wjmaclean): at present, DetermineProcessLockURL() just returns the
-    // lock url, and not an entire ProcessLock (including the related SiteInfo),
-    // so below we have to just compare URLs. It would be nice to directly
-    // compare ProcessLock objects instead.
-    // NOTE: we can't use ComputeSiteInfo to get the lock from here, because we
-    // could be on the IO thread, where we aren't able to determine a SiteInfo's
-    // site URL.
-    expected_process_lock_url =
-        SiteInstanceImpl::DetermineProcessLockURL(isolation_context, url);
+    // NOTE: If we're on the IO thread, the call to DetermineProcessLock() below
+    // will return a ProcessLock with an (internally) identical site_url, one
+    // that does not use effective URLs. That's ok in this instance since we
+    // only ever look at the lock url.
+    expected_process_lock =
+        SiteInstanceImpl::DetermineProcessLock(isolation_context, url);
 
     ProcessLock actual_process_lock = security_state->process_lock();
     if (!actual_process_lock.is_empty()) {
       // Jail-style enforcement - a process with a lock can only access data
       // from origins that require exactly the same lock.
-      if (actual_process_lock.lock_url() == expected_process_lock_url)
+      if (actual_process_lock == expected_process_lock)
         return true;
 
       // TODO(acolwell, nasko): https://crbug.com/1029092: Ensure the precursor
@@ -1550,7 +1550,12 @@
           return true;
       }
 
-      failure_reason = "lock_mismatch";
+      // TODO(wjmaclean): We should update the ProcessLock comparison API to
+      // return a reason why two locks differ.
+      if (actual_process_lock.lock_url() != expected_process_lock.lock_url())
+        failure_reason = "lock_mismatch:url";
+      else
+        failure_reason = "lock_mismatch:is_origin_keyed";
     } else {
       // Citadel-style enforcement - an unlocked process should not be able to
       // access data from origins that require a lock.
@@ -1583,7 +1588,7 @@
       }
 
       // TODO(alexmos, lukasza): https://crbug.com/764958: Consider making
-      // ShouldLockProcess work with |expected_process_lock_url| instead of
+      // ShouldLockProcess work with |expected_process_lock| instead of
       // |site_url|.
       GURL site_url =
           SiteInstanceImpl::ComputeSiteInfo(isolation_context, url).site_url();
@@ -1603,7 +1608,7 @@
   // Returning false here will result in a renderer kill.  Set some crash
   // keys that will help understand the circumstances of that kill.
   LogCanAccessDataForOriginCrashKeys(
-      expected_process_lock_url.possibly_invalid_spec(),
+      expected_process_lock.lock_url().possibly_invalid_spec(),
       GetKilledProcessOriginLock(security_state), url.GetOrigin().spec(),
       failure_reason);
   return false;
diff --git a/content/browser/child_process_security_policy_impl.h b/content/browser/child_process_security_policy_impl.h
index 669d1f7..9d0fe9e 100644
--- a/content/browser/child_process_security_policy_impl.h
+++ b/content/browser/child_process_security_policy_impl.h
@@ -82,6 +82,13 @@
   // safely just compare ProcessLocks directly.
   const GURL lock_url() const { return site_info_.process_lock_url(); }
 
+  // Returns whether this ProcessLock is specific to an origin rather than
+  // including subdomains, such as due to opt-in origin isolation. This resolves
+  // an ambiguity of whether a process with a lock_url() like
+  // "https://foo.example" is allowed to include "https://sub.foo.example" or
+  // not.
+  bool is_origin_keyed() const { return site_info_.is_origin_keyed(); }
+
   // Returns whether lock_url() is at least at the granularity of a site (i.e.,
   // a scheme plus eTLD+1, like https://google.com).  Also returns true if the
   // lock is to a more specific origin (e.g., https://accounts.google.com), but
diff --git a/content/browser/frame_host/back_forward_cache_can_store_document_result.cc b/content/browser/frame_host/back_forward_cache_can_store_document_result.cc
index 6a6c32e..0f1ad88c 100644
--- a/content/browser/frame_host/back_forward_cache_can_store_document_result.cc
+++ b/content/browser/frame_host/back_forward_cache_can_store_document_result.cc
@@ -131,6 +131,8 @@
       return "BackForwardCache is disabled through command line (may include "
              "cases where the embedder disabled it due to, e.g., enterprise "
              "policy)";
+    case Reason::kNavigationEntryWasReplaced:
+      return "navigation entry was replaced in history";
   }
 }
 
diff --git a/content/browser/frame_host/back_forward_cache_metrics.h b/content/browser/frame_host/back_forward_cache_metrics.h
index 3e52dba7..1e1a0210 100644
--- a/content/browser/frame_host/back_forward_cache_metrics.h
+++ b/content/browser/frame_host/back_forward_cache_metrics.h
@@ -85,7 +85,8 @@
     // BackForwardCache is disabled due to command-line switch (may include
     // cases where the embedder disabled it due to, e.g., enterprise policy).
     kBackForwardCacheDisabledByCommandLine = 35,
-    kMaxValue = kBackForwardCacheDisabledByCommandLine,
+    kNavigationEntryWasReplaced = 36,
+    kMaxValue = kNavigationEntryWasReplaced,
   };
 
   using NotRestoredReasons =
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc
index 2ca0e52..3694dc9c 100644
--- a/content/browser/frame_host/navigation_entry_impl.cc
+++ b/content/browser/frame_host/navigation_entry_impl.cc
@@ -181,32 +181,6 @@
   return true;
 }
 
-void InitRestoredTreeNode(BrowserContext* browser_context,
-                          NavigationEntryImpl::TreeNode* node) {
-  DCHECK(browser_context);
-  DCHECK(node);
-
-  // Check that this is a freshly restored entry.
-  FrameNavigationEntry* frame_entry = node->frame_entry.get();
-  DCHECK(!frame_entry->site_instance());
-
-  // Check that the entry has been already populated with required information.
-  DCHECK(frame_entry->page_state().IsValid());
-
-  // TODO(lukasza): Finish reverting r719801 and remove this empty function and
-  // its callers.
-}
-
-void RecursivelyInitRestoredTreeNode(BrowserContext* browser_context,
-                                     NavigationEntryImpl::TreeNode* node) {
-  DCHECK(browser_context);
-  DCHECK(node);
-
-  InitRestoredTreeNode(browser_context, node);
-  for (const auto& child : node->children)
-    RecursivelyInitRestoredTreeNode(browser_context, child.get());
-}
-
 void RegisterOriginsRecursive(NavigationEntryImpl::TreeNode* node,
                               const url::Origin& origin) {
   if (node->frame_entry->committed_origin().has_value()) {
@@ -673,11 +647,6 @@
   return frame_tree_->frame_entry->document_sequence_number();
 }
 
-void NavigationEntryImpl::InitRestoredEntry(BrowserContext* browser_context) {
-  DCHECK(browser_context);
-  RecursivelyInitRestoredTreeNode(browser_context, root_node());
-}
-
 void NavigationEntryImpl::SetCanLoadLocalResources(bool allow) {
   can_load_local_resources_ = allow;
 }
diff --git a/content/browser/frame_host/navigation_entry_impl.h b/content/browser/frame_host/navigation_entry_impl.h
index cd6c3082..1a82af49 100644
--- a/content/browser/frame_host/navigation_entry_impl.h
+++ b/content/browser/frame_host/navigation_entry_impl.h
@@ -148,7 +148,6 @@
   std::string GetExtraHeaders() override;
   void AddExtraHeaders(const std::string& extra_headers) override;
   int64_t GetMainFrameDocumentSequenceNumber() override;
-  void InitRestoredEntry(BrowserContext* browser_context) override;
 
   // Creates a copy of this NavigationEntryImpl that can be modified
   // independently from the original.  Does not copy any value that would be
diff --git a/content/browser/frame_host/navigator.cc b/content/browser/frame_host/navigator.cc
index 4ab4593c2..7198ebc 100644
--- a/content/browser/frame_host/navigator.cc
+++ b/content/browser/frame_host/navigator.cc
@@ -268,7 +268,7 @@
       is_same_document_navigation,
       navigation_request->coop_status()
           .require_browsing_instance_swap() /* clear_proxies_on_commit */,
-      pending_frame_policy);
+      pending_frame_policy, params.should_replace_current_entry);
 
   // Save the new page's origin and other properties, and replicate them to
   // proxies, including the proxy created in DidNavigateFrame() to replace the
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 85b7134..4ab89d4 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -1305,7 +1305,7 @@
       mojo::PendingReceiver<blink::mojom::SerialService> receiver);
 #endif
 
-  IdleManager* GetIdleManager() override;
+  IdleManager* GetIdleManager();
 
   void BindIdleManager(
       mojo::PendingReceiver<blink::mojom::IdleManager> receiver);
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index a3712049..d615625 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -292,10 +292,11 @@
     bool was_caused_by_user_gesture,
     bool is_same_document_navigation,
     bool clear_proxies_on_commit,
-    const blink::FramePolicy& frame_policy) {
+    const blink::FramePolicy& frame_policy,
+    bool should_replace_current_entry) {
   CommitPendingIfNecessary(render_frame_host, was_caused_by_user_gesture,
-                           is_same_document_navigation,
-                           clear_proxies_on_commit);
+                           is_same_document_navigation, clear_proxies_on_commit,
+                           should_replace_current_entry);
 
   // Make sure any dynamic changes to this frame's sandbox flags and feature
   // policy that were made prior to navigation take effect.  This should only
@@ -308,7 +309,8 @@
     RenderFrameHostImpl* render_frame_host,
     bool was_caused_by_user_gesture,
     bool is_same_document_navigation,
-    bool clear_proxies_on_commit) {
+    bool clear_proxies_on_commit,
+    bool should_replace_current_entry) {
   if (!speculative_render_frame_host_) {
     // There's no speculative RenderFrameHost so it must be that the current
     // renderer process completed a navigation.
@@ -325,8 +327,8 @@
     // speculative RenderFrameHost replaces the current one in the commit call
     // below.
     CommitPending(std::move(speculative_render_frame_host_),
-                  std::move(bfcache_entry_to_restore_),
-                  clear_proxies_on_commit);
+                  std::move(bfcache_entry_to_restore_), clear_proxies_on_commit,
+                  should_replace_current_entry);
     frame_tree_node_->ResetNavigationRequest(false);
     return;
   }
@@ -428,7 +430,8 @@
 }
 
 void RenderFrameHostManager::UnloadOldFrame(
-    std::unique_ptr<RenderFrameHostImpl> old_render_frame_host) {
+    std::unique_ptr<RenderFrameHostImpl> old_render_frame_host,
+    bool should_replace_current_entry) {
   TRACE_EVENT1("navigation", "RenderFrameHostManager::UnloadOldFrame",
                "FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
 
@@ -479,6 +482,15 @@
         delegate_->GetControllerForRenderManager().GetBackForwardCache();
     auto can_store =
         back_forward_cache.CanStorePageNow(old_render_frame_host.get());
+
+    // Do not store the page in the back-forward cache if the current navigation
+    // entry is going to be replaced by a pending one, making it impossible to
+    // navigate back to the current page.
+    if (should_replace_current_entry) {
+      can_store.No(BackForwardCacheMetrics::NotRestoredReason::
+                       kNavigationEntryWasReplaced);
+    }
+
     TRACE_EVENT1("navigation", "BackForwardCache_MaybeStorePage", "can_store",
                  can_store.ToString());
     if (can_store) {
@@ -820,7 +832,8 @@
         navigation_rfh->SwapIn();
       navigation_rfh->OnCommittedSpeculativeBeforeNavigationCommit();
       CommitPending(std::move(speculative_render_frame_host_), nullptr,
-                    request->coop_status().require_browsing_instance_swap());
+                    request->coop_status().require_browsing_instance_swap(),
+                    false /* should_replace_current_entry */);
     }
   }
   DCHECK(navigation_rfh &&
@@ -2632,7 +2645,8 @@
 void RenderFrameHostManager::CommitPending(
     std::unique_ptr<RenderFrameHostImpl> pending_rfh,
     std::unique_ptr<BackForwardCacheImpl::Entry> pending_bfcache_entry,
-    bool clear_proxies_on_commit) {
+    bool clear_proxies_on_commit,
+    bool should_replace_current_entry) {
   TRACE_EVENT1("navigation", "RenderFrameHostManager::CommitPending",
                "FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
   CHECK(pending_rfh);
@@ -2825,7 +2839,8 @@
   // Unload the old frame now that the new one is visible.
   // This will unload it and schedule it for deletion when the unload ack
   // arrives (or immediately if the process isn't live).
-  UnloadOldFrame(std::move(old_render_frame_host));
+  UnloadOldFrame(std::move(old_render_frame_host),
+                 should_replace_current_entry);
 
   // Since the new RenderFrameHost is now committed, there must be no proxies
   // for its SiteInstance. Delete any existing ones.
@@ -3192,7 +3207,8 @@
   // WebContents::AttachToOuterWebContentsFrame is called.
   speculative_render_frame_host_->SwapIn();
   CommitPending(std::move(speculative_render_frame_host_), nullptr,
-                false /* clear_proxies_on_commit */);
+                false /* clear_proxies_on_commit */,
+                false /* should_replace_current_entry */);
   NotifyPrepareForInnerDelegateAttachComplete(true /* success */);
 }
 
diff --git a/content/browser/frame_host/render_frame_host_manager.h b/content/browser/frame_host/render_frame_host_manager.h
index 87e02bc..0c20166 100644
--- a/content/browser/frame_host/render_frame_host_manager.h
+++ b/content/browser/frame_host/render_frame_host_manager.h
@@ -261,7 +261,8 @@
                         bool was_caused_by_user_gesture,
                         bool is_same_document_navigation,
                         bool clear_proxies_on_commit,
-                        const blink::FramePolicy& frame_policy);
+                        const blink::FramePolicy& frame_policy,
+                        bool should_replace_current_entry);
 
   // Called when this frame's opener is changed to the frame specified by
   // |opener_frame_token| in |source_site_instance|'s process.  This change
@@ -796,16 +797,20 @@
   // |clear_proxies_on_commit| Indicates if the proxies and opener must be
   // removed during the commit. This can happen following some BrowsingInstance
   // swaps, such as those for COOP.
+  // |should_replace_current_entry| indicates whether the committing navigation
+  // should replace the current history entry.
   void CommitPending(
       std::unique_ptr<RenderFrameHostImpl> pending_rfh,
       std::unique_ptr<BackForwardCacheImpl::Entry> pending_bfcache_entry,
-      bool clear_proxies_on_commit);
+      bool clear_proxies_on_commit,
+      bool should_replace_current_entry);
 
   // Helper to call CommitPending() in all necessary cases.
   void CommitPendingIfNecessary(RenderFrameHostImpl* render_frame_host,
                                 bool was_caused_by_user_gesture,
                                 bool is_same_document_navigation,
-                                bool clear_proxies_on_commit);
+                                bool clear_proxies_on_commit,
+                                bool should_replace_current_entry);
 
   // Commits given frame policy when the renderer's frame navigates.
   void CommitFramePolicy(const blink::FramePolicy& frame_policy);
@@ -814,7 +819,8 @@
   // RenderFrameHost has committed.  |old_render_frame_host| will either be
   // deleted or put on the pending delete list during this call.
   void UnloadOldFrame(
-      std::unique_ptr<RenderFrameHostImpl> old_render_frame_host);
+      std::unique_ptr<RenderFrameHostImpl> old_render_frame_host,
+      bool should_replace_current_entry);
 
   // Discards a RenderFrameHost that was never made active (for active ones
   // UnloadOldFrame is used instead).
diff --git a/content/browser/frame_host/render_frame_host_manager_browsertest.cc b/content/browser/frame_host/render_frame_host_manager_browsertest.cc
index 7593005..9bd85f2 100644
--- a/content/browser/frame_host/render_frame_host_manager_browsertest.cc
+++ b/content/browser/frame_host/render_frame_host_manager_browsertest.cc
@@ -7858,9 +7858,9 @@
   EXPECT_NE(process1, process2);
   EXPECT_EQ(GURL("http://foo.com"),
             web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL());
-  EXPECT_EQ(
-      ProcessLock(SiteInfo(GURL("http://foo.com"), GURL("http://foo.com"))),
-      policy->GetProcessLock(process2->GetID()));
+  EXPECT_EQ(ProcessLock(SiteInfo(GURL("http://foo.com"), GURL("http://foo.com"),
+                                 false /* is_origin_keyed */)),
+            policy->GetProcessLock(process2->GetID()));
 
   // Ensure also that the foo.com process didn't change midway through the
   // navigation.
diff --git a/content/browser/frame_host/render_frame_host_manager_unittest.cc b/content/browser/frame_host/render_frame_host_manager_unittest.cc
index e3c8a6ca..06c2b4a 100644
--- a/content/browser/frame_host/render_frame_host_manager_unittest.cc
+++ b/content/browser/frame_host/render_frame_host_manager_unittest.cc
@@ -273,7 +273,8 @@
   rfh_manager->DidNavigateFrame(rfh, true /* was_caused_by_user_gesture */,
                                 false /* is_same_document_navigation */,
                                 false /* clear_proxies_on_commit */,
-                                blink::FramePolicy());
+                                blink::FramePolicy(),
+                                false /* should_replace_current_entry */);
 }
 
 }  // namespace
diff --git a/content/browser/isolated_origin_browsertest.cc b/content/browser/isolated_origin_browsertest.cc
index 58ca7d9..3ae310b 100644
--- a/content/browser/isolated_origin_browsertest.cc
+++ b/content/browser/isolated_origin_browsertest.cc
@@ -9,6 +9,7 @@
 #include "base/command_line.h"
 #include "base/macros.h"
 #include "base/strings/string_util.h"
+#include "base/test/bind_test_util.h"
 #include "base/test/scoped_feature_list.h"
 #include "build/build_config.h"
 #include "components/network_session_configurator/common/network_switches.h"
@@ -33,6 +34,7 @@
 #include "content/public/test/test_frame_navigation_observer.h"
 #include "content/public/test/test_navigation_observer.h"
 #include "content/public/test/test_utils.h"
+#include "content/public/test/url_loader_interceptor.h"
 #include "content/shell/browser/shell.h"
 #include "content/test/content_browser_test_utils_internal.h"
 #include "content/test/did_commit_navigation_interceptor.h"
@@ -75,7 +77,7 @@
   }
 
   ProcessLock ProcessLockFromUrl(const std::string& url) {
-    return ProcessLock(SiteInfo(GURL(url), GURL(url)));
+    return ProcessLock(SiteInfo(GURL(url), GURL(url), false));
   }
 
   WebContentsImpl* web_contents() const {
@@ -87,9 +89,12 @@
   // etc). This must be equivalent to what
   // SiteInstanceImpl::DetermineProcessLockURL() would return
   // for strict origin isolation.
+  // Note: do not use this for opt-in origin isolation, as it won't set
+  // is_origin_keyed to true.
   ProcessLock GetStrictProcessLock(const GURL& url) {
     GURL origin_url = url::Origin::Create(url).GetURL();
-    return ProcessLock(SiteInfo(origin_url, origin_url));
+    return ProcessLock(
+        SiteInfo(origin_url, origin_url, false /* is_origin_keyed */));
   }
 
  private:
@@ -327,10 +332,12 @@
   GURL non_isolated_sub_origin(
       https_server()->GetURL("non_isolated.foo.com", "/title1.html"));
   EXPECT_TRUE(NavigateToURL(shell(), isolated_base_origin_url));
-  EXPECT_EQ(2u, shell()->web_contents()->GetAllFrames().size());
+  // The .html main frame has two iframes, this test only uses the first one.
+  EXPECT_EQ(3u, shell()->web_contents()->GetAllFrames().size());
 
   FrameTreeNode* root = web_contents()->GetFrameTree()->root();
   FrameTreeNode* child_frame_node = root->child_at(0);
+
   NavigateFrameToURL(child_frame_node, non_isolated_sub_origin);
 
   auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
@@ -352,6 +359,17 @@
       root->current_frame_host()->GetSiteInstance()->GetIsolationContext(),
       url::Origin::Create(non_isolated_sub_origin)));
 
+  // Make sure the opt-in isolated origin is origin-keyed, and the non-opt-in
+  // origin is site-keyed.
+  EXPECT_TRUE(root->current_frame_host()
+                  ->GetSiteInstance()
+                  ->GetSiteInfo()
+                  .is_origin_keyed());
+  EXPECT_FALSE(child_frame_node->current_frame_host()
+                   ->GetSiteInstance()
+                   ->GetSiteInfo()
+                   .is_origin_keyed());
+
   // Make sure the master opt-in list has the base origin isolated and the sub
   // origin not isolated.
   EXPECT_TRUE(policy->HasOriginEverRequestedOptInIsolation(
@@ -403,8 +421,9 @@
                                        "foo.com(foo.com)"));
   GURL isolated_suborigin_url(
       https_server()->GetURL("isolated.foo.com", "/isolate_origin"));
+  GURL origin_url = url::Origin::Create(isolated_suborigin_url).GetURL();
   auto expected_isolated_suborigin_lock =
-      GetStrictProcessLock(isolated_suborigin_url);
+      ProcessLock(SiteInfo(origin_url, origin_url, true /* is_origin_keyed */));
   EXPECT_TRUE(NavigateToURL(shell(), test_url));
   EXPECT_EQ(2u, shell()->web_contents()->GetAllFrames().size());
 
@@ -519,8 +538,11 @@
   EXPECT_TRUE(NavigateToURLFromRenderer(web_contents(), isolated_url));
   scoped_refptr<SiteInstance> isolated_instance =
       web_contents()->GetSiteInstance();
-  EXPECT_EQ(isolated_instance, web_contents()->GetSiteInstance());
-  EXPECT_NE(unisolated_process, web_contents()->GetMainFrame()->GetProcess());
+  RenderProcessHost* isolated_process =
+      web_contents()->GetMainFrame()->GetProcess();
+
+  EXPECT_NE(unisolated_instance, isolated_instance);
+  EXPECT_NE(unisolated_process, isolated_process);
 
   // The site URL for isolated.foo.com should be the full origin rather than
   // scheme and eTLD+1.
@@ -537,8 +559,13 @@
   // ensure that this ends up in a new process and SiteInstance for
   // isolated.foo.com.
   EXPECT_TRUE(NavigateToURL(shell(), isolated_url));
-  EXPECT_NE(web_contents()->GetSiteInstance(), unisolated_instance);
-  EXPECT_NE(web_contents()->GetMainFrame()->GetProcess(), unisolated_process);
+  scoped_refptr<SiteInstance> isolated_instance2 =
+      web_contents()->GetSiteInstance();
+  RenderProcessHost* isolated_process2 =
+      web_contents()->GetMainFrame()->GetProcess();
+  EXPECT_NE(unisolated_instance, isolated_instance2);
+  EXPECT_NE(isolated_instance, isolated_instance2);
+  EXPECT_NE(unisolated_process, isolated_process2);
 
   // Go back to www.foo.com: this should end up in the unisolated process.
   {
@@ -765,11 +792,13 @@
 }
 
 // This test handles the case where the base origin is isolated, but a
-// sub-origin isn't. In this case we still need to isolate the sub-origin to
-// respect the base-origin's isolation request.
-// TODO(wjmaclean): Modify this to verify that the sub-origin is placed into the
-// site-keyed SiteInstance corresponding to the base-origin, and not the
-// origin-keyed SiteInstance the base origin is assigned to.
+// sub-origin isn't. In this case we need to place the sub-origin in a site-
+// keyed SiteInstance with the same site URL as the origin-keyed SiteInstance
+// used for the isolated base origin. Note: only the isolated base origin will
+// have a port in this test, as the non-isolated sub-origin will have its port
+// value stripped. The test IsolatedBaseOriginNoPorts tests the case where
+// neither the isolated base origin nor the non-isolated sub-origin has a port
+// value.
 IN_PROC_BROWSER_TEST_F(OriginIsolationOptInOriginPolicyTest,
                        IsolatedBaseOrigin) {
   SetOriginPolicyManifest(R"({ "ids": ["my-policy"], "isolation": true })");
@@ -777,26 +806,177 @@
   // navigate the subframe to a sub-origin no requesting isolation.
   GURL test_url(https_server()->GetURL(
       "foo.com", "/isolated_base_origin_with_subframe.html"));
-  GURL non_isolated_sub_origin(
-      https_server()->GetURL("non_isolated.foo.com", "/title1.html"));
+  GURL non_isolated_sub_origin1(
+      https_server()->GetURL("non_isolated1.foo.com", "/title1.html"));
+  GURL non_isolated_sub_origin2(
+      https_server()->GetURL("non_isolated2.foo.com", "/title1.html"));
   EXPECT_TRUE(NavigateToURL(shell(), test_url));
-  EXPECT_EQ(2u, shell()->web_contents()->GetAllFrames().size());
+  EXPECT_EQ(3u, shell()->web_contents()->GetAllFrames().size());
 
   FrameTreeNode* root = web_contents()->GetFrameTree()->root();
-  FrameTreeNode* child_frame_node = root->child_at(0);
-  NavigateFrameToURL(child_frame_node, non_isolated_sub_origin);
+  FrameTreeNode* child_frame_node1 = root->child_at(0);
+  FrameTreeNode* child_frame_node2 = root->child_at(1);
+  NavigateFrameToURL(child_frame_node1, non_isolated_sub_origin1);
+  NavigateFrameToURL(child_frame_node2, non_isolated_sub_origin2);
+
   auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
   EXPECT_TRUE(policy->ShouldOriginGetOptInIsolation(
       root->current_frame_host()->GetSiteInstance()->GetIsolationContext(),
       url::Origin::Create(test_url)));
+  EXPECT_FALSE(policy->ShouldOriginGetOptInIsolation(
+      child_frame_node1->current_frame_host()
+          ->GetSiteInstance()
+          ->GetIsolationContext(),
+      url::Origin::Create(non_isolated_sub_origin1)));
+  EXPECT_FALSE(policy->ShouldOriginGetOptInIsolation(
+      child_frame_node2->current_frame_host()
+          ->GetSiteInstance()
+          ->GetIsolationContext(),
+      url::Origin::Create(non_isolated_sub_origin2)));
+
+  // Base origin and subdomains should have different SiteInstances.
   EXPECT_NE(root->current_frame_host()->GetSiteInstance(),
-            child_frame_node->current_frame_host()->GetSiteInstance());
-  // Make sure the master opt-in list has both the base origin and the sub
-  // origin both isolated.
+            child_frame_node1->current_frame_host()->GetSiteInstance());
+  EXPECT_TRUE(root->current_frame_host()
+                  ->GetSiteInstance()
+                  ->GetSiteInfo()
+                  .is_origin_keyed());
+  EXPECT_FALSE(child_frame_node1->current_frame_host()
+                   ->GetSiteInstance()
+                   ->GetSiteInfo()
+                   .is_origin_keyed());
+
+  // Both non-isolated subdomains are in the same SiteInstance.
+  EXPECT_EQ(child_frame_node1->current_frame_host()->GetSiteInstance(),
+            child_frame_node2->current_frame_host()->GetSiteInstance());
+  EXPECT_EQ(
+      GURL("https://foo.com"),
+      child_frame_node1->current_frame_host()->GetSiteInstance()->GetSiteURL());
+
+  // The base-origin and the children are in different processes.
+  EXPECT_NE(
+      root->current_frame_host()->GetSiteInstance()->GetProcess(),
+      child_frame_node1->current_frame_host()->GetSiteInstance()->GetProcess());
+
+  // Make sure the master opt-in list has the base origin as isolated, but not
+  // the sub-origins.
   EXPECT_TRUE(policy->HasOriginEverRequestedOptInIsolation(
       url::Origin::Create(test_url)));
   EXPECT_FALSE(policy->HasOriginEverRequestedOptInIsolation(
-      url::Origin::Create(non_isolated_sub_origin)));
+      url::Origin::Create(non_isolated_sub_origin1)));
+  EXPECT_FALSE(policy->HasOriginEverRequestedOptInIsolation(
+      url::Origin::Create(non_isolated_sub_origin2)));
+}
+
+// This test is the same as OriginIsolationOptInOriginPolicyTest
+// .IsolatedBaseOrigin except it uses port-free URLs. This is critical since we
+// can have two SiteInstances with the same SiteURL as long as one is
+// origin-keyed and the other isn't. Site URLs used to be used as map-keys but
+// with opt-in origin isolation we need to also consider the keying flag.
+// When the URLs all have non-default ports, we will never have duplicate
+// site URLs since the site-keyed one will have the port stripped.
+IN_PROC_BROWSER_TEST_F(OriginIsolationOptInHeaderTest,
+                       IsolatedBaseOriginNoPorts) {
+  GURL isolated_base_origin_url("https://foo.com");
+  GURL non_isolated_sub_origin_url_a("https://a.foo.com");
+  GURL non_isolated_sub_origin_url_b("https://b.foo.com");
+
+  // Since the embedded test server only works for URLs with non-default ports,
+  // use a URLLoaderInterceptor to mimic port-free operation. This allows the
+  // rest of the test to operate as if all URLs are using the default ports.
+  URLLoaderInterceptor interceptor(base::BindLambdaForTesting(
+      [&](URLLoaderInterceptor::RequestParams* params) {
+        if (params->url_request.url.host() == "foo.com") {
+          if (params->url_request.url.path() != "/")
+            return false;
+
+          const std::string headers =
+              "HTTP/1.1 200 OK\n"
+              "Content-Type: text/html\n"
+              "Origin-Isolation: ?1\n";
+          // Note: this call would normally get the headers from
+          // isolated_base_origin_with_subframe.html.mock-http-headers,
+          // but those are meant for use with a
+          // OriginIsolationOptInOriginPolicyTest. and won't work here, so we
+          // override them.
+          URLLoaderInterceptor::WriteResponse(
+              "content/test/data/isolated_base_origin_with_subframe.html",
+              params->client.get(), &headers, base::Optional<net::SSLInfo>());
+          return true;
+        }
+        if (params->url_request.url.host() == "a.foo.com" ||
+            params->url_request.url.host() == "b.foo.com") {
+          URLLoaderInterceptor::WriteResponse("content/test/data/title1.html",
+                                              params->client.get());
+          return true;
+        }
+        // Not handled by us.
+        return false;
+      }));
+
+  // Load the isolated base url.
+  EXPECT_TRUE(NavigateToURL(shell(), isolated_base_origin_url));
+  EXPECT_EQ(3u, shell()->web_contents()->GetAllFrames().size());
+
+  FrameTreeNode* root = web_contents()->GetFrameTree()->root();
+  FrameTreeNode* child_frame_node1 = root->child_at(0);
+  FrameTreeNode* child_frame_node2 = root->child_at(1);
+  NavigateFrameToURL(child_frame_node1, non_isolated_sub_origin_url_a);
+  NavigateFrameToURL(child_frame_node2, non_isolated_sub_origin_url_b);
+
+  auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
+  EXPECT_TRUE(policy->ShouldOriginGetOptInIsolation(
+      root->current_frame_host()->GetSiteInstance()->GetIsolationContext(),
+      url::Origin::Create(isolated_base_origin_url)));
+  EXPECT_FALSE(policy->ShouldOriginGetOptInIsolation(
+      child_frame_node1->current_frame_host()
+          ->GetSiteInstance()
+          ->GetIsolationContext(),
+      url::Origin::Create(non_isolated_sub_origin_url_a)));
+  EXPECT_FALSE(policy->ShouldOriginGetOptInIsolation(
+      child_frame_node2->current_frame_host()
+          ->GetSiteInstance()
+          ->GetIsolationContext(),
+      url::Origin::Create(non_isolated_sub_origin_url_b)));
+  // Base origin and subdomains should have different SiteInstances.
+  EXPECT_NE(root->current_frame_host()->GetSiteInstance(),
+            child_frame_node1->current_frame_host()->GetSiteInstance());
+  EXPECT_TRUE(root->current_frame_host()
+                  ->GetSiteInstance()
+                  ->GetSiteInfo()
+                  .is_origin_keyed());
+  EXPECT_FALSE(child_frame_node1->current_frame_host()
+                   ->GetSiteInstance()
+                   ->GetSiteInfo()
+                   .is_origin_keyed());
+
+  // Both SiteInstances should have the same site URL, because they have no
+  // port.
+  EXPECT_EQ(
+      root->current_frame_host()->GetSiteInstance()->GetSiteURL(),
+      child_frame_node1->current_frame_host()->GetSiteInstance()->GetSiteURL());
+  EXPECT_NE(root->current_frame_host()->GetSiteInstance()->GetSiteInfo(),
+            child_frame_node1->current_frame_host()
+                ->GetSiteInstance()
+                ->GetSiteInfo());
+
+  // Both non-isolated subdomains are in the same SiteInstance.
+  EXPECT_EQ(child_frame_node1->current_frame_host()->GetSiteInstance(),
+            child_frame_node2->current_frame_host()->GetSiteInstance());
+
+  // The base-origin and the children are in different processes.
+  EXPECT_NE(
+      root->current_frame_host()->GetSiteInstance()->GetProcess(),
+      child_frame_node1->current_frame_host()->GetSiteInstance()->GetProcess());
+
+  // Make sure the master opt-in list has the base origin isolated and the sub
+  // origins both not isolated.
+  EXPECT_TRUE(policy->HasOriginEverRequestedOptInIsolation(
+      url::Origin::Create(isolated_base_origin_url)));
+  EXPECT_FALSE(policy->HasOriginEverRequestedOptInIsolation(
+      url::Origin::Create(non_isolated_sub_origin_url_a)));
+  EXPECT_FALSE(policy->HasOriginEverRequestedOptInIsolation(
+      url::Origin::Create(non_isolated_sub_origin_url_b)));
 }
 
 // This test creates a scenario where we have a frame without a
diff --git a/content/browser/isolated_origin_util.cc b/content/browser/isolated_origin_util.cc
index 48dd0d1..9517922 100644
--- a/content/browser/isolated_origin_util.cc
+++ b/content/browser/isolated_origin_util.cc
@@ -140,12 +140,4 @@
   return true;
 }
 
-// static
-bool IsolatedOriginUtil::IsStrictSubdomain(const url::Origin& sub_origin,
-                                           const url::Origin& base_origin) {
-  return sub_origin.scheme() == base_origin.scheme() &&
-         sub_origin.port() == base_origin.port() && sub_origin != base_origin &&
-         sub_origin.DomainIs(base_origin.host());
-}
-
 }  // namespace content
diff --git a/content/browser/isolated_origin_util.h b/content/browser/isolated_origin_util.h
index a00a913a..9486db2 100644
--- a/content/browser/isolated_origin_util.h
+++ b/content/browser/isolated_origin_util.h
@@ -95,11 +95,6 @@
   // and origins without a valid registry-controlled domain.  IP addresses are
   // allowed.
   static bool IsValidIsolatedOrigin(const url::Origin& origin);
-
-  // Returns |true| if the two arguments have the same scheme and port, and
-  // |sub_origin|'s host is a strict subdomain of |base_origin|'s.
-  static bool IsStrictSubdomain(const url::Origin& sub_origin,
-                                const url::Origin& base_origin);
 };
 
 }  // namespace content
diff --git a/content/browser/media/media_web_contents_observer.cc b/content/browser/media/media_web_contents_observer.cc
index 6f48b57..5da81af0 100644
--- a/content/browser/media/media_web_contents_observer.cc
+++ b/content/browser/media/media_web_contents_observer.cc
@@ -43,6 +43,21 @@
 }
 #endif  // defined(OS_ANDROID)
 
+static void OnAudioOutputDeviceIdTranslated(
+    base::WeakPtr<MediaWebContentsObserver> observer,
+    RenderFrameHost* render_frame_host,
+    int delegate_id,
+    const base::Optional<std::string>& raw_device_id) {
+  if (!raw_device_id)
+    return;
+
+  content::GetUIThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(&MediaWebContentsObserver::OnReceivedTranslatedDeviceId,
+                     std::move(observer), render_frame_host, delegate_id,
+                     raw_device_id.value()));
+}
+
 }  // anonymous namespace
 
 // Maintains state for a single player.  Issues WebContents and power-related
@@ -402,7 +417,7 @@
       },
       salt_and_origin.device_id_salt, std::move(salt_and_origin.origin),
       hashed_device_id,
-      base::BindOnce(&MediaWebContentsObserver::OnAudioOutputDeviceIdTranslated,
+      base::BindOnce(&OnAudioOutputDeviceIdTranslated,
                      weak_ptr_factory_.GetWeakPtr(), render_frame_host,
                      delegate_id));
 
@@ -410,25 +425,12 @@
       FROM_HERE, std::move(callback_on_io_thread));
 }
 
-void MediaWebContentsObserver::OnAudioOutputDeviceIdTranslated(
+void MediaWebContentsObserver::OnReceivedTranslatedDeviceId(
     RenderFrameHost* render_frame_host,
     int delegate_id,
-    const base::Optional<std::string>& raw_device_id) {
-  if (!raw_device_id.has_value())
-    return;
-
-  auto callback_on_ui_thread = base::BindOnce(
-      [](MediaSessionControllersManager* controllers_manager,
-         RenderFrameHost* render_frame_host, int delegate_id,
-         const std::string& raw_device_id) {
-        controllers_manager->OnAudioOutputSinkChanged(
-            MediaPlayerId(render_frame_host, delegate_id), raw_device_id);
-      },
-      session_controllers_manager(), render_frame_host, delegate_id,
-      raw_device_id.value());
-
-  content::GetUIThreadTaskRunner({})->PostTask(
-      FROM_HERE, std::move(callback_on_ui_thread));
+    const std::string& raw_device_id) {
+  session_controllers_manager_.OnAudioOutputSinkChanged(
+      MediaPlayerId(render_frame_host, delegate_id), raw_device_id);
 }
 
 void MediaWebContentsObserver::OnBufferUnderflow(
diff --git a/content/browser/media/media_web_contents_observer.h b/content/browser/media/media_web_contents_observer.h
index 99c3c46..41c6fbb9 100644
--- a/content/browser/media/media_web_contents_observer.h
+++ b/content/browser/media/media_web_contents_observer.h
@@ -99,6 +99,10 @@
     audible_metrics_ = audible_metrics;
   }
 
+  void OnReceivedTranslatedDeviceId(RenderFrameHost* render_frame_host,
+                                    int delegate_id,
+                                    const std::string& raw_device_id);
+
 #if defined(OS_ANDROID)
   // Called by the WebContents when a tab has been closed but may still be
   // available for "undo" -- indicates that all media players (even audio only
@@ -152,10 +156,6 @@
   void OnAudioOutputSinkChanged(RenderFrameHost* render_frame_host,
                                 int delegate_id,
                                 std::string hashed_device_id);
-  void OnAudioOutputDeviceIdTranslated(
-      RenderFrameHost* render_frame_host,
-      int delegate_id,
-      const base::Optional<std::string>& raw_device_id);
   void OnBufferUnderflow(RenderFrameHost* render_frame_host, int delegate_id);
 
   device::mojom::WakeLock* GetAudioWakeLock();
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 0b05c89..3a908956 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -70,7 +70,7 @@
 #if defined(OS_MAC)
 #include "ui/accelerated_widget_mac/window_resize_helper_mac.h"
 #endif
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "base/linux_util.h"
 #include "base/threading/platform_thread.h"
 #endif
@@ -117,7 +117,7 @@
   std::move(callback).Run(render_widget_helper_->GetNextRoutingID());
 }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 void RenderMessageFilter::SetThreadPriorityOnFileThread(
     base::PlatformThreadId ns_tid,
     base::ThreadPriority priority) {
@@ -138,7 +138,7 @@
 }
 #endif
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 void RenderMessageFilter::SetThreadPriority(int32_t ns_tid,
                                             base::ThreadPriority priority) {
   constexpr base::TaskTraits kTraits = {
diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h
index 7475c7c..0528188 100644
--- a/content/browser/renderer_host/render_message_filter.h
+++ b/content/browser/renderer_host/render_message_filter.h
@@ -79,14 +79,14 @@
   // mojom::RenderMessageFilter:
   void GenerateRoutingID(GenerateRoutingIDCallback routing_id) override;
   void HasGpuProcess(HasGpuProcessCallback callback) override;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   void SetThreadPriority(int32_t ns_tid,
                          base::ThreadPriority priority) override;
 #endif
 
   void OnResolveProxy(const GURL& url, IPC::Message* reply_msg);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   void SetThreadPriorityOnFileThread(base::PlatformThreadId ns_tid,
                                      base::ThreadPriority priority);
 #endif
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index cf41625..f3aab35 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -239,7 +239,7 @@
 #include "content/browser/gpu/gpu_data_manager_impl.h"
 #endif
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include <sys/resource.h>
 #include <sys/time.h>
 
@@ -1230,7 +1230,7 @@
 // to indicate failure and std::numeric_limits<size_t>::max() to indicate
 // unlimited.
 size_t GetPlatformProcessLimit() {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   struct rlimit limit;
   if (getrlimit(RLIMIT_NPROC, &limit) != 0)
     return kUnknownPlatformProcessLimit;
@@ -1241,7 +1241,7 @@
 #else
   // TODO(https://crbug.com/104689): Implement on other platforms.
   return kUnknownPlatformProcessLimit;
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 }
 #endif  // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
 
@@ -1335,7 +1335,7 @@
         return;
     }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     if (auto font_receiver = receiver.As<font_service::mojom::FontService>()) {
       ConnectToFontService(std::move(font_receiver));
       return;
@@ -1769,7 +1769,7 @@
   renderer_prefix =
       browser_command_line.GetSwitchValueNative(switches::kRendererCmdPrefix);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   int flags = renderer_prefix.empty() ? ChildProcessHost::CHILD_ALLOW_SELF
                                       : ChildProcessHost::CHILD_NORMAL;
 #elif defined(OS_MAC)
@@ -3697,7 +3697,7 @@
     for (auto& observer : observers_)
       observer.RenderProcessReady(this);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     // Provide /proc/{renderer pid}/status and statm files for
     // MemoryUsageMonitor in blink.
     ProvideStatusFileForRenderer();
@@ -4140,7 +4140,7 @@
 
       // If the destination requires a different process lock, this process
       // cannot be used.
-      if (process_lock.lock_url() != site_info.process_lock_url())
+      if (process_lock != ProcessLock(site_info))
         return false;
     } else {
       if (!host->IsUnused() &&
@@ -4993,7 +4993,7 @@
     for (auto& observer : observers_)
       observer.RenderProcessReady(this);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     // Provide /proc/{renderer pid}/status and statm files for
     // MemoryUsageMonitor in blink.
     ProvideStatusFileForRenderer();
@@ -5163,7 +5163,7 @@
   GetBindHostReceiverInterceptor() = std::move(callback);
 }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 void RenderProcessHostImpl::ProvideStatusFileForRenderer() {
   // We use ScopedAllowBlocking, because opening /proc/{pid}/status and
   // /proc/{pid}/statm is not blocking call.
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 4d9e7ef..e372136 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -959,12 +959,12 @@
   // if the request isn't handled on the IO thread.
   void OnBindHostReceiver(mojo::GenericPendingReceiver receiver);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // Provides /proc/{renderer pid}/status and statm files for the renderer,
   // because the files are required to calculate the renderer's private
   // footprint on Chromium Linux. Regarding MacOS X and Windows, we have
   // the different way to calculate renderer's private memory footprint.
-  // So this method is implemented only when OS_LINUX is defined.
+  // So this method is implemented only when OS_LINUX or OS_CHROMEOS is defined.
   void ProvideStatusFileForRenderer();
 #endif
 
diff --git a/content/browser/renderer_host/render_view_host_browsertest.cc b/content/browser/renderer_host/render_view_host_browsertest.cc
index 178e4af..0753efdd 100644
--- a/content/browser/renderer_host/render_view_host_browsertest.cc
+++ b/content/browser/renderer_host/render_view_host_browsertest.cc
@@ -112,7 +112,7 @@
 }
 
 // Flaky on Linux (https://crbug.com/559192).
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_ReleaseSessionOnCloseACK DISABLED_ReleaseSessionOnCloseACK
 #else
 #define MAYBE_ReleaseSessionOnCloseACK ReleaseSessionOnCloseACK
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 79d364a..4f91411 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -228,7 +228,7 @@
       display::win::ScreenWin::GetSystemMetricsInDIP(SM_CYVSCROLL);
   prefs->arrow_bitmap_width_horizontal_scroll_bar_in_dips =
       display::win::ScreenWin::GetSystemMetricsInDIP(SM_CXHSCROLL);
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
   prefs->system_font_family_name = gfx::Font().GetFontName();
 #elif defined(OS_FUCHSIA)
   // Make Blink's "focus ring" invisible. The focus ring is a hairline border
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index 653245a7..92259c77 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -3849,7 +3849,8 @@
 // Tests that a fling in the opposite direction of the overscroll cancels the
 // overscroll instead of completing it.
 // Flaky on Fuchsia:  http://crbug.com/810690.
-#if defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_FUCHSIA) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_WIN)
 #define MAYBE_ReverseFlingCancelsOverscroll \
   DISABLED_ReverseFlingCancelsOverscroll
 #else
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index f8bdc99c..44586cc 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -714,7 +714,7 @@
   if (event->type() == ui::ET_MOUSE_EXITED) {
     if (mouse_locked || selection_popup)
       return false;
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
     // Don't forward the mouse leave message which is received when the context
     // menu is displayed by the page. This confuses the page and causes state
     // changes.
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index b167aaf4..39c47fd3 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -60,16 +60,22 @@
 // static
 SiteInfo SiteInfo::CreateForErrorPage() {
   return SiteInfo(GURL(content::kUnreachableWebDataURL),
-                  GURL(content::kUnreachableWebDataURL));
+                  GURL(content::kUnreachableWebDataURL),
+                  false /* is_origin_keyed */);
 }
 
-SiteInfo::SiteInfo(const GURL& site_url, const GURL& process_lock_url)
-    : site_url_(site_url), process_lock_url_(process_lock_url) {}
+SiteInfo::SiteInfo(const GURL& site_url,
+                   const GURL& process_lock_url,
+                   bool is_origin_keyed)
+    : site_url_(site_url),
+      process_lock_url_(process_lock_url),
+      is_origin_keyed_(is_origin_keyed) {}
 
 // static
 auto SiteInfo::MakeTie(const SiteInfo& site_info) {
   return std::tie(site_info.site_url_.possibly_invalid_spec(),
-                  site_info.process_lock_url_.possibly_invalid_spec());
+                  site_info.process_lock_url_.possibly_invalid_spec(),
+                  site_info.is_origin_keyed_);
 }
 
 bool SiteInfo::operator==(const SiteInfo& other) const {
@@ -85,6 +91,8 @@
 }
 
 std::string SiteInfo::GetDebugString() const {
+  // TODO(wjmaclean): At some point we should consider adding output about
+  // origin- vs. site-keying.
   return site_url_.possibly_invalid_spec();
 }
 
@@ -197,7 +205,8 @@
   // Setting site and lock directly without the site URL conversions we
   // do for user provided URLs. Callers expect GetSiteURL() to return the
   // value they provide in |guest_site_url|.
-  site_instance->SetSiteInfoInternal(SiteInfo(guest_site_url, guest_site_url));
+  site_instance->SetSiteInfoInternal(
+      SiteInfo(guest_site_url, guest_site_url, false /* is_origin_keyed */));
 
   return site_instance;
 }
@@ -434,18 +443,13 @@
   has_site_ = true;
   site_info_ = site_info;
 
-  // Check if |site_info| corresponds to an opt-in isolated origin, and if so,
-  // track this origin in the current BrowsingInstance.  This is needed to
-  // consistently isolate future navigations to this origin in this
-  // BrowsingInstance, even if its opt-in status changes later.
-  ChildProcessSecurityPolicyImpl* policy =
-      ChildProcessSecurityPolicyImpl::GetInstance();
-  url::Origin site_origin(url::Origin::Create(site_info_.site_url()));
-  // At this point, this should be a simple lookup on the master list, since
-  // this SiteInstance is new to the BrowsingInstance.
-  bool isolated = policy->ShouldOriginGetOptInIsolation(
-      browsing_instance_->isolation_context(), site_origin);
-  if (isolated) {
+  if (site_info_.is_origin_keyed()) {
+    // Track this origin's isolation in the current BrowsingInstance.  This is
+    // needed to consistently isolate future navigations to this origin in this
+    // BrowsingInstance, even if its opt-in status changes later.
+    ChildProcessSecurityPolicyImpl* policy =
+        ChildProcessSecurityPolicyImpl::GetInstance();
+    url::Origin site_origin(url::Origin::Create(site_info_.site_url()));
     policy->AddOptInIsolatedOriginForBrowsingInstance(
         browsing_instance_->isolation_context(), site_origin);
   }
@@ -868,13 +872,36 @@
   // The call to GetSiteForURL() below is only allowed on the UI thread, due to
   // its possible use of effective urls.
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  // This function will expand as more information, such as site-/origin-keying,
-  // are included in SiteInfo.
+  // This function will expand as more information is included in SiteInfo.
+  bool is_origin_keyed = ChildProcessSecurityPolicyImpl::GetInstance()
+                             ->ShouldOriginGetOptInIsolation(
+                                 isolation_context, url::Origin::Create(url));
+
   return SiteInfo(GetSiteForURL(isolation_context, url),
-                  DetermineProcessLockURL(isolation_context, url));
+                  DetermineProcessLockURL(isolation_context, url),
+                  is_origin_keyed);
 }
 
 // static
+ProcessLock SiteInstanceImpl::DetermineProcessLock(
+    const IsolationContext& isolation_context,
+    const GURL& url) {
+  if (BrowserThread::CurrentlyOn(BrowserThread::UI))
+    return ProcessLock(ComputeSiteInfo(isolation_context, url));
+
+  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  GURL lock_url = DetermineProcessLockURL(isolation_context, url);
+  bool is_origin_keyed = ChildProcessSecurityPolicyImpl::GetInstance()
+                             ->ShouldOriginGetOptInIsolation(
+                                 isolation_context, url::Origin::Create(url));
+  // In the SiteInfo constructor below we pass the lock url as the site URL
+  // also, assuming the IO-thread caller won't be looking at the site url.
+  return ProcessLock(SiteInfo(lock_url, lock_url, is_origin_keyed));
+}
+
+// static
+// TODO(wjmaclean): remove this if the sole call from the IO thread can be
+// removed.
 GURL SiteInstanceImpl::DetermineProcessLockURL(
     const IsolationContext& isolation_context,
     const GURL& url) {
@@ -941,21 +968,8 @@
     auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
     url::Origin isolated_origin;
     if (policy->GetMatchingIsolatedOrigin(isolation_context, origin, site_url,
-                                          &isolated_origin))
+                                          &isolated_origin)) {
       return isolated_origin.GetURL();
-
-    // The following check will determine if we have a sub-origin that does
-    // not request isolation, but the base-origin does. In that case, we need
-    // to place the sub-origin into a different SiteInstance, effectively
-    // isolating it as well.
-    // TODO(wjmaclean): Remove this when we implement site-keyed and
-    // origin-keyed SiteInstances, since the call to GetMatchingIsolatedOrigin
-    // above should correctly cause non-isolated sub origins to go to the
-    // site-keyed SiteInstance, regardless of what the base origin does.
-    url::Origin base_origin = url::Origin::Create(site_url);
-    if (IsolatedOriginUtil::IsStrictSubdomain(origin, base_origin) &&
-        policy->ShouldOriginGetOptInIsolation(isolation_context, base_origin)) {
-      return origin.GetURL();
     }
 
     // If an effective URL was used, augment the effective site URL with the
@@ -1016,6 +1030,8 @@
     }
   }
 
+  // We should never get here if we're origin_keyed, otherwise we would have
+  // returned after the GetMatchingIsolatedOrigin() call above.
   if (allow_default_site_url &&
       CanBePlacedInDefaultSiteInstance(isolation_context, real_url, site_url)) {
     return GetDefaultSiteURL();
diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h
index 9fffa8c..fe917d2b 100644
--- a/content/browser/site_instance_impl.h
+++ b/content/browser/site_instance_impl.h
@@ -52,7 +52,13 @@
  public:
   static SiteInfo CreateForErrorPage();
 
-  SiteInfo(const GURL& site_url, const GURL& process_lock_url);
+  // The SiteInfo constructor should take in all values needed for comparing two
+  // SiteInfos, to help ensure all creation sites are updated accordingly when
+  // new values are added. The private function MakeTie() should be updated
+  // accordingly.
+  SiteInfo(const GURL& site_url,
+           const GURL& process_lock_url,
+           bool is_origin_keyed);
   SiteInfo() = default;
 
   // Returns the site URL associated with all of the documents and workers in
@@ -88,6 +94,17 @@
   //                if the SiteInstance's process isn't going to be locked.
   const GURL& process_lock_url() const { return process_lock_url_; }
 
+  // Returns whether this SiteInfo is specific to an origin rather than a site,
+  // such as due to opt-in origin isolation. This resolves an ambiguity of
+  // whether a process with a lock_url() like "https://foo.example" is allowed
+  // to include "https://sub.foo.example" or not. In opt-in isolation, it is
+  // possible for example.com to be isolated, and sub.example.com not be
+  // isolated. In contrast, if command-line isolation is used to isolate
+  // example.com, then sub.example.com is also (automatically) isolated.
+  // Also note that opt-in isolated origins will include ports (if non-default)
+  // in their site urls.
+  bool is_origin_keyed() const { return is_origin_keyed_; }
+
   // Returns false if the site_url() is empty.
   bool is_empty() const { return site_url().possibly_invalid_spec().empty(); }
 
@@ -109,10 +126,15 @@
   // involving effective URLs, such as hosted apps.  In those cases, this URL is
   // a site URL that is computed without the use of effective URLs.
   GURL process_lock_url_;
-  // TODO(crbug.com/1067389): Add site vs origin granularity.
+  // Indicates whether this SiteInfo is specific to a single origin, rather than
+  // including all subdomains of that origin. Only used for opt-in origin
+  // isolation. In contrast, the site-level URLs that are typically used in
+  // SiteInfo include subdomains, as do command-line isolated origins.
+  bool is_origin_keyed_ = false;
 };
 
-std::ostream& operator<<(std::ostream& out, const SiteInfo& site_info);
+CONTENT_EXPORT std::ostream& operator<<(std::ostream& out,
+                                        const SiteInfo& site_info);
 
 class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance,
                                               public RenderProcessHostObserver {
@@ -283,7 +305,8 @@
   std::string GetPartitionDomain(StoragePartitionImpl* storage_partition);
 
   // This function returns a SiteInfo with the appropriate site_url and
-  // process_lock_url computed.
+  // process_lock_url computed. This function can only be called on the UI
+  // thread since it expects an effective URL.
   // Note: eventually this function will replace GetSiteForURL().
   static SiteInfo ComputeSiteInfo(const IsolationContext& isolation_context,
                                   const GURL& url);
@@ -304,11 +327,12 @@
   // GetSiteForURL() should be used instead.
   static GURL GetSiteForOrigin(const url::Origin& origin);
 
-  // Returns the URL to which a process should be locked for the given URL.
-  // This is computed similarly to the site URL (see GetSiteForURL), but
-  // without resolving effective URLs.
-  static GURL DetermineProcessLockURL(const IsolationContext& isolation_context,
-                                      const GURL& url);
+  // Similar to above, but also computes a full SiteInfo (including a
+  // process_lock_url) and returns a ProcessLock. If called from the IO thread,
+  // this will return a ProcessLock that doesn't consider effective URLs.
+  static ProcessLock DetermineProcessLock(
+      const IsolationContext& isolation_context,
+      const GURL& url);
 
   // Set the web site that this SiteInstance is rendering pages for.
   // This includes the scheme and registered domain, but not the port.  If the
@@ -472,6 +496,12 @@
   // Used to restrict a process' origin access rights.
   void LockProcessIfNeeded();
 
+  // Returns the URL to which a process should be locked for the given URL.
+  // This is computed similarly to the site URL (see GetSiteForURL), but
+  // without resolving effective URLs.
+  static GURL DetermineProcessLockURL(const IsolationContext& isolation_context,
+                                      const GURL& url);
+
   // If kProcessSharingWithStrictSiteInstances is enabled, this will check
   // whether both a site and a process have been assigned to this SiteInstance,
   // and if this doesn't require a dedicated process, will offer process_ to
@@ -521,7 +551,7 @@
   // where the caller only has |url| it can use
   // SiteInstanceImpl::GetSiteForURL() to generate |site_url|. This call is
   // intentionally not set as a default value to encourage the caller to reuse
-  // a site URL computation if they already have one.
+  // a site url computation if they already have one.
   static bool CanBePlacedInDefaultSiteInstance(
       const IsolationContext& isolation_context,
       const GURL& url,
diff --git a/content/browser/site_instance_impl_unittest.cc b/content/browser/site_instance_impl_unittest.cc
index bece12fd..c703c28e 100644
--- a/content/browser/site_instance_impl_unittest.cc
+++ b/content/browser/site_instance_impl_unittest.cc
@@ -188,16 +188,27 @@
 };
 
 // Tests that SiteInfo works correct as a key for std::map and std::set.
+// Test SiteInfos with identical site URLs but various lock URLs, including
+// variations of each that are origin keyed ("ok").
 TEST_F(SiteInstanceTest, SiteInfoAsContainerKey) {
-  std::map<SiteInfo, int> test_map;
-  std::set<SiteInfo> test_set;
-
-  SiteInfo site_info_1(GURL("https://www.foo.com"), GURL("https://foo.com"));
-  SiteInfo site_info_2(GURL("https://www.foo.com"),
-                       GURL("https://www.foo.com"));
-  SiteInfo site_info_3(GURL("https://www.foo.com"),
-                       GURL("https://sub.foo.com"));
-  SiteInfo site_info_4(GURL("https://www.foo.com"), GURL());
+  SiteInfo site_info_1(GURL("https://www.foo.com"), GURL("https://foo.com"),
+                       false /* is_origin_keyed */);
+  SiteInfo site_info_1ok(GURL("https://www.foo.com"), GURL("https://foo.com"),
+                         true /* is_origin_keyed */);
+  SiteInfo site_info_2(GURL("https://www.foo.com"), GURL("https://www.foo.com"),
+                       false /* is_origin_keyed */);
+  SiteInfo site_info_2ok(GURL("https://www.foo.com"),
+                         GURL("https://www.foo.com"),
+                         true /* is_origin_keyed */);
+  SiteInfo site_info_3(GURL("https://www.foo.com"), GURL("https://sub.foo.com"),
+                       false /* is_origin_keyed */);
+  SiteInfo site_info_3ok(GURL("https://www.foo.com"),
+                         GURL("https://sub.foo.com"),
+                         true /* is_origin_keyed */);
+  SiteInfo site_info_4(GURL("https://www.foo.com"), GURL(),
+                       false /* is_origin_keyed */);
+  SiteInfo site_info_4ok(GURL("https://www.foo.com"), GURL(),
+                         true /* is_origin_keyed */);
 
   // Test SiteInfoOperators.
   // Use EXPECT_TRUE and == below to avoid need to define SiteInfo::operator<<.
@@ -216,50 +227,119 @@
   EXPECT_TRUE(site_info_3 < site_info_2);  // 's' before 'w'/
   EXPECT_TRUE(site_info_4 < site_info_1);  // Empty string first.
 
-  // Map tests.
-  test_map[site_info_1] = 1;
-  test_map[site_info_2] = 2;
-  test_map[site_info_4] = 4;
+  {
+    std::map<SiteInfo, int> test_map;
+    // Map tests: different lock URLs.
+    test_map[site_info_1] = 1;
+    test_map[site_info_2] = 2;
+    test_map[site_info_4] = 4;
 
-  // Make sure std::map treated the different SiteInfo's as distinct.
-  EXPECT_EQ(3u, test_map.size());
+    // Make sure std::map treated the different SiteInfo's as distinct.
+    EXPECT_EQ(3u, test_map.size());
 
-  // Test that std::map::find() looks up the correct key.
-  auto it1 = test_map.find(site_info_1);
-  EXPECT_NE(it1, test_map.end());
-  EXPECT_EQ(1, it1->second);
+    // Test that std::map::find() looks up the correct key.
+    auto it1 = test_map.find(site_info_1);
+    EXPECT_NE(it1, test_map.end());
+    EXPECT_EQ(1, it1->second);
 
-  auto it2 = test_map.find(site_info_2);
-  EXPECT_NE(it2, test_map.end());
-  EXPECT_EQ(2, it2->second);
+    auto it2 = test_map.find(site_info_2);
+    EXPECT_NE(it2, test_map.end());
+    EXPECT_EQ(2, it2->second);
 
-  EXPECT_EQ(test_map.end(), test_map.find(site_info_3));
+    EXPECT_EQ(test_map.end(), test_map.find(site_info_3));
 
-  auto it4 = test_map.find(site_info_4);
-  EXPECT_NE(it4, test_map.end());
-  EXPECT_EQ(4, it4->second);
+    auto it4 = test_map.find(site_info_4);
+    EXPECT_NE(it4, test_map.end());
+    EXPECT_EQ(4, it4->second);
+  }
 
-  // Set tests.
-  test_set.insert(site_info_1);
-  test_set.insert(site_info_2);
-  test_set.insert(site_info_4);
+  {
+    std::map<SiteInfo, int> test_map;
+    // Map tests: different lock URLs and origin keys.
 
-  EXPECT_EQ(3u, test_set.size());
+    test_map[site_info_1] = 1;
+    test_map[site_info_2] = 2;
+    test_map[site_info_4] = 4;
+    test_map[site_info_1ok] = 11;
+    test_map[site_info_2ok] = 12;
+    test_map[site_info_4ok] = 14;
 
-  auto itS1 = test_set.find(site_info_1);
-  auto itS2 = test_set.find(site_info_2);
-  auto itS3 = test_set.find(site_info_3);
-  auto itS4 = test_set.find(site_info_4);
+    // Make sure std::map treated the different SiteInfo's as distinct.
+    EXPECT_EQ(6u, test_map.size());
 
-  EXPECT_NE(test_set.end(), itS1);
-  EXPECT_NE(test_set.end(), itS2);
-  EXPECT_EQ(test_set.end(), itS3);
-  EXPECT_NE(test_set.end(), itS4);
+    // Test that std::map::find() looks up the correct key with is_origin_keyed
+    // == true.
+    auto it1 = test_map.find(site_info_1ok);
+    EXPECT_NE(it1, test_map.end());
+    EXPECT_EQ(11, it1->second);
 
-  // Use EXPECT_TRUE and == below to avoid need to define SiteInfo::operator<<.
-  EXPECT_TRUE(site_info_1 == *itS1);
-  EXPECT_TRUE(site_info_2 == *itS2);
-  EXPECT_TRUE(site_info_4 == *itS4);
+    auto it2 = test_map.find(site_info_2ok);
+    EXPECT_NE(it2, test_map.end());
+    EXPECT_EQ(12, it2->second);
+
+    EXPECT_EQ(test_map.end(), test_map.find(site_info_3));
+    EXPECT_EQ(test_map.end(), test_map.find(site_info_3ok));
+
+    auto it4 = test_map.find(site_info_4ok);
+    EXPECT_NE(it4, test_map.end());
+    EXPECT_EQ(14, it4->second);
+  }
+
+  {
+    std::set<SiteInfo> test_set;
+
+    // Set tests.
+    test_set.insert(site_info_1);
+    test_set.insert(site_info_2);
+    test_set.insert(site_info_4);
+
+    EXPECT_EQ(3u, test_set.size());
+
+    auto itS1 = test_set.find(site_info_1);
+    auto itS2 = test_set.find(site_info_2);
+    auto itS3 = test_set.find(site_info_3);
+    auto itS4 = test_set.find(site_info_4);
+
+    EXPECT_NE(test_set.end(), itS1);
+    EXPECT_NE(test_set.end(), itS2);
+    EXPECT_EQ(test_set.end(), itS3);
+    EXPECT_NE(test_set.end(), itS4);
+
+    // Use EXPECT_TRUE and == below to avoid need to define
+    // SiteInfo::operator<<.
+    EXPECT_TRUE(site_info_1 == *itS1);
+    EXPECT_TRUE(site_info_2 == *itS2);
+    EXPECT_TRUE(site_info_4 == *itS4);
+  }
+  {
+    std::set<SiteInfo> test_set;
+
+    // Set tests, testing is_origin_keyed.
+    test_set.insert(site_info_1);
+    test_set.insert(site_info_2);
+    test_set.insert(site_info_4);
+    test_set.insert(site_info_1ok);
+    test_set.insert(site_info_2ok);
+    test_set.insert(site_info_4ok);
+
+    EXPECT_EQ(6u, test_set.size());
+
+    auto itS1 = test_set.find(site_info_1ok);
+    auto itS2 = test_set.find(site_info_2ok);
+    auto itS3 = test_set.find(site_info_3ok);
+    auto itS4 = test_set.find(site_info_4ok);
+
+    EXPECT_NE(test_set.end(), itS1);
+    EXPECT_NE(test_set.end(), itS2);
+    EXPECT_EQ(test_set.end(), itS3);
+    EXPECT_NE(test_set.end(), itS4);
+
+    // Use EXPECT_TRUE and == below to avoid need to define
+    // SiteInfo::operator<<.
+    EXPECT_TRUE(site_info_1ok == *itS1);
+    EXPECT_TRUE(site_info_2ok == *itS2);
+    EXPECT_TRUE(site_info_4ok == *itS4);
+  }
 }
 
 // Test to ensure no memory leaks for SiteInstance objects.
@@ -1420,7 +1500,8 @@
 namespace {
 
 ProcessLock ProcessLockFromString(const std::string& url) {
-  return ProcessLock(SiteInfo(GURL(url), GURL(url)));
+  return ProcessLock(
+      SiteInfo(GURL(url), GURL(url), false /* is_origin_keyed */));
 }
 
 }  // namespace
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 384831e..c8f4300 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -14753,11 +14753,11 @@
   int process_id = root->current_frame_host()->GetProcess()->GetID();
   IsolationContext isolation_context(controller.GetBrowserContext());
   auto start_url_lock =
-      SiteInstanceImpl::DetermineProcessLockURL(isolation_context, start_url);
+      SiteInstanceImpl::DetermineProcessLock(isolation_context, start_url);
   auto another_url_lock =
-      SiteInstanceImpl::DetermineProcessLockURL(isolation_context, another_url);
-  EXPECT_EQ(start_url_lock, policy->GetProcessLock(process_id).lock_url());
-  EXPECT_NE(another_url_lock, policy->GetProcessLock(process_id).lock_url());
+      SiteInstanceImpl::DetermineProcessLock(isolation_context, another_url);
+  EXPECT_EQ(start_url_lock, policy->GetProcessLock(process_id));
+  EXPECT_NE(another_url_lock, policy->GetProcessLock(process_id));
 
   // Transfer the NavigationRequest ownership to the RenderFrameHost. The test
   // for NavigationRequest match happens before the check of origin lock and
diff --git a/content/browser/tracing/memory_tracing_browsertest.cc b/content/browser/tracing/memory_tracing_browsertest.cc
index 1e8bdc8..a31fe5a 100644
--- a/content/browser/tracing/memory_tracing_browsertest.cc
+++ b/content/browser/tracing/memory_tracing_browsertest.cc
@@ -350,7 +350,7 @@
   Navigate(shell());
 
   EXPECT_CALL(*mock_dump_provider_, OnMemoryDump(_,_)).WillOnce(Return(true));
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // TODO(ssid): Test for dump success once the on start tracing done callback
   // is fixed to be called after enable tracing is acked by all processes,
   // crbug.com/709524. The test still tests if dumping does not crash.
diff --git a/content/browser/tracing/startup_tracing_browsertest.cc b/content/browser/tracing/startup_tracing_browsertest.cc
index 61eb1c0..cd0029c 100644
--- a/content/browser/tracing/startup_tracing_browsertest.cc
+++ b/content/browser/tracing/startup_tracing_browsertest.cc
@@ -63,8 +63,8 @@
 
 // Failing on Android/Win ASAN, Linux TSAN. crbug.com/1041392
 #if (defined(OS_ANDROID) && defined(ADDRESS_SANITIZER)) || \
-    (defined(OS_WIN) && defined(ADDRESS_SANITIZER)) || \
-    (defined(OS_LINUX) && defined(THREAD_SANITIZER))
+    (defined(OS_WIN) && defined(ADDRESS_SANITIZER)) ||     \
+    ((defined(OS_LINUX) || defined(OS_CHROMEOS)) && defined(THREAD_SANITIZER))
 #define MAYBE_TestStartupTracing DISABLED_TestStartupTracing
 #else
 #define MAYBE_TestStartupTracing TestStartupTracing
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index 50860e46..a9d0906 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -1210,7 +1210,7 @@
     // Linux window managers like to handle raise-on-click themselves.  If we
     // raise-on-click manually, this may override user settings that prevent
     // focus-stealing.
-#if !defined(OS_LINUX)
+#if !defined(OS_LINUX) && !defined(OS_CHROMEOS)
     // It is possible for the web-contents to be destroyed while it is being
     // activated. Use a weak-ptr to track whether that happened or not.
     // More in https://crbug.com/1040725
diff --git a/content/browser/web_contents/web_contents_view_aura_browsertest.cc b/content/browser/web_contents/web_contents_view_aura_browsertest.cc
index 38dd74f..ed53a7f 100644
--- a/content/browser/web_contents/web_contents_view_aura_browsertest.cc
+++ b/content/browser/web_contents/web_contents_view_aura_browsertest.cc
@@ -309,7 +309,7 @@
 
 // Flaky on Windows: http://crbug.com/305722
 // The test frequently times out on Linux, too. See crbug.com/440043.
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_OverscrollNavigation DISABLED_OverscrollNavigation
 #else
 #define MAYBE_OverscrollNavigation OverscrollNavigation
@@ -322,7 +322,7 @@
 // Flaky on Windows (might be related to the above test):
 // http://crbug.com/305722
 // On Linux, the test frequently times out. (See crbug.com/440043).
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 #define MAYBE_OverscrollNavigationWithTouchHandler \
   DISABLED_OverscrollNavigationWithTouchHandler
 #else
@@ -758,8 +758,7 @@
   delete web_contents->GetContentNativeView();
 }
 
-
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 // This appears to be flaky in the same was as the other overscroll
 // tests. Enabling for non-Windows platforms.
 // See http://crbug.com/369871.
diff --git a/content/browser/web_contents/web_contents_view_aura_unittest.cc b/content/browser/web_contents/web_contents_view_aura_unittest.cc
index 73d9cbd..e505d60 100644
--- a/content/browser/web_contents/web_contents_view_aura_unittest.cc
+++ b/content/browser/web_contents/web_contents_view_aura_unittest.cc
@@ -186,7 +186,7 @@
                              0);
   ui::EventHandler* event_handler = GetView();
   event_handler->OnMouseEvent(&mouse_event);
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // The web-content is not activated during mouse-press on Linux.
   // See comment in WebContentsViewAura::OnMouseEvent() for more details.
   EXPECT_NE(web_contents(), nullptr);
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeActivityTestRule.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeActivityTestRule.java
index 850efea0..f0d153f 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeActivityTestRule.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeActivityTestRule.java
@@ -11,6 +11,8 @@
 import org.chromium.base.Log;
 import org.chromium.base.test.SetUpStatement;
 import org.chromium.base.test.SetUpTestRule;
+import org.chromium.base.test.params.ParameterProvider;
+import org.chromium.base.test.params.ParameterSet;
 import org.chromium.base.test.util.UrlUtils;
 import org.chromium.content_public.browser.JavascriptInjector;
 import org.chromium.content_public.browser.LoadUrlParams;
@@ -20,14 +22,44 @@
 import org.chromium.content_shell_apk.ContentShellActivityTestRule;
 
 import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * ActivityTestRule with common functionality for testing the Java Bridge.
  */
 public class JavaBridgeActivityTestRule
         extends ContentShellActivityTestRule implements SetUpTestRule<JavaBridgeActivityTestRule> {
+    /**
+     * {@link ParameterProvider} used for parameterized test that provides the Mojo usage state.
+     */
+    public static class MojoTestParams implements ParameterProvider {
+        private static List<ParameterSet> sMojoTestParams =
+                Arrays.asList(new ParameterSet().value(false).name("MojoUnused"),
+                        new ParameterSet().value(true).name("MojoUsed"));
+
+        @Override
+        public List<ParameterSet> getParameters() {
+            return sMojoTestParams;
+        }
+    }
+
+    /**
+     * {@link ParameterProvider} used for parameterized test that keeps the legacy tests.
+     */
+    public static class LegacyTestParams implements ParameterProvider {
+        private static List<ParameterSet> sLegacyTestParams =
+                Arrays.asList(new ParameterSet().value(false));
+
+        @Override
+        public List<ParameterSet> getParameters() {
+            return sLegacyTestParams;
+        }
+    }
+
     private TestCallbackHelperContainer mTestCallbackHelperContainer;
     private boolean mSetup;
+    private boolean mUseMojo;
 
     public static class Controller {
         private static final int RESULT_WAIT_TIME = 5000;
@@ -116,7 +148,8 @@
                 @Override
                 public void run() {
                     WebContents webContents = getWebContents();
-                    JavascriptInjector injector = JavascriptInjector.fromWebContents(webContents);
+                    JavascriptInjector injector =
+                            JavascriptInjector.fromWebContents(webContents, mUseMojo);
                     injector.addPossiblyUnsafeInterface(object1, name1, requiredAnnotation);
                     if (object2 != null && name2 != null) {
                         injector.addPossiblyUnsafeInterface(object2, name2, requiredAnnotation);
@@ -130,6 +163,9 @@
                     "Failed to injectObjectsAndReload: " + Log.getStackTraceString(e));
         }
     }
+    public void setupMojoTest(boolean useMojo) {
+        mUseMojo = useMojo;
+    }
 
     public void synchronousPageReload() throws Throwable {
         TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayCoercionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayCoercionTest.java
index 01125bc0..f942e47 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayCoercionTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayCoercionTest.java
@@ -12,7 +12,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
 
@@ -27,7 +31,8 @@
  * FIXME: Consider making our implementation more compliant, if it will not
  * break backwards-compatibility. See b/4408210.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeArrayCoercionTest {
     private static final double ASSERTION_DELTA = 0;
 
@@ -158,6 +163,11 @@
     private static class CustomType {
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     private TestObject mTestObject;
 
     @Before
@@ -174,7 +184,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberInt32() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberInt32(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([0]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
         // LIVECONNECT_COMPLIANCE: Should convert to boolean.
@@ -220,7 +231,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberDouble() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberDouble(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should convert to boolean.
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([42.1]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
@@ -265,7 +277,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberNaN() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberNaN(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([Number.NaN]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
 
@@ -308,7 +321,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberInfinity() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberInfinity(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([Infinity]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
 
@@ -354,7 +368,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassBoolean() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassBoolean(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([true]);");
         Assert.assertTrue(mTestObject.waitForBooleanArray()[0]);
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([false]);");
@@ -420,7 +435,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassString() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassString(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Non-empty string should convert to true.
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([\"+042.10\"]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
@@ -470,7 +486,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassJavaScriptObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassJavaScriptObject(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setBooleanArray([{foo: 42}]);");
         Assert.assertFalse(mTestObject.waitForBooleanArray()[0]);
@@ -521,7 +538,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassJavaObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassJavaObject(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
         mActivityTestRule.executeJavaScript(
                 "testObject.setBooleanArray([testObject.getObjectInstance()]);");
@@ -586,7 +604,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNull() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNull(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteArray([null]);");
         Assert.assertEquals(0, mTestObject.waitForByteArray()[0]);
 
@@ -628,7 +647,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUndefined() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassUndefined(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteArray([undefined]);");
         Assert.assertEquals(0, mTestObject.waitForByteArray()[0]);
 
@@ -669,7 +689,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassInt8Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassInt8Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(1);");
         mActivityTestRule.executeJavaScript("int8_array = new Int8Array(buffer);");
         mActivityTestRule.executeJavaScript("int8_array[0] = 42;");
@@ -712,7 +733,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUint8Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassUint8Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(1);");
         mActivityTestRule.executeJavaScript("uint8_array = new Uint8Array(buffer);");
         mActivityTestRule.executeJavaScript("uint8_array[0] = 42;");
@@ -755,7 +777,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassInt16Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassInt16Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(2);");
         mActivityTestRule.executeJavaScript("int16_array = new Int16Array(buffer);");
         mActivityTestRule.executeJavaScript("int16_array[0] = 42;");
@@ -798,7 +821,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUint16Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassUint16Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(2);");
         mActivityTestRule.executeJavaScript("uint16_array = new Uint16Array(buffer);");
         mActivityTestRule.executeJavaScript("uint16_array[0] = 42;");
@@ -841,7 +865,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassInt32Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassInt32Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);");
         mActivityTestRule.executeJavaScript("int32_array = new Int32Array(buffer);");
         mActivityTestRule.executeJavaScript("int32_array[0] = 42;");
@@ -884,7 +909,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUint32Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassUint32Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);");
         mActivityTestRule.executeJavaScript("uint32_array = new Uint32Array(buffer);");
         mActivityTestRule.executeJavaScript("uint32_array[0] = 42;");
@@ -927,7 +953,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassFloat32Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassFloat32Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(4);");
         mActivityTestRule.executeJavaScript("float32_array = new Float32Array(buffer);");
         mActivityTestRule.executeJavaScript("float32_array[0] = 42.0;");
@@ -970,7 +997,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassFloat64Array() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassFloat64Array(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(8);");
         mActivityTestRule.executeJavaScript("float64_array = new Float64Array(buffer);");
         mActivityTestRule.executeJavaScript("float64_array[0] = 42.0;");
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayTest.java
index 721d510..3c1b3476 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeArrayTest.java
@@ -12,7 +12,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
 
@@ -26,7 +30,8 @@
  * FIXME: Consider making our implementation more compliant, if it will not
  * break backwards-compatibility. See b/4408210.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeArrayTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
@@ -96,6 +101,11 @@
         }
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     private TestObject mTestObject;
 
     @Before
@@ -107,7 +117,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testArrayLength() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testArrayLength(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setIntArray([42, 43, 44]);");
         int[] result = mTestObject.waitForIntArray();
         Assert.assertEquals(3, result.length);
@@ -119,7 +130,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNull() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNull(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setIntArray(null);");
         Assert.assertNull(mTestObject.waitForIntArray());
     }
@@ -127,7 +139,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUndefined() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassUndefined(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setIntArray(undefined);");
         Assert.assertNull(mTestObject.waitForIntArray());
     }
@@ -135,7 +148,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassEmptyArray() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassEmptyArray(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setIntArray([]);");
         Assert.assertEquals(0, mTestObject.waitForIntArray().length);
     }
@@ -145,7 +159,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassArrayToStringMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassArrayToStringMethod(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should call toString() on array.
         mActivityTestRule.executeJavaScript("testObject.setStringValue([42, 42, 42]);");
         Assert.assertEquals("undefined", mTestObject.waitForStringValue());
@@ -156,7 +171,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassArrayToNonStringNonArrayMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassArrayToNonStringNonArrayMethod(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should raise JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setIntValue([42, 42, 42]);");
         Assert.assertEquals(0, mTestObject.waitForIntValue());
@@ -165,7 +181,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNonArrayToArrayMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNonArrayToArrayMethod(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should raise JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setIntArray(42);");
         Assert.assertNull(mTestObject.waitForIntArray());
@@ -174,7 +191,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testObjectWithLengthProperty() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testObjectWithLengthProperty(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setIntArray({length: 3, 1: 42});");
         int[] result = mTestObject.waitForIntArray();
         Assert.assertEquals(3, result.length);
@@ -186,7 +204,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testNonNumericLengthProperty() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testNonNumericLengthProperty(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: This should not count as an array, so we
         // should raise a JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setIntArray({length: \"foo\"});");
@@ -196,7 +215,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testLengthOutOfBounds() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testLengthOutOfBounds(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: This should not count as an array, so we
         // should raise a JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setIntArray({length: -1});");
@@ -218,7 +238,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testSparseArray() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testSparseArray(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript(
                 "var x = [42, 43]; x[3] = 45; testObject.setIntArray(x);");
         int[] result = mTestObject.waitForIntArray();
@@ -234,7 +255,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMethodReturningArrayNotCalled() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMethodReturningArrayNotCalled(boolean useMojo) throws Throwable {
         // We don't invoke methods which return arrays, but note that no
         // exception is raised.
         // LIVECONNECT_COMPLIANCE: Should call method and convert result to
@@ -248,7 +270,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMultiDimensionalArrayMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMultiDimensionalArrayMethod(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should handle multi-dimensional arrays.
         mActivityTestRule.executeJavaScript("testObject.setIntIntArray([ [42, 43], [44, 45] ]);");
         Assert.assertNull(mTestObject.waitForIntIntArray());
@@ -257,7 +280,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassMultiDimensionalArray() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassMultiDimensionalArray(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should handle multi-dimensional arrays.
         mActivityTestRule.executeJavaScript("testObject.setIntArray([ [42, 43], [44, 45] ]);");
         int[] result = mTestObject.waitForIntArray();
@@ -272,7 +296,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassArrayBuffer() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassArrayBuffer(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
         mActivityTestRule.executeJavaScript("testObject.setIntArray(buffer);");
         Assert.assertNull(mTestObject.waitForIntArray());
@@ -287,7 +312,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassDataView() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassDataView(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
         mActivityTestRule.executeJavaScript("testObject.setIntArray(new DataView(buffer));");
         Assert.assertNull(mTestObject.waitForIntArray());
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBareboneTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBareboneTest.java
index a28e11e6..8dd5be7 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBareboneTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBareboneTest.java
@@ -12,7 +12,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.UrlUtils;
 import org.chromium.content_public.browser.test.util.TestCallbackHelperContainer;
@@ -22,13 +26,21 @@
 /**
  * Common functionality for testing the Java Bridge.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeBareboneTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
             new JavaBridgeActivityTestRule().shouldSetUp(false);
 
     private TestCallbackHelperContainer mTestCallbackHelperContainer;
+    private boolean mUseMojo;
+
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mUseMojo = useMojo;
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
 
     @Before
     public void setUp() {
@@ -43,7 +55,7 @@
         mActivityTestRule.runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().addPossiblyUnsafeInterface(
+                mActivityTestRule.getJavascriptInjector(mUseMojo).addPossiblyUnsafeInterface(
                         new Object(), name, null);
             }
         });
@@ -83,7 +95,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testImmediateAddition() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testImmediateAddition(boolean useMojo) throws Throwable {
         injectDummyObject("testObject");
         Assert.assertEquals("\"object\"", evaluateJsSync("typeof testObject"));
     }
@@ -93,7 +106,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testNoImmediateAdditionAfterJSEvaluation() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testNoImmediateAdditionAfterJSEvaluation(boolean useMojo) throws Throwable {
         evaluateJsSync("true");
         injectDummyObject("testObject");
         Assert.assertEquals("\"undefined\"", evaluateJsSync("typeof testObject"));
@@ -102,7 +116,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testImmediateAdditionAfterReload() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testImmediateAdditionAfterReload(boolean useMojo) throws Throwable {
         reloadSync();
         injectDummyObject("testObject");
         Assert.assertEquals("\"object\"", evaluateJsSync("typeof testObject"));
@@ -111,7 +126,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReloadAfterAddition() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testReloadAfterAddition(boolean useMojo) throws Throwable {
         injectDummyObject("testObject");
         reloadSync();
         Assert.assertEquals("\"object\"", evaluateJsSync("typeof testObject"));
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
index 1916a1a..d62df02 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeBasicsTest.java
@@ -16,12 +16,16 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
 import org.chromium.content_public.browser.LoadUrlParams;
-import org.chromium.content_public.browser.test.ContentJUnit4ClassRunner;
+import org.chromium.content_public.browser.test.ContentJUnit4RunnerDelegate;
 import org.chromium.content_public.browser.test.util.TestCallbackHelperContainer;
 
 import java.lang.annotation.ElementType;
@@ -43,7 +47,8 @@
  * - Threading
  * - Inheritance
  */
-@RunWith(ContentJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(ContentJUnit4RunnerDelegate.class)
 public class JavaBridgeBasicsTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
@@ -100,6 +105,11 @@
         }
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     TestController mTestController;
 
     @Before
@@ -137,19 +147,21 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testTypeOfInjectedObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testTypeOfInjectedObject(boolean useMojo) throws Throwable {
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testController"));
     }
 
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAdditionNotReflectedUntilReload() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testAdditionNotReflectedUntilReload(boolean useMojo) throws Throwable {
         Assert.assertEquals("undefined", executeJavaScriptAndGetStringResult("typeof testObject"));
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().addPossiblyUnsafeInterface(
+                mActivityTestRule.getJavascriptInjector(useMojo).addPossiblyUnsafeInterface(
                         new Object(), "testObject", null);
             }
         });
@@ -161,7 +173,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testRemovalNotReflectedUntilReload() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testRemovalNotReflectedUntilReload(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void method() {
                 mTestController.setStringValue("I'm here");
@@ -173,7 +186,7 @@
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().removeInterface("testObject");
+                mActivityTestRule.getJavascriptInjector(useMojo).removeInterface("testObject");
             }
         });
         // Check that the Java object is being held by the Java bridge, thus it's not
@@ -190,14 +203,15 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testRemoveObjectNotAdded() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testRemoveObjectNotAdded(boolean useMojo) throws Throwable {
         TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
                 mActivityTestRule.getTestCallBackHelperContainer().getOnPageFinishedHelper();
         int currentCallCount = onPageFinishedHelper.getCallCount();
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().removeInterface("foo");
+                mActivityTestRule.getJavascriptInjector(useMojo).removeInterface("foo");
                 mActivityTestRule.getWebContents().getNavigationController().reload(true);
             }
         });
@@ -208,7 +222,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testTypeOfMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testTypeOfMethod(boolean useMojo) throws Throwable {
         Assert.assertEquals("function",
                 executeJavaScriptAndGetStringResult("typeof testController.setStringValue"));
     }
@@ -216,7 +231,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testTypeOfInvalidMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testTypeOfInvalidMethod(boolean useMojo) throws Throwable {
         Assert.assertEquals(
                 "undefined", executeJavaScriptAndGetStringResult("typeof testController.foo"));
     }
@@ -224,14 +240,17 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallingInvalidMethodRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallingInvalidMethodRaisesException(boolean useMojo) throws Throwable {
         assertRaisesException("testController.foo()");
     }
 
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testUncaughtJavaExceptionRaisesJavaScriptException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testUncaughtJavaExceptionRaisesJavaScriptException(boolean useMojo)
+            throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void method() {
                 throw new RuntimeException("foo");
@@ -243,21 +262,24 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallingAsConstructorRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallingAsConstructorRaisesException(boolean useMojo) throws Throwable {
         assertRaisesException("new testController.setStringValue('foo')");
     }
 
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallingOnNonInjectedObjectRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallingOnNonInjectedObjectRaisesException(boolean useMojo) throws Throwable {
         assertRaisesException("testController.setStringValue.call({}, 'foo')");
     }
 
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallingOnInstanceOfOtherClassRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallingOnInstanceOfOtherClassRaisesException(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object(), "testObject");
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testObject"));
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testController"));
@@ -270,7 +292,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testTypeOfStaticMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testTypeOfStaticMethod(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new ObjectWithStaticMethod(), "testObject");
         mActivityTestRule.executeJavaScript(
                 "testController.setStringValue(typeof testObject.staticMethod)");
@@ -281,7 +304,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallStaticMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallStaticMethod(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new ObjectWithStaticMethod(), "testObject");
         mActivityTestRule.executeJavaScript(
                 "testController.setStringValue(testObject.staticMethod())");
@@ -291,7 +315,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPrivateMethodNotExposed() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPrivateMethodNotExposed(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             private void method() {}
             protected void method2() {}
@@ -305,7 +330,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReplaceInjectedObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReplaceInjectedObject(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void method() {
                 mTestController.setStringValue("object 1");
@@ -326,7 +352,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testInjectNullObjectIsIgnored() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testInjectNullObjectIsIgnored(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(null, "testObject");
         Assert.assertEquals("undefined", executeJavaScriptAndGetStringResult("typeof testObject"));
     }
@@ -334,7 +361,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReplaceInjectedObjectWithNullObjectIsIgnored() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReplaceInjectedObjectWithNullObjectIsIgnored(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object(), "testObject");
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testObject"));
         mActivityTestRule.injectObjectAndReload(null, "testObject");
@@ -344,7 +372,9 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallOverloadedMethodWithDifferentNumberOfArguments() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallOverloadedMethodWithDifferentNumberOfArguments(boolean useMojo)
+            throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void method() {
                 mTestController.setStringValue("0 args");
@@ -373,7 +403,9 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallMethodWithWrongNumberOfArgumentsRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallMethodWithWrongNumberOfArgumentsRaisesException(boolean useMojo)
+            throws Throwable {
         assertRaisesException("testController.setIntValue()");
         assertRaisesException("testController.setIntValue(42, 42)");
     }
@@ -381,7 +413,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testObjectPersistsAcrossPageLoads() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testObjectPersistsAcrossPageLoads(boolean useMojo) throws Throwable {
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testController"));
         mActivityTestRule.synchronousPageReload();
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testController"));
@@ -390,7 +423,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCustomPropertiesCleanedUpOnPageReloads() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCustomPropertiesCleanedUpOnPageReloads(boolean useMojo) throws Throwable {
         Assert.assertEquals("object", executeJavaScriptAndGetStringResult("typeof testController"));
         mActivityTestRule.executeJavaScript("testController.myProperty = 42;");
         Assert.assertEquals("42", executeJavaScriptAndGetStringResult("testController.myProperty"));
@@ -403,7 +437,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testSameObjectInjectedMultipleTimes() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testSameObjectInjectedMultipleTimes(boolean useMojo) throws Throwable {
         class TestObject {
             private int mNumMethodInvocations;
 
@@ -423,7 +458,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCallMethodOnReturnedObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testCallMethodOnReturnedObject(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public Object getInnerObject() {
                 return new Object() {
@@ -440,7 +476,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReturnedObjectInjectedElsewhere() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testReturnedObjectInjectedElsewhere(boolean useMojo) throws Throwable {
         class InnerObject {
             private int mNumMethodInvocations;
 
@@ -470,7 +507,8 @@
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
     @CommandLineFlags.Add("js-flags=--expose-gc")
-    public void testReturnedObjectIsGarbageCollected() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testReturnedObjectIsGarbageCollected(boolean useMojo) throws Throwable {
         Assert.assertEquals("function", executeJavaScriptAndGetStringResult("typeof gc"));
         class InnerObject {
         }
@@ -511,7 +549,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testSameReturnedObjectUsesSameWrapper() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testSameReturnedObjectUsesSameWrapper(boolean useMojo) throws Throwable {
         class InnerObject {
         }
         final InnerObject innerObject = new InnerObject();
@@ -531,7 +570,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMethodInvokedOnBackgroundThread() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testMethodInvokedOnBackgroundThread(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void captureThreadId() {
                 mTestController.setLongValue(Thread.currentThread().getId());
@@ -551,7 +591,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testBlockingUiThreadDoesNotBlockCallsFromJs() {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testBlockingUiThreadDoesNotBlockCallsFromJs(boolean useMojo) {
         class TestObject {
             private CountDownLatch mLatch;
             public TestObject() {
@@ -594,7 +635,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPublicInheritedMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPublicInheritedMethod(boolean useMojo) throws Throwable {
         class Base {
             public void method(int x) {
                 mTestController.setIntValue(x);
@@ -612,7 +654,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPrivateInheritedMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPrivateInheritedMethod(boolean useMojo) throws Throwable {
         class Base {
             private void method() {}
         }
@@ -626,7 +669,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testOverriddenMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testOverriddenMethod(boolean useMojo) throws Throwable {
         class Base {
             public void method() {
                 mTestController.setStringValue("base");
@@ -646,7 +690,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testEnumerateMembers() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testEnumerateMembers(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public void method() {}
             private void privateMethod() {}
@@ -663,7 +708,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReflectPublicMethod() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReflectPublicMethod(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public Class<?> myGetClass() {
                 return getClass();
@@ -682,7 +728,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReflectPublicField() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReflectPublicField(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public Class<?> myGetClass() {
                 return getClass();
@@ -698,7 +745,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReflectPrivateMethodRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReflectPrivateMethodRaisesException(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public Class<?> myGetClass() {
                 return getClass();
@@ -718,7 +766,8 @@
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
     @DisabledTest(message = "https://crbug.com/795378")
-    public void testReflectPrivateFieldRaisesException() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testReflectPrivateFieldRaisesException(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public Class<?> myGetClass() {
                 return getClass();
@@ -738,7 +787,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAllowNonAnnotatedMethods() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testAllowNonAnnotatedMethods(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             public String allowed() {
                 return "foo";
@@ -756,7 +806,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAllowOnlyAnnotatedMethods() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testAllowOnlyAnnotatedMethods(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object() {
             @JavascriptInterface
             public String allowed() {
@@ -788,7 +839,9 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAnnotationRequirementRetainsPropertyAcrossObjects() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testAnnotationRequirementRetainsPropertyAcrossObjects(boolean useMojo)
+            throws Throwable {
         class Test {
             @JavascriptInterface
             public String safe() {
@@ -838,7 +891,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAnnotationDoesNotGetInherited() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testAnnotationDoesNotGetInherited(boolean useMojo) throws Throwable {
         class Base {
             @JavascriptInterface
             public void base() { }
@@ -868,7 +922,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testCustomAnnotationRestriction() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testCustomAnnotationRestriction(boolean useMojo) throws Throwable {
         class Test {
             @TestAnnotation
             public String checkTestAnnotationFoo() {
@@ -914,7 +969,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testObjectsInspection() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testObjectsInspection(boolean useMojo) throws Throwable {
         class Test {
             @JavascriptInterface
             public String m1() {
@@ -954,7 +1010,7 @@
         InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().setAllowInspection(false);
+                mActivityTestRule.getJavascriptInjector(useMojo).setAllowInspection(false);
             }
         });
 
@@ -972,7 +1028,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testAccessToObjectGetClassIsBlocked() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testAccessToObjectGetClassIsBlocked(boolean useMojo) throws Throwable {
         mActivityTestRule.injectObjectAndReload(new Object(), "testObject");
         Assert.assertEquals(
                 "function", executeJavaScriptAndGetStringResult("typeof testObject.getClass"));
@@ -982,7 +1039,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testReplaceJavascriptInterface() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testReplaceJavascriptInterface(boolean useMojo) throws Throwable {
         class Test {
             public Test(int value) {
                 mValue = value;
@@ -1005,7 +1063,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMethodCalledOnAnotherInstance() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMethodCalledOnAnotherInstance(boolean useMojo) throws Throwable {
         class TestObject {
             private int mIndex;
             TestObject(int index) {
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeChildFrameTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeChildFrameTest.java
index 66f2479..fd43eca 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeChildFrameTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeChildFrameTest.java
@@ -14,6 +14,10 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
@@ -22,7 +26,7 @@
 import org.chromium.content_public.browser.LoadUrlParams;
 import org.chromium.content_public.browser.NavigationController;
 import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.browser.test.ContentJUnit4ClassRunner;
+import org.chromium.content_public.browser.test.ContentJUnit4RunnerDelegate;
 
 import java.lang.ref.WeakReference;
 import java.util.concurrent.CountDownLatch;
@@ -35,7 +39,8 @@
  * Ensures that injected objects are exposed to child frames as well as the
  * main frame.
  */
-@RunWith(ContentJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(ContentJUnit4RunnerDelegate.class)
 public class JavaBridgeChildFrameTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
@@ -56,6 +61,11 @@
         }
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     TestController mTestController;
 
     @Before
@@ -67,7 +77,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testInjectedObjectPresentInChildFrame() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testInjectedObjectPresentInChildFrame(boolean useMojo) throws Throwable {
         loadDataSync(mActivityTestRule.getWebContents().getNavigationController(),
                 "<html><body><iframe></iframe></body></html>", "text/html", false);
         // We are not executing this code as a part of page loading routine to avoid races
@@ -85,7 +96,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMainPageWrapperIsNotBrokenByChildFrame() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMainPageWrapperIsNotBrokenByChildFrame(boolean useMojo) throws Throwable {
         loadDataSync(mActivityTestRule.getWebContents().getNavigationController(),
                 "<html><body><iframe></iframe></body></html>", "text/html", false);
         // In case there is anything wrong with the JS wrapper, an attempt
@@ -108,7 +120,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testWrapperIsNotSharedWithChildFrame() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testWrapperIsNotSharedWithChildFrame(boolean useMojo) throws Throwable {
         // Test by setting a custom property on the parent page's injected
         // object and then checking that child frame doesn't see the property.
         loadDataSync(mActivityTestRule.getWebContents().getNavigationController(),
@@ -137,7 +150,8 @@
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
     @DisabledTest(message = "https://crbug.com/677182")
-    public void testRemovingTransientObjectHolders() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testRemovingTransientObjectHolders(boolean useMojo) throws Throwable {
         class Test {
             private Object mInner = new Object();
             // Expecting the inner object to be retrieved twice.
@@ -199,7 +213,8 @@
     @Feature({"AndroidWebView", "Android-JavaBridge"})
     @CommandLineFlags.Add("js-flags=--expose-gc")
     @DisabledTest(message = "https://crbug.com/646843")
-    public void testHolderFrame() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testHolderFrame(boolean useMojo) throws Throwable {
         class Test {
             WeakReference<Object> mWeakRefForInner;
             private CountDownLatch mLatch = new CountDownLatch(1);
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
index 9fba0f2e..4c617c9 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeCoercionTest.java
@@ -14,7 +14,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.UrlUtils;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
@@ -33,7 +37,8 @@
  * FIXME: Consider making our implementation more compliant, if it will not
  * break backwards-compatibility. See b/4408210.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeCoercionTest {
     private static final double ASSERTION_DELTA = 0;
 
@@ -171,6 +176,11 @@
     private static class CustomType2 {
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     private TestObject mTestObject;
 
     private static class TestController extends Controller {
@@ -213,7 +223,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberInt32() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberInt32(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteValue(42);");
         Assert.assertEquals(42, mTestObject.waitForByteValue());
         mActivityTestRule.executeJavaScript(
@@ -266,7 +277,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberDouble() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassNumberDouble(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteValue(42.1);");
         Assert.assertEquals(42, mTestObject.waitForByteValue());
         mActivityTestRule.executeJavaScript(
@@ -347,7 +359,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberNaN() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberNaN(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteValue(Number.NaN);");
         Assert.assertEquals(0, mTestObject.waitForByteValue());
 
@@ -388,7 +401,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNumberInfinity() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNumberInfinity(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setByteValue(Infinity);");
         Assert.assertEquals(-1, mTestObject.waitForByteValue());
 
@@ -432,7 +446,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassBoolean() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassBoolean(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setBooleanValue(true);");
         Assert.assertTrue(mTestObject.waitForBooleanValue());
         mActivityTestRule.executeJavaScript("testObject.setBooleanValue(false);");
@@ -498,7 +513,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassString() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassString(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setStringValue(\"+042.10\");");
         Assert.assertEquals("+042.10", mTestObject.waitForStringValue());
 
@@ -551,7 +567,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassJavaScriptObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassJavaScriptObject(boolean useMojo) throws Throwable {
         // LIVECONNECT_COMPLIANCE: Should raise a JavaScript exception.
         mActivityTestRule.executeJavaScript("testObject.setObjectValue({foo: 42});");
         Assert.assertNull(mTestObject.waitForObjectValue());
@@ -603,7 +620,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassJavaObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassJavaObject(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript(
                 "testObject.setObjectValue(testObject.getObjectInstance());");
         Assert.assertTrue(mTestObject.getObjectInstance() == mTestObject.waitForObjectValue());
@@ -682,7 +700,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassJavaObjectFromCustomClassLoader() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassJavaObjectFromCustomClassLoader(boolean useMojo) throws Throwable {
         // Compiled bytecode (dex) for the following class:
         //
         // package org.example;
@@ -706,7 +725,7 @@
         mActivityTestRule.runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                mActivityTestRule.getJavascriptInjector().addPossiblyUnsafeInterface(
+                mActivityTestRule.getJavascriptInjector(useMojo).addPossiblyUnsafeInterface(
                         selfConsuming, "selfConsuming", null);
             }
         });
@@ -720,7 +739,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassNull() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassNull(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setObjectValue(null);");
         Assert.assertNull(mTestObject.waitForObjectValue());
 
@@ -759,7 +779,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassUndefined() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testPassUndefined(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setObjectValue(undefined);");
         Assert.assertNull(mTestObject.waitForObjectValue());
 
@@ -800,7 +821,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassArrayBuffer() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassArrayBuffer(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
 
         mActivityTestRule.executeJavaScript("testObject.setObjectValue(buffer);");
@@ -817,7 +839,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassDataView() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassDataView(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("buffer = new ArrayBuffer(16);");
 
         mActivityTestRule.executeJavaScript("testObject.setObjectValue(new DataView(buffer));");
@@ -831,7 +854,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassDateObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassDateObject(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setDoubleValue(new Date(2000, 0, 1));");
         Assert.assertEquals(0.0, mTestObject.waitForDoubleValue(), ASSERTION_DELTA);
 
@@ -846,7 +870,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassRegExpObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassRegExpObject(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("testObject.setStringValue(/abc/);");
         Assert.assertEquals("undefined", mTestObject.waitForStringValue());
 
@@ -858,7 +883,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testPassFunctionObject() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.LegacyTestParams.class)
+    public void testPassFunctionObject(boolean useMojo) throws Throwable {
         mActivityTestRule.executeJavaScript("func = new Function('a', 'b', 'return a + b');");
 
         mActivityTestRule.executeJavaScript("testObject.setStringValue(func);");
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeFieldsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeFieldsTest.java
index bb28a8c..b978ece 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeFieldsTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeFieldsTest.java
@@ -12,7 +12,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
 
@@ -20,7 +24,8 @@
  * Part of the test suite for the Java Bridge. This test tests the
  * use of fields.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeFieldsTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
@@ -56,6 +61,11 @@
     private static class CustomType {
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     TestObject mTestObject;
 
     @Before
@@ -75,7 +85,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testFieldTypes() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testFieldTypes(boolean useMojo) throws Throwable {
         Assert.assertEquals(
                 "undefined", executeJavaScriptAndGetStringResult("typeof testObject.booleanField"));
         Assert.assertEquals(
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeReturnValuesTest.java b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeReturnValuesTest.java
index b4705d7..e0ab9f5 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeReturnValuesTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/JavaBridgeReturnValuesTest.java
@@ -12,7 +12,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.params.BaseJUnit4RunnerDelegate;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseMethodParameterBefore;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.content.browser.JavaBridgeActivityTestRule.Controller;
 
@@ -27,7 +31,8 @@
  * FIXME: Consider making our implementation more compliant, if it will not
  * break backwards-compatibility. See b/4408210.
  */
-@RunWith(BaseJUnit4ClassRunner.class)
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(BaseJUnit4RunnerDelegate.class)
 public class JavaBridgeReturnValuesTest {
     @Rule
     public JavaBridgeActivityTestRule mActivityTestRule =
@@ -113,6 +118,11 @@
     private static class CustomType {
     }
 
+    @UseMethodParameterBefore(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void setupMojoTest(boolean useMojo) {
+        mActivityTestRule.setupMojoTest(useMojo);
+    }
+
     TestObject mTestObject;
 
     @Before
@@ -136,7 +146,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMethodReturnTypes() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMethodReturnTypes(boolean useMojo) throws Throwable {
         Assert.assertEquals("boolean",
                 executeJavaScriptAndGetStringResult("typeof testObject.getBooleanValue()"));
         Assert.assertEquals(
@@ -178,7 +189,8 @@
     @Test
     @SmallTest
     @Feature({"AndroidWebView", "Android-JavaBridge"})
-    public void testMethodReturnValues() throws Throwable {
+    @UseMethodParameter(JavaBridgeActivityTestRule.MojoTestParams.class)
+    public void testMethodReturnValues(boolean useMojo) throws Throwable {
         // We do the string comparison in JavaScript, to avoid relying on the
         // coercion algorithm from JavaScript to Java.
         Assert.assertTrue(executeJavaScriptAndGetBooleanResult("testObject.getBooleanValue()"));
diff --git a/content/public/browser/navigation_entry.h b/content/public/browser/navigation_entry.h
index aea4d51..24a35b24 100644
--- a/content/public/browser/navigation_entry.h
+++ b/content/public/browser/navigation_entry.h
@@ -26,7 +26,6 @@
 
 namespace content {
 
-class BrowserContext;
 class PageState;
 struct FaviconStatus;
 struct ReplacedNavigationEntryData;
@@ -42,16 +41,6 @@
 
   CONTENT_EXPORT static std::unique_ptr<NavigationEntry> Create();
 
-  // Performs initialization of a restored NavigationEntry.
-  //
-  // An example of work performed by this method is recomputing SiteInstance
-  // information in some scenarios (see also https://crbug.com/1026474).
-  //
-  // This method needs to be called after |this| entry has been fully populated
-  // during session restore.  In particular, the SetURL and SetPageState calls
-  // should have already happened before calling InitRestoredEntry.
-  virtual void InitRestoredEntry(BrowserContext* browser_context) = 0;
-
   // Page-related stuff --------------------------------------------------------
 
   // A unique ID is preserved across commits and redirects, which means that
diff --git a/content/public/browser/render_frame_host.h b/content/public/browser/render_frame_host.h
index 6c59f9d..d428cf2 100644
--- a/content/public/browser/render_frame_host.h
+++ b/content/public/browser/render_frame_host.h
@@ -15,7 +15,6 @@
 #include "build/build_config.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/global_routing_id.h"
-#include "content/public/browser/idle_manager.h"
 #include "content/public/common/browser_controls_state.h"
 #include "content/public/common/isolated_world_ids.h"
 #include "content/public/common/page_visibility_state.h"
@@ -608,8 +607,6 @@
       blink::mojom::HeavyAdResolutionStatus resolution,
       blink::mojom::HeavyAdReason reason) = 0;
 
-  virtual IdleManager* GetIdleManager() = 0;
-
   // Write a description of this RenderFrameHost into provided |traced_value|.
   // The caller is responsible for ensuring that key-value pairs can be written
   // into |traced_value| — either by creating a new TracedValue or calling
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index 36bf3fd..680de1f 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -958,10 +958,6 @@
 // Enable drag manipulation of longpress-triggered text selections.
 const char kEnableLongpressDragSelection[]  = "enable-longpress-drag-selection";
 
-// Prevent the offline indicator from showing.
-const char kForceOnlineConnectionStateForIndicator[] =
-    "force-online-connection-state-for-indicator";
-
 // The telephony region (ISO country code) to use in phone number detection.
 const char kNetworkCountryIso[] = "network-country-iso";
 
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 2e622669..1411ca02 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -268,7 +268,6 @@
 CONTENT_EXPORT extern const char kDisableTimeoutsForProfiling[];
 CONTENT_EXPORT extern const char kEnableAdaptiveSelectionHandleOrientation[];
 CONTENT_EXPORT extern const char kEnableLongpressDragSelection[];
-CONTENT_EXPORT extern const char kForceOnlineConnectionStateForIndicator[];
 extern const char kNetworkCountryIso[];
 CONTENT_EXPORT extern const char kRemoteDebuggingSocketName[];
 CONTENT_EXPORT extern const char kRendererWaitForJavaDebugger[];
diff --git a/content/public/test/android/BUILD.gn b/content/public/test/android/BUILD.gn
index 1d34821..7002dd5 100644
--- a/content/public/test/android/BUILD.gn
+++ b/content/public/test/android/BUILD.gn
@@ -34,6 +34,7 @@
     "javatests/src/org/chromium/content_public/browser/test/ChildProcessAllocatorSettings.java",
     "javatests/src/org/chromium/content_public/browser/test/ChildProcessAllocatorSettingsHook.java",
     "javatests/src/org/chromium/content_public/browser/test/ContentJUnit4ClassRunner.java",
+    "javatests/src/org/chromium/content_public/browser/test/ContentJUnit4RunnerDelegate.java",
     "javatests/src/org/chromium/content_public/browser/test/NativeLibraryTestUtils.java",
     "javatests/src/org/chromium/content_public/browser/test/RenderFrameHostTestExt.java",
     "javatests/src/org/chromium/content_public/browser/test/mock/MockNavigationController.java",
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/ContentJUnit4RunnerDelegate.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/ContentJUnit4RunnerDelegate.java
new file mode 100644
index 0000000..90808fc
--- /dev/null
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/ContentJUnit4RunnerDelegate.java
@@ -0,0 +1,43 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.content_public.browser.test;
+
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+
+import org.chromium.base.test.params.ParameterizedRunner.ParameterizedTestInstantiationException;
+import org.chromium.base.test.params.ParameterizedRunnerDelegate;
+import org.chromium.base.test.params.ParameterizedRunnerDelegateCommon;
+
+import java.util.List;
+
+/**
+ * A custom runner delegate for running //content JUnit4 parameterized tests.
+ */
+public final class ContentJUnit4RunnerDelegate
+        extends ContentJUnit4ClassRunner implements ParameterizedRunnerDelegate {
+    private final ParameterizedRunnerDelegateCommon mDelegateCommon;
+
+    public ContentJUnit4RunnerDelegate(Class<?> klass,
+            ParameterizedRunnerDelegateCommon delegateCommon) throws InitializationError {
+        super(klass);
+        mDelegateCommon = delegateCommon;
+    }
+
+    @Override
+    public void collectInitializationErrors(List<Throwable> errors) {
+        ParameterizedRunnerDelegateCommon.collectInitializationErrors(errors);
+    }
+
+    @Override
+    public List<FrameworkMethod> computeTestMethods() {
+        return mDelegateCommon.computeTestMethods();
+    }
+
+    @Override
+    public Object createTest() throws ParameterizedTestInstantiationException {
+        return mDelegateCommon.createTest();
+    }
+}
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc
index d6cbae6..897f722 100644
--- a/content/public/test/browser_test_base.cc
+++ b/content/public/test/browser_test_base.cc
@@ -73,7 +73,7 @@
 #include "ui/gl/gl_implementation.h"
 #include "ui/gl/gl_switches.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "ui/platform_window/common/platform_window_defaults.h"  // nogncheck
 #endif
 
@@ -181,7 +181,7 @@
          "a new browser test suite that runs on Android, please add it to "
          "//build/android/pylib/gtest/gtest_test_instance.py.";
   g_instance_already_created = true;
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   ui::test::EnableTestConfigForPlatformWindows();
 #endif
 
diff --git a/content/public/test/idle_test_utils.cc b/content/public/test/idle_test_utils.cc
new file mode 100644
index 0000000..79cc8b7
--- /dev/null
+++ b/content/public/test/idle_test_utils.cc
@@ -0,0 +1,22 @@
+// Copyright 2020 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/idle_test_utils.h"
+
+#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/public/browser/idle_manager.h"
+
+namespace content {
+
+void IdleManagerHelper::SetIdleTimeProviderForTest(
+    content::RenderFrameHost* frame,
+    std::unique_ptr<IdleManager::IdleTimeProvider> idle_time_provider) {
+  content::RenderFrameHostImpl* const frame_impl =
+      static_cast<content::RenderFrameHostImpl*>(frame);
+
+  content::IdleManager* idle_mgr = frame_impl->GetIdleManager();
+
+  idle_mgr->SetIdleTimeProviderForTest(std::move(idle_time_provider));
+}
+}  // namespace content
diff --git a/content/public/test/idle_test_utils.h b/content/public/test/idle_test_utils.h
new file mode 100644
index 0000000..3b5f6ba6
--- /dev/null
+++ b/content/public/test/idle_test_utils.h
@@ -0,0 +1,21 @@
+// Copyright 2020 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_IDLE_TEST_UTILS_H_
+#define CONTENT_PUBLIC_TEST_IDLE_TEST_UTILS_H_
+
+#include "content/public/browser/idle_manager.h"
+#include "content/public/browser/render_frame_host.h"
+
+namespace content {
+class IdleManagerHelper {
+ public:
+  static void SetIdleTimeProviderForTest(
+      content::RenderFrameHost* frame,
+      std::unique_ptr<content::IdleManager::IdleTimeProvider>
+          idle_time_provider);
+};
+}  // namespace content
+
+#endif  // CONTENT_PUBLIC_TEST_IDLE_TEST_UTILS_H_
diff --git a/content/public/test/mock_render_thread.cc b/content/public/test/mock_render_thread.cc
index 2daf2edfe..2ed3635 100644
--- a/content/public/test/mock_render_thread.cc
+++ b/content/public/test/mock_render_thread.cc
@@ -51,7 +51,7 @@
     std::move(callback).Run(false);
   }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   void SetThreadPriority(int32_t platform_thread_id,
                          base::ThreadPriority thread_priority) override {}
 #endif
diff --git a/content/shell/android/javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java b/content/shell/android/javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java
index 4db38e90f..c1e0d25 100644
--- a/content/shell/android/javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java
+++ b/content/shell/android/javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java
@@ -226,7 +226,11 @@
     }
 
     public JavascriptInjector getJavascriptInjector() {
-        return JavascriptInjector.fromWebContents(getWebContents());
+        return getJavascriptInjector(false);
+    }
+
+    public JavascriptInjector getJavascriptInjector(boolean useMojo) {
+        return JavascriptInjector.fromWebContents(getWebContents(), useMojo);
     }
 
     /**
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 6cac3c1..1c85f26 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -138,6 +138,8 @@
     "../public/test/frame_load_waiter.h",
     "../public/test/hit_test_region_observer.cc",
     "../public/test/hit_test_region_observer.h",
+    "../public/test/idle_test_utils.cc",
+    "../public/test/idle_test_utils.h",
     "../public/test/javascript_test_observer.cc",
     "../public/test/javascript_test_observer.h",
     "../public/test/local_frame_host_interceptor.cc",
diff --git a/content/test/data/accessibility/event/aria-slider-value-both-change.html b/content/test/data/accessibility/event/aria-slider-value-both-change.html
index 7547c5aa..688fba7 100644
--- a/content/test/data/accessibility/event/aria-slider-value-both-change.html
+++ b/content/test/data/accessibility/event/aria-slider-value-both-change.html
@@ -1,7 +1,6 @@
 <!--
 @WIN-DENY:*
 @WIN-ALLOW:EVENT_OBJECT_VALUECHANGE*
-@MAC-DENY:AXLayoutComplete*
 -->
 <!DOCTYPE html>
 <html>
diff --git a/content/test/data/accessibility/event/aria-slider-value-change.html b/content/test/data/accessibility/event/aria-slider-value-change.html
index b8fc94f..c0efb87 100644
--- a/content/test/data/accessibility/event/aria-slider-value-change.html
+++ b/content/test/data/accessibility/event/aria-slider-value-change.html
@@ -1,7 +1,6 @@
 <!--
 @WIN-DENY:*
 @WIN-ALLOW:EVENT_OBJECT_VALUECHANGE*
-@MAC-DENY:AXLayoutComplete*
 -->
 <!DOCTYPE html>
 <html>
diff --git a/content/test/data/accessibility/event/aria-slider-valuetext-change.html b/content/test/data/accessibility/event/aria-slider-valuetext-change.html
index d8c46bdc..f0c0c35 100644
--- a/content/test/data/accessibility/event/aria-slider-valuetext-change.html
+++ b/content/test/data/accessibility/event/aria-slider-valuetext-change.html
@@ -1,7 +1,6 @@
 <!--
 @WIN-DENY:*
 @WIN-ALLOW:EVENT_OBJECT_VALUECHANGE*
-@MAC-DENY:AXLayoutComplete*
 -->
 <!DOCTYPE html>
 <html>
diff --git a/content/test/data/accessibility/event/aria-spinbutton-value-both-change.html b/content/test/data/accessibility/event/aria-spinbutton-value-both-change.html
index d87eac2c..628efae 100644
--- a/content/test/data/accessibility/event/aria-spinbutton-value-both-change.html
+++ b/content/test/data/accessibility/event/aria-spinbutton-value-both-change.html
@@ -2,7 +2,6 @@
 <!--
 @WIN-DENY:*
 @WIN-ALLOW:EVENT_OBJECT_VALUECHANGE*
-@MAC-DENY:AXLayoutComplete*
 -->
 <html>
 <body>
diff --git a/content/test/data/accessibility/event/aria-spinbutton-value-change.html b/content/test/data/accessibility/event/aria-spinbutton-value-change.html
index 85cf91c..6197f767 100644
--- a/content/test/data/accessibility/event/aria-spinbutton-value-change.html
+++ b/content/test/data/accessibility/event/aria-spinbutton-value-change.html
@@ -2,7 +2,6 @@
 <!--
 @WIN-DENY:*
 @WIN-ALLOW:EVENT_OBJECT_VALUECHANGE*
-@MAC-DENY:AXLayoutComplete*
 -->
 <html>
 <body>
diff --git a/content/test/data/accessibility/event/aria-spinbutton-valuetext-change.html b/content/test/data/accessibility/event/aria-spinbutton-valuetext-change.html
index 19f8ff43..820ad93 100644
--- a/content/test/data/accessibility/event/aria-spinbutton-valuetext-change.html
+++ b/content/test/data/accessibility/event/aria-spinbutton-valuetext-change.html
@@ -5,7 +5,6 @@
 @UIA-WIN-DENY:*
 @UIA-WIN-ALLOW:AriaProperties*
 @UIA-WIN-ALLOW:RangeValueValue*
-@MAC-DENY:AXLayoutComplete*
 -->
 <html>
 <body>
diff --git a/content/test/data/accessibility/html/svg-g-expected-blink.txt b/content/test/data/accessibility/html/svg-g-expected-blink.txt
new file mode 100644
index 0000000..5f636ca
--- /dev/null
+++ b/content/test/data/accessibility/html/svg-g-expected-blink.txt
@@ -0,0 +1,15 @@
+rootWebArea
+++genericContainer ignored
+++++genericContainer
+++++++svgRoot name='svg'
+++++++++genericContainer ignored htmlTag='g'
+++++++++++genericContainer
+++++++++++++staticText name='Group 1 Text 1'
+++++++++++++++inlineTextBox name='Group 1 Text 1'
+++++++++++genericContainer
+++++++++++++staticText name='Group 1 Text 2'
+++++++++++++++inlineTextBox name='Group 1 Text 2'
+++++++++genericContainer ignored htmlTag='g'
+++++++++++genericContainer
+++++++++++++staticText name='Group 2 Text 1'
+++++++++++++++inlineTextBox name='Group 2 Text 1'
diff --git a/content/test/data/accessibility/html/svg-g.html b/content/test/data/accessibility/html/svg-g.html
new file mode 100644
index 0000000..564ec82
--- /dev/null
+++ b/content/test/data/accessibility/html/svg-g.html
@@ -0,0 +1,20 @@
+<!--
+@BLINK-ALLOW:htmlTag='g'
+-->
+<!DOCTYPE html>
+<html>
+<body>
+
+<svg aria-label="svg">
+  <g>
+    <text x="10" y="10" fill="red">Group 1 Text 1</text>
+    <text x="10" y="100" fill="red">Group 1 Text 2</text>
+  </g>
+  <g>
+    <text x="200" y="10" fill="red">Group 2 Text 1</text>
+  </g>
+</svg>
+
+</body>
+</html>
+
diff --git a/content/test/data/isolated_base_origin_with_subframe.html b/content/test/data/isolated_base_origin_with_subframe.html
index d02f155..4d894ba 100644
--- a/content/test/data/isolated_base_origin_with_subframe.html
+++ b/content/test/data/isolated_base_origin_with_subframe.html
@@ -2,5 +2,6 @@
   <head></head>
   <body>
     <iframe style="width: 50%; height: 50%"></iframe>
+    <iframe style="width: 50%; height: 50%"></iframe>
   </body>
 </html>
diff --git a/content/test/run_all_unittests.cc b/content/test/run_all_unittests.cc
index c2581e4..1508294 100644
--- a/content/test/run_all_unittests.cc
+++ b/content/test/run_all_unittests.cc
@@ -9,12 +9,12 @@
 #include "content/public/test/unittest_test_suite.h"
 #include "content/test/content_test_suite.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "services/service_manager/embedder/set_process_title_linux.h"
 #endif
 
 int main(int argc, char** argv) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // For setproctitle unit tests.
   setproctitle_init(const_cast<const char**>(argv));
 #endif
diff --git a/device/fido/cros/authenticator.cc b/device/fido/cros/authenticator.cc
index d41b991..27e0e45 100644
--- a/device/fido/cros/authenticator.cc
+++ b/device/fido/cros/authenticator.cc
@@ -272,6 +272,10 @@
   return false;
 }
 
+bool ChromeOSAuthenticator::IsChromeOSAuthenticator() const {
+  return true;
+}
+
 base::WeakPtr<FidoAuthenticator> ChromeOSAuthenticator::GetWeakPtr() {
   return weak_factory_.GetWeakPtr();
 }
diff --git a/device/fido/cros/authenticator.h b/device/fido/cros/authenticator.h
index f317324..3e13f5e 100644
--- a/device/fido/cros/authenticator.h
+++ b/device/fido/cros/authenticator.h
@@ -46,6 +46,8 @@
   bool IsPaired() const override;
   bool RequiresBlePairingPin() const override;
 
+  bool IsChromeOSAuthenticator() const override;
+
   void GetTouch(base::OnceClosure callback) override {}
   base::WeakPtr<FidoAuthenticator> GetWeakPtr() override;
 
diff --git a/device/fido/fido_authenticator.h b/device/fido/fido_authenticator.h
index d6dd1366..ad98403 100644
--- a/device/fido/fido_authenticator.h
+++ b/device/fido/fido_authenticator.h
@@ -230,6 +230,9 @@
 #if defined(OS_MAC)
   virtual bool IsTouchIdAuthenticator() const = 0;
 #endif  // defined(OS_MAC)
+#if defined(OS_CHROMEOS)
+  virtual bool IsChromeOSAuthenticator() const = 0;
+#endif
   virtual base::WeakPtr<FidoAuthenticator> GetWeakPtr() = 0;
 
  private:
diff --git a/device/fido/fido_device_authenticator.cc b/device/fido/fido_device_authenticator.cc
index d643100..0038575e 100644
--- a/device/fido/fido_device_authenticator.cc
+++ b/device/fido/fido_device_authenticator.cc
@@ -827,6 +827,12 @@
 }
 #endif  // defined(OS_MAC)
 
+#if defined(OS_CHROMEOS)
+bool FidoDeviceAuthenticator::IsChromeOSAuthenticator() const {
+  return false;
+}
+#endif  // defined(OS_CHROMEOS)
+
 void FidoDeviceAuthenticator::SetTaskForTesting(
     std::unique_ptr<FidoTask> task) {
   task_ = std::move(task);
diff --git a/device/fido/fido_device_authenticator.h b/device/fido/fido_device_authenticator.h
index 15823ad..8a2a26d 100644
--- a/device/fido/fido_device_authenticator.h
+++ b/device/fido/fido_device_authenticator.h
@@ -113,6 +113,9 @@
 #if defined(OS_MAC)
   bool IsTouchIdAuthenticator() const override;
 #endif  // defined(OS_MAC)
+#if defined(OS_CHROMEOS)
+  bool IsChromeOSAuthenticator() const override;
+#endif  // defined(OS_CHROMEOS)
   base::WeakPtr<FidoAuthenticator> GetWeakPtr() override;
 
   FidoDevice* device() { return device_.get(); }
diff --git a/device/vr/openxr/test/openxr_test_helper.cc b/device/vr/openxr/test/openxr_test_helper.cc
index c26818c..f26ca71 100644
--- a/device/vr/openxr/test/openxr_test_helper.cc
+++ b/device/vr/openxr/test/openxr_test_helper.cc
@@ -358,8 +358,8 @@
 }
 
 XrResult OpenXrTestHelper::EndSession() {
-  RETURN_IF_FALSE(IsSessionRunning(), XR_ERROR_SESSION_NOT_RUNNING,
-                  "EndSession session is not running");
+  // Per OpenXR 1.0 spec: "An application can only call xrEndSession when the
+  // session is in the XR_SESSION_STATE_STOPPING state"
   RETURN_IF(session_state_ != XR_SESSION_STATE_STOPPING,
             XR_ERROR_SESSION_NOT_STOPPING,
             "Session state is not XR_ERROR_SESSION_NOT_STOPPING");
diff --git a/extensions/browser/api/messaging/message_service.cc b/extensions/browser/api/messaging/message_service.cc
index 9905c37..0a54cc7 100644
--- a/extensions/browser/api/messaging/message_service.cc
+++ b/extensions/browser/api/messaging/message_service.cc
@@ -61,7 +61,8 @@
 
 const char kReceivingEndDoesntExistError[] =
     "Could not establish connection. Receiving end does not exist.";
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
+    defined(OS_CHROMEOS)
 const char kMissingPermissionError[] =
     "Access to native messaging requires nativeMessaging permission.";
 const char kProhibitedByPoliciesError[] =
@@ -391,7 +392,8 @@
   if (!opener_port->IsValidPort())
     return;
 
-#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
+    defined(OS_CHROMEOS)
   bool has_permission = extension->permissions_data()->HasAPIPermission(
       APIPermission::kNativeMessaging);
   if (!has_permission) {
@@ -441,11 +443,13 @@
   channel->opener->IncrementLazyKeepaliveCount();
 
   AddChannel(std::move(channel), receiver_port_id);
-#else   // !(defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX))
+#else   // !(defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
+        // defined(OS_CHROMEOS))
   const char kNativeMessagingNotSupportedError[] =
       "Native Messaging is not supported on this platform.";
   opener_port->DispatchOnDisconnect(kNativeMessagingNotSupportedError);
-#endif  // !(defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX))
+#endif  // !(defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
+        // defined(OS_CHROMEOS))
 }
 
 void MessageService::OpenChannelToTab(const ChannelEndpoint& source,
diff --git a/extensions/browser/api/web_request/form_data_parser_unittest.cc b/extensions/browser/api/web_request/form_data_parser_unittest.cc
index b6791fb..fe76894 100644
--- a/extensions/browser/api/web_request/form_data_parser_unittest.cc
+++ b/extensions/browser/api/web_request/form_data_parser_unittest.cc
@@ -187,8 +187,8 @@
                           "select",
                           "one",
                           "binary",
-                          "\u0420\u043e\u0434\u0436\u0435\u0440 "
-                          "\u0416\u0435\u043b\u044f\u0437\u043d\u044b"};
+                          ("\u0420\u043e\u0434\u0436\u0435\u0440 "
+                           "\u0416\u0435\u043b\u044f\u0437\u043d\u044b")};
   const std::vector<std::string> kExpected(kPairs, kPairs + base::size(kPairs));
 
   std::vector<const base::StringPiece*> input;
diff --git a/fuchsia/cast_streaming/cast_streaming_session.cc b/fuchsia/cast_streaming/cast_streaming_session.cc
index 565df0d..47cbdab47 100644
--- a/fuchsia/cast_streaming/cast_streaming_session.cc
+++ b/fuchsia/cast_streaming/cast_streaming_session.cc
@@ -79,6 +79,11 @@
     DVLOG(1) << __func__;
     DCHECK_EQ(session, &receiver_session_);
 
+    if (initialized_called_) {
+      // TODO(crbug.com/1116185): Handle multiple offer messages properly.
+      return;
+    }
+
     base::Optional<AudioStreamInfo> audio_stream_info;
     if (receivers.audio) {
       // Creare the audio data pipe.
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg
index 8a5cb77f..ebc2756 100644
--- a/infra/config/generated/commit-queue.cfg
+++ b/infra/config/generated/commit-queue.cfg
@@ -221,10 +221,6 @@
         location_regexp_exclude: ".+/[+]/infra/config/.+"
       }
       builders {
-        name: "chromium/try/android-nougat-arm64-rel"
-        includable_only: true
-      }
-      builders {
         name: "chromium/try/android-official"
         includable_only: true
       }
@@ -2103,10 +2099,6 @@
         includable_only: true
       }
       builders {
-        name: "chromium/try-m85/android-nougat-arm64-rel"
-        includable_only: true
-      }
-      builders {
         name: "chromium/try-m85/android-official"
         includable_only: true
       }
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg
index 77c01fb8..13b700a4 100644
--- a/infra/config/generated/cr-buildbucket.cfg
+++ b/infra/config/generated/cr-buildbucket.cfg
@@ -12103,6 +12103,35 @@
         }
       }
     }
+    builders {
+      name: "win7-omaha-tester-rel"
+      swarming_host: "chromium-swarm.appspot.com"
+      swarming_tags: "vpython:native-python-wrapper"
+      dimensions: "builderless:1"
+      dimensions: "cores:8"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-16.04"
+      dimensions: "pool:luci.chromium.ci"
+      dimensions: "ssd:0"
+      exe {
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/master"
+        cmd: "recipes"
+      }
+      properties: "{\"$build/goma\":{\"enable_ats\":true,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"chromium.fyi\",\"recipe\":\"chromium\"}"
+      execution_timeout_secs: 36000
+      build_numbers: YES
+      service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "luci-resultdb"
+          dataset: "chromium"
+          table: "ci_test_results"
+          test_results {}
+        }
+      }
+    }
   }
 }
 buckets {
@@ -19370,43 +19399,6 @@
       }
     }
     builders {
-      name: "android-nougat-arm64-rel"
-      swarming_host: "chromium-swarm.appspot.com"
-      swarming_tags: "vpython:native-python-wrapper"
-      dimensions: "builderless:1"
-      dimensions: "cores:8"
-      dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
-      dimensions: "pool:luci.chromium.try"
-      dimensions: "ssd:0"
-      exe {
-        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
-        cipd_version: "refs/heads/master"
-        cmd: "recipes"
-      }
-      properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}"
-      execution_timeout_secs: 14400
-      expiration_secs: 7200
-      caches {
-        name: "win_toolchain"
-        path: "win_toolchain"
-      }
-      build_numbers: YES
-      service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
-      task_template_canary_percentage {
-        value: 5
-      }
-      resultdb {
-        enable: true
-        bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "try_test_results"
-          test_results {}
-        }
-      }
-    }
-    builders {
       name: "android-official"
       swarming_host: "chromium-swarm.appspot.com"
       swarming_tags: "vpython:native-python-wrapper"
@@ -31133,43 +31125,6 @@
       }
     }
     builders {
-      name: "android-nougat-arm64-rel"
-      swarming_host: "chromium-swarm.appspot.com"
-      swarming_tags: "vpython:native-python-wrapper"
-      dimensions: "builderless:1"
-      dimensions: "cores:8"
-      dimensions: "cpu:x86-64"
-      dimensions: "os:Ubuntu-16.04"
-      dimensions: "pool:luci.chromium.try"
-      dimensions: "ssd:0"
-      exe {
-        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
-        cipd_version: "refs/heads/master"
-        cmd: "recipes"
-      }
-      properties: "{\"$build/goma\":{\"enable_ats\":true,\"jobs\":150,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"},\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"mastername\":\"tryserver.chromium.android\",\"recipe\":\"chromium_trybot\"}"
-      execution_timeout_secs: 14400
-      expiration_secs: 7200
-      caches {
-        name: "win_toolchain"
-        path: "win_toolchain"
-      }
-      build_numbers: YES
-      service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
-      task_template_canary_percentage {
-        value: 5
-      }
-      resultdb {
-        enable: true
-        bq_exports {
-          project: "luci-resultdb"
-          dataset: "chromium"
-          table: "try_test_results"
-          test_results {}
-        }
-      }
-    }
-    builders {
       name: "android-official"
       swarming_host: "chromium-swarm.appspot.com"
       swarming_tags: "vpython:native-python-wrapper"
diff --git a/infra/config/generated/luci-milo.cfg b/infra/config/generated/luci-milo.cfg
index 43648e6..358ef2ae 100644
--- a/infra/config/generated/luci-milo.cfg
+++ b/infra/config/generated/luci-milo.cfg
@@ -4501,9 +4501,6 @@
     name: "buildbucket/luci.chromium.try/android-marshmallow-x86-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/android-nougat-arm64-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/android-official"
   }
   builders {
@@ -4844,9 +4841,6 @@
     name: "buildbucket/luci.chromium.try-m85/android-marshmallow-x86-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try-m85/android-nougat-arm64-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try-m85/android-official"
   }
   builders {
@@ -8295,10 +8289,6 @@
     category: "win10"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/win-omaha-builder-rel"
-    category: "win10"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/win-pixel-builder-rel"
     category: "win10"
   }
@@ -8307,10 +8297,6 @@
     category: "win10"
   }
   builders {
-    name: "buildbucket/luci.chromium.ci/win10-omaha-tester-rel"
-    category: "win10"
-  }
-  builders {
     name: "buildbucket/luci.chromium.ci/Win10 Tests x64 1803"
     category: "win10|1803"
   }
@@ -8336,6 +8322,21 @@
     short_name: "lcr"
   }
   builders {
+    name: "buildbucket/luci.chromium.ci/win10-omaha-tester-rel"
+    category: "omaha|win"
+    short_name: "10"
+  }
+  builders {
+    name: "buildbucket/luci.chromium.ci/win7-omaha-tester-rel"
+    category: "omaha|win"
+    short_name: "7"
+  }
+  builders {
+    name: "buildbucket/luci.chromium.ci/win-omaha-builder-rel"
+    category: "omaha|win"
+    short_name: "bld"
+  }
+  builders {
     name: "buildbucket/luci.chromium.ci/linux-upload-perfetto"
     category: "perfetto"
     short_name: "lnx"
@@ -14981,9 +14982,6 @@
     name: "buildbucket/luci.chromium.try/android-marshmallow-x86-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/android-nougat-arm64-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/android-oreo-arm64-cts-networkservice-dbg"
   }
   builders {
@@ -15612,9 +15610,6 @@
     name: "buildbucket/luci.chromium.try/android-marshmallow-x86-rel"
   }
   builders {
-    name: "buildbucket/luci.chromium.try/android-nougat-arm64-rel"
-  }
-  builders {
     name: "buildbucket/luci.chromium.try/android-opus-arm-rel"
   }
   builders {
diff --git a/infra/config/generated/luci-scheduler.cfg b/infra/config/generated/luci-scheduler.cfg
index 64b4b5ba..325de7a 100644
--- a/infra/config/generated/luci-scheduler.cfg
+++ b/infra/config/generated/luci-scheduler.cfg
@@ -11392,6 +11392,20 @@
   }
 }
 job {
+  id: "ci-win7-omaha-tester-rel"
+  realm: "ci"
+  acls {
+    role: TRIGGERER
+    granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+  }
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "win7-omaha-tester-rel"
+  }
+}
+job {
   id: "fuchsia-arm64-cast"
   realm: "ci"
   acl_sets: "ci"
@@ -12548,6 +12562,20 @@
   }
 }
 job {
+  id: "win7-omaha-tester-rel"
+  realm: "ci"
+  acls {
+    role: TRIGGERER
+    granted_to: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+  }
+  acl_sets: "ci"
+  buildbucket {
+    server: "cr-buildbucket.appspot.com"
+    bucket: "luci.chromium.ci"
+    builder: "win7-omaha-tester-rel"
+  }
+}
+job {
   id: "ci-m84-mac-osxbeta-rel"
   schedule: "triggered"
   acls {
diff --git a/infra/config/subprojects/chromium/master-only/ci.star b/infra/config/subprojects/chromium/master-only/ci.star
index fe7c9af..d64dea2 100644
--- a/infra/config/subprojects/chromium/master-only/ci.star
+++ b/infra/config/subprojects/chromium/master-only/ci.star
@@ -1626,16 +1626,27 @@
 ci.fyi_builder(
     name = "win-omaha-builder-rel",
     console_view_entry = ci.console_view_entry(
-        category = "win10",
+        category = "omaha|win",
+        short_name = "bld",
     ),
     os = os.WINDOWS_DEFAULT,
     cpu = cpu.X86_64,
 )
 
 ci.fyi_builder(
+    name = "win7-omaha-tester-rel",
+    console_view_entry = ci.console_view_entry(
+        category = "omaha|win",
+        short_name = "7",
+    ),
+    triggered_by = ["win-omaha-builder-rel"],
+)
+
+ci.fyi_builder(
     name = "win10-omaha-tester-rel",
     console_view_entry = ci.console_view_entry(
-        category = "win10",
+        category = "omaha|win",
+        short_name = "10",
     ),
     os = os.WINDOWS_10,
     triggered_by = ["win-omaha-builder-rel"],
diff --git a/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star b/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star
index fbeaa393..c7f20a73 100644
--- a/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star
+++ b/infra/config/subprojects/chromium/master-only/consoles/luci.chromium.try.star
@@ -9,7 +9,9 @@
         "try/android-lollipop-arm-rel",
         "try/android-marshmallow-arm64-rel",
         "try/android-marshmallow-x86-rel",
-        "try/android-nougat-arm64-rel",
+        # TODO(crbug.com/1111436) Added it back once all Pixel 1s are flashed
+        # back to NJH47F
+        # "try/android-nougat-arm64-rel",
         "try/android-oreo-arm64-cts-networkservice-dbg",
         "try/android-pie-arm64-coverage-rel",
         "try/android-pie-arm64-rel",
diff --git a/infra/config/subprojects/chromium/try.star b/infra/config/subprojects/chromium/try.star
index 48ac6d9..7a193f1 100644
--- a/infra/config/subprojects/chromium/try.star
+++ b/infra/config/subprojects/chromium/try.star
@@ -132,10 +132,12 @@
     ),
 )
 
-try_.chromium_android_builder(
-    name = "android-nougat-arm64-rel",
-    goma_jobs = goma.jobs.J150,
-)
+# TODO(crbug.com/1111436) Added it back once all Pixel 1s are flashed
+# back to NJH47F
+#try_.chromium_android_builder(
+#    name = "android-nougat-arm64-rel",
+#    goma_jobs = goma.jobs.J150,
+#)
 
 try_.chromium_android_builder(
     name = "android-pie-arm64-dbg",
diff --git a/infra/config/subprojects/chromium/versioned/m85/buckets/try.star b/infra/config/subprojects/chromium/versioned/m85/buckets/try.star
index 63daa824b..2ec27cc 100644
--- a/infra/config/subprojects/chromium/versioned/m85/buckets/try.star
+++ b/infra/config/subprojects/chromium/versioned/m85/buckets/try.star
@@ -100,10 +100,12 @@
     goma_jobs = goma.jobs.J150,
 )
 
-try_.chromium_android_builder(
-    name = "android-nougat-arm64-rel",
-    goma_jobs = goma.jobs.J150,
-)
+# TODO(crbug.com/1111436) Added it back once all Pixel 1s are flashed
+# back to NJH47F
+#try_.chromium_android_builder(
+#    name = "android-nougat-arm64-rel",
+#    goma_jobs = goma.jobs.J150,
+#)
 
 try_.chromium_android_builder(
     name = "android-pie-arm64-dbg",
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 0c438da..7b30e03 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -43,7 +43,7 @@
 <translation id="1375321115329958930">ছেভ কৰি থোৱা পাছৱৰ্ড</translation>
 <translation id="1377255359165588604">ছিংকৰ সুবিধাটোৱে কাম নকৰা হৈছে।</translation>
 <translation id="1377321085342047638">কার্ডৰ নম্বৰ</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1389974829397082527">ইয়াত কোনো বুকমাৰ্ক নাই</translation>
 <translation id="1400642268715879018">যোৱা ৪ সপ্তাহত</translation>
 <translation id="1407135791313364759">সকলো খোলক</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 97ae9d9..5d0b360 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -266,6 +266,7 @@
 <translation id="4002066346123236978">Назва</translation>
 <translation id="4004204301268239848">Паролі захоўваюцца ў вашым Уліковым запісе Google, і вы зможаце карыстацца імі з любой прылады.</translation>
 <translation id="4006921758705478413">Адправіць на вашы прылады</translation>
+<translation id="4018310736049373830">Кіраваць дзеяннямі</translation>
 <translation id="4038354071007134711">На прыладзе няма праграм, у якіх можна адкрыць гэты файл.</translation>
 <translation id="4042870976416480368">Знайсці на старонцы</translation>
 <translation id="4049507953662678203">Праверце, ці ёсць у вас падключэнне да сеткі, і паўтарыце спробу.</translation>
@@ -612,6 +613,7 @@
 <translation id="8007420562015504427">Пошук у рэжыме інкогніта</translation>
 <translation id="802154636333426148">Збой спампоўкі</translation>
 <translation id="8023878949384262191">Разгортвае раздзел.</translation>
+<translation id="8027581147000338959">Адкрыць у новым акне</translation>
 <translation id="804427445359061970">Вашы ўкладкі з іншых прылад знаходзяцца тут</translation>
 <translation id="8059533439631660104">Згортвае раздзел.</translation>
 <translation id="8065292699993359127">Адкрыць URL-адрасы ў Chrome у рэжыме інкогніта</translation>
@@ -628,6 +630,7 @@
 <translation id="8225985093977202398">Відарысы і файлы ў кэшы</translation>
 <translation id="8261506727792406068">Выдаліць</translation>
 <translation id="8281781826761538115">Стандартная мова: <ph name="DEFAULT_LOCALE" /></translation>
+<translation id="8299417921174340354">Каб выкарыстоўваць паролі, на прыладзе трэба спачатку наладзіць блакіроўку экрана.</translation>
 <translation id="8319076807703933069">Новы пошук</translation>
 <translation id="8323906514956095947">Каб адкрыць дадатковыя параметры ўкладкі, націсніце і ўтрымлівайце гэту кнопку</translation>
 <translation id="8328777765163860529">Закрыць усе</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index a8f69bb..c8081547 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -43,7 +43,7 @@
 <translation id="1375321115329958930">সংরক্ষিত পাসওয়ার্ড</translation>
 <translation id="1377255359165588604">সিঙ্ক কাজ করা বন্ধ করে দিয়েছে।</translation>
 <translation id="1377321085342047638">কার্ড নম্বর</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1389974829397082527">এখানে কোনো বুকমার্ক নেই</translation>
 <translation id="1400642268715879018">গত ৪ সপ্তাহ</translation>
 <translation id="1407135791313364759">সব খুলুন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 495cb65..3e447df 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -43,7 +43,7 @@
 <translation id="1375321115329958930">સાચવેલા પાસવર્ડ્સ</translation>
 <translation id="1377255359165588604">સમન્વયન એ કામ કરવાનું બંધ કરી દીધું છે.</translation>
 <translation id="1377321085342047638">કાર્ડ નંબર</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1389974829397082527">અહીં કોઈ બુકમાર્ક્સ નથી</translation>
 <translation id="1400642268715879018">છેલ્લા 4 અઠવાડિયા</translation>
 <translation id="1407135791313364759">બધું ખોલો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 984c5359..d58d0cb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -266,6 +266,7 @@
 <translation id="4002066346123236978">ಶೀರ್ಷಿಕೆ</translation>
 <translation id="4004204301268239848">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ, ಇದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ಬಳಸಬಹುದು.</translation>
 <translation id="4006921758705478413">ನಿಮ್ಮ ಸಾಧನಗಳಿಗೆ ಕಳುಹಿಸಿ</translation>
+<translation id="4018310736049373830">ಚಟುವಟಿಕೆ ನಿರ್ವಹಿಸಿ</translation>
 <translation id="4038354071007134711">ಫೈಲ್‌ ತೆರೆಯಬಹುದಾದ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಈ ಸಾಧನದಲ್ಲಿ ಇಲ್ಲ.</translation>
 <translation id="4042870976416480368">ಪುಟದಲ್ಲಿ ಹುಡುಕಿ</translation>
 <translation id="4049507953662678203">ನೀವು ನೆಟ್‌‌ವರ್ಕ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -365,7 +366,7 @@
 <translation id="5245322853195994030">ಸಿಂಕ್ ರದ್ದುಗೊಳಿಸಿ</translation>
 <translation id="5271549068863921519">ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸಿ</translation>
 <translation id="5295239312320826323"><ph name="USER_EMAIL" /> ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?</translation>
-<translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
+<translation id="5300589172476337783">ತೋರಿಸಿ</translation>
 <translation id="5317780077021120954">ಉಳಿಸು</translation>
 <translation id="5327248766486351172">ಹೆಸರು</translation>
 <translation id="5339316356165661760">ಸಿಂಕ್ ಆನ್ ಮಾಡಿ</translation>
@@ -629,6 +630,7 @@
 <translation id="8225985093977202398">ಸಂಗ್ರಹಿಸಲಾಗಿರುವ ಚಿತ್ರಗಳು ಮತ್ತು ಫೈಲ್‌ಗಳು</translation>
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
 <translation id="8281781826761538115">ಡಿಫಾಲ್ಟ್ - <ph name="DEFAULT_LOCALE" /></translation>
+<translation id="8299417921174340354">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಬಳಸಲು, ನೀವು ಮೊದಲು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಪಾಸ್‌ಕೋಡ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕು.</translation>
 <translation id="8319076807703933069">ಹೊಸ ಹುಡುಕಾಟ</translation>
 <translation id="8323906514956095947">ಹೆಚ್ಚಿನ ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗಾಗಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ</translation>
 <translation id="8328777765163860529">ಎಲ್ಲವನ್ನು ಮುಚ್ಚಿರಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 3d43fb69..154b430 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -43,7 +43,7 @@
 <translation id="1375321115329958930">சேமிக்கப்பட்ட கடவுச்சொற்கள்</translation>
 <translation id="1377255359165588604">ஒத்திசைவு நிறுத்தப்பட்டது.</translation>
 <translation id="1377321085342047638">கார்டு எண்</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1389974829397082527">இங்கு புக்மார்க்குகள் இல்லை</translation>
 <translation id="1400642268715879018">கடந்த 4 வாரங்கள்</translation>
 <translation id="1407135791313364759">எல்லாவற்றையும் திற</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index d394d12..7754af10 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -43,7 +43,7 @@
 <translation id="1375321115329958930">సేవ్ చేసిన పాస్‌వర్డ్‌లు</translation>
 <translation id="1377255359165588604">సమకాలీకరణ పని చేయడం ఆపివేయబడింది.</translation>
 <translation id="1377321085342047638">కార్డ్ సంఖ్య</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1389974829397082527">ఇక్కడ బుక్‌మార్క్‌లు ఏవీ లేవు</translation>
 <translation id="1400642268715879018">గత 4 వారాలు</translation>
 <translation id="1407135791313364759">అన్నీ తెరువు</translation>
diff --git a/ios/chrome/browser/browser_state/BUILD.gn b/ios/chrome/browser/browser_state/BUILD.gn
index f481636..9b29910 100644
--- a/ios/chrome/browser/browser_state/BUILD.gn
+++ b/ios/chrome/browser/browser_state/BUILD.gn
@@ -96,6 +96,7 @@
     "//ios/chrome/browser/crash_report/breadcrumbs",
     "//ios/chrome/browser/credential_provider",
     "//ios/chrome/browser/device_sharing",
+    "//ios/chrome/browser/discover_feed",
     "//ios/chrome/browser/dom_distiller",
     "//ios/chrome/browser/download",
     "//ios/chrome/browser/favicon",
diff --git a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
index d662ea0..8c00728 100644
--- a/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
+++ b/ios/chrome/browser/browser_state/browser_state_keyed_service_factories.mm
@@ -18,6 +18,7 @@
 #include "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_persistent_storage_keyed_service_factory.h"
 #include "ios/chrome/browser/credential_provider/credential_provider_service_factory.h"
 #import "ios/chrome/browser/device_sharing/device_sharing_manager_factory.h"
+#include "ios/chrome/browser/discover_feed/discover_feed_service_factory.h"
 #include "ios/chrome/browser/dom_distiller/dom_distiller_service_factory.h"
 #include "ios/chrome/browser/download/browser_download_service_factory.h"
 #include "ios/chrome/browser/favicon/favicon_service_factory.h"
@@ -108,6 +109,7 @@
   ConsentAuditorFactory::GetInstance();
   CredentialProviderServiceFactory::GetInstance();
   DeviceSharingManagerFactory::GetInstance();
+  DiscoverFeedServiceFactory::GetInstance();
   GoogleLogoServiceFactory::GetInstance();
   IdentityManagerFactory::GetInstance();
   IOSCookieBlockerFactory::GetInstance();
diff --git a/ios/chrome/browser/discover_feed/BUILD.gn b/ios/chrome/browser/discover_feed/BUILD.gn
new file mode 100644
index 0000000..11663b08
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2020 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("discover_feed") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "discover_feed_service.h",
+    "discover_feed_service.mm",
+    "discover_feed_service_factory.h",
+    "discover_feed_service_factory.mm",
+  ]
+  deps = [
+    "//base",
+    "//components/autofill/core/common",
+    "//components/keyed_service/core",
+    "//components/keyed_service/ios",
+    "//components/signin/public/identity_manager",
+    "//ios/chrome/browser/browser_state",
+    "//ios/chrome/browser/signin",
+    "//ios/public/provider/chrome/browser",
+    "//ios/public/provider/chrome/browser/discover_feed",
+  ]
+}
diff --git a/ios/chrome/browser/discover_feed/OWNERS b/ios/chrome/browser/discover_feed/OWNERS
new file mode 100644
index 0000000..c79c18c
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/OWNERS
@@ -0,0 +1,5 @@
+sczs@chromium.org
+gogerald@chromium.org
+
+# TEAM: ios-directory-owners@chromium.org
+# OS: iOS
diff --git a/ios/chrome/browser/discover_feed/discover_feed_service.h b/ios/chrome/browser/discover_feed/discover_feed_service.h
new file mode 100644
index 0000000..f0dd01f
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/discover_feed_service.h
@@ -0,0 +1,47 @@
+// Copyright 2020 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_DISCOVER_FEED_DISCOVER_FEED_SERVICE_H_
+#define IOS_CHROME_BROWSER_DISCOVER_FEED_DISCOVER_FEED_SERVICE_H_
+
+#include "components/keyed_service/core/keyed_service.h"
+#include "components/signin/public/identity_manager/identity_manager.h"
+
+class AuthenticationService;
+class DiscoverFeedProvider;
+
+// A browser-context keyed service that is used to keep the Discover Feed data
+// up to date.
+class DiscoverFeedService : public KeyedService,
+                            public signin::IdentityManager::Observer {
+ public:
+  // Initializes the service.
+  DiscoverFeedService(signin::IdentityManager* identity_manager,
+                      AuthenticationService* authentication_service,
+                      DiscoverFeedProvider* feed_provider);
+  ~DiscoverFeedService() override;
+
+  // KeyedService:
+  void Shutdown() override;
+
+ private:
+  // IdentityManager::Observer.
+  void OnPrimaryAccountSet(
+      const CoreAccountInfo& primary_account_info) override;
+  void OnPrimaryAccountCleared(
+      const CoreAccountInfo& previous_primary_account_info) override;
+
+  // Identity manager to observe.
+  signin::IdentityManager* identity_manager_;
+
+  // The AuthenticationService sent to DiscoverFeedProvider;
+  AuthenticationService* authentication_service_ = nullptr;
+
+  // Discover Feed provider to notify of changes.
+  DiscoverFeedProvider* discover_feed_provider_;
+
+  DISALLOW_COPY_AND_ASSIGN(DiscoverFeedService);
+};
+
+#endif  // IOS_CHROME_BROWSER_DISCOVER_FEED_DISCOVER_FEED_SERVICE_H_
diff --git a/ios/chrome/browser/discover_feed/discover_feed_service.mm b/ios/chrome/browser/discover_feed/discover_feed_service.mm
new file mode 100644
index 0000000..70397f0
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/discover_feed_service.mm
@@ -0,0 +1,42 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/chrome/browser/discover_feed/discover_feed_service.h"
+
+#import "ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+DiscoverFeedService::DiscoverFeedService(
+    signin::IdentityManager* identity_manager,
+    AuthenticationService* authentication_service,
+    DiscoverFeedProvider* feed_provider)
+    : identity_manager_(identity_manager),
+      authentication_service_(authentication_service),
+      discover_feed_provider_(feed_provider) {
+  if (identity_manager_) {
+    identity_manager_->AddObserver(this);
+  }
+  discover_feed_provider_->StartFeed(authentication_service_);
+}
+
+DiscoverFeedService::~DiscoverFeedService() {}
+
+void DiscoverFeedService::Shutdown() {
+  if (identity_manager_) {
+    identity_manager_->RemoveObserver(this);
+  }
+}
+
+void DiscoverFeedService::OnPrimaryAccountSet(
+    const CoreAccountInfo& primary_account_info) {
+  discover_feed_provider_->UpdateFeedForAccountChange();
+}
+
+void DiscoverFeedService::OnPrimaryAccountCleared(
+    const CoreAccountInfo& previous_primary_account_info) {
+  discover_feed_provider_->UpdateFeedForAccountChange();
+}
diff --git a/ios/chrome/browser/discover_feed/discover_feed_service_factory.h b/ios/chrome/browser/discover_feed/discover_feed_service_factory.h
new file mode 100644
index 0000000..b18d95e
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/discover_feed_service_factory.h
@@ -0,0 +1,36 @@
+// Copyright 2020 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_DISCOVER_FEED_DISCOVER_FEED_SERVICE_FACTORY_H_
+#define IOS_CHROME_BROWSER_DISCOVER_FEED_DISCOVER_FEED_SERVICE_FACTORY_H_
+
+#include "base/no_destructor.h"
+#include "components/keyed_service/ios/browser_state_keyed_service_factory.h"
+
+class ChromeBrowserState;
+class DiscoverFeedService;
+
+// Singleton that owns all DiscoverFeedServices and associates them with
+// ChromeBrowserState.
+class DiscoverFeedServiceFactory : public BrowserStateKeyedServiceFactory {
+ public:
+  static DiscoverFeedService* GetForBrowserState(
+      ChromeBrowserState* browser_state);
+
+  static DiscoverFeedServiceFactory* GetInstance();
+
+ private:
+  friend class base::NoDestructor<DiscoverFeedServiceFactory>;
+
+  DiscoverFeedServiceFactory();
+  ~DiscoverFeedServiceFactory() override;
+
+  // BrowserStateKeyedServiceFactory implementation.
+  std::unique_ptr<KeyedService> BuildServiceInstanceFor(
+      web::BrowserState* context) const override;
+
+  DISALLOW_COPY_AND_ASSIGN(DiscoverFeedServiceFactory);
+};
+
+#endif  // IOS_CHROME_BROWSER_DISCOVER_FEED_DISCOVER_FEED_SERVICE_FACTORY_H_
diff --git a/ios/chrome/browser/discover_feed/discover_feed_service_factory.mm b/ios/chrome/browser/discover_feed/discover_feed_service_factory.mm
new file mode 100644
index 0000000..f564d2b9
--- /dev/null
+++ b/ios/chrome/browser/discover_feed/discover_feed_service_factory.mm
@@ -0,0 +1,55 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/chrome/browser/discover_feed/discover_feed_service_factory.h"
+
+#include "components/keyed_service/ios/browser_state_dependency_manager.h"
+#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/discover_feed/discover_feed_service.h"
+#import "ios/chrome/browser/signin/authentication_service_factory.h"
+#include "ios/chrome/browser/signin/identity_manager_factory.h"
+#import "ios/public/provider/chrome/browser/chrome_browser_provider.h"
+#import "ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+// static
+DiscoverFeedService* DiscoverFeedServiceFactory::GetForBrowserState(
+    ChromeBrowserState* browser_state) {
+  return static_cast<DiscoverFeedService*>(
+      GetInstance()->GetServiceForBrowserState(browser_state, true));
+}
+
+// static
+DiscoverFeedServiceFactory* DiscoverFeedServiceFactory::GetInstance() {
+  static base::NoDestructor<DiscoverFeedServiceFactory> instance;
+  return instance.get();
+}
+
+DiscoverFeedServiceFactory::DiscoverFeedServiceFactory()
+    : BrowserStateKeyedServiceFactory(
+          "DiscoverFeedService",
+          BrowserStateDependencyManager::GetInstance()) {
+  DependsOn(AuthenticationServiceFactory::GetInstance());
+  DependsOn(IdentityManagerFactory::GetInstance());
+}
+
+DiscoverFeedServiceFactory::~DiscoverFeedServiceFactory() = default;
+
+std::unique_ptr<KeyedService>
+DiscoverFeedServiceFactory::BuildServiceInstanceFor(
+    web::BrowserState* context) const {
+  ChromeBrowserState* browser_state =
+      ChromeBrowserState::FromBrowserState(context);
+  signin::IdentityManager* identity_manager =
+      IdentityManagerFactory::GetForBrowserState(browser_state);
+  AuthenticationService* authentication_service =
+      AuthenticationServiceFactory::GetForBrowserState(browser_state);
+
+  return std::make_unique<DiscoverFeedService>(
+      identity_manager, authentication_service,
+      ios::GetChromeBrowserProvider()->GetDiscoverFeedProvider());
+}
diff --git a/ios/chrome/browser/prefs/browser_prefs.mm b/ios/chrome/browser/prefs/browser_prefs.mm
index f399ca0..c5f58450 100644
--- a/ios/chrome/browser/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/prefs/browser_prefs.mm
@@ -140,6 +140,8 @@
 
   registry->RegisterBooleanPref(enterprise_reporting::kCloudReportingEnabled,
                                 false);
+  registry->RegisterTimePref(enterprise_reporting::kLastUploadTimestamp,
+                             base::Time());
 }
 
 void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry) {
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/address_view_controller_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/address_view_controller_egtest.mm
index 55444942..662878e0 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/address_view_controller_egtest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/address_view_controller_egtest.mm
@@ -272,7 +272,15 @@
 }
 
 // Tests that the address icon is hidden when no addresses are available.
-- (void)testAddressIconIsNotVisibleWhenAddressStoreEmpty {
+// TODO(crbug.com/1116043): Flaky on ios simulator.
+#if TARGET_IPHONE_SIMULATOR
+#define MAYBE_testAddressIconIsNotVisibleWhenAddressStoreEmpty \
+  DISABLED_testAddressIconIsNotVisibleWhenAddressStoreEmpty
+#else
+#define MAYBE_testAddressIconIsNotVisibleWhenAddressStoreEmpty \
+  testAddressIconIsNotVisibleWhenAddressStoreEmpty
+#endif
+- (void)MAYBE_testAddressIconIsNotVisibleWhenAddressStoreEmpty {
   // Delete the profile that is added on |-setUp|.
   [AutofillAppInterface clearProfilesStore];
 
diff --git a/ios/chrome/browser/ui/content_suggestions/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/BUILD.gn
index a42ffbd0..9d51f4b 100644
--- a/ios/chrome/browser/ui/content_suggestions/BUILD.gn
+++ b/ios/chrome/browser/ui/content_suggestions/BUILD.gn
@@ -48,6 +48,7 @@
     "//ios/chrome/app/strings",
     "//ios/chrome/browser",
     "//ios/chrome/browser/browser_state",
+    "//ios/chrome/browser/discover_feed",
     "//ios/chrome/browser/drag_and_drop",
     "//ios/chrome/browser/favicon",
     "//ios/chrome/browser/main:public",
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm
index 576373e4..ae270cb 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm
@@ -15,6 +15,7 @@
 #include "components/ntp_tiles/most_visited_sites.h"
 #include "components/prefs/pref_service.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/discover_feed/discover_feed_service_factory.h"
 #include "ios/chrome/browser/drag_and_drop/drag_and_drop_flag.h"
 #import "ios/chrome/browser/drag_and_drop/url_drag_drop_handler.h"
 #include "ios/chrome/browser/favicon/ios_chrome_large_icon_cache_factory.h"
@@ -197,6 +198,11 @@
       ReadingListModelFactory::GetForBrowserState(
           self.browser->GetBrowserState());
 
+  if (IsDiscoverFeedEnabled()) {
+    // Creating the DiscoverFeedService will start the DiscoverFeed.
+    DiscoverFeedServiceFactory::GetForBrowserState(
+        self.browser->GetBrowserState());
+  }
   self.discoverFeedViewController = [self discoverFeed];
 
   self.contentSuggestionsMediator = [[ContentSuggestionsMediator alloc]
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.h
index 57bf1ed50..181e88c 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.h
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.h
@@ -16,6 +16,9 @@
 // The cached scroll position of the NTP.
 @property(nonatomic, assign) CGFloat offset;
 
+// The total scroll height of the NTP.
+@property(nonatomic, assign) CGFloat ntpHeight;
+
 // Creates layout with |offset| as additional height. Allows the view's height
 // to be increased enough to maintain the scroll position. Only needed if
 // Discover feed is enabled.
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.mm
index 12d43807..feb50fd 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_layout.mm
@@ -30,9 +30,11 @@
   // The minimum height for the collection view content should be the height of
   // the header plus the height of the collection view minus the height of the
   // NTP bottom bar. This allows the Most Visited cells to be scrolled up to the
-  // top of the screen.
-  CGFloat minimumHeight = collectionViewHeight + headerHeight -
-                          ntp_header::kScrolledToTopOmniboxBottomMargin;
+  // top of the screen. Also computes the total NTP scrolling height for
+  // Discover infinite feed.
+  self.ntpHeight = collectionViewHeight + headerHeight;
+  CGFloat minimumHeight =
+      self.ntpHeight - ntp_header::kScrolledToTopOmniboxBottomMargin;
   CGFloat topSafeArea = self.collectionView.safeAreaInsets.top;
   if (!IsRegularXRegularSizeClass(self.collectionView)) {
     CGFloat toolbarHeight =
@@ -40,8 +42,10 @@
             ? ToolbarExpandedHeight([UIApplication sharedApplication]
                                         .preferredContentSizeCategory)
             : 0;
-    minimumHeight -=
+    CGFloat additionalHeight =
         toolbarHeight + topSafeArea + self.collectionView.contentInset.bottom;
+    minimumHeight -= additionalHeight;
+    self.ntpHeight += additionalHeight;
   }
 
   CGSize contentSize = [super collectionViewContentSize];
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm
index b6746ac..b8110e29 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_view_controller.mm
@@ -52,7 +52,7 @@
 const CGFloat kCardBorderRadius = 11;
 const CGFloat kDiscoverFeedContentWith = 430;
 // Value representing offset from bottom of the page to trigger pagination.
-const CGFloat kPaginationOffset = 100;
+const CGFloat kPaginationOffset = 400;
 // Height for the Discover Feed section header.
 const CGFloat kDiscoverFeedFeaderHeight = 30;
 }
@@ -697,7 +697,15 @@
   if (IsDiscoverFeedEnabled() && self.contentSuggestionsEnabled) {
     float scrollPosition =
         scrollView.contentOffset.y + scrollView.frame.size.height;
-    if (scrollPosition >= scrollView.contentSize.height - kPaginationOffset) {
+    // Check if view is bouncing to ignore overscoll positions for infinite feed
+    // triggering.
+    BOOL isBouncing =
+        (scrollView.contentOffset.y >=
+         (scrollView.contentSize.height - scrollView.bounds.size.height));
+    ContentSuggestionsLayout* layout = static_cast<ContentSuggestionsLayout*>(
+        self.collectionView.collectionViewLayout);
+    if (scrollPosition > scrollView.contentSize.height - kPaginationOffset &&
+        scrollPosition > layout.ntpHeight && !isBouncing) {
       [self.handler loadMoreFeedArticles];
     }
   }
diff --git a/ios/chrome/browser/ui/download/download_manager_egtest.mm b/ios/chrome/browser/ui/download/download_manager_egtest.mm
index 868f523..b9886c43 100644
--- a/ios/chrome/browser/ui/download/download_manager_egtest.mm
+++ b/ios/chrome/browser/ui/download/download_manager_egtest.mm
@@ -203,8 +203,7 @@
 }
 
 // Tests "Open in New Tab" on download link.
-// TODO(crbug.com/1107378): reenable this test.
-- (void)DISABLED_testDownloadInNewTab {
+- (void)testDownloadInNewTab {
   [ChromeEarlGrey loadURL:self.testServer->GetURL("/")];
   [ChromeEarlGrey waitForWebStateContainingText:"Download"];
 
diff --git a/ios/chrome/browser/ui/download/pass_kit_egtest.mm b/ios/chrome/browser/ui/download/pass_kit_egtest.mm
index ce0c8b8..29ab744 100644
--- a/ios/chrome/browser/ui/download/pass_kit_egtest.mm
+++ b/ios/chrome/browser/ui/download/pass_kit_egtest.mm
@@ -122,9 +122,7 @@
 
 // Tests that Chrome PassKit dialog is shown for sucessfully downloaded pkpass
 // file.
-//
-// Flaky https://crbug.com/1109131.
-- (void)DISABLED_testPassKitDownload {
+- (void)testPassKitDownload {
   if ([ChromeEarlGrey isIPadIdiom]) {
     EARL_GREY_TEST_SKIPPED(@"Wallet app is not supported on iPads.");
   }
diff --git a/ios/chrome/browser/web/forms_egtest.mm b/ios/chrome/browser/web/forms_egtest.mm
index e8e61a99..0662de1d 100644
--- a/ios/chrome/browser/web/forms_egtest.mm
+++ b/ios/chrome/browser/web/forms_egtest.mm
@@ -528,8 +528,7 @@
 // Tests that submitting a POST-based form by tapping the 'Go' button on the
 // keyboard navigates to the correct URL and the back button works as expected
 // afterwards.
-// TODO(crbug.com/1106741): reenable this test.
-- (void)DISABLED_testPostFormEntryWithKeyboard {
+- (void)testPostFormEntryWithKeyboard {
   // Test fails on iPad Air 2 13.4 crbug.com/1102608.
   if ([ChromeEarlGrey isIPadIdiom] && base::ios::IsRunningOnOrLater(13, 0, 0)) {
     EARL_GREY_TEST_DISABLED(@"Fails in iOS 13 on iPads.");
diff --git a/ios/chrome/browser/web/tab_order_egtest.mm b/ios/chrome/browser/web/tab_order_egtest.mm
index ebbb0184..96ecdae 100644
--- a/ios/chrome/browser/web/tab_order_egtest.mm
+++ b/ios/chrome/browser/web/tab_order_egtest.mm
@@ -47,8 +47,7 @@
 @implementation TabOrderTestCase
 
 // Tests that new tabs are always inserted after their parent tab.
-// TODO(crbug.com/1106739): reenable this test.
-- (void)DISABLED_testChildTabOrdering {
+- (void)testChildTabOrdering {
   GREYAssertTrue(self.testServer->Start(), @"Test server failed to start.");
   const GURL URL1 = self.testServer->GetURL(kLinksTestURL1);
 
diff --git a/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h b/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h
index 7d427a40..cff36b7 100644
--- a/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h
+++ b/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.h
@@ -7,9 +7,8 @@
 
 #import <UIKit/UIKit.h>
 
-#include "base/ios/block_types.h"
-
 @protocol ApplicationCommands;
+class AuthenticationService;
 class Browser;
 
 // DiscoverFeedProvider allows embedders to provide functionality for a Discover
@@ -35,6 +34,8 @@
   DiscoverFeedProvider(const DiscoverFeedProvider&) = delete;
   DiscoverFeedProvider& operator=(const DiscoverFeedProvider&) = delete;
 
+  // Starts the Feed using |auth_service| to check if user is Signed In/Out.
+  virtual void StartFeed(AuthenticationService* auth_service);
   // Returns true if the Discover Feed is enabled.
   virtual bool IsDiscoverFeedEnabled();
   // Returns the Discover Feed ViewController.
@@ -45,9 +46,8 @@
   // Refreshes the Discover Feed. Once the Feed model is refreshed it will
   // update all ViewControllers returned by NewFeedViewController.
   virtual void RefreshFeed();
-  // DEPRECATED. Delete once https://crrev.com/i/3205705 lands, along
-  // base/ios/block_types.h
-  virtual void RefreshFeedWithCompletion(ProceduralBlock completion);
+  // Updates the Feed for an account change e.g. Signing In/Out.
+  virtual void UpdateFeedForAccountChange();
   // Methods to register or remove observers.
   virtual void AddObserver(Observer* observer);
   virtual void RemoveObserver(Observer* observer);
diff --git a/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.mm b/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.mm
index 7723bd9a..a4811b4f 100644
--- a/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.mm
+++ b/ios/public/provider/chrome/browser/discover_feed/discover_feed_provider.mm
@@ -8,6 +8,8 @@
 #error "This file requires ARC support."
 #endif
 
+void DiscoverFeedProvider::StartFeed(AuthenticationService* auth_service) {}
+
 bool DiscoverFeedProvider::IsDiscoverFeedEnabled() {
   return false;
 }
@@ -20,8 +22,8 @@
 void DiscoverFeedProvider::UpdateTheme() {}
 
 void DiscoverFeedProvider::RefreshFeed() {}
-void DiscoverFeedProvider::RefreshFeedWithCompletion(
-    ProceduralBlock completion) {}
+
+void DiscoverFeedProvider::UpdateFeedForAccountChange() {}
 
 void DiscoverFeedProvider::AddObserver(Observer* observer) {}
 void DiscoverFeedProvider::RemoveObserver(Observer* observer) {}
diff --git a/ios/third_party/earl_grey2/BUILD.gn b/ios/third_party/earl_grey2/BUILD.gn
index ad102d6..7ea5c5d 100644
--- a/ios/third_party/earl_grey2/BUILD.gn
+++ b/ios/third_party/earl_grey2/BUILD.gn
@@ -98,8 +98,6 @@
     "src/CommonLib/Error/GREYErrorFormatter.m",
     "src/CommonLib/Error/GREYObjectFormatter.h",
     "src/CommonLib/Error/GREYObjectFormatter.m",
-    "src/CommonLib/Error/GREYScrollActionError.h",
-    "src/CommonLib/Error/GREYScrollActionError.m",
     "src/CommonLib/Error/NSError+GREYCommon.h",
     "src/CommonLib/Error/NSError+GREYCommon.m",
     "src/CommonLib/Event/GREYTouchInfo.h",
@@ -234,6 +232,7 @@
     "src/AppFramework/Action/GREYAction.h",
     "src/AppFramework/Action/GREYActions.h",
     "src/AppFramework/Action/GREYActionsShorthand.h",
+    "src/AppFramework/Additions/UITextSelectionView+GREYApp.h",
     "src/AppFramework/Config/GREYAppConfiguration.h",
     "src/AppFramework/Core/GREYElementInteraction.h",
     "src/AppFramework/Core/GREYInteraction.h",
@@ -458,8 +457,6 @@
     "src/TestLib/EarlGreyImpl/XCUIApplication+GREYTest.m",
     "src/TestLib/Exception/GREYDefaultFailureHandler.h",
     "src/TestLib/Exception/GREYDefaultFailureHandler.m",
-    "src/TestLib/Exception/GREYFailureFormatter.h",
-    "src/TestLib/Exception/GREYFailureFormatter.m",
     "src/TestLib/Exception/GREYFailureHandlerHelpers.h",
     "src/TestLib/Exception/GREYFailureHandlerHelpers.m",
     "src/TestLib/Exception/GREYFailureScreenshotSaver.h",
diff --git a/ios/web/BUILD.gn b/ios/web/BUILD.gn
index 8577539..a6fd0c0b 100644
--- a/ios/web/BUILD.gn
+++ b/ios/web/BUILD.gn
@@ -584,11 +584,13 @@
   closure_entry_point = "__crWeb.mainFrameWebBundle"
 
   sources = [
+    "//third_party/text-fragments-polyfill/src/src/text-fragment-utils.js",
     "web_state/js/resources/error.js",
     "web_state/js/resources/main_frame_context_menu.js",
     "web_state/js/resources/main_frame_web_bundle.js",
     "web_state/js/resources/navigation.js",
     "web_state/js/resources/scroll_workaround.js",
+    "web_state/js/resources/text_fragments.js",
   ]
 }
 
diff --git a/ios/web/navigation/crw_wk_navigation_handler.mm b/ios/web/navigation/crw_wk_navigation_handler.mm
index 63d7328..871de21 100644
--- a/ios/web/navigation/crw_wk_navigation_handler.mm
+++ b/ios/web/navigation/crw_wk_navigation_handler.mm
@@ -6,6 +6,7 @@
 
 #include "base/feature_list.h"
 #import "base/ios/ns_error_util.h"
+#include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/timer/timer.h"
@@ -23,6 +24,7 @@
 #import "ios/web/navigation/navigation_context_impl.h"
 #import "ios/web/navigation/navigation_manager_impl.h"
 #include "ios/web/navigation/navigation_manager_util.h"
+#import "ios/web/navigation/text_fragment_utils.h"
 #import "ios/web/navigation/web_kit_constants.h"
 #import "ios/web/navigation/wk_back_forward_list_item_holder.h"
 #import "ios/web/navigation/wk_navigation_action_policy_util.h"
@@ -1024,6 +1026,14 @@
     didFinishNavigation:(WKNavigation*)navigation {
   [self didReceiveWKNavigationDelegateCallback];
 
+  NSUInteger forwardItemCount = webView.backForwardList.forwardList.count;
+  base::UmaHistogramBoolean("Session.WebStates.HasForwardItemsAfterNavigation",
+                            forwardItemCount > 0);
+  if (forwardItemCount > 0) {
+    base::UmaHistogramCounts100(
+        "Session.WebStates.ForwardItemsCountAfterNavigation", forwardItemCount);
+  }
+
   // Sometimes |webView:didFinishNavigation| arrives before
   // |webView:didCommitNavigation|. Explicitly trigger post-commit processing.
   bool navigationCommitted =
@@ -1141,6 +1151,10 @@
     }
   }
 
+  if (context && web::AreTextFragmentsAllowed(context)) {
+    web::HandleTextFragments(self.webStateImpl);
+  }
+
   [self.navigationStates setState:web::WKNavigationState::FINISHED
                     forNavigation:navigation];
 
diff --git a/ios/web/navigation/text_fragment_utils.h b/ios/web/navigation/text_fragment_utils.h
index 6ab1089..1183629 100644
--- a/ios/web/navigation/text_fragment_utils.h
+++ b/ios/web/navigation/text_fragment_utils.h
@@ -12,6 +12,7 @@
 namespace web {
 
 class NavigationContext;
+class WebState;
 
 // This file contains helper functions relating to Text Fragments, which are
 // appended to the reference fragment in the URL and instruct the user agent
@@ -25,7 +26,7 @@
 
 // Checks the destination URL for Text Fragments. If found, searches the DOM for
 // matching text, highlights the text, and scrolls the first into view.
-void HandleTextFragments(NavigationContext* context);
+void HandleTextFragments(WebState* state);
 
 // Exposed for testing only.
 namespace internal {
@@ -33,7 +34,7 @@
 // Checks the fragment portion of the URL for Text Fragments. Returns zero or
 // more dictionaries containing the parsed parameters used by the fragment-
 // finding algorithm, as defined in the spec.
-std::vector<base::Value> ParseTextFragments(const GURL& url);
+base::Value ParseTextFragments(const GURL& url);
 
 // Extracts the text fragments, if any, from a ref string.
 std::vector<std::string> ExtractTextFragments(std::string ref_string);
diff --git a/ios/web/navigation/text_fragment_utils.mm b/ios/web/navigation/text_fragment_utils.mm
index 57688e4..e7cbc1b 100644
--- a/ios/web/navigation/text_fragment_utils.mm
+++ b/ios/web/navigation/text_fragment_utils.mm
@@ -6,7 +6,10 @@
 
 #include <cstring.h>
 
+#include "base/json/json_writer.h"
 #include "base/strings/string_split.h"
+#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
 #include "ios/web/common/features.h"
 #import "ios/web/public/navigation/navigation_context.h"
 #import "ios/web/public/web_state.h"
@@ -38,26 +41,35 @@
   return context->HasUserGesture() && !context->IsSameDocument();
 }
 
-void HandleTextFragments(NavigationContext* context) {
-  // TODO(crbug.com/1099268): Parse URL fragment, execute JS using passed
-  // params.
+void HandleTextFragments(WebState* state) {
+  std::string fragment_param;
+  base::JSONWriter::Write(
+      internal::ParseTextFragments(state->GetLastCommittedURL()),
+      &fragment_param);
+
+  std::string script = base::ReplaceStringPlaceholders(
+      "__gCrWeb.textFragments.handleTextFragments($1, $2)",
+      {fragment_param, /* scroll = */ "true"},
+      /* offsets= */ nullptr);
+
+  state->ExecuteJavaScript(base::UTF8ToUTF16(script));
 }
 
 namespace internal {
 
-std::vector<base::Value> ParseTextFragments(const GURL& url) {
+base::Value ParseTextFragments(const GURL& url) {
   if (!url.has_ref())
     return {};
   std::vector<std::string> fragments = ExtractTextFragments(url.ref());
   if (fragments.empty())
     return {};
 
-  std::vector<base::Value> parsed;
+  base::Value parsed(base::Value::Type::LIST);
   for (const std::string& fragment : fragments) {
     base::Value parsed_fragment = TextFragmentToValue(fragment);
     if (parsed_fragment.type() == base::Value::Type::NONE)
       continue;
-    parsed.push_back(std::move(parsed_fragment));
+    parsed.Append(std::move(parsed_fragment));
   }
 
   return parsed;
diff --git a/ios/web/navigation/text_fragment_utils_unittest.mm b/ios/web/navigation/text_fragment_utils_unittest.mm
index 3b715b8c..aa2b0bc 100644
--- a/ios/web/navigation/text_fragment_utils_unittest.mm
+++ b/ios/web/navigation/text_fragment_utils_unittest.mm
@@ -70,16 +70,16 @@
 TEST_F(TextFragmentUtilsTest, ParseTextFragments) {
   GURL url_with_fragment(
       "https://www.example.com/#idFrag:~:text=text%201&text=text%202");
-  std::vector<base::Value> result =
-      internal::ParseTextFragments(url_with_fragment);
-  ASSERT_EQ(2u, result.size());
-  EXPECT_EQ("text%201", result[0].FindKey(kTextStartKey)->GetString());
-  EXPECT_EQ("text%202", result[1].FindKey(kTextStartKey)->GetString());
+  base::Value result = internal::ParseTextFragments(url_with_fragment);
+  ASSERT_EQ(2u, result.GetList().size());
+  EXPECT_EQ("text%201",
+            result.GetList()[0].FindKey(kTextStartKey)->GetString());
+  EXPECT_EQ("text%202",
+            result.GetList()[1].FindKey(kTextStartKey)->GetString());
 
   GURL url_no_fragment("www.example.com");
-  std::vector<base::Value> empty_result =
-      internal::ParseTextFragments(url_no_fragment);
-  EXPECT_TRUE(empty_result.empty());
+  base::Value empty_result = internal::ParseTextFragments(url_no_fragment);
+  EXPECT_TRUE(empty_result.is_none());
 }
 
 TEST_F(TextFragmentUtilsTest, ExtractTextFragments) {
diff --git a/ios/web/web_state/js/resources/main_frame_web_bundle.js b/ios/web/web_state/js/resources/main_frame_web_bundle.js
index 5edf7e7..4b017a1 100644
--- a/ios/web/web_state/js/resources/main_frame_web_bundle.js
+++ b/ios/web/web_state/js/resources/main_frame_web_bundle.js
@@ -11,3 +11,4 @@
 goog.require('__crWeb.mainFrameContextMenu');
 goog.require('__crWeb.navigation');
 goog.require('__crWeb.scrollWorkaround');
+goog.require('__crWeb.textFragments');
diff --git a/ios/web/web_state/js/resources/text_fragments.js b/ios/web/web_state/js/resources/text_fragments.js
new file mode 100644
index 0000000..0002b22
--- /dev/null
+++ b/ios/web/web_state/js/resources/text_fragments.js
@@ -0,0 +1,55 @@
+// Copyright 2020 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.
+
+goog.module('__crWeb.textFragments');
+goog.module.declareLegacyNamespace();
+
+const utils = goog.require(
+    'googleChromeLabs.textFragmentPolyfill.textFragmentUtils');
+
+/**
+ * @fileoverview Interface used for Chrome/WebView to call into the
+ * text-fragments-polyfill lib, which handles finding text fragments provided
+ * by the navigation layer, highlighting them, and scrolling them into view.
+ */
+
+(function() {
+
+  __gCrWeb['textFragments'] = {};
+
+  /**
+   * Attempts to identify and highlight the given text fragments and,
+   * optionally, scroll them into view.
+   */
+  __gCrWeb.textFragments.handleTextFragments = function(fragments, scroll) {
+    if (document.readyState === "complete" ||
+        document.readyState === "interactive") {
+      doHandleTextFragments(fragments, scroll);
+    } else {
+      document.addEventListener("DOMContentLoaded", () => {
+        doHandleTextFragments(fragments, scroll);
+      });
+    }
+  }
+
+  /**
+   * Does the actual work for handleTextFragments.
+   */
+  const doHandleTextFragments = function(fragments, scroll) {
+    let marks = [];
+
+    for (const fragment of fragments) {
+      let newMarks = utils.processTextFragmentDirective(fragment);
+      if (Array.isArray(newMarks))
+        marks.push(...newMarks);
+    }
+
+    if (scroll && marks.length > 0)
+      utils.scrollElementIntoView(marks[0]);
+
+    // TODO(crbug.com/1099268): Count successes/failures above and log metrics
+    // TODO(crbug.com/1099268): Make marks disappear on user interaction
+  }
+
+})();
diff --git a/ios/web/web_state/web_state_impl.mm b/ios/web/web_state/web_state_impl.mm
index ee029c5..61db0a8a 100644
--- a/ios/web/web_state/web_state_impl.mm
+++ b/ios/web/web_state/web_state_impl.mm
@@ -20,7 +20,6 @@
 #import "ios/web/navigation/navigation_context_impl.h"
 #import "ios/web/navigation/navigation_item_impl.h"
 #import "ios/web/navigation/session_storage_builder.h"
-#import "ios/web/navigation/text_fragment_utils.h"
 #import "ios/web/navigation/wk_based_navigation_manager_impl.h"
 #import "ios/web/navigation/wk_navigation_util.h"
 #include "ios/web/public/browser_state.h"
@@ -859,10 +858,6 @@
       observer.FaviconUrlUpdated(this, cached_favicon_urls_);
     }
   }
-
-  if (AreTextFragmentsAllowed(context)) {
-    HandleTextFragments(context);
-  }
 }
 
 #pragma mark - NavigationManagerDelegate implementation
diff --git a/ios/web_view/BUILD.gn b/ios/web_view/BUILD.gn
index 7d497d8..8c93192 100644
--- a/ios/web_view/BUILD.gn
+++ b/ios/web_view/BUILD.gn
@@ -172,6 +172,8 @@
     "internal/passwords/web_view_password_manager_driver.mm",
     "internal/passwords/web_view_password_manager_log_router_factory.h",
     "internal/passwords/web_view_password_manager_log_router_factory.mm",
+    "internal/passwords/web_view_password_requirements_service_factory.h",
+    "internal/passwords/web_view_password_requirements_service_factory.mm",
     "internal/passwords/web_view_password_store_factory.h",
     "internal/passwords/web_view_password_store_factory.mm",
     "internal/pref_names.h",
diff --git a/ios/web_view/internal/autofill/cwv_autofill_controller.mm b/ios/web_view/internal/autofill/cwv_autofill_controller.mm
index d55b77be..93b4f23 100644
--- a/ios/web_view/internal/autofill/cwv_autofill_controller.mm
+++ b/ios/web_view/internal/autofill/cwv_autofill_controller.mm
@@ -25,6 +25,7 @@
 #import "components/autofill/ios/form_util/form_activity_observer_bridge.h"
 #include "components/autofill/ios/form_util/form_activity_params.h"
 #include "components/keyed_service/core/service_access_type.h"
+#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
 #import "components/password_manager/ios/shared_password_controller.h"
 #include "components/password_manager/ios/unique_id_tab_helper.h"
 #include "components/sync/driver/sync_service.h"
@@ -57,6 +58,7 @@
 #import "ios/web_view/internal/sync/web_view_profile_sync_service_factory.h"
 #include "ios/web_view/internal/web_view_browser_state.h"
 #import "ios/web_view/public/cwv_autofill_controller_delegate.h"
+#import "net/base/mac/url_conversions.h"
 
 using autofill::FormRendererId;
 using autofill::FieldRendererId;
@@ -654,7 +656,23 @@
 
 - (void)showPasswordBreachForLeakType:(CredentialLeakType)leakType
                                   URL:(const GURL&)URL {
-  // No op.
+  if ([self.delegate
+          respondsToSelector:@selector(autofillController:
+                                 notifyUserOfPasswordLeakOnURL:leakType:)]) {
+    CWVPasswordLeakType cwvLeakType = 0;
+    if (password_manager::IsPasswordSaved(leakType)) {
+      cwvLeakType |= CWVPasswordLeakTypeSaved;
+    }
+    if (password_manager::IsPasswordUsedOnOtherSites(leakType)) {
+      cwvLeakType |= CWVPasswordLeakTypeUsedOnOtherSites;
+    }
+    if (password_manager::IsSyncingPasswordsNormally(leakType)) {
+      cwvLeakType |= CWVPasswordLeakTypeSyncingNormally;
+    }
+    [self.delegate autofillController:self
+        notifyUserOfPasswordLeakOnURL:net::NSURLWithGURL(URL)
+                             leakType:cwvLeakType];
+  }
 }
 
 #pragma mark - SharedPasswordControllerDelegate
diff --git a/ios/web_view/internal/autofill/cwv_autofill_controller_unittest.mm b/ios/web_view/internal/autofill/cwv_autofill_controller_unittest.mm
index 03a3df7..d237b5a 100644
--- a/ios/web_view/internal/autofill/cwv_autofill_controller_unittest.mm
+++ b/ios/web_view/internal/autofill/cwv_autofill_controller_unittest.mm
@@ -23,6 +23,7 @@
 #include "components/autofill/ios/form_util/form_activity_params.h"
 #import "components/autofill/ios/form_util/form_activity_tab_helper.h"
 #import "components/autofill/ios/form_util/test_form_activity_tab_helper.h"
+#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
 #include "components/password_manager/core/browser/password_manager.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
 #import "components/password_manager/ios/shared_password_controller.h"
@@ -42,6 +43,7 @@
 #import "ios/web_view/internal/passwords/web_view_password_manager_driver.h"
 #include "ios/web_view/internal/web_view_browser_state.h"
 #import "ios/web_view/public/cwv_autofill_controller_delegate.h"
+#import "net/base/mac/url_conversions.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #import "testing/gtest_mac.h"
 #include "testing/platform_test.h"
@@ -99,12 +101,14 @@
         std::make_unique<WebViewPasswordManagerClient>(
             &web_state_, /*sync_service=*/nullptr, &pref_service_,
             /*identity_manager=*/nullptr, /*log_manager=*/nullptr,
-            /*profile_store=*/nullptr, /*account_store=*/nullptr);
+            /*profile_store=*/nullptr, /*account_store=*/nullptr,
+            /*requirements_service=*/nullptr);
     auto password_manager = std::make_unique<password_manager::PasswordManager>(
         password_manager_client.get());
     auto password_manager_driver =
         std::make_unique<WebViewPasswordManagerDriver>(password_manager.get());
     password_controller_ = OCMClassMock([SharedPasswordController class]);
+    password_manager_client_ = password_manager_client.get();
 
     auto autofill_client = std::make_unique<autofill::WebViewAutofillClientIOS>(
         kApplicationLocale, &pref_service_, &personal_data_manager_,
@@ -148,6 +152,7 @@
   std::unique_ptr<autofill::TestFormActivityTabHelper>
       form_activity_tab_helper_;
   id js_suggestion_manager_;
+  WebViewPasswordManagerClient* password_manager_client_;
 };
 
 // Tests CWVAutofillController fetch suggestions for profiles.
@@ -432,4 +437,27 @@
   [delegate verify];
 }
 
+TEST_F(CWVAutofillControllerTest, NotifyUserOfLeak) {
+  id delegate = OCMProtocolMock(@protocol(CWVAutofillControllerDelegate));
+  autofill_controller_.delegate = delegate;
+
+  GURL leak_url("https://www.chromium.org");
+  password_manager::CredentialLeakType leak_type =
+      password_manager::CreateLeakType(password_manager::IsSaved(true),
+                                       password_manager::IsReused(true),
+                                       password_manager::IsSyncing(true));
+  CWVPasswordLeakType expected_leak_type = CWVPasswordLeakTypeSaved |
+                                           CWVPasswordLeakTypeUsedOnOtherSites |
+                                           CWVPasswordLeakTypeSyncingNormally;
+  OCMExpect([delegate autofillController:autofill_controller_
+           notifyUserOfPasswordLeakOnURL:net::NSURLWithGURL(leak_url)
+                                leakType:expected_leak_type]);
+
+  password_manager_client_->NotifyUserCredentialsWereLeaked(
+      leak_type, password_manager::CompromisedSitesCount(1), leak_url,
+      base::SysNSStringToUTF16(@"fake-username"));
+
+  [delegate verify];
+}
+
 }  // namespace ios_web_view
diff --git a/ios/web_view/internal/passwords/web_view_password_manager_client.h b/ios/web_view/internal/passwords/web_view_password_manager_client.h
index 072a08a9..a720591 100644
--- a/ios/web_view/internal/passwords/web_view_password_manager_client.h
+++ b/ios/web_view/internal/passwords/web_view_password_manager_client.h
@@ -17,6 +17,7 @@
 #include "components/password_manager/core/browser/password_manager_client_helper.h"
 #include "components/password_manager/core/browser/password_manager_driver.h"
 #include "components/password_manager/core/browser/password_manager_metrics_recorder.h"
+#include "components/password_manager/core/browser/password_requirements_service.h"
 #include "components/password_manager/core/browser/password_store.h"
 #include "components/password_manager/core/browser/sync_credentials_filter.h"
 #include "components/password_manager/ios/password_manager_client_bridge.h"
@@ -45,7 +46,8 @@
       signin::IdentityManager* identity_manager,
       std::unique_ptr<autofill::LogManager> log_manager,
       password_manager::PasswordStore* profile_store,
-      password_manager::PasswordStore* account_store);
+      password_manager::PasswordStore* account_store,
+      password_manager::PasswordRequirementsService* requirements_service);
 
   ~WebViewPasswordManagerClient() override;
 
@@ -92,6 +94,11 @@
       std::unique_ptr<password_manager::PasswordFormManagerForUI>
           submitted_manager) override;
   void NotifyStorePasswordCalled() override;
+  void NotifyUserCredentialsWereLeaked(
+      password_manager::CredentialLeakType leak_type,
+      password_manager::CompromisedSitesCount saved_sites,
+      const GURL& origin,
+      const base::string16& username) override;
   bool IsSavingAndFillingEnabled(const GURL& url) const override;
   bool IsCommittedMainFrameSecure() const override;
   const GURL& GetLastCommittedURL() const override;
@@ -104,6 +111,8 @@
       override;
   signin::IdentityManager* GetIdentityManager() override;
   scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
+  password_manager::PasswordRequirementsService*
+  GetPasswordRequirementsService() override;
   void UpdateFormManagers() override;
   bool IsIsolationForPasswordSitesEnabled() const override;
   bool IsNewTabPage() const override;
@@ -124,6 +133,7 @@
   password_manager::PasswordStore* account_store_;
   WebViewPasswordFeatureManager password_feature_manager_;
   const password_manager::SyncCredentialsFilter credentials_filter_;
+  password_manager::PasswordRequirementsService* requirements_service_;
 
   // The preference associated with
   // password_manager::prefs::kCredentialsEnableService.
diff --git a/ios/web_view/internal/passwords/web_view_password_manager_client.mm b/ios/web_view/internal/passwords/web_view_password_manager_client.mm
index dd338c67..025cf0b 100644
--- a/ios/web_view/internal/passwords/web_view_password_manager_client.mm
+++ b/ios/web_view/internal/passwords/web_view_password_manager_client.mm
@@ -15,6 +15,7 @@
 #include "components/password_manager/ios/credential_manager_util.h"
 #import "ios/web_view/internal/passwords/web_view_account_password_store_factory.h"
 #import "ios/web_view/internal/passwords/web_view_password_manager_log_router_factory.h"
+#import "ios/web_view/internal/passwords/web_view_password_requirements_service_factory.h"
 #include "ios/web_view/internal/passwords/web_view_password_store_factory.h"
 #include "ios/web_view/internal/signin/web_view_identity_manager_factory.h"
 #import "ios/web_view/internal/sync/web_view_profile_sync_service_factory.h"
@@ -53,9 +54,13 @@
   scoped_refptr<password_manager::PasswordStore> account_store =
       ios_web_view::WebViewAccountPasswordStoreFactory::GetForBrowserState(
           browser_state, ServiceAccessType::EXPLICIT_ACCESS);
+  password_manager::PasswordRequirementsService* requirements_service =
+      WebViewPasswordRequirementsServiceFactory::GetForBrowserState(
+          browser_state, ServiceAccessType::EXPLICIT_ACCESS);
   return std::make_unique<ios_web_view::WebViewPasswordManagerClient>(
       web_state, sync_service, browser_state->GetPrefs(), identity_manager,
-      std::move(log_manager), profile_store.get(), account_store.get());
+      std::move(log_manager), profile_store.get(), account_store.get(),
+      requirements_service);
 }
 
 WebViewPasswordManagerClient::WebViewPasswordManagerClient(
@@ -65,7 +70,8 @@
     signin::IdentityManager* identity_manager,
     std::unique_ptr<autofill::LogManager> log_manager,
     PasswordStore* profile_store,
-    PasswordStore* account_store)
+    PasswordStore* account_store,
+    password_manager::PasswordRequirementsService* requirements_service)
     : web_state_(web_state),
       sync_service_(sync_service),
       pref_service_(pref_service),
@@ -78,6 +84,7 @@
           this,
           base::BindRepeating(&WebViewPasswordManagerClient::GetSyncService,
                               base::Unretained(this))),
+      requirements_service_(requirements_service),
       helper_(this) {
   saving_passwords_enabled_.Init(
       password_manager::prefs::kCredentialsEnableService, GetPrefs());
@@ -203,6 +210,14 @@
   helper_.NotifyStorePasswordCalled();
 }
 
+void WebViewPasswordManagerClient::NotifyUserCredentialsWereLeaked(
+    password_manager::CredentialLeakType leak_type,
+    password_manager::CompromisedSitesCount saved_sites,
+    const GURL& origin,
+    const base::string16& username) {
+  [bridge_ showPasswordBreachForLeakType:leak_type URL:origin];
+}
+
 bool WebViewPasswordManagerClient::IsSavingAndFillingEnabled(
     const GURL& url) const {
   return *saving_passwords_enabled_ && !IsIncognito() &&
@@ -252,6 +267,11 @@
   return web_state_->GetBrowserState()->GetSharedURLLoaderFactory();
 }
 
+password_manager::PasswordRequirementsService*
+WebViewPasswordManagerClient::GetPasswordRequirementsService() {
+  return requirements_service_;
+}
+
 void WebViewPasswordManagerClient::UpdateFormManagers() {
   bridge_.passwordManager->UpdateFormManagers();
 }
diff --git a/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm b/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm
index 166668c..c203134 100644
--- a/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm
+++ b/ios/web_view/internal/passwords/web_view_password_manager_client_unittest.mm
@@ -59,7 +59,7 @@
         &web_state_, &sync_service_, &pref_service_,
         /*identity_manager=*/nullptr,
         std::make_unique<autofill::StubLogManager>(), profile_store_.get(),
-        account_store_.get());
+        account_store_.get(), /*requirements_service=*/nullptr);
   }
 
   ~WebViewPasswordManagerClientTest() override {
diff --git a/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.h b/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.h
new file mode 100644
index 0000000..3ee1d5d98
--- /dev/null
+++ b/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.h
@@ -0,0 +1,52 @@
+// Copyright 2020 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_WEB_VIEW_INTERNAL_PASSWORDS_WEB_VIEW_PASSWORD_REQUIREMENTS_SERVICE_FACTORY_H_
+#define IOS_WEB_VIEW_INTERNAL_PASSWORDS_WEB_VIEW_PASSWORD_REQUIREMENTS_SERVICE_FACTORY_H_
+
+#include "base/memory/ref_counted.h"
+#include "base/no_destructor.h"
+#include "components/keyed_service/ios/browser_state_keyed_service_factory.h"
+
+enum class ServiceAccessType;
+
+namespace password_manager {
+class PasswordRequirementsService;
+}  // namespace password_manager
+
+namespace ios_web_view {
+
+class WebViewBrowserState;
+
+// Singleton that owns all PasswordRequirementsService and associates them with
+// WebViewBrowserStates.
+class WebViewPasswordRequirementsServiceFactory
+    : public BrowserStateKeyedServiceFactory {
+ public:
+  static password_manager::PasswordRequirementsService* GetForBrowserState(
+      WebViewBrowserState* browser_state,
+      ServiceAccessType access_type);
+
+  static WebViewPasswordRequirementsServiceFactory* GetInstance();
+
+ private:
+  friend class base::NoDestructor<WebViewPasswordRequirementsServiceFactory>;
+
+  WebViewPasswordRequirementsServiceFactory();
+  ~WebViewPasswordRequirementsServiceFactory() override;
+
+  // BrowserStateKeyedServiceFactory:
+  std::unique_ptr<KeyedService> BuildServiceInstanceFor(
+      web::BrowserState* context) const override;
+  bool ServiceIsNULLWhileTesting() const override;
+
+  WebViewPasswordRequirementsServiceFactory(
+      const WebViewPasswordRequirementsServiceFactory&) = delete;
+  WebViewPasswordRequirementsServiceFactory& operator=(
+      const WebViewPasswordRequirementsServiceFactory&) = delete;
+};
+
+}  // namespace ios_web_view
+
+#endif  // IOS_WEB_VIEW_INTERNAL_PASSWORDS_WEB_VIEW_PASSWORD_REQUIREMENTS_SERVICE_FACTORY_H_
diff --git a/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.mm b/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.mm
new file mode 100644
index 0000000..8461bb59
--- /dev/null
+++ b/ios/web_view/internal/passwords/web_view_password_requirements_service_factory.mm
@@ -0,0 +1,56 @@
+// Copyright 2020 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/web_view/internal/passwords/web_view_password_requirements_service_factory.h"
+
+#include "components/keyed_service/core/service_access_type.h"
+#include "components/keyed_service/ios/browser_state_dependency_manager.h"
+#include "components/password_manager/core/browser/password_requirements_service.h"
+#include "ios/web_view/internal/web_view_browser_state.h"
+#include "services/network/public/cpp/shared_url_loader_factory.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+namespace ios_web_view {
+
+// static
+password_manager::PasswordRequirementsService*
+WebViewPasswordRequirementsServiceFactory::GetForBrowserState(
+    WebViewBrowserState* browser_state,
+    ServiceAccessType access_type) {
+  return static_cast<password_manager::PasswordRequirementsService*>(
+      GetInstance()->GetServiceForBrowserState(browser_state, true));
+}
+
+// static
+WebViewPasswordRequirementsServiceFactory*
+WebViewPasswordRequirementsServiceFactory::GetInstance() {
+  static base::NoDestructor<WebViewPasswordRequirementsServiceFactory> instance;
+  return instance.get();
+}
+
+WebViewPasswordRequirementsServiceFactory::
+    WebViewPasswordRequirementsServiceFactory()
+    : BrowserStateKeyedServiceFactory(
+          "PasswordRequirementsServiceFactory",
+          BrowserStateDependencyManager::GetInstance()) {}
+
+WebViewPasswordRequirementsServiceFactory::
+    ~WebViewPasswordRequirementsServiceFactory() {}
+
+std::unique_ptr<KeyedService>
+WebViewPasswordRequirementsServiceFactory::BuildServiceInstanceFor(
+    web::BrowserState* context) const {
+  return password_manager::CreatePasswordRequirementsService(
+      context->GetSharedURLLoaderFactory());
+}
+
+bool WebViewPasswordRequirementsServiceFactory::ServiceIsNULLWhileTesting()
+    const {
+  return true;
+}
+
+}  // namespace ios_web_view
diff --git a/ios/web_view/internal/web_view_browser_state.mm b/ios/web_view/internal/web_view_browser_state.mm
index e52a002..f000baa 100644
--- a/ios/web_view/internal/web_view_browser_state.mm
+++ b/ios/web_view/internal/web_view_browser_state.mm
@@ -39,6 +39,7 @@
 #include "ios/web_view/internal/language/web_view_url_language_histogram_factory.h"
 #include "ios/web_view/internal/passwords/web_view_account_password_store_factory.h"
 #import "ios/web_view/internal/passwords/web_view_password_manager_log_router_factory.h"
+#import "ios/web_view/internal/passwords/web_view_password_requirements_service_factory.h"
 #include "ios/web_view/internal/passwords/web_view_password_store_factory.h"
 #include "ios/web_view/internal/signin/web_view_identity_manager_factory.h"
 #include "ios/web_view/internal/signin/web_view_signin_client_factory.h"
@@ -184,6 +185,7 @@
   WebViewPasswordManagerLogRouterFactory::GetInstance();
   WebViewAccountPasswordStoreFactory::GetInstance();
   WebViewPasswordStoreFactory::GetInstance();
+  WebViewPasswordRequirementsServiceFactory::GetInstance();
   WebViewSigninClientFactory::GetInstance();
   WebViewIdentityManagerFactory::GetInstance();
   WebViewGCMProfileServiceFactory::GetInstance();
diff --git a/ios/web_view/public/cwv_autofill_controller_delegate.h b/ios/web_view/public/cwv_autofill_controller_delegate.h
index c58af38e..a2ba84f 100644
--- a/ios/web_view/public/cwv_autofill_controller_delegate.h
+++ b/ios/web_view/public/cwv_autofill_controller_delegate.h
@@ -28,6 +28,18 @@
   CWVPasswordUserDecisionYes,    // Save / update password.
 };
 
+// All possible leak type combinations.
+// Keep up to date with password_manager::CredentialLeakFlags in
+// components/password_manager/core/browser/leak_detection_dialog_utils.h.
+typedef NS_OPTIONS(NSInteger, CWVPasswordLeakType) {
+  // The leaked password is currently saved.
+  CWVPasswordLeakTypeSaved = 1 << 0,
+  // The leaked password is also used on other sites.
+  CWVPasswordLeakTypeUsedOnOtherSites = 1 << 1,
+  // The user is syncing passwords with normal encryption.
+  CWVPasswordLeakTypeSyncingNormally = 1 << 2,
+};
+
 // Protocol to receive callbacks related to autofill.
 // |fieldIdentifier| identifies the html field. Generated by
 // __gCrWeb.form.getFieldIdentifier in form.js.
@@ -137,6 +149,12 @@
                   decisionHandler:(void (^)(CWVPasswordUserDecision decision))
                                       decisionHandler;
 
+// Called if a submitted username and password combination is determined to be
+// leaked for |URL|. |leakType| provides additional context of the leak.
+- (void)autofillController:(CWVAutofillController*)autofillController
+    notifyUserOfPasswordLeakOnURL:(NSURL*)URL
+                         leakType:(CWVPasswordLeakType)leakType;
+
 @end
 
 NS_ASSUME_NONNULL_END
diff --git a/ios/web_view/shell/shell_autofill_delegate.m b/ios/web_view/shell/shell_autofill_delegate.m
index a214ff3e..2a6b443 100644
--- a/ios/web_view/shell/shell_autofill_delegate.m
+++ b/ios/web_view/shell/shell_autofill_delegate.m
@@ -277,6 +277,12 @@
                  completion:nil];
 }
 
+- (void)autofillController:(CWVAutofillController*)autofillController
+    notifyUserOfPasswordLeakOnURL:(NSURL*)URL
+                         leakType:(CWVPasswordLeakType)leakType {
+  NSLog(@"Password on %@ is leaked!", URL);
+}
+
 #pragma mark - Private Methods
 
 - (UIAlertAction*)actionForSuggestion:(CWVAutofillSuggestion*)suggestion {
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 15b1bdd6..cc16ceb5 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -765,6 +765,10 @@
 const base::Feature kKaleidoscope{"Kaleidoscope",
                                   base::FEATURE_ENABLED_BY_DEFAULT};
 
+const base::Feature kKaleidoscopeForceShowFirstRunExperience{
+    "KaleidoscopeForceShowFirstRunExperience",
+    base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kKaleidoscopeModule{"KaleidoscopeModule",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index e898c23..0bebede 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -133,6 +133,8 @@
 MEDIA_EXPORT extern const base::Feature kHardwareSecureDecryption;
 MEDIA_EXPORT extern const base::Feature kInternalMediaSession;
 MEDIA_EXPORT extern const base::Feature kKaleidoscope;
+MEDIA_EXPORT extern const base::Feature
+    kKaleidoscopeForceShowFirstRunExperience;
 MEDIA_EXPORT extern const base::Feature kKaleidoscopeModule;
 MEDIA_EXPORT extern const base::Feature kLiveCaption;
 MEDIA_EXPORT extern const base::Feature kLowDelayVideoRenderingOnLiveStream;
diff --git a/media/capture/video/fuchsia/video_capture_device_fuchsia.cc b/media/capture/video/fuchsia/video_capture_device_fuchsia.cc
index 946ad15..96e82d5 100644
--- a/media/capture/video/fuchsia/video_capture_device_fuchsia.cc
+++ b/media/capture/video/fuchsia/video_capture_device_fuchsia.cc
@@ -268,6 +268,11 @@
     std::unique_ptr<SysmemBufferPool> collection) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
+  // Buffer collection allocation has failed. This case is not treated as an
+  // error because the camera may create a new collection.
+  if (!collection)
+    return;
+
   buffer_collection_ = std::move(collection);
   buffer_collection_->CreateReader(
       base::BindOnce(&VideoCaptureDeviceFuchsia::OnBufferReaderCreated,
@@ -278,6 +283,13 @@
     std::unique_ptr<SysmemBufferReader> reader) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
+  // Buffer collection allocation has failed. This case is not treated as an
+  // error because the camera may create a new collection.
+  if (!reader) {
+    buffer_collection_.reset();
+    return;
+  }
+
   buffer_reader_ = std::move(reader);
   if (!buffer_reader_->buffer_settings().has_image_format_constraints) {
     OnError(FROM_HERE, VideoCaptureError::kFuchsiaSysmemDidNotSetImageFormat,
diff --git a/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc b/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
index 195c42d..489d4f96 100644
--- a/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
+++ b/media/capture/video/fuchsia/video_capture_device_fuchsia_test.cc
@@ -233,6 +233,19 @@
     EXPECT_TRUE(fake_device_watcher_.stream()->WaitBuffersAllocated());
   }
 
+  void ProduceAndCaptureFrame() {
+    const uint8_t kFrameSalt = 1;
+
+    auto frame_timestamp = base::TimeTicks::Now();
+    fake_device_watcher_.stream()->ProduceFrame(frame_timestamp, kFrameSalt);
+    client_->WaitFrame();
+
+    ASSERT_EQ(client_->received_frames().size(), 1U);
+    EXPECT_EQ(client_->received_frames()[0].reference_time, frame_timestamp);
+    ValidateReceivedFrame(client_->received_frames()[0],
+                          FakeCameraStream::kDefaultFrameSize, kFrameSalt);
+  }
+
  protected:
   base::test::SingleThreadTaskEnvironment task_environment_{
       base::test::SingleThreadTaskEnvironment::MainThreadType::IO};
@@ -252,15 +265,27 @@
 
 TEST_F(VideoCaptureDeviceFuchsiaTest, SendFrame) {
   StartCapturer();
+  ProduceAndCaptureFrame();
+}
 
-  auto frame_timestamp = base::TimeTicks::Now();
-  fake_device_watcher_.stream()->ProduceFrame(frame_timestamp, 1);
-  client_->WaitFrame();
+// Verifies that VideoCaptureDevice can recover from failed Sync() on the sysmem
+// buffer collection.
+TEST_F(VideoCaptureDeviceFuchsiaTest, FailBufferCollectionSync) {
+  fake_device_watcher_.stream()->SetFirstBufferCollectionFailMode(
+      FakeCameraStream::SysmemFailMode::kFailSync);
 
-  ASSERT_EQ(client_->received_frames().size(), 1U);
-  EXPECT_EQ(client_->received_frames()[0].reference_time, frame_timestamp);
-  ValidateReceivedFrame(client_->received_frames()[0],
-                        FakeCameraStream::kDefaultFrameSize, 1);
+  StartCapturer();
+  ProduceAndCaptureFrame();
+}
+
+// Verifies that VideoCaptureDevice can recover from sysmem buffer allocation
+// failures..
+TEST_F(VideoCaptureDeviceFuchsiaTest, FailBufferCollectionAllocation) {
+  fake_device_watcher_.stream()->SetFirstBufferCollectionFailMode(
+      FakeCameraStream::SysmemFailMode::kFailAllocation);
+
+  StartCapturer();
+  ProduceAndCaptureFrame();
 }
 
 TEST_F(VideoCaptureDeviceFuchsiaTest, MultipleFrames) {
diff --git a/media/capture/video/win/video_capture_device_utils_win.cc b/media/capture/video/win/video_capture_device_utils_win.cc
index 8cbc6b4b..3c5eca2 100644
--- a/media/capture/video/win/video_capture_device_utils_win.cc
+++ b/media/capture/video/win/video_capture_device_utils_win.cc
@@ -13,8 +13,20 @@
 namespace media {
 
 namespace {
+
 const int kDegreesToArcSeconds = 3600;
 const int kSecondsTo100MicroSeconds = 10000;
+
+// Determines if camera is mounted on a device with naturally portrait display.
+bool IsPortraitDevice(DWORD display_height,
+                      DWORD display_width,
+                      int device_angle) {
+  if (device_angle == 0 || device_angle == 180)
+    return display_height >= display_width;
+  else
+    return display_height < display_width;
+}
+
 }  // namespace
 
 // Windows platform stores pan and tilt (min, max, step and current) in
@@ -97,6 +109,7 @@
   if (::EnumDisplaySettings(internal_display_device.DeviceName,
                             ENUM_CURRENT_SETTINGS, &mode)) {
     int device_orientation = 0;
+    int portrait_correction = 0;
     switch (mode.dmDisplayOrientation) {
       case DMDO_DEFAULT:
         device_orientation = 0;
@@ -111,7 +124,13 @@
         device_orientation = 270;
         break;
     }
-    rotation = (360 - device_orientation) % 360;
+    // Correct the 90 degree offset between the camera mounted in landscape and
+    // the default orientation on a naturally portrait device.
+    if (IsPortraitDevice(mode.dmPelsHeight, mode.dmPelsWidth,
+                         device_orientation)) {
+      portrait_correction = 90;
+    }
+    rotation = (360 - device_orientation - portrait_correction) % 360;
   }
 
   return rotation;
diff --git a/media/fuchsia/camera/fake_fuchsia_camera.cc b/media/fuchsia/camera/fake_fuchsia_camera.cc
index 780c2729..e62e58d 100644
--- a/media/fuchsia/camera/fake_fuchsia_camera.cc
+++ b/media/fuchsia/camera/fake_fuchsia_camera.cc
@@ -149,7 +149,12 @@
       release_fence_watch_controller;
 };
 
-FakeCameraStream::FakeCameraStream() : binding_(this) {}
+FakeCameraStream::FakeCameraStream()
+    : binding_(this),
+      sysmem_allocator_(base::ComponentContextForProcess()
+                            ->svc()
+                            ->Connect<fuchsia::sysmem::Allocator>()) {}
+
 FakeCameraStream::~FakeCameraStream() = default;
 
 void FakeCameraStream::Bind(
@@ -157,6 +162,11 @@
   binding_.Bind(std::move(request));
 }
 
+void FakeCameraStream::SetFirstBufferCollectionFailMode(
+    SysmemFailMode fail_mode) {
+  first_buffer_collection_fail_mode_ = fail_mode;
+}
+
 void FakeCameraStream::SetFakeResolution(gfx::Size resolution) {
   resolution_ = resolution;
   resolution_update_ =
@@ -282,6 +292,16 @@
       token->Duplicate(/*rights_attenuation_mask=*/0, local_token.NewRequest());
   EXPECT_EQ(status, ZX_OK);
 
+  fidl::InterfaceHandle<fuchsia::sysmem::BufferCollectionToken> failed_token;
+  if (first_buffer_collection_fail_mode_ == SysmemFailMode::kFailSync) {
+    // Create an additional token that's dropped before this method returns.
+    // This will cause sysmem to fail the collection, so the future attempt to
+    // Sync() the collection from the production code will fail as well.
+    zx_status_t status = token->Duplicate(/*rights_attenuation_mask=*/0,
+                                          failed_token.NewRequest());
+    EXPECT_EQ(status, ZX_OK);
+  }
+
   status = token->Sync();
   EXPECT_EQ(status, ZX_OK);
 
@@ -290,12 +310,8 @@
   SendBufferCollection();
 
   // Initialize the new collection using |local_token|.
-  auto allocator = base::ComponentContextForProcess()
-                       ->svc()
-                       ->Connect<fuchsia::sysmem::Allocator>();
-
-  allocator->BindSharedCollection(std::move(local_token),
-                                  buffer_collection_.NewRequest());
+  sysmem_allocator_->BindSharedCollection(std::move(local_token),
+                                          buffer_collection_.NewRequest());
   EXPECT_EQ(status, ZX_OK);
 
   buffer_collection_.set_error_handler(
@@ -321,6 +337,13 @@
   constraints.image_format_constraints[0].required_max_coded_height =
       kMaxFrameSize.height();
 
+  if (first_buffer_collection_fail_mode_ == SysmemFailMode::kFailAllocation) {
+    // Set color space to SRGB to trigger sysmem collection failure (SRGB is not
+    // compatible with NV12 pixel type).
+    constraints.image_format_constraints[0].color_space[0].type =
+        fuchsia::sysmem::ColorSpaceType::SRGB;
+  }
+
   buffer_collection_->SetConstraints(/*has_constraints=*/true,
                                      std::move(constraints));
   buffer_collection_->WaitForBuffersAllocated(
@@ -345,6 +368,16 @@
 }
 
 void FakeCameraStream::OnBufferCollectionError(zx_status_t status) {
+  if (first_buffer_collection_fail_mode_ != SysmemFailMode::kNone) {
+    first_buffer_collection_fail_mode_ = SysmemFailMode::kNone;
+
+    // Create a new buffer collection to retry buffer allocation.
+    fuchsia::sysmem::BufferCollectionTokenPtr token;
+    sysmem_allocator_->AllocateSharedCollection(token.NewRequest());
+    SetBufferCollection(std::move(token));
+    return;
+  }
+
   ADD_FAILURE() << "BufferCollection failed.";
   if (wait_buffers_allocated_run_loop_)
     wait_buffers_allocated_run_loop_->Quit();
diff --git a/media/fuchsia/camera/fake_fuchsia_camera.h b/media/fuchsia/camera/fake_fuchsia_camera.h
index 8fdab99..31e309e 100644
--- a/media/fuchsia/camera/fake_fuchsia_camera.h
+++ b/media/fuchsia/camera/fake_fuchsia_camera.h
@@ -26,6 +26,20 @@
   static const gfx::Size kMaxFrameSize;
   static const gfx::Size kDefaultFrameSize;
 
+  // Enum used to specify how sysmem collection allocation is expected to fail.
+  enum class SysmemFailMode {
+    // Don't simulate sysmem failure.
+    kNone,
+
+    // Force Sync() failure. Implemented by dropping one of sysmem collection
+    // tokens.
+    kFailSync,
+
+    // Force buffer allocation failure. Implemented by setting incompatible
+    // constraints.
+    kFailAllocation,
+  };
+
   // Verifies that the I420 image stored at |data| matches the frame produced
   // by ProduceFrame().
   static void ValidateFrameData(const uint8_t* data,
@@ -40,6 +54,10 @@
 
   void Bind(fidl::InterfaceRequest<fuchsia::camera3::Stream> request);
 
+  // Forces the stream to simulate sysmem buffer collection failure for the
+  // first buffer collection.
+  void SetFirstBufferCollectionFailMode(SysmemFailMode fail_mode);
+
   void SetFakeResolution(gfx::Size resolution);
   void SetFakeOrientation(fuchsia::camera3::Orientation orientation);
 
@@ -115,6 +133,7 @@
   base::Optional<fuchsia::camera3::FrameInfo> next_frame_;
   GetNextFrameCallback get_next_frame_callback_;
 
+  fuchsia::sysmem::AllocatorPtr sysmem_allocator_;
   fuchsia::sysmem::BufferCollectionPtr buffer_collection_;
 
   base::Optional<base::RunLoop> wait_buffers_allocated_run_loop_;
@@ -124,6 +143,8 @@
   size_t num_used_buffers_ = 0;
 
   size_t frame_counter_ = 0;
+
+  SysmemFailMode first_buffer_collection_fail_mode_ = SysmemFailMode::kNone;
 };
 
 class FakeCameraDevice : public fuchsia::camera3::testing::Device_TestBase {
diff --git a/net/log/net_log_event_type_list.h b/net/log/net_log_event_type_list.h
index de0a0124..08cc77b8 100644
--- a/net/log/net_log_event_type_list.h
+++ b/net/log/net_log_event_type_list.h
@@ -2030,6 +2030,13 @@
 //   }
 EVENT_TYPE(QUIC_SESSION_TRANSPORT_PARAMETERS_SENT)
 
+// A QUIC connection resumed transport parameters for 0-RTT.
+//   {
+//     "quic_transport_parameters": <Human readable view of the transport
+//                                   parameters>
+//   }
+EVENT_TYPE(QUIC_SESSION_TRANSPORT_PARAMETERS_RESUMED)
+
 // A QUIC connection received a PUSH_PROMISE frame.  The following
 // parameters are attached:
 //   {
@@ -3763,6 +3770,11 @@
 // <setting identifier>: <setting value>
 EVENT_TYPE(HTTP3_SETTINGS_SENT)
 
+// Event emitted when an HTTP/3 SETTINGS frame is resumed for 0-RTT.
+// A list of settings will be logged by
+// <setting identifier>: <setting value>
+EVENT_TYPE(HTTP3_SETTINGS_RESUMED)
+
 // Event emitted when an HTTP/3 GOAWAY frame is sent.
 //  {
 //    "stream_id": <The stream_id field of the GOAWAY frame>
diff --git a/net/log/test_net_log_util.cc b/net/log/test_net_log_util.cc
index b09dbf3..25551cc 100644
--- a/net/log/test_net_log_util.cc
+++ b/net/log/test_net_log_util.cc
@@ -125,11 +125,11 @@
 
 base::Optional<std::string> GetOptionalStringValueFromParams(
     const NetLogEntry& entry,
-    base::StringPiece name) {
+    base::StringPiece path) {
   if (!entry.params.is_dict())
     return base::nullopt;
 
-  const std::string* result = entry.params.FindStringKey(name);
+  const std::string* result = entry.params.FindStringPath(path);
   if (!result)
     return base::nullopt;
 
@@ -137,17 +137,17 @@
 }
 
 base::Optional<bool> GetOptionalBooleanValueFromParams(const NetLogEntry& entry,
-                                                       base::StringPiece name) {
+                                                       base::StringPiece path) {
   if (!entry.params.is_dict())
     return base::nullopt;
-  return entry.params.FindBoolKey(name);
+  return entry.params.FindBoolPath(path);
 }
 
 base::Optional<int> GetOptionalIntegerValueFromParams(const NetLogEntry& entry,
-                                                      base::StringPiece name) {
+                                                      base::StringPiece path) {
   if (!entry.params.is_dict())
     return base::nullopt;
-  return entry.params.FindIntKey(name);
+  return entry.params.FindIntPath(path);
 }
 
 base::Optional<int> GetOptionalNetErrorCodeFromParams(
@@ -156,30 +156,30 @@
 }
 
 std::string GetStringValueFromParams(const NetLogEntry& entry,
-                                     base::StringPiece name) {
-  auto result = GetOptionalStringValueFromParams(entry, name);
+                                     base::StringPiece path) {
+  auto result = GetOptionalStringValueFromParams(entry, path);
   if (!result) {
-    ADD_FAILURE() << "No string parameter " << name;
+    ADD_FAILURE() << "No string parameter " << path;
     return "";
   }
   return *result;
 }
 
 int GetIntegerValueFromParams(const NetLogEntry& entry,
-                              base::StringPiece name) {
-  auto result = GetOptionalIntegerValueFromParams(entry, name);
+                              base::StringPiece path) {
+  auto result = GetOptionalIntegerValueFromParams(entry, path);
   if (!result) {
-    ADD_FAILURE() << "No int parameter " << name;
+    ADD_FAILURE() << "No int parameter " << path;
     return -1;
   }
   return *result;
 }
 
 bool GetBooleanValueFromParams(const NetLogEntry& entry,
-                               base::StringPiece name) {
-  auto result = GetOptionalBooleanValueFromParams(entry, name);
+                               base::StringPiece path) {
+  auto result = GetOptionalBooleanValueFromParams(entry, path);
   if (!result) {
-    ADD_FAILURE() << "No bool parameter " << name;
+    ADD_FAILURE() << "No bool parameter " << path;
     return -1;
   }
   return *result;
@@ -195,12 +195,12 @@
 }
 
 bool GetListValueFromParams(const NetLogEntry& entry,
-                            base::StringPiece name,
+                            base::StringPiece path,
                             const base::ListValue** value) {
   if (!entry.params.is_dict())
     return false;
 
-  const base::Value* list = entry.params.FindListKey(name);
+  const base::Value* list = entry.params.FindListPath(path);
   if (!list)
     return false;
 
diff --git a/net/log/test_net_log_util.h b/net/log/test_net_log_util.h
index 03857f2..96cb1ca 100644
--- a/net/log/test_net_log_util.h
+++ b/net/log/test_net_log_util.h
@@ -73,29 +73,29 @@
                                        NetLogEventType expected_event,
                                        NetLogEventPhase expected_phase);
 
-// The following methods return a parameter of the given name and type, or
-// nullopt if there is none.
+// The following methods return a parameter of the given type at the given path,
+// or nullopt if there is none.
 base::Optional<std::string> GetOptionalStringValueFromParams(
     const NetLogEntry& entry,
-    base::StringPiece name);
+    base::StringPiece path);
 base::Optional<bool> GetOptionalBooleanValueFromParams(const NetLogEntry& entry,
-                                                       base::StringPiece name);
+                                                       base::StringPiece path);
 base::Optional<int> GetOptionalIntegerValueFromParams(const NetLogEntry& entry,
-                                                      base::StringPiece name);
+                                                      base::StringPiece path);
 base::Optional<int> GetOptionalNetErrorCodeFromParams(const NetLogEntry& entry);
 
 // Same as the *Optional* versions above, except will add a Gtest failure if the
 // value was not present, and then return some default.
 std::string GetStringValueFromParams(const NetLogEntry& entry,
-                                     base::StringPiece name);
-int GetIntegerValueFromParams(const NetLogEntry& entry, base::StringPiece name);
+                                     base::StringPiece path);
+int GetIntegerValueFromParams(const NetLogEntry& entry, base::StringPiece path);
 bool GetBooleanValueFromParams(const NetLogEntry& entry,
-                               base::StringPiece name);
+                               base::StringPiece path);
 int GetNetErrorCodeFromParams(const NetLogEntry& entry);
 
 // TODO(eroman): Remove use of base::ListValue.
 bool GetListValueFromParams(const NetLogEntry& entry,
-                            base::StringPiece name,
+                            base::StringPiece path,
                             const base::ListValue** value);
 
 }  // namespace net
diff --git a/net/nqe/network_quality_estimator.cc b/net/nqe/network_quality_estimator.cc
index 1ad6bbc2..e122708 100644
--- a/net/nqe/network_quality_estimator.cc
+++ b/net/nqe/network_quality_estimator.cc
@@ -108,7 +108,8 @@
       case NetworkChangeNotifier::ConnectionType::CONNECTION_ETHERNET:
         break;
       case NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI:
-#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_WIN)
         network_id.id = GetWifiSSID();
 #endif
         break;
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index c7d9061..004c790 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -861,6 +861,8 @@
           headers_include_h2_stream_dependency),
       max_allowed_push_id_(max_allowed_push_id),
       attempted_zero_rtt_(false),
+      num_pings_sent_(0),
+      handshake_completion_timestamp_(base::TimeTicks()),
       push_promise_index_(std::move(push_promise_index)) {
   // Make sure connection migration and goaway on path degrading are not turned
   // on at the same time.
@@ -1606,8 +1608,10 @@
     // following code needs to changed.
     std::move(callback_).Run(OK);
   }
+
   OnCryptoHandshakeComplete();
   LogZeroRttStats();
+  handshake_completion_timestamp_ = tick_clock_->NowTicks();
   quic::QuicSpdySession::OnOneRttKeysAvailable();
 }
 
@@ -1793,6 +1797,10 @@
     UMA_HISTOGRAM_COUNTS_100(
         "Net.QuicSession.MaxConsecutiveRtoWithForwardProgress",
         connection()->GetStats().max_consecutive_rto_with_forward_progress);
+    UMA_HISTOGRAM_COUNTS_1000("Net.QuicSession.NumPingsSent", num_pings_sent_);
+    UMA_HISTOGRAM_LONG_TIMES_100(
+        "Net.QuicSession.ConnectionDuration",
+        tick_clock_->NowTicks() - handshake_completion_timestamp_);
   } else {
     if (error == quic::QUIC_PUBLIC_RESET) {
       RecordHandshakeFailureReason(HANDSHAKE_FAILURE_PUBLIC_RESET);
@@ -3339,4 +3347,9 @@
   return true;
 }
 
+void QuicChromiumClientSession::SendPing() {
+  QuicSpdyClientSessionBase::SendPing();
+  ++num_pings_sent_;
+}
+
 }  // namespace net
diff --git a/net/quic/quic_chromium_client_session.h b/net/quic/quic_chromium_client_session.h
index 0925a04..20f617a 100644
--- a/net/quic/quic_chromium_client_session.h
+++ b/net/quic/quic_chromium_client_session.h
@@ -549,6 +549,7 @@
   bool ValidateStatelessReset(
       const quic::QuicSocketAddress& self_address,
       const quic::QuicSocketAddress& peer_address) override;
+  void SendPing() override;
 
   // QuicSpdyClientSessionBase methods:
   void OnConfigNegotiated() override;
@@ -926,6 +927,10 @@
 
   bool attempted_zero_rtt_;
 
+  size_t num_pings_sent_;
+
+  base::TimeTicks handshake_completion_timestamp_;
+
   std::unique_ptr<quic::QuicClientPushPromiseIndex> push_promise_index_;
 
   base::WeakPtrFactory<QuicChromiumClientSession> weak_factory_{this};
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc
index d9fd805..1216a446 100644
--- a/net/quic/quic_connection_logger.cc
+++ b/net/quic/quic_connection_logger.cc
@@ -430,8 +430,10 @@
   event_logger_.OnGoAwayFrame(frame);
 }
 
-void QuicConnectionLogger::OnPingFrame(const quic::QuicPingFrame& frame) {
-  event_logger_.OnPingFrame(frame);
+void QuicConnectionLogger::OnPingFrame(
+    const quic::QuicPingFrame& frame,
+    quic::QuicTime::Delta ping_received_delay) {
+  event_logger_.OnPingFrame(frame, ping_received_delay);
 }
 
 void QuicConnectionLogger::OnPaddingFrame(const quic::QuicPaddingFrame& frame) {
@@ -582,6 +584,11 @@
   event_logger_.OnTransportParametersReceived(transport_parameters);
 }
 
+void QuicConnectionLogger::OnTransportParametersResumed(
+    const quic::TransportParameters& transport_parameters) {
+  event_logger_.OnTransportParametersResumed(transport_parameters);
+}
+
 void QuicConnectionLogger::RecordAggregatePacketLossRate() const {
   // For short connections under 22 packets in length, we'll rely on the
   // Net.QuicSession.21CumulativePacketsReceived_* histogram to indicate packet
diff --git a/net/quic/quic_connection_logger.h b/net/quic/quic_connection_logger.h
index 232cc9f2..3d5954a 100644
--- a/net/quic/quic_connection_logger.h
+++ b/net/quic/quic_connection_logger.h
@@ -90,7 +90,8 @@
                            const quic::QuicTime& receive_time) override;
   void OnBlockedFrame(const quic::QuicBlockedFrame& frame) override;
   void OnGoAwayFrame(const quic::QuicGoAwayFrame& frame) override;
-  void OnPingFrame(const quic::QuicPingFrame& frame) override;
+  void OnPingFrame(const quic::QuicPingFrame& frame,
+                   quic::QuicTime::Delta ping_received_delay) override;
   void OnPaddingFrame(const quic::QuicPaddingFrame& frame) override;
   void OnNewConnectionIdFrame(
       const quic::QuicNewConnectionIdFrame& frame) override;
@@ -113,6 +114,8 @@
       const quic::TransportParameters& transport_parameters) override;
   void OnTransportParametersReceived(
       const quic::TransportParameters& transport_parameters) override;
+  void OnTransportParametersResumed(
+      const quic::TransportParameters& transport_parameters) override;
 
   void OnCryptoHandshakeMessageReceived(
       const quic::CryptoHandshakeMessage& message);
diff --git a/net/quic/quic_event_logger.cc b/net/quic/quic_event_logger.cc
index cf9e13cb..9190b7e 100644
--- a/net/quic/quic_event_logger.cc
+++ b/net/quic/quic_event_logger.cc
@@ -691,7 +691,9 @@
                     [&] { return NetLogQuicGoAwayFrameParams(&frame); });
 }
 
-void QuicEventLogger::OnPingFrame(const quic::QuicPingFrame& frame) {
+void QuicEventLogger::OnPingFrame(
+    const quic::QuicPingFrame& frame,
+    quic::QuicTime::Delta /*ping_received_delay*/) {
   // PingFrame has no contents to log, so just record that it was received.
   if (!net_log_.IsCapturing())
     return;
@@ -858,4 +860,14 @@
       });
 }
 
+void QuicEventLogger::OnTransportParametersResumed(
+    const quic::TransportParameters& transport_parameters) {
+  if (!net_log_.IsCapturing())
+    return;
+  net_log_.AddEvent(
+      NetLogEventType::QUIC_SESSION_TRANSPORT_PARAMETERS_RESUMED, [&] {
+        return NetLogQuicTransportParametersParams(transport_parameters);
+      });
+}
+
 }  // namespace net
diff --git a/net/quic/quic_event_logger.h b/net/quic/quic_event_logger.h
index c2f84e9..ca8beb2 100644
--- a/net/quic/quic_event_logger.h
+++ b/net/quic/quic_event_logger.h
@@ -69,7 +69,8 @@
                            const quic::QuicTime& receive_time) override;
   void OnBlockedFrame(const quic::QuicBlockedFrame& frame) override;
   void OnGoAwayFrame(const quic::QuicGoAwayFrame& frame) override;
-  void OnPingFrame(const quic::QuicPingFrame& frame) override;
+  void OnPingFrame(const quic::QuicPingFrame& frame,
+                   quic::QuicTime::Delta ping_received_delay) override;
   void OnPaddingFrame(const quic::QuicPaddingFrame& frame) override;
   void OnNewConnectionIdFrame(
       const quic::QuicNewConnectionIdFrame& frame) override;
@@ -91,6 +92,8 @@
       const quic::TransportParameters& transport_parameters) override;
   void OnTransportParametersReceived(
       const quic::TransportParameters& transport_parameters) override;
+  void OnTransportParametersResumed(
+      const quic::TransportParameters& transport_parameters) override;
 
   // Events that are not received via the visitor and have to be called manually
   // from the session.
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h
index 0fa3926d..6e9a1637 100644
--- a/net/quic/quic_flags_list.h
+++ b/net/quic/quic_flags_list.h
@@ -433,7 +433,7 @@
 QUIC_FLAG(
     bool,
     FLAGS_quic_reloadable_flag_quic_get_stream_information_from_stream_map,
-    false)
+    true)
 
 // If true, QuicSession does not keep a separate zombie_streams. Instead, all
 // streams are stored in stream_map_.
diff --git a/net/quic/quic_http3_logger.cc b/net/quic/quic_http3_logger.cc
index 23fe34cf..366a3da 100644
--- a/net/quic/quic_http3_logger.cc
+++ b/net/quic/quic_http3_logger.cc
@@ -313,6 +313,13 @@
                     [&frame] { return NetLogSettingsParams(frame); });
 }
 
+void QuicHttp3Logger::OnSettingsFrameResumed(const quic::SettingsFrame& frame) {
+  if (!net_log_.IsCapturing())
+    return;
+  net_log_.AddEvent(NetLogEventType::HTTP3_SETTINGS_RESUMED,
+                    [&frame] { return NetLogSettingsParams(frame); });
+}
+
 void QuicHttp3Logger::OnGoAwayFrameSent(quic::QuicStreamId stream_id) {
   if (!net_log_.IsCapturing()) {
     return;
diff --git a/net/quic/quic_http3_logger.h b/net/quic/quic_http3_logger.h
index a6f02d51..36e24e2 100644
--- a/net/quic/quic_http3_logger.h
+++ b/net/quic/quic_http3_logger.h
@@ -35,6 +35,7 @@
 
   void OnCancelPushFrameReceived(const quic::CancelPushFrame& frame) override;
   void OnSettingsFrameReceived(const quic::SettingsFrame& frame) override;
+  void OnSettingsFrameResumed(const quic::SettingsFrame& frame) override;
   void OnGoAwayFrameReceived(const quic::GoAwayFrame& frame) override;
   void OnMaxPushIdFrameReceived(const quic::MaxPushIdFrame& frame) override;
   void OnPriorityUpdateFrameReceived(
diff --git a/net/quic/quic_test_packet_maker.cc b/net/quic/quic_test_packet_maker.cc
index 9cf15b84c..01684cb 100644
--- a/net/quic/quic_test_packet_maker.cc
+++ b/net/quic/quic_test_packet_maker.cc
@@ -1398,6 +1398,9 @@
 }
 
 std::string QuicTestPacketMaker::GenerateHttp3MaxPushIdData() {
+  if (max_allowed_push_id_ == 0) {
+    return "";
+  }
   quic::MaxPushIdFrame max_push_id;
   max_push_id.push_id = max_allowed_push_id_;
   std::unique_ptr<char[]> buffer;
diff --git a/pdf/pdf_features.cc b/pdf/pdf_features.cc
index 87af465..9a48e35 100644
--- a/pdf/pdf_features.cc
+++ b/pdf/pdf_features.cc
@@ -13,6 +13,12 @@
 const base::Feature kPdfHonorJsContentSettings = {
     "PdfHonorJsContentSettings", base::FEATURE_DISABLED_BY_DEFAULT};
 
+// "Incremental loading" refers to loading the PDF as it arrives.
+// TODO(crbug.com/1064175): Remove this once incremental loading is fixed.
+const base::Feature kPdfIncrementalLoading = {"PdfIncrementalLoading",
+                                              base::FEATURE_ENABLED_BY_DEFAULT};
+
+// "Partial loading" refers to loading only specific parts of the PDF.
 // TODO(crbug.com/1064175): Remove this once partial loading is fixed.
 const base::Feature kPdfPartialLoading = {"PdfPartialLoading",
                                           base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/pdf/pdf_features.h b/pdf/pdf_features.h
index 78a9363f5..4ecb64e5 100644
--- a/pdf/pdf_features.h
+++ b/pdf/pdf_features.h
@@ -15,6 +15,7 @@
 
 extern const base::Feature kAccessiblePDFForm;
 extern const base::Feature kPdfHonorJsContentSettings;
+extern const base::Feature kPdfIncrementalLoading;
 extern const base::Feature kPdfPartialLoading;
 extern const base::Feature kPDFViewerUpdate;
 extern const base::Feature kSaveEditedPDFForm;
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc
index 598ca3cf..4dd1943 100644
--- a/pdf/pdfium/pdfium_engine.cc
+++ b/pdf/pdfium/pdfium_engine.cc
@@ -616,7 +616,8 @@
 
 bool PDFiumEngine::HandleDocumentLoad(const pp::URLLoader& loader) {
   password_tries_remaining_ = kMaxPasswordTries;
-  process_when_pending_request_complete_ = true;
+  process_when_pending_request_complete_ =
+      base::FeatureList::IsEnabled(features::kPdfIncrementalLoading);
 
   if (!doc_loader_set_for_testing_) {
     auto loader_wrapper =
diff --git a/pdf/pdfium/pdfium_engine_unittest.cc b/pdf/pdfium/pdfium_engine_unittest.cc
index 67f17e1..72cf2d1 100644
--- a/pdf/pdfium/pdfium_engine_unittest.cc
+++ b/pdf/pdfium/pdfium_engine_unittest.cc
@@ -14,6 +14,7 @@
 #include "pdf/pdfium/pdfium_page.h"
 #include "pdf/pdfium/pdfium_test_base.h"
 #include "pdf/test/test_client.h"
+#include "pdf/test/test_document_loader.h"
 #include "pdf/test/test_utils.h"
 #include "ppapi/c/ppb_input_event.h"
 #include "ppapi/cpp/size.h"
@@ -22,6 +23,7 @@
 #include "ui/gfx/geometry/size.h"
 
 namespace chrome_pdf {
+
 namespace {
 
 using ::testing::InSequence;
@@ -55,6 +57,8 @@
   MOCK_METHOD(void, ScrollToPage, (int page), (override));
 };
 
+}  // namespace
+
 class PDFiumEngineTest : public PDFiumTestBase {
  protected:
   void ExpectPageRect(PDFiumEngine* engine,
@@ -64,6 +68,27 @@
     ASSERT_TRUE(page);
     CompareRect(expected_rect, page->rect());
   }
+
+  // Tries to load a PDF incrementally, returning `true` on success.
+  bool TryLoadIncrementally() {
+    NiceMock<MockTestClient> client;
+    InitializeEngineResult initialize_result = InitializeEngineWithoutLoading(
+        &client, FILE_PATH_LITERAL("linearized.pdf"));
+    if (!initialize_result.engine) {
+      ADD_FAILURE();
+      return false;
+    }
+    PDFiumEngine* engine = initialize_result.engine.get();
+
+    // Note: Plugin size chosen so all pages of the document are visible. The
+    // engine only updates availability incrementally for visible pages.
+    engine->PluginSizeUpdated({1024, 4096});
+    initialize_result.document_loader->SimulateLoadData(8192);
+
+    PDFiumPage* page0 = GetPDFiumPageForTest(engine, 0);
+    PDFiumPage* page1 = GetPDFiumPageForTest(engine, 1);
+    return page0 && page0->available() && page1 && !page1->available();
+  }
 };
 
 TEST_F(PDFiumEngineTest, InitializeWithRectanglesMultiPagesPdf) {
@@ -302,7 +327,21 @@
   EXPECT_EQ(PdfVersion::kUnknown, doc_metadata.version);
 }
 
-}  // namespace
+TEST_F(PDFiumEngineTest, IncrementalLoadingFeatureDefault) {
+  EXPECT_TRUE(TryLoadIncrementally());
+}
+
+TEST_F(PDFiumEngineTest, IncrementalLoadingFeatureEnabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(features::kPdfIncrementalLoading);
+  EXPECT_TRUE(TryLoadIncrementally());
+}
+
+TEST_F(PDFiumEngineTest, IncrementalLoadingFeatureDisabled) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndDisableFeature(features::kPdfIncrementalLoading);
+  EXPECT_FALSE(TryLoadIncrementally());
+}
 
 class TabbingTestClient : public TestClient {
  public:
diff --git a/pdf/test/data/linearized.pdf b/pdf/test/data/linearized.pdf
new file mode 100644
index 0000000..2c30aa6
--- /dev/null
+++ b/pdf/test/data/linearized.pdf
Binary files differ
diff --git a/services/network/public/cpp/proxy_config_mojom_traits_unittest.cc b/services/network/public/cpp/proxy_config_mojom_traits_unittest.cc
index f64ff8e..b5ec291 100644
--- a/services/network/public/cpp/proxy_config_mojom_traits_unittest.cc
+++ b/services/network/public/cpp/proxy_config_mojom_traits_unittest.cc
@@ -62,8 +62,8 @@
       "ftp=ftp1,ftp2,ftp3",
       "http=http1,http2; http=http3",
       "ftp=ftp1,ftp2,ftp3 ; http=http1,http2; ",
-      "http=https://secure_proxy; ftp=socks4://socks_proxy; "
-      "https=socks://foo",
+      ("http=https://secure_proxy; ftp=socks4://socks_proxy; "
+       "https=socks://foo"),
       "socks=foopy",
       "http=httpproxy ; https=httpsproxy ; ftp=ftpproxy ; socks=foopy ",
       "http=httpproxy ; https=httpsproxy ; socks=socks5://foopy ",
diff --git a/services/network/trust_tokens/BUILD.gn b/services/network/trust_tokens/BUILD.gn
index 2e10500..93b8501 100644
--- a/services/network/trust_tokens/BUILD.gn
+++ b/services/network/trust_tokens/BUILD.gn
@@ -162,6 +162,7 @@
     ":trust_tokens",
     "//base",
     "//base/test:test_support",
+    "//base/util/ranges",
     "//components/cbor",
     "//components/sqlite_proto",
     "//net",
diff --git a/services/network/trust_tokens/test/signed_request_verification_util.cc b/services/network/trust_tokens/test/signed_request_verification_util.cc
index d4941c1..c73cd5e 100644
--- a/services/network/trust_tokens/test/signed_request_verification_util.cc
+++ b/services/network/trust_tokens/test/signed_request_verification_util.cc
@@ -8,11 +8,14 @@
 
 #include "base/containers/flat_map.h"
 #include "base/containers/span.h"
+#include "base/strings/strcat.h"
+#include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
 #include "components/cbor/reader.h"
 #include "components/cbor/values.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/structured_headers.h"
+#include "services/network/public/mojom/trust_tokens.mojom-shared.h"
 #include "services/network/trust_tokens/ed25519_trust_token_request_signer.h"
 #include "services/network/trust_tokens/signed_redemption_record_serialization.h"
 #include "services/network/trust_tokens/trust_token_http_headers.h"
@@ -25,21 +28,197 @@
 namespace test {
 namespace {
 
-base::Optional<base::flat_map<std::string, net::structured_headers::Item>>
+base::Optional<
+    base::flat_map<std::string, net::structured_headers::ParameterizedMember>>
 DeserializeSecSignatureHeader(base::StringPiece header) {
   base::Optional<net::structured_headers::Dictionary> maybe_dictionary =
       net::structured_headers::ParseDictionary(header);
   if (!maybe_dictionary)
     return base::nullopt;
 
-  base::flat_map<std::string, net::structured_headers::Item> ret;
+  base::flat_map<std::string, net::structured_headers::ParameterizedMember> ret;
   for (const auto& kv : *maybe_dictionary) {
-    ret[kv.first] = kv.second.member.front().item;
+    ret[kv.first] = kv.second;
   }
 
   return ret;
 }
 
+// Given a single issuer's key-value entry from the Sec-Signature
+// header and some other data (destination and request headers) from the
+// corresponding request, reconstructs the request's canonical signing data
+// corresponding to the issuer and verifies the associated signature by calling
+// the provided callback.
+bool ReconstructSigningDataAndVerifyForIndividualIssuer(
+    net::structured_headers::ParameterizedItem& issuer_and_params,
+    const GURL& destination,
+    const net::HttpRequestHeaders& headers,
+    base::RepeatingCallback<bool(base::span<const uint8_t> data,
+                                 base::span<const uint8_t> signature,
+                                 base::span<const uint8_t> verification_key)>
+        verifier,
+    mojom::TrustTokenSignRequestData sign_request_data,
+    std::string* error_out,
+    std::map<std::string, std::string>* verification_keys_out) {
+  if (!issuer_and_params.item.is_string()) {
+    *error_out = "type-unsafe issuer in Sec-Signature header";
+    return false;
+  }
+  std::string issuer = issuer_and_params.item.GetString();  // for debugging
+
+  auto find_key = [&issuer_and_params](base::StringPiece key) {
+    return std::find_if(issuer_and_params.params.begin(),
+                        issuer_and_params.params.end(),
+                        [key](auto& param) { return param.first == key; });
+  };
+
+  auto sig_it = find_key("sig");
+  if (sig_it == issuer_and_params.params.end()) {
+    *error_out = base::ReplaceStringPlaceholders(
+        "'sig' element in Sec-Signature header missing for issuer $1", {issuer},
+        /*offsets=*/nullptr);
+    return false;
+  }
+  if (!sig_it->second.is_byte_sequence()) {
+    *error_out = base::ReplaceStringPlaceholders(
+        "'sig' element in Sec-Signature header for issuer $1 is type-unsafe",
+        {issuer}, /*offsets=*/nullptr);
+    return false;
+  }
+  // GetString is also the method one uses to get a byte sequence.
+  base::StringPiece signature = sig_it->second.GetString();
+
+  auto public_key_it = find_key("public-key");
+  if (public_key_it == issuer_and_params.params.end()) {
+    *error_out = base::ReplaceStringPlaceholders(
+        "'public-key' element in Sec-Signature header missing for issuer $1",
+        {issuer}, /*offsets=*/nullptr);
+    return false;
+  }
+  if (!public_key_it->second.is_byte_sequence()) {
+    *error_out = base::ReplaceStringPlaceholders(
+        "'public-key' element in Sec-Signature header for issuer $1 is "
+        "type-unsafe",
+        {issuer}, /*offsets=*/nullptr);
+    return false;
+  }
+  base::StringPiece public_key = public_key_it->second.GetString();
+
+  base::Optional<std::vector<uint8_t>> written_reconstructed_cbor =
+      TrustTokenRequestCanonicalizer().Canonicalize(
+          destination, headers, public_key, sign_request_data);
+  if (!written_reconstructed_cbor) {
+    *error_out = "Error reconstructing canonical request data";
+    return false;
+  }
+
+  std::vector<uint8_t> reconstructed_signing_data(
+      std::begin(
+          TrustTokenRequestSigningHelper::kRequestSigningDomainSeparator),
+      std::end(TrustTokenRequestSigningHelper::kRequestSigningDomainSeparator));
+  reconstructed_signing_data.insert(reconstructed_signing_data.end(),
+                                    written_reconstructed_cbor->begin(),
+                                    written_reconstructed_cbor->end());
+
+  if (!verifier) {
+    verifier =
+        base::BindRepeating(&Ed25519TrustTokenRequestSigner::Verify,
+                            std::make_unique<Ed25519TrustTokenRequestSigner>());
+  }
+
+  if (!verifier.Run(base::make_span(reconstructed_signing_data),
+                    base::as_bytes(base::make_span(signature)),
+                    base::as_bytes(base::make_span(public_key)))) {
+    *error_out = "Error verifying signature";
+    return false;
+  }
+
+  if (verification_keys_out)
+    verification_keys_out->emplace(issuer, std::string(public_key));
+
+  return true;
+}
+
+using SignatureHeaderMap =
+    base::flat_map<std::string, net::structured_headers::ParameterizedMember>;
+
+bool ExtractSignRequestDataFromSignatureHeaderMap(
+    const SignatureHeaderMap& map,
+    mojom::TrustTokenSignRequestData* sign_request_data_out,
+    std::string* error_out) {
+  auto it = map.find("sign-request-data");
+  if (it == map.end()) {
+    *error_out =
+        "Missing 'sign-request-data' element in the Sec-Signature header";
+    return false;
+  }
+  if (!it->second.member.front().item.is_token()) {
+    *error_out =
+        "'sign-request-data' element in Sec-Signature header is type-unsafe";
+    return false;
+  }
+
+  // GetString is also the method one uses to get a token.
+  base::StringPiece sign_request_data =
+      it->second.member.front().item.GetString();
+
+  if (sign_request_data != "headers-only" && sign_request_data != "include") {
+    *error_out =
+        "'sign-request-data' element in Sec-Signature header had a bad "
+        "value: " +
+        std::string(sign_request_data);
+    return false;
+  }
+
+  *sign_request_data_out = (sign_request_data == "headers-only")
+                               ? mojom::TrustTokenSignRequestData::kHeadersOnly
+                               : mojom::TrustTokenSignRequestData::kInclude;
+  return true;
+}
+
+bool ExtractIssuersAndParametersFromSignatureHeaderMap(
+    const SignatureHeaderMap& map,
+    std::vector<net::structured_headers::ParameterizedItem>*
+        issuers_and_parameters_out,
+    std::string* error_out) {
+  auto it = map.find("signatures");
+  if (it == map.end()) {
+    *error_out = "Missing 'signatures' element in the Sec-Signature header";
+    return false;
+  }
+  if (!it->second.member_is_inner_list) {
+    *error_out = "'signatures' element is not an inner list";
+    return false;
+  }
+
+  *issuers_and_parameters_out = it->second.member;
+  return true;
+}
+
+bool ValidateSignatureHeaderMapAndExtractFields(
+    const SignatureHeaderMap& map,
+    std::vector<net::structured_headers::ParameterizedItem>*
+        issuers_and_parameters_out,
+    mojom::TrustTokenSignRequestData* sign_request_data_out,
+    std::string* error_out) {
+  if (map.size() != 2) {
+    *error_out = "Unexpected number of members in Sec-Signature header map";
+    return false;
+  }
+
+  if (!ExtractSignRequestDataFromSignatureHeaderMap(map, sign_request_data_out,
+                                                    error_out)) {
+    return false;
+  }
+
+  if (!ExtractIssuersAndParametersFromSignatureHeaderMap(
+          map, issuers_and_parameters_out, error_out)) {
+    return false;
+  }
+
+  return true;
+}
+
 }  // namespace
 
 // From the design doc:
@@ -80,15 +259,15 @@
   return SrrVerificationStatus::kSuccess;
 }
 
-bool ReconstructSigningDataAndVerifySignature(
+bool ReconstructSigningDataAndVerifySignatures(
     const GURL& destination,
     const net::HttpRequestHeaders& headers,
-    base::OnceCallback<bool(base::span<const uint8_t> data,
-                            base::span<const uint8_t> signature,
-                            base::span<const uint8_t> verification_key)>
+    base::RepeatingCallback<bool(base::span<const uint8_t> data,
+                                 base::span<const uint8_t> signature,
+                                 base::span<const uint8_t> verification_key)>
         verifier,
     std::string* error_out,
-    std::string* verification_key_out) {
+    std::map<std::string, std::string>* verification_keys_out) {
   // Make it possible to set the error without needing to check for
   // |error_out|'s presence.
   std::string dummy_error;
@@ -102,90 +281,34 @@
     return false;
   }
 
-  base::Optional<base::flat_map<std::string, net::structured_headers::Item>>
-      map = DeserializeSecSignatureHeader(signature_header);
-  if (!map) {
+  base::Optional<
+      base::flat_map<std::string, net::structured_headers::ParameterizedMember>>
+      signature_header_map = DeserializeSecSignatureHeader(signature_header);
+  if (!signature_header_map) {
     *error_out = "Malformed Sec-Signature header";
     return false;
   }
 
-  auto it = map->find("sig");
-  if (it == map->end()) {
-    *error_out = "Missing 'sig' element in the Sec-Signature header";
-    return false;
-  }
-  if (!it->second.is_byte_sequence()) {
-    *error_out = "'sig' element in Sec-Signature header is type-unsafe";
-    return false;
-  }
-  // GetString is also the method one uses to get a byte sequence.
-  base::StringPiece signature = it->second.GetString();
-
-  it = map->find("public-key");
-  if (it == map->end()) {
-    *error_out = "Missing 'public-key' element in the Sec-Signature header";
-    return false;
-  }
-  if (!it->second.is_byte_sequence()) {
-    *error_out = "'public-key' element in Sec-Signature header is type-unsafe";
-    return false;
-  }
-  base::StringPiece public_key = it->second.GetString();
-
-  it = map->find("sign-request-data");
-  if (it == map->end()) {
-    *error_out =
-        "Missing 'sign-request-data' element in the Sec-Signature header";
-    return false;
-  }
-  if (!it->second.is_token()) {
-    *error_out =
-        "'sign-request-data' element in Sec-Signature header is type-unsafe";
-    return false;
-  }
-  // GetString is also the method one uses to get a token.
-  base::StringPiece sign_request_data = it->second.GetString();
-
-  if (sign_request_data != "headers-only" && sign_request_data != "include") {
-    *error_out =
-        "'sign-request-data' element in Sec-Signature header had a bad value";
+  std::vector<net::structured_headers::ParameterizedItem>
+      issuers_and_parameters;
+  mojom::TrustTokenSignRequestData sign_request_data;
+  if (!ValidateSignatureHeaderMapAndExtractFields(
+          *signature_header_map, &issuers_and_parameters, &sign_request_data,
+          error_out)) {
     return false;
   }
 
-  base::Optional<std::vector<uint8_t>> written_reconstructed_cbor =
-      TrustTokenRequestCanonicalizer().Canonicalize(
-          destination, headers, public_key,
-          sign_request_data == "include"
-              ? mojom::TrustTokenSignRequestData::kInclude
-              : mojom::TrustTokenSignRequestData::kHeadersOnly);
-  if (!written_reconstructed_cbor) {
-    *error_out = "Error reconstructing canonical request data";
-    return false;
+  for (net::structured_headers::ParameterizedItem& issuer_and_parameters :
+       issuers_and_parameters) {
+    // ReconstructSigningDataAndVerifyForIndividualIssuer will populate
+    // |error_out| on failure.
+    if (!ReconstructSigningDataAndVerifyForIndividualIssuer(
+            issuer_and_parameters, destination, headers, verifier,
+            sign_request_data, error_out, verification_keys_out)) {
+      return false;
+    }
   }
 
-  std::vector<uint8_t> reconstructed_signing_data(
-      std::begin(
-          TrustTokenRequestSigningHelper::kRequestSigningDomainSeparator),
-      std::end(TrustTokenRequestSigningHelper::kRequestSigningDomainSeparator));
-  reconstructed_signing_data.insert(reconstructed_signing_data.end(),
-                                    written_reconstructed_cbor->begin(),
-                                    written_reconstructed_cbor->end());
-
-  if (!verifier) {
-    verifier =
-        base::BindOnce(&Ed25519TrustTokenRequestSigner::Verify,
-                       std::make_unique<Ed25519TrustTokenRequestSigner>());
-  }
-
-  if (!std::move(verifier).Run(base::make_span(reconstructed_signing_data),
-                               base::as_bytes(base::make_span(signature)),
-                               base::as_bytes(base::make_span(public_key)))) {
-    *error_out = "Error verifying signature";
-    return false;
-  }
-
-  if (verification_key_out)
-    *verification_key_out = std::string(public_key);
   return true;
 }
 
@@ -259,5 +382,67 @@
   return true;
 }
 
+bool ExtractRedemptionRecordsFromHeader(
+    base::StringPiece sec_signed_redemption_record_header,
+    std::map<SuitableTrustTokenOrigin, std::string>*
+        redemption_records_per_issuer_out,
+    std::string* error_out) {
+  base::Optional<net::structured_headers::List> maybe_list =
+      net::structured_headers::ParseList(sec_signed_redemption_record_header);
+
+  std::string dummy;
+  if (!error_out)
+    error_out = &dummy;
+
+  if (!maybe_list) {
+    *error_out = "Header wasn't a valid Structured Headers list";
+    return false;
+  }
+
+  for (auto& issuer_and_params : *maybe_list) {
+    net::structured_headers::Item& issuer_item =
+        issuer_and_params.member.front().item;
+    if (!issuer_item.is_string()) {
+      *error_out = "Non-string item in the SRR header's list";
+      return false;
+    }
+
+    const net::structured_headers::Parameters& params_for_issuer =
+        issuer_and_params.params;
+    if (params_for_issuer.size() != 1) {
+      *error_out =
+          base::StrCat({"Unexpected number of parameters for SRR header list "
+                        "item; expected 1 parameter but there were ",
+                        base::NumberToString(params_for_issuer.size())});
+      return false;
+    }
+    if (params_for_issuer.front().first != "redemption-record") {
+      *error_out = base::ReplaceStringPlaceholders(
+          "Unexpected parameter key $1 for SRR header list item",
+          {params_for_issuer.front().first}, /*offsets=*/nullptr);
+      return false;
+    }
+
+    const net::structured_headers::Item& redemption_record_item =
+        params_for_issuer.front().second;
+    if (!redemption_record_item.is_byte_sequence()) {
+      *error_out = "Unexpected parameter value type for SRR header list item";
+      return false;
+    }
+
+    base::Optional<SuitableTrustTokenOrigin> maybe_issuer =
+        SuitableTrustTokenOrigin::Create(GURL(issuer_item.GetString()));
+    if (!maybe_issuer) {
+      *error_out = "Unsuitable Trust Tokens issuer origin in SRR header item";
+      return false;
+    }
+
+    // GetString also gets a byte sequence.
+    redemption_records_per_issuer_out->emplace(
+        std::move(*maybe_issuer), redemption_record_item.GetString());
+  }
+  return true;
+}
+
 }  // namespace test
 }  // namespace network
diff --git a/services/network/trust_tokens/test/signed_request_verification_util.h b/services/network/trust_tokens/test/signed_request_verification_util.h
index 3f0a9fb..f719677 100644
--- a/services/network/trust_tokens/test/signed_request_verification_util.h
+++ b/services/network/trust_tokens/test/signed_request_verification_util.h
@@ -12,6 +12,7 @@
 #include "base/optional.h"
 #include "base/strings/string_piece.h"
 #include "net/http/http_request_headers.h"
+#include "services/network/trust_tokens/suitable_trust_token_origin.h"
 #include "url/gurl.h"
 
 namespace network {
@@ -34,27 +35,28 @@
     base::StringPiece verification_key,
     std::string* srr_body_out = nullptr);
 
-// Reconstructs a request's canonical request data, extracts the signature from
+// Reconstructs a request's canonical request data, extracts the signatures from
 // its Sec-Signature header, checks that the Sec-Signature header's contained
-// signature verifies.
+// signatures verify.
 //
 // Optionally:
-// - if |verification_key_out| is non-null, on success, returns the verification
-// key so that the caller can verify further state concerning the key (like
-// confirming that the key was bound to a previous redemption).
-// - if |error_out| is non-null, on failure, sets it to a human-readable
+// - If |verification_keys_out| is non-null, on success, returns the
+// verification key for each issuer, so that the caller can verify further state
+// concerning the key (like confirming that the key was bound to a previous
+// redemption).
+// - If |error_out| is non-null, on failure, sets it to a human-readable
 // description of the reason the verification failed.
-// - if |verifier| is non-null, uses the given verifier to verify the
-// signature instead of Ed25519
-bool ReconstructSigningDataAndVerifySignature(
+// - If |verifier| is non-null, uses the given verifier to verify the
+// signatures instead of Ed25519.
+bool ReconstructSigningDataAndVerifySignatures(
     const GURL& destination,
     const net::HttpRequestHeaders& headers,
-    base::OnceCallback<bool(base::span<const uint8_t> data,
-                            base::span<const uint8_t> signature,
-                            base::span<const uint8_t> verification_key)>
+    base::RepeatingCallback<bool(base::span<const uint8_t> data,
+                                 base::span<const uint8_t> signature,
+                                 base::span<const uint8_t> verification_key)>
         verifier = {},  // defaults to Ed25519
     std::string* error_out = nullptr,
-    std::string* verification_key_out = nullptr);
+    std::map<std::string, std::string>* verification_keys_out = nullptr);
 
 // Returns true if |srr_body| a valid CBOR encoding of an "SRR body" struct, as
 // defined in the design doc. Otherwise, returns false and, if |error_out| is
@@ -62,6 +64,16 @@
 bool ConfirmSrrBodyIntegrity(base::StringPiece srr_body,
                              std::string* error_out = nullptr);
 
+// Parses a Sec-Signed-Redemption-Record header and extracts the (issuer,
+// redemption record) pairs the header contains. On success, returns true. On
+// failure, returns false and, if |error_out| is not null, stores a
+// helpful error message in |error_out| for debugging.
+bool ExtractRedemptionRecordsFromHeader(
+    base::StringPiece sec_signed_redemption_record_header,
+    std::map<SuitableTrustTokenOrigin, std::string>*
+        redemption_records_per_issuer_out,
+    std::string* error_out);
+
 }  // namespace test
 }  // namespace network
 
diff --git a/services/network/trust_tokens/test/trust_token_request_handler.cc b/services/network/trust_tokens/test/trust_token_request_handler.cc
index 7d4f03a..f517e16 100644
--- a/services/network/trust_tokens/test/trust_token_request_handler.cc
+++ b/services/network/trust_tokens/test/trust_token_request_handler.cc
@@ -5,6 +5,7 @@
 #include "services/network/trust_tokens/test/trust_token_request_handler.h"
 
 #include "base/base64.h"
+#include "base/callback.h"
 #include "base/check.h"
 #include "base/containers/span.h"
 #include "base/json/json_string_value_serializer.h"
@@ -365,48 +366,62 @@
   }
   DCHECK_EQ(rep_->client_signing_outcome, SigningOutcome::kSuccess);
 
-  std::string srr_body;
-  switch (VerifyTrustTokenSignedRedemptionRecord(
-      sec_signed_redemption_record_header,
-      base::StringPiece(
-          reinterpret_cast<const char*>(rep_->srr_verification.data()),
-          rep_->srr_verification.size()),
-      &srr_body)) {
-    case SrrVerificationStatus::kSignatureVerificationError:
-      if (error_out) {
-        *error_out = "Request SRR signature failed to verify";
-      }
-      return false;
-    case SrrVerificationStatus::kParseError:
-      if (error_out) {
-        *error_out = "Request SRR header failed to parse";
-      }
-      return false;
-    case SrrVerificationStatus::kSuccess:
-      break;
-  }
-
-  if (!ConfirmSrrBodyIntegrity(srr_body, error_out))
-    return false;  // On failure, |ConfirmSrrBodyIntegrity| has set the error.
-
-  std::string verification_key;
-
-  if (!ReconstructSigningDataAndVerifySignature(destination, headers,
-                                                /*verifier=*/{}, error_out,
-                                                &verification_key)) {
+  std::map<SuitableTrustTokenOrigin, std::string> redemption_records_per_issuer;
+  // On failure, |ExtractRedemptionRecordsFromHeader| has set the error.
+  if (!ExtractRedemptionRecordsFromHeader(sec_signed_redemption_record_header,
+                                          &redemption_records_per_issuer,
+                                          error_out)) {
     return false;
   }
 
-  if (!base::Contains(rep_->hashes_of_redemption_bound_key_pairs,
-                      crypto::SHA256HashString(verification_key))) {
-    if (error_out) {
-      *error_out =
-          "Got a request signed with a verification key whose hash was not "
-          "previously bound to a redemption request.";
+  for (const auto& issuer_and_record : redemption_records_per_issuer) {
+    // TODO(davidvc): Check that the issuer corresponds to "this server's
+    // domain" once this handler is scoped to a single domain.
+    std::string srr_body;
+    switch (VerifyTrustTokenSignedRedemptionRecord(
+        issuer_and_record.second,
+        base::StringPiece(
+            reinterpret_cast<const char*>(rep_->srr_verification.data()),
+            rep_->srr_verification.size()),
+        &srr_body)) {
+      case SrrVerificationStatus::kSignatureVerificationError:
+        if (error_out) {
+          *error_out = "Request SRR signature failed to verify";
+        }
+        return false;
+      case SrrVerificationStatus::kParseError:
+        if (error_out) {
+          *error_out = "Request SRR header failed to parse";
+        }
+        return false;
+      case SrrVerificationStatus::kSuccess:
+        break;
     }
+
+    if (!ConfirmSrrBodyIntegrity(srr_body, error_out))
+      return false;  // On failure, |ConfirmSrrBodyIntegrity| has set the error.
+  }
+
+  std::map<std::string, std::string> verification_keys;
+
+  if (!ReconstructSigningDataAndVerifySignatures(destination, headers,
+                                                 /*verifier=*/{}, error_out,
+                                                 &verification_keys)) {
     return false;
   }
 
+  for (const auto& issuer_and_key : verification_keys) {
+    if (!base::Contains(rep_->hashes_of_redemption_bound_key_pairs,
+                        crypto::SHA256HashString(issuer_and_key.second))) {
+      if (error_out) {
+        *error_out =
+            "Got a request signed with a verification key whose hash was not "
+            "previously bound to a redemption request.";
+      }
+      return false;
+    }
+  }
+
   return true;
 }
 
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory.cc b/services/network/trust_tokens/trust_token_request_helper_factory.cc
index 3bcac200..9ba6d9d 100644
--- a/services/network/trust_tokens/trust_token_request_helper_factory.cc
+++ b/services/network/trust_tokens/trust_token_request_helper_factory.cc
@@ -127,22 +127,29 @@
     }
 
     case mojom::TrustTokenOperationType::kSigning: {
-      // TODO(davidvc): When adding logic to send the new Trust Tokens signing
-      // headers handling lists of issuers, update this to use the entire list.
-      base::Optional<SuitableTrustTokenOrigin> maybe_issuer;
-      if (!params->issuers.empty()) {
-        maybe_issuer = SuitableTrustTokenOrigin::Create(
-            std::move(params->issuers.front()));
-      }
-
-      if (!maybe_issuer) {
-        LogOutcome(net_log, "Missing/unsuitable 'issuer' parameter");
+      if (params->issuers.empty()) {
+        LogOutcome(net_log, "Empty 'issuers' parameter");
         std::move(done).Run(mojom::TrustTokenOperationStatus::kInvalidArgument);
         return;
       }
 
+      std::vector<SuitableTrustTokenOrigin> issuers;
+      for (url::Origin& potentially_unsuitable_issuer : params->issuers) {
+        base::Optional<SuitableTrustTokenOrigin> maybe_issuer =
+            SuitableTrustTokenOrigin::Create(
+                std::move(potentially_unsuitable_issuer));
+        if (!maybe_issuer) {
+          LogOutcome(net_log, "Unsuitable issuer in 'issuers' parameter");
+          std::move(done).Run(
+              mojom::TrustTokenOperationStatus::kInvalidArgument);
+          return;
+        }
+
+        issuers.emplace_back(std::move(*maybe_issuer));
+      }
+
       TrustTokenRequestSigningHelper::Params signing_params(
-          std::move(*maybe_issuer), top_frame_origin,
+          std::move(issuers), top_frame_origin,
           std::move(params->additional_signed_headers),
           params->include_timestamp_header, params->sign_request_data,
           params->possibly_unsafe_additional_signing_data);
diff --git a/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc b/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc
index 874acc8f..8fa823a 100644
--- a/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc
+++ b/services/network/trust_tokens/trust_token_request_helper_factory_unittest.cc
@@ -146,7 +146,7 @@
 }
 
 TEST_F(TrustTokenRequestHelperFactoryTest,
-       CreatingSigningHelperRequiresSuitableIssuer) {
+       CreatingSigningHelperRequiresSuitableIssuers) {
   auto request = CreateSuitableRequest();
 
   auto params = suitable_params().Clone();
diff --git a/services/network/trust_tokens/trust_token_request_signing_helper.cc b/services/network/trust_tokens/trust_token_request_signing_helper.cc
index 393221b..f5d2d720 100644
--- a/services/network/trust_tokens/trust_token_request_signing_helper.cc
+++ b/services/network/trust_tokens/trust_token_request_signing_helper.cc
@@ -44,6 +44,7 @@
 }
 
 }  // namespace
+
 namespace internal {
 
 // Parse the Signed-Headers input header as a Structured Headers Draft 15 list
@@ -91,12 +92,14 @@
 
 using Params = TrustTokenRequestSigningHelper::Params;
 
-// Constants for keys and values in the Sec-Signature header:
+// Constants for keys and values in the generated headers:
 const char kSignatureHeaderSignRequestDataIncludeValue[] = "include";
 const char kSignatureHeaderSignRequestDataHeadersOnlyValue[] = "headers-only";
+const char kSignatureHeaderSignaturesKey[] = "signatures";
 const char kSignatureHeaderSignRequestDataKey[] = "sign-request-data";
 const char kSignatureHeaderPublicKeyKey[] = "public-key";
 const char kSignatureHeaderSignatureKey[] = "sig";
+const char kRedemptionRecordHeaderRedemptionRecordKey[] = "redemption-record";
 
 std::vector<std::string> Lowercase(std::vector<std::string> in) {
   for (std::string& str : in) {
@@ -181,12 +184,37 @@
 }
 
 void AttachSignedRedemptionRecordHeader(net::URLRequest* request,
-                                        const std::string& value) {
+                                        std::string value) {
   request->SetExtraRequestHeaderByName(
       kTrustTokensRequestHeaderSecSignedRedemptionRecord, value,
       /*overwrite=*/true);
 }
 
+// Builds a Trust Tokens signed redemption record header, which is logically an
+// issuer-to-SRR map but implemented as a Structured Headers Draft 15
+// parameterized list (essentially a list where each member has an associated
+// dictionary).
+base::Optional<std::string> ConstructSignedRedemptionRecordHeader(
+    const base::flat_map<SuitableTrustTokenOrigin,
+                         SignedTrustTokenRedemptionRecord>&
+        records_per_issuer) {
+  net::structured_headers::List header_items;
+
+  for (const auto& issuer_and_record : records_per_issuer) {
+    net::structured_headers::Item issuer_item(
+        issuer_and_record.first.Serialize(),
+        net::structured_headers::Item::ItemType::kStringType);
+    net::structured_headers::Item redemption_record_item(
+        issuer_and_record.second.body(),
+        net::structured_headers::Item::ItemType::kByteSequenceType);
+    header_items.emplace_back(net::structured_headers::ParameterizedMember(
+        std::move(issuer_item), {{kRedemptionRecordHeaderRedemptionRecordKey,
+                                  std::move(redemption_record_item)}}));
+  }
+
+  return net::structured_headers::SerializeList(std::move(header_items));
+}
+
 }  // namespace
 
 TrustTokenRequestSigningHelper::TrustTokenRequestSigningHelper(
@@ -204,13 +232,13 @@
 TrustTokenRequestSigningHelper::~TrustTokenRequestSigningHelper() = default;
 
 Params::Params(
-    SuitableTrustTokenOrigin issuer,
+    std::vector<SuitableTrustTokenOrigin> issuers,
     SuitableTrustTokenOrigin toplevel,
     std::vector<std::string> additional_headers_to_sign,
     bool should_add_timestamp,
     mojom::TrustTokenSignRequestData sign_request_data,
     base::Optional<std::string> possibly_unsafe_additional_signing_data)
-    : issuer(std::move(issuer)),
+    : issuers(std::move(issuers)),
       toplevel(std::move(toplevel)),
       additional_headers_to_sign(std::move(additional_headers_to_sign)),
       should_add_timestamp(should_add_timestamp),
@@ -220,7 +248,9 @@
 
 Params::Params(SuitableTrustTokenOrigin issuer,
                SuitableTrustTokenOrigin toplevel)
-    : issuer(std::move(issuer)), toplevel(std::move(toplevel)) {}
+    : toplevel(std::move(toplevel)) {
+  issuers.emplace_back(std::move(issuer));
+}
 Params::~Params() = default;
 Params::Params(const Params&) = default;
 // The type alias causes a linter false positive.
@@ -267,22 +297,41 @@
   net_log_.BeginEvent(
       net::NetLogEventType::TRUST_TOKEN_OPERATION_BEGIN_SIGNING);
 
-  // The comments below are the steps in the "Redemption record attachment and
-  // request signing" pseudocode in https://bit.ly/trust-token-dd
+  // The numbered comments below are the steps in the "Redemption record
+  // attachment and request signing" pseudocode in https://bit.ly/trust-token-dd
 
-  base::Optional<SignedTrustTokenRedemptionRecord> maybe_redemption_record =
-      token_store_->RetrieveNonstaleRedemptionRecord(params_.issuer,
-                                                     params_.toplevel);
+  // (Because of the chracteristics of the protocol, this map is expected to
+  // have at most ~5 elements.)
+  base::flat_map<SuitableTrustTokenOrigin, SignedTrustTokenRedemptionRecord>
+      records_per_issuer;
 
-  if (!maybe_redemption_record) {
+  // 1. For each issuer specified, search storage for a non-expired SRR
+  // corresponding to that issuer and the request’s initiating top-level origin.
+  for (const SuitableTrustTokenOrigin& issuer : params_.issuers) {
+    base::Optional<SignedTrustTokenRedemptionRecord> maybe_redemption_record =
+        token_store_->RetrieveNonstaleRedemptionRecord(issuer,
+                                                       params_.toplevel);
+    if (!maybe_redemption_record)
+      continue;
+
+    records_per_issuer[issuer] = std::move(*maybe_redemption_record);
+  }
+
+  if (records_per_issuer.empty()) {
     AttachSignedRedemptionRecordHeader(request, std::string());
 
-    LogOutcome(net_log_, "No SRR for this (issuer, top-level context) pair");
+    LogOutcome(net_log_,
+               "No SRR for any of the given issuers, in the operation's "
+               "top-level context");
     std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
     return;
   }
 
+  // 2.a. If the request’s additionalSigningData argument is nonempty, add a
+  // Sec-Trust-Tokens-Additional-Signing-Data header to the request with its
+  // value equal to that of the request’s additionalSigningData argument.
   if (params_.possibly_unsafe_additional_signing_data) {
+    // 2.a.i. If it is longer than 2048 bytes, raise an error.
     if (params_.possibly_unsafe_additional_signing_data->size() >
         kTrustTokenAdditionalSigningDataMaxSizeBytes) {
       LogOutcome(net_log_, "Overly long additionalSigningData");
@@ -292,6 +341,8 @@
       return;
     }
 
+    // 2.a.ii. If it is not a valid HTTP header value (contains \r, \n, or \0),
+    // raise an error.
     if (!net::HttpUtil::IsValidHeaderValue(
             *params_.possibly_unsafe_additional_signing_data)) {
       LogOutcome(net_log_,
@@ -310,6 +361,9 @@
     DCHECK(!request->extra_request_headers().HasHeader(
         kTrustTokensRequestHeaderSecTrustTokensAdditionalSigningData));
 
+    // 2.a.iii. Add a Sec-Trust-Tokens-Additional-Signing-Data header to the
+    // request with its value equal to that of the request’s
+    // additionalSigningData argument.
     request->SetExtraRequestHeaderByName(
         kTrustTokensRequestHeaderSecTrustTokensAdditionalSigningData,
         *params_.possibly_unsafe_additional_signing_data,
@@ -319,6 +373,11 @@
         kTrustTokensRequestHeaderSecTrustTokensAdditionalSigningData);
   }
 
+  // 2.b. Merge the additionalRequestHeaders Fetch parameter’s contents into the
+  // request’s Signed-Headers header (creating a header if previously absent).
+  // If the request has a Sec-Trust-Tokens-Additional-Signing-Data header,
+  // append “Sec-Trust-Tokens-Additional-Signing-Data” to the request’s
+  // Signed-Headers header.
   base::Optional<std::vector<std::string>> maybe_headers_to_sign =
       GetHeadersToSignAndUpdateSignedHeadersHeader(
           request, params_.additional_headers_to_sign);
@@ -333,8 +392,24 @@
     return;
   }
 
-  AttachSignedRedemptionRecordHeader(request, maybe_redemption_record->body());
+  // 2.c. Attach the SRRs in a Sec-Signed-Redemption-Record header.
+  if (base::Optional<std::string> maybe_signed_redemption_record_header =
+          ConstructSignedRedemptionRecordHeader(records_per_issuer)) {
+    AttachSignedRedemptionRecordHeader(
+        request, std::move(*maybe_signed_redemption_record_header));
+  } else {
+    AttachSignedRedemptionRecordHeader(request, std::string());
 
+    LogOutcome(
+        net_log_,
+        "Unexpected internal error serializing Sec-Signed-Redemption-Record"
+        " header.");
+    std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
+    return;
+  }
+
+  // 2.d. If specified by the request’s includeTimestampHeader parameter, add a
+  // Sec-Time header containing a high-resolution timestamp, encoded in ISO8601.
   if (params_.should_add_timestamp) {
     request->SetExtraRequestHeaderByName(kTrustTokensRequestHeaderSecTime,
                                          base::TimeToISO8601(base::Time::Now()),
@@ -347,39 +422,58 @@
     return;
   }
 
-  base::Optional<std::vector<uint8_t>> maybe_signature =
-      GetSignature(request, *maybe_redemption_record, *maybe_headers_to_sign);
+  // 2.e. If the request’s signRequestData Fetch parameter is not “omit”, follow
+  // the steps in the Computing an outgoing request’s signatures section to add
+  // a Sec-Signature header containing, for each issuer, a signature over some
+  // of the request’s data (e.g. a subset of its headers) generated using a key
+  // bound to a prior redemption against that issuer.
+  base::flat_map<SuitableTrustTokenOrigin, std::vector<uint8_t>>
+      signatures_per_issuer;
 
-  if (!maybe_signature) {
+  for (const auto& issuer_and_record : records_per_issuer) {
+    if (base::Optional<std::vector<uint8_t>> maybe_signature = GetSignature(
+            request, issuer_and_record.second, *maybe_headers_to_sign)) {
+      signatures_per_issuer[issuer_and_record.first] =
+          std::move(*maybe_signature);
+    } else {
+      // Failure isn't likely and would mean that the signing key---which we
+      // generate ourselves, during redemption---somehow got corrupted, or there
+      // was some kind of internal error generating the signature in the
+      // underlying cryptography library.
+      net_log_.AddEntry(
+          net::NetLogEventType::TRUST_TOKEN_OPERATION_BEGIN_SIGNING,
+          net::NetLogEventPhase::NONE,
+          [&issuer_and_record](net::NetLogCaptureMode mode) {
+            base::Value ret(base::Value::Type::DICTIONARY);
+            ret.SetStringPath("failed_signing_params.issuer",
+                              issuer_and_record.first.Serialize());
+            if (net::NetLogCaptureIncludesSensitive(mode)) {
+              ret.SetStringPath("failed_signing_params.key",
+                                issuer_and_record.second.signing_key());
+            }
+            return ret;
+          });
+    }
+  }
+
+  if (base::Optional<std::string> maybe_signature_header =
+          BuildSignatureHeaderIfAtLeastOneSignatureIsPresent(
+              records_per_issuer, signatures_per_issuer)) {
+    request->SetExtraRequestHeaderByName(kTrustTokensRequestHeaderSecSignature,
+                                         std::move(*maybe_signature_header),
+                                         /*overwrite=*/true);
+  } else {
     AttachSignedRedemptionRecordHeader(request, std::string());
     request->RemoveRequestHeaderByName(kTrustTokensRequestHeaderSecTime);
     request->RemoveRequestHeaderByName(kTrustTokensRequestHeaderSignedHeaders);
 
-    LogOutcome(net_log_, "Internal error generating signature");
+    LogOutcome(net_log_,
+               "Internal error serializing signature header, or generating all "
+               "issuers' signatures failed.");
     std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
     return;
   }
 
-  base::Optional<std::string> maybe_signature_header = BuildSignatureHeader(
-      maybe_redemption_record->public_key(),
-      base::StringPiece(reinterpret_cast<const char*>(maybe_signature->data()),
-                        maybe_signature->size()));
-
-  // Error serializing the header. Not expected.
-  if (!maybe_signature_header) {
-    AttachSignedRedemptionRecordHeader(request, std::string());
-    request->RemoveRequestHeaderByName(kTrustTokensRequestHeaderSecTime);
-    request->RemoveRequestHeaderByName(kTrustTokensRequestHeaderSignedHeaders);
-
-    LogOutcome(net_log_, "Internal error serializing signature header");
-    std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
-    return;
-  }
-
-  request->SetExtraRequestHeaderByName(kTrustTokensRequestHeaderSecSignature,
-                                       *maybe_signature_header,
-                                       /*overwrite=*/true);
-
   LogOutcome(net_log_, "Success");
   std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
 }
@@ -390,33 +484,79 @@
   return std::move(done).Run(mojom::TrustTokenOperationStatus::kOk);
 }
 
-base::Optional<std::string>
-TrustTokenRequestSigningHelper::BuildSignatureHeader(
-    base::StringPiece public_key,
-    base::StringPiece signature) {
+namespace {
+
+// Given a redemption record and a signature bytestring, returns a {
+//   "public-key": <public key>,
+//   "sig": <signature>
+// }
+// nested map, corresponding to a single entry in the Sec-Signature header's
+// top-level list.
+net::structured_headers::Parameters ConstructKeyAndSignaturePair(
+    const SignedTrustTokenRedemptionRecord& redemption_record,
+    base::span<const uint8_t> signature_bytes) {
+  net::structured_headers::Item public_key(
+      redemption_record.public_key(),
+      net::structured_headers::Item::ItemType::kByteSequenceType);
+  net::structured_headers::Item signature(net::structured_headers::Item(
+      std::string(reinterpret_cast<const char*>(signature_bytes.data()),
+                  signature_bytes.size()),
+      net::structured_headers::Item::ItemType::kByteSequenceType));
+
+  return {{kSignatureHeaderPublicKeyKey, std::move(public_key)},
+          {kSignatureHeaderSignatureKey, std::move(signature)}};
+}
+
+}  // namespace
+
+base::Optional<std::string> TrustTokenRequestSigningHelper::
+    BuildSignatureHeaderIfAtLeastOneSignatureIsPresent(
+        const base::flat_map<SuitableTrustTokenOrigin,
+                             SignedTrustTokenRedemptionRecord>&
+            records_per_issuer,
+        const base::flat_map<SuitableTrustTokenOrigin, std::vector<uint8_t>>&
+            signatures_per_issuer) {
+  if (signatures_per_issuer.empty())
+    return base::nullopt;
+
   net::structured_headers::Dictionary header_items;
 
-  header_items[kSignatureHeaderPublicKeyKey] =
+  std::vector<net::structured_headers::ParameterizedItem> keys_and_signatures;
+  for (const auto& kv : signatures_per_issuer) {
+    const SuitableTrustTokenOrigin& issuer = kv.first;
+    const std::vector<uint8_t>& signature = kv.second;
+
+    keys_and_signatures.emplace_back(net::structured_headers::ParameterizedItem(
+        net::structured_headers::Item(
+            issuer.Serialize(),
+            net::structured_headers::Item::ItemType::kStringType),
+        // records_per_issuer is guaranteed to have all of the keys that
+        // signatures_per_issuer does, so using |at| is safe:
+        ConstructKeyAndSignaturePair(records_per_issuer.at(issuer),
+                                     signature)));
+  }
+
+  header_items[kSignatureHeaderSignaturesKey] =
       net::structured_headers::ParameterizedMember(
-          net::structured_headers::Item(
-              std::string(public_key),
-              net::structured_headers::Item::ItemType::kByteSequenceType),
-          {});
-  header_items[kSignatureHeaderSignatureKey] =
-      net::structured_headers::ParameterizedMember(
-          net::structured_headers::Item(
-              std::string(signature),
-              net::structured_headers::Item::ItemType::kByteSequenceType),
-          {});
+          std::move(keys_and_signatures),
+          net::structured_headers::Parameters());
 
   // A value of kOmit denotes not wanting the request signed at all, so it'd be
   // a caller error if we were trying to sign the request with it set.
   DCHECK_NE(params_.sign_request_data, mojom::TrustTokenSignRequestData::kOmit);
 
-  const char* sign_request_data_value =
-      params_.sign_request_data == mojom::TrustTokenSignRequestData::kInclude
-          ? kSignatureHeaderSignRequestDataIncludeValue
-          : kSignatureHeaderSignRequestDataHeadersOnlyValue;
+  const char* sign_request_data_value = "";
+  switch (params_.sign_request_data) {
+    case mojom::TrustTokenSignRequestData::kInclude:
+      sign_request_data_value = kSignatureHeaderSignRequestDataIncludeValue;
+      break;
+    case mojom::TrustTokenSignRequestData::kHeadersOnly:
+      sign_request_data_value = kSignatureHeaderSignRequestDataHeadersOnlyValue;
+      break;
+    case mojom::TrustTokenSignRequestData::kOmit:
+      NOTREACHED();  // "omit" handled (far) above.
+      break;
+  }
 
   header_items[kSignatureHeaderSignRequestDataKey] =
       net::structured_headers::ParameterizedMember(
diff --git a/services/network/trust_tokens/trust_token_request_signing_helper.h b/services/network/trust_tokens/trust_token_request_signing_helper.h
index 831ee3a..1683104 100644
--- a/services/network/trust_tokens/trust_token_request_signing_helper.h
+++ b/services/network/trust_tokens/trust_token_request_signing_helper.h
@@ -73,7 +73,7 @@
 
   struct Params {
     // Refer to fields' comments for their semantics.
-    Params(SuitableTrustTokenOrigin issuer,
+    Params(std::vector<SuitableTrustTokenOrigin> issuers,
            SuitableTrustTokenOrigin toplevel,
            std::vector<std::string> additional_headers_to_sign,
            bool should_add_timestamp,
@@ -91,14 +91,14 @@
     Params(Params&&);
     Params& operator=(Params&&);
 
-    // |issuer| is the Trust Tokens issuer origin for which to retrieve a Signed
-    // Redemption Record and matching signing key. This must be both (1) HTTP or
-    // HTTPS and (2) "potentially trustworthy". This precondition is slightly
-    // involved because there are two needs:
+    // |issuers| contains the Trust Tokens issuer origins for which to retrieve
+    // Signed Redemption Records and matching signing keys. These must be both
+    // (1) HTTP or HTTPS and (2) "potentially trustworthy". This precondition is
+    // slightly involved because there are two needs:
     //   1. HTTP or HTTPS so that the scheme serializes in a sensible manner in
-    //   order to serve as a key for persisting state.
-    //   2. potentially trustworthy origin to satisfy Web security requirements.
-    SuitableTrustTokenOrigin issuer;
+    //   order to serve as a key for persisting state,
+    //   2. potentially trustworthy to satisfy Web security requirements.
+    std::vector<SuitableTrustTokenOrigin> issuers;
 
     // |toplevel| is the top-level origin of the initiating request. This must
     // satisfy the same preconditions as |issuer|.
@@ -173,13 +173,13 @@
   TrustTokenRequestSigningHelper& operator=(
       const TrustTokenRequestSigningHelper&) = delete;
 
-  // Attempts to attach a Signed Redemption Record (SRR) corresponding
-  // to |request|'s initiating top-level origin and the provided issuer origin.
+  // Attempts to attach Signed Redemption Records (SRRs) corresponding
+  // to |request|'s initiating top-level origin and the provided issuer origins.
   //
   // ATTACHING THE REDEMPTION RECORD:
-  // In the case that an SRR is found and the requested headers to sign are
-  // well-formed, attaches a Sec-Signed-Redemption-Record header
-  // bearing the SRR and:
+  // In the case that an SRR is found for at least one provided issuer and the
+  // requested headers to sign are well-formed, attaches a
+  // Sec-Signed-Redemption-Record header bearing the SRRs and:
   // 1. if the request is configured for adding a Trust Tokens timestamp,
   // adds a timestamp header;
   // 2. if the request is configured for signing, computes the request's
@@ -190,11 +190,12 @@
   // 1. The caller specified headers for signing other than those in
   // kSignableRequestHeaders (or if the request has a malformed or otherwise
   // invalid signed issuers list in its Signed-Headers header); or
-  // 2. |token_store_| contains no SRR for this issuer-toplevel pair; or
+  // 2. none of the provided issuers has an SRR corresponding to this top-level
+  // origin in |token_store_|; or
   // 3. an internal error occurs during signing or header serialization.
   //
   // POSTCONDITIONS:
-  // - Always returns kOk. This is to avoid aborting a request entirely to a
+  // - Always returns kOk. This is to avoid aborting a request entirely due to a
   // failure during signing; see the Trust Tokens design doc for more
   // discussion.
   // - On failure, the request will contain an empty
@@ -211,16 +212,28 @@
       base::OnceCallback<void(mojom::TrustTokenOperationStatus)> done) override;
 
  private:
-  // Given (unencoded) bytestrings |public_key| and |signature|, returns the
+  // Given issuer-to-redemption-record and issuer-to-signature maps, returns a
   // Trust Tokens signature header, a serialized Structured Headers Draft 15
-  // dictionary looking roughly like (order not guaranteed):
-  //   public-key=:<base64(pk)>:,
-  //   sig=:<base64(signature)>:,
-  //   sign-request-data=include | headers-only
+  // dictionary with logical structure roughly
+  // "signatures": [
+  //   (<issuer 1>, { "public-key": <public key>, "sig": <signature> }),
+  //   …..
+  //   (<issuer N>, { "public-key": <public key>, "sig": <signature> })
+  // ],
+  // "sign-request-data": include | headers-only
   //
-  // Returns nullopt on serialization error.
-  base::Optional<std::string> BuildSignatureHeader(base::StringPiece public_key,
-                                                   base::StringPiece signature);
+  // Returns nullopt on serialization error, or if |signatures_per_issuer| is
+  // empty.
+  //
+  // REQUIRES: Every issuer in |signatures_per_issuer| must have a corresponding
+  // signed redemption record in |records_per_issuer|.
+  base::Optional<std::string>
+  BuildSignatureHeaderIfAtLeastOneSignatureIsPresent(
+      const base::flat_map<SuitableTrustTokenOrigin,
+                           SignedTrustTokenRedemptionRecord>&
+          records_per_issuer,
+      const base::flat_map<SuitableTrustTokenOrigin, std::vector<uint8_t>>&
+          signatures_per_issuer);
 
   // Returns a signature over |request|'s pertinent data (public key,
   // user-specified headers and, possibly, destination URL), or nullopt in case
diff --git a/services/network/trust_tokens/trust_token_request_signing_helper_unittest.cc b/services/network/trust_tokens/trust_token_request_signing_helper_unittest.cc
index 08a9bad..0270abe4 100644
--- a/services/network/trust_tokens/trust_token_request_signing_helper_unittest.cc
+++ b/services/network/trust_tokens/trust_token_request_signing_helper_unittest.cc
@@ -18,11 +18,14 @@
 #include "base/test/bind_test_util.h"
 #include "base/test/task_environment.h"
 #include "base/time/time_to_iso8601.h"
+#include "base/util/ranges/algorithm.h"
 #include "components/cbor/reader.h"
 #include "components/cbor/values.h"
 #include "components/cbor/writer.h"
 #include "net/base/request_priority.h"
 #include "net/http/structured_headers.h"
+#include "net/log/test_net_log.h"
+#include "net/log/test_net_log_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_test_util.h"
@@ -38,7 +41,6 @@
 #include "url/gurl.h"
 #include "url/origin.h"
 
-using ::testing::AnyOf;
 using ::testing::IsEmpty;
 using ::testing::Matches;
 using ::testing::Not;
@@ -102,30 +104,35 @@
   }
 };
 
-// Reconstructs |request|'s canonical request data, extracts the signature from
+// Reconstructs |request|'s canonical request data, extracts the signatures from
 // |request|'s Sec-Signature header, and uses the verification algorithm
 // provided by the template parameter |Signer| to check that the Sec-Signature
-// header's contained signature verifies.
+// header's contained signatures verify.
 template <typename Signer>
-void ReconstructSigningDataAndAssertSignatureVerifies(
-    net::URLRequest* request) {
+void ReconstructSigningDataAndAssertSignaturesVerify(
+    net::URLRequest* request,
+    size_t num_expected_signatures) {
   std::string error;
-  bool success = test::ReconstructSigningDataAndVerifySignature(
+
+  std::map<std::string, std::string> verification_keys_per_issuer;
+  bool success = test::ReconstructSigningDataAndVerifySignatures(
       request->url(), request->extra_request_headers(),
-      base::BindOnce([](base::span<const uint8_t> data,
-                        base::span<const uint8_t> signature,
-                        base::span<const uint8_t> verification_key) {
+      base::BindRepeating([](base::span<const uint8_t> data,
+                             base::span<const uint8_t> signature,
+                             base::span<const uint8_t> verification_key) {
         return Signer().Verify(data, signature, verification_key);
       }),
-      &error);
+      &error, &verification_keys_per_issuer);
 
   ASSERT_TRUE(success) << error;
+  ASSERT_EQ(verification_keys_per_issuer.size(), num_expected_signatures);
 }
 
-// Verifies that |request| has a Sec-Signature header with a "sig" field and
-// extracts the request's signature from this field.
-void AssertHasSignatureAndExtract(const net::URLRequest& request,
-                                  std::string* signature_out) {
+// Verifies that |request| has a Sec-Signature header containing signatures and
+// extracts the signature for each issuer to |signatures_out|.
+void AssertHasSignaturesAndExtract(
+    const net::URLRequest& request,
+    std::map<std::string, std::string>* signatures_out) {
   std::string signature_header;
   ASSERT_TRUE(request.extra_request_headers().GetHeader("Sec-Signature",
                                                         &signature_header));
@@ -133,12 +140,22 @@
   base::Optional<net::structured_headers::Dictionary> maybe_dictionary =
       net::structured_headers::ParseDictionary(signature_header);
   ASSERT_TRUE(maybe_dictionary);
-  ASSERT_TRUE(maybe_dictionary->contains("sig"));
+  ASSERT_TRUE(maybe_dictionary->contains("signatures"));
 
-  net::structured_headers::Item& sig_item =
-      maybe_dictionary->at("sig").member.front().item;
-  ASSERT_TRUE(sig_item.is_byte_sequence());
-  *signature_out = sig_item.GetString();
+  for (auto& issuer_and_params : maybe_dictionary->at("signatures").member) {
+    net::structured_headers::Item& issuer_item = issuer_and_params.item;
+    ASSERT_TRUE(issuer_item.is_string());
+
+    auto signature_iterator = std::find_if(
+        issuer_and_params.params.begin(), issuer_and_params.params.end(),
+        [](auto& param) { return param.first == "sig"; });
+
+    ASSERT_TRUE(signature_iterator != issuer_and_params.params.end())
+        << "Missing signature";
+    ASSERT_TRUE(signature_iterator->second.is_byte_sequence());
+    signatures_out->emplace(issuer_item.GetString(),
+                            signature_iterator->second.GetString());
+  }
 }
 
 // Assert that the given signing data is a concatenation of the domain separator
@@ -149,7 +166,7 @@
                                         base::StringPiece field_name,
                                         std::string* field_value_out) {
   base::Optional<cbor::Value> parsed = cbor::Reader::Read(base::as_bytes(
-      // Skip over the "Trust Token v0" domain separator.
+      // Skip over the domain separator (e.g. "Trust Token v0").
       base::make_span(signing_data)
           .subspan(base::size(TrustTokenRequestSigningHelper::
                                   kRequestSigningDomainSeparator))));
@@ -178,6 +195,13 @@
   return Matches(other_matcher)(header);
 }
 
+SuitableTrustTokenOrigin CreateSuitableOriginOrDie(base::StringPiece spec) {
+  base::Optional<SuitableTrustTokenOrigin> maybe_origin =
+      SuitableTrustTokenOrigin::Create(GURL(spec));
+  CHECK(maybe_origin) << "Failed to create a SuitableTrustTokenOrigin!";
+  return *maybe_origin;
+}
+
 }  // namespace
 
 TEST_F(TrustTokenRequestSigningHelperTest, WontSignIfNoRedemptionRecord) {
@@ -199,8 +223,9 @@
   mojom::TrustTokenOperationStatus result =
       ExecuteBeginOperationAndWaitForResult(&helper, my_request.get());
 
-  // In failure cases, the signing helper should return kOk but attach an empty
-  // SRR header.
+  // In failure cases---in particular, in this case where none of the provided
+  // issuers has a signed redemption record in storage---the signing helper
+  // should return kOk but attach an empty SRR header.
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
   EXPECT_THAT(*my_request, Header("Sec-Signed-Redemption-Record", IsEmpty()));
   EXPECT_THAT(*my_request, Not(Header("Sec-Signature")));
@@ -222,7 +247,8 @@
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
   my_record.set_body("SRR body");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
@@ -266,7 +292,8 @@
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
@@ -311,7 +338,8 @@
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
@@ -349,7 +377,8 @@
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
   my_record.set_body("look at me, I'm an SRR body");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
@@ -367,6 +396,9 @@
 }
 
 // Test SRR attachment without request signing:
+// - The two issuers with stored redemption records should appear in the header.
+// - A third issuer without a corresponding redemption record in storage
+// shouldn't appear in the header.
 TEST_F(TrustTokenRequestSigningHelperTest,
        RedemptionRecordAttachmentWithoutSigning) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateForTesting();
@@ -376,11 +408,26 @@
       *SuitableTrustTokenOrigin::Create(GURL("https://toplevel.com")));
   params.should_add_timestamp = true;
   params.sign_request_data = mojom::TrustTokenSignRequestData::kOmit;
+  params.issuers.push_back(
+      *SuitableTrustTokenOrigin::Create(GURL("https://second-issuer.example")));
 
-  SignedTrustTokenRedemptionRecord my_record;
-  my_record.set_body("look at me! I'm a signed redemption record");
-  my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  SignedTrustTokenRedemptionRecord first_issuer_record;
+  first_issuer_record.set_body("look at me! I'm a signed redemption record");
+  first_issuer_record.set_public_key("key");
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             first_issuer_record);
+
+  SignedTrustTokenRedemptionRecord second_issuer_record;
+  second_issuer_record.set_body(
+      "I'm another signed redemption record, distinct from the first");
+  second_issuer_record.set_public_key("some other key");
+  store->SetRedemptionRecord(params.issuers.back(), params.toplevel,
+                             second_issuer_record);
+
+  // Attempting to sign with an issuer with no redemption record in storage
+  // should be fine, resulting in the issuer getting ignored.
+  params.issuers.push_back(
+      *SuitableTrustTokenOrigin::Create(GURL("https://third-issuer.example")));
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<IdentitySigner>(),
@@ -392,8 +439,23 @@
       ExecuteBeginOperationAndWaitForResult(&helper, my_request.get());
 
   ASSERT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
-  EXPECT_THAT(*my_request,
-              Header("Sec-Signed-Redemption-Record", StrEq(my_record.body())));
+
+  std::string redemption_record_header;
+  ASSERT_TRUE(my_request->extra_request_headers().GetHeader(
+      "Sec-Signed-Redemption-Record", &redemption_record_header));
+  std::map<SuitableTrustTokenOrigin, std::string> redemption_records_per_issuer;
+  std::string error;
+  ASSERT_TRUE(test::ExtractRedemptionRecordsFromHeader(
+      redemption_record_header, &redemption_records_per_issuer, &error))
+      << error;
+
+  EXPECT_THAT(
+      redemption_records_per_issuer,
+      UnorderedElementsAre(
+          Pair(CreateSuitableOriginOrDie("https://issuer.com"),
+               StrEq(first_issuer_record.body())),
+          Pair(CreateSuitableOriginOrDie("https://second-issuer.example"),
+               StrEq(second_issuer_record.body()))));
   EXPECT_THAT(*my_request, Header("Sec-Time"));
   EXPECT_THAT(*my_request, Not(Header("Sec-Signature")));
 }
@@ -410,11 +472,12 @@
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
   my_record.set_body("look at me, I'm an SRR body");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   // Giving an IdentitySigner to |helper| will mean that |helper| should provide
   // its entire signing data in the request's Sec-Signature header's "sig"
-  // field. ReconstructSigningDataAndAssertSignatureVerifies then reproduces
+  // field. ReconstructSigningDataAndAssertSignaturesVerify then reproduces
   // this canonical data's construction and checks that the reconstructed data
   // matches what |helper| produced.
   auto canonicalizer = std::make_unique<TrustTokenRequestCanonicalizer>();
@@ -430,11 +493,11 @@
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
 
   ASSERT_NO_FATAL_FAILURE(
-      ReconstructSigningDataAndAssertSignatureVerifies<IdentitySigner>(
-          my_request.get()));
+      ReconstructSigningDataAndAssertSignaturesVerify<IdentitySigner>(
+          my_request.get(), /*num_expected_signatures=*/1));
 }
 
-// Test a round-trip sign-and-verify with signed headers.
+// Test a round-trip sign-and-verify with signed headers and multiple issuers.
 TEST_F(TrustTokenRequestSigningHelperTest, SignAndVerifyWithHeaders) {
   std::unique_ptr<TrustTokenStore> store = TrustTokenStore::CreateForTesting();
 
@@ -445,10 +508,18 @@
   SignedTrustTokenRedemptionRecord record;
   record.set_body("I am a signed token redemption record");
   record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel, record);
   params.additional_headers_to_sign =
       std::vector<std::string>{"Sec-Signed-Redemption-Record"};
 
+  params.issuers.push_back(
+      *SuitableTrustTokenOrigin::Create(GURL("https://second-issuer.example")));
+  SignedTrustTokenRedemptionRecord other_record;
+  other_record.set_body("I am a different signed token redemption record");
+  other_record.set_public_key("some other key");
+  store->SetRedemptionRecord(params.issuers.back(), params.toplevel,
+                             other_record);
+
   auto canonicalizer = std::make_unique<TrustTokenRequestCanonicalizer>();
   TrustTokenRequestSigningHelper helper(store.get(), std::move(params),
                                         std::make_unique<IdentitySigner>(),
@@ -461,8 +532,8 @@
 
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
   ASSERT_NO_FATAL_FAILURE(
-      ReconstructSigningDataAndAssertSignatureVerifies<IdentitySigner>(
-          my_request.get()));
+      ReconstructSigningDataAndAssertSignaturesVerify<IdentitySigner>(
+          my_request.get(), /*num_expected_signatures=*/2));
 }
 
 // Test a round-trip sign-and-verify with signed headers when adding a timestamp
@@ -480,7 +551,7 @@
   SignedTrustTokenRedemptionRecord record;
   record.set_body("I am a signed token redemption record");
   record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel, record);
 
   auto canonicalizer = std::make_unique<TrustTokenRequestCanonicalizer>();
   TrustTokenRequestSigningHelper helper(store.get(), std::move(params),
@@ -495,15 +566,17 @@
 
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
   ASSERT_NO_FATAL_FAILURE(
-      ReconstructSigningDataAndAssertSignatureVerifies<IdentitySigner>(
-          my_request.get()));
+      ReconstructSigningDataAndAssertSignaturesVerify<IdentitySigner>(
+          my_request.get(), /*num_expected_signatures=*/1));
 
-  std::string signature_string;
+  // Because we're using an IdentitySigner, each signature will have value
+  // equal to the base64-encoded request signing data.
+  std::map<std::string, std::string> signatures;
   ASSERT_NO_FATAL_FAILURE(
-      AssertHasSignatureAndExtract(*my_request, &signature_string));
+      AssertHasSignaturesAndExtract(*my_request, &signatures));
   std::string retrieved_timestamp;
   ASSERT_NO_FATAL_FAILURE(AssertDecodesToCborAndExtractField(
-      signature_string, "sec-time", &retrieved_timestamp));
+      signatures.begin()->second, "sec-time", &retrieved_timestamp));
 }
 
 // Test a round-trip sign-and-verify additionally signing over the destination
@@ -520,7 +593,7 @@
   SignedTrustTokenRedemptionRecord record;
   record.set_body("I am a signed token redemption record");
   record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel, record);
   params.additional_headers_to_sign =
       std::vector<std::string>{"Sec-Signed-Redemption-Record"};
 
@@ -536,23 +609,23 @@
       ExecuteBeginOperationAndWaitForResult(&helper, my_request.get());
 
   // In addition to testing that the signing data equals
-  // ReconstructSigningDataAndAssertSignatureVerifies's reconstruction of the
+  // ReconstructSigningDataAndAssertSignaturesVerify's reconstruction of the
   // data, explicitly check that it contains a "destination" field with the
   // right value.
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
 
   ASSERT_NO_FATAL_FAILURE(
-      ReconstructSigningDataAndAssertSignatureVerifies<IdentitySigner>(
-          my_request.get()));
+      ReconstructSigningDataAndAssertSignaturesVerify<IdentitySigner>(
+          my_request.get(), /*num_expected_signatures=*/1));
 
-  // Because we're using an IdentitySigner, |signature_string| will have value
+  // Because we're using an IdentitySigner, each signature will have value
   // equal to the base64-encoded request signing data.
-  std::string signature_string;
+  std::map<std::string, std::string> signatures;
   ASSERT_NO_FATAL_FAILURE(
-      AssertHasSignatureAndExtract(*my_request, &signature_string));
+      AssertHasSignaturesAndExtract(*my_request, &signatures));
   std::string retrieved_url;
   ASSERT_NO_FATAL_FAILURE(AssertDecodesToCborAndExtractField(
-      signature_string, "destination", &retrieved_url));
+      signatures.begin()->second, "destination", &retrieved_url));
   ASSERT_EQ(retrieved_url, "destination.com");
 }
 
@@ -569,7 +642,9 @@
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  my_record.set_signing_key("signing key");
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   params.should_add_timestamp = true;
   params.additional_headers_to_sign =
@@ -577,9 +652,12 @@
 
   // FailingSigner will fail to sign the request, so we should see the operation
   // fail.
+  net::RecordingTestNetLog net_log;
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FailingSigner>(),
-      std::make_unique<TrustTokenRequestCanonicalizer>());
+      std::make_unique<TrustTokenRequestCanonicalizer>(),
+      net::NetLogWithSource::Make(&net_log,
+                                  net::NetLogSourceType::URL_REQUEST));
 
   auto my_request = MakeURLRequest("https://destination.com/");
   my_request->set_initiator(
@@ -592,6 +670,18 @@
   EXPECT_THAT(*my_request, Not(Header("Sec-Time")));
   EXPECT_THAT(*my_request, Not(Header("Sec-Signature")));
   EXPECT_THAT(*my_request, Header("Sec-Signed-Redemption-Record", IsEmpty()));
+  EXPECT_TRUE(util::ranges::any_of(
+      net_log.GetEntriesWithType(
+          net::NetLogEventType::TRUST_TOKEN_OPERATION_BEGIN_SIGNING),
+      [](const net::NetLogEntry& entry) {
+        base::Optional<std::string> key = net::GetOptionalStringValueFromParams(
+            entry, "failed_signing_params.key");
+        base::Optional<std::string> issuer =
+            net::GetOptionalStringValueFromParams(
+                entry, "failed_signing_params.issuer");
+        return key && *key == "signing key" && issuer &&
+               *issuer == "https://issuer.com";
+      }));
 }
 
 // Test a round-trip sign-and-verify with signed headers when adding additional
@@ -609,7 +699,7 @@
   SignedTrustTokenRedemptionRecord record;
   record.set_body("I am a signed token redemption record");
   record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel, record);
 
   auto canonicalizer = std::make_unique<TrustTokenRequestCanonicalizer>();
   TrustTokenRequestSigningHelper helper(store.get(), std::move(params),
@@ -624,15 +714,17 @@
 
   EXPECT_EQ(result, mojom::TrustTokenOperationStatus::kOk);
   ASSERT_NO_FATAL_FAILURE(
-      ReconstructSigningDataAndAssertSignatureVerifies<IdentitySigner>(
-          my_request.get()));
+      ReconstructSigningDataAndAssertSignaturesVerify<IdentitySigner>(
+          my_request.get(), /*num_expected_signatures=*/1));
 
-  std::string signature_string;
+  // Because we're using an IdentitySigner, each signature will have value
+  // equal to the base64-encoded request signing data.
+  std::map<std::string, std::string> signatures;
   ASSERT_NO_FATAL_FAILURE(
-      AssertHasSignatureAndExtract(*my_request, &signature_string));
+      AssertHasSignaturesAndExtract(*my_request, &signatures));
   std::string retrieved_additional_signing_data;
   ASSERT_NO_FATAL_FAILURE(AssertDecodesToCborAndExtractField(
-      signature_string, "sec-trust-tokens-additional-signing-data",
+      signatures.begin()->second, "sec-trust-tokens-additional-signing-data",
       &retrieved_additional_signing_data));
 
   EXPECT_EQ(retrieved_additional_signing_data, "some additional data to sign");
@@ -651,7 +743,8 @@
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
@@ -685,7 +778,8 @@
 
   SignedTrustTokenRedemptionRecord my_record;
   my_record.set_public_key("key");
-  store->SetRedemptionRecord(params.issuer, params.toplevel, my_record);
+  store->SetRedemptionRecord(params.issuers.front(), params.toplevel,
+                             my_record);
 
   TrustTokenRequestSigningHelper helper(
       store.get(), std::move(params), std::make_unique<FakeSigner>(),
diff --git a/services/service_manager/embedder/main.cc b/services/service_manager/embedder/main.cc
index 47a9f5e..607618c 100644
--- a/services/service_manager/embedder/main.cc
+++ b/services/service_manager/embedder/main.cc
@@ -275,7 +275,7 @@
 #endif
     base::EnableTerminationOnOutOfMemory();
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     // The various desktop environments set this environment variable that
     // allows the dbus client library to connect directly to the bus. When this
     // variable is not set (test environments like xvfb-run), the dbus client
diff --git a/services/service_manager/embedder/set_process_title.cc b/services/service_manager/embedder/set_process_title.cc
index ae234fa..a2ced53 100644
--- a/services/service_manager/embedder/set_process_title.cc
+++ b/services/service_manager/embedder/set_process_title.cc
@@ -6,7 +6,7 @@
 // program_invocation_short_name. Keep this at the top of the file since some
 // system headers might include <errno.h> and the header could be skipped on
 // subsequent includes.
-#if defined(OS_LINUX) && !defined(_GNU_SOURCE)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS)) && !defined(_GNU_SOURCE)
 #define _GNU_SOURCE
 #endif
 
@@ -26,7 +26,7 @@
 #include "base/command_line.h"
 #endif  // defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_SOLARIS)
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include <errno.h>  // Get program_invocation_short_name declaration.
 #include <sys/prctl.h>
 
@@ -37,7 +37,7 @@
 #include "base/threading/platform_thread.h"
 // Linux/glibc doesn't natively have setproctitle().
 #include "services/service_manager/embedder/set_process_title_linux.h"
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 namespace service_manager {
 
@@ -52,7 +52,7 @@
   std::string title;
   bool have_argv0 = false;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   DCHECK_EQ(base::PlatformThread::CurrentId(), getpid());
 
   if (main_argv)
@@ -85,7 +85,7 @@
     // setproctitle().
     program_invocation_short_name = strdup(base_name.c_str());
   }
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
   const base::CommandLine* command_line =
       base::CommandLine::ForCurrentProcess();
diff --git a/services/service_manager/public/cpp/service_executable/service_executable_environment.cc b/services/service_manager/public/cpp/service_executable/service_executable_environment.cc
index 3b08dd9a..8d99a8e 100644
--- a/services/service_manager/public/cpp/service_executable/service_executable_environment.cc
+++ b/services/service_manager/public/cpp/service_executable/service_executable_environment.cc
@@ -19,7 +19,7 @@
 #include "sandbox/policy/switches.h"
 #include "services/service_manager/public/cpp/service_executable/switches.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "base/rand_util.h"
 #include "base/system/sys_info.h"
 #include "sandbox/policy/linux/sandbox_linux.h"
@@ -31,7 +31,7 @@
     : ipc_thread_("IPC Thread") {
   DCHECK(!base::CurrentThread::Get());
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   const base::CommandLine& command_line =
       *base::CommandLine::ForCurrentProcess();
   if (command_line.HasSwitch(sandbox::policy::switches::kServiceSandboxType)) {
diff --git a/services/service_manager/service_process_launcher.cc b/services/service_manager/service_process_launcher.cc
index 78afdaf..c424df90 100644
--- a/services/service_manager/service_process_launcher.cc
+++ b/services/service_manager/service_process_launcher.cc
@@ -36,7 +36,7 @@
 #include "services/service_manager/public/mojom/service.mojom.h"
 #include "services/service_manager/switches.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "sandbox/linux/services/namespace_sandbox.h"
 #endif
 
@@ -228,7 +228,7 @@
 #endif
   DVLOG(2) << "Launching child with command line: "
            << child_command_line->GetCommandLineString();
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   if (!IsUnsandboxedSandboxType(sandbox_type)) {
     child_process_ =
         sandbox::NamespaceSandbox::LaunchProcess(*child_command_line, options);
diff --git a/services/tracing/public/cpp/perfetto/trace_time.cc b/services/tracing/public/cpp/perfetto/trace_time.cc
index a8319c7..0fc56753 100644
--- a/services/tracing/public/cpp/perfetto/trace_time.cc
+++ b/services/tracing/public/cpp/perfetto/trace_time.cc
@@ -12,7 +12,8 @@
 
 int64_t TraceBootTicksNow() {
   // On Windows and Mac, TRACE_TIME_TICKS_NOW() behaves like boottime already.
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_FUCHSIA)
   struct timespec ts;
   int res = clock_gettime(CLOCK_BOOTTIME, &ts);
   if (res != -1)
diff --git a/services/tracing/public/cpp/perfetto/trace_time.h b/services/tracing/public/cpp/perfetto/trace_time.h
index 34a6063..c2ef710d 100644
--- a/services/tracing/public/cpp/perfetto/trace_time.h
+++ b/services/tracing/public/cpp/perfetto/trace_time.h
@@ -10,7 +10,8 @@
 
 namespace tracing {
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_FUCHSIA)
 // Linux, Android, and Fuchsia all use CLOCK_MONOTONIC. See crbug.com/166153
 // about efforts to unify base::TimeTicks across all platforms.
 constexpr perfetto::protos::pbzero::BuiltinClock kTraceClockId =
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
index 77208f0..c918f150 100644
--- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
+++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc
@@ -524,7 +524,7 @@
 
 // static
 void TracingSamplerProfiler::MangleModuleIDIfNeeded(std::string* module_id) {
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
   // Linux ELF module IDs are 160bit integers, which we need to mangle
   // down to 128bit integers to match the id that Breakpad outputs.
   // Example on version '66.0.3359.170' x64:
diff --git a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
index 87c6fb4c..8ca971b 100644
--- a/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
+++ b/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler_unittest.cc
@@ -465,7 +465,7 @@
                                     base::TimeTicks());
 }
 
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 TEST_F(TracingProfileBuilderTest, MangleELFModuleID) {
   TestModule module;
   // See explanation for the module_id mangling in
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h
index a2a56f4..d9ee3391 100644
--- a/skia/config/SkUserConfig.h
+++ b/skia/config/SkUserConfig.h
@@ -225,6 +225,9 @@
 #define SK_SUPPORT_LEGACY_AAA_CHOICE
 #endif
 
+// Staging for changes to SkRuntimeEffect main() signature
+#define SK_USE_LEGACY_RUNTIME_EFFECT_SIGNATURE
+
 // Staging for lowp::bilerp_clamp_8888, and for planned misc. others.
 #define SK_DISABLE_LOWP_BILERP_CLAMP_CLAMP_STAGE
 
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json
index 9d7da7d..33b74d3 100644
--- a/testing/buildbot/chromium.android.fyi.json
+++ b/testing/buildbot/chromium.android.fyi.json
@@ -940,7 +940,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M83",
-              "revision": "version:83.0.4103.15"
+              "revision": "version:83.0.4103.56"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -1014,7 +1014,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M83",
-              "revision": "version:83.0.4103.15"
+              "revision": "version:83.0.4103.56"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -1088,7 +1088,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M84",
-              "revision": "version:84.0.4147.69"
+              "revision": "version:84.0.4147.84"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -1162,7 +1162,155 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M84",
-              "revision": "version:84.0.4147.69"
+              "revision": "version:84.0.4147.84"
+            },
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-8",
+              "os": "Ubuntu-16.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android28",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_28_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "weblayer_instrumentation_test_versions_apk",
+        "test_id_prefix": "ninja://weblayer/browser/android/javatests:weblayer_instrumentation_test_versions_apk/"
+      },
+      {
+        "args": [
+          "--test-runner-outdir",
+          ".",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M85/out/Release",
+          "--implementation-outdir",
+          ".",
+          "--test-expectations",
+          "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--client-version=85",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android28.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "weblayer_instrumentation_test_versions_apk_M85_Client_Library_Tests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "name": "weblayer_instrumentation_test_versions_apk_M85_Client_Library_Tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "chromium/testing/weblayer-x86",
+              "location": "weblayer_instrumentation_test_M85",
+              "revision": "version:85.0.4183.47"
+            },
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-8",
+              "os": "Ubuntu-16.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android28",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_28_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "weblayer_instrumentation_test_versions_apk",
+        "test_id_prefix": "ninja://weblayer/browser/android/javatests:weblayer_instrumentation_test_versions_apk/"
+      },
+      {
+        "args": [
+          "--test-runner-outdir",
+          ".",
+          "--client-outdir",
+          ".",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M85/out/Release",
+          "--test-expectations",
+          "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--impl-version=85",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android28.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "weblayer_instrumentation_test_versions_apk_M85_Implementation_Library_Tests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "name": "weblayer_instrumentation_test_versions_apk_M85_Implementation_Library_Tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "chromium/testing/weblayer-x86",
+              "location": "weblayer_instrumentation_test_M85",
+              "revision": "version:85.0.4183.47"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index 9a741c08..56b831a 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -5118,7 +5118,6 @@
         "args": [
           "--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*:ChromeContentBrowserClientTest.UserAgentStringOrdering:ChromeMetricsServiceClientTest.TestRegisterMetricsServiceProviders"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -5144,7 +5143,7 @@
       },
       {
         "args": [
-          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest.GetWindowPlacement:DesktopWidgetTest.MinimumSizeConstraints:EditableComboboxTest*:MenuRunnerTest*:TextfieldTest*:TooltipControllerTest*"
+          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest*:DesktopWindowTreeHostPlatformTest*:EditableComboboxTest*:MenuRunnerTest*:TextfieldTest*:TooltipControllerTest*"
         ],
         "experiment_percentage": 100,
         "merge": {
diff --git a/testing/buildbot/chromium.ci.json b/testing/buildbot/chromium.ci.json
index f146bdc..564332e 100644
--- a/testing/buildbot/chromium.ci.json
+++ b/testing/buildbot/chromium.ci.json
@@ -7242,7 +7242,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -7284,7 +7284,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -7778,7 +7778,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -7820,7 +7820,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -8296,7 +8296,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -8337,7 +8337,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -8888,7 +8888,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -8930,7 +8930,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -9473,7 +9473,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -9515,7 +9515,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10041,7 +10041,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10083,7 +10083,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10231,7 +10231,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10479,7 +10479,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=UseSkiaRenderer,Vulkan --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=UseSkiaRenderer,Vulkan --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10837,7 +10837,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -10878,7 +10878,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -21216,6 +21216,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -21245,6 +21246,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -21540,6 +21542,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -21569,6 +21572,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -21864,6 +21868,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -21893,6 +21898,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -22188,6 +22194,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -22217,6 +22224,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -22521,6 +22529,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -22550,6 +22559,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -22832,6 +22842,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -22859,6 +22870,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -23159,6 +23171,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -23188,6 +23201,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -23470,6 +23484,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -23497,6 +23512,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -23807,6 +23823,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -24105,6 +24122,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -24133,6 +24151,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -24425,6 +24444,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -24453,6 +24473,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -24745,6 +24766,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -24773,6 +24795,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -25065,6 +25088,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -25093,6 +25117,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -25387,6 +25412,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -25414,6 +25440,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -25705,6 +25732,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -25732,6 +25760,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -26023,6 +26052,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -26050,6 +26080,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -26341,6 +26372,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -26368,6 +26400,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -197971,7 +198004,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M83",
-              "revision": "version:83.0.4103.15"
+              "revision": "version:83.0.4103.56"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -198045,7 +198078,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M83",
-              "revision": "version:83.0.4103.15"
+              "revision": "version:83.0.4103.56"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -198119,7 +198152,7 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M84",
-              "revision": "version:84.0.4147.69"
+              "revision": "version:84.0.4147.84"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -198193,7 +198226,155 @@
             {
               "cipd_package": "chromium/testing/weblayer-x86",
               "location": "weblayer_instrumentation_test_M84",
-              "revision": "version:84.0.4147.69"
+              "revision": "version:84.0.4147.84"
+            },
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-8",
+              "os": "Ubuntu-16.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android28",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_28_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "weblayer_instrumentation_test_versions_apk",
+        "test_id_prefix": "ninja://weblayer/browser/android/javatests:weblayer_instrumentation_test_versions_apk/"
+      },
+      {
+        "args": [
+          "--test-runner-outdir",
+          ".",
+          "--client-outdir",
+          "../../weblayer_instrumentation_test_M85/out/Release",
+          "--implementation-outdir",
+          ".",
+          "--test-expectations",
+          "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--client-version=85",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android28.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "weblayer_instrumentation_test_versions_apk_M85_Client_Library_Tests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "name": "weblayer_instrumentation_test_versions_apk_M85_Client_Library_Tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "chromium/testing/weblayer-x86",
+              "location": "weblayer_instrumentation_test_M85",
+              "revision": "version:85.0.4183.47"
+            },
+            {
+              "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
+              "location": "bin",
+              "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c"
+            }
+          ],
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "device_os": null,
+              "device_type": null,
+              "machine_type": "n1-standard-8",
+              "os": "Ubuntu-16.04",
+              "pool": "chromium.tests.avd"
+            }
+          ],
+          "named_caches": [
+            {
+              "name": "avd_generic_android28",
+              "path": ".android"
+            },
+            {
+              "name": "system_images_android_28_google_apis_x86",
+              "path": ".emulator_sdk"
+            }
+          ],
+          "output_links": [
+            {
+              "link": [
+                "https://luci-logdog.appspot.com/v/?s",
+                "=android%2Fswarming%2Flogcats%2F",
+                "${TASK_ID}%2F%2B%2Funified_logcats"
+              ],
+              "name": "shard #${SHARD_INDEX} logcats"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "weblayer_instrumentation_test_versions_apk",
+        "test_id_prefix": "ninja://weblayer/browser/android/javatests:weblayer_instrumentation_test_versions_apk/"
+      },
+      {
+        "args": [
+          "--test-runner-outdir",
+          ".",
+          "--client-outdir",
+          ".",
+          "--implementation-outdir",
+          "../../weblayer_instrumentation_test_M85/out/Release",
+          "--test-expectations",
+          "../../weblayer/browser/android/javatests/skew/expectations.txt",
+          "--impl-version=85",
+          "--gs-results-bucket=chromium-result-details",
+          "--recover-devices",
+          "--avd-config=../../tools/android/avd/proto/generic_android28.textpb"
+        ],
+        "merge": {
+          "args": [
+            "--bucket",
+            "chromium-result-details",
+            "--test-name",
+            "weblayer_instrumentation_test_versions_apk_M85_Implementation_Library_Tests"
+          ],
+          "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
+        },
+        "name": "weblayer_instrumentation_test_versions_apk_M85_Implementation_Library_Tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "cipd_packages": [
+            {
+              "cipd_package": "chromium/testing/weblayer-x86",
+              "location": "weblayer_instrumentation_test_M85",
+              "revision": "version:85.0.4183.47"
             },
             {
               "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
@@ -256502,7 +256683,6 @@
         "args": [
           "--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*:ChromeContentBrowserClientTest.UserAgentStringOrdering:ChromeMetricsServiceClientTest.TestRegisterMetricsServiceProviders"
         ],
-        "experiment_percentage": 100,
         "merge": {
           "args": [],
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -256528,7 +256708,7 @@
       },
       {
         "args": [
-          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest.GetWindowPlacement:DesktopWidgetTest.MinimumSizeConstraints:EditableComboboxTest*:MenuRunnerTest*:TextfieldTest*:TooltipControllerTest*"
+          "--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:DesktopWidgetTest*:DesktopWindowTreeHostPlatformTest*:EditableComboboxTest*:MenuRunnerTest*:TextfieldTest*:TooltipControllerTest*"
         ],
         "experiment_percentage": 100,
         "merge": {
@@ -270568,5 +270748,28 @@
         "test_id_prefix": "ninja://:blink_web_tests/"
       }
     ]
+  },
+  "win7-omaha-tester-rel": {
+    "gtest_tests": [
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "integrity": "high",
+              "os": "Windows-7-SP1"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "updater_tests",
+        "test_id_prefix": "ninja://chrome/updater:updater_tests/"
+      }
+    ]
   }
 }
diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json
index 331fb89..8d61fb2 100644
--- a/testing/buildbot/chromium.dawn.json
+++ b/testing/buildbot/chromium.dawn.json
@@ -270,6 +270,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -299,6 +300,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -594,6 +596,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -623,6 +626,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -918,6 +922,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -947,6 +952,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -1242,6 +1248,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
           "--additional-driver-flag=--use-vulkan=native"
@@ -1271,6 +1278,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--no-xvfb",
@@ -1575,6 +1583,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -1604,6 +1613,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -1886,6 +1896,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -1913,6 +1924,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -2213,6 +2225,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -2242,6 +2255,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -2524,6 +2538,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
         ],
@@ -2551,6 +2566,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--platform=mac-mac10.13"
@@ -2861,6 +2877,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -3159,6 +3176,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -3187,6 +3205,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -3479,6 +3498,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -3507,6 +3527,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -3799,6 +3820,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -3827,6 +3849,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -4119,6 +4142,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
         ],
@@ -4147,6 +4171,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests",
           "--target=Release_x64"
@@ -4441,6 +4466,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -4468,6 +4494,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -4759,6 +4786,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -4786,6 +4814,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -5077,6 +5106,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -5104,6 +5134,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
@@ -5395,6 +5426,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
         "isolate_name": "webgpu_blink_web_tests",
@@ -5422,6 +5454,7 @@
         "args": [
           "--driver-logging",
           "--jobs=1",
+          "--order=natural",
           "--additional-driver-flag=--enable-dawn-backend-validation",
           "--additional-driver-flag=--use-gpu-in-tests"
         ],
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 15e6f7e..89d8394 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -65840,5 +65840,28 @@
         "test_id_prefix": "ninja://:blink_web_tests/"
       }
     ]
+  },
+  "win7-omaha-tester-rel": {
+    "gtest_tests": [
+      {
+        "merge": {
+          "args": [],
+          "script": "//testing/merge_scripts/standard_gtest_merge.py"
+        },
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "dimension_sets": [
+            {
+              "cpu": "x86-64",
+              "integrity": "high",
+              "os": "Windows-7-SP1"
+            }
+          ],
+          "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+        },
+        "test": "updater_tests",
+        "test_id_prefix": "ninja://chrome/updater:updater_tests/"
+      }
+    ]
   }
 }
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
index b91c14d..5b1d52b5 100644
--- a/testing/buildbot/chromium.gpu.fyi.json
+++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -4078,7 +4078,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -4120,7 +4120,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -4614,7 +4614,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -4656,7 +4656,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -5132,7 +5132,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -5173,7 +5173,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -5724,7 +5724,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -5766,7 +5766,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -6309,7 +6309,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -6351,7 +6351,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -6877,7 +6877,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -6919,7 +6919,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -7067,7 +7067,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -7315,7 +7315,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=UseSkiaRenderer,Vulkan --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=UseSkiaRenderer,Vulkan --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
diff --git a/testing/buildbot/chromium.gpu.json b/testing/buildbot/chromium.gpu.json
index 08e14325..813d8f78 100644
--- a/testing/buildbot/chromium.gpu.json
+++ b/testing/buildbot/chromium.gpu.json
@@ -174,7 +174,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -215,7 +215,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json
index b8bc998..628ce0c 100644
--- a/testing/buildbot/client.v8.fyi.json
+++ b/testing/buildbot/client.v8.fyi.json
@@ -134,7 +134,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -174,7 +174,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
diff --git a/testing/buildbot/filters/lacros.browser_tests.filter b/testing/buildbot/filters/lacros.browser_tests.filter
index dd60e9a8..c53a456 100644
--- a/testing/buildbot/filters/lacros.browser_tests.filter
+++ b/testing/buildbot/filters/lacros.browser_tests.filter
@@ -11,7 +11,7 @@
 -All/CustomTabBarViewBrowserTest.IsNotCreatedInPopup/WebApps

 -All/CustomTabBarViewBrowserTest.RightClickMenuShowsCopyUrl/BookmarkApps

 -All/CustomTabBarViewBrowserTest.RightClickMenuShowsCopyUrl/WebApps

--All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy/8

+-All/DownloadReferrerPolicyTest.SaveLinkAsReferrerPolicy*

 -All/HostedAppProcessModelTest.BackgroundPageWithAppCoveringDifferentSites/0

 -All/HostedOrWebAppTest.CtrlClickLink/BookmarkApp

 -All/HostedOrWebAppTest.CtrlClickLink/HostedApp

@@ -183,6 +183,7 @@
 -PPAPINaClPNaClNonSfiTest.TrueTypeFont

 -PresentationReceiverWindowControllerBrowserTest.CreatesWindow

 -PreservedWindowPlacement.Test

+-PrintPreviewDestinationSelectTest.ChangeIconDeprecationWarnings

 -PrintPreviewDestinationStoreTest.LoadAndSelectDestination

 -PrintPreviewModelSettingsAvailabilityTest.All

 -PrintPreviewModelTest.GetPrintTicket

diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 899ced4..c07d2cdc 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -2648,7 +2648,6 @@
       },
       # https://crbug.com/1111979,
       'linux-lacros-tester-rel': {
-        'experiment_percentage': 100,
         'args': [
           '--gtest_filter=-NativeDesktopMediaListTest*:PermissionMessageCombinationsUnittest.USBSerialBluetoothCoalescing:'
           'RelaunchNotificationControllerPlatformImplTest.SynchronousNotification:WindowSizerTest*:'
@@ -2685,8 +2684,8 @@
         'experiment_percentage': 100,
         'args': [
           '--gtest_filter=-DesktopWidgetFocusManagerTest.AnchoredDialogInDesktopNativeWidgetAura:'
-          'DesktopWidgetTest.GetWindowPlacement:'
-          'DesktopWidgetTest.MinimumSizeConstraints:'
+          'DesktopWidgetTest*:'
+          'DesktopWindowTreeHostPlatformTest*:'
           'EditableComboboxTest*:'
           'MenuRunnerTest*:'
           'TextfieldTest*:'
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index 8e0c0984..d8a2c2b7 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -2422,10 +2422,6 @@
           '${buildername}',
           '--extra-browser-args=--disable-features=UseSkiaRenderer',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'mixins': [
           'chrome-gpu-gold-service-account',
           'skia_gold_test',
@@ -2439,10 +2435,6 @@
           '${buildername}',
           '--extra-browser-args=--disable-features=UseSkiaRenderer',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'mixins': [
           'chrome-gpu-gold-service-account',
           'skia_gold_test',
@@ -2550,10 +2542,6 @@
           '${buildername}',
           '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'chromeos_args': [
           '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
         ],
@@ -2570,10 +2558,6 @@
           '${buildername}',
           '--extra-browser-args=--use-cmd-decoder=passthrough --use-gl=angle',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'chromeos_args': [
           '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
         ],
@@ -2619,10 +2603,6 @@
           '--test-machine-name',
           '${buildername}',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'win_args': [
           '--extra-browser-args=--enable-features=UseSkiaRenderer,SkiaDawn',
         ],
@@ -2703,10 +2683,6 @@
           '${buildername}',
           '--extra-browser-args=--enable-features=UseSkiaRenderer',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'mixins': [
           'chrome-gpu-gold-service-account',
           'skia_gold_test',
@@ -2726,10 +2702,6 @@
           '${buildername}',
           '--extra-browser-args=--enable-features=UseSkiaRenderer',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'mixins': [
           'chrome-gpu-gold-service-account',
           'skia_gold_test',
@@ -2765,10 +2737,6 @@
           '${buildername}',
           '--extra-browser-args=--use-vulkan=native --disable-vulkan-fallback-to-gl-for-testing --enable-features=UseSkiaRenderer,Vulkan --use-cmd-decoder=validating',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'mixins': [
           'chrome-gpu-gold-service-account',
           'skia_gold_test',
@@ -2831,10 +2799,6 @@
           '${buildername}',
           '--extra-browser-args=--use-cmd-decoder=validating',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'chromeos_args': [
           '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
         ],
@@ -2851,10 +2815,6 @@
           '${buildername}',
           '--extra-browser-args=--use-cmd-decoder=validating',
         ],
-        'android_args': [
-          # TODO(crbug.com/1093085): Remove this once we fix the tests.
-          '--extra-browser-args=--force-online-connection-state-for-indicator',
-        ],
         'chromeos_args': [
           '$$MAGIC_SUBSTITUTION_ChromeOSTelemetryRemote',
         ],
@@ -3168,8 +3128,11 @@
         'args': [
           '--driver-logging',
           # Disable parallel jobs to work around consistent test timeout flakes.
+          # Also, the first test is always flaky due to startup time, so force
+          # the order so we can suppress it.
           # TODO(crbug.com/953991): Solve this and remove the workaround.
           '--jobs=1',
+          '--order=natural',
           '--additional-driver-flag=--enable-dawn-backend-validation',
           # We need this flag to initialize ANGLE so that we can explicitly tell
           # Dawn which ANGLE adapter Chromium is using. This will help match the test
@@ -3202,8 +3165,11 @@
         'args': [
           '--driver-logging',
           # Disable parallel jobs to work around consistent test timeout flakes.
+          # Also, the first test is always flaky due to startup time, so force
+          # the order so we can suppress it.
           # TODO(crbug.com/953991): Solve this and remove the workaround.
           '--jobs=1',
+          '--order=natural',
           # We need this flag to initialize ANGLE so that we can explicitly tell
           # Dawn which ANGLE adapter Chromium is using. This will help match the test
           # usage to be the same as the browser.
@@ -5525,8 +5491,10 @@
         'variants': [
           'WEBLAYER_IMPL_SKEW_TESTS_NTH_MILESTONE',
           'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE',
+          'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE',
           'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MILESTONE',
           'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE',
+          'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE',
         ]
       }
     },
diff --git a/testing/buildbot/v8.ci.json b/testing/buildbot/v8.ci.json
index 34bbfd8..9c1c70f 100644
--- a/testing/buildbot/v8.ci.json
+++ b/testing/buildbot/v8.ci.json
@@ -134,7 +134,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
@@ -174,7 +174,7 @@
           "--browser=android-chromium",
           "--passthrough",
           "-v",
-          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating --force-online-connection-state-for-indicator",
+          "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=validating",
           "--dont-restore-color-profile-after-test",
           "--test-machine-name",
           "${buildername}",
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index b990ad9..8e50727 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -332,6 +332,29 @@
         '--client-outdir',
         '.',
         '--implementation-outdir',
+        '../../weblayer_instrumentation_test_M85/out/Release',
+        '--test-expectations',
+        '../../weblayer/browser/android/javatests/skew/expectations.txt',
+        '--impl-version=85',
+      ],
+      'swarming': {
+        'cipd_packages': [
+          {
+            'cipd_package': 'chromium/testing/weblayer-x86',
+            'location': 'weblayer_instrumentation_test_M85',
+            'revision': 'version:85.0.4183.47',
+          }
+        ],
+      },
+      'identifier': 'M85_Implementation_Library_Tests',
+    },
+    'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
+      'args': [
+        '--test-runner-outdir',
+        '.',
+        '--client-outdir',
+        '.',
+        '--implementation-outdir',
         '../../weblayer_instrumentation_test_M84/out/Release',
         '--test-expectations',
         '../../weblayer/browser/android/javatests/skew/expectations.txt',
@@ -342,13 +365,13 @@
           {
             'cipd_package': 'chromium/testing/weblayer-x86',
             'location': 'weblayer_instrumentation_test_M84',
-            'revision': 'version:84.0.4147.69',
+            'revision': 'version:84.0.4147.84',
           }
         ],
       },
       'identifier': 'M84_Implementation_Library_Tests',
     },
-    'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
+    'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': {
       'args': [
         '--test-runner-outdir',
         '.',
@@ -365,7 +388,7 @@
           {
             'cipd_package': 'chromium/testing/weblayer-x86',
             'location': 'weblayer_instrumentation_test_M83',
-            'revision': 'version:83.0.4103.15',
+            'revision': 'version:83.0.4103.56',
           }
         ],
       },
@@ -376,6 +399,29 @@
         '--test-runner-outdir',
         '.',
         '--client-outdir',
+        '../../weblayer_instrumentation_test_M85/out/Release',
+        '--implementation-outdir',
+        '.',
+        '--test-expectations',
+        '../../weblayer/browser/android/javatests/skew/expectations.txt',
+        '--client-version=85',
+      ],
+      'swarming': {
+        'cipd_packages': [
+          {
+            'cipd_package': 'chromium/testing/weblayer-x86',
+            'location': 'weblayer_instrumentation_test_M85',
+            'revision': 'version:85.0.4183.47',
+          }
+        ],
+      },
+      'identifier': 'M85_Client_Library_Tests',
+    },
+    'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
+      'args': [
+        '--test-runner-outdir',
+        '.',
+        '--client-outdir',
         '../../weblayer_instrumentation_test_M84/out/Release',
         '--implementation-outdir',
         '.',
@@ -388,13 +434,13 @@
           {
             'cipd_package': 'chromium/testing/weblayer-x86',
             'location': 'weblayer_instrumentation_test_M84',
-            'revision': 'version:84.0.4147.69',
+            'revision': 'version:84.0.4147.84',
           }
         ],
       },
       'identifier': 'M84_Client_Library_Tests',
     },
-    'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': {
+    'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': {
       'args': [
         '--test-runner-outdir',
         '.',
@@ -411,7 +457,7 @@
           {
             'cipd_package': 'chromium/testing/weblayer-x86',
             'location': 'weblayer_instrumentation_test_M83',
-            'revision': 'version:83.0.4103.15',
+            'revision': 'version:83.0.4103.56',
           }
         ],
       },
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 78a8e31..e596d4c 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -2508,6 +2508,22 @@
           'isolated_scripts': 'chromium_webkit_isolated_scripts',
         },
       },
+      'win7-omaha-tester-rel': {
+        'mixins': [
+          'win7',
+          'x86-64'
+        ],
+        'test_suites': {
+          'gtest_tests': 'omaha_gtests',
+        },
+        'swarming': {
+          'dimension_sets': [
+            {
+              'integrity': 'high',
+            }
+          ]
+        },
+      },
     },
   },
   {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 1ca3a94..cf3cedca3 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2062,13 +2062,7 @@
     "DefaultEnableOopRasterization": [
         {
             "platforms": [
-                "android",
-                "android_weblayer",
-                "android_webview",
-                "chromeos",
-                "linux",
-                "mac",
-                "windows"
+                "linux"
             ],
             "experiments": [
                 {
@@ -2353,6 +2347,24 @@
             ]
         }
     ],
+    "DiscardCodeCacheAfterFirstUse": [
+        {
+            "platforms": [
+                "android",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "EnableDiscardCodeCacheAfterFirstUse",
+                    "enable_features": [
+                        "DiscardCodeCacheAfterFirstUse"
+                    ]
+                }
+            ]
+        }
+    ],
     "DnsHttpssvc": [
         {
             "platforms": [
@@ -4806,21 +4818,6 @@
             ]
         }
     ],
-    "OfflineIndicatorV2": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "OfflineIndicatorV2"
-                    ]
-                }
-            ]
-        }
-    ],
     "OfflinePagesCctV2": [
         {
             "platforms": [
@@ -8429,7 +8426,7 @@
             ]
         }
     ],
-    "WindowsHybridSpellCheck": [
+    "WindowsNativeSpellChecker": [
         {
             "platforms": [
                 "windows"
diff --git a/third_party/abseil-cpp/absl/memory/BUILD.gn b/third_party/abseil-cpp/absl/memory/BUILD.gn
index a5b0baa..db5fc235 100644
--- a/third_party/abseil-cpp/absl/memory/BUILD.gn
+++ b/third_party/abseil-cpp/absl/memory/BUILD.gn
@@ -14,11 +14,16 @@
 
 absl_source_set("memory_test") {
   testonly = true
-  sources = [ "memory_test.cc" ]
-  deps = [
-    ":memory",
-    "//third_party/abseil-cpp/absl/base:core_headers",
-    "//third_party/googletest:gtest",
-    "//third_party/googletest:gmock",
-  ]
+
+  # TODO(https://crbug.com/1116473): memory_test.cc fails to build in
+  # standalone ANGLE on Windows
+  if (!build_with_chromium && !is_win) {
+    sources = [ "memory_test.cc" ]
+    deps = [
+      ":memory",
+      "//third_party/abseil-cpp/absl/base:core_headers",
+      "//third_party/googletest:gmock",
+      "//third_party/googletest:gtest",
+    ]
+  }
 }
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom
index 02ea0e5..4193084 100644
--- a/third_party/blink/public/mojom/web_feature/web_feature.mojom
+++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -2726,6 +2726,9 @@
   kDigitalGoodsGetDigitalGoodsService = 3396,
   kDigitalGoodsGetDetails = 3397,
   kDigitalGoodsAcknowledge = 3398,
+  kMediaRecorder_MimeType = 3399,
+  kMediaRecorder_VideoBitsPerSecond = 3400,
+  kMediaRecorder_AudioBitsPerSecond = 3401,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/config.gni b/third_party/blink/renderer/config.gni
index 22e51ec7..e2b18ed 100644
--- a/third_party/blink/renderer/config.gni
+++ b/third_party/blink/renderer/config.gni
@@ -42,7 +42,7 @@
 
   # If true, the new implementation (experimental) of Blink-V8 bindings
   # (of IDL interface) is used.
-  use_blink_v8_binding_new_idl_interface = false
+  use_blink_v8_binding_new_idl_interface = true
 }
 
 # feature_defines_list ---------------------------------------------------------
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc
index 158ef38..b916885 100644
--- a/third_party/blink/renderer/controller/blink_initializer.cc
+++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -68,12 +68,12 @@
 #include "third_party/blink/renderer/controller/performance_manager/v8_per_frame_memory_reporter_impl.h"
 #endif
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "third_party/blink/renderer/controller/memory_usage_monitor_posix.h"
 #endif
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MAC) || \
-    defined(OS_WIN)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_MAC) || defined(OS_WIN)
 #include "third_party/blink/renderer/controller/highest_pmf_reporter.h"
 #include "third_party/blink/renderer/controller/user_level_memory_pressure_signal_generator.h"
 #endif
@@ -154,8 +154,8 @@
   CrashMemoryMetricsReporterImpl::Instance();
 #endif
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MAC) || \
-    defined(OS_WIN)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_MAC) || defined(OS_WIN)
   // Initialize UserLevelMemoryPressureSignalGenerator so it starts monitoring.
   if (UserLevelMemoryPressureSignalGenerator::Enabled())
     UserLevelMemoryPressureSignalGenerator::Instance();
@@ -217,7 +217,7 @@
               main_thread->GetTaskRunner());
 #endif
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   binders.Add(ConvertToBaseRepeatingCallback(
                   CrossThreadBindRepeating(&MemoryUsageMonitorPosix::Bind)),
               main_thread->GetTaskRunner());
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc b/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
index 8558d53..27b6056e 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_posix.cc
@@ -134,7 +134,7 @@
   status_fd_.reset(status_file.TakePlatformFile());
 }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 // static
 void MemoryUsageMonitorPosix::Bind(
     mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver) {
diff --git a/third_party/blink/renderer/controller/memory_usage_monitor_posix.h b/third_party/blink/renderer/controller/memory_usage_monitor_posix.h
index 2952709..5e338d6 100644
--- a/third_party/blink/renderer/controller/memory_usage_monitor_posix.h
+++ b/third_party/blink/renderer/controller/memory_usage_monitor_posix.h
@@ -12,7 +12,7 @@
 #include "third_party/blink/renderer/controller/controller_export.h"
 #include "third_party/blink/renderer/controller/memory_usage_monitor.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "third_party/blink/public/mojom/memory_usage_monitor_linux.mojom-blink.h"
 #endif
 
@@ -21,7 +21,7 @@
 // MemoryUsageMonitor implementation for Android and Linux.
 class CONTROLLER_EXPORT MemoryUsageMonitorPosix
     : public MemoryUsageMonitor
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
     ,
       public mojom::blink::MemoryUsageMonitorLinux
 #endif
@@ -29,7 +29,7 @@
  public:
   MemoryUsageMonitorPosix() = default;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   static void Bind(
       mojo::PendingReceiver<mojom::blink::MemoryUsageMonitorLinux> receiver);
 #endif
@@ -47,7 +47,7 @@
                                               uint64_t* vm_size,
                                               uint64_t* vm_hwm_size);
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // mojom::MemoryUsageMonitorLinux implementations:
   void SetProcFiles(base::File statm_file, base::File status_file) override;
 #endif
@@ -65,7 +65,7 @@
   base::ScopedFD statm_fd_;
   base::ScopedFD status_fd_;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   mojo::Receiver<mojom::blink::MemoryUsageMonitorLinux> receiver_{this};
 #endif
 };
diff --git a/third_party/blink/renderer/core/animation/document_animations.cc b/third_party/blink/renderer/core/animation/document_animations.cc
index f3aff406f..2581771 100644
--- a/third_party/blink/renderer/core/animation/document_animations.cc
+++ b/third_party/blink/renderer/core/animation/document_animations.cc
@@ -42,6 +42,7 @@
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/page/page_animator.h"
+#include "third_party/blink/renderer/platform/bindings/microtask.h"
 
 namespace blink {
 
@@ -73,6 +74,14 @@
 
 void DocumentAnimations::UpdateAnimationTimingForAnimationFrame() {
   UpdateAnimationTiming(*document_, timelines_, kTimingUpdateForAnimationFrame);
+
+  // Perform a microtask checkpoint per step 3 of
+  // https://drafts.csswg.org/web-animations-1/#timelines. This is to
+  // ensure that any microtasks queued up as a result of resolving or
+  // rejecting Promise objects as part of updating timelines run their
+  // callbacks prior to dispatching animation events and generating
+  // the next main frame.
+  Microtask::PerformCheckpoint(V8PerIsolateData::MainThreadIsolate());
 }
 
 bool DocumentAnimations::NeedsAnimationTimingUpdate() {
diff --git a/third_party/blink/renderer/core/css/BUILD.gn b/third_party/blink/renderer/core/css/BUILD.gn
index e97aa1f..36b66e62 100644
--- a/third_party/blink/renderer/core/css/BUILD.gn
+++ b/third_party/blink/renderer/core/css/BUILD.gn
@@ -421,6 +421,7 @@
     "parser/css_selector_parser.h",
     "parser/css_supports_parser.cc",
     "parser/css_supports_parser.h",
+    "parser/css_tokenized_value.h",
     "parser/css_tokenizer.cc",
     "parser/css_tokenizer.h",
     "parser/css_tokenizer_input_stream.cc",
diff --git a/third_party/blink/renderer/core/css/css_computed_style_declaration_test.cc b/third_party/blink/renderer/core/css/css_computed_style_declaration_test.cc
index 88479844..680a7b5 100644
--- a/third_party/blink/renderer/core/css/css_computed_style_declaration_test.cc
+++ b/third_party/blink/renderer/core/css/css_computed_style_declaration_test.cc
@@ -6,6 +6,7 @@
 
 #include "third_party/blink/renderer/core/dom/shadow_root.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
+#include "third_party/blink/renderer/core/layout/layout_object.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 
 namespace blink {
@@ -117,4 +118,42 @@
   // Don't crash.
 }
 
+// https://crbug.com/1115877
+TEST_F(CSSComputedStyleDeclarationTest, SVGBlockSizeLayoutDependent) {
+  GetDocument().body()->setInnerHTML(R"HTML(
+    <svg viewBox="0 0 400 400">
+      <rect width="400" height="400"></rect>
+    </svg>
+  )HTML");
+
+  Element* rect = GetDocument().QuerySelector("rect");
+  auto* computed = MakeGarbageCollected<CSSComputedStyleDeclaration>(rect);
+
+  EXPECT_EQ("400px", computed->GetPropertyValue(CSSPropertyID::kBlockSize));
+
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdate());
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdateForNode(*rect));
+  EXPECT_FALSE(rect->NeedsStyleRecalc());
+  EXPECT_FALSE(rect->GetLayoutObject()->NeedsLayout());
+}
+
+// https://crbug.com/1115877
+TEST_F(CSSComputedStyleDeclarationTest, SVGInlineSizeLayoutDependent) {
+  GetDocument().body()->setInnerHTML(R"HTML(
+    <svg viewBox="0 0 400 400">
+      <rect width="400" height="400"></rect>
+    </svg>
+  )HTML");
+
+  Element* rect = GetDocument().QuerySelector("rect");
+  auto* computed = MakeGarbageCollected<CSSComputedStyleDeclaration>(rect);
+
+  EXPECT_EQ("400px", computed->GetPropertyValue(CSSPropertyID::kInlineSize));
+
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdate());
+  EXPECT_FALSE(GetDocument().NeedsLayoutTreeUpdateForNode(*rect));
+  EXPECT_FALSE(rect->NeedsStyleRecalc());
+  EXPECT_FALSE(rect->GetLayoutObject()->NeedsLayout());
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/css_font_face_src_value.cc b/third_party/blink/renderer/core/css/css_font_face_src_value.cc
index e82b140..d92d5467 100644
--- a/third_party/blink/renderer/core/css/css_font_face_src_value.cc
+++ b/third_party/blink/renderer/core/css/css_font_face_src_value.cc
@@ -90,8 +90,7 @@
     resource_request.SetReferrerString(referrer_.referrer);
     if (is_ad_related_)
       resource_request.SetIsAdResource();
-    ResourceLoaderOptions options;
-    options.world = world_;
+    ResourceLoaderOptions options(world_);
     options.initiator_info.name = fetch_initiator_type_names::kCSS;
     options.initiator_info.referrer = referrer_.referrer;
     FetchParameters params(std::move(resource_request), options);
diff --git a/third_party/blink/renderer/core/css/css_image_set_value.cc b/third_party/blink/renderer/core/css/css_image_set_value.cc
index 51876ef..ecb6b77 100644
--- a/third_party/blink/renderer/core/css/css_image_set_value.cc
+++ b/third_party/blink/renderer/core/css/css_image_set_value.cc
@@ -125,7 +125,8 @@
     resource_request.SetReferrerString(image.referrer.referrer);
     if (is_ad_related_)
       resource_request.SetIsAdResource();
-    ResourceLoaderOptions options;
+    ResourceLoaderOptions options(
+        document.GetExecutionContext()->GetCurrentWorld());
     options.initiator_info.name = parser_mode_ == kUASheetMode
                                       ? fetch_initiator_type_names::kUacss
                                       : fetch_initiator_type_names::kCSS;
diff --git a/third_party/blink/renderer/core/css/css_image_value.cc b/third_party/blink/renderer/core/css/css_image_value.cc
index 3b04b7a..3b1a4341 100644
--- a/third_party/blink/renderer/core/css/css_image_value.cc
+++ b/third_party/blink/renderer/core/css/css_image_value.cc
@@ -68,7 +68,8 @@
     resource_request.SetReferrerString(referrer_.referrer);
     if (is_ad_related_)
       resource_request.SetIsAdResource();
-    ResourceLoaderOptions options;
+    ResourceLoaderOptions options(
+        document.GetExecutionContext()->GetCurrentWorld());
     options.initiator_info.name = initiator_name_.IsEmpty()
                                       ? fetch_initiator_type_names::kCSS
                                       : initiator_name_;
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
index 76fa4fe..a8ab5e65 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl.cc
@@ -343,14 +343,15 @@
   return ConsumeKeyframeKeyList(CSSParserTokenRange(tokenizer.TokenizeToEOF()));
 }
 
-bool CSSParserImpl::SupportsDeclaration(CSSParserTokenRange& range) {
+bool CSSParserImpl::ConsumeSupportsDeclaration(CSSParserTokenStream& stream) {
   DCHECK(parsed_properties_.IsEmpty());
   // Even though we might use an observer here, this is just to test if we
-  // successfully parse the range, so we can pass RangeOffset::Ignore() here
-  // and temporarily remove the observer.
+  // successfully parse the range, so we can temporarily remove the observer.
   CSSParserObserver* observer_copy = observer_;
   observer_ = nullptr;
-  ConsumeDeclaration(range, RangeOffset::Ignore(), StyleRule::kStyle);
+  CSSParserTokenStream::RangeBoundary range_boundary(
+      stream, CSSParserTokenType::kRightParenthesisToken);
+  ConsumeDeclaration(stream, StyleRule::kStyle);
   observer_ = observer_copy;
 
   bool result = !parsed_properties_.IsEmpty();
@@ -1054,16 +1055,9 @@
         stream.UncheckedConsume();
         break;
       case kIdentToken: {
-        // TODO(crbug.com/661854): Use streams instead of ranges
-        const wtf_size_t decl_offset_start = stream.Offset();
-        const CSSParserTokenRange decl =
-            stream.ConsumeUntilPeekedTypeIs<kSemicolonToken>();
-        // We want the offset of the kSemicolonToken, which is peeked but not
-        // consumed.
-        const RangeOffset decl_offset(decl_offset_start,
-                                      stream.LookAheadOffset());
-
-        ConsumeDeclaration(decl, decl_offset, rule_type);
+        CSSParserTokenStream::RangeBoundary range_boundary(stream,
+                                                           kSemicolonToken);
+        ConsumeDeclaration(stream, rule_type);
 
         if (!stream.AtEnd())
           stream.UncheckedConsume();  // kSemicolonToken
@@ -1087,29 +1081,23 @@
     observer_->EndRuleBody(stream.LookAheadOffset());
 }
 
-void CSSParserImpl::ConsumeDeclaration(CSSParserTokenRange range,
-                                       const RangeOffset& decl_offset,
+void CSSParserImpl::ConsumeDeclaration(CSSParserTokenStream& stream,
                                        StyleRule::RuleType rule_type) {
-  DCHECK_EQ(range.Peek().GetType(), kIdentToken);
-  const CSSParserToken& lhs = range.ConsumeIncludingWhitespace();
-  if (range.Consume().GetType() != kColonToken)
-    return;  // Parse error
+  const wtf_size_t decl_offset_start = stream.Offset();
 
-  bool important = false;
-  const CSSParserToken* declaration_value_end = range.end();
-  const CSSParserToken* last = range.end() - 1;
-  while (last->GetType() == kWhitespaceToken)
-    --last;
-  if (last->GetType() == kIdentToken &&
-      EqualIgnoringASCIICase(last->Value(), "important")) {
-    --last;
-    while (last->GetType() == kWhitespaceToken)
-      --last;
-    if (last->GetType() == kDelimiterToken && last->Delimiter() == '!') {
-      important = true;
-      declaration_value_end = last;
-    }
+  DCHECK_EQ(stream.Peek().GetType(), kIdentToken);
+  const CSSParserToken& lhs = stream.ConsumeIncludingWhitespace();
+  if (stream.Peek().GetType() != kColonToken) {
+    // Parse error.
+    // Consume the remainder of the declaration for recovery before returning.
+    stream.ConsumeUntilPeekedBoundary();
+    return;
   }
+  stream.UncheckedConsume();  // kColonToken
+
+  CSSTokenizedValue tokenized_value = ConsumeValue(stream);
+
+  bool important = RemoveImportantAnnotationIfPresent(tokenized_value);
 
   size_t properties_count = parsed_properties_.size();
 
@@ -1120,7 +1108,8 @@
     if (important)  // Invalid
       return;
     atrule_id = lhs.ParseAsAtRuleDescriptorID();
-    AtRuleDescriptorParser::ParseAtRule(rule_type, atrule_id, range, *context_,
+    AtRuleDescriptorParser::ParseAtRule(rule_type, atrule_id,
+                                        tokenized_value.range, *context_,
                                         parsed_properties_);
   } else {
     unresolved_property = lhs.ParseAsUnresolvedCSSPropertyID(
@@ -1136,21 +1125,22 @@
       return;
     AtomicString variable_name = lhs.Value().ToAtomicString();
     bool is_animation_tainted = rule_type == StyleRule::kKeyframe;
-    ConsumeVariableValue(
-        range.MakeSubRange(&range.Peek(), declaration_value_end), variable_name,
-        important, is_animation_tainted);
+    ConsumeVariableValue(tokenized_value.range, variable_name, important,
+                         is_animation_tainted);
   } else if (unresolved_property != CSSPropertyID::kInvalid) {
     if (style_sheet_ && style_sheet_->SingleOwnerDocument())
       Deprecation::WarnOnDeprecatedProperties(
           style_sheet_->SingleOwnerDocument()->GetFrame(), unresolved_property);
-    ConsumeDeclarationValue(
-        range.MakeSubRange(&range.Peek(), declaration_value_end),
-        unresolved_property, important, rule_type);
+    ConsumeDeclarationValue(tokenized_value.range, unresolved_property,
+                            important, rule_type);
   }
 
   if (observer_ &&
       (rule_type == StyleRule::kStyle || rule_type == StyleRule::kKeyframe)) {
-    observer_->ObserveProperty(decl_offset.start, decl_offset.end, important,
+    // The end offset is the offset of the terminating token, which is peeked
+    // but not yet consumed.
+    observer_->ObserveProperty(decl_offset_start, stream.LookAheadOffset(),
+                               important,
                                parsed_properties_.size() != properties_count);
   }
 }
@@ -1176,6 +1166,46 @@
                                 parsed_properties_, rule_type);
 }
 
+CSSTokenizedValue CSSParserImpl::ConsumeValue(CSSParserTokenStream& stream) {
+  stream.EnsureLookAhead();
+  wtf_size_t value_start_offset = stream.LookAheadOffset();
+  CSSParserTokenRange range = stream.ConsumeUntilPeekedBoundary();
+  wtf_size_t value_end_offset = stream.LookAheadOffset();
+
+  return {range, stream.StringRangeAt(value_start_offset,
+                                      value_end_offset - value_start_offset)};
+}
+
+bool CSSParserImpl::RemoveImportantAnnotationIfPresent(
+    CSSTokenizedValue& tokenized_value) {
+  const CSSParserToken* first = tokenized_value.range.begin();
+  const CSSParserToken* last = tokenized_value.range.end() - 1;
+  while (last >= first && last->GetType() == kWhitespaceToken)
+    --last;
+  if (last >= first && last->GetType() == kIdentToken &&
+      EqualIgnoringASCIICase(last->Value(), "important")) {
+    --last;
+    while (last >= first && last->GetType() == kWhitespaceToken)
+      --last;
+    if (last >= first && last->GetType() == kDelimiterToken &&
+        last->Delimiter() == '!') {
+      tokenized_value.range = tokenized_value.range.MakeSubRange(first, last);
+
+      // Truncate the text to remove the delimiter and everything after it.
+      DCHECK_NE(tokenized_value.text.ToString().find('!'), kNotFound);
+      unsigned truncated_length = tokenized_value.text.length() - 1;
+      while (tokenized_value.text[truncated_length] != '!')
+        --truncated_length;
+      tokenized_value.text =
+          StringView(tokenized_value.text, 0, truncated_length);
+
+      return true;
+    }
+  }
+
+  return false;
+}
+
 std::unique_ptr<Vector<double>> CSSParserImpl::ConsumeKeyframeKeyList(
     CSSParserTokenRange range) {
   std::unique_ptr<Vector<double>> result = std::make_unique<Vector<double>>();
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl.h b/third_party/blink/renderer/core/css/parser/css_parser_impl.h
index ef30c3f..4c11a191 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl.h
@@ -14,6 +14,7 @@
 #include "third_party/blink/renderer/core/css/css_property_value.h"
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
+#include "third_party/blink/renderer/core/css/parser/css_tokenized_value.h"
 #include "third_party/blink/renderer/platform/heap/handle.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/vector.h"
@@ -115,7 +116,7 @@
 
   static std::unique_ptr<Vector<double>> ParseKeyframeKeyList(const String&);
 
-  bool SupportsDeclaration(CSSParserTokenRange&);
+  bool ConsumeSupportsDeclaration(CSSParserTokenStream&);
   const CSSParserContext* GetContext() const { return context_; }
 
   static void ParseDeclarationListForInspector(const String&,
@@ -131,6 +132,10 @@
       wtf_size_t offset,
       const CSSParserContext*);
 
+  static CSSTokenizedValue ConsumeValue(CSSParserTokenStream&);
+
+  static bool RemoveImportantAnnotationIfPresent(CSSTokenizedValue&);
+
  private:
   enum RuleListType {
     kTopLevelRuleList,
@@ -167,9 +172,7 @@
   StyleRule* ConsumeStyleRule(CSSParserTokenStream&);
 
   void ConsumeDeclarationList(CSSParserTokenStream&, StyleRule::RuleType);
-  void ConsumeDeclaration(CSSParserTokenRange,
-                          const RangeOffset& decl_offset,
-                          StyleRule::RuleType);
+  void ConsumeDeclaration(CSSParserTokenStream&, StyleRule::RuleType);
   void ConsumeDeclarationValue(CSSParserTokenRange,
                                CSSPropertyID,
                                bool important,
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc b/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
index 13b2595..d465bb90 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
+++ b/third_party/blink/renderer/core/css/parser/css_parser_impl_test.cc
@@ -7,6 +7,8 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 #include "third_party/blink/renderer/core/css/parser/css_parser_observer.h"
+#include "third_party/blink/renderer/core/css/parser/css_parser_token_stream.h"
+#include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
 #include "third_party/blink/renderer/core/css/style_sheet_contents.h"
 #include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h"
 
@@ -191,4 +193,36 @@
   EXPECT_EQ(test_css_parser_observer.rule_body_end_, 24u);
 }
 
+TEST(CSSParserImplTest, RemoveImportantAnnotationIfPresent) {
+  struct TestCase {
+    String input;
+    String expected_text;
+    bool expected_is_important;
+  };
+  static const TestCase test_cases[] = {
+      {"", "", false},
+      {"!important", "", true},
+      {" !important", " ", true},
+      {"!", "!", false},
+      {"1px", "1px", false},
+      {"2px!important", "2px", true},
+      {"3px !important", "3px ", true},
+      {"4px ! important", "4px ", true},
+      {"5px !important ", "5px ", true},
+      {"6px !!important", "6px !", true},
+      {"7px !important !important", "7px !important ", true},
+      {"8px important", "8px important", false},
+  };
+  for (auto current_case : test_cases) {
+    CSSTokenizer tokenizer(current_case.input);
+    CSSParserTokenStream stream(tokenizer);
+    CSSTokenizedValue tokenized_value = CSSParserImpl::ConsumeValue(stream);
+    SCOPED_TRACE(current_case.input);
+    bool is_important =
+        CSSParserImpl::RemoveImportantAnnotationIfPresent(tokenized_value);
+    EXPECT_EQ(is_important, current_case.expected_is_important);
+    EXPECT_EQ(tokenized_value.text.ToString(), current_case.expected_text);
+  }
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h b/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
index fa97b5d5..e437def 100644
--- a/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
+++ b/third_party/blink/renderer/core/css/parser/css_parser_token_stream.h
@@ -5,6 +5,7 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_PARSER_TOKEN_STREAM_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_PARSER_TOKEN_STREAM_H_
 
+#include "base/auto_reset.h"
 #include "base/macros.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
@@ -67,6 +68,18 @@
     wtf_size_t initial_stack_depth_;
   };
 
+  // Instantiate this to set a short-term boundary for range extraction.
+  class RangeBoundary {
+   public:
+    RangeBoundary(CSSParserTokenStream& stream,
+                  CSSParserTokenType boundary_type)
+        : auto_reset_(&stream.boundary_type_, boundary_type) {}
+    ~RangeBoundary() = default;
+
+   private:
+    base::AutoReset<CSSParserTokenType> auto_reset_;
+  };
+
   // We found that this value works well empirically by printing out the
   // maximum buffer size for a few top alexa websites. It should be slightly
   // above the expected number of tokens in the prelude of an at rule and
@@ -155,7 +168,7 @@
   // token and return false.
   bool ConsumeCommentOrNothing();
 
-  // Invalidates any ranges created by previous calls to this function
+  // Invalidates any ranges created by previous calls to ConsumeUntil*()
   template <CSSParserTokenType... Types>
   CSSParserTokenRange ConsumeUntilPeekedTypeIs() {
     EnsureLookAhead();
@@ -163,24 +176,39 @@
     buffer_.Shrink(0);
     while (!UncheckedAtEnd() &&
            !detail::IsTokenTypeOneOf<Types...>(UncheckedPeek().GetType())) {
-      // Have to use internal consume/peek in here because they can read past
-      // start/end of blocks
-      unsigned nesting_level = 0;
-      do {
-        const CSSParserToken& token = UncheckedConsumeInternal();
-        buffer_.push_back(token);
-
-        if (token.GetBlockType() == CSSParserToken::kBlockStart)
-          nesting_level++;
-        else if (token.GetBlockType() == CSSParserToken::kBlockEnd)
-          nesting_level--;
-      } while (!PeekInternal().IsEOF() && nesting_level);
+      ConsumeTokenOrBlockAndAppendToBuffer();
     }
 
     return CSSParserTokenRange(buffer_);
   }
 
+  // Invalidates any ranges created by previous calls to ConsumeUntil*()
+  CSSParserTokenRange ConsumeUntilPeekedBoundary() {
+    EnsureLookAhead();
+
+    buffer_.Shrink(0);
+    while (!UncheckedAtEnd() && UncheckedPeek().GetType() != boundary_type_)
+      ConsumeTokenOrBlockAndAppendToBuffer();
+
+    return CSSParserTokenRange(buffer_);
+  }
+
  private:
+  inline void ConsumeTokenOrBlockAndAppendToBuffer() {
+    // Have to use internal consume/peek in here because they can read past
+    // start/end of blocks
+    unsigned nesting_level = 0;
+    do {
+      const CSSParserToken& token = UncheckedConsumeInternal();
+      buffer_.push_back(token);
+
+      if (token.GetBlockType() == CSSParserToken::kBlockStart)
+        nesting_level++;
+      else if (token.GetBlockType() == CSSParserToken::kBlockEnd)
+        nesting_level--;
+    } while (!PeekInternal().IsEOF() && nesting_level);
+  }
+
   const CSSParserToken& PeekInternal() {
     EnsureLookAhead();
     return UncheckedPeekInternal();
@@ -210,6 +238,7 @@
   CSSParserToken next_;
   wtf_size_t offset_ = 0;
   bool has_look_ahead_ = false;
+  CSSParserTokenType boundary_type_ = kEOFToken;
   DISALLOW_COPY_AND_ASSIGN(CSSParserTokenStream);
 };
 
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
index 7205c8ec..801262a 100644
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
@@ -209,8 +209,7 @@
     CSSParserTokenStream& stream) {
   if (!IsSupportsDecl(first_token, stream.Peek()))
     return Result::kParseFailure;
-  auto block = stream.ConsumeUntilPeekedTypeIs<kRightParenthesisToken>();
-  if (parser_.SupportsDeclaration(block))
+  if (parser_.ConsumeSupportsDeclaration(stream))
     return Result::kSupported;
   return Result::kUnsupported;
 }
diff --git a/third_party/blink/renderer/core/css/parser/css_tokenized_value.h b/third_party/blink/renderer/core/css/parser/css_tokenized_value.h
new file mode 100644
index 0000000..c529ca6
--- /dev/null
+++ b/third_party/blink/renderer/core/css/parser/css_tokenized_value.h
@@ -0,0 +1,23 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_TOKENIZED_VALUE_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_TOKENIZED_VALUE_H_
+
+#include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
+#include "third_party/blink/renderer/platform/wtf/text/string_view.h"
+
+namespace blink {
+
+struct CSSTokenizedValue {
+  STACK_ALLOCATED();
+
+ public:
+  CSSParserTokenRange range;
+  StringView text;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_CSS_TOKENIZED_VALUE_H_
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 4000c28..e644f96 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
@@ -723,7 +723,7 @@
 
 bool BlockSize::IsLayoutDependent(const ComputedStyle* style,
                                   LayoutObject* layout_object) const {
-  return layout_object && layout_object->IsBox();
+  return layout_object && (layout_object->IsBox() || layout_object->IsSVG());
 }
 
 const CSSValue* BorderBlockEndColor::ParseSingleValue(
@@ -3277,7 +3277,7 @@
 
 bool InlineSize::IsLayoutDependent(const ComputedStyle* style,
                                    LayoutObject* layout_object) const {
-  return layout_object && layout_object->IsBox();
+  return layout_object && (layout_object->IsBox() || layout_object->IsSVG());
 }
 
 const CSSValue* InsetBlockEnd::ParseSingleValue(
diff --git a/third_party/blink/renderer/core/css/style_rule_import.cc b/third_party/blink/renderer/core/css/style_rule_import.cc
index dbe6294..60c3dd5 100644
--- a/third_party/blink/renderer/core/css/style_rule_import.cc
+++ b/third_party/blink/renderer/core/css/style_rule_import.cc
@@ -145,14 +145,15 @@
     root_sheet = sheet;
   }
 
-  Referrer referrer = parent_style_sheet_->ParserContext()->GetReferrer();
-  ResourceLoaderOptions options;
+  const CSSParserContext* parser_context = parent_style_sheet_->ParserContext();
+  Referrer referrer = parser_context->GetReferrer();
+  ResourceLoaderOptions options(parser_context->JavascriptWorld());
   options.initiator_info.name = fetch_initiator_type_names::kCSS;
   options.initiator_info.referrer = referrer.referrer;
   ResourceRequest resource_request(abs_url);
   resource_request.SetReferrerString(referrer.referrer);
   resource_request.SetReferrerPolicy(referrer.referrer_policy);
-  if (parent_style_sheet_->ParserContext()->IsAdRelated())
+  if (parser_context->IsAdRelated())
     resource_request.SetIsAdResource();
   FetchParameters params(std::move(resource_request), options);
   params.SetCharset(parent_style_sheet_->Charset());
diff --git a/third_party/blink/renderer/core/dom/processing_instruction.cc b/third_party/blink/renderer/core/dom/processing_instruction.cc
index 739226d..40c84b5a 100644
--- a/third_party/blink/renderer/core/dom/processing_instruction.cc
+++ b/third_party/blink/renderer/core/dom/processing_instruction.cc
@@ -150,7 +150,7 @@
   if (is_xsl_ && !RuntimeEnabledFeatures::XSLTEnabled())
     return;
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(GetExecutionContext()->GetCurrentWorld());
   options.initiator_info.name =
       fetch_initiator_type_names::kProcessinginstruction;
   FetchParameters params(ResourceRequest(GetDocument().CompleteURL(href)),
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
index 33c79172..e1264a3 100644
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -32,6 +32,7 @@
 #include <memory>
 
 #include "base/macros.h"
+#include "base/optional.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 #include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
 #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h"
@@ -381,6 +382,17 @@
   // Returns the token that uniquely identifies this ExecutionContext.
   virtual ExecutionContextToken GetExecutionContextToken() const = 0;
 
+  // Returns the token that uniquely identifies the parent ExecutionContext of
+  // this context. If an ExecutionContext has a parent context, it means that it
+  // was created from that context, and the lifetime of this context is tied to
+  // the lifetime of its parent. This is used for resource usage attribution,
+  // where the resource usage of a child context will be charged to its parent
+  // (and so on up the tree).
+  virtual base::Optional<ExecutionContextToken> GetParentExecutionContextToken()
+      const {
+    return base::nullopt;
+  }
+
  protected:
   explicit ExecutionContext(v8::Isolate* isolate, Agent*);
   ExecutionContext(const ExecutionContext&) = delete;
diff --git a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
index 58bd5fbb0..059ed7e 100644
--- a/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
+++ b/third_party/blink/renderer/core/feature_policy/document_policy_parser.cc
@@ -47,8 +47,13 @@
     const net::structured_headers::Item& item,
     mojom::blink::PolicyValueType type) {
   switch (type) {
-    case mojom::blink::PolicyValueType::kBool:
-      return PolicyValue(item.GetBoolean());
+    case mojom::blink::PolicyValueType::kBool: {
+      if (item.is_boolean()) {
+        return PolicyValue(item.GetBoolean());
+      } else {
+        return base::nullopt;
+      }
+    }
     case mojom::blink::PolicyValueType::kDecDouble:
       switch (item.Type()) {
         case net::structured_headers::Item::ItemType::kIntegerType:
diff --git a/third_party/blink/renderer/core/feature_policy/document_policy_parser_test.cc b/third_party/blink/renderer/core/feature_policy/document_policy_parser_test.cc
index eab8e98..316e22b 100644
--- a/third_party/blink/renderer/core/feature_policy/document_policy_parser_test.cc
+++ b/third_party/blink/renderer/core/feature_policy/document_policy_parser_test.cc
@@ -305,6 +305,20 @@
           "Boolean."}},
     },
     {
+        "ParsePolicyWithWrongTypeOfParamExpectedBooleanTypeButGet"
+        "DoubleType",
+        "f-bool=1.0",
+        /* parsed_policy */
+        {
+            /* feature_state */ {},
+            /* endpoint_map */ {},
+        },
+        /* messages */
+        {{mojom::blink::ConsoleMessageLevel::kWarning,
+          "Parameter for feature f-bool should be Boolean, not "
+          "Decimal."}},
+    },
+    {
         "FeatureValueItemShouldNotBeEmpty",
         "f-double=()",
         /* parsed_policy */
diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc
index de27ae6c..20b2108 100644
--- a/third_party/blink/renderer/core/fetch/fetch_manager.cc
+++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc
@@ -787,8 +787,7 @@
   // mode is |include|, or |HTTPRequest|'s credentials mode is |same-origin|
   // and the |CORS flag| is unset, and unset otherwise."
 
-  ResourceLoaderOptions resource_loader_options;
-  resource_loader_options.world = world_;
+  ResourceLoaderOptions resource_loader_options(world_);
   resource_loader_options.initiator_info.name =
       fetch_initiator_type_names::kFetch;
   resource_loader_options.data_buffering_policy = kDoNotBufferData;
@@ -827,7 +826,7 @@
   // We intentionally skip 'setExternalRequestStateFromRequestorAddressSpace',
   // as 'data:' can never be external.
 
-  ResourceLoaderOptions resource_loader_options;
+  ResourceLoaderOptions resource_loader_options(world_);
   resource_loader_options.data_buffering_policy = kDoNotBufferData;
 
   threadable_loader_ = MakeGarbageCollected<ThreadableLoader>(
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 990744f..de560a0 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -4672,7 +4672,25 @@
   if (!document.IsXrOverlay())
     return nullptr;
 
-  Element* fullscreen_element = Fullscreen::FullscreenElementFrom(document);
+  // When DOM overlay mode is active in iframe content, the parent frame's
+  // document will also be marked as being in DOM overlay mode, with the iframe
+  // element being in fullscreen mode. Find the innermost reachable fullscreen
+  // element to use as the XR overlay layer. This is the overlay element for
+  // same-process iframes, or an iframe element for OOPIF if the overlay element
+  // is in another process.
+  Document* content_document = &document;
+  Element* fullscreen_element =
+      Fullscreen::FullscreenElementFrom(*content_document);
+  while (auto* frame_owner =
+             DynamicTo<HTMLFrameOwnerElement>(fullscreen_element)) {
+    content_document = frame_owner->contentDocument();
+    if (!content_document) {
+      // This is an OOPIF iframe, treat it as the fullscreen element.
+      break;
+    }
+    fullscreen_element = Fullscreen::FullscreenElementFrom(*content_document);
+  }
+
   if (!fullscreen_element)
     return nullptr;
 
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen.cc b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
index 0afe8b9d..7b1b563 100644
--- a/third_party/blink/renderer/core/fullscreen/fullscreen.cc
+++ b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
@@ -182,6 +182,17 @@
   UnsetFullscreenFlag(element);
   document.RemoveFromTopLayer(&element);
 
+  // WebXR DOM Overlay mode doesn't allow changing the fullscreen element, this
+  // is enforced in AllowedToRequestFullscreen. In this mode, unfullscreening
+  // should only be happening via ExitFullscreen. This may involve previous
+  // nested fullscreen elements being unfullscreened first, ignore those. This
+  // matches kPseudoXrOverlay rules in SelectorChecker::CheckPseudoClass().
+  if (document.IsXrOverlay() && element == old_element) {
+    // If this was the active fullscreen element, we're exiting fullscreen mode,
+    // and this also ends WebXR DOM Overlay mode.
+    document.SetIsXrOverlay(false, &element);
+  }
+
   Element* new_element = Fullscreen::FullscreenElementFrom(document);
   if (old_element != new_element) {
     FullscreenRequestType new_request_type =
@@ -740,6 +751,18 @@
     // 13.1. Let |doc| be |element|'s node document.
     Document& doc = element->GetDocument();
 
+    // If this fullscreen request is for WebXR DOM Overlay mode, apply that
+    // property to the document. This updates styling (setting the background
+    // transparent) and adds the :xr-overlay pseudoclass.
+    if (request_type & FullscreenRequestType::kForXrOverlay) {
+      // There's never more than one overlay element per document. (It's either
+      // the actual overlay element, or a containing iframe element if the
+      // actual element is in a different document.) It can't be changed during
+      // the session, that's enforced by AllowedToRequestFullscreen().
+      DCHECK(!doc.IsXrOverlay());
+      doc.SetIsXrOverlay(true, element);
+    }
+
     // 13.2. If |element| is |doc|'s fullscreen element, continue.
     if (element == FullscreenElementFrom(doc))
       continue;
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.cc b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.cc
index 9fbc0c2..73f8e0fe 100644
--- a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.cc
+++ b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.cc
@@ -17,6 +17,8 @@
                                                     : "Unprefixed");
   if (req & FullscreenRequestType::kForCrossProcessDescendant)
     result << "|ForCrossProcessDescendant";
+  if (req & FullscreenRequestType::kForXrOverlay)
+    result << "|ForXrOverlay";
   return result.str();
 }
 #endif
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
index a3269a8..73fc16a5 100644
--- a/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
+++ b/third_party/blink/renderer/core/fullscreen/fullscreen_request_type.h
@@ -33,6 +33,10 @@
   // has requested and is about to enter fullscreen.
   kForCrossProcessDescendant = 2,
 
+  // For WebXR DOM Overlay, in this mode the element and parent iframes use a
+  // transparent background.
+  kForXrOverlay = 4,
+
   // Explicit name for "no options" for backwards compatibility and convenience
   kUnprefixed = kNull,
 };
diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_party/blink/renderer/core/html/image_document.cc
index f33f26ed..f16f737 100644
--- a/third_party/blink/renderer/core/html/image_document.cc
+++ b/third_party/blink/renderer/core/html/image_document.cc
@@ -93,7 +93,8 @@
 class ImageDocumentParser : public RawDataDocumentParser {
  public:
   ImageDocumentParser(ImageDocument* document)
-      : RawDataDocumentParser(document) {}
+      : RawDataDocumentParser(document),
+        world_(document->GetExecutionContext()->GetCurrentWorld()) {}
 
   ImageDocument* GetDocument() const {
     return To<ImageDocument>(RawDataDocumentParser::GetDocument());
@@ -109,6 +110,7 @@
   void Finish() override;
 
   Member<ImageResource> image_resource_;
+  const scoped_refptr<const DOMWrapperWorld> world_;
 };
 
 // --------
@@ -144,7 +146,7 @@
   if (!image_resource_) {
     ResourceRequest request(GetDocument()->Url());
     request.SetCredentialsMode(network::mojom::CredentialsMode::kOmit);
-    image_resource_ = ImageResource::Create(request);
+    image_resource_ = ImageResource::Create(request, world_);
     image_resource_->NotifyStartLoad();
 
     GetDocument()->CreateDocumentStructure(image_resource_->GetContent());
diff --git a/third_party/blink/renderer/core/html/imports/link_import.cc b/third_party/blink/renderer/core/html/imports/link_import.cc
index 85aa9e0..eaa7c22 100644
--- a/third_party/blink/renderer/core/html/imports/link_import.cc
+++ b/third_party/blink/renderer/core/html/imports/link_import.cc
@@ -78,7 +78,7 @@
   network::mojom::ReferrerPolicy referrer_policy = owner_->GetReferrerPolicy();
   resource_request.SetReferrerPolicy(referrer_policy);
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(GetExecutionContext()->GetCurrentWorld());
   options.initiator_info.name = owner_->localName();
 
   FetchParameters params(std::move(resource_request), options);
diff --git a/third_party/blink/renderer/core/html/link_web_bundle.cc b/third_party/blink/renderer/core/html/link_web_bundle.cc
index c501451..b29d526d 100644
--- a/third_party/blink/renderer/core/html/link_web_bundle.cc
+++ b/third_party/blink/renderer/core/html/link_web_bundle.cc
@@ -37,7 +37,8 @@
     request.SetMode(network::mojom::blink::RequestMode::kCors);
     request.SetCredentialsMode(network::mojom::blink::CredentialsMode::kOmit);
 
-    ResourceLoaderOptions resource_loader_options;
+    ResourceLoaderOptions resource_loader_options(
+        execution_context.GetCurrentWorld());
     resource_loader_options.data_buffering_policy = kDoNotBufferData;
 
     loader_ = MakeGarbageCollected<ThreadableLoader>(execution_context, this,
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.idl b/third_party/blink/renderer/core/html/media/html_video_element.idl
index d793b0af..1f1749a 100644
--- a/third_party/blink/renderer/core/html/media/html_video_element.idl
+++ b/third_party/blink/renderer/core/html/media/html_video_element.idl
@@ -49,11 +49,11 @@
 
     // The number of frames that have been decoded and made available for
     // playback.
-    [MeasureAs=PrefixedVideoDecodedFrameCount] readonly attribute unsigned long webkitDecodedFrameCount;
+    [HighEntropy=Direct, MeasureAs=PrefixedVideoDecodedFrameCount] readonly attribute unsigned long webkitDecodedFrameCount;
 
     // The number of decoded frames that have been dropped by the player
     // for performance reasons during playback.
-    [MeasureAs=PrefixedVideoDroppedFrameCount] readonly attribute unsigned long webkitDroppedFrameCount;
+    [HighEntropy=Direct, MeasureAs=PrefixedVideoDroppedFrameCount] readonly attribute unsigned long webkitDroppedFrameCount;
 
     [CEReactions, Reflect] attribute boolean playsInline;
 };
diff --git a/third_party/blink/renderer/core/html/parser/preload_request.cc b/third_party/blink/renderer/core/html/parser/preload_request.cc
index 4ae5422..5caac86a 100644
--- a/third_party/blink/renderer/core/html/parser/preload_request.cc
+++ b/third_party/blink/renderer/core/html/parser/preload_request.cc
@@ -87,7 +87,7 @@
                                       PreviewsTypes::kSubresourceRedirectOn);
   }
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(document->domWindow()->GetCurrentWorld());
   options.initiator_info = initiator_info;
   FetchParameters params(std::move(resource_request), options);
 
diff --git a/third_party/blink/renderer/core/inspector/inspector_resource_content_loader.cc b/third_party/blink/renderer/core/inspector/inspector_resource_content_loader.cc
index 4566103..9f7dd36 100644
--- a/third_party/blink/renderer/core/inspector/inspector_resource_content_loader.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_resource_content_loader.cc
@@ -101,9 +101,12 @@
       // CompleteURL() to use imported Documents' base URLs.
       fetcher = document->GetExecutionContext()->Fetcher();
     }
+
+    scoped_refptr<const DOMWrapperWorld> world =
+        document->GetExecutionContext()->GetCurrentWorld();
     if (!resource_request.Url().GetString().IsEmpty()) {
       urls_to_fetch.insert(resource_request.Url().GetString());
-      ResourceLoaderOptions options;
+      ResourceLoaderOptions options(world);
       options.initiator_info.name = fetch_initiator_type_names::kInternal;
       FetchParameters params(std::move(resource_request), options);
       ResourceClient* resource_client =
@@ -125,7 +128,7 @@
       urls_to_fetch.insert(url);
       ResourceRequest resource_request(url);
       resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL);
-      ResourceLoaderOptions options;
+      ResourceLoaderOptions options(world);
       options.initiator_info.name = fetch_initiator_type_names::kInternal;
       FetchParameters params(std::move(resource_request), options);
       ResourceClient* resource_client =
@@ -157,7 +160,7 @@
                           : network::mojom::CredentialsMode::kOmit);
       manifest_request.SetRequestContext(
           mojom::blink::RequestContextType::MANIFEST);
-      ResourceLoaderOptions manifest_options;
+      ResourceLoaderOptions manifest_options(world);
       manifest_options.initiator_info.name =
           fetch_initiator_type_names::kInternal;
       FetchParameters manifest_params(std::move(manifest_request),
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index 00deeb6..7a7c08ff 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -149,6 +149,18 @@
 
 }  // namespace
 
+static int g_allow_destroying_layout_object_in_finalizer = 0;
+
+AllowDestroyingLayoutObjectInFinalizerScope::
+    AllowDestroyingLayoutObjectInFinalizerScope() {
+  ++g_allow_destroying_layout_object_in_finalizer;
+}
+AllowDestroyingLayoutObjectInFinalizerScope::
+    ~AllowDestroyingLayoutObjectInFinalizerScope() {
+  CHECK_GT(g_allow_destroying_layout_object_in_finalizer, 0);
+  --g_allow_destroying_layout_object_in_finalizer;
+}
+
 #if DCHECK_IS_ON()
 
 LayoutObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope(
@@ -3560,6 +3572,9 @@
 }
 
 void LayoutObject::Destroy() {
+  CHECK(g_allow_destroying_layout_object_in_finalizer ||
+        !ThreadState::Current()->InAtomicSweepingPause());
+
   // Mark as being destroyed to avoid trouble with merges in |RemoveChild()| and
   // other house keepings.
   bitfields_.SetBeingDestroyed(true);
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index d3d5a11..0737cf1 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -135,6 +135,18 @@
 const int kShowTreeCharacterOffset = 39;
 #endif
 
+// Usually calling LayooutObject::Destroy() is banned. This scope can be used to
+// exclude certain functions like ~SVGImage() from this rule. This is allowed
+// when a Persistent is guaranteeing to keep the LayoutObject alive for that GC
+// cycle.
+class AllowDestroyingLayoutObjectInFinalizerScope {
+  STACK_ALLOCATED();
+
+ public:
+  AllowDestroyingLayoutObjectInFinalizerScope();
+  ~AllowDestroyingLayoutObjectInFinalizerScope();
+};
+
 // LayoutObject is the base class for all layout tree objects.
 //
 // LayoutObjects form a tree structure that is a close mapping of the DOM tree.
diff --git a/third_party/blink/renderer/core/layout/ng/custom/layout_worklet_global_scope_proxy.cc b/third_party/blink/renderer/core/layout/ng/custom/layout_worklet_global_scope_proxy.cc
index ecfa6ad..83f8b22 100644
--- a/third_party/blink/renderer/core/layout/ng/custom/layout_worklet_global_scope_proxy.cc
+++ b/third_party/blink/renderer/core/layout/ng/custom/layout_worklet_global_scope_proxy.cc
@@ -52,7 +52,7 @@
       kV8CacheOptionsDefault, module_responses_map,
       mojo::NullRemote() /* browser_interface_broker */,
       BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-      window->GetAgentClusterID());
+      window->GetAgentClusterID(), window->GetExecutionContextToken());
   global_scope_ = LayoutWorkletGlobalScope::Create(
       frame, std::move(creation_params), *reporting_proxy_,
       pending_layout_registry);
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc
index 9bb9b643..4f9d57d 100644
--- a/third_party/blink/renderer/core/loader/base_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
@@ -112,9 +112,8 @@
     const KURL& url_before_redirects,
     ResourceRequest::RedirectStatus redirect_status,
     ContentSecurityPolicy::CheckHeaderType check_header_type) const {
-  if (ShouldBypassMainWorldCSP() ||
-      options.content_security_policy_option ==
-          network::mojom::CSPDisposition::DO_NOT_CHECK) {
+  if (options.content_security_policy_option ==
+      network::mojom::CSPDisposition::DO_NOT_CHECK) {
     return base::nullopt;
   }
 
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
index ecc9041..9017055 100644
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -101,10 +101,6 @@
   virtual const ContentSecurityPolicy* GetContentSecurityPolicyForWorld(
       const DOMWrapperWorld* world) const = 0;
 
-  // TODO(crbug.com/1099975) Remove this method once a DOMWrapperWorld is set
-  // for all requests.
-  virtual bool ShouldBypassMainWorldCSP() const = 0;
-
   virtual bool IsSVGImageChromeClient() const = 0;
   virtual bool ShouldBlockFetchByMixedContentCheck(
       mojom::blink::RequestContextType request_context,
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context_test.cc b/third_party/blink/renderer/core/loader/base_fetch_context_test.cc
index 3d9d3e06..a522457 100644
--- a/third_party/blink/renderer/core/loader/base_fetch_context_test.cc
+++ b/third_party/blink/renderer/core/loader/base_fetch_context_test.cc
@@ -78,7 +78,6 @@
       const DOMWrapperWorld* world) const override {
     return GetContentSecurityPolicy();
   }
-  bool ShouldBypassMainWorldCSP() const override { return false; }
   bool IsSVGImageChromeClient() const override { return false; }
   void CountUsage(WebFeature) const override {}
   void CountDeprecation(WebFeature) const override {}
@@ -170,7 +169,7 @@
   resource_request.SetRequestContext(mojom::RequestContextType::SCRIPT);
   resource_request.SetRequestorOrigin(GetSecurityOrigin());
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
 
   EXPECT_EQ(ResourceRequestBlockedReason::kCSP,
             fetch_context_->CanRequest(
@@ -192,7 +191,7 @@
 
   KURL url(NullURL(), "http://baz.test");
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
 
   EXPECT_EQ(base::nullopt,
             fetch_context_->CheckCSPForRequest(
@@ -214,52 +213,56 @@
 
   EXPECT_EQ(base::nullopt,
             fetch_context_->CanRequest(
-                ResourceType::kRaw, request, url, ResourceLoaderOptions(),
+                ResourceType::kRaw, request, url,
+                ResourceLoaderOptions(nullptr /* world */),
                 ReportingDisposition::kSuppressReporting, base::nullopt));
 
   EXPECT_EQ(base::nullopt,
-            fetch_context_->CanRequest(ResourceType::kRaw, keepalive_request,
-                                       url, ResourceLoaderOptions(),
-                                       ReportingDisposition::kSuppressReporting,
-                                       base::nullopt));
+            fetch_context_->CanRequest(
+                ResourceType::kRaw, keepalive_request, url,
+                ResourceLoaderOptions(nullptr /* world */),
+                ReportingDisposition::kSuppressReporting, base::nullopt));
 
   ResourceRequest::RedirectInfo redirect_info(
       KURL(NullURL(), "http://www.redirecting.com/"),
       KURL(NullURL(), "http://www.redirecting.com/"));
   EXPECT_EQ(base::nullopt,
             fetch_context_->CanRequest(
-                ResourceType::kRaw, request, url, ResourceLoaderOptions(),
+                ResourceType::kRaw, request, url,
+                ResourceLoaderOptions(nullptr /* world */),
                 ReportingDisposition::kSuppressReporting, redirect_info));
 
   EXPECT_EQ(base::nullopt,
-            fetch_context_->CanRequest(ResourceType::kRaw, keepalive_request,
-                                       url, ResourceLoaderOptions(),
-                                       ReportingDisposition::kSuppressReporting,
-                                       redirect_info));
+            fetch_context_->CanRequest(
+                ResourceType::kRaw, keepalive_request, url,
+                ResourceLoaderOptions(nullptr /* world */),
+                ReportingDisposition::kSuppressReporting, redirect_info));
 
   resource_fetcher_->ClearContext();
 
   EXPECT_EQ(ResourceRequestBlockedReason::kOther,
             fetch_context_->CanRequest(
-                ResourceType::kRaw, request, url, ResourceLoaderOptions(),
+                ResourceType::kRaw, request, url,
+                ResourceLoaderOptions(nullptr /* world */),
                 ReportingDisposition::kSuppressReporting, base::nullopt));
 
   EXPECT_EQ(ResourceRequestBlockedReason::kOther,
-            fetch_context_->CanRequest(ResourceType::kRaw, keepalive_request,
-                                       url, ResourceLoaderOptions(),
-                                       ReportingDisposition::kSuppressReporting,
-                                       base::nullopt));
+            fetch_context_->CanRequest(
+                ResourceType::kRaw, keepalive_request, url,
+                ResourceLoaderOptions(nullptr /* world */),
+                ReportingDisposition::kSuppressReporting, base::nullopt));
 
   EXPECT_EQ(ResourceRequestBlockedReason::kOther,
             fetch_context_->CanRequest(
-                ResourceType::kRaw, request, url, ResourceLoaderOptions(),
+                ResourceType::kRaw, request, url,
+                ResourceLoaderOptions(nullptr /* world */),
                 ReportingDisposition::kSuppressReporting, redirect_info));
 
   EXPECT_EQ(base::nullopt,
-            fetch_context_->CanRequest(ResourceType::kRaw, keepalive_request,
-                                       url, ResourceLoaderOptions(),
-                                       ReportingDisposition::kSuppressReporting,
-                                       redirect_info));
+            fetch_context_->CanRequest(
+                ResourceType::kRaw, keepalive_request, url,
+                ResourceLoaderOptions(nullptr /* world */),
+                ReportingDisposition::kSuppressReporting, redirect_info));
 }
 
 // Test that User Agent CSS can only load images with data urls.
@@ -269,7 +272,7 @@
 
   ResourceRequest resource_request(test_url);
   resource_request.SetRequestorOrigin(GetSecurityOrigin());
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
   options.initiator_info.name = fetch_initiator_type_names::kUacss;
 
   ResourceRequest::RedirectInfo redirect_info(
@@ -303,7 +306,7 @@
 
   ResourceRequest resource_request(data_url);
   resource_request.SetRequestorOrigin(GetSecurityOrigin());
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
   options.initiator_info.name = fetch_initiator_type_names::kUacss;
 
   ResourceRequest::RedirectInfo redirect_info(
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 eb7b053..09d3777d 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -764,13 +764,6 @@
       world);
 }
 
-bool FrameFetchContext::ShouldBypassMainWorldCSP() const {
-  if (GetResourceFetcherProperties().IsDetached())
-    return false;
-
-  return ContentSecurityPolicy::ShouldBypassMainWorld(GetFrame()->DomWindow());
-}
-
 bool FrameFetchContext::IsSVGImageChromeClient() const {
   if (GetResourceFetcherProperties().IsDetached())
     return frozen_state_->is_svg_image_chrome_client;
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 03f292ec..c1aedda 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -148,7 +148,6 @@
                                ResourceType) const override;
   const ContentSecurityPolicy* GetContentSecurityPolicyForWorld(
       const DOMWrapperWorld* world) const override;
-  bool ShouldBypassMainWorldCSP() const override;
   bool IsSVGImageChromeClient() const override;
   void CountUsage(WebFeature) const override;
   void CountDeprecation(WebFeature) 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 20ee4f7c..88d3449 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
@@ -237,7 +237,7 @@
                                             ->GetProperties()
                                             .GetFetchClientSettingsObject()
                                             .GetSecurityOrigin());
-    ResourceLoaderOptions options;
+    ResourceLoaderOptions options(nullptr /* world */);
     // DJKim
     return GetFetchContext()->CanRequest(ResourceType::kImage, resource_request,
                                          input_url, options,
@@ -1325,7 +1325,7 @@
       network::mojom::WebClientHintsType::kViewportWidth);
 
   FetchParameters::ResourceWidth resource_width;
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
 
   document->GetFrame()->GetClientHintsPreferences().SetShouldSend(
       network::mojom::WebClientHintsType::kDeviceMemory);
diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc
index 6b9e87a..697485c 100644
--- a/third_party/blink/renderer/core/loader/image_loader.cc
+++ b/third_party/blink/renderer/core/loader/image_loader.cc
@@ -509,8 +509,7 @@
   if (!url.IsNull() && !url.IsEmpty()) {
     // Unlike raw <img>, we block mixed content inside of <picture> or
     // <img srcset>.
-    ResourceLoaderOptions resource_loader_options;
-    resource_loader_options.world = std::move(world);
+    ResourceLoaderOptions resource_loader_options(std::move(world));
     resource_loader_options.initiator_info.name = GetElement()->localName();
     ResourceRequest resource_request(url);
     if (update_behavior == kUpdateForcedReload) {
diff --git a/third_party/blink/renderer/core/loader/link_loader.cc b/third_party/blink/renderer/core/loader/link_loader.cc
index 731a0ac..73cc5ed 100644
--- a/third_party/blink/renderer/core/loader/link_loader.cc
+++ b/third_party/blink/renderer/core/loader/link_loader.cc
@@ -228,7 +228,7 @@
          RuntimeEnabledFeatures::PriorityHintsEnabled(context));
   resource_request.SetFetchImportanceMode(importance_mode);
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(context->GetCurrentWorld());
   options.initiator_info.name = local_name;
   FetchParameters link_fetch_params(std::move(resource_request), options);
   link_fetch_params.SetCharset(charset);
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
index f51db68..7bff037b 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
@@ -120,7 +120,7 @@
   resource_request.SetRequestContext(module_request.ContextType());
   resource_request.SetRequestDestination(module_request.Destination());
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(&modulator_->GetScriptState()->World());
 
   // <spec step="6">If destination is "worker" or "sharedworker" and the
   // top-level module fetch flag is set, then set request's mode to
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
index 9be6bee..7fbab12 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
@@ -8,12 +8,14 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/public/common/features.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/public/platform/web_url_loader_mock_factory.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/bindings/core/v8/worker_or_worklet_script_controller.h"
 #include "third_party/blink/renderer/core/dom/document.h"
+#include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/loader/modulescript/document_module_script_fetcher.h"
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h"
 #include "third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h"
@@ -217,6 +219,8 @@
       mojo::NullRemote() /* browser_interface_broker */,
       BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
       base::UnguessableToken::Create() /* agent_cluster_id */);
+  creation_params->parent_context_token =
+      LocalFrameToken(GetFrame().GetFrameToken());
   global_scope_ = MakeGarbageCollected<FakeWorkletGlobalScope>(
       std::move(creation_params), *reporting_proxy_, &GetFrame(),
       false /* create_microtask_queue */);
diff --git a/third_party/blink/renderer/core/loader/preload_helper.cc b/third_party/blink/renderer/core/loader/preload_helper.cc
index 9976cf3..dcd2ccbb 100644
--- a/third_party/blink/renderer/core/loader/preload_helper.cc
+++ b/third_party/blink/renderer/core/loader/preload_helper.cc
@@ -316,8 +316,9 @@
   resource_request.SetFetchImportanceMode(
       GetFetchImportanceAttributeValue(params.importance));
 
-  ResourceLoaderOptions options;
-  options.world = document.GetExecutionContext()->GetCurrentWorld();
+  ResourceLoaderOptions options(
+      document.GetExecutionContext()->GetCurrentWorld());
+
   options.initiator_info.name = fetch_initiator_type_names::kLink;
   options.parser_disposition = parser_disposition;
   FetchParameters link_fetch_params(std::move(resource_request), options);
@@ -547,7 +548,8 @@
       // See crbug.com/988956.
     }
 
-    ResourceLoaderOptions options;
+    ResourceLoaderOptions options(
+        document.GetExecutionContext()->GetCurrentWorld());
     options.initiator_info.name = fetch_initiator_type_names::kLink;
 
     FetchParameters link_fetch_params(std::move(resource_request), options);
diff --git a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.cc b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.cc
index 238f528..6529b74 100644
--- a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.cc
@@ -58,7 +58,7 @@
     const WTF::TextEncoding& encoding) {
   ResourceRequest request(url);
   request.SetCredentialsMode(network::mojom::CredentialsMode::kOmit);
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
   TextResourceDecoderOptions decoder_options(
       TextResourceDecoderOptions::kCSSContent, encoding);
   return MakeGarbageCollected<CSSStyleSheetResource>(request, options,
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.cc b/third_party/blink/renderer/core/loader/resource/image_resource.cc
index 4a1b157c..e3c68b47 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/image_resource.cc
@@ -181,8 +181,10 @@
   return Resource::CanUseCacheValidator();
 }
 
-ImageResource* ImageResource::Create(const ResourceRequest& request) {
-  ResourceLoaderOptions options;
+ImageResource* ImageResource::Create(
+    const ResourceRequest& request,
+    scoped_refptr<const DOMWrapperWorld> world) {
+  ResourceLoaderOptions options(std::move(world));
   return MakeGarbageCollected<ImageResource>(
       request, options, ImageResourceContent::CreateNotStarted());
 }
@@ -197,7 +199,7 @@
       ReferrerPolicyResolveDefault(request.GetReferrerPolicy()));
   request.SetPriority(WebURLRequest::Priority::kLow);
 
-  return Create(request);
+  return Create(request, nullptr);
 }
 
 ImageResource::ImageResource(const ResourceRequest& resource_request,
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource.h b/third_party/blink/renderer/core/loader/resource/image_resource.h
index 8ea0693..4010435 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource.h
+++ b/third_party/blink/renderer/core/loader/resource/image_resource.h
@@ -34,6 +34,7 @@
 
 namespace blink {
 
+class DOMWrapperWorld;
 class FetchParameters;
 class ImageResourceContent;
 class ResourceClient;
@@ -58,7 +59,8 @@
   static ImageResource* Fetch(FetchParameters&, ResourceFetcher*);
 
   // TODO(hiroshige): Make Create() test-only by refactoring ImageDocument.
-  static ImageResource* Create(const ResourceRequest&);
+  static ImageResource* Create(const ResourceRequest&,
+                               scoped_refptr<const DOMWrapperWorld> world);
   static ImageResource* CreateForTest(const KURL&);
 
   ImageResource(const ResourceRequest&,
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
index 86f102c..af7e626 100644
--- a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
+++ b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
@@ -313,7 +313,8 @@
   resource_request.SetReferrerPolicy(
       ReferrerPolicyResolveDefault(resource_request.GetReferrerPolicy()));
   resource_request.SetPriority(WebURLRequest::Priority::kLow);
-  ImageResource* image_resource = ImageResource::Create(resource_request);
+  ImageResource* image_resource =
+      ImageResource::Create(resource_request, nullptr /* world */);
   fetcher->StartLoad(image_resource);
 
   ResourceResponse multipart_response(NullURL());
diff --git a/third_party/blink/renderer/core/loader/resource/script_resource.cc b/third_party/blink/renderer/core/loader/resource/script_resource.cc
index ac30a12..20b7d4d8 100644
--- a/third_party/blink/renderer/core/loader/resource/script_resource.cc
+++ b/third_party/blink/renderer/core/loader/resource/script_resource.cc
@@ -90,7 +90,7 @@
     const WTF::TextEncoding& encoding) {
   ResourceRequest request(url);
   request.SetCredentialsMode(network::mojom::CredentialsMode::kOmit);
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(nullptr /* world */);
   TextResourceDecoderOptions decoder_options(
       TextResourceDecoderOptions::kPlainTextContent, encoding);
   return MakeGarbageCollected<ScriptResource>(request, options, decoder_options,
diff --git a/third_party/blink/renderer/core/loader/text_track_loader.cc b/third_party/blink/renderer/core/loader/text_track_loader.cc
index 392d17e4..6eee9cf 100644
--- a/third_party/blink/renderer/core/loader/text_track_loader.cc
+++ b/third_party/blink/renderer/core/loader/text_track_loader.cc
@@ -29,6 +29,7 @@
 #include "third_party/blink/public/platform/task_type.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/inspector/console_message.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h"
@@ -107,7 +108,7 @@
                            CrossOriginAttributeValue cross_origin) {
   CancelLoad();
 
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(GetDocument().domWindow()->GetCurrentWorld());
   options.initiator_info.name = fetch_initiator_type_names::kTrack;
 
   // Let |request| be the result of creating a potential-CORS request
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.cc b/third_party/blink/renderer/core/loader/threadable_loader.cc
index 4846347e..3a8deed 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader.cc
+++ b/third_party/blink/renderer/core/loader/threadable_loader.cc
@@ -960,7 +960,7 @@
   actual_request.CopyFrom(actual_request_);
   ResourceLoaderOptions actual_options = actual_options_;
   actual_request_.CopyFrom(ResourceRequest());
-  actual_options_ = ResourceLoaderOptions();
+  actual_options_ = ResourceLoaderOptions(nullptr /* world */);
 
   if (GetResource())
     checker_.WillRemoveClient();
diff --git a/third_party/blink/renderer/core/loader/threadable_loader.h b/third_party/blink/renderer/core/loader/threadable_loader.h
index 1719df67..09a5fe98 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader.h
+++ b/third_party/blink/renderer/core/loader/threadable_loader.h
@@ -241,7 +241,7 @@
   // Holds the original request and options for it during preflight request
   // handling phase.
   ResourceRequest actual_request_;
-  ResourceLoaderOptions actual_options_;
+  ResourceLoaderOptions actual_options_{nullptr /* world */};
   network::mojom::FetchResponseType response_tainting_ =
       network::mojom::FetchResponseType::kBasic;
 
diff --git a/third_party/blink/renderer/core/loader/threadable_loader_test.cc b/third_party/blink/renderer/core/loader/threadable_loader_test.cc
index 1dd126e1..2c16d9a 100644
--- a/third_party/blink/renderer/core/loader/threadable_loader_test.cc
+++ b/third_party/blink/renderer/core/loader/threadable_loader_test.cc
@@ -163,7 +163,7 @@
   }
 
   void CreateLoader(ThreadableLoaderClient* client) {
-    ResourceLoaderOptions resource_loader_options;
+    ResourceLoaderOptions resource_loader_options(nullptr /* world */);
     loader_ = MakeGarbageCollected<ThreadableLoader>(
         *dummy_page_holder_->GetFrame().DomWindow(), client,
         resource_loader_options);
diff --git a/third_party/blink/renderer/core/loader/threaded_icon_loader.cc b/third_party/blink/renderer/core/loader/threaded_icon_loader.cc
index 388a387..b64704d 100644
--- a/third_party/blink/renderer/core/loader/threaded_icon_loader.cc
+++ b/third_party/blink/renderer/core/loader/threaded_icon_loader.cc
@@ -38,7 +38,8 @@
   icon_callback_ = std::move(callback);
   resize_dimensions_ = resize_dimensions;
 
-  ResourceLoaderOptions resource_loader_options;
+  ResourceLoaderOptions resource_loader_options(
+      execution_context->GetCurrentWorld());
   if (execution_context->IsWorkerGlobalScope())
     resource_loader_options.request_initiator_context = kWorkerContext;
 
diff --git a/third_party/blink/renderer/core/loader/web_associated_url_loader_impl.cc b/third_party/blink/renderer/core/loader/web_associated_url_loader_impl.cc
index 0c6ce1e..382ca30 100644
--- a/third_party/blink/renderer/core/loader/web_associated_url_loader_impl.cc
+++ b/third_party/blink/renderer/core/loader/web_associated_url_loader_impl.cc
@@ -406,7 +406,8 @@
       std::move(task_runner));
 
   if (allow_load) {
-    ResourceLoaderOptions resource_loader_options;
+    ResourceLoaderOptions resource_loader_options(
+        observer_->GetExecutionContext()->GetCurrentWorld());
     resource_loader_options.data_buffering_policy = kDoNotBufferData;
 
     if (options_.grant_universal_access) {
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 0f6902f..169a7d6 100644
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
@@ -113,13 +113,6 @@
   return GetContentSecurityPolicy();
 }
 
-bool WorkerFetchContext::ShouldBypassMainWorldCSP() const {
-  // This method was introduced to bypass the page's CSP while running the
-  // script from an isolated world (ex: Chrome extensions). But worker threads
-  // doesn't have any isolated world. So we can just return false.
-  return false;
-}
-
 bool WorkerFetchContext::IsSVGImageChromeClient() const {
   return false;
 }
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 e3bca07..5f34db2 100644
--- a/third_party/blink/renderer/core/loader/worker_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h
@@ -56,7 +56,6 @@
                                ResourceType) const override;
   const ContentSecurityPolicy* GetContentSecurityPolicyForWorld(
       const DOMWrapperWorld* world) const override;
-  bool ShouldBypassMainWorldCSP() const override;
   bool IsSVGImageChromeClient() const override;
   void CountUsage(WebFeature) const override;
   void CountDeprecation(WebFeature) const override;
diff --git a/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc b/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
index 6bf94736..b44defb 100644
--- a/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
+++ b/third_party/blink/renderer/core/page/validation_message_overlay_delegate_test.cc
@@ -135,6 +135,8 @@
   EXPECT_EQ(external_clock.CurrentTime(), internal_clock.CurrentTime());
 
   GetPage().SetValidationMessageClientForTesting(original_client);
+
+  static_cast<ValidationMessageClient*>(client)->WillBeDestroyed();
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/clip_rects_cache.h b/third_party/blink/renderer/core/paint/clip_rects_cache.h
index acc536bf..6730fa1c 100644
--- a/third_party/blink/renderer/core/paint/clip_rects_cache.h
+++ b/third_party/blink/renderer/core/paint/clip_rects_cache.h
@@ -24,10 +24,6 @@
   // crbug.com/783532.
   kAbsoluteClipRectsIgnoringViewportClip,
 
-  // Relative to painting ancestor. Used for pre-CompositeAfterPaint
-  // compositing.
-  kPaintingClipRects,
-
   kNumberOfClipRectsCacheSlots,
   kUncachedClipRects,
 };
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
index 7b3c9a6..1d9569dd 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
@@ -337,18 +337,6 @@
   }
 }
 
-void CompositedLayerMapping::UpdateRasterizationPolicy() {
-  bool transformed_rasterization_allowed =
-      !(owning_layer_.GetCompositingReasons() &
-        CompositingReason::kComboTransformedRasterizationDisallowedReasons);
-  graphics_layer_->CcLayer().SetTransformedRasterizationAllowed(
-      transformed_rasterization_allowed);
-  if (non_scrolling_squashing_layer_) {
-    non_scrolling_squashing_layer_->CcLayer()
-        .SetTransformedRasterizationAllowed(true);
-  }
-}
-
 void CompositedLayerMapping::UpdateCompositedBounds() {
   DCHECK_EQ(owning_layer_.Compositor()->Lifecycle().GetState(),
             DocumentLifecycle::kInCompositingAssignmentsUpdate);
@@ -717,7 +705,6 @@
   UpdateDrawsContentAndPaintsHitTest();
   UpdateElementId();
   UpdateContentsOpaque();
-  UpdateRasterizationPolicy();
   UpdateCompositingReasons();
 }
 
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
index 88f9b21..ec51c85e 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h
@@ -103,8 +103,6 @@
   // Update whether layer needs blending.
   void UpdateContentsOpaque();
 
-  void UpdateRasterizationPolicy();
-
   GraphicsLayer* MainGraphicsLayer() const { return graphics_layer_.get(); }
 
   GraphicsLayer* ForegroundLayer() const { return foreground_layer_.get(); }
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping_test.cc b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping_test.cc
index 042c6038..2a01f3877 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping_test.cc
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping_test.cc
@@ -1326,116 +1326,6 @@
   EXPECT_FLOAT_EQ(8, sticky_position_relative_to_root.Y());
 }
 
-TEST_F(CompositedLayerMappingTest,
-       TransformedRasterizationDisallowedForDirectReasons) {
-  // This test verifies layers with direct compositing reasons won't have
-  // transformed rasterization, i.e. should raster in local space.
-  SetBodyInnerHTML(R"HTML(
-    <div id='target1' style='will-change: transform;'>foo</div>
-    <div id='target2' style='will-change: opacity;'>bar</div>
-  )HTML");
-
-  {
-    LayoutObject* target = GetLayoutObjectByElementId("target1");
-    ASSERT_TRUE(target && target->IsBox());
-    PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-    GraphicsLayer* target_graphics_layer =
-        target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-    ASSERT_TRUE(target_graphics_layer);
-    EXPECT_FALSE(
-        target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-  }
-  {
-    LayoutObject* target = GetLayoutObjectByElementId("target2");
-    ASSERT_TRUE(target && target->IsBox());
-    PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-    GraphicsLayer* target_graphics_layer =
-        target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-    ASSERT_TRUE(target_graphics_layer);
-    EXPECT_FALSE(
-        target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-  }
-}
-
-TEST_F(CompositedLayerMappingTest, TransformedRasterizationForInlineTransform) {
-  // This test verifies we allow layers that are indirectly composited due to
-  // an inline transform (but no direct reason otherwise) to raster in the
-  // device space for higher quality.
-  SetBodyInnerHTML(R"HTML(
-    <div style='will-change:transform; width:500px;
-    height:20px;'>composited</div>
-    <div id='target' style='transform:translate(1.5px,-10.5px);
-    width:500px; height:20px;'>indirectly composited due to inline
-    transform</div>
-  )HTML");
-
-  LayoutObject* target = GetLayoutObjectByElementId("target");
-  ASSERT_TRUE(target && target->IsBox());
-  PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-  GraphicsLayer* target_graphics_layer =
-      target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-  ASSERT_TRUE(target_graphics_layer);
-  EXPECT_TRUE(
-      target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-}
-
-TEST_F(CompositedLayerMappingTest,
-       TransformedRasterizationForScrollDependentPosition) {
-  SetBodyInnerHTML(R"HTML(
-    <div id="target"
-      style="transform: translateX(0.3px);
-             position: fixed; top: 20px; left: 30px;">
-        FIXED
-    </div>
-    <div style="height: 4000px; width: 4000px;
-         background: silver;">
-    </div>
-  )HTML");
-
-  LayoutObject* target = GetLayoutObjectByElementId("target");
-  ASSERT_TRUE(target && target->IsBox());
-  PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-  GraphicsLayer* target_graphics_layer =
-      target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-  ASSERT_TRUE(target_graphics_layer);
-  EXPECT_TRUE(
-      target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-}
-
-TEST_F(CompositedLayerMappingTest,
-       TransformedRasterizationForTrivial3DTransform) {
-  SetBodyInnerHTML(R"HTML(
-    <div id="target" style="transform: translate3d(0.3px, 0px, 0px);">
-        Trivial 3D Transform
-    </div>
-  )HTML");
-
-  LayoutObject* target = GetLayoutObjectByElementId("target");
-  ASSERT_TRUE(target && target->IsBox());
-  PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-  GraphicsLayer* target_graphics_layer =
-      target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-  ASSERT_TRUE(target_graphics_layer);
-  EXPECT_TRUE(
-      target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-}
-
-TEST_F(CompositedLayerMappingTest,
-       TransformedRasterizationForBackfaceVisibilityHidden) {
-  SetBodyInnerHTML(R"HTML(
-    <div id="target" style="backface-visibility: hidden;">EXAMPLE</div>
-  )HTML");
-
-  LayoutObject* target = GetLayoutObjectByElementId("target");
-  ASSERT_TRUE(target && target->IsBox());
-  PaintLayer* target_layer = ToLayoutBox(target)->Layer();
-  GraphicsLayer* target_graphics_layer =
-      target_layer ? target_layer->GraphicsLayerBacking() : nullptr;
-  ASSERT_TRUE(target_graphics_layer);
-  EXPECT_TRUE(
-      target_graphics_layer->CcLayer().transformed_rasterization_allowed());
-}
-
 TEST_F(CompositedLayerMappingTest, ScrollingContainerBoundsChange) {
   GetDocument().GetFrame()->GetSettings()->SetPreferCompositingToLCDTextEnabled(
       true);
diff --git a/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc b/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
index 09cb39c..980ceef 100644
--- a/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
+++ b/third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.cc
@@ -440,8 +440,6 @@
   if (!composited_layer_mapping_changed)
     return false;
 
-  layer->ClearClipRects(kPaintingClipRects);
-
   return true;
 }
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer.cc b/third_party/blink/renderer/core/paint/paint_layer.cc
index 72ae58a..d9fffdb 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer.cc
@@ -2703,7 +2703,7 @@
 
 PhysicalRect PaintLayer::BoundingBoxForCompositing() const {
   return BoundingBoxForCompositingInternal(
-      *this, nullptr, kMaybeIncludeTransformForAncestorLayer);
+      *this, nullptr, kIncludeClipsAndMaybeIncludeTransformForAncestorLayer);
 }
 
 bool PaintLayer::ShouldApplyTransformToBoundingBox(
@@ -2716,7 +2716,7 @@
   if (PaintsWithTransform(kGlobalPaintNormalPhase)) {
     if (this != &composited_layer)
       return true;
-    if (options == kMaybeIncludeTransformForAncestorLayer)
+    if (options == kIncludeClipsAndMaybeIncludeTransformForAncestorLayer)
       return true;
   }
   return false;
@@ -2754,21 +2754,21 @@
   if (GetLayoutObject().IsLayoutFlowThread())
     return PhysicalRect();
 
-  // If there is a clip applied by an ancestor to this PaintLayer but below or
-  // equal to |ancestorLayer|, apply that clip.
-  //
-  // There are two callsites to BoundingBoxForCompositingInternal: one in
-  // pre-paint for filter bouonding boxes, and one in compositing. The former
-  // can't use GeometryMapper yet because of circularity between
-  // LocalBorderBoxProperties and filters being set on the property trees.
-  PhysicalRect result =
-      Clipper((GetLayoutObject().GetDocument().Lifecycle().GetState() ==
-               DocumentLifecycle::kInCompositingAssignmentsUpdate)
-                  ? GeometryMapperOption::kUseGeometryMapper
-                  : GeometryMapperOption::kDoNotUseGeometryMapper)
-          .LocalClipRect(composited_layer);
+  PhysicalRect result;
+  if (options == kIncludeClipsAndMaybeIncludeTransformForAncestorLayer) {
+    // If there is a clip applied by an ancestor to this PaintLayer but below or
+    // equal to |ancestorLayer|, apply that clip. This optimizes the size
+    // of the composited layer to exclude clipped-out regions of descendants.
+    result = Clipper((GetLayoutObject().GetDocument().Lifecycle().GetState() ==
+                      DocumentLifecycle::kInCompositingAssignmentsUpdate)
+                         ? GeometryMapperOption::kUseGeometryMapper
+                         : GeometryMapperOption::kUseGeometryMapper)
+                 .LocalClipRect(composited_layer);
 
-  result.Intersect(LocalBoundingBox());
+    result.Intersect(LocalBoundingBox());
+  } else {
+    result = LocalBoundingBox();
+  }
 
   ExpandRectForStackingChildren(composited_layer, result, options);
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer.h b/third_party/blink/renderer/core/paint/paint_layer.h
index 8db75e8..5d7ab6210 100644
--- a/third_party/blink/renderer/core/paint/paint_layer.h
+++ b/third_party/blink/renderer/core/paint/paint_layer.h
@@ -461,7 +461,7 @@
   // |ancestorLayer| may be applied to the bounding box, in particular if
   // paintsWithTransform() is true.
   enum CalculateBoundsOptions {
-    kMaybeIncludeTransformForAncestorLayer,
+    kIncludeClipsAndMaybeIncludeTransformForAncestorLayer,
     kIncludeTransformsAndCompositedChildLayers,
   };
 
diff --git a/third_party/blink/renderer/core/paint/paint_layer_clipper.cc b/third_party/blink/renderer/core/paint/paint_layer_clipper.cc
index 9b6e4d05..4e5a047 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_clipper.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_clipper.cc
@@ -218,56 +218,40 @@
 
 PhysicalRect PaintLayerClipper::LocalClipRect(
     const PaintLayer& clipping_root_layer) const {
+  DCHECK(use_geometry_mapper_);
   ClipRectsContext context(
       &clipping_root_layer,
       &clipping_root_layer.GetLayoutObject().FirstFragment(),
-      kPaintingClipRects);
-  if (use_geometry_mapper_) {
-    ClipRect clip_rect;
-    CalculateBackgroundClipRectWithGeometryMapper(
-        context, layer_.GetLayoutObject().FirstFragment(), kRespectOverflowClip,
-        clip_rect);
+      kUncachedClipRects);
 
-    if (clip_rect.IsInfinite())
-      return clip_rect.Rect();
+  ClipRect clip_rect;
+  CalculateBackgroundClipRectWithGeometryMapper(
+      context, layer_.GetLayoutObject().FirstFragment(), kRespectOverflowClip,
+      clip_rect);
 
-    PhysicalRect premapped_rect = clip_rect.Rect();
-    // The rect now needs to be transformed to the local space of this
-    // PaintLayer.
-    // TODO(chrishtr): not correct for fragmentation.
-    premapped_rect.Move(context.root_fragment->PaintOffset());
+  if (clip_rect.IsInfinite())
+    return clip_rect.Rect();
 
-    const auto& clip_root_layer_transform =
-        context.root_fragment->LocalBorderBoxProperties().Transform();
-    const auto& layer_transform = layer_.GetLayoutObject()
-                                      .FirstFragment()
-                                      .LocalBorderBoxProperties()
-                                      .Transform();
-    FloatRect clipped_rect_in_local_space(premapped_rect);
-    GeometryMapper::SourceToDestinationRect(clip_root_layer_transform,
-                                            layer_transform,
-                                            clipped_rect_in_local_space);
-    // TODO(chrishtr): not correct for fragmentation.
-    clipped_rect_in_local_space.MoveBy(
-        -FloatPoint(layer_.GetLayoutObject().FirstFragment().PaintOffset()));
+  PhysicalRect premapped_rect = clip_rect.Rect();
+  // The rect now needs to be transformed to the local space of this
+  // PaintLayer.
+  // TODO(chrishtr): not correct for fragmentation.
+  premapped_rect.Move(context.root_fragment->PaintOffset());
 
-    return PhysicalRect::FastAndLossyFromFloatRect(clipped_rect_in_local_space);
-  }
+  const auto& clip_root_layer_transform =
+      context.root_fragment->LocalBorderBoxProperties().Transform();
+  const auto& layer_transform = layer_.GetLayoutObject()
+                                    .FirstFragment()
+                                    .LocalBorderBoxProperties()
+                                    .Transform();
+  FloatRect clipped_rect_in_local_space(premapped_rect);
+  GeometryMapper::SourceToDestinationRect(
+      clip_root_layer_transform, layer_transform, clipped_rect_in_local_space);
+  // TODO(chrishtr): not correct for fragmentation.
+  clipped_rect_in_local_space.MoveBy(
+      -FloatPoint(layer_.GetLayoutObject().FirstFragment().PaintOffset()));
 
-  PhysicalRect layer_bounds;
-  ClipRect background_rect, foreground_rect;
-  CalculateRects(context, nullptr, nullptr, layer_bounds, background_rect,
-                 foreground_rect);
-
-  if (background_rect.IsInfinite())
-    return background_rect.Rect();
-
-  PhysicalRect clip_rect = background_rect.Rect();
-  PhysicalOffset clipping_root_offset;
-  layer_.ConvertToLayerCoords(&clipping_root_layer, clipping_root_offset);
-  clip_rect.Move(-clipping_root_offset);
-
-  return clip_rect;
+  return PhysicalRect::FastAndLossyFromFloatRect(clipped_rect_in_local_space);
 }
 
 void PaintLayerClipper::CalculateRectsWithGeometryMapper(
diff --git a/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc b/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
index b547f76..ae447df 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_clipper_test.cc
@@ -336,7 +336,7 @@
   PaintLayer* layer =
       ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
   ClipRectsContext context(
-      layer, &layer->GetLayoutObject().FirstFragment(), kPaintingClipRects,
+      layer, &layer->GetLayoutObject().FirstFragment(), kUncachedClipRects,
       kIgnorePlatformOverlayScrollbarSize, kIgnoreOverflowClip);
   PhysicalRect layer_bounds;
   ClipRect background_rect, foreground_rect;
@@ -373,7 +373,7 @@
       ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
   ClipRectsContext context(
       layer->Parent(), &layer->Parent()->GetLayoutObject().FirstFragment(),
-      kPaintingClipRects, kIgnorePlatformOverlayScrollbarSize,
+      kUncachedClipRects, kIgnorePlatformOverlayScrollbarSize,
       kIgnoreOverflowClip);
   PhysicalRect layer_bounds;
   ClipRect background_rect, foreground_rect;
@@ -623,7 +623,7 @@
   PaintLayer* target =
       ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
   ClipRectsContext context(
-      root, &root->GetLayoutObject().FirstFragment(), kPaintingClipRects,
+      root, &root->GetLayoutObject().FirstFragment(), kUncachedClipRects,
       kIgnorePlatformOverlayScrollbarSize, kIgnoreOverflowClip);
   PhysicalRect infinite_rect(LayoutRect::InfiniteIntRect());
   PhysicalRect layer_bounds(infinite_rect);
@@ -658,7 +658,7 @@
   PaintLayer* target =
       ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
   ClipRectsContext context(
-      root, &root->GetLayoutObject().FirstFragment(), kPaintingClipRects,
+      root, &root->GetLayoutObject().FirstFragment(), kUncachedClipRects,
       kIgnorePlatformOverlayScrollbarSize, kIgnoreOverflowClip);
   PhysicalRect infinite_rect(LayoutRect::InfiniteIntRect());
   PhysicalRect layer_bounds(infinite_rect);
@@ -694,7 +694,7 @@
   PaintLayer* target =
       ToLayoutBoxModelObject(GetLayoutObjectByElementId("target"))->Layer();
   ClipRectsContext context(
-      root, &root->GetLayoutObject().FirstFragment(), kPaintingClipRects,
+      root, &root->GetLayoutObject().FirstFragment(), kUncachedClipRects,
       kIgnorePlatformOverlayScrollbarSize, kIgnoreOverflowClip);
   PhysicalRect infinite_rect(LayoutRect::InfiniteIntRect());
   PhysicalRect layer_bounds(infinite_rect);
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
index 12a5366..e81af14 100644
--- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
+++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -543,9 +543,12 @@
         full_context_.direct_compositing_reasons &
         CompositingReason::kDirectReasonsForPaintOffsetTranslationProperty;
     state.rendering_context_id = context_.current.rendering_context_id;
-    state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-        DOMNodeIds::IdForNode(&object_.GetDocument()),
-        CompositorElementIdNamespace::kDOMNodeId);
+    if (IsA<LayoutView>(object_)) {
+      state.flags.is_frame_paint_offset_translation = true;
+      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
+          DOMNodeIds::IdForNode(&object_.GetDocument()),
+          CompositorElementIdNamespace::kDOMNodeId);
+    }
     OnUpdate(properties_->UpdatePaintOffsetTranslation(
         *context_.current.transform, std::move(state)));
     context_.current.transform = properties_->PaintOffsetTranslation();
@@ -577,9 +580,6 @@
       state.compositor_element_id = CompositorElementIdFromUniqueObjectId(
           box_model.UniqueId(),
           CompositorElementIdNamespace::kStickyTranslation);
-      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-          DOMNodeIds::IdForNode(&object_.GetDocument()),
-          CompositorElementIdNamespace::kDOMNodeId);
 
       auto* layer = box_model.Layer();
       const auto* scroller_properties = layer->AncestorOverflowLayer()
@@ -723,9 +723,6 @@
             context_.current.should_flatten_inherited_transform;
         state.compositor_element_id = GetCompositorElementId(
             CompositorElementIdNamespace::kPrimaryTransform);
-        state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-            DOMNodeIds::IdForNode(&object_.GetDocument()),
-            CompositorElementIdNamespace::kDOMNodeId);
       }
 
       TransformPaintPropertyNode::AnimationState animation_state;
@@ -897,9 +894,6 @@
               : TransformPaintPropertyNode::BackfaceVisibility::kVisible;
       state.compositor_element_id = GetCompositorElementId(
           CompositorElementIdNamespace::kPrimaryTransform);
-      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-          DOMNodeIds::IdForNode(&object_.GetDocument()),
-          CompositorElementIdNamespace::kDOMNodeId);
 
       TransformPaintPropertyNode::AnimationState animation_state;
       animation_state.is_running_animation_on_compositor =
@@ -1792,9 +1786,6 @@
       state.flags.flattens_inherited_transform =
           context_.current.should_flatten_inherited_transform;
       state.rendering_context_id = context_.current.rendering_context_id;
-      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-          DOMNodeIds::IdForNode(&object_.GetDocument()),
-          CompositorElementIdNamespace::kDOMNodeId);
       OnUpdate(properties_->UpdatePerspective(*context_.current.transform,
                                               std::move(state)));
     } else {
@@ -1851,9 +1842,6 @@
                                                false);
       state.flags.flattens_inherited_transform =
           context_.current.should_flatten_inherited_transform;
-      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-          DOMNodeIds::IdForNode(&object_.GetDocument()),
-          CompositorElementIdNamespace::kDOMNodeId);
       OnUpdate(properties_->UpdateReplacedContentTransform(
           *context_.current.transform, std::move(state)));
     } else {
@@ -2061,9 +2049,6 @@
           object_.StyleRef().BackfaceVisibility() ==
               EBackfaceVisibility::kHidden)
         state.flags.delegates_to_parent_for_backface = true;
-      state.frame_element_id = CompositorElementIdFromUniqueObjectId(
-          DOMNodeIds::IdForNode(&object_.GetDocument()),
-          CompositorElementIdNamespace::kDOMNodeId);
       auto effective_change_type = properties_->UpdateScrollTranslation(
           *context_.current.transform, std::move(state));
       if (effective_change_type ==
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image.cc b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
index 355293d..026eadc 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
@@ -168,6 +168,8 @@
       has_pending_timeline_rewind_(false) {}
 
 SVGImage::~SVGImage() {
+  AllowDestroyingLayoutObjectInFinalizerScope scope;
+
   if (frame_client_)
     frame_client_->ClearImage();
 
diff --git a/third_party/blink/renderer/core/svg/svg_external_document_cache.cc b/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
index bc116af4..8b1428a78 100644
--- a/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
+++ b/third_party/blink/renderer/core/svg/svg_external_document_cache.cc
@@ -105,7 +105,9 @@
     const KURL& url,
     const AtomicString& initiator_name,
     network::mojom::blink::CSPDisposition csp_disposition) {
-  ResourceLoaderOptions options;
+  Document* context_document = GetSupplementable();
+  ResourceLoaderOptions options(
+      context_document->GetExecutionContext()->GetCurrentWorld());
   options.initiator_info.name = initiator_name;
   FetchParameters params(ResourceRequest(url), options);
   params.SetContentSecurityCheck(csp_disposition);
@@ -114,7 +116,6 @@
   params.SetRequestContext(mojom::blink::RequestContextType::IMAGE);
   params.SetRequestDestination(network::mojom::RequestDestination::kImage);
 
-  Document* context_document = GetSupplementable();
   Entry* entry =
       MakeGarbageCollected<Entry>(context_document->GetExecutionContext());
   Resource* resource = TextResource::FetchSVGDocument(
diff --git a/third_party/blink/renderer/core/svg/svg_fe_image_element.cc b/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
index 7169a9d..fec7412 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_fe_image_element.cc
@@ -23,6 +23,7 @@
 
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/id_target_observer.h"
+#include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/loader/resource/image_resource_content.h"
 #include "third_party/blink/renderer/core/svg/graphics/filters/svg_fe_image.h"
 #include "third_party/blink/renderer/core/svg/svg_preserve_aspect_ratio.h"
@@ -74,7 +75,7 @@
 }
 
 void SVGFEImageElement::FetchImageResource() {
-  ResourceLoaderOptions options;
+  ResourceLoaderOptions options(GetExecutionContext()->GetCurrentWorld());
   options.initiator_info.name = localName();
   FetchParameters params(
       ResourceRequest(GetDocument().CompleteURL(HrefString())), options);
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc
index 298c07a..73a8db6 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
@@ -448,7 +448,8 @@
       nullptr /* worklet_module_responses_map */,
       std::move(browser_interface_broker_), CreateBeginFrameProviderParams(),
       GetExecutionContext()->GetSecurityContext().GetFeaturePolicy(),
-      GetExecutionContext()->GetAgentClusterID());
+      GetExecutionContext()->GetAgentClusterID(),
+      GetExecutionContext()->GetExecutionContextToken());
 }
 
 scoped_refptr<WebWorkerFetchContext>
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
index 0dcdfb4..41fb1280 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
@@ -101,6 +101,22 @@
   }
 }
 
+struct ProcessedCreationParams {
+  std::unique_ptr<GlobalScopeCreationParams> creation_params;
+  ExecutionContextToken parent_context_token;
+};
+
+// static
+DedicatedWorkerGlobalScope::ParsedCreationParams
+DedicatedWorkerGlobalScope::ParseCreationParams(
+    std::unique_ptr<GlobalScopeCreationParams> creation_params) {
+  ParsedCreationParams parsed_creation_params;
+  parsed_creation_params.parent_context_token =
+      creation_params->parent_context_token.value();
+  parsed_creation_params.creation_params = std::move(creation_params);
+  return parsed_creation_params;
+}
+
 DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
     std::unique_ptr<GlobalScopeCreationParams> creation_params,
     DedicatedWorkerThread* thread,
@@ -108,11 +124,27 @@
     std::unique_ptr<Vector<String>> outside_origin_trial_tokens,
     const BeginFrameProviderParams& begin_frame_provider_params,
     ukm::SourceId ukm_source_id)
-    : WorkerGlobalScope(std::move(creation_params),
+    : DedicatedWorkerGlobalScope(
+          ParseCreationParams(std::move(creation_params)),
+          thread,
+          time_origin,
+          std::move(outside_origin_trial_tokens),
+          begin_frame_provider_params,
+          ukm_source_id) {}
+
+DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
+    ParsedCreationParams parsed_creation_params,
+    DedicatedWorkerThread* thread,
+    base::TimeTicks time_origin,
+    std::unique_ptr<Vector<String>> outside_origin_trial_tokens,
+    const BeginFrameProviderParams& begin_frame_provider_params,
+    ukm::SourceId ukm_source_id)
+    : WorkerGlobalScope(std::move(parsed_creation_params.creation_params),
                         thread,
                         time_origin,
                         ukm_source_id),
       token_(thread->WorkerObjectProxy().token()),
+      parent_token_(parsed_creation_params.parent_context_token),
       animation_frame_provider_(
           MakeGarbageCollected<WorkerAnimationFrameProvider>(
               this,
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
index 98f182d..092c6a93 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h
@@ -139,7 +139,35 @@
     return token_;
   }
 
+  // Returns the ExecutionContextToken that uniquely identifies the parent
+  // context that created this dedicated worker.
+  base::Optional<ExecutionContextToken> GetParentExecutionContextToken()
+      const final {
+    return parent_token_;
+  }
+
  private:
+  struct ParsedCreationParams {
+    std::unique_ptr<GlobalScopeCreationParams> creation_params;
+    ExecutionContextToken parent_context_token;
+  };
+
+  static ParsedCreationParams ParseCreationParams(
+      std::unique_ptr<GlobalScopeCreationParams> creation_params);
+
+  // The public constructor extracts the |parent_context_token| from
+  // |creation_params| and redirects here, otherwise the token is lost when we
+  // move the |creation_params| to WorkerGlobalScope, and other worker types
+  // don't care about that particular parameter. The helper function is required
+  // because there's no guarantee about the order of evaluation of arguments.
+  DedicatedWorkerGlobalScope(
+      ParsedCreationParams parsed_creation_params,
+      DedicatedWorkerThread* thread,
+      base::TimeTicks time_origin,
+      std::unique_ptr<Vector<String>> outside_origin_trial_tokens,
+      const BeginFrameProviderParams& begin_frame_provider_params,
+      ukm::SourceId ukm_source_id);
+
   void DidReceiveResponseForClassicScript(
       WorkerClassicScriptLoader* classic_script_loader);
   void DidFetchClassicScript(WorkerClassicScriptLoader* classic_script_loader,
@@ -147,7 +175,10 @@
 
   DedicatedWorkerObjectProxy& WorkerObjectProxy() const;
 
+  // A unique ID for this context.
   const DedicatedWorkerToken token_;
+  // The ID of the parent context that owns this worker.
+  const ExecutionContextToken parent_token_;
   Member<WorkerAnimationFrameProvider> animation_frame_provider_;
   RejectCoepUnsafeNone reject_coep_unsafe_none_ = RejectCoepUnsafeNone(false);
 };
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
index 62ddbfc..7a9f7c5 100644
--- a/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
+++ b/third_party/blink/renderer/core/workers/dedicated_worker_test.cc
@@ -129,19 +129,22 @@
          network::mojom::ContentSecurityPolicyType::kReport}};
     auto worker_settings = std::make_unique<WorkerSettings>(
         To<LocalDOMWindow>(GetExecutionContext())->GetFrame()->GetSettings());
+    auto params = std::make_unique<GlobalScopeCreationParams>(
+        script_url, mojom::ScriptType::kClassic, "fake global scope name",
+        "fake user agent", UserAgentMetadata(),
+        nullptr /* web_worker_fetch_context */, headers,
+        network::mojom::ReferrerPolicy::kDefault, security_origin_.get(),
+        false /* starter_secure_context */,
+        CalculateHttpsState(security_origin_.get()),
+        nullptr /* worker_clients */, nullptr /* content_settings_client */,
+        network::mojom::IPAddressSpace::kLocal,
+        nullptr /* origin_trial_tokens */, base::UnguessableToken::Create(),
+        std::move(worker_settings), kV8CacheOptionsDefault,
+        nullptr /* worklet_module_responses_map */);
+    params->parent_context_token =
+        GetExecutionContext()->GetExecutionContextToken();
     InitializeWorkerThread(
-        std::make_unique<GlobalScopeCreationParams>(
-            script_url, mojom::ScriptType::kClassic, "fake global scope name",
-            "fake user agent", UserAgentMetadata(),
-            nullptr /* web_worker_fetch_context */, headers,
-            network::mojom::ReferrerPolicy::kDefault, security_origin_.get(),
-            false /* starter_secure_context */,
-            CalculateHttpsState(security_origin_.get()),
-            nullptr /* worker_clients */, nullptr /* content_settings_client */,
-            network::mojom::IPAddressSpace::kLocal,
-            nullptr /* origin_trial_tokens */, base::UnguessableToken::Create(),
-            std::move(worker_settings), kV8CacheOptionsDefault,
-            nullptr /* worklet_module_responses_map */),
+        std::move(params),
         WorkerBackingThreadStartupData(
             WorkerBackingThreadStartupData::HeapLimitMode::kDefault,
             WorkerBackingThreadStartupData::AtomicsWaitMode::kAllow));
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
index 8b1e05f..c47af601 100644
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.cc
@@ -37,7 +37,8 @@
         browser_interface_broker,
     BeginFrameProviderParams begin_frame_provider_params,
     const FeaturePolicy* parent_feature_policy,
-    base::UnguessableToken agent_cluster_id)
+    base::UnguessableToken agent_cluster_id,
+    const base::Optional<ExecutionContextToken>& parent_context_token)
     : script_url(script_url.Copy()),
       script_type(script_type),
       global_scope_name(global_scope_name.IsolatedCopy()),
@@ -63,7 +64,8 @@
           parent_feature_policy,
           ParsedFeaturePolicy() /* container_policy */,
           starter_origin->ToUrlOrigin())),
-      agent_cluster_id(agent_cluster_id) {
+      agent_cluster_id(agent_cluster_id),
+      parent_context_token(parent_context_token) {
   this->outside_content_security_policy_headers.ReserveInitialCapacity(
       outside_content_security_policy_headers.size());
   for (const auto& header : outside_content_security_policy_headers) {
diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_params.h b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
index 164a1f1..879a050 100644
--- a/third_party/blink/renderer/core/workers/global_scope_creation_params.h
+++ b/third_party/blink/renderer/core/workers/global_scope_creation_params.h
@@ -13,6 +13,7 @@
 #include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
 #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h"
 #include "third_party/blink/public/common/feature_policy/feature_policy.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #include "third_party/blink/public/mojom/browser_interface_broker.mojom-blink-forward.h"
 #include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
@@ -63,7 +64,9 @@
           browser_interface_broker = mojo::NullRemote(),
       BeginFrameProviderParams begin_frame_provider_params = {},
       const FeaturePolicy* parent_feature_policy = nullptr,
-      base::UnguessableToken agent_cluster_id = {});
+      base::UnguessableToken agent_cluster_id = {},
+      const base::Optional<ExecutionContextToken>& parent_context_token =
+          base::nullopt);
 
   ~GlobalScopeCreationParams() = default;
 
@@ -160,6 +163,11 @@
   // See https://tc39.github.io/ecma262/#sec-agent-clusters
   base::UnguessableToken agent_cluster_id;
 
+  // The identity of the parent ExecutionContext that is the sole owner of this
+  // worker or worklet, which caused it to be created, and to whose lifetime
+  // this worker/worklet is bound. This is used for resource usage attribution.
+  base::Optional<ExecutionContextToken> parent_context_token;
+
   DISALLOW_COPY_AND_ASSIGN(GlobalScopeCreationParams);
 };
 
diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
index e3c51d3..819c002 100644
--- a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
+++ b/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc
@@ -73,7 +73,7 @@
         MakeGarbageCollected<WorkletModuleResponsesMap>(),
         mojo::NullRemote() /* browser_interface_broker */,
         BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-        window->GetAgentClusterID());
+        window->GetAgentClusterID(), window->GetExecutionContextToken());
     global_scope_ = MakeGarbageCollected<FakeWorkletGlobalScope>(
         std::move(creation_params), *reporting_proxy_, &GetFrame(),
         false /* create_microtask_queue */);
diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc
index bfe7ead..340014c 100644
--- a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc
+++ b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc
@@ -72,7 +72,7 @@
           kV8CacheOptionsDefault, module_responses_map,
           mojo::NullRemote() /* browser_interface_broker */,
           BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-          window->GetAgentClusterID());
+          window->GetAgentClusterID(), window->GetExecutionContextToken());
 
   // Worklets share the pre-initialized backing thread so that we don't have to
   // specify the backing thread startup data.
diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
index c032255..4002037 100644
--- a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
+++ b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc
@@ -221,7 +221,8 @@
             MakeGarbageCollected<WorkletModuleResponsesMap>(),
             mojo::NullRemote() /* browser_interface_broker */,
             BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-            GetExecutionContext()->GetAgentClusterID()),
+            GetExecutionContext()->GetAgentClusterID(),
+            GetExecutionContext()->GetExecutionContextToken()),
         base::nullopt);
   }
 
diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
index 7acd62e8..0d31933 100644
--- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
+++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc
@@ -122,7 +122,8 @@
 
   SECURITY_DCHECK(execution_context.IsWorkerGlobalScope());
 
-  ResourceLoaderOptions resource_loader_options;
+  ResourceLoaderOptions resource_loader_options(
+      execution_context.GetCurrentWorld());
   resource_loader_options.parser_disposition =
       ParserDisposition::kNotParserInserted;
   resource_loader_options.synchronous_policy = kRequestSynchronously;
@@ -174,7 +175,9 @@
     request.SetInspectorId(CreateUniqueIdentifier());
     request.SetReferrerString(Referrer::NoReferrer());
     request.SetPriority(ResourceLoadPriority::kHigh);
-    FetchParameters fetch_params(std::move(request), ResourceLoaderOptions());
+    FetchParameters fetch_params(
+        std::move(request),
+        ResourceLoaderOptions(execution_context.GetCurrentWorld()));
     worker_main_script_loader_ = MakeGarbageCollected<WorkerMainScriptLoader>();
     worker_main_script_loader_->Start(
         fetch_params, std::move(worker_main_script_load_params),
@@ -184,7 +187,8 @@
     return;
   }
 
-  ResourceLoaderOptions resource_loader_options;
+  ResourceLoaderOptions resource_loader_options(
+      execution_context.GetCurrentWorld());
   need_to_cancel_ = true;
   resource_loader_options.reject_coep_unsafe_none = reject_coep_unsafe_none;
   if (blob_url_loader_factory) {
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
index b8ffd974..f9cbd174b 100644
--- a/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
+++ b/third_party/blink/renderer/core/workers/worker_thread_test_helper.h
@@ -114,7 +114,7 @@
   }
 
  private:
-  DedicatedWorkerToken token_;
+  SharedWorkerToken token_;
 };
 
 class WorkerThreadForTest : public WorkerThread {
@@ -151,6 +151,8 @@
         base::UnguessableToken::Create(),
         std::make_unique<WorkerSettings>(std::make_unique<Settings>().get()),
         kV8CacheOptionsDefault, nullptr /* worklet_module_responses_map */);
+    // Create a dummy parent context.
+    creation_params->parent_context_token = LocalFrameToken();
 
     Start(std::move(creation_params),
           WorkerBackingThreadStartupData::CreateDefault(),
diff --git a/third_party/blink/renderer/core/workers/worklet_global_scope.cc b/third_party/blink/renderer/core/workers/worklet_global_scope.cc
index 1b915604..e9734bd 100644
--- a/third_party/blink/renderer/core/workers/worklet_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/worklet_global_scope.cc
@@ -95,7 +95,10 @@
       https_state_(creation_params->starter_https_state),
       thread_type_(thread_type),
       frame_(frame),
-      worker_thread_(worker_thread) {
+      worker_thread_(worker_thread),
+      // Worklets should always have a parent LocalFrameToken.
+      frame_token_(
+          creation_params->parent_context_token->GetAs<LocalFrameToken>()) {
   DCHECK((thread_type_ == ThreadType::kMainThread && frame_) ||
          (thread_type_ == ThreadType::kOffMainThread && worker_thread_));
 
diff --git a/third_party/blink/renderer/core/workers/worklet_global_scope.h b/third_party/blink/renderer/core/workers/worklet_global_scope.h
index a229689..ec097be 100644
--- a/third_party/blink/renderer/core/workers/worklet_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worklet_global_scope.h
@@ -127,6 +127,14 @@
   // Returns the WorkletToken that uniquely identifies this worklet.
   virtual WorkletToken GetWorkletToken() const = 0;
 
+  // Returns the ExecutionContextToken that uniquely identifies the parent
+  // context that created this worklet. Note that this will always be a
+  // LocalFrameToken.
+  base::Optional<ExecutionContextToken> GetParentExecutionContextToken()
+      const final {
+    return frame_token_;
+  }
+
  private:
   enum class ThreadType {
     // Indicates this global scope lives on the main thread.
@@ -172,6 +180,9 @@
   // |worker_thread_| is available only when |thread_type_| is kOffMainThread.
   WorkerThread* worker_thread_;
 
+  // The token identifying the LocalFrame that caused this scope to be created.
+  const LocalFrameToken frame_token_;
+
   std::unique_ptr<ukm::UkmRecorder> ukm_recorder_;
 };
 
diff --git a/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc b/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
index 8a51ced1..bdeea624 100644
--- a/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
+++ b/third_party/blink/renderer/core/xml/parser/xml_document_parser.cc
@@ -621,7 +621,8 @@
     Document* document = XMLDocumentParserScope::current_document_;
     XMLDocumentParserScope scope(nullptr);
     // FIXME: We should restore the original global error handler as well.
-    ResourceLoaderOptions options;
+    ResourceLoaderOptions options(
+        document->GetExecutionContext()->GetCurrentWorld());
     options.initiator_info.name = fetch_initiator_type_names::kXml;
     FetchParameters params(ResourceRequest(url), options);
     params.MutableResourceRequest().SetMode(
diff --git a/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc b/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc
index 5376241..d0c382d6 100644
--- a/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc
+++ b/third_party/blink/renderer/core/xml/xsl_style_sheet_libxslt.cc
@@ -19,6 +19,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/xml/xsl_style_sheet.h"
 
 #include <libxml/uri.h>
@@ -229,7 +230,8 @@
   }
 
   const String& url_string = url.GetString();
-  ResourceLoaderOptions fetch_options;
+  ResourceLoaderOptions fetch_options(
+      OwnerDocument()->GetExecutionContext()->GetCurrentWorld());
   fetch_options.initiator_info.name = fetch_initiator_type_names::kXml;
   FetchParameters params(
       ResourceRequest(OwnerDocument()->CompleteURL(url_string)), fetch_options);
diff --git a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
index 7ce25a5..b3ce345 100644
--- a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
+++ b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
@@ -106,7 +106,7 @@
                reinterpret_cast<const char*>(uri));
       xmlFree(base);
 
-      ResourceLoaderOptions fetch_options;
+      ResourceLoaderOptions fetch_options(nullptr /* world */);
       fetch_options.initiator_info.name = fetch_initiator_type_names::kXml;
       FetchParameters params(ResourceRequest(url), fetch_options);
       params.MutableResourceRequest().SetMode(
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
index 5e5b3c1..d0eca9d 100644
--- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
+++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
@@ -1071,8 +1071,7 @@
   if (request_headers_.size() > 0)
     request.AddHTTPHeaderFields(request_headers_);
 
-  ResourceLoaderOptions resource_loader_options;
-  resource_loader_options.world = world_;
+  ResourceLoaderOptions resource_loader_options(world_);
   resource_loader_options.initiator_info.name =
       fetch_initiator_type_names::kXmlhttprequest;
   if (blob_url_loader_factory_) {
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index 6106ec1b..e9d4561 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -60,6 +60,7 @@
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
 #include "third_party/blink/renderer/core/svg/svg_element.h"
+#include "third_party/blink/renderer/core/svg/svg_g_element.h"
 #include "third_party/blink/renderer/core/svg/svg_style_element.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_menu_list.h"
 #include "third_party/blink/renderer/modules/accessibility/ax_menu_list_option.h"
@@ -1542,6 +1543,10 @@
   if (GetLayoutObject() && AriaHiddenRoot())
     return true;
 
+  // Preserve SVG grouping elements.
+  if (GetNode() && IsA<SVGGElement>(GetNode()))
+    return true;
+
   return false;
 }
 
diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_change_event_init.idl b/third_party/blink/renderer/modules/cookie_store/cookie_change_event_init.idl
index 6f9d45d..ebce1f1 100644
--- a/third_party/blink/renderer/modules/cookie_store/cookie_change_event_init.idl
+++ b/third_party/blink/renderer/modules/cookie_store/cookie_change_event_init.idl
@@ -5,6 +5,6 @@
 // https://github.com/WICG/async-cookies-api/blob/gh-pages/explainer.md
 
 dictionary CookieChangeEventInit : EventInit {
-  [Measure] CookieList changed;
-  [Measure] CookieList deleted;
+  CookieList changed;
+  CookieList deleted;
 };
diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc
index d0cc8086..2229321 100644
--- a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/csspaint/paint_worklet_global_scope_proxy.cc
@@ -51,7 +51,7 @@
       kV8CacheOptionsDefault, module_responses_map,
       mojo::NullRemote() /* browser_interface_broker */,
       BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-      window->GetAgentClusterID());
+      window->GetAgentClusterID(), window->GetExecutionContextToken());
   global_scope_ = PaintWorkletGlobalScope::Create(
       frame, std::move(creation_params), *reporting_proxy_);
 }
diff --git a/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl b/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
index f5c141fd..34031913 100644
--- a/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
+++ b/third_party/blink/renderer/modules/mediarecorder/media_recorder.idl
@@ -12,7 +12,7 @@
 ] interface MediaRecorder : EventTarget {
     [CallWith=ExecutionContext, RaisesException] constructor(MediaStream stream, optional MediaRecorderOptions options = {});
     readonly attribute MediaStream stream;
-    readonly attribute DOMString mimeType;
+    [HighEntropy=Direct, MeasureAs=MediaRecorder_MimeType] readonly attribute DOMString mimeType;
     readonly attribute RecordingState state;
 
     attribute EventHandler onstart;
@@ -21,8 +21,8 @@
     attribute EventHandler onpause;
     attribute EventHandler onresume;
     attribute EventHandler onerror;
-    readonly attribute unsigned long videoBitsPerSecond;
-    readonly attribute unsigned long audioBitsPerSecond;
+    [HighEntropy=Direct, MeasureAs=MediaRecorder_VideoBitsPerSecond] readonly attribute unsigned long videoBitsPerSecond;
+    [HighEntropy=Direct, MeasureAs=MediaRecorder_AudioBitsPerSecond] readonly attribute unsigned long audioBitsPerSecond;
 
     [RaisesException, Measure] void start(optional long timeslice);
     [RaisesException] void stop();
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
index 3ab02e4aa..195f06e 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_global_scope_test.cc
@@ -80,7 +80,7 @@
             MakeGarbageCollected<WorkletModuleResponsesMap>(),
             mojo::NullRemote() /* browser_interface_broker */,
             BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-            window->GetAgentClusterID()),
+            window->GetAgentClusterID(), window->GetExecutionContextToken()),
         base::nullopt, std::make_unique<WorkerDevToolsParams>());
     return thread;
   }
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
index be1a2c8..748e9ae 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
@@ -71,7 +71,7 @@
             MakeGarbageCollected<WorkletModuleResponsesMap>(),
             mojo::NullRemote() /* browser_interface_broker */,
             BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-            window->GetAgentClusterID()),
+            window->GetAgentClusterID(), window->GetExecutionContextToken()),
         base::nullopt, std::make_unique<WorkerDevToolsParams>());
     return thread;
   }
diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc b/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
index 75badca..dcbcc04 100644
--- a/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
+++ b/third_party/blink/renderer/modules/webcodecs/image_decoder_external_test.cc
@@ -4,8 +4,10 @@
 
 #include "third_party/blink/renderer/modules/webcodecs/image_decoder_external.h"
 
+#include "base/feature_list.h"
 #include "media/media_buildflags.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/common/features.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_tester.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_image_decoder_init.h"
@@ -71,7 +73,8 @@
   EXPECT_TRUE(ImageDecoderExternal::canDecodeType("image/x-xbitmap"));
 
 #if BUILDFLAG(ENABLE_AV1_DECODER)
-  EXPECT_TRUE(ImageDecoderExternal::canDecodeType("image/avif"));
+  EXPECT_EQ(ImageDecoderExternal::canDecodeType("image/avif"),
+            base::FeatureList::IsEnabled(features::kAVIF));
 #else
   EXPECT_FALSE(ImageDecoderExternal::canDecodeType("image/avif"));
 #endif
diff --git a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
index 0db9f58..667c448 100644
--- a/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
+++ b/third_party/blink/renderer/modules/worklet/worklet_thread_test_common.cc
@@ -42,7 +42,7 @@
           MakeGarbageCollected<WorkletModuleResponsesMap>(),
           mojo::NullRemote() /* browser_interface_broker */,
           BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
-          window->GetAgentClusterID()),
+          window->GetAgentClusterID(), window->GetExecutionContextToken()),
       base::nullopt, std::make_unique<WorkerDevToolsParams>());
   return thread;
 }
diff --git a/third_party/blink/renderer/modules/xr/xr_system.cc b/third_party/blink/renderer/modules/xr/xr_system.cc
index 29b66b61..143f1a9 100644
--- a/third_party/blink/renderer/modules/xr/xr_system.cc
+++ b/third_party/blink/renderer/modules/xr/xr_system.cc
@@ -602,7 +602,6 @@
   if (event->type() == event_type_names::kFullscreenchange) {
     // Succeeded, proceed with session creation.
     element->GetDocument().GetViewportData().SetExpandIntoDisplayCutout(true);
-    element->GetDocument().SetIsXrOverlay(true, element);
     xr_->OnRequestSessionReturned(query_, std::move(result_));
   }
 
@@ -618,25 +617,29 @@
   Element* element = query_->DOMOverlayElement();
   DCHECK(element);
 
+  bool wait_for_fullscreen_change = true;
+
   if (element == Fullscreen::FullscreenElementFrom(element->GetDocument())) {
     // It's possible that the requested element is already fullscreen, in which
     // case we must not wait for a fullscreenchange event since it won't arrive.
-    // Detect that and proceed directly with session creation in this case. This
-    // can happen if the site used Fullscreen API to place the element into
+    // This can happen if the site used Fullscreen API to place the element into
     // fullscreen mode before requesting the session, and if the session can
-    // proceed without needing a consent prompt. (Showing a dialog exits
+    // proceed without needing a permission prompt. (Showing a dialog exits
     // fullscreen mode.)
+    //
+    // We still need to do the RequestFullscreen call to apply the kForXrOverlay
+    // property which sets the background transparent.
     DVLOG(2) << __func__ << ": requested element already fullscreen";
-    element->GetDocument().SetIsXrOverlay(true, element);
-    xr_->OnRequestSessionReturned(query_, std::move(result_));
-    return;
+    wait_for_fullscreen_change = false;
   }
 
-  // Set up event listeners for success and failure.
-  element->GetDocument().addEventListener(event_type_names::kFullscreenchange,
-                                          this, true);
-  element->GetDocument().addEventListener(event_type_names::kFullscreenerror,
-                                          this, true);
+  if (wait_for_fullscreen_change) {
+    // Set up event listeners for success and failure.
+    element->GetDocument().addEventListener(event_type_names::kFullscreenchange,
+                                            this, true);
+    element->GetDocument().addEventListener(event_type_names::kFullscreenerror,
+                                            this, true);
+  }
 
   // Use the event-generating unprefixed version of RequestFullscreen to ensure
   // that the fullscreen event listener is informed once this completes.
@@ -650,7 +653,13 @@
   ScopedAllowFullscreen scope(ScopedAllowFullscreen::kXrOverlay);
 
   Fullscreen::RequestFullscreen(*element, options,
-                                FullscreenRequestType::kUnprefixed);
+                                FullscreenRequestType::kUnprefixed |
+                                    FullscreenRequestType::kForXrOverlay);
+
+  if (!wait_for_fullscreen_change) {
+    // Element was already fullscreen, proceed with session creation.
+    xr_->OnRequestSessionReturned(query_, std::move(result_));
+  }
 }
 
 void XRSystem::OverlayFullscreenEventManager::Trace(Visitor* visitor) const {
@@ -801,7 +810,6 @@
     if (doc->IsXrOverlay()) {
       Element* fullscreen_element = Fullscreen::FullscreenElementFrom(*doc);
       DVLOG(3) << __func__ << ": fullscreen_element=" << fullscreen_element;
-      doc->SetIsXrOverlay(false, fullscreen_element);
 
       // Restore the FrameView background color that was changed in
       // OnRequestSessionReturned. The layout view can be null on navigation.
diff --git a/third_party/blink/renderer/platform/fonts/font_cache.cc b/third_party/blink/renderer/platform/fonts/font_cache.cc
index d58a64c..1cceea6 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache.cc
+++ b/third_party/blink/renderer/platform/fonts/font_cache.cc
@@ -120,7 +120,7 @@
 FontPlatformData* FontCache::SystemFontPlatformData(
     const FontDescription& font_description) {
   const AtomicString& family = FontCache::SystemFontFamily();
-#if defined(OS_LINUX) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA)
   if (family.IsEmpty() || family == font_family_names::kSystemUi)
     return nullptr;
 #else
diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_party/blink/renderer/platform/fonts/font_cache.h
index 039c897..547fd79 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache.h
+++ b/third_party/blink/renderer/platform/fonts/font_cache.h
@@ -58,7 +58,7 @@
 #include "third_party/skia/include/core/SkFontMgr.h"
 #include "third_party/skia/include/core/SkRefCnt.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "ui/gfx/font_fallback_linux.h"
 #endif
 
@@ -249,11 +249,11 @@
       const FontDescription&);
 #endif  // defined(OS_ANDROID)
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   static bool GetFontForCharacter(UChar32,
                                   const char* preferred_locale,
                                   gfx::FallbackFontData*);
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
   scoped_refptr<SimpleFontData> FontDataFromFontPlatformData(
       const FontPlatformData*,
@@ -334,12 +334,12 @@
                                    const FontFaceCreationParams&,
                                    std::string& name);
 
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
   static AtomicString GetFamilyNameForCharacter(SkFontMgr*,
                                                 UChar32,
                                                 const FontDescription&,
                                                 FontFallbackPriority);
-#endif  // defined(OS_ANDROID) || defined(OS_LINUX)
+#endif  // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 
   scoped_refptr<SimpleFontData> FallbackOnStandardFontStyle(
       const FontDescription&,
diff --git a/third_party/blink/renderer/platform/fonts/font_cache_test.cc b/third_party/blink/renderer/platform/fonts/font_cache_test.cc
index 1d235ce..8e1fed7 100644
--- a/third_party/blink/renderer/platform/fonts/font_cache_test.cc
+++ b/third_party/blink/renderer/platform/fonts/font_cache_test.cc
@@ -47,7 +47,7 @@
   }
 }
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 TEST(FontCache, FallbackForEmojis) {
   FontCache* font_cache = FontCache::GetFontCache();
   ASSERT_TRUE(font_cache);
@@ -96,7 +96,7 @@
     }
   }
 }
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 TEST(FontCache, firstAvailableOrFirst) {
   EXPECT_TRUE(FontCache::FirstAvailableOrFirst("").IsEmpty());
diff --git a/third_party/blink/renderer/platform/fonts/font_metrics.cc b/third_party/blink/renderer/platform/fonts/font_metrics.cc
index 8b9ce47..52ba187 100644
--- a/third_party/blink/renderer/platform/fonts/font_metrics.cc
+++ b/third_party/blink/renderer/platform/fonts/font_metrics.cc
@@ -38,7 +38,8 @@
 
 namespace blink {
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_FUCHSIA)
 // This is the largest VDMX table which we'll try to load and parse.
 static const size_t kMaxVDMXTableSize = 1024 * 1024;  // 1 MB
 #endif
@@ -67,7 +68,8 @@
   int vdmx_ascent = 0, vdmx_descent = 0;
   bool is_vdmx_valid = false;
 
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_FUCHSIA)
   // Manually digging up VDMX metrics is only applicable when bytecode hinting
   // using FreeType.  With DirectWrite or CoreText, no bytecode hinting is ever
   // done.  This code should be pushed into FreeType (hinted font metrics).
@@ -114,7 +116,8 @@
       visual_overflow_inflation_for_ascent = 1;
     if (descent < metrics.fDescent) {
       visual_overflow_inflation_for_descent = 1;
-#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID) || \
+    defined(OS_FUCHSIA)
       // When subpixel positioning is enabled, if the descent is rounded down,
       // the descent part of the glyph may be truncated when displayed in a
       // 'overflow: hidden' container.  To avoid that, borrow 1 unit from the
diff --git a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc
index 94cc7b63..6fce7e2 100644
--- a/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc
+++ b/third_party/blink/renderer/platform/fonts/font_unique_name_lookup.cc
@@ -8,7 +8,7 @@
 #if defined(OS_ANDROID)
 #include "third_party/blink/public/mojom/font_unique_name_lookup/font_unique_name_lookup.mojom-blink.h"
 #include "third_party/blink/renderer/platform/fonts/android/font_unique_name_lookup_android.h"
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "third_party/blink/renderer/platform/fonts/linux/font_unique_name_lookup_linux.h"
 #elif defined(OS_WIN)
 #include "third_party/blink/renderer/platform/fonts/win/font_unique_name_lookup_win.h"
@@ -23,7 +23,7 @@
 FontUniqueNameLookup::GetPlatformUniqueNameLookup() {
 #if defined(OS_ANDROID)
   return std::make_unique<FontUniqueNameLookupAndroid>();
-#elif defined(OS_LINUX)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS)
   return std::make_unique<FontUniqueNameLookupLinux>();
 #elif defined(OS_WIN)
   return std::make_unique<FontUniqueNameLookupWin>();
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
index f220ea8..fa6a04d4 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
@@ -667,7 +667,7 @@
   HarfBuzzShaper shaper(string);
   scoped_refptr<ShapeResult> result = ShapeWithParameter(&shaper);
   EXPECT_EQ(length, result->NumCharacters());
-#if defined(OS_LINUX) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA)
   // Linux and Fuchsia use Lohit Devanagari. When using that font the shaper
   // returns 32767 glyphs instead of 32769.
   // TODO(crbug.com/933551): Add Noto Sans Devanagari to
diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
index 00a9c92..f8d43f6c 100644
--- a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
+++ b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
@@ -61,7 +61,7 @@
   return AtomicString::FromUTF8(str.c_str(), str.size());
 }
 
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 // This function is called on android or when we are emulating android fonts on
 // linux and the embedder has overriden the default fontManager with
 // WebFontRendering::setSkiaFontMgr.
@@ -84,7 +84,7 @@
   typeface->getFamilyName(&skia_family_name);
   return ToAtomicString(skia_family_name);
 }
-#endif  // defined(OS_ANDROID) || defined(OS_LINUX)
+#endif  // defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 void FontCache::PlatformInit() {}
 
@@ -229,7 +229,7 @@
   }
 #endif
 
-#if defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN)
   // On linux if the fontManager has been overridden then we should be calling
   // the embedder provided font Manager rather than calling
   // SkTypeface::CreateFromName which may redirect the call to the default font
@@ -263,7 +263,7 @@
   std::string name;
 
   sk_sp<SkTypeface> typeface;
-#if defined(OS_ANDROID) || defined(OS_LINUX)
+#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_CHROMEOS)
   if (alternate_name == AlternateFontName::kLocalUniqueFace &&
       RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) {
     typeface = CreateTypefaceFromUniqueName(creation_params);
diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
index 811e795..bcb0f64 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
@@ -502,6 +502,19 @@
 
   compositor_node.frame_element_id = transform_node.GetFrameElementId();
 
+  // Attach the index of the nearest parent node associated with a frame.
+  int parent_frame_id = kInvalidNodeId;
+  if (const auto* parent = transform_node.UnaliasedParent()) {
+    if (parent->IsFramePaintOffsetTranslation()) {
+      parent_frame_id = parent_id;
+    } else {
+      const auto* parent_compositor_node = GetTransformTree().Node(parent_id);
+      DCHECK(parent_compositor_node);
+      parent_frame_id = parent_compositor_node->parent_frame_id;
+    }
+  }
+  compositor_node.parent_frame_id = parent_frame_id;
+
   transform_node.SetCcNodeId(new_sequence_number_, id);
   GetTransformTree().set_needs_update(true);
 
diff --git a/third_party/blink/renderer/platform/graphics/compositing_reasons.h b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
index fe26bbc9..31aaeab 100644
--- a/third_party/blink/renderer/platform/graphics/compositing_reasons.h
+++ b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
@@ -133,10 +133,6 @@
     kComboAllDirectReasons = kComboAllDirectStyleDeterminedReasons |
                              kComboAllDirectNonStyleDeterminedReasons,
 
-    kComboTransformedRasterizationDisallowedReasons =
-        kComboAllDirectReasons & ~kScrollDependentPosition &
-        ~kTrivial3DTransform & ~kBackfaceVisibilityHidden,
-
     kComboAllCompositedScrollingDeterminedReasons =
         kScrollDependentPosition | kOverflowScrolling,
 
diff --git a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
index 61f4309..11780d4 100644
--- a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
+++ b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
@@ -165,17 +165,25 @@
       bool in_subtree_of_page_scale : 1;
       bool animation_is_axis_aligned : 1;
       bool delegates_to_parent_for_backface : 1;
-    } flags = {false, false, true, false, false};
+      // Set if a frame is rooted at this node.
+      bool is_frame_paint_offset_translation : 1;
+    } flags = {false, false, true, false, false, false};
     BackfaceVisibility backface_visibility = BackfaceVisibility::kInherited;
     unsigned rendering_context_id = 0;
     CompositingReasons direct_compositing_reasons = CompositingReason::kNone;
     CompositorElementId compositor_element_id;
     std::unique_ptr<CompositorStickyConstraint> sticky_constraint;
+    // If a frame is rooted at this node, this represents the element ID of the
+    // containing document.
     CompositorElementId frame_element_id;
 
     PaintPropertyChangeType ComputeChange(
         const State& other,
         const AnimationState& animation_state) const {
+      // Whether or not a node is considered a frame root should be invariant.
+      DCHECK_EQ(flags.is_frame_paint_offset_translation,
+                other.flags.is_frame_paint_offset_translation);
+
       if (flags.flattens_inherited_transform !=
               other.flags.flattens_inherited_transform ||
           flags.affected_by_outer_viewport_bounds_delta !=
@@ -423,6 +431,10 @@
     return state_.frame_element_id;
   }
 
+  bool IsFramePaintOffsetTranslation() const {
+    return state_.flags.is_frame_paint_offset_translation;
+  }
+
   bool DelegatesToParentForBackface() const {
     return state_.flags.delegates_to_parent_for_backface;
   }
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h b/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
index 0c4a707..d8631c9 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h
@@ -88,10 +88,7 @@
   // resource_loader_options.cc because they require the full definition of
   // URLLoaderFactory for |url_loader_factory| data member, and we'd like
   // to avoid to include huge url_loader_factory.mojom-blink.h.
-  // TODO(crbug.com/896041): Make |world| non-optional by plumbing it for all
-  // requests.
-  explicit ResourceLoaderOptions(
-      scoped_refptr<const DOMWrapperWorld> world = nullptr);
+  explicit ResourceLoaderOptions(scoped_refptr<const DOMWrapperWorld> world);
   ResourceLoaderOptions(const ResourceLoaderOptions& other);
   ResourceLoaderOptions& operator=(const ResourceLoaderOptions& other);
   ~ResourceLoaderOptions();
diff --git a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py
index 9773d0a3..c9cf7f6 100644
--- a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py
+++ b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor.py
@@ -240,7 +240,7 @@
         if self._is_empty():
             return None
 
-        notify = self._get_content()['wpt']['notify']
+        notify = self._get_content().get('wpt', {}).get('notify')
         # The value of `notify` is one of ['TRINARY_UNSPECIFIED', 'YES', 'NO'].
         # Assume that users opt out by default; return True only when notify is 'YES'.
         return notify == 'YES'
diff --git a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py
index 85371dfc..1d94129 100644
--- a/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py
+++ b/third_party/blink/tools/blinkpy/w3c/directory_owners_extractor_unittest.py
@@ -284,14 +284,14 @@
 
 
 class WPTDirMetadataTest(unittest.TestCase):
-    def test_WPTDirMetadata_empty(self):
+    def test_WPTDirMetadata_empty_content(self):
         empty_data = '{"dirs":{"a/b":{}}}'
         wpt_dir_metadata = WPTDirMetadata(json.loads(empty_data), 'a/b')
         self.assertEqual(wpt_dir_metadata.team_email, None)
         self.assertEqual(wpt_dir_metadata.should_notify, None)
         self.assertEqual(wpt_dir_metadata.component, None)
 
-    def test_WPTDirMetadata_non_empty(self):
+    def test_WPTDirMetadata_all_fields(self):
         data = (
             '{"dirs":{"a/b":{"monorail":'
             '{"component":"foo"},"teamEmail":"bar","wpt":{"notify":"YES"}}}}')
@@ -299,3 +299,11 @@
         self.assertEqual(wpt_dir_metadata.team_email, 'bar')
         self.assertEqual(wpt_dir_metadata.should_notify, True)
         self.assertEqual(wpt_dir_metadata.component, 'foo')
+
+    def test_WPTDirMetadata_empty_wpt(self):
+        data = ('{"dirs":{"a/b":{"monorail":'
+                '{"component":"foo"},"teamEmail":"bar"}}}')
+        wpt_dir_metadata = WPTDirMetadata(json.loads(data), 'a/b')
+        self.assertEqual(wpt_dir_metadata.team_email, 'bar')
+        self.assertEqual(wpt_dir_metadata.should_notify, False)
+        self.assertEqual(wpt_dir_metadata.component, 'foo')
diff --git a/third_party/blink/tools/blinkpy/web_tests/port/server_process.py b/third_party/blink/tools/blinkpy/web_tests/port/server_process.py
index 935df4e5..ffe637f 100644
--- a/third_party/blink/tools/blinkpy/web_tests/port/server_process.py
+++ b/third_party/blink/tools/blinkpy/web_tests/port/server_process.py
@@ -54,7 +54,7 @@
 
 _log = logging.getLogger(__name__)
 
-_trailing_spaces_re = re.compile('(.*[^ ])?( +)$')
+_trailing_spaces_re = re.compile('(.*?)( +)$')
 
 
 def quote_data(data):
diff --git a/third_party/blink/web_tests/WebGPUExpectations b/third_party/blink/web_tests/WebGPUExpectations
index a2f21c95..ba3c86d 100644
--- a/third_party/blink/web_tests/WebGPUExpectations
+++ b/third_party/blink/web_tests/WebGPUExpectations
@@ -38,10 +38,8 @@
 # Platform-independent failures
 #
 
-# There's nothing wrong with this test; it just gets unlucky and runs first -
-# and the first test is always slow to start up as it waits on too much browser
-# startup. Which test flakes will change when the CTS is rolled.
-crbug.com/953991 wpt_internal/webgpu/cts.html?q=webgpu:api,validation,createBindGroup:buffer_offset_and_size_for_bind_groups_match:offset=0;size=1280;* [ Failure ]
+# This test runs first, and is often slow due to some browser startup not being complete.
+crbug.com/953991 wpt_internal/webgpu/000_run_me_first.html [ Slow ]
 
 # Many bugs are contained here.
 # - One of them is crbug.com/dawn/424
diff --git a/third_party/blink/web_tests/animations/animationworklet/animator-registration.html b/third_party/blink/web_tests/animations/animationworklet/animator-registration.html
index d766cd6..bfafd033 100644
--- a/third_party/blink/web_tests/animations/animationworklet/animator-registration.html
+++ b/third_party/blink/web_tests/animations/animationworklet/animator-registration.html
@@ -19,7 +19,7 @@
 </script>
 
 <script id="no_class" type="text/worklet">
-const expectedError = "The callback provided as parameter 2 is not a function";
+const expectedError = "TypeError: Failed to execute 'registerAnimator' on 'AnimationWorkletGlobalScope': parameter 2 is not of type 'Function'."
 let receivedError = undefined;
 try {
   registerAnimator("no_class", "");
diff --git a/third_party/blink/web_tests/bindings/idl-dictionary-unittest-expected.txt b/third_party/blink/web_tests/bindings/idl-dictionary-unittest-expected.txt
index 15ce8035..72b47a1 100644
--- a/third_party/blink/web_tests/bindings/idl-dictionary-unittest-expected.txt
+++ b/third_party/blink/web_tests/bindings/idl-dictionary-unittest-expected.txt
@@ -152,8 +152,8 @@
 
 
 Test for passing invalid dictionary values
-PASS dictionaryTest.set(42) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': parameter 1 ('testingDictionary') is not an object..
-PASS dictionaryTest.set('string') threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': parameter 1 ('testingDictionary') is not an object..
+PASS dictionaryTest.set(42) threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': cannot convert to dictionary..
+PASS dictionaryTest.set('string') threw exception TypeError: Failed to execute 'set' on 'DictionaryTest': cannot convert to dictionary..
 
 
 Test for [Clamp] and [EnforceRange] member
diff --git a/third_party/blink/web_tests/compositing/composited-text-subpixel-translation-expected.html b/third_party/blink/web_tests/compositing/composited-text-subpixel-translation-expected.html
new file mode 100644
index 0000000..2a9b1be
--- /dev/null
+++ b/third_party/blink/web_tests/compositing/composited-text-subpixel-translation-expected.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+div {
+  background: white;
+  margin: 10px;
+  padding: 2px;
+  transform: translate(0.5px, 0.5px);
+}
+</style>
+All of the following texts should not be blurry.
+<div>SHARP TEXT</div>
+<div>SHARP TEXT</div>
+<div>SHARP TEXT</div>
diff --git a/third_party/blink/web_tests/compositing/composited-text-subpixel-translation.html b/third_party/blink/web_tests/compositing/composited-text-subpixel-translation.html
new file mode 100644
index 0000000..42460c86
--- /dev/null
+++ b/third_party/blink/web_tests/compositing/composited-text-subpixel-translation.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+div {
+  background: white;
+  margin: 10px;
+  padding: 2px;
+  transform: translate(0.5px, 0.5px);
+}
+</style>
+All of the following texts should not be blurry.
+<div style="will-change: transform">SHARP TEXT</div>
+<div style="backface-visibility: hidden">SHARP TEXT</div>
+<div style="transform: translate3d(0.5px, 0.5px, 0)">SHARP TEXT</div>
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
index 0fca9234..6ed2308d 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -153523,40 +153523,6 @@
      }
     }
    },
-   "webgpu": {
-    "webgpu": {
-     "web-platform": {
-      "reftests": {
-       "canvas_clear.html": [
-        "86a3da939dbe94efbeec04e5d366a40736ca4560",
-        [
-         null,
-         [
-          [
-           "/webgpu/webgpu/web-platform/reftests/ref/canvas_clear-ref.html",
-           "=="
-          ]
-         ],
-         {}
-        ]
-       ],
-       "canvas_complex_bgra8unorm.html": [
-        "1310543648e4fd640b0deb227000731af7b88b00",
-        [
-         null,
-         [
-          [
-           "/webgpu/webgpu/web-platform/reftests/ref/canvas_complex-ref.html",
-           "=="
-          ]
-         ],
-         {}
-        ]
-       ]
-      }
-     }
-    }
-   },
    "webvtt": {
     "rendering": {
      "cues-with-video": {
@@ -158197,7 +158163,7 @@
     },
     "resources": {
      "bluetooth-fake-devices.js": [
-      "fdb08379d05179b502ce4d769dee9138aa9730d7",
+      "6d4b30e59b7da85dcca23ad1f03380f13ae4b358",
       []
      ],
      "bluetooth-scanning-helpers.js": [
@@ -207562,10 +207528,6 @@
       "46ad58d83bf6e98913ca4c564b7acb8f19fa0093",
       []
      ],
-     "popup-redirect-same-origin-allow-popups.https-expected.txt": [
-      "2deb428d58005584c6b12ff22b8d3f4529aa9f48",
-      []
-     ],
      "popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [
       "d83ed86fb9b5d159b9f380424887402edc96cb75",
       []
@@ -207608,22 +207570,6 @@
        []
       ],
       "access-reporting": {
-       "openee-accessed_openee-coop.https-expected.txt": [
-        "169e639391954ef02c5cb9dbc2a49d09518a4cbc",
-        []
-       ],
-       "openee-accessed_opener-coop.https-expected.txt": [
-        "340905aafa3911c1ab72379647d8a80bb533508a",
-        []
-       ],
-       "opener-accessed_openee-coop.https-expected.txt": [
-        "debf7b2aaa892cb559c199ff7dd56d838d36416d",
-        []
-       ],
-       "opener-accessed_opener-coop.https-expected.txt": [
-        "d7da078904c86fb7656af6001c27c5871698b619",
-        []
-       ],
        "property-indexed-getter.https.html.headers": [
         "64f4d5fedffd208b7174c7d8e0bce4e99ce1ac0f",
         []
@@ -207685,15 +207631,11 @@
        "reporting-popup-unsafe-none-report-to.https.html.sub.headers": [
         "a0d12c549fac7d4e7b06d2741085b4ef712bae13",
         []
-       ],
-       "reporting-redirect-with-same-origin-allow-popups.https-expected.txt": [
-        "ac2386ee2222b8f505568f0e057896b15048ea2b",
-        []
        ]
       },
       "resources": {
        "dispatcher.js": [
-        "13c01add30fcc14571537ae04912c6c4b11a61c7",
+        "44571722770a87fa7491b6be93ec59350c232f5e",
         []
        ],
        "dispatcher.py": [
@@ -207709,11 +207651,11 @@
         []
        ],
        "reporting-common.js": [
-        "ea71f6ce863db9f1695348d8ff4434dc28d42c85",
+        "ece74ab269d057b74f44ba3de453627bd411b229",
         []
        ],
        "try-access.js": [
-        "eaf529e05647d7820b30ce8fce425ee884bc1f7f",
+        "a06cb07904f9401332324d0f1cba5cc9a9eea29e",
         []
        ]
       }
@@ -215627,6 +215569,82 @@
          "373a5324455e1208bd97afd315775b5a488f0a8c",
          []
         ],
+        "evaluation-order-1-expected.txt": [
+         "cf2aed88abc2d44bbff305c725f448da348cde70",
+         []
+        ],
+        "evaluation-order-1-nothrow-worker-setup.mjs": [
+         "24cccd486be5d6ff0ff7580069104436c7a9b8c7",
+         []
+        ],
+        "evaluation-order-1-nothrow-worker.mjs": [
+         "4d3cf31a79c9f1f0c94250fc43168640b7498ab5",
+         []
+        ],
+        "evaluation-order-1-nothrow.mjs": [
+         "c1d35beb3e601c7196d8b46ed964f6fffd1aa2c1",
+         []
+        ],
+        "evaluation-order-1-worker-expected.txt": [
+         "7ce88a522349e4f8f2c7217e529b3af21507a90f",
+         []
+        ],
+        "evaluation-order-1-worker-setup.mjs": [
+         "3971461d2ee4ba7d2f3c7561a925aa495b2eb49a",
+         []
+        ],
+        "evaluation-order-1-worker.mjs": [
+         "b583bf1ca627596b7e0cc1d20792625e18dda986",
+         []
+        ],
+        "evaluation-order-1.mjs": [
+         "7a43726635158e650d6b3977ff96ca27fcf8e184",
+         []
+        ],
+        "evaluation-order-2-import-expected.txt": [
+         "7433b03111ecc368e142205e44e474d072ef545c",
+         []
+        ],
+        "evaluation-order-2-import-worker-setup.mjs": [
+         "0cfdca65f08e96271d55618e07d52b2d2a8b4c27",
+         []
+        ],
+        "evaluation-order-2-import-worker.mjs": [
+         "3d9c9bb74973244909857aa73804bf1e18faf112",
+         []
+        ],
+        "evaluation-order-2.1.mjs": [
+         "d6c2afa2f72283a68862723c7d1e8acabe9c2e93",
+         []
+        ],
+        "evaluation-order-2.2.mjs": [
+         "5c67c4f9a2558d0aaebd0d5016fcadb88af01a4e",
+         []
+        ],
+        "evaluation-order-3-dynamic-expected.txt": [
+         "08a5617c0eca91eebe857d337da04bc287a81536",
+         []
+        ],
+        "evaluation-order-3-dynamic-worker-setup.mjs": [
+         "f202cff96a7926490a95717e76bb7461484a89e9",
+         []
+        ],
+        "evaluation-order-3-dynamic-worker.mjs": [
+         "79dabab10b39aa0fa970c64861760b9f9d2790f5",
+         []
+        ],
+        "evaluation-order-3.1.mjs": [
+         "ef320632af75245a07c021dc228b56dd5128245c",
+         []
+        ],
+        "evaluation-order-3.2.mjs": [
+         "8ccb58120664d2bb8e5cd76d22c10e8b431166ad",
+         []
+        ],
+        "evaluation-order-setup.mjs": [
+         "d3f22e9ee0f0bb00f1404c44469f8fd2c57b1bf3",
+         []
+        ],
         "execorder-dynamicordered2.js": [
          "d7115a2ac62c7582e4f79e70bdd2e457a0c031ef",
          []
@@ -218842,7 +218860,7 @@
      []
     ],
     "streams.idl": [
-     "3d7484a20e0553daba3cc336ba1b61c233e35e68",
+     "f96c196385ce76d442a6d42838f021ff56dce7f8",
      []
     ],
     "text-detection-api.tentative.idl": [
@@ -222532,6 +222550,10 @@
       "6ba8dc5839923c0f90f73495f89faeb4c2342782",
       []
      ],
+     "portal-close-window.html": [
+      "6e163f4e86c97f66ea8f3298e36ed62d1ceb4790",
+      []
+     ],
      "portal-embed-and-activate.html": [
       "04f15b7fda43d873b52f63a80565c2ae4a9a7f50",
       []
@@ -225262,11 +225284,11 @@
      []
     ],
     "no-force-load-at-top-target.html": [
-     "57e5f6d32ba80472961af1c55be073a64e18e2fb",
+     "d2641eca72e6c10a94d09d49012a0900f0cf593a",
      []
     ],
     "no-force-load-at-top-target.html.headers": [
-     "3a2c029fd6b5e013cde96bef1dcec7d7f4e4fdab",
+     "e500009f91c0201a2a397a4267a6764cdb1eae8a",
      []
     ],
     "scroll-to-text-fragment-target.html": [
@@ -228548,19 +228570,19 @@
      []
     ],
     "idlharness.any-expected.txt": [
-     "4f402c6e85694585696fbae6faafa5271c68f533",
+     "f9cb7f3b13c11b51479bc04c229ec941450b3722",
      []
     ],
     "idlharness.any.serviceworker-expected.txt": [
-     "4f402c6e85694585696fbae6faafa5271c68f533",
+     "f9cb7f3b13c11b51479bc04c229ec941450b3722",
      []
     ],
     "idlharness.any.sharedworker-expected.txt": [
-     "4f402c6e85694585696fbae6faafa5271c68f533",
+     "f9cb7f3b13c11b51479bc04c229ec941450b3722",
      []
     ],
     "idlharness.any.worker-expected.txt": [
-     "4f402c6e85694585696fbae6faafa5271c68f533",
+     "f9cb7f3b13c11b51479bc04c229ec941450b3722",
      []
     ],
     "piping": {
@@ -239230,7 +239252,7 @@
      []
     ],
     "META.yml": [
-     "befe8a68dd5d060da9480f9a967fd11060281967",
+     "163130faea362a087959cee4cfbaba729893e225",
      []
     ],
     "OWNERS": [
@@ -239238,353 +239260,9 @@
      []
     ],
     "README.md": [
-     "ef0dbfee60ce3e787131ca40e5be64952e578e03",
+     "24a68b3ad3e89ea6617f02d90c890c1d04cf717e",
      []
-    ],
-    "common": {
-     "framework": {
-      "file_loader.js": [
-       "0f25ca465d3df9231ad1faecd4373305ee423847",
-       []
-      ],
-      "fixture.js": [
-       "ef23f06596bd7cc244484102008db8ca9485c2c8",
-       []
-      ],
-      "gpu": {
-       "device_pool.js": [
-        "848e5802817b43e26c8e25ecfec48c0ea9fe8816",
-        []
-       ],
-       "implementation.js": [
-        "670872b5d6e32ebf3815935fdd9fec605056a30c",
-        []
-       ]
-      },
-      "logging": {
-       "log_message.js": [
-        "11f352f892e76eb0140f0fe36249f41e103e1e05",
-        []
-       ],
-       "logger.js": [
-        "8d66c554c5ad8b48df127d914883fc8f4578bc38",
-        []
-       ],
-       "result.js": [
-        "813e781ba28ce0471d17d439c0fc20ed400f68ac",
-        []
-       ],
-       "test_case_recorder.js": [
-        "d16af0f2b861421cb77050648440ae4e4fbd3d39",
-        []
-       ]
-      },
-      "params_builder.js": [
-       "10dd239df93c6ce1a9ae8559586c6c304b3243e2",
-       []
-      ],
-      "params_utils.js": [
-       "161feb5d4306ea30ae56c7ba6f76ac81f90a25ba",
-       []
-      ],
-      "query": {
-       "compare.js": [
-        "52396f352e64e13e30d9823f04e55525be38624e",
-        []
-       ],
-       "encode_selectively.js": [
-        "e153cf8ccd89b8e6bfb0346581e0139eed865565",
-        []
-       ],
-       "parseQuery.js": [
-        "758227cc520f486f4a0662d0935eaa86a1aa937b",
-        []
-       ],
-       "query.js": [
-        "8b352241f8b95b1caa60ac331e7f4c47b5236c64",
-        []
-       ],
-       "separators.js": [
-        "e378a9d1d290de77dfc46f00e8afa644ce13cb18",
-        []
-       ],
-       "stringify_params.js": [
-        "b5503ffb54ead8677dfb5189aecd9e46fcf30cad",
-        []
-       ],
-       "validQueryPart.js": [
-        "3c051afc94b46f2500b13eafceac6a8dc0171c3e",
-        []
-       ]
-      },
-      "test_group.js": [
-       "5ced9cd3d372ad9b5d6e1ad3f240554e2bab490b",
-       []
-      ],
-      "test_suite_listing.js": [
-       "99c900217c1463e09faefd01e0db96498db7ca92",
-       []
-      ],
-      "tree.js": [
-       "69dfac21a635c278dae9daab4c8adb81aec550d9",
-       []
-      ],
-      "util": {
-       "async_mutex.js": [
-        "cb900605bcfe77bae785c207419787e317bf1d73",
-        []
-       ],
-       "collect_garbage.js": [
-        "d4b5bb19b233f4306241973e5d7935af715f7141",
-        []
-       ],
-       "stack.js": [
-        "99653f888066181e5fbac7a7a4331f6cb4fe3ecb",
-        []
-       ],
-       "timeout.js": [
-        "e565a518efc045cfc90e7dd7b23dc65604c6b805",
-        []
-       ],
-       "util.js": [
-        "b64379982a60f7b4551b7611feb7fdcf288d560e",
-        []
-       ]
-      },
-      "version.js": [
-       "4b233137825b86fb1d70896601d6e63a4f42865d",
-       []
-      ]
-     },
-     "runtime": {
-      "helper": {
-       "options.js": [
-        "1a90beadf1ee459911b2b549fc9359b44fe37bbd",
-        []
-       ],
-       "test_worker-worker.js": [
-        "a02c98c2bbfbc27ae109fed082702f5367b2afad",
-        []
-       ],
-       "test_worker.js": [
-        "7e8b9a47c077261e8dcacb21487989edbd146e2c",
-        []
-       ]
-      },
-      "wpt.js": [
-       "dc38b77b1d5ad3517f0463285f35881cf28aee08",
-       []
-      ]
-     }
-    },
-    "webgpu": {
-     "api": {
-      "operation": {
-       "buffers": {
-        "create_mapped.spec.js": [
-         "1c3b1254d503727d9efd189ec6b9eba5bac3a79b",
-         []
-        ],
-        "map.spec.js": [
-         "e8c86ec1b8a4539742d10309967b1d0578b38cee",
-         []
-        ],
-        "map_detach.spec.js": [
-         "8ae0be0b197ac1ae1a6bac48dacd00ecc8ec2a9e",
-         []
-        ],
-        "map_oom.spec.js": [
-         "8494dc7ddc769f166a6422531d34565cd4810a16",
-         []
-        ],
-        "mapping_test.js": [
-         "b7349059035d46dffc1156314c7dfe7ec7526d54",
-         []
-        ]
-       },
-       "command_buffer": {
-        "basic.spec.js": [
-         "547a08683f7318d5aceb2e26096166c1c994c579",
-         []
-        ],
-        "copies.spec.js": [
-         "cc2ea6deae161d2025119beda183dfb767b63795",
-         []
-        ],
-        "render": {
-         "basic.spec.js": [
-          "815eb5b70b0092c096fe385ad94729f62ef44761",
-          []
-         ]
-        }
-       },
-       "fences.spec.js": [
-        "f9f079b6241fa99a6895250329b18fb88d895ac3",
-        []
-       ],
-       "resource_init": {
-        "copied_texture_clear.spec.js": [
-         "f5b8b697d74e75ecd2e5fb149f29d69e8c6c3610",
-         []
-        ],
-        "texture_zero_init_test.js": [
-         "8dda949f85954069826ee50aa5b58933b5fc8e3f",
-         []
-        ]
-       }
-      },
-      "validation": {
-       "createBindGroup.spec.js": [
-        "5deed893d5e4ef039d25479b63c2a35892e81d17",
-        []
-       ],
-       "createBindGroupLayout.spec.js": [
-        "2fec032c178f8be0b92ef45278d39886ad9cfc8d",
-        []
-       ],
-       "createPipelineLayout.spec.js": [
-        "4e293fa725dfe18f789f4fb7afaf0fad4a0cd14c",
-        []
-       ],
-       "createTexture.spec.js": [
-        "2ef8d19523311d64519af8ecff18d27ac9695749",
-        []
-       ],
-       "createView.spec.js": [
-        "3ad1ca97d7d069b6fd6fd0fb216051a0c6dbf742",
-        []
-       ],
-       "error_scope.spec.js": [
-        "3edbec2dc417fc4cb95ab67baefc1d0f1a798154",
-        []
-       ],
-       "fences.spec.js": [
-        "2ab0691e3ce6cadb532a94a43d568b8a111a8430",
-        []
-       ],
-       "queue_submit.spec.js": [
-        "24e386b9d22c2bbea0fca8e8b5c94c770e8ed7d5",
-        []
-       ],
-       "render_pass_descriptor.spec.js": [
-        "3c1b111fea4a79aab8cd8defbc61152e7e5302ea",
-        []
-       ],
-       "setBindGroup.spec.js": [
-        "95786a8f78d3a6fe230d6a08c3cfb83c93a97666",
-        []
-       ],
-       "setBlendColor.spec.js": [
-        "469641df04341795efdad946ea65eb517a51265c",
-        []
-       ],
-       "setScissorRect.spec.js": [
-        "8381865a6938c4a32d81744fb1bbaaf41ae309fb",
-        []
-       ],
-       "setStencilReference.spec.js": [
-        "f205239d86142ea08880f226f9d9ae052a385aa1",
-        []
-       ],
-       "setViewport.spec.js": [
-        "f1168c11086fd4fa7114c36b9895bab49b66a410",
-        []
-       ],
-       "validation_test.js": [
-        "17eb97bcc63daafbda34a661bafd0da688d7bb8b",
-        []
-       ]
-      }
-     },
-     "capability_info.js": [
-      "47d508ac3e3c5abfe9d2c4da3ab1ee412dec8030",
-      []
-     ],
-     "examples.spec.js": [
-      "28b9ae47f2c25183ba68b1bcb7303a033541213b",
-      []
-     ],
-     "gpu_test.js": [
-      "e740af1113b88f548768c33a0d378490d3d8320b",
-      []
-     ],
-     "idl": {
-      "constants": {
-       "flags.spec.js": [
-        "5a6d7868aa531677f8660768ce87a73564727314",
-        []
-       ]
-      },
-      "idl_test.js": [
-       "0665ad208cd8453352a1c4a030614b40b3783de7",
-       []
-      ]
-     },
-     "listing.js": [
-      "a8b67e72547db017720f5e7fb4e88f024eab2bf4",
-      []
-     ],
-     "util": {
-      "conversion.js": [
-       "73c04fe56badcff5aee3bf665465b24c81d4f3bf",
-       []
-      ],
-      "math.js": [
-       "19720d631c55590bfbfc223e9c6409eded4d6232",
-       []
-      ],
-      "texture": {
-       "layout.js": [
-        "425aa2020d75eace60d793d9148cc9cd531af475",
-        []
-       ],
-       "subresource.js": [
-        "04a8e7221a8ad8a9f76369d4e3f2ffa4fe21a056",
-        []
-       ],
-       "texelData.js": [
-        "2ea7275e710a5e47a59480ca2a56c1026172e6bf",
-        []
-       ]
-      }
-     },
-     "web-platform": {
-      "canvas": {
-       "context_creation.spec.js": [
-        "427b15fced447160db36ca3d6f829211f5080206",
-        []
-       ]
-      },
-      "copyImageBitmapToTexture.spec.js": [
-       "efdc21ded93736439f8112c35e9a39600b07739c",
-       []
-      ],
-      "reftests": {
-       "canvas_clear.js": [
-        "52ffaedad84c7552fd13cbac89cd800c09a012c0",
-        []
-       ],
-       "canvas_complex.js": [
-        "1e63a0ab20233e9db7e9c628493af178edd386c9",
-        []
-       ],
-       "gpu_ref_test.js": [
-        "f45f232557cdd05406317b3a521d06e3e1bbd960",
-        []
-       ],
-       "ref": {
-        "canvas_clear-ref.html": [
-         "2e0781186273ac49d6c70b5e5a9c68103aa5f173",
-         []
-        ],
-        "canvas_complex-ref.html": [
-         "3d5b3b3376d23cfdcda57f0c53fc3192e8a77bb6",
-         []
-        ]
-       }
-      }
-     }
-    }
+    ]
    },
    "webhid": {
     "idlharness.https.window-expected.txt": [
@@ -318892,6 +318570,13 @@
         {}
        ]
       ],
+      "sandbox-disallow-popups.html": [
+       "8e4b34eb8b950cdf1cd9ab45ef0d1325961aff01",
+       [
+        null,
+        {}
+       ]
+      ],
       "sandbox-disallow-same-origin.html": [
        "0dae0137ac97de7fa2125a7081effd09e730ddc7",
        [
@@ -337550,16 +337235,7 @@
      "reporting": {
       "access-reporting": {
        "openee-accessed_openee-coop-ro.https.html": [
-        "24943b03f39106596bef73612d7b286f02531ec2",
-        [
-         null,
-         {
-          "timeout": "long"
-         }
-        ]
-       ],
-       "openee-accessed_openee-coop.https.html": [
-        "07ba21a0c742bab4606dd27a6d0fd5b492a7b449",
+        "1deedbde77b72fd732c2f7c7c611d1adfc7235e9",
         [
          null,
          {
@@ -337568,16 +337244,7 @@
         ]
        ],
        "openee-accessed_opener-coop-ro.https.html": [
-        "c693425a7ccd7c70deab6098fd8e272ecddaa51f",
-        [
-         null,
-         {
-          "timeout": "long"
-         }
-        ]
-       ],
-       "openee-accessed_opener-coop.https.html": [
-        "fc3ff122f9e06e9ff1002eb046ade3d842867502",
+        "8b6e7caed75640c6715ecfab8ef3b90de8b438cc",
         [
          null,
          {
@@ -337586,16 +337253,7 @@
         ]
        ],
        "opener-accessed_openee-coop-ro.https.html": [
-        "b8f9f22e7cbf4ca80fd152258b539b106b77dbb1",
-        [
-         null,
-         {
-          "timeout": "long"
-         }
-        ]
-       ],
-       "opener-accessed_openee-coop.https.html": [
-        "ffce48de49627c02807316309b541f748e943d6c",
+        "6c576def93ab4c029b1719f0bbfd115e30ab1c56",
         [
          null,
          {
@@ -337604,16 +337262,7 @@
         ]
        ],
        "opener-accessed_opener-coop-ro.https.html": [
-        "1c9436ce8ba4f28c99df29985c1c10559295cec9",
-        [
-         null,
-         {
-          "timeout": "long"
-         }
-        ]
-       ],
-       "opener-accessed_opener-coop.https.html": [
-        "1d4c117ed2bae2d47304a9d68ce928f6b52dc86f",
+        "b6883de249a19e4aeb15992c22d3f46c91b70b1b",
         [
          null,
          {
@@ -337640,7 +337289,7 @@
         ]
        ],
        "property.https.html": [
-        "6a22cb2076cbfcf042926ef7249d98139651de53",
+        "d6c563be4f333a9a4105fc54618b4837e3e79ba0",
         [
          null,
          {
@@ -337649,7 +337298,7 @@
         ]
        ],
        "reporting-observer.html": [
-        "decad097b6d29acabb6252497f68658002c3478e",
+        "5b67575a0eab47df04a6067ac573328ba6ea6a20",
         [
          null,
          {
@@ -337660,7 +337309,7 @@
       },
       "navigation-reporting": {
        "report-only-four-reports.https.html": [
-        "1367a9ec979eaeeb85c1488923119e5307d14152",
+        "245df0439ea71413a59ffdf6c67b83624aa8e290",
         [
          null,
          {
@@ -337669,7 +337318,7 @@
         ]
        ],
        "report-only-from-unsafe-none.https.html": [
-        "2664b68a154f5fa84cffde001c198785c98180f2",
+        "a9bd737c6dd722562517f55bad152e3fcd37290c",
         [
          null,
          {
@@ -337678,7 +337327,7 @@
         ]
        ],
        "report-only-same-origin-report-to.https.html": [
-        "a312232d07a9c44ab3082ae28a4c29220cce7420",
+        "f66d19a239a9d9ed413657bca2e1c23ad72e1a77",
         [
          null,
          {
@@ -337705,7 +337354,7 @@
         ]
        ],
        "report-only-same-origin.https.html": [
-        "c02407db9babccbcf949607174c196fcfb8dc06c",
+        "25124ef3d5e4f839447bf1e54e14b27e837ad533",
         [
          null,
          {
@@ -337714,14 +337363,14 @@
         ]
        ],
        "reporting-coop-navigated-popup.https.html": [
-        "4d73a62698674d264b2ee645f72836a17f500228",
+        "b2e28db349eff34e582e40daad2069c7f13999b0",
         [
          null,
          {}
         ]
        ],
        "reporting-popup-same-origin-allow-popups-report-to.https.html": [
-        "a90c2817db2398cc4c5c0c7c9853d8fdca440ecf",
+        "a8730b00cc6af19a5a02f825fbb0d92f5bce3aa0",
         [
          null,
          {
@@ -337730,7 +337379,7 @@
         ]
        ],
        "reporting-popup-same-origin-coep-report-to.https.html": [
-        "f056bc54b93d1ad70eb5bd4b452a54663deda13c",
+        "51957b4ac19ed23f51d6be3685c96522d6b9391b",
         [
          null,
          {
@@ -337739,7 +337388,7 @@
         ]
        ],
        "reporting-popup-same-origin-report-to.https.html": [
-        "4e2dc52e49d1dba8d01b1fa9634973a9d5312af3",
+        "6d3c6b41df155fc8237007ae4d6d87709a0ee795",
         [
          null,
          {
@@ -337748,7 +337397,7 @@
         ]
        ],
        "reporting-popup-same-origin.https.html": [
-        "24dace7d8d8f5962261cdac4a13b095f762cfdb2",
+        "ec39a568bbd197d0f65e9d40f7c25001c7e8adb6",
         [
          null,
          {
@@ -337757,7 +337406,7 @@
         ]
        ],
        "reporting-popup-unsafe-none-report-to.https.html": [
-        "7ad6ec9ce7ab26b5f1bcca6ee6bbe6d6ad3a20f0",
+        "a4eaec15bbe5cc23bf0e250f8178809fe86729c9",
         [
          null,
          {
@@ -337766,7 +337415,7 @@
         ]
        ],
        "reporting-redirect-with-same-origin-allow-popups.https.html": [
-        "f807561f17488c1b05ea779f6b0aa64c7a10d197",
+        "f2f06efd628107108976ffc28ab33db7c13bb05a",
         [
          null,
          {
@@ -349252,28 +348901,84 @@
          ]
         ],
         "evaluation-error-1.html": [
-         "21f005a69e9592774a3cb3f9db2b231d72da9f74",
+         "3f2bb35f4e273e0a14e3f010d629761177e22a06",
          [
           null,
           {}
          ]
         ],
         "evaluation-error-2.html": [
-         "6aedc0608c6b2aee7a784fede5d886ad7724d57a",
+         "4f2b3c5a745cd8d7bf907778d7bacefacd1effa1",
          [
           null,
           {}
          ]
         ],
         "evaluation-error-3.html": [
-         "71d61f5a99d8c1f5e923d51967e4c1d48f8319c6",
+         "9bfb5df2cf0eab603cdf8798f9b2d2660dfdebd2",
          [
           null,
           {}
          ]
         ],
         "evaluation-error-4.html": [
-         "dcb0108b9d41012eebc6f5720e4229b2fd3ef74d",
+         "0b4b7d16622c452abcf4d70d40790c6bb437065c",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-1-nothrow-worker.html": [
+         "1b7ea09ebdd8cb6c35aefefe6b22b6495db735c9",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-1-nothrow.html": [
+         "080f5ac3bdaa971232a7d668e57079179d64cdc4",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-1-worker.html": [
+         "0325bb2a30da1e22f0a6e12e0dda17bf12c89f6c",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-1.html": [
+         "10bfcadb78d2bc1487b8cee1f47bfc546c5111b7",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-2-import-worker.html": [
+         "83070191af9ad4b693e6ca3a1f2eaea53d8bad67",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-2-import.html": [
+         "0b0bf849a4391152d34cc8d55039e8c3707ecbfc",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-3-dynamic-worker.html": [
+         "49731bd4822d2abef8fd263bca98f2a2f398933c",
+         [
+          null,
+          {}
+         ]
+        ],
+        "evaluation-order-3-dynamic.html": [
+         "6306c0b5cf204d91b8ef126da6180e7c32784b8f",
          [
           null,
           {}
@@ -367703,6 +367408,13 @@
       {}
      ]
     ],
+    "portals-close-window.html": [
+     "e3a66c0bf10b102ef4efea70be8efa7c6b6ab74e",
+     [
+      null,
+      {}
+     ]
+    ],
     "portals-cross-origin-load.sub.html": [
      "04db38a8e9a2d9b2ac5ffe1078f3015dd0b9204e",
      [
@@ -402928,6 +402640,15 @@
      ]
     ]
    },
+   "webcodecs": {
+    "video-track-reader.html": [
+     "087e0bb935b6033876c9b7eed10274bab02d8910",
+     [
+      null,
+      {}
+     ]
+    ]
+   },
    "webdriver": {
     "tests": {
      "idlharness.html": [
@@ -402939,119 +402660,6 @@
      ]
     }
    },
-   "webgpu": {
-    "cts.html": [
-     "e78afee421ad7d11a16adbd89fb4a833d0b1aece",
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,buffers,create_mapped:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,buffers,map:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,buffers,map_detach:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,buffers,map_oom:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,command_buffer,basic:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,command_buffer,copies:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,command_buffer,render,basic:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,fences:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,operation,resource_init,copied_texture_clear:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,createBindGroup:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,createBindGroupLayout:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,createPipelineLayout:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,createTexture:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,createView:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,error_scope:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,fences:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,queue_submit:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,render_pass_descriptor:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,setBindGroup:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,setBlendColor:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,setScissorRect:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,setStencilReference:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:api,validation,setViewport:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:examples:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:idl,constants,flags:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:web-platform,canvas,context_creation:*",
-      {}
-     ],
-     [
-      "webgpu/cts.html?q=webgpu:web-platform,copyImageBitmapToTexture:*",
-      {}
-     ]
-    ]
-   },
    "webhid": {
     "idlharness.https.window.js": [
      "fa763e0d80ac7e196cd276a9aed5a7a33f9d8331",
diff --git a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/constructors-expected.txt b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/constructors-expected.txt
index ebb7dde..bf840da 100644
--- a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/constructors-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/constructors-expected.txt
@@ -2,12 +2,12 @@
 PASS Realm for constructed objects
 PASS Normal constructor in parent window
 PASS Normal constructor in child window
-FAIL Constructor in child window with normal NewTarget from parent window assert_equals: expected "child window" but got "parent window"
-FAIL Constructor in parent window with normal NewTarget from child window assert_equals: expected "parent window" but got "child window"
+PASS Constructor in child window with normal NewTarget from parent window
+PASS Constructor in parent window with normal NewTarget from child window
 PASS Subclass constructor in parent window
 PASS Subclass constructor in child window
-FAIL Subclass constructor in parent window with parent class in child window assert_equals: expected "child window" but got "parent window"
-FAIL Subclass constructor in child window with parent class in parent window assert_equals: expected "parent window" but got "child window"
+PASS Subclass constructor in parent window with parent class in child window
+PASS Subclass constructor in child window with parent class in parent window
 FAIL Constructor in child window with bad NewTarget from parent window assert_equals: expected object "[object DOMParser]" but got object "[object Object]"
 FAIL Constructor in parent window with bad NewTarget from child window assert_equals: expected object "[object DOMParser]" but got object "[object Object]"
 FAIL Constructor in parent window with bad NewTarget from parent window that's a bound child window function assert_equals: expected object "[object DOMParser]" but got object "[object Object]"
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/event-dispatch.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/event-dispatch.tentative-expected.txt
index a4512f6..0feefd2 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/event-dispatch.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/event-dispatch.tentative-expected.txt
@@ -4,7 +4,7 @@
 PASS Before -> Active
 PASS Before -> After
 PASS Active -> Idle, display: none
-FAIL Active -> Idle, setting Animation.timeline = null promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSAnimation>'"
+FAIL Active -> Idle, setting Animation.timeline = null promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Active -> Idle, calling Animation.cancel()
 PASS Active -> Before
 PASS Active -> After
@@ -23,7 +23,7 @@
 PASS Call Animation.cancel after canceling animation.
 PASS Restart animation after canceling animation immediately.
 PASS Call Animation.cancel after restarting animation immediately.
-FAIL Set timeline and play transition after clearing the timeline. promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSAnimation>'"
+FAIL Set timeline and play transition after clearing the timeline. promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Set null target effect after canceling the animation.
 PASS Cancel the animation after clearing the target effect.
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
index 6c2a306..294ff255 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-transitions/event-dispatch.tentative-expected.txt
@@ -4,15 +4,15 @@
 PASS Idle or Pending -> Active
 PASS Idle or Pending -> After
 PASS Before -> Idle (display: none)
-FAIL Before -> Idle (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
+FAIL Before -> Idle (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Before -> Active
 PASS Before -> After
 PASS Active -> Idle, no delay (display: none)
-FAIL Active -> Idle, no delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
+FAIL Active -> Idle, no delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Active -> Idle, with positive delay (display: none)
-FAIL Active -> Idle, with positive delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
+FAIL Active -> Idle, with positive delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Active -> Idle, with negative delay (display: none)
-FAIL Active -> Idle, with negative delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
+FAIL Active -> Idle, with negative delay (Animation.timeline = null) promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Active -> Before
 PASS Active -> After
 PASS After -> Before
@@ -22,7 +22,7 @@
 PASS Call Animation.cancel after canceling transition.
 PASS Restart transition after canceling transition immediately
 PASS Call Animation.cancel after restarting transition immediately
-FAIL Set timeline and play transition after clear the timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<CSSTransition>'"
+FAIL Set timeline and play transition after clear the timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Set null target effect after canceling the transition
 PASS Cancel the transition after clearing the target effect
 PASS Cancel the transition after it finishes
diff --git a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-delete-expected.txt b/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-delete-expected.txt
deleted file mode 100644
index 4e83310..0000000
--- a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-delete-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-PASS Loose id
-FAIL Strict id assert_throws_js: function "function() {
-    "use strict";
-    delete c[0];
-  }" did not throw
-PASS Loose name
-FAIL Strict name assert_throws_js: function "function() {
-    "use strict";
-    delete c.foo;
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-own-props-expected.txt b/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-own-props-expected.txt
deleted file mode 100644
index 4d2dd7f..0000000
--- a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-own-props-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-FAIL Setting non-array index while named property exists (loose) assert_equals: expected (object) Element node <a id="named"></a> but got (string) "foo"
-FAIL Setting non-array index while named property exists (strict) assert_throws_js: function "function() {
-    c[name] = "foo";
-  }" did not throw
-PASS Setting non-array index while named property doesn't exist (loose)
-PASS Setting non-array index while named property doesn't exist (strict)
-PASS Setting array index while indexed property exists (loose)
-PASS Setting array index while indexed property exists (strict)
-PASS Setting array index while indexed property doesn't exist (loose)
-PASS Setting array index while indexed property doesn't exist (strict)
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-indices-expected.txt b/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-indices-expected.txt
deleted file mode 100644
index be034fa..0000000
--- a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-indices-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This is a testharness.js-based test.
-PASS Handling of property names that look like negative integers
-PASS Handling of property names that look like small nonnegative integers
-PASS Handling of property names that look like integers around 2^31
-PASS Handling of property names that look like integers around 2^32
-FAIL Trying to set an expando that would shadow an already-existing indexed property assert_throws_js: function "function() {
-    "use strict";
-    delete elements[0];
-  }" did not throw
-PASS Trying to set an expando with an indexed property name past the end of the list
-FAIL Trying to delete an indexed property name should never work assert_throws_js: function "function() {
-    "use strict";
-    delete elements[0];
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-names-expected.txt b/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-names-expected.txt
deleted file mode 100644
index 30d2dd4..0000000
--- a/third_party/blink/web_tests/external/wpt/dom/collections/HTMLCollection-supported-property-names-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Object.getOwnPropertyNames on HTMLCollection
-PASS Object.getOwnPropertyNames on HTMLCollection with non-HTML namespace
-PASS Object.getOwnPropertyNames on HTMLCollection with expando object
-FAIL Trying to set an expando that would shadow an already-existing named property assert_equals: expected (object) Element node <span id="some-id"></span> but got (number) 5
-PASS Trying to set an expando that shadows a named property that gets added later
-PASS Trying to set a non-configurable expando that shadows a named property that gets added later
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt b/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
index 0aa1687..58f17fc2 100644
--- a/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/idlharness.window_exclude=Node-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1252 tests; 1228 PASS, 24 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1252 tests; 1232 PASS, 20 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Window: original interface defined
@@ -261,7 +261,7 @@
 PASS Document interface object name
 PASS Document interface: existence and properties of interface prototype object
 PASS Document interface: existence and properties of interface prototype object's "constructor" property
-FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_false: Document.prototype[Symbol.unscopables] should not be writable expected false got true
+FAIL Document interface: existence and properties of interface prototype object's @@unscopables property assert_not_equals: Document.prototype[Symbol.unscopables] has unexpected property "fullscreen" got disallowed value -1
 PASS Document interface: attribute implementation
 PASS Document interface: attribute URL
 PASS Document interface: attribute documentURI
@@ -481,7 +481,7 @@
 PASS DocumentType interface object name
 PASS DocumentType interface: existence and properties of interface prototype object
 PASS DocumentType interface: existence and properties of interface prototype object's "constructor" property
-FAIL DocumentType interface: existence and properties of interface prototype object's @@unscopables property assert_false: DocumentType.prototype[Symbol.unscopables] should not be writable expected false got true
+PASS DocumentType interface: existence and properties of interface prototype object's @@unscopables property
 PASS DocumentType interface: attribute name
 PASS DocumentType interface: attribute publicId
 PASS DocumentType interface: attribute systemId
@@ -512,7 +512,7 @@
 PASS DocumentFragment interface object name
 PASS DocumentFragment interface: existence and properties of interface prototype object
 PASS DocumentFragment interface: existence and properties of interface prototype object's "constructor" property
-FAIL DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property assert_false: DocumentFragment.prototype[Symbol.unscopables] should not be writable expected false got true
+PASS DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property
 PASS DocumentFragment interface: operation getElementById(DOMString)
 PASS DocumentFragment interface: attribute children
 PASS DocumentFragment interface: attribute firstElementChild
@@ -561,7 +561,7 @@
 PASS Element interface object name
 PASS Element interface: existence and properties of interface prototype object
 PASS Element interface: existence and properties of interface prototype object's "constructor" property
-FAIL Element interface: existence and properties of interface prototype object's @@unscopables property assert_false: Element.prototype[Symbol.unscopables] should not be writable expected false got true
+PASS Element interface: existence and properties of interface prototype object's @@unscopables property
 PASS Element interface: attribute namespaceURI
 PASS Element interface: attribute prefix
 PASS Element interface: attribute localName
@@ -750,7 +750,7 @@
 PASS CharacterData interface object name
 PASS CharacterData interface: existence and properties of interface prototype object
 PASS CharacterData interface: existence and properties of interface prototype object's "constructor" property
-FAIL CharacterData interface: existence and properties of interface prototype object's @@unscopables property assert_false: CharacterData.prototype[Symbol.unscopables] should not be writable expected false got true
+PASS CharacterData interface: existence and properties of interface prototype object's @@unscopables property
 PASS CharacterData interface: attribute data
 PASS CharacterData interface: attribute length
 PASS CharacterData interface: operation substringData(unsigned long, unsigned long)
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/api-availability-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/api-availability-expected.txt
deleted file mode 100644
index 8676e6ed..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/history-traversal/api-availability-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL API availability following history traversal Cannot read property 'history' of null
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-expected.txt
index 73507dc..4d1f8a9a 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-expected.txt
@@ -7,8 +7,6 @@
 PASS Set data URL frame location.protocol to file
 PASS Set HTTP URL frame location.protocol to ftp
 PASS Set data URL frame location.protocol to ftp
-PASS Set HTTP URL frame location.protocol to gopher
-PASS Set data URL frame location.protocol to gopher
 PASS Set HTTP URL frame location.protocol to http+x
 PASS Set data URL frame location.protocol to http+x
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-expected.txt
deleted file mode 100644
index f1e424f8..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-expected.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a testharness.js-based test.
-PASS Same-origin prerequisite check: the original prototype is accessible
-FAIL Same-origin: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError assert_throws_js: function "() => {
-      Object.setPrototypeOf(target, newValue);
-    }" did not throw
-FAIL Same-origin: setting the prototype to an empty object via __proto__ should throw a TypeError assert_throws_js: function "function() {
-      target.__proto__ = newValue;
-    }" did not throw
-FAIL Same-origin: setting the prototype to an empty object via Reflect.setPrototypeOf should return false assert_false: expected false got true
-FAIL Same-origin: the prototype must still be its original value assert_equals: expected object "[object Location]" but got object "[object Object]"
-PASS Same-origin: setting the prototype to its original value via Object.setPrototypeOf should not throw
-PASS Same-origin: setting the prototype to its original value via __proto__ should not throw
-PASS Same-origin: setting the prototype to its original value via Reflect.setPrototypeOf should return true
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-stringifier-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-stringifier-expected.txt
deleted file mode 100644
index 59612a1b..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-stringifier-expected.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is a testharness.js-based test.
-PASS Location stringifier
-PASS Location stringifier 1
-PASS Location stringifier 2
-PASS Location stringifier 3
-PASS Location stringifier 4
-FAIL Location stringifier 5 assert_equals: expected "function" but got "undefined"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-valueof-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-valueof-expected.txt
deleted file mode 100644
index 1086fb9..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/location-valueof-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL Location valueOf assert_equals: expected function "function valueOf() { [native code] }" but got function "function valueOf() { [native code] }"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/sandboxing/sandbox-disallow-popups.html b/third_party/blink/web_tests/external/wpt/html/browsers/sandboxing/sandbox-disallow-popups.html
new file mode 100644
index 0000000..8e4b34e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/sandboxing/sandbox-disallow-popups.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>window.open in sandbox iframe</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<body>
+<script>
+setup({single_test: true});
+// check that the popup's URL is not loaded
+const uuid = token();
+async function assert_popup_not_loaded() {
+  const response = await fetch(`/fetch/api/resources/stash-take.py?key=${uuid}`);
+  assert_equals(await response.json(), null); // is "loaded" if it loads
+}
+
+// check for message from the iframe
+window.onmessage = e => {
+  assert_equals(e.data, 'null', 'return value of window.open (stringified)');
+  step_timeout(async () => {
+    await assert_popup_not_loaded();
+    done();
+  }, 1000);
+};
+const iframe = document.createElement('iframe');
+iframe.sandbox = 'allow-scripts';
+iframe.srcdoc = `
+  <script>
+    let result;
+    try {
+      result = window.open('/fetch/api/resources/stash-put.py?key=${uuid}&value=loaded', '_blank');
+    } catch(ex) {
+      result = ex;
+    }
+    parent.postMessage(String(result), '*');
+  <\/script>
+`;
+document.body.appendChild(iframe);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt
deleted file mode 100644
index 312d0a1..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/prototype-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a testharness.js-based test.
-PASS Property on window.
-PASS Property on Window.prototype.
-FAIL Property on EventTarget.prototype. assert_equals: expected (undefined) undefined but got (object) object "[object Object]"
-FAIL Property on Object.prototype. assert_equals: expected (undefined) undefined but got (object) object "[object Object]"
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-expected.txt
deleted file mode 100644
index f958b38..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-PASS Indexed properties of the window object (non-strict mode)
-PASS Ensure indexed properties have the correct configuration
-FAIL Indexed properties of the window object (non-strict mode) 1 assert_equals: expected false but got true
-PASS Indexed properties of the window object (non-strict mode) 2
-PASS Indexed properties of the window object (non-strict mode) 3
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-strict-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-strict-expected.txt
deleted file mode 100644
index 24149dd..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-indexed-properties-strict-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a testharness.js-based test.
-PASS Indexed properties of the window object (strict mode)
-FAIL Indexed properties of the window object (strict mode) 1 assert_throws_js: function "() => delete window[0]" did not throw
-PASS Indexed properties of the window object (strict mode) 2
-PASS Indexed properties of the window object (strict mode) 3
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-properties.https-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-properties.https-expected.txt
index 76418e8..90301e0 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-properties.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-properties.https-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 174 tests; 165 PASS, 9 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 174 tests; 173 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS Value Properties of the Global Object
 PASS Value Property: NaN
 PASS Value Property: Infinity
@@ -75,7 +75,7 @@
 PASS Window readonly attribute: localStorage
 PASS Window attribute: name
 PASS Window attribute: status
-FAIL Window attribute: opener assert_equals: expected "function" but got "undefined"
+PASS Window attribute: opener
 PASS Window attribute: onabort
 PASS Window attribute: onafterprint
 PASS Window attribute: onbeforeprint
@@ -143,21 +143,21 @@
 PASS Window attribute: onunload
 PASS Window attribute: onvolumechange
 PASS Window attribute: onwaiting
-FAIL Window unforgeable attribute: window assert_equals: expected "function" but got "undefined"
+PASS Window unforgeable attribute: window
 PASS Window unforgeable attribute: document
-FAIL Window unforgeable attribute: location assert_equals: expected "function" but got "undefined"
-FAIL Window unforgeable attribute: top assert_equals: expected "function" but got "undefined"
-FAIL Window replaceable attribute: self assert_equals: expected "function" but got "undefined"
+PASS Window unforgeable attribute: location
+PASS Window unforgeable attribute: top
+PASS Window replaceable attribute: self
 PASS Window replaceable attribute: locationbar
 PASS Window replaceable attribute: menubar
 PASS Window replaceable attribute: personalbar
 PASS Window replaceable attribute: scrollbars
 PASS Window replaceable attribute: statusbar
 PASS Window replaceable attribute: toolbar
-FAIL Window replaceable attribute: frames assert_equals: expected "function" but got "undefined"
-FAIL Window replaceable attribute: parent assert_equals: expected "function" but got "undefined"
+PASS Window replaceable attribute: frames
+PASS Window replaceable attribute: parent
 PASS Window replaceable attribute: external
-FAIL Window replaceable attribute: length assert_equals: expected "function" but got "undefined"
+PASS Window replaceable attribute: length
 PASS Window replaceable attribute: origin
 PASS Window replaceable attribute: screen
 PASS Window replaceable attribute: scrollX
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
deleted file mode 100644
index 8dfee380..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/windows/auxiliary-browsing-contexts/opener-setter.window-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This is a testharness.js-based test.
-FAIL Setting window.opener to undefined assert_own_property: expected property "get" missing
-FAIL Setting window.opener to 42 assert_own_property: expected property "get" missing
-FAIL Setting window.opener to function() { return "hi" } assert_own_property: expected property "get" missing
-FAIL Setting window.opener to hi assert_own_property: expected property "get" missing
-FAIL Setting window.opener to [object Object] assert_own_property: expected property "get" missing
-FAIL Setting window.opener to  assert_own_property: expected property "get" missing
-FAIL Setting window.opener to Symbol() assert_own_property: expected property "get" missing
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-expected.txt
deleted file mode 100644
index 16481744..0000000
--- a/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL opener and embedded documents; using window.open() openerGet is not a function
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-remove-frame-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-remove-frame-expected.txt
index 1d304732..36c9182 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-remove-frame-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/windows/embedded-opener-remove-frame-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-FAIL opener of discarded nested browsing context openerGet is not a function
-FAIL opener of discarded auxiliary browsing context openerGet is not a function
+FAIL opener of discarded nested browsing context assert_equals: expected (string) "immaterial" but got (undefined) undefined
+FAIL opener of discarded auxiliary browsing context assert_equals: expected (string) "immaterial" but got (undefined) undefined
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs-expected.txt b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs-expected.txt
deleted file mode 100644
index 7212cb8..0000000
--- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/the-offscreen-canvas/2d.getcontext.extraargs-expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a testharness.js-based test.
-FAIL The 2D context ignores extra getContext arguments Failed to execute 'getContext' on 'OffscreenCanvas': parameter 2 ('attributes') is not an object.
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/elements/global-attributes/dataset-binding.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/elements/global-attributes/dataset-binding.window-expected.txt
deleted file mode 100644
index 0f3419e..0000000
--- a/third_party/blink/web_tests/external/wpt/html/dom/elements/global-attributes/dataset-binding.window-expected.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This is a testharness.js-based test.
-FAIL Getting property descriptor for key 9 assert_equals: expected "value for Getting property descriptor for key 9" but got "9"
-PASS Setting property for key 9 with accessor property on prototype
-PASS Getting property descriptor for key x
-PASS Setting property for key x with accessor property on prototype
-Harness: the test ran to completion.
-
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
index 9f3049c..7968f855 100644
--- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 1412 tests; 1327 PASS, 85 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 1412 tests; 1328 PASS, 84 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -889,7 +889,7 @@
 FAIL Location interface: stringifier assert_own_property: interface prototype object missing non-static operation expected property "toString" missing
 PASS Location must be primary interface of window.location
 PASS Stringification of window.location
-FAIL Location interface: window.location must have own property "href" assert_false: property descriptor should not have a "value" field expected false got true
+PASS Location interface: window.location must have own property "href"
 PASS Location interface: window.location must have own property "origin"
 PASS Location interface: window.location must have own property "protocol"
 PASS Location interface: window.location must have own property "host"
diff --git "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt" "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
index 2a60f996..ecc0d989 100644
--- "a/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
+++ "b/third_party/blink/web_tests/external/wpt/html/dom/idlharness.https_include=\050Document_Window\051-expected.txt"
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 963 tests; 937 PASS, 26 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 963 tests; 946 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
 PASS Partial interface Document: original interface defined
@@ -180,7 +180,7 @@
 PASS Window interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true
 PASS Window interface: existence and properties of interface prototype object's "constructor" property
 PASS Window interface: existence and properties of interface prototype object's @@unscopables property
-FAIL Window interface: attribute self assert_equals: "self" must have a getter expected "function" but got "undefined"
+PASS Window interface: attribute self
 PASS Window interface: attribute name
 PASS Window interface: attribute history
 PASS Window interface: attribute customElements
@@ -192,14 +192,14 @@
 PASS Window interface: attribute toolbar
 PASS Window interface: attribute status
 PASS Window interface: operation close()
-FAIL Window interface: attribute closed assert_equals: "closed" must have a getter expected "function" but got "undefined"
+PASS Window interface: attribute closed
 PASS Window interface: operation stop()
 PASS Window interface: operation focus()
 PASS Window interface: operation blur()
-FAIL Window interface: attribute frames assert_equals: "frames" must have a getter expected "function" but got "undefined"
-FAIL Window interface: attribute length assert_equals: "length" must have a getter expected "function" but got "undefined"
-FAIL Window interface: attribute opener assert_equals: "opener" must have a getter expected "function" but got "undefined"
-FAIL Window interface: attribute parent assert_equals: "parent" must have a getter expected "function" but got "undefined"
+PASS Window interface: attribute frames
+PASS Window interface: attribute length
+PASS Window interface: attribute opener
+PASS Window interface: attribute parent
 PASS Window interface: attribute frameElement
 PASS Window interface: operation open(optional USVString, optional DOMString, optional DOMString)
 PASS Window interface: attribute navigator
@@ -319,11 +319,11 @@
 PASS Window interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true
 PASS Window must be primary interface of window
 PASS Stringification of window
-FAIL Window interface: window must have own property "window" assert_false: property descriptor should not have a "value" field expected false got true
+PASS Window interface: window must have own property "window"
 PASS Window interface: window must inherit property "self" with the proper type
 PASS Window interface: window must have own property "document"
 PASS Window interface: window must inherit property "name" with the proper type
-FAIL Window interface: window must have own property "location" assert_false: property descriptor should not have a "value" field expected false got true
+PASS Window interface: window must have own property "location"
 PASS Window interface: window must inherit property "history" with the proper type
 PASS Window interface: window must inherit property "customElements" with the proper type
 PASS Window interface: window must inherit property "locationbar" with the proper type
@@ -340,7 +340,7 @@
 PASS Window interface: window must inherit property "blur()" with the proper type
 PASS Window interface: window must inherit property "frames" with the proper type
 PASS Window interface: window must inherit property "length" with the proper type
-FAIL Window interface: window must have own property "top" assert_false: property descriptor should not have a "value" field expected false got true
+PASS Window interface: window must have own property "top"
 PASS Window interface: window must inherit property "opener" with the proper type
 PASS Window interface: window must inherit property "parent" with the proper type
 PASS Window interface: window must inherit property "frameElement" with the proper type
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-indexed-element-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-indexed-element-expected.txt
deleted file mode 100644
index c25ec2f..0000000
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-indexed-element-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-PASS form.elements should be accessed correctly by index
-FAIL Trying to delete an indexed property name should never work assert_throws_js: function "function() {
-    "use strict";
-    delete form[0];
-  }" did not throw
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-nameditem-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-nameditem-expected.txt
index 86a0d67..9075895 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-nameditem-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/forms/the-form-element/form-nameditem-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 PASS Forms should not have an item method
 PASS Forms should not have a namedItem method
-FAIL Name for a single element should work assert_false: expected false got true
+PASS Name for a single element should work
 PASS Calling item() on the NodeList returned from the named getter should work
 PASS Indexed getter on the NodeList returned from the named getter should work
 PASS Invoking a legacycaller on the NodeList returned from the named getter should not work
@@ -10,9 +10,12 @@
 PASS Named items outside the form should not be returned (no children)
 PASS Named items outside the form should not be returned (one child)
 PASS The form attribute should be taken into account for named getters (single element)
-FAIL The form attribute should be taken into account for named getters (multiple elements) assert_false: expected false got true
+PASS The form attribute should be taken into account for named getters (multiple elements)
 PASS Input should only be a named property on the innermost form that contains it
-FAIL Trying to set an expando that would shadow an already-existing named property assert_false: expected false got true
+FAIL Trying to set an expando that would shadow an already-existing named property assert_throws_js: function "function() {
+    "use strict";
+    delete form["l1"];
+  }" did not throw
 FAIL Trying to set an expando that shadows a named property that gets added later assert_equals: expected (number) 5 but got (object) Element node <input name="new-name"></input>
 FAIL Trying to set a non-configurable expando that shadows a named property that gets added later assert_equals: expected (number) 5 but got (object) Element node <input name="new-name2"></input>
 PASS Past names map should work correctly
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/streams.idl b/third_party/blink/web_tests/external/wpt/interfaces/streams.idl
index 3d7484a..f96c196 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/streams.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/streams.idl
@@ -3,7 +3,7 @@
 // (https://github.com/tidoust/reffy-reports)
 // Source: Streams Standard (https://streams.spec.whatwg.org/)
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=(Window,Worker,Worklet), Transferable]
 interface ReadableStream {
   constructor(optional object underlyingSource, optional QueuingStrategy strategy = {});
 
@@ -58,16 +58,20 @@
 
 enum ReadableStreamType { "bytes" };
 
+interface mixin ReadableStreamGenericReader {
+  readonly attribute Promise<void> closed;
+
+  Promise<void> cancel(optional any reason);
+};
+
 [Exposed=(Window,Worker,Worklet)]
 interface ReadableStreamDefaultReader {
   constructor(ReadableStream stream);
 
-  readonly attribute Promise<void> closed;
-
-  Promise<void> cancel(optional any reason);
   Promise<ReadableStreamDefaultReadResult> read();
   void releaseLock();
 };
+ReadableStreamDefaultReader includes ReadableStreamGenericReader;
 
 dictionary ReadableStreamDefaultReadResult {
  any value;
@@ -78,12 +82,10 @@
 interface ReadableStreamBYOBReader {
   constructor(ReadableStream stream);
 
-  readonly attribute Promise<void> closed;
-
-  Promise<void> cancel(optional any reason);
   Promise<ReadableStreamBYOBReadResult> read(ArrayBufferView view);
   void releaseLock();
 };
+ReadableStreamBYOBReader includes ReadableStreamGenericReader;
 
 dictionary ReadableStreamBYOBReadResult {
  ArrayBufferView value;
@@ -117,7 +119,7 @@
   void respondWithNewView(ArrayBufferView view);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=(Window,Worker,Worklet), Transferable]
 interface WritableStream {
   constructor(optional object underlyingSink, optional QueuingStrategy strategy = {});
 
@@ -160,7 +162,7 @@
   void error(optional any e);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=(Window,Worker,Worklet), Transferable]
 interface TransformStream {
   constructor(optional object transformer,
               optional QueuingStrategy writableStrategy = {},
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any-expected.txt b/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any-expected.txt
deleted file mode 100644
index fd08a2bb..0000000
--- a/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any-expected.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-This is a testharness.js-based test.
-Found 58 tests; 57 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS FileSystemHandle interface: existence and properties of interface object
-PASS FileSystemHandle interface object length
-PASS FileSystemHandle interface object name
-PASS FileSystemHandle interface: existence and properties of interface prototype object
-PASS FileSystemHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemHandle interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemHandle interface: attribute kind
-PASS FileSystemHandle interface: attribute name
-PASS FileSystemHandle interface: operation isSameEntry(FileSystemHandle)
-PASS FileSystemHandle interface: operation queryPermission(optional FileSystemHandlePermissionDescriptor)
-PASS FileSystemHandle interface: operation requestPermission(optional FileSystemHandlePermissionDescriptor)
-PASS FileSystemFileHandle interface: existence and properties of interface object
-PASS FileSystemFileHandle interface object length
-PASS FileSystemFileHandle interface object name
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemFileHandle interface: operation getFile()
-PASS FileSystemFileHandle interface: operation createWritable(optional FileSystemCreateWritableOptions)
-PASS FileSystemDirectoryHandle interface: existence and properties of interface object
-PASS FileSystemDirectoryHandle interface object length
-PASS FileSystemDirectoryHandle interface object name
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object's @@unscopables property
-FAIL FileSystemDirectoryHandle interface: async iterable<USVString, FileSystemHandle> assert_equals: entries method should be the same as @@asyncIterator method expected function "function entries() { [native code] }" but got function "function entries() { [native code] }"
-PASS FileSystemDirectoryHandle interface: operation getFileHandle(USVString, optional FileSystemGetFileOptions)
-PASS FileSystemDirectoryHandle interface: operation getDirectoryHandle(USVString, optional FileSystemGetDirectoryOptions)
-PASS FileSystemDirectoryHandle interface: operation removeEntry(USVString, optional FileSystemRemoveOptions)
-PASS FileSystemDirectoryHandle interface: operation resolve(FileSystemHandle)
-PASS FileSystemWritableFileStream interface: existence and properties of interface object
-PASS FileSystemWritableFileStream interface object length
-PASS FileSystemWritableFileStream interface object name
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemWritableFileStream interface: operation write(FileSystemWriteChunkType)
-PASS FileSystemWritableFileStream interface: operation seek(unsigned long long)
-PASS FileSystemWritableFileStream interface: operation truncate(unsigned long long)
-PASS Window interface: operation showOpenFilePicker(optional OpenFilePickerOptions)
-PASS Window interface: operation showSaveFilePicker(optional SaveFilePickerOptions)
-PASS Window interface: operation showDirectoryPicker(optional DirectoryPickerOptions)
-PASS Window interface: operation getOriginPrivateDirectory()
-PASS WorkerGlobalScope interface: existence and properties of interface object
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any.worker-expected.txt
deleted file mode 100644
index 0b3ae0d..0000000
--- a/third_party/blink/web_tests/external/wpt/native-file-system/idlharness.https.any.worker-expected.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-This is a testharness.js-based test.
-Found 55 tests; 54 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined
-PASS Partial interface mixin WindowOrWorkerGlobalScope: member names are unique
-PASS Partial interface Window[2]: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS FileSystemHandle interface: existence and properties of interface object
-PASS FileSystemHandle interface object length
-PASS FileSystemHandle interface object name
-PASS FileSystemHandle interface: existence and properties of interface prototype object
-PASS FileSystemHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemHandle interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemHandle interface: attribute kind
-PASS FileSystemHandle interface: attribute name
-PASS FileSystemHandle interface: operation isSameEntry(FileSystemHandle)
-PASS FileSystemHandle interface: operation queryPermission(optional FileSystemHandlePermissionDescriptor)
-PASS FileSystemHandle interface: operation requestPermission(optional FileSystemHandlePermissionDescriptor)
-PASS FileSystemFileHandle interface: existence and properties of interface object
-PASS FileSystemFileHandle interface object length
-PASS FileSystemFileHandle interface object name
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemFileHandle interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemFileHandle interface: operation getFile()
-PASS FileSystemFileHandle interface: operation createWritable(optional FileSystemCreateWritableOptions)
-PASS FileSystemDirectoryHandle interface: existence and properties of interface object
-PASS FileSystemDirectoryHandle interface object length
-PASS FileSystemDirectoryHandle interface object name
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemDirectoryHandle interface: existence and properties of interface prototype object's @@unscopables property
-FAIL FileSystemDirectoryHandle interface: async iterable<USVString, FileSystemHandle> assert_equals: entries method should be the same as @@asyncIterator method expected function "function entries() { [native code] }" but got function "function entries() { [native code] }"
-PASS FileSystemDirectoryHandle interface: operation getFileHandle(USVString, optional FileSystemGetFileOptions)
-PASS FileSystemDirectoryHandle interface: operation getDirectoryHandle(USVString, optional FileSystemGetDirectoryOptions)
-PASS FileSystemDirectoryHandle interface: operation removeEntry(USVString, optional FileSystemRemoveOptions)
-PASS FileSystemDirectoryHandle interface: operation resolve(FileSystemHandle)
-PASS FileSystemWritableFileStream interface: existence and properties of interface object
-PASS FileSystemWritableFileStream interface object length
-PASS FileSystemWritableFileStream interface object name
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object's "constructor" property
-PASS FileSystemWritableFileStream interface: existence and properties of interface prototype object's @@unscopables property
-PASS FileSystemWritableFileStream interface: operation write(FileSystemWriteChunkType)
-PASS FileSystemWritableFileStream interface: operation seek(unsigned long long)
-PASS FileSystemWritableFileStream interface: operation truncate(unsigned long long)
-PASS Window interface: existence and properties of interface object
-PASS WorkerGlobalScope interface: operation getOriginPrivateDirectory()
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/scroll-animation.html b/third_party/blink/web_tests/external/wpt/scroll-animations/scroll-animation.html
index 60fc4c5..ef36236 100644
--- a/third_party/blink/web_tests/external/wpt/scroll-animations/scroll-animation.html
+++ b/third_party/blink/web_tests/external/wpt/scroll-animations/scroll-animation.html
@@ -198,6 +198,11 @@
 
     scroller.scrollTop = maxScroll;
     await animation.finished;
+
+    // Wait for next frame to allow the animation to send finish events. The
+    // finished promise fires before events are sent.
+    await waitForNextFrame();
+
     assert_true(sent_finish_event,
                  "Animation finished event is sent on reaching max scroll.");
 }, 'Sending animation finished events by finished animation on reverse ' +
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/detached-context.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/detached-context.https-expected.txt
deleted file mode 100644
index 904eaa7c..0000000
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/detached-context.https-expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a testharness.js-based test.
-FAIL accessing a ServiceWorkerRegistration from a removed iframe assert_equals: expected (string) "activated" but got (undefined) undefined
-PASS accessing a ServiceWorker object from a removed iframe
-PASS accessing navigator.serviceWorker on a detached iframe
-PASS accessing navigator on a removed frame
-PASS accessing navigator.serviceWorker on a removed about:blank frame
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/streams/idlharness.any-expected.txt b/third_party/blink/web_tests/external/wpt/streams/idlharness.any-expected.txt
index 4f402c6e..f9cb7f3 100644
--- a/third_party/blink/web_tests/external/wpt/streams/idlharness.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/streams/idlharness.any-expected.txt
@@ -1,7 +1,9 @@
 This is a testharness.js-based test.
-Found 222 tests; 114 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 224 tests; 116 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
+PASS ReadableStreamDefaultReader includes ReadableStreamGenericReader: member names are unique
+PASS ReadableStreamBYOBReader includes ReadableStreamGenericReader: member names are unique
 PASS ReadableStream interface: existence and properties of interface object
 PASS ReadableStream interface object length
 PASS ReadableStream interface object name
@@ -33,35 +35,35 @@
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's "constructor" property
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's @@unscopables property
-FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
-FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation read() assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation releaseLock() assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 PASS ReadableStreamDefaultReader must be primary interface of (new ReadableStream()).getReader()
 PASS Stringification of (new ReadableStream()).getReader()
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "closed" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "cancel(optional any)" with the proper type
 PASS ReadableStreamDefaultReader interface: calling cancel(optional any) on (new ReadableStream()).getReader() with too few arguments must throw TypeError
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object length assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object name assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation read(ArrayBufferView) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation releaseLock() assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader must be primary interface of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL Stringification of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "read(ArrayBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: calling read(ArrayBufferView) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "releaseLock()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object length assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object name assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
diff --git a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.serviceworker-expected.txt
index 4f402c6e..f9cb7f3 100644
--- a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.serviceworker-expected.txt
@@ -1,7 +1,9 @@
 This is a testharness.js-based test.
-Found 222 tests; 114 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 224 tests; 116 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
+PASS ReadableStreamDefaultReader includes ReadableStreamGenericReader: member names are unique
+PASS ReadableStreamBYOBReader includes ReadableStreamGenericReader: member names are unique
 PASS ReadableStream interface: existence and properties of interface object
 PASS ReadableStream interface object length
 PASS ReadableStream interface object name
@@ -33,35 +35,35 @@
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's "constructor" property
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's @@unscopables property
-FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
-FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation read() assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation releaseLock() assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 PASS ReadableStreamDefaultReader must be primary interface of (new ReadableStream()).getReader()
 PASS Stringification of (new ReadableStream()).getReader()
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "closed" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "cancel(optional any)" with the proper type
 PASS ReadableStreamDefaultReader interface: calling cancel(optional any) on (new ReadableStream()).getReader() with too few arguments must throw TypeError
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object length assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object name assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation read(ArrayBufferView) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation releaseLock() assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader must be primary interface of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL Stringification of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "read(ArrayBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: calling read(ArrayBufferView) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "releaseLock()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object length assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object name assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
diff --git a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.sharedworker-expected.txt
index 4f402c6e..f9cb7f3 100644
--- a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.sharedworker-expected.txt
@@ -1,7 +1,9 @@
 This is a testharness.js-based test.
-Found 222 tests; 114 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 224 tests; 116 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
+PASS ReadableStreamDefaultReader includes ReadableStreamGenericReader: member names are unique
+PASS ReadableStreamBYOBReader includes ReadableStreamGenericReader: member names are unique
 PASS ReadableStream interface: existence and properties of interface object
 PASS ReadableStream interface object length
 PASS ReadableStream interface object name
@@ -33,35 +35,35 @@
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's "constructor" property
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's @@unscopables property
-FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
-FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation read() assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation releaseLock() assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 PASS ReadableStreamDefaultReader must be primary interface of (new ReadableStream()).getReader()
 PASS Stringification of (new ReadableStream()).getReader()
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "closed" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "cancel(optional any)" with the proper type
 PASS ReadableStreamDefaultReader interface: calling cancel(optional any) on (new ReadableStream()).getReader() with too few arguments must throw TypeError
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object length assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object name assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation read(ArrayBufferView) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation releaseLock() assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader must be primary interface of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL Stringification of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "read(ArrayBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: calling read(ArrayBufferView) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "releaseLock()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object length assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object name assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
diff --git a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.worker-expected.txt
index 4f402c6e..f9cb7f3 100644
--- a/third_party/blink/web_tests/external/wpt/streams/idlharness.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/streams/idlharness.any.worker-expected.txt
@@ -1,7 +1,9 @@
 This is a testharness.js-based test.
-Found 222 tests; 114 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 224 tests; 116 PASS, 108 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS idl_test validation
+PASS ReadableStreamDefaultReader includes ReadableStreamGenericReader: member names are unique
+PASS ReadableStreamBYOBReader includes ReadableStreamGenericReader: member names are unique
 PASS ReadableStream interface: existence and properties of interface object
 PASS ReadableStream interface object length
 PASS ReadableStream interface object name
@@ -33,35 +35,35 @@
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's "constructor" property
 PASS ReadableStreamDefaultReader interface: existence and properties of interface prototype object's @@unscopables property
-FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
-FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation read() assert_true: property should be enumerable expected true got false
 FAIL ReadableStreamDefaultReader interface: operation releaseLock() assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: attribute closed assert_true: property should be enumerable expected true got false
+FAIL ReadableStreamDefaultReader interface: operation cancel(optional any) assert_true: property should be enumerable expected true got false
 PASS ReadableStreamDefaultReader must be primary interface of (new ReadableStream()).getReader()
 PASS Stringification of (new ReadableStream()).getReader()
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
+PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "closed" with the proper type
 PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "cancel(optional any)" with the proper type
 PASS ReadableStreamDefaultReader interface: calling cancel(optional any) on (new ReadableStream()).getReader() with too few arguments must throw TypeError
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "read()" with the proper type
-PASS ReadableStreamDefaultReader interface: (new ReadableStream()).getReader() must inherit property "releaseLock()" with the proper type
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object length assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface object name assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
-FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation read(ArrayBufferView) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader interface: operation releaseLock() assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: attribute closed assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
+FAIL ReadableStreamBYOBReader interface: operation cancel(optional any) assert_own_property: self does not have own property "ReadableStreamBYOBReader" expected property "ReadableStreamBYOBReader" missing
 FAIL ReadableStreamBYOBReader must be primary interface of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL Stringification of (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
-FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "read(ArrayBufferView)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: calling read(ArrayBufferView) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "releaseLock()" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "closed" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) must inherit property "cancel(optional any)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
+FAIL ReadableStreamBYOBReader interface: calling cancel(optional any) on (new ReadableStream({ type: 'bytes' })).getReader({ mode: 'byob' }) with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "RangeError: Failed to construct 'ReadableStream': bytes type is not yet implemented"
 FAIL ReadableStreamDefaultController interface: existence and properties of interface object assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object length assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
 FAIL ReadableStreamDefaultController interface object name assert_own_property: self does not have own property "ReadableStreamDefaultController" expected property "ReadableStreamDefaultController" missing
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt
index de9770be..91238a4 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 PASS Element.animate() creates an animation with the correct timeline when called on an element in a document without a browsing context
 PASS The timeline associated with an animation trigger on an element in a document without a browsing context is inactive
-FAIL Replacing the timeline of an animation targetting an element in a document without a browsing context leaves it in the pending state promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL Replacing the timeline of an animation targetting an element in a document without a browsing context and then adopting that element causes it to start updating style promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Replacing the timeline of an animation targetting an element in a document without a browsing context leaves it in the pending state promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL Replacing the timeline of an animation targetting an element in a document without a browsing context and then adopting that element causes it to start updating style promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt
index ae99c09..a618fd7 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animation/style-change-events-expected.txt
@@ -9,17 +9,17 @@
 PASS Animation.id produces expected style change events
 PASS Animation.onfinish produces expected style change events
 PASS Animation.oncancel produces expected style change events
+PASS Animation.cancel produces expected style change events
 PASS Animation.finish produces expected style change events
-PASS Animation.play produces expected style change events
 PASS Animation.pause produces expected style change events
+PASS Animation.play produces expected style change events
 PASS Animation.reverse produces expected style change events
 PASS Animation.updatePlaybackRate produces expected style change events
-PASS Animation.cancel produces expected style change events
+FAIL Animation.timeline produces expected style change events promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+PASS Animation.replaceState produces expected style change events
+PASS Animation.onremove produces expected style change events
 PASS Animation.finished produces expected style change events
 PASS Animation.ready produces expected style change events
-PASS Animation.replaceState produces expected style change events
-FAIL Animation.timeline produces expected style change events promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-PASS Animation.onremove produces expected style change events
 PASS Animation.commitStyles produces expected style change events
 PASS Animation.persist produces expected style change events
 PASS Animation.Animation constructor produces expected style change events
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt
index ea37248..a3ce452 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt
@@ -1,11 +1,11 @@
 This is a testharness.js-based test.
-FAIL All property keys are recognized assert_in_array: Test property 'iterationComposite' should be one of the properties on  KeyframeEffect value "iterationComposite" not in array ["getTiming", "getComputedTiming", "updateTiming", "target", "composite", "pseudoElement", "getKeyframes", "setKeyframes", "KeyframeEffect constructor", "KeyframeEffect copy constructor"]
-PASS KeyframeEffect.getTiming does NOT trigger a style change event
+FAIL All property keys are recognized assert_in_array: Test property 'iterationComposite' should be one of the properties on  KeyframeEffect value "iterationComposite" not in array ["getComputedTiming", "getTiming", "updateTiming", "target", "pseudoElement", "composite", "getKeyframes", "setKeyframes", "KeyframeEffect constructor", "KeyframeEffect copy constructor"]
 PASS KeyframeEffect.getComputedTiming does NOT trigger a style change event
+PASS KeyframeEffect.getTiming does NOT trigger a style change event
 PASS KeyframeEffect.updateTiming does NOT trigger a style change event
 PASS KeyframeEffect.target does NOT trigger a style change event
-PASS KeyframeEffect.composite does NOT trigger a style change event
 PASS KeyframeEffect.pseudoElement does NOT trigger a style change event
+PASS KeyframeEffect.composite does NOT trigger a style change event
 PASS KeyframeEffect.getKeyframes does NOT trigger a style change event
 PASS KeyframeEffect.setKeyframes does NOT trigger a style change event
 PASS KeyframeEffect.KeyframeEffect constructor does NOT trigger a style change event
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
index 1b685b0..305bfa27 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt
@@ -1,19 +1,19 @@
 This is a testharness.js-based test.
-FAIL After setting timeline on paused animation it is still paused Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on animation paused outside active interval it is still paused Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on an idle animation without a start time it is still idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on an idle animation with a start time it is running Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on an idle animation with a sufficiently ancient start time it is finished Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After setting timeline on a play-pending animation it begins playing after pending promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL After setting timeline on a pause-pending animation it becomes paused after pending promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL After clearing timeline on paused animation it is still paused Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on finished animation it is idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on running animation it is idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on idle animation it is still idle Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing timeline on play-pending animation it is still pending Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing and re-setting timeline on play-pending animation it begins to play promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL After clearing timeline on a pause-pending animation it is still pending Cannot assign to read only property 'timeline' of object '#<Animation>'
-FAIL After clearing and re-setting timeline on a pause-pending animation it completes pausing promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL After clearing and re-setting timeline on an animation in the middle of an aborted pause, it continues playing using the same start time promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL After setting timeline on paused animation it is still paused Cannot set property timeline of #<Animation> which has only a getter
+FAIL After setting timeline on animation paused outside active interval it is still paused Cannot set property timeline of #<Animation> which has only a getter
+FAIL After setting timeline on an idle animation without a start time it is still idle Cannot set property timeline of #<Animation> which has only a getter
+FAIL After setting timeline on an idle animation with a start time it is running Cannot set property timeline of #<Animation> which has only a getter
+FAIL After setting timeline on an idle animation with a sufficiently ancient start time it is finished Cannot set property timeline of #<Animation> which has only a getter
+FAIL After setting timeline on a play-pending animation it begins playing after pending promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL After setting timeline on a pause-pending animation it becomes paused after pending promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL After clearing timeline on paused animation it is still paused Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing timeline on finished animation it is idle Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing timeline on running animation it is idle Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing timeline on idle animation it is still idle Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing timeline on play-pending animation it is still pending Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing and re-setting timeline on play-pending animation it begins to play promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL After clearing timeline on a pause-pending animation it is still pending Cannot set property timeline of #<Animation> which has only a getter
+FAIL After clearing and re-setting timeline on a pause-pending animation it completes pausing promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL After clearing and re-setting timeline on an animation in the middle of an aborted pause, it continues playing using the same start time promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/sync-start-times.html b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/sync-start-times.html
index 06dcf03..e9ef676 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/sync-start-times.html
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/animations/sync-start-times.html
@@ -13,6 +13,10 @@
     position: absolute;
     top: 40px;
     width: 40px;
+    /* To ensure Chrome to render the two boxes (one actively
+       animating and the other not) with the same subpixel offset
+       when there is subpixel translation during animation. */
+    will-change: transform;
   }
   #box-1 {
     background: blue;
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/timelines.html b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/timelines.html
index 50bb3ac..d570eed5 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/timelines.html
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/timelines.html
@@ -5,6 +5,12 @@
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
 <script src="../../testcommon.js"></script>
+<style>
+@keyframes opacity-animation {
+  from { opacity: 1; }
+  to { opacity: 0; }
+}
+</style>
 <div id="log"></div>
 <script>
 'use strict';
@@ -84,4 +90,23 @@
   }));
 }, 'Performs a microtask checkpoint after updating timelins');
 
+async_test(t => {
+  const div = createDiv(t);
+  let readyPromiseRan = false;
+  let finishedPromiseRan = false;
+  div.style.animation = 'opacity-animation 1ms';
+  let anim = div.getAnimations()[0];
+  anim.ready.then(t.step_func(() => {
+    readyPromiseRan = true;
+  }));
+  div.addEventListener('animationstart', t.step_func(() => {
+    assert_true(readyPromiseRan, 'It should run ready promise before animationstart event');
+  }));
+  anim.finished.then(t.step_func(() => {
+    finishedPromiseRan = true;
+  }));
+  div.addEventListener('animationend', t.step_func_done(() => {
+    assert_true(finishedPromiseRan, 'It should run finished promise before animationend event');
+  }));
+}, 'Runs finished promise before animation events');
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
index d583a4f..56358f91 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt
@@ -9,8 +9,8 @@
 PASS Removes an animation after updating its fill mode
 PASS Removes an animation after updating another animation's effect to one with different timing
 PASS Removes an animation after updating its effect to one with different timing
-FAIL Removes an animation after updating another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL Removes an animation after updating its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Removes an animation after updating another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL Removes an animation after updating its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Removes an animation after updating another animation's effect's properties
 PASS Removes an animation after updating its effect's properties
 PASS Removes an animation after updating another animation's effect to one with different properties
@@ -32,13 +32,13 @@
 PASS Does NOT dispatch a remove event twice
 PASS Does NOT remove an animation after making a redundant change to another animation's current time
 PASS Does NOT remove an animation after making a redundant change to its current time
-FAIL Does NOT remove an animation after making a redundant change to another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
-FAIL Does NOT remove an animation after making a redundant change to its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Does NOT remove an animation after making a redundant change to another animation's timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
+FAIL Does NOT remove an animation after making a redundant change to its timeline promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Does NOT remove an animation after making a redundant change to another animation's effect's properties
 PASS Does NOT remove an animation after making a redundant change to its effect's properties
-FAIL Updates ALL timelines before checking for replacement promise_test: Unhandled rejection with value: object "TypeError: Cannot assign to read only property 'timeline' of object '#<Animation>'"
+FAIL Updates ALL timelines before checking for replacement promise_test: Unhandled rejection with value: object "TypeError: Cannot set property timeline of #<Animation> which has only a getter"
 PASS Dispatches remove events after finish events
-FAIL Fires remove event before requestAnimationFrame assert_true: Not expecting event, but got remove event expected true got false
+PASS Fires remove event before requestAnimationFrame
 PASS Queues all remove events before running them
 PASS Performs removal in deeply nested iframes
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-iceGatheringState-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-iceGatheringState-expected.txt
index db32c8e1..b8da1700 100644
--- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-iceGatheringState-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-iceGatheringState-expected.txt
@@ -5,6 +5,6 @@
 PASS setLocalDescription(reoffer) with a new transport should cause iceGatheringState to go to "checking" and then "complete"
 PASS sRD does not cause ICE gathering state changes
 FAIL renegotiation that closes all transports should result in ICE gathering state "new" promise_test: Unhandled rejection with value: object "TypeError: pc1.getTransceivers(...)[0].stop is not a function"
-FAIL connection with one data channel should eventually have connected connection state assert_equals: Expect ICE transport to be in checking gatheringState when iceGatheringState is checking expected (string) "gathering" but got (undefined) undefined
+PASS connection with one data channel should eventually have connected connection state
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/region-expected.txt b/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/region-expected.txt
index bbc8739..305af88 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/region-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/region-expected.txt
@@ -1,4 +1,4 @@
 This is a testharness.js-based test.
-FAIL VTTCue.region, script-created cue Failed to set the 'region' property on 'VTTCue': The provided value is not of type 'VTTRegion'.
+FAIL VTTCue.region, script-created cue Failed to set the 'region' property on 'VTTCue': Failed to convert value to 'VTTRegion'.
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html
index de0cb687..27837e1 100644
--- a/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html
+++ b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/ar_dom_overlay.https.html
@@ -69,37 +69,29 @@
   });
 };
 
-let testFullscreen = function(overlayElement, session, fakeDeviceController, t) {
+let testFullscreen = async function(overlayElement, session, fakeDeviceController, t) {
   // If the browser implements DOM Overlay using Fullscreen API,
   // it must not be possible to change the DOM Overlay element by using
   // Fullscreen API, and attempts to do so must be rejected.
   // Since this is up to the UA, this test also passes if the fullscreen
   // element is different from the overlay element.
 
-  let rafPromise = new Promise((resolve) => {
-    session.requestAnimationFrame((time, xrFrame) => {
-      resolve();
-    });
-  });
-  let promises = [rafPromise];
+  // Wait for a rAF call before proceeding.
+  await new Promise((resolve) => session.requestAnimationFrame(resolve));
 
-  if (document.fullscreenElement == overlayElement) {
-    let elem = document.getElementById('div_other');
-    assert_true(elem != null);
-    assert_not_equals(elem, overlayElement);
+  assert_implements_optional(document.fullscreenElement == overlayElement,
+                             "WebXR DOM overlay is not using Fullscreen API");
+  let elem = document.getElementById('div_other');
+  assert_not_equals(elem, null);
+  assert_not_equals(elem, overlayElement);
 
-    let fullscreenPromise = new Promise((resolve, reject) => {
-      elem.requestFullscreen().then(() => {
-        assert_unreached("fullscreen change should be blocked");
-        reject();
-      }).catch(() => {
-        resolve();
-      });
-    });
-    promises.push(fullscreenPromise);
+  try {
+    await elem.requestFullscreen();
+    assert_unreached("fullscreen change should be blocked");
+  } catch {
+    // pass if the call rejects
   }
-
-  return Promise.all(promises);
+  // This is an async function, its return value is automatically a promise.
 };
 
 let watcherStep = new Event("watcherstep");
diff --git a/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/nested_fullscreen.https.html b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/nested_fullscreen.https.html
new file mode 100644
index 0000000..a8fc70fc
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/webxr/dom-overlay/nested_fullscreen.https.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="../resources/webxr_util.js"></script>
+<script src="../resources/webxr_test_constants.js"></script>
+<script src="../resources/webxr_test_asserts.js"></script>
+
+<style type="text/css">
+  div {
+      padding: 10px;
+      min-width: 10px;
+      min-height: 10px;
+  }
+  iframe {
+    border: 0;
+    width: 20px;
+    height: 20px;
+  }
+</style>
+<div id="div_overlay">
+  <canvas>
+  </canvas>
+</div>
+<div id="div_other">
+  <p>test text</p>
+</div>
+
+<script>
+
+const fakeDeviceInitParams = {
+  supportedModes: ["immersive-ar"],
+  views: VALID_VIEWS,
+  viewerOrigin: IDENTITY_TRANSFORM,
+  supportedFeatures: ALL_FEATURES,
+};
+
+// This test verifies that WebXR DOM Overlay mode works when the document is
+// already in fullscreen mode when the session starts. (This should work both
+// for a fullscreen-based overlay implementation and for one that treats the
+// overlay as an independent output.)
+promise_test(
+  async (setup) => {
+    setup.add_cleanup(() => document.exitFullscreen());
+
+    // Fullscreen the <body> element before running the test. Currently, this
+    // can't be an arbitrary element because the simulateUserActivation call
+    // adds a button to <body> which is only clickable if it's visible.
+    await test_driver.bless("fullscreen",
+                            () => document.body.requestFullscreen());
+
+    const overlayElement = document.getElementById('div_overlay');
+
+    xr_session_promise_test(
+      "Check XR session from fullscreen",
+      (session, fakeDeviceController, t) => {
+        // The overlay element should have a transparent background.
+        assert_equals(window.getComputedStyle(overlayElement).backgroundColor,
+                      'rgba(0, 0, 0, 0)');
+
+        // Check that the pseudostyle is set.
+        assert_equals(document.querySelector(':xr-overlay'), overlayElement);
+
+        // Wait for one animation frame before exiting.
+        return new Promise((resolve) => session.requestAnimationFrame(resolve));
+      },
+      fakeDeviceInitParams, 'immersive-ar', {
+        requiredFeatures: ['dom-overlay'],
+        domOverlay: { root: overlayElement }
+      }
+    );
+
+    // The setup promise_test automatically succeeds if it gets here
+    // without raising an exception. It'll pass even on systems that
+    // don't support WebXR or DOM Overlay.
+  },
+  "fullscreen setup"
+);
+
+</script>
diff --git a/third_party/blink/web_tests/fast/dom/MutationObserver/mutation-observer-constructor-expected.txt b/third_party/blink/web_tests/fast/dom/MutationObserver/mutation-observer-constructor-expected.txt
index 4b07ca02..237a9f9c 100644
--- a/third_party/blink/web_tests/fast/dom/MutationObserver/mutation-observer-constructor-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/MutationObserver/mutation-observer-constructor-expected.txt
@@ -7,10 +7,10 @@
 PASS typeof WebKitMutationObserver.prototype.disconnect is "function"
 PASS typeof observer.observe is "function"
 PASS typeof observer.disconnect is "function"
-PASS new MutationObserver({ handleEvent: function() {} }) threw exception TypeError: Failed to construct 'MutationObserver': The callback provided as parameter 1 is not a function..
-PASS new MutationObserver({}) threw exception TypeError: Failed to construct 'MutationObserver': The callback provided as parameter 1 is not a function..
-PASS new MutationObserver(42) threw exception TypeError: Failed to construct 'MutationObserver': The callback provided as parameter 1 is not a function..
-PASS new MutationObserver("foo") threw exception TypeError: Failed to construct 'MutationObserver': The callback provided as parameter 1 is not a function..
+PASS new MutationObserver({ handleEvent: function() {} }) threw exception TypeError: Failed to construct 'MutationObserver': parameter 1 is not of type 'Function'..
+PASS new MutationObserver({}) threw exception TypeError: Failed to construct 'MutationObserver': parameter 1 is not of type 'Function'..
+PASS new MutationObserver(42) threw exception TypeError: Failed to construct 'MutationObserver': parameter 1 is not of type 'Function'..
+PASS new MutationObserver("foo") threw exception TypeError: Failed to construct 'MutationObserver': parameter 1 is not of type 'Function'..
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/dom/TreeWalker/TreeWalker-currentNode-expected.txt b/third_party/blink/web_tests/fast/dom/TreeWalker/TreeWalker-currentNode-expected.txt
index 397c4e1a..8aa3184 100644
--- a/third_party/blink/web_tests/fast/dom/TreeWalker/TreeWalker-currentNode-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/TreeWalker/TreeWalker-currentNode-expected.txt
@@ -13,9 +13,9 @@
 Test that setting the currentNode to non-Node values throws.
 
 
-PASS w.currentNode = null threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': The provided value is not of type 'Node'..
-PASS w.currentNode = {} threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': The provided value is not of type 'Node'..
-PASS w.currentNode = window threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': The provided value is not of type 'Node'..
+PASS w.currentNode = null threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': Failed to convert value to 'Node'..
+PASS w.currentNode = {} threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': Failed to convert value to 'Node'..
+PASS w.currentNode = window threw exception TypeError: Failed to set the 'currentNode' property on 'TreeWalker': Failed to convert value to 'Node'..
 
 
 Test that we handle setting the currentNode to arbitrary nodes not under the root element.
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-in-closure-after-navigation-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-in-closure-after-navigation-expected.txt
index 1579b43..75f8a5f1 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-in-closure-after-navigation-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-in-closure-after-navigation-expected.txt
@@ -6,7 +6,7 @@
 PASS window is frames
 PASS parent is top
 PASS window is non-null.
-FAIL self should be non-null. Was null
-FAIL frames should be non-null. Was null
-PASS parent is null.
-PASS top is null.
+PASS self is non-null.
+PASS frames is non-null.
+PASS parent is non-null.
+PASS top is non-null.
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html
index 8e27624..411301b 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html
@@ -13,6 +13,9 @@
 {
     if (path.length < 2)
         return;
+    // It's expected that performance.eventCounts.size is non-zero.
+    if (getPropertyPath(path, path.length) == "performance.eventCounts.size")
+        return;
     var propertyDir = getPropertyPath(path, path.length - 1);
     var cachedPropertyDir = "cached_" + propertyDir.replace('.', '_');
     window[cachedPropertyDir] = eval("childWindow." + propertyDir);
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html
index 1f45780..07f2fd6 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html
@@ -13,6 +13,9 @@
 {
     if (path.length < 2)
         return;
+    // It's expected that performance.eventCounts.size is non-zero.
+    if (getPropertyPath(path, path.length) == "performance.eventCounts.size")
+        return;
     var propertyDir = getPropertyPath(path, path.length - 1);
     var cachedPropertyDir = "cached_" + propertyDir.replace('.', '_');
     window[cachedPropertyDir] = eval("childWindow." + propertyDir);
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html
index fbe9aae8..e158acd 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html
@@ -12,6 +12,9 @@
 {
     if (path.length < 2)
         return;
+    // It's expected that performance.eventCounts.size is non-zero.
+    if (getPropertyPath(path, path.length) == "performance.eventCounts.size")
+        return;
     var propertyDir = getPropertyPath(path, path.length - 1);
     var cachedPropertyDir = "cached_" + propertyDir.replace('.', '_');
     window[cachedPropertyDir] = eval("childWindow." + propertyDir);
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
index ecb298c..12687be 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
@@ -191,6 +191,7 @@
 PASS oldChildWindow.outerWidth is newChildWindow.outerWidth
 PASS oldChildWindow.pageXOffset is newChildWindow.pageXOffset
 PASS oldChildWindow.pageYOffset is newChildWindow.pageYOffset
+PASS oldChildWindow.performance.eventCounts.size is newChildWindow.performance.eventCounts.size
 PASS oldChildWindow.performance.navigation.redirectCount is newChildWindow.performance.navigation.redirectCount
 PASS oldChildWindow.performance.navigation.type is newChildWindow.performance.navigation.type
 PASS oldChildWindow.performance.onresourcetimingbufferfull is newChildWindow.performance.onresourcetimingbufferfull
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
index bd9309f27..7514b234 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
@@ -12,6 +12,7 @@
 PASS childWindow.innerWidth is 0
 PASS childWindow.isSecureContext is false
 PASS childWindow.length is 0
+FAIL childWindow.location.href should be about:blank (of type string). Was undefined (of type undefined).
 PASS childWindow.locationbar.visible is false
 PASS childWindow.menubar.visible is false
 PASS childWindow.name is ''
@@ -23,8 +24,6 @@
 PASS childWindow.navigator.hardwareConcurrency is window.navigator.hardwareConcurrency
 PASS childWindow.navigator.language is window.navigator.language
 PASS childWindow.navigator.maxTouchPoints is 0
-PASS childWindow.navigator.mediaSession.metadata is null
-PASS childWindow.navigator.mediaSession.playbackState is 'none'
 PASS childWindow.navigator.onLine is window.navigator.onLine
 PASS childWindow.navigator.platform is window.navigator.platform
 PASS childWindow.navigator.product is window.navigator.product
diff --git a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
index 74def1f..bbd0949 100644
--- a/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
@@ -12,6 +12,7 @@
 PASS childWindow.innerWidth is 0
 PASS childWindow.isSecureContext is false
 PASS childWindow.length is 0
+FAIL childWindow.location.href should be about:blank (of type string). Was undefined (of type undefined).
 PASS childWindow.locationbar.visible is false
 PASS childWindow.menubar.visible is false
 PASS childWindow.name is ''
@@ -23,8 +24,6 @@
 PASS childWindow.navigator.hardwareConcurrency is window.navigator.hardwareConcurrency
 PASS childWindow.navigator.language is window.navigator.language
 PASS childWindow.navigator.maxTouchPoints is 0
-PASS childWindow.navigator.mediaSession.metadata is null
-PASS childWindow.navigator.mediaSession.playbackState is 'none'
 PASS childWindow.navigator.onLine is window.navigator.onLine
 PASS childWindow.navigator.platform is window.navigator.platform
 PASS childWindow.navigator.product is window.navigator.product
diff --git a/third_party/blink/web_tests/fast/dom/Window/resources/property-access-in-closure-after-navigation-child.html b/third_party/blink/web_tests/fast/dom/Window/resources/property-access-in-closure-after-navigation-child.html
index e9dff7d..4ff5d1f 100644
--- a/third_party/blink/web_tests/fast/dom/Window/resources/property-access-in-closure-after-navigation-child.html
+++ b/third_party/blink/web_tests/fast/dom/Window/resources/property-access-in-closure-after-navigation-child.html
@@ -35,8 +35,10 @@
     // WindowProxy.
     // https://html.spec.whatwg.org/multipage/browsers.html#dom-top
     // https://html.spec.whatwg.org/multipage/browsers.html#dom-parent
-    shouldBeNull(parent, "parent");
-    shouldBeNull(top, "top");
+    // However, when navigated, the WindowProxy's browsing context still exists.
+    // When the iframe is removed, |parent| and |top| are null.
+    shouldBeNonNull(parent, "parent");
+    shouldBeNonNull(top, "top");
   };
   location = 'data:text/html,<body>Testing...</body>';
 }
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-constructor.html b/third_party/blink/web_tests/fast/dom/Window/window-constructor.html
index f4fbbb6..497ed74 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-constructor.html
+++ b/third_party/blink/web_tests/fast/dom/Window/window-constructor.html
@@ -16,9 +16,7 @@
   assert_throws_js(TypeError, () => { new window.__proto__.constructor; },
       "Window.prototype constructor must be non-callable.");
 
-  assert_throws_js(TypeError, () => { window.__proto__.__proto__.constructor(); },
-      "WindowProperties constructor must be non-callable.");
-  assert_throws_js(TypeError, () => { new window.__proto__.__proto__.constructor; },
-      "WindowProperties constructor must be non-callable.");
+  assert_equals(window.__proto__.__proto__.constructor, EventTarget,
+      "WindowProperties constructor is EventTarget.");
 }, "Test Window and its prototype chain's constructors.");
 </script>
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype-expected.txt b/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype-expected.txt
index 4b3902b..bea5911 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype-expected.txt
@@ -14,7 +14,7 @@
 PASS __proto__ = originalWindowPrototype; __proto__ is originalWindowPrototype
 PASS anotherObject.__proto__ = window; anotherObject.__proto__ is window
 PASS __proto__ = null; __proto__ threw exception TypeError: Immutable prototype object '#<Window>' cannot have their prototype set.
-PASS location.__proto__.__proto__ = location threw exception TypeError: Cyclic __proto__ value.
+PASS location.__proto__.__proto__ = location threw exception TypeError: Immutable prototype object '#<Location>' cannot have their prototype set.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype.html b/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype.html
index 733f169..5fc9b6e0 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype.html
+++ b/third_party/blink/web_tests/fast/dom/Window/window-custom-prototype.html
@@ -24,7 +24,7 @@
 shouldBe("__proto__ = originalWindowPrototype; __proto__", "originalWindowPrototype");
 shouldBe("anotherObject.__proto__ = window; anotherObject.__proto__", "window");
 shouldThrow("__proto__ = null; __proto__", error);
-shouldThrow("location.__proto__.__proto__ = location", "'TypeError: Cyclic __proto__ value'");
+shouldThrow("location.__proto__.__proto__ = location", "'TypeError: Immutable prototype object \\'#<Location>\\' cannot have their prototype set'");
 </script>
 </body>
 </html>
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-postmessage-clone-deep-array-expected.txt b/third_party/blink/web_tests/fast/dom/Window/window-postmessage-clone-deep-array-expected.txt
index af7bea55..6cdf2ba 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-postmessage-clone-deep-array-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/window-postmessage-clone-deep-array-expected.txt
@@ -1,5 +1,4 @@
-CONSOLE ERROR: line 11: Uncaught RangeError: Maximum call stack size exceeded
 Tests that we support cloning deep(ish) arrays.
-
+FAIL: 'postMessage(deepArray)' should not throw but threw RangeError: Maximum call stack size exceeded
 PASS: eventData is done of type string
 
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-properties-performance-expected.txt b/third_party/blink/web_tests/fast/dom/Window/window-properties-performance-expected.txt
index 3249f61..3a451c0 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-properties-performance-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/window-properties-performance-expected.txt
@@ -12,6 +12,7 @@
 window.performance.eventCounts.get [function]
 window.performance.eventCounts.has [function]
 window.performance.eventCounts.keys [function]
+window.performance.eventCounts.size [number]
 window.performance.eventCounts.values [function]
 window.performance.getEntries [function]
 window.performance.getEntriesByName [function]
diff --git a/third_party/blink/web_tests/fast/dom/Window/window-scroll-arguments-expected.txt b/third_party/blink/web_tests/fast/dom/Window/window-scroll-arguments-expected.txt
index 5407f07..1217f52 100644
--- a/third_party/blink/web_tests/fast/dom/Window/window-scroll-arguments-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/Window/window-scroll-arguments-expected.txt
@@ -10,7 +10,7 @@
 Testing - scrollTo with 0 arguments
 PASS window.scrollTo() did not throw exception.
 Testing - scrollTo with 1 non-dictionary argument
-PASS window.scrollTo(x) threw exception TypeError: Failed to execute 'scrollTo' on 'Window': parameter 1 ('options') is not an object..
+PASS window.scrollTo(x) threw exception TypeError: Failed to execute 'scrollTo' on 'Window': cannot convert to dictionary..
 Testing - scrollTo with a valid ScrollToOptions argument
 PASS window.scrollTo({ }) did not throw exception.
 PASS window.scrollTo({ left: x }) did not throw exception.
@@ -34,7 +34,7 @@
 Testing - scroll with 0 arguments
 PASS window.scroll() did not throw exception.
 Testing - scroll with 1 argument
-PASS window.scroll(x) threw exception TypeError: Failed to execute 'scroll' on 'Window': parameter 1 ('options') is not an object..
+PASS window.scroll(x) threw exception TypeError: Failed to execute 'scroll' on 'Window': cannot convert to dictionary..
 Testing - scroll with a valid ScrollToOptions argument
 PASS window.scroll({ }) did not throw exception.
 PASS window.scroll({ left: x }) did not throw exception.
@@ -58,7 +58,7 @@
 Testing - scrollBy with 0 arguments
 PASS window.scrollBy() did not throw exception.
 Testing - scrollBy with 1 argument
-PASS window.scrollBy(x) threw exception TypeError: Failed to execute 'scrollBy' on 'Window': parameter 1 ('options') is not an object..
+PASS window.scrollBy(x) threw exception TypeError: Failed to execute 'scrollBy' on 'Window': cannot convert to dictionary..
 Testing - scrollBy with a valid ScrollOptions argument
 PASS window.scrollBy({ }) did not throw exception.
 PASS window.scrollBy({ left: x }) did not throw exception.
diff --git a/third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property-expected.txt b/third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property-expected.txt
similarity index 61%
rename from third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property-expected.txt
rename to third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property-expected.txt
index 272e47a..b1d5929d 100644
--- a/third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property-expected.txt
@@ -1,13 +1,13 @@
-This test ensures the collection item obtained by named property getter is overridden by object's own property.
+This test ensures the collection item obtained by named property getter is NOT overridden by object's own property.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 PASS document.all.foo is document.getElementById('element0')
-PASS document.all.foo is 1
+PASS document.all.foo is document.getElementById('element0')
 PASS document.styleSheets.link1 is document.styleSheets[0]
-PASS document.styleSheets.link1 is 1
+PASS document.styleSheets.link1 is document.styleSheets[0]
 PASS document.body.attributes.style is document.body.attributes['style']
-PASS document.body.attributes.style is 1
+PASS document.body.attributes.style is document.body.attributes['style']
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property.html b/third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property.html
similarity index 74%
rename from third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property.html
rename to third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property.html
index e6875780..cc4db4a 100644
--- a/third_party/blink/web_tests/fast/dom/collection-item-should-be-overridden-by-own-property.html
+++ b/third_party/blink/web_tests/fast/dom/collection-item-must-not-be-overridden-by-own-property.html
@@ -10,20 +10,19 @@
 <input type="text" id="element1" name="bar">
 </div>
 <script>
-description("This test ensures the collection item obtained by named property getter is overridden by object's own property.");
+description("This test ensures the collection item obtained by named property getter is NOT overridden by object's own property.");
 
 shouldBe("document.all.foo", "document.getElementById('element0')");
 document.all.foo = 1;
-shouldBe("document.all.foo", "1");
+shouldBe("document.all.foo", "document.getElementById('element0')");
 
 shouldBe("document.styleSheets.link1", "document.styleSheets[0]");
 document.styleSheets.link1 = 1;
-shouldBe("document.styleSheets.link1", "1");
+shouldBe("document.styleSheets.link1", "document.styleSheets[0]");
 
 shouldBe("document.body.attributes.style", "document.body.attributes['style']");
 document.body.attributes.style = 1;
-shouldBe("document.body.attributes.style", "1");
-
+shouldBe("document.body.attributes.style", "document.body.attributes['style']");
 
 document.getElementById('testElements').style.display = 'none';
 
diff --git a/third_party/blink/web_tests/fast/dom/dataset-xhtml-expected.txt b/third_party/blink/web_tests/fast/dom/dataset-xhtml-expected.txt
index 938c8c2..705a0cb 100644
--- a/third_party/blink/web_tests/fast/dom/dataset-xhtml-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/dataset-xhtml-expected.txt
@@ -24,9 +24,9 @@
 PASS testSet('à', 'data-à') is true
 
 
-PASS testSet('-foo', 'dummy') threw exception SyntaxError: Failed to set the '-foo' property on 'DOMStringMap': '-foo' is not a valid property name..
-PASS testSet('foo ', 'dummy') threw exception InvalidCharacterError: Failed to set the 'foo ' property on 'DOMStringMap': 'data-foo ' is not a valid attribute name..
-FAIL testSet('foo豈', 'dummy') should throw InvalidCharacterError: Failed to set the 'foo豈' property on 'DOMStringMap': 'data-foo豈' is not a valid attribute name.. Threw exception InvalidCharacterError: Failed to set the 'foo豈' property on 'DOMStringMap': 'data-foo豈' is not a valid attribute name..
+PASS testSet('-foo', 'dummy') threw exception SyntaxError: '-foo' is not a valid property name..
+PASS testSet('foo ', 'dummy') threw exception InvalidCharacterError: 'data-foo ' is not a valid attribute name..
+PASS testSet('foo豈', 'dummy') threw exception InvalidCharacterError: 'data-foo豈' is not a valid attribute name..
 
 
 PASS testDelete('data-foo', 'foo') is true
diff --git a/third_party/blink/web_tests/fast/dom/dataset-xhtml.xhtml b/third_party/blink/web_tests/fast/dom/dataset-xhtml.xhtml
index 522f32c..e9d9301 100644
--- a/third_party/blink/web_tests/fast/dom/dataset-xhtml.xhtml
+++ b/third_party/blink/web_tests/fast/dom/dataset-xhtml.xhtml
@@ -55,9 +55,9 @@
 shouldBeTrue("testSet('\xE0', 'data-\xE0')");
 debug("");
 
-shouldThrow("testSet('-foo', 'dummy')", '"SyntaxError: Failed to set the \'-foo\' property on \'DOMStringMap\': \'-foo\' is not a valid property name."');
-shouldThrow("testSet('foo\x20', 'dummy')", '"InvalidCharacterError: Failed to set the \'foo\x20\' property on \'DOMStringMap\': \'data-foo\x20\' is not a valid attribute name."');
-shouldThrow("testSet('foo\uF900', 'dummy')", '"InvalidCharacterError: Failed to set the \'foo\uF900\' property on \'DOMStringMap\': \'data-foo\uF900\' is not a valid attribute name."');
+shouldThrow("testSet('-foo', 'dummy')", '"SyntaxError: \'-foo\' is not a valid property name."');
+shouldThrow("testSet('foo\x20', 'dummy')", '"InvalidCharacterError: \'data-foo\x20\' is not a valid attribute name."');
+shouldThrow("testSet('foo\uF900', 'dummy')", '"InvalidCharacterError: \'data-foo\uF900\' is not a valid attribute name."');
 debug("");
 
 function testDelete(attr, prop)
diff --git a/third_party/blink/web_tests/fast/dom/setter-type-enforcement-expected.txt b/third_party/blink/web_tests/fast/dom/setter-type-enforcement-expected.txt
index 59afcd0..c4229739 100644
--- a/third_party/blink/web_tests/fast/dom/setter-type-enforcement-expected.txt
+++ b/third_party/blink/web_tests/fast/dom/setter-type-enforcement-expected.txt
@@ -2,7 +2,7 @@
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-PASS document.body = nodelist; threw exception TypeError: Failed to set the 'body' property on 'Document': The provided value is not of type 'HTMLElement'..
+PASS document.body = nodelist; threw exception TypeError: Failed to set the 'body' property on 'Document': Failed to convert value to 'HTMLElement'..
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/events/constructors/event-constructors-expected.txt b/third_party/blink/web_tests/fast/events/constructors/event-constructors-expected.txt
index 079d34b..b7ff3cf 100644
--- a/third_party/blink/web_tests/fast/events/constructors/event-constructors-expected.txt
+++ b/third_party/blink/web_tests/fast/events/constructors/event-constructors-expected.txt
@@ -20,7 +20,7 @@
 PASS (new Event('eventType', null)).cancelable is false
 PASS (new Event('eventType', undefined)).bubbles is false
 PASS (new Event('eventType', undefined)).cancelable is false
-PASS new Event('eventType', 0) threw exception TypeError: Failed to construct 'Event': parameter 2 ('eventInitDict') is not an object..
+PASS new Event('eventType', 0) threw exception TypeError: Failed to construct 'Event': cannot convert to dictionary..
 PASS (new Event('eventType', window)).bubbles is false
 PASS (new Event('eventType', window)).cancelable is false
 PASS (new Event('eventType', window)).bubbles is true
diff --git a/third_party/blink/web_tests/fast/files/url-null-expected.txt b/third_party/blink/web_tests/fast/files/url-null-expected.txt
index 681eb42..f9fc5d25 100644
--- a/third_party/blink/web_tests/fast/files/url-null-expected.txt
+++ b/third_party/blink/web_tests/fast/files/url-null-expected.txt
@@ -2,8 +2,8 @@
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-PASS URL.createObjectURL(null) threw exception TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided..
-PASS URL.createObjectURL(undefined) threw exception TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided..
+PASS URL.createObjectURL(null) threw exception TypeError: Failed to execute 'createObjectURL' on 'URL': Overload resolution failed..
+PASS URL.createObjectURL(undefined) threw exception TypeError: Failed to execute 'createObjectURL' on 'URL': Overload resolution failed..
 PASS URL.revokeObjectURL(null) did not throw exception.
 PASS URL.revokeObjectURL(undefined) did not throw exception.
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/fast/filesystem/flags-passing-expected.txt b/third_party/blink/web_tests/fast/filesystem/flags-passing-expected.txt
index 94ef5cc..29740b2e 100644
--- a/third_party/blink/web_tests/fast/filesystem/flags-passing-expected.txt
+++ b/third_party/blink/web_tests/fast/filesystem/flags-passing-expected.txt
@@ -6,7 +6,7 @@
 * Passing JSON Flags object (with exclusive=true).
 * Passing null as a flags parameter.
 * Passing a number as a flags parameter.
-Caught exception: TypeError: Failed to execute 'getFile' on 'DirectoryEntry': parameter 2 ('options') is not an object.
+Caught exception: TypeError: Failed to execute 'getFile' on 'DirectoryEntry': cannot convert to dictionary.
 Finished running tests.
 PASS expectedCallbacksCount is 1
 PASS unexpectedCallbacksCount is 0
diff --git a/third_party/blink/web_tests/fast/forms/file/input-file-write-files-expected.txt b/third_party/blink/web_tests/fast/forms/file/input-file-write-files-expected.txt
index e128483..6e3b98b 100644
--- a/third_party/blink/web_tests/fast/forms/file/input-file-write-files-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/file/input-file-write-files-expected.txt
@@ -3,7 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 PASS file1.files.length is 1
-PASS file1.files = 'foo' threw exception TypeError: Failed to set the 'files' property on 'HTMLInputElement': The provided value is not of type 'FileList'..
+PASS file1.files = 'foo' threw exception TypeError: Failed to set the 'files' property on 'HTMLInputElement': Failed to convert value to 'FileList'..
 PASS file1.files.length is 1
 PASS file1.files.item(0).name is "foo.txt"
 PASS file1.files.length is 1
diff --git a/third_party/blink/web_tests/fast/forms/select/collection-setter-getter-expected.txt b/third_party/blink/web_tests/fast/forms/select/collection-setter-getter-expected.txt
index db45630..d7ced82 100644
--- a/third_party/blink/web_tests/fast/forms/select/collection-setter-getter-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/select/collection-setter-getter-expected.txt
@@ -12,7 +12,7 @@
 4) trying to set an element to a non-Option value: null
 PASS set_options.length is 3
 5) trying to set an element to a non-Option value: form (object of incorrect type)
-PASS set_options[10] = my_form threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': The provided value is not of type 'HTMLOptionElement'..
+PASS set_options[10] = my_form threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': parameter 3 is not of type 'HTMLOptionElement'..
 PASS set_options.length is 3
 PASS successfullyParsed is true
 
diff --git a/third_party/blink/web_tests/fast/forms/select/exceptions-expected.txt b/third_party/blink/web_tests/fast/forms/select/exceptions-expected.txt
index 108821bc..ab6ab6b 100644
--- a/third_party/blink/web_tests/fast/forms/select/exceptions-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/select/exceptions-expected.txt
@@ -2,7 +2,7 @@
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-PASS el[1] = 0; threw exception TypeError: Failed to set an indexed property on 'HTMLSelectElement': The provided value is not of type 'HTMLOptionElement'..
+PASS el[1] = 0; threw exception TypeError: Failed to set an indexed property on 'HTMLSelectElement': parameter 3 is not of type 'HTMLOptionElement'..
 PASS el.namedItem() threw exception TypeError: Failed to execute 'namedItem' on 'HTMLSelectElement': 1 argument required, but only 0 present..
 PASS successfullyParsed is true
 
diff --git a/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-expected.txt b/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-expected.txt
index e0f0530..514621e 100644
--- a/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-expected.txt
@@ -59,7 +59,7 @@
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is -1
 19) trying to set an element that's not an option: select element
-PASS mySelect.options[10] = mySelect; threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': The provided value is not of type 'HTMLOptionElement'..
+PASS mySelect.options[10] = mySelect; threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': parameter 3 is not of type 'HTMLOptionElement'..
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is -1
 20) trying to set a option element using an invalid index: negative infinity
diff --git a/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-multiple-expected.txt b/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-multiple-expected.txt
index e10e140..e51ec9d 100644
--- a/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-multiple-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/select/select-selectedIndex-multiple-expected.txt
@@ -59,7 +59,7 @@
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is 0
 19) trying to set an element that's not an option: select element
-PASS mySelect.options[10] = mySelect; threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': The provided value is not of type 'HTMLOptionElement'..
+PASS mySelect.options[10] = mySelect; threw exception TypeError: Failed to set an indexed property on 'HTMLOptionsCollection': parameter 3 is not of type 'HTMLOptionElement'..
 PASS mySelect.options.length is 10
 PASS mySelect.selectedIndex is 0
 20) trying to set a option element using an invalid index: negative infinity
diff --git a/third_party/blink/web_tests/fast/js/Promise-bindings-check-exception-expected.txt b/third_party/blink/web_tests/fast/js/Promise-bindings-check-exception-expected.txt
index c46b88bf..af2a622 100644
--- a/third_party/blink/web_tests/fast/js/Promise-bindings-check-exception-expected.txt
+++ b/third_party/blink/web_tests/fast/js/Promise-bindings-check-exception-expected.txt
@@ -10,7 +10,7 @@
 PASS Resolved as expected: convert(boolean)
 PASS Rejected as expected: type error(Dictionary)
 PASS reason instanceof Error is true
-TypeError: Failed to execute 'promiseCheck' on 'Internals': Failed to convert value to 'object'.
+TypeError: Failed to execute 'promiseCheck' on 'Internals': parameter 3 is not of type 'object'.
 PASS Resolved as expected: convert(String)
 PASS Rejected as expected: conversion error(toString)
 PASS reason instanceof Error is true
@@ -28,7 +28,7 @@
 PASS Resolved as expected: valid arguments
 PASS Rejected as expected: type error(Dictionary)
 PASS reason instanceof Error is true
-TypeError: Failed to execute 'promiseCheckWithoutExceptionState' on 'Internals': Failed to convert value to 'object'.
+TypeError: Failed to execute 'promiseCheckWithoutExceptionState' on 'Internals': parameter 1 is not of type 'object'.
 PASS Resolved as expected: convert(String...)
 PASS Rejected as expected: conversion error(String...)
 PASS reason instanceof Error is true
@@ -41,10 +41,10 @@
 PASS Resolved as expected: valid argument (Location, long, long)
 PASS Rejected as expected: type error (Object)
 PASS reason instanceof Error is true
-TypeError: Failed to execute 'promiseCheckOverload' on 'Internals': No function was found that matched the signature provided.
+TypeError: Failed to execute 'promiseCheckOverload' on 'Internals': Overload resolution failed.
 PASS Rejected as expected: type error (Location, long)
 PASS reason instanceof Error is true
-TypeError: Failed to execute 'promiseCheckOverload' on 'Internals': Valid arities are: [1, 3], but 2 arguments provided.
+TypeError: Failed to execute 'promiseCheckOverload' on 'Internals': Overload resolution failed.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/js/getOwnPropertyDescriptor-expected.txt b/third_party/blink/web_tests/fast/js/getOwnPropertyDescriptor-expected.txt
index 81b2aec7..5cfaa7b5 100644
--- a/third_party/blink/web_tests/fast/js/getOwnPropertyDescriptor-expected.txt
+++ b/third_party/blink/web_tests/fast/js/getOwnPropertyDescriptor-expected.txt
@@ -33,11 +33,6 @@
 PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').enumerable is true
 PASS Object.getOwnPropertyDescriptor(document.__proto__.__proto__, 'createElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(window, 'location').value is window.location
-PASS Object.getOwnPropertyDescriptor(window, 'location').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(window, 'location').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(window, 'location').enumerable is true
-PASS Object.getOwnPropertyDescriptor(window, 'location').configurable is false
 PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').value is Number.NEGATIVE_INFINITY
 PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(Number, 'NEGATIVE_INFINITY').hasOwnProperty('set') is false
@@ -123,21 +118,11 @@
 PASS Object.getOwnPropertyDescriptor(global, 'Infinity').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'Infinity').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'Infinity').configurable is false
-PASS Object.getOwnPropertyDescriptor(global, 'window').value is global
-PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'window').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'window').enumerable is true
-PASS Object.getOwnPropertyDescriptor(global, 'window').configurable is false
 PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').value is XMLHttpRequest
 PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'XMLHttpRequest').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'length').value is global.length
-PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'length').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'length').enumerable is true
-FAIL Object.getOwnPropertyDescriptor(global, 'length').configurable should be false. Was true.
 PASS Object.getOwnPropertyDescriptor(global, 0).value is global[0]
 PASS Object.getOwnPropertyDescriptor(global, 0).hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 0).hasOwnProperty('set') is false
diff --git a/third_party/blink/web_tests/fast/js/resources/getOwnPropertyDescriptor.js b/third_party/blink/web_tests/fast/js/resources/getOwnPropertyDescriptor.js
index f4406c41..b27f4aba 100644
--- a/third_party/blink/web_tests/fast/js/resources/getOwnPropertyDescriptor.js
+++ b/third_party/blink/web_tests/fast/js/resources/getOwnPropertyDescriptor.js
@@ -24,7 +24,6 @@
 descriptorShouldBe("String.prototype", "'concat'", {writable: true, enumerable: false, configurable: true, value:"String.prototype.concat"});
 descriptorShouldBe("RegExp.prototype", "'exec'", {writable: true, enumerable: false, configurable: true, value:"RegExp.prototype.exec"});
 descriptorShouldBe("document.__proto__.__proto__", "'createElement'", {writable: true, enumerable: true, configurable: true, value:"document.createElement"});
-descriptorShouldBe("window", "'location'", {writable: false, enumerable: true, configurable: false, value: "window.location"});
 descriptorShouldBe("Number", "'NEGATIVE_INFINITY'", {writable: false, enumerable: false, configurable: false, value:"Number.NEGATIVE_INFINITY"});
 descriptorShouldBe("RegExp", "'$_'", {writable: true, enumerable: false, configurable: true, value:"RegExp.$_"});
 descriptorShouldBe("/a/g", "'global'", {writable: true, enumerable: false, configurable: false, value:true});
@@ -43,9 +42,7 @@
 descriptorShouldBe("global", "'undefined'", {writable: false, enumerable: false, configurable: false, value:"undefined"});
 descriptorShouldBe("global", "'NaN'", {writable: false, enumerable: false, configurable: false, value:"NaN"});
 descriptorShouldBe("global", "'Infinity'", {writable: false, enumerable: false, configurable: false, value:"Infinity"});
-descriptorShouldBe("global", "'window'", {writable: false, enumerable: true, configurable: false, value:"global"});
 descriptorShouldBe("global", "'XMLHttpRequest'", {writable: true, enumerable: false, configurable: true, value:"XMLHttpRequest"});
-descriptorShouldBe("global", "'length'", {writable: true, enumerable: true, configurable: false, value:"global.length"});
 descriptorShouldBe("global", "0", {writable: false, enumerable: true, configurable: true, value:"global[0]"});
 
 var objectWithGetter = {};
diff --git a/third_party/blink/web_tests/fast/mediastream/argument-types-expected.txt b/third_party/blink/web_tests/fast/mediastream/argument-types-expected.txt
index b6f91cb..d5998ce 100644
--- a/third_party/blink/web_tests/fast/mediastream/argument-types-expected.txt
+++ b/third_party/blink/web_tests/fast/mediastream/argument-types-expected.txt
@@ -8,32 +8,32 @@
 PASS navigator.webkitGetUserMedia({video: true}, callbackFunction, callbackFunction) did not throw exception.
 PASS navigator.webkitGetUserMedia({audio: true}, callbackFunction, callbackFunction) did not throw exception.
 PASS navigator.webkitGetUserMedia({audio: true, video: true}, callbackFunction, callbackFunction) did not throw exception.
-PASS navigator.webkitGetUserMedia(-Infinity, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 1 ('constraints') is not an object..
-PASS navigator.webkitGetUserMedia(42, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 1 ('constraints') is not an object..
-PASS navigator.webkitGetUserMedia(Infinity, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 1 ('constraints') is not an object..
+PASS navigator.webkitGetUserMedia(-Infinity, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': cannot convert to dictionary..
+PASS navigator.webkitGetUserMedia(42, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': cannot convert to dictionary..
+PASS navigator.webkitGetUserMedia(Infinity, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': cannot convert to dictionary..
 PASS navigator.webkitGetUserMedia(emptyFunction, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': At least one of audio and video must be requested.
 PASS navigator.webkitGetUserMedia(null, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': At least one of audio and video must be requested.
-PASS navigator.webkitGetUserMedia(true, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 1 ('constraints') is not an object..
+PASS navigator.webkitGetUserMedia(true, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': cannot convert to dictionary..
 PASS navigator.webkitGetUserMedia(undefined, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': At least one of audio and video must be requested.
 PASS navigator.webkitGetUserMedia({ }, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': At least one of audio and video must be requested.
 PASS navigator.webkitGetUserMedia({foo: true }, emptyFunction, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': At least one of audio and video must be requested.
-PASS navigator.webkitGetUserMedia({audio:true, video:true}, emptyFunction, undefined) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, "foobar", emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, -Infinity, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, 42, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, Infinity, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, "video") threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, -Infinity) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, 42) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, Infinity) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, null) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, true) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, undefined) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, {}) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 3 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, null, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, true, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, undefined, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
-PASS navigator.webkitGetUserMedia({video: true}, {}, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': The callback provided as parameter 2 is not a function..
+PASS navigator.webkitGetUserMedia({audio:true, video:true}, emptyFunction, undefined) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, "foobar", emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, -Infinity, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, 42, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, Infinity, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, "video") threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, -Infinity) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, 42) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, Infinity) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, null) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, true) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, undefined) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, emptyFunction, {}) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 3 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, null, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, true, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, undefined, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
+PASS navigator.webkitGetUserMedia({video: true}, {}, emptyFunction) threw exception TypeError: Failed to execute 'webkitGetUserMedia' on 'Navigator': parameter 2 is not of type 'Function'..
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-expected.txt b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-expected.txt
index e53daa9..fd69d8b 100644
--- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-expected.txt
+++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-expected.txt
@@ -11,7 +11,7 @@
 PASS new RTCPeerConnection(undefined); did not throw exception.
 PASS new RTCPeerConnection({}); did not throw exception.
 PASS new RTCPeerConnection(); did not throw exception.
-PASS new RTCPeerConnection(''); threw exception TypeError: Failed to construct 'RTCPeerConnection': parameter 1 ('configuration') is not an object..
+PASS new RTCPeerConnection(''); threw exception TypeError: Failed to construct 'RTCPeerConnection': cannot convert to dictionary..
 PASS new RTCPeerConnection({iceServers:[]}); did not throw exception.
 PASS new RTCPeerConnection({iceServers:[{url:'stun:foo.com'}]}); did not throw exception.
 PASS new RTCPeerConnection({iceServers:[{url:'turn:foo.com', username:'x', credential:'x'}]}); did not throw exception.
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCSessionDescription-expected.txt b/third_party/blink/web_tests/fast/peerconnection/RTCSessionDescription-expected.txt
index e348671..31b17aac 100644
--- a/third_party/blink/web_tests/fast/peerconnection/RTCSessionDescription-expected.txt
+++ b/third_party/blink/web_tests/fast/peerconnection/RTCSessionDescription-expected.txt
@@ -11,8 +11,8 @@
 PASS sessionDescription.sdp is "foobar"
 PASS new RTCSessionDescription(); did not throw exception.
 PASS new RTCSessionDescription({}); did not throw exception.
-PASS new RTCSessionDescription(5); threw exception TypeError: Failed to construct 'RTCSessionDescription': parameter 1 ('descriptionInitDict') is not an object..
-PASS new RTCSessionDescription('foobar'); threw exception TypeError: Failed to construct 'RTCSessionDescription': parameter 1 ('descriptionInitDict') is not an object..
+PASS new RTCSessionDescription(5); threw exception TypeError: Failed to construct 'RTCSessionDescription': cannot convert to dictionary..
+PASS new RTCSessionDescription('foobar'); threw exception TypeError: Failed to construct 'RTCSessionDescription': cannot convert to dictionary..
 PASS new RTCSessionDescription({type:'foobar', sdp:'x'}); threw exception TypeError: Failed to construct 'RTCSessionDescription': The provided value 'foobar' is not a valid enum value of type RTCSdpType..
 PASS new RTCSessionDescription({type:'offer', sdp:''}); did not throw exception.
 PASS new RTCSessionDescription({type:'offer', sdp:'x'}); did not throw exception.
diff --git a/third_party/blink/web_tests/geolocation-api/argument-types-expected.txt b/third_party/blink/web_tests/geolocation-api/argument-types-expected.txt
index 7257eed1..ccc7ad4 100644
--- a/third_party/blink/web_tests/geolocation-api/argument-types-expected.txt
+++ b/third_party/blink/web_tests/geolocation-api/argument-types-expected.txt
@@ -3,38 +3,38 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 PASS navigator.geolocation.getCurrentPosition() threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': 1 argument required, but only 0 present..
-PASS navigator.geolocation.getCurrentPosition(undefined) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition(null) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition({}) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition(objectThrowingException) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
+PASS navigator.geolocation.getCurrentPosition(undefined) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(null) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition({}) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(objectThrowingException) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
 PASS navigator.geolocation.getCurrentPosition(emptyFunction) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(Math.abs) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition(42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition(Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition(-Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
-PASS navigator.geolocation.getCurrentPosition("string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 1 is not a function..
+PASS navigator.geolocation.getCurrentPosition(true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(-Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition("string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 1 is not of type 'Function'..
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, null) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, {}) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, objectThrowingException) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, {}) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, objectThrowingException) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, emptyFunction) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, Math.abs) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, 42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, -Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, "string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': The callback provided as parameter 2 is not a function..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, 42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, -Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, "string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 2 is not of type 'Function'..
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, undefined) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, null) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, {}) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, objectThrowingException) threw exception Error: enableHighAccuracy getter exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, emptyFunction) did not throw exception.
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 3 ('options') is not an object..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, 42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 3 ('options') is not an object..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 3 ('options') is not an object..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, -Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 3 ('options') is not an object..
-PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, "string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': parameter 3 ('options') is not an object..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, true) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': cannot convert to dictionary..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, 42) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': cannot convert to dictionary..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': cannot convert to dictionary..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, -Infinity) threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': cannot convert to dictionary..
+PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, "string") threw exception TypeError: Failed to execute 'getCurrentPosition' on 'Geolocation': cannot convert to dictionary..
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, {dummyProperty:undefined}) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, {dummyProperty:null}) did not throw exception.
 PASS navigator.geolocation.getCurrentPosition(emptyFunction, undefined, {dummyProperty:{}}) did not throw exception.
diff --git a/third_party/blink/web_tests/html/tabular_data/table_exceptions-expected.txt b/third_party/blink/web_tests/html/tabular_data/table_exceptions-expected.txt
index 57ee3d4..526b6168 100644
--- a/third_party/blink/web_tests/html/tabular_data/table_exceptions-expected.txt
+++ b/third_party/blink/web_tests/html/tabular_data/table_exceptions-expected.txt
@@ -2,13 +2,13 @@
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-PASS t.caption = document.body threw exception TypeError: Failed to set the 'caption' property on 'HTMLTableElement': The provided value is not of type 'HTMLTableCaptionElement'..
-PASS t.tHead = document.body threw exception TypeError: Failed to set the 'tHead' property on 'HTMLTableElement': The provided value is not of type 'HTMLTableSectionElement'..
+PASS t.caption = document.body threw exception TypeError: Failed to set the 'caption' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableCaptionElement'..
+PASS t.tHead = document.body threw exception TypeError: Failed to set the 'tHead' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableSectionElement'..
 PASS t.createTFoot() is t.tFoot
 PASS t.tFoot is non-null.
 PASS t.tFoot = null did not throw exception.
 PASS t.tFoot is null
-PASS t.tFoot = document.body threw exception TypeError: Failed to set the 'tFoot' property on 'HTMLTableElement': The provided value is not of type 'HTMLTableSectionElement'..
+PASS t.tFoot = document.body threw exception TypeError: Failed to set the 'tFoot' property on 'HTMLTableElement': Failed to convert value to 'HTMLTableSectionElement'..
 PASS t.insertRow(-2) threw exception IndexSizeError: Failed to execute 'insertRow' on 'HTMLTableElement': The index provided (-2) is less than -1..
 PASS t.insertRow(1) threw exception IndexSizeError: Failed to execute 'insertRow' on 'HTMLTableElement': The index provided (1) is greater than the number of rows in the table (0)..
 PASS t.deleteRow(-2) threw exception IndexSizeError: Failed to execute 'deleteRow' on 'HTMLTableElement': The index provided (-2) is less than -1..
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/alert-toString-exception-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/alert-toString-exception-expected.txt
index c58926336..671f46b 100644
--- a/third_party/blink/web_tests/http/tests/devtools/console/alert-toString-exception-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/console/alert-toString-exception-expected.txt
@@ -2,6 +2,5 @@
 
 Page reloaded.
 alert-toString-exception.html:2 Uncaught Exception in toString().
-toString @ alert-toString-exception.html:2
 (anonymous) @ alert-toString-exception.html:2
 
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-log-side-effects-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/console-log-side-effects-expected.txt
index 28fc728..a5cef76 100644
--- a/third_party/blink/web_tests/http/tests/devtools/console/console-log-side-effects-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/console/console-log-side-effects-expected.txt
@@ -13,7 +13,7 @@
 console-log-side-effects.js:34 Boolean {true}
 console-log-side-effects.js:35 String {"foo"}
 console-log-side-effects.js:36 {}
-console-log-side-effects.js:37 Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}
+console-log-side-effects.js:37 Window {window: Window, self: Window, document: document, name: "", location: Location, …}
 console-log-side-effects.js:43 
 console-log-side-effects.js:47 {foo: 1, bar: 2}
 console-log-side-effects.js:48 (3) [1, 2, 3]
diff --git a/third_party/blink/web_tests/http/tests/dom/location-stringify.html b/third_party/blink/web_tests/http/tests/dom/location-stringify.html
index 547d9c1..2a852a7 100644
--- a/third_party/blink/web_tests/http/tests/dom/location-stringify.html
+++ b/third_party/blink/web_tests/http/tests/dom/location-stringify.html
@@ -24,7 +24,7 @@
   assertEqual(
       "stringify",
       JSON.stringify(window.location),
-      '{"href":"http://127.0.0.1:8000/dom/location-stringify.html","ancestorOrigins":{},"origin":"http://127.0.0.1:8000","protocol":"http:","host":"127.0.0.1:8000","hostname":"127.0.0.1","port":"8000","pathname":"/dom/location-stringify.html","search":"","hash":""}');
+      '{"ancestorOrigins":{},"href":"http://127.0.0.1:8000/dom/location-stringify.html","origin":"http://127.0.0.1:8000","protocol":"http:","host":"127.0.0.1:8000","hostname":"127.0.0.1","port":"8000","pathname":"/dom/location-stringify.html","search":"","hash":""}');
 }
 </script>
 </head>
diff --git a/third_party/blink/web_tests/http/tests/security/cross-frame-access-enumeration-expected.txt b/third_party/blink/web_tests/http/tests/security/cross-frame-access-enumeration-expected.txt
index 4a4de46..2c1f9d59 100644
--- a/third_party/blink/web_tests/http/tests/security/cross-frame-access-enumeration-expected.txt
+++ b/third_party/blink/web_tests/http/tests/security/cross-frame-access-enumeration-expected.txt
@@ -4,6 +4,6 @@
 PASS: Cross frame access by getting the keys of the window object was denied.
 PASS: Cross frame access by getting the property names of the window object was denied.
 PASS: Cross frame access by enumerating the Location object revealed no properties.
-FAIL: Cross frame access by getting the keys of the Location object returned non-whitelisted key: href
+PASS: Cross frame access by getting the keys of the Location object revealed only whitelisted keys.
 PASS: Cross frame access by getting the property names of the Location object revealed no custom properties.
 
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc-expected.txt b/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc-expected.txt
index 226b651..b686c4d 100644
--- a/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc-expected.txt
+++ b/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc-expected.txt
@@ -5,7 +5,7 @@
 PASS registrationObservation.wasCollected is false
 PASS swObservation.wasCollected is false
 PASS registrationObservation.wasCollected is false
-PASS swObservation.wasCollected is false
+PASS swObservation.wasCollected is true
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc.html b/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc.html
index dfe7b5a..22f2ab4f 100644
--- a/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc.html
+++ b/third_party/blink/web_tests/http/tests/serviceworker/service-worker-gc.html
@@ -83,7 +83,7 @@
     // once the new worker is activated, check that the old worker is gc'd.
     gc();
     shouldBeFalse('registrationObservation.wasCollected');
-    shouldBeFalse('swObservation.wasCollected');
+    shouldBeTrue('swObservation.wasCollected');
     finishJSTest();
 }
 </script>
diff --git a/third_party/blink/web_tests/images/image-document-remove-listener.html b/third_party/blink/web_tests/images/image-document-remove-listener.html
index e162cd2..b353afcc 100644
--- a/third_party/blink/web_tests/images/image-document-remove-listener.html
+++ b/third_party/blink/web_tests/images/image-document-remove-listener.html
@@ -13,7 +13,7 @@
         try {
             newWindow.removeEventListener("resize", 2);
         } catch (e) {
-            assert_equals(e.message, "Failed to execute 'removeEventListener' on 'EventTarget': The callback provided as parameter 2 is not an object.");
+            assert_equals(e.message, "Failed to execute 'removeEventListener' on 'EventTarget': parameter 2 is not of type 'Object'.");
         }
     });
 });
diff --git a/third_party/blink/web_tests/storage/indexeddb/create-object-store-options-expected.txt b/third_party/blink/web_tests/storage/indexeddb/create-object-store-options-expected.txt
index 55c091b..590a7dac 100644
--- a/third_party/blink/web_tests/storage/indexeddb/create-object-store-options-expected.txt
+++ b/third_party/blink/web_tests/storage/indexeddb/create-object-store-options-expected.txt
@@ -13,10 +13,10 @@
 trans.objectStore('a').put({'a': 0})
 Expecting TypeError exception from db.createObjectStore('d', 'bar');
 PASS Exception was thrown.
-PASS db.createObjectStore('d', 'bar'); threw TypeError: Failed to execute 'createObjectStore' on 'IDBDatabase': parameter 2 ('options') is not an object.
+PASS db.createObjectStore('d', 'bar'); threw TypeError: Failed to execute 'createObjectStore' on 'IDBDatabase': cannot convert to dictionary.
 Expecting TypeError exception from db.createObjectStore('e', false);
 PASS Exception was thrown.
-PASS db.createObjectStore('e', false); threw TypeError: Failed to execute 'createObjectStore' on 'IDBDatabase': parameter 2 ('options') is not an object.
+PASS db.createObjectStore('e', false); threw TypeError: Failed to execute 'createObjectStore' on 'IDBDatabase': cannot convert to dictionary.
 trans.objectStore('b').put({'a': 0}, 0)
 trans.objectStore('a').get(0)
 PASS event.target.result.a is {a: 0}
diff --git a/third_party/blink/web_tests/storage/indexeddb/index-basics-expected.txt b/third_party/blink/web_tests/storage/indexeddb/index-basics-expected.txt
index 861f4c9..31d5858 100644
--- a/third_party/blink/web_tests/storage/indexeddb/index-basics-expected.txt
+++ b/third_party/blink/web_tests/storage/indexeddb/index-basics-expected.txt
@@ -17,10 +17,10 @@
 PASS indexObject3.unique is true
 Expecting TypeError exception from store.createIndex('failureIndex', 'zzz', true)
 PASS Exception was thrown.
-PASS store.createIndex('failureIndex', 'zzz', true) threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': parameter 3 ('options') is not an object.
+PASS store.createIndex('failureIndex', 'zzz', true) threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': cannot convert to dictionary.
 Expecting TypeError exception from store.createIndex('failureIndex', 'zzz', 'string')
 PASS Exception was thrown.
-PASS store.createIndex('failureIndex', 'zzz', 'string') threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': parameter 3 ('options') is not an object.
+PASS store.createIndex('failureIndex', 'zzz', 'string') threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': cannot convert to dictionary.
 PASS 'name' in indexObject is true
 PASS indexObject.name is "indexName"
 PASS 'objectStore' in indexObject is true
diff --git a/third_party/blink/web_tests/storage/indexeddb/index-basics-workers-expected.txt b/third_party/blink/web_tests/storage/indexeddb/index-basics-workers-expected.txt
index 7c2096f..f0ad73b2 100644
--- a/third_party/blink/web_tests/storage/indexeddb/index-basics-workers-expected.txt
+++ b/third_party/blink/web_tests/storage/indexeddb/index-basics-workers-expected.txt
@@ -17,10 +17,10 @@
 PASS [Worker] indexObject3.unique is true
 [Worker] Expecting TypeError exception from store.createIndex('failureIndex', 'zzz', true)
 PASS [Worker] Exception was thrown.
-PASS [Worker] store.createIndex('failureIndex', 'zzz', true) threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': parameter 3 ('options') is not an object.
+PASS [Worker] store.createIndex('failureIndex', 'zzz', true) threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': cannot convert to dictionary.
 [Worker] Expecting TypeError exception from store.createIndex('failureIndex', 'zzz', 'string')
 PASS [Worker] Exception was thrown.
-PASS [Worker] store.createIndex('failureIndex', 'zzz', 'string') threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': parameter 3 ('options') is not an object.
+PASS [Worker] store.createIndex('failureIndex', 'zzz', 'string') threw TypeError: Failed to execute 'createIndex' on 'IDBObjectStore': cannot convert to dictionary.
 PASS [Worker] 'name' in indexObject is true
 PASS [Worker] indexObject.name is "indexName"
 PASS [Worker] 'objectStore' in indexObject is true
diff --git a/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt b/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
index d4d60170..9d28b79 100644
--- a/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
+++ b/third_party/blink/web_tests/svg/css/getComputedStyle-listing-expected.txt
@@ -77,7 +77,7 @@
 background-repeat: repeat
 background-size: auto
 baseline-shift: 0px
-block-size: 0px
+block-size: 100px
 border-block-end-color: rgb(0, 0, 0)
 border-block-end-style: none
 border-block-end-width: 0px
diff --git a/third_party/blink/web_tests/svg/dom/SVGNumberList-basics-expected.txt b/third_party/blink/web_tests/svg/dom/SVGNumberList-basics-expected.txt
index ee01331..e3ebaed 100644
--- a/third_party/blink/web_tests/svg/dom/SVGNumberList-basics-expected.txt
+++ b/third_party/blink/web_tests/svg/dom/SVGNumberList-basics-expected.txt
@@ -90,10 +90,10 @@
 
 
 Test uncommon values for indexed setter
-PASS text1.rotate.baseVal[0] = 30 threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': The provided value is not of type 'SVGNumber'..
-PASS text1.rotate.baseVal[0] = 'aString' threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': The provided value is not of type 'SVGNumber'..
-PASS text1.rotate.baseVal[0] = text1 threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': The provided value is not of type 'SVGNumber'..
-PASS text1.rotate.baseVal[0] = null threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': The provided value is not of type 'SVGNumber'..
+PASS text1.rotate.baseVal[0] = 30 threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': parameter 3 is not of type 'SVGNumber'..
+PASS text1.rotate.baseVal[0] = 'aString' threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': parameter 3 is not of type 'SVGNumber'..
+PASS text1.rotate.baseVal[0] = text1 threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': parameter 3 is not of type 'SVGNumber'..
+PASS text1.rotate.baseVal[0] = null threw exception TypeError: Failed to set an indexed property on 'SVGNumberList': parameter 3 is not of type 'SVGNumber'..
 PASS text1.rotate.baseVal.replaceItem(text1.rotate.baseVal.getItem(0), 0) is text1.rotate.baseVal.getItem(0)
 PASS text1.rotate.baseVal.numberOfItems is 4
 PASS text1.rotate.baseVal.getItem(0).value is 1
diff --git a/third_party/blink/web_tests/svg/dom/SVGPointList-basics-expected.txt b/third_party/blink/web_tests/svg/dom/SVGPointList-basics-expected.txt
index 9c30ae4..a475e28 100644
--- a/third_party/blink/web_tests/svg/dom/SVGPointList-basics-expected.txt
+++ b/third_party/blink/web_tests/svg/dom/SVGPointList-basics-expected.txt
@@ -103,10 +103,10 @@
 
 
 Test uncommon values for indexed setter
-PASS poly1.points[0] = 30 threw exception TypeError: Failed to set an indexed property on 'SVGPointList': The provided value is not of type 'SVGPoint'..
-PASS poly1.points[0] = 'aString' threw exception TypeError: Failed to set an indexed property on 'SVGPointList': The provided value is not of type 'SVGPoint'..
-PASS poly1.points[0] = poly1 threw exception TypeError: Failed to set an indexed property on 'SVGPointList': The provided value is not of type 'SVGPoint'..
-PASS poly1.points[0] = null threw exception TypeError: Failed to set an indexed property on 'SVGPointList': The provided value is not of type 'SVGPoint'..
+PASS poly1.points[0] = 30 threw exception TypeError: Failed to set an indexed property on 'SVGPointList': parameter 3 is not of type 'SVGPoint'..
+PASS poly1.points[0] = 'aString' threw exception TypeError: Failed to set an indexed property on 'SVGPointList': parameter 3 is not of type 'SVGPoint'..
+PASS poly1.points[0] = poly1 threw exception TypeError: Failed to set an indexed property on 'SVGPointList': parameter 3 is not of type 'SVGPoint'..
+PASS poly1.points[0] = null threw exception TypeError: Failed to set an indexed property on 'SVGPointList': parameter 3 is not of type 'SVGPoint'..
 
 
 Test uncommon arguments for replaceItem() and xml-dom synchronization
diff --git a/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub-expected.txt b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub-expected.txt
new file mode 100644
index 0000000..c5e1c42a
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub-expected.txt
@@ -0,0 +1,7 @@
+This is a testharness.js-based test.
+FAIL same-origin, same-window location cycle Immutable prototype object '#<Location>' cannot have their prototype set
+PASS cross-origin location has null prototype
+FAIL same-origin, different-window location cycle Immutable prototype object '[object Location]' cannot have their prototype set
+FAIL cross-origin, but joined via document.domain, location cycle Immutable prototype object '[object Location]' cannot have their prototype set
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub-expected.txt b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub-expected.txt
index 93fac7b..dcd0d65 100644
--- a/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub-expected.txt
+++ b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub-expected.txt
@@ -1,13 +1,9 @@
 This is a testharness.js-based test.
 PASS Same-origin-domain prerequisite check: the original prototype is accessible
-FAIL Same-origin-domain: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError assert_throws_js: function "() => {
-      Object.setPrototypeOf(target, newValue);
-    }" did not throw
-FAIL Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError assert_throws_js: function "function() {
-      target.__proto__ = newValue;
-    }" did not throw
-FAIL Same-origin-domain: setting the prototype to an empty object via Reflect.setPrototypeOf should return false assert_false: expected false got true
-FAIL Same-origin-domain: the prototype must still be its original value assert_equals: expected object "[object Location]" but got object "[object Object]"
+PASS Same-origin-domain: setting the prototype to an empty object via Object.setPrototypeOf should throw a TypeError
+PASS Same-origin-domain: setting the prototype to an empty object via __proto__ should throw a TypeError
+PASS Same-origin-domain: setting the prototype to an empty object via Reflect.setPrototypeOf should return false
+PASS Same-origin-domain: the prototype must still be its original value
 PASS Same-origin-domain: setting the prototype to its original value via Object.setPrototypeOf should not throw
 PASS Same-origin-domain: setting the prototype to its original value via __proto__ should not throw
 PASS Same-origin-domain: setting the prototype to its original value via Reflect.setPrototypeOf should return true
diff --git a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
index f1080ca..d1c9ca42 100644
--- a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt
@@ -170,6 +170,7 @@
 PASS oldChildWindow.outerWidth is newChildWindow.outerWidth
 PASS oldChildWindow.pageXOffset is newChildWindow.pageXOffset
 PASS oldChildWindow.pageYOffset is newChildWindow.pageYOffset
+PASS oldChildWindow.performance.eventCounts.size is newChildWindow.performance.eventCounts.size
 PASS oldChildWindow.performance.navigation.redirectCount is newChildWindow.performance.navigation.redirectCount
 PASS oldChildWindow.performance.navigation.type is newChildWindow.performance.navigation.type
 PASS oldChildWindow.performance.onresourcetimingbufferfull is newChildWindow.performance.onresourcetimingbufferfull
diff --git a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
index e9d66ba..41ad130 100644
--- a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt
@@ -11,6 +11,7 @@
 PASS childWindow.innerWidth is 0
 PASS childWindow.isSecureContext is false
 PASS childWindow.length is 0
+FAIL childWindow.location.href should be about:blank (of type string). Was undefined (of type undefined).
 PASS childWindow.locationbar.visible is false
 PASS childWindow.menubar.visible is false
 PASS childWindow.name is ''
@@ -22,8 +23,6 @@
 PASS childWindow.navigator.hardwareConcurrency is window.navigator.hardwareConcurrency
 PASS childWindow.navigator.language is window.navigator.language
 PASS childWindow.navigator.maxTouchPoints is 0
-PASS childWindow.navigator.mediaSession.metadata is null
-PASS childWindow.navigator.mediaSession.playbackState is 'none'
 PASS childWindow.navigator.onLine is window.navigator.onLine
 PASS childWindow.navigator.platform is window.navigator.platform
 PASS childWindow.navigator.product is window.navigator.product
diff --git a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
index bc99058..c2b19c9 100644
--- a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt
@@ -11,6 +11,7 @@
 PASS childWindow.innerWidth is 0
 PASS childWindow.isSecureContext is false
 PASS childWindow.length is 0
+FAIL childWindow.location.href should be about:blank (of type string). Was undefined (of type undefined).
 PASS childWindow.locationbar.visible is false
 PASS childWindow.menubar.visible is false
 PASS childWindow.name is ''
@@ -22,8 +23,6 @@
 PASS childWindow.navigator.hardwareConcurrency is window.navigator.hardwareConcurrency
 PASS childWindow.navigator.language is window.navigator.language
 PASS childWindow.navigator.maxTouchPoints is 0
-PASS childWindow.navigator.mediaSession.metadata is null
-PASS childWindow.navigator.mediaSession.playbackState is 'none'
 PASS childWindow.navigator.onLine is window.navigator.onLine
 PASS childWindow.navigator.platform is window.navigator.platform
 PASS childWindow.navigator.product is window.navigator.product
diff --git a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/window-properties-performance-expected.txt b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/window-properties-performance-expected.txt
index b241cd9..7b10e0c 100644
--- a/third_party/blink/web_tests/virtual/stable/fast/dom/Window/window-properties-performance-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/fast/dom/Window/window-properties-performance-expected.txt
@@ -12,6 +12,7 @@
 window.performance.eventCounts.get [function]
 window.performance.eventCounts.has [function]
 window.performance.eventCounts.keys [function]
+window.performance.eventCounts.size [number]
 window.performance.eventCounts.values [function]
 window.performance.getEntries [function]
 window.performance.getEntriesByName [function]
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
index 15d27fb..81061c4 100644
--- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -452,6 +452,7 @@
     attribute @@toStringTag
     getter cssRules
     getter name
+    method @@iterator
     method appendRule
     method constructor
     method deleteRule
@@ -2704,6 +2705,7 @@
     setter size
 interface HTMLFormControlsCollection : HTMLCollection
     attribute @@toStringTag
+    method @@iterator
     method constructor
     method namedItem
 interface HTMLFormElement : HTMLElement
@@ -5526,6 +5528,7 @@
 interface RadioNodeList : NodeList
     attribute @@toStringTag
     getter value
+    method @@iterator
     method constructor
     setter value
 interface Range
@@ -9359,7 +9362,6 @@
     attribute @@toStringTag
     getter src
     getter weight
-    method constructor
     setter src
     setter weight
 interface webkitSpeechGrammarList
@@ -9368,7 +9370,6 @@
     method @@iterator
     method addFromString
     method addFromUri
-    method constructor
     method item
 interface webkitSpeechRecognition : EventTarget
     attribute @@toStringTag
@@ -9389,7 +9390,6 @@
     getter onspeechstart
     getter onstart
     method abort
-    method constructor
     method start
     method stop
     setter continuous
@@ -9412,14 +9412,12 @@
     attribute @@toStringTag
     getter error
     getter message
-    method constructor
 interface webkitSpeechRecognitionEvent : Event
     attribute @@toStringTag
     getter emma
     getter interpretation
     getter resultIndex
     getter results
-    method constructor
 interface webkitURL
     static method createObjectURL
     static method revokeObjectURL
@@ -9453,25 +9451,17 @@
     attribute GCController
     attribute accessibilityController
     attribute chrome
-    attribute closed
     attribute console
     attribute eventSender
-    attribute frames
     attribute gamepadController
     attribute globalThis
     attribute internals
-    attribute length
-    attribute location
-    attribute opener
-    attribute parent
     attribute propertyNamesInGlobal
-    attribute self
     attribute testRunner
     attribute textInputController
-    attribute top
-    attribute window
     getter caches
     getter clientInformation
+    getter closed
     getter crypto
     getter customElements
     getter defaultStatus
@@ -9481,12 +9471,15 @@
     getter event
     getter external
     getter frameElement
+    getter frames
     getter history
     getter indexedDB
     getter innerHeight
     getter innerWidth
     getter isSecureContext
+    getter length
     getter localStorage
+    getter location
     getter locationbar
     getter menubar
     getter name
@@ -9600,11 +9593,13 @@
     getter onwebkitanimationstart
     getter onwebkittransitionend
     getter onwheel
+    getter opener
     getter origin
     getter outerHeight
     getter outerWidth
     getter pageXOffset
     getter pageYOffset
+    getter parent
     getter performance
     getter personalbar
     getter screen
@@ -9615,15 +9610,18 @@
     getter scrollX
     getter scrollY
     getter scrollbars
+    getter self
     getter sessionStorage
     getter speechSynthesis
     getter status
     getter statusbar
     getter styleMedia
     getter toolbar
+    getter top
     getter trustedTypes
     getter visualViewport
     getter webkitStorageInfo
+    getter window
     method NodeFilter
     method alert
     method atob
@@ -9673,8 +9671,11 @@
     setter devicePixelRatio
     setter event
     setter external
+    setter frames
     setter innerHeight
     setter innerWidth
+    setter length
+    setter location
     setter locationbar
     setter menubar
     setter name
@@ -9787,11 +9788,13 @@
     setter onwebkitanimationstart
     setter onwebkittransitionend
     setter onwheel
+    setter opener
     setter origin
     setter outerHeight
     setter outerWidth
     setter pageXOffset
     setter pageYOffset
+    setter parent
     setter performance
     setter personalbar
     setter screen
@@ -9802,6 +9805,7 @@
     setter scrollX
     setter scrollY
     setter scrollbars
+    setter self
     setter status
     setter statusbar
     setter toolbar
diff --git "a/third_party/blink/web_tests/virtual/web-components-v0-disabled/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt" "b/third_party/blink/web_tests/virtual/web-components-v0-disabled/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
deleted file mode 100644
index 9f3049c..0000000
--- "a/third_party/blink/web_tests/virtual/web-components-v0-disabled/external/wpt/html/dom/idlharness.https_exclude=\050Document_Window_HTML._\051-expected.txt"
+++ /dev/null
@@ -1,1416 +0,0 @@
-This is a testharness.js-based test.
-Found 1412 tests; 1327 PASS, 85 FAIL, 0 TIMEOUT, 0 NOTRUN.
-PASS idl_test setup
-PASS idl_test validation
-PASS Partial interface Document: original interface defined
-PASS Partial interface Document: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot: original interface mixin defined
-PASS Partial interface mixin DocumentOrShadowRoot: member names are unique
-PASS Partial interface mixin NavigatorID: original interface mixin defined
-PASS Partial interface mixin NavigatorID: member names are unique
-PASS Partial interface HTMLAnchorElement: original interface defined
-PASS Partial interface HTMLAnchorElement: member names are unique
-PASS Partial interface HTMLAreaElement: original interface defined
-PASS Partial interface HTMLAreaElement: member names are unique
-PASS Partial interface HTMLBodyElement: original interface defined
-PASS Partial interface HTMLBodyElement: member names are unique
-PASS Partial interface HTMLBRElement: original interface defined
-PASS Partial interface HTMLBRElement: member names are unique
-PASS Partial interface HTMLTableCaptionElement: original interface defined
-PASS Partial interface HTMLTableCaptionElement: member names are unique
-PASS Partial interface HTMLTableColElement: original interface defined
-PASS Partial interface HTMLTableColElement: member names are unique
-PASS Partial interface HTMLDivElement: original interface defined
-PASS Partial interface HTMLDivElement: member names are unique
-PASS Partial interface HTMLDListElement: original interface defined
-PASS Partial interface HTMLDListElement: member names are unique
-PASS Partial interface HTMLEmbedElement: original interface defined
-PASS Partial interface HTMLEmbedElement: member names are unique
-PASS Partial interface HTMLHeadingElement: original interface defined
-PASS Partial interface HTMLHeadingElement: member names are unique
-PASS Partial interface HTMLHRElement: original interface defined
-PASS Partial interface HTMLHRElement: member names are unique
-PASS Partial interface HTMLHtmlElement: original interface defined
-PASS Partial interface HTMLHtmlElement: member names are unique
-PASS Partial interface HTMLIFrameElement: original interface defined
-PASS Partial interface HTMLIFrameElement: member names are unique
-PASS Partial interface HTMLImageElement: original interface defined
-PASS Partial interface HTMLImageElement: member names are unique
-PASS Partial interface HTMLInputElement: original interface defined
-PASS Partial interface HTMLInputElement: member names are unique
-PASS Partial interface HTMLLegendElement: original interface defined
-PASS Partial interface HTMLLegendElement: member names are unique
-PASS Partial interface HTMLLIElement: original interface defined
-PASS Partial interface HTMLLIElement: member names are unique
-PASS Partial interface HTMLLinkElement: original interface defined
-PASS Partial interface HTMLLinkElement: member names are unique
-PASS Partial interface HTMLMenuElement: original interface defined
-PASS Partial interface HTMLMenuElement: member names are unique
-PASS Partial interface HTMLMetaElement: original interface defined
-PASS Partial interface HTMLMetaElement: member names are unique
-PASS Partial interface HTMLObjectElement: original interface defined
-PASS Partial interface HTMLObjectElement: member names are unique
-PASS Partial interface HTMLOListElement: original interface defined
-PASS Partial interface HTMLOListElement: member names are unique
-PASS Partial interface HTMLParagraphElement: original interface defined
-PASS Partial interface HTMLParagraphElement: member names are unique
-PASS Partial interface HTMLParamElement: original interface defined
-PASS Partial interface HTMLParamElement: member names are unique
-PASS Partial interface HTMLPreElement: original interface defined
-PASS Partial interface HTMLPreElement: member names are unique
-PASS Partial interface HTMLStyleElement: original interface defined
-PASS Partial interface HTMLStyleElement: member names are unique
-PASS Partial interface HTMLScriptElement: original interface defined
-PASS Partial interface HTMLScriptElement: member names are unique
-PASS Partial interface HTMLTableElement: original interface defined
-PASS Partial interface HTMLTableElement: member names are unique
-PASS Partial interface HTMLTableSectionElement: original interface defined
-PASS Partial interface HTMLTableSectionElement: member names are unique
-PASS Partial interface HTMLTableCellElement: original interface defined
-PASS Partial interface HTMLTableCellElement: member names are unique
-PASS Partial interface HTMLTableRowElement: original interface defined
-PASS Partial interface HTMLTableRowElement: member names are unique
-PASS Partial interface HTMLUListElement: original interface defined
-PASS Partial interface HTMLUListElement: member names are unique
-PASS Partial interface Document[2]: original interface defined
-PASS Partial interface Document[2]: member names are unique
-PASS Partial interface Window: original interface defined
-PASS Partial interface Window: member names are unique
-PASS Partial interface Document[3]: member names are unique
-PASS Partial interface mixin DocumentOrShadowRoot[2]: member names are unique
-PASS Partial interface UIEvent: member names are unique
-PASS Document includes GlobalEventHandlers: member names are unique
-PASS Document includes DocumentAndElementEventHandlers: member names are unique
-PASS Document includes NonElementParentNode: member names are unique
-PASS Document includes DocumentOrShadowRoot: member names are unique
-PASS Document includes ParentNode: member names are unique
-PASS Document includes XPathEvaluatorBase: member names are unique
-PASS HTMLElement includes GlobalEventHandlers: member names are unique
-PASS HTMLElement includes DocumentAndElementEventHandlers: member names are unique
-PASS HTMLElement includes ElementContentEditable: member names are unique
-PASS HTMLElement includes HTMLOrSVGElement: member names are unique
-PASS HTMLElement includes ElementCSSInlineStyle: member names are unique
-PASS HTMLLinkElement includes LinkStyle: member names are unique
-PASS HTMLStyleElement includes LinkStyle: member names are unique
-PASS HTMLBodyElement includes WindowEventHandlers: member names are unique
-PASS HTMLAnchorElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS HTMLAreaElement includes HTMLHyperlinkElementUtils: member names are unique
-PASS CanvasRenderingContext2D includes CanvasState: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS CanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS CanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS CanvasRenderingContext2D includes CanvasUserInterface: member names are unique
-PASS CanvasRenderingContext2D includes CanvasText: member names are unique
-PASS CanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS CanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS CanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Path2D includes CanvasPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasState: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTransform: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasCompositing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasShadowStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasFilters: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasRect: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawPath: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasText: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasDrawImage: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasImageData: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles: member names are unique
-PASS OffscreenCanvasRenderingContext2D includes CanvasPath: member names are unique
-PASS Window includes GlobalEventHandlers: member names are unique
-PASS Window includes WindowEventHandlers: member names are unique
-PASS Window includes WindowOrWorkerGlobalScope: member names are unique
-PASS Window includes AnimationFrameProvider: member names are unique
-PASS Window includes WindowSessionStorage: member names are unique
-PASS Window includes WindowLocalStorage: member names are unique
-PASS WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique
-PASS Navigator includes NavigatorID: member names are unique
-PASS Navigator includes NavigatorLanguage: member names are unique
-PASS Navigator includes NavigatorOnLine: member names are unique
-PASS Navigator includes NavigatorContentUtils: member names are unique
-PASS Navigator includes NavigatorCookies: member names are unique
-PASS Navigator includes NavigatorPlugins: member names are unique
-PASS Navigator includes NavigatorConcurrentHardware: member names are unique
-PASS DedicatedWorkerGlobalScope includes AnimationFrameProvider: member names are unique
-PASS Worker includes AbstractWorker: member names are unique
-PASS SharedWorker includes AbstractWorker: member names are unique
-PASS WorkerNavigator includes NavigatorID: member names are unique
-PASS WorkerNavigator includes NavigatorLanguage: member names are unique
-PASS WorkerNavigator includes NavigatorOnLine: member names are unique
-PASS WorkerNavigator includes NavigatorConcurrentHardware: member names are unique
-PASS HTMLFrameSetElement includes WindowEventHandlers: member names are unique
-PASS SVGElement includes GlobalEventHandlers: member names are unique
-PASS SVGElement includes DocumentAndElementEventHandlers: member names are unique
-PASS SVGElement includes SVGElementInstance: member names are unique
-PASS SVGElement includes HTMLOrSVGElement: member names are unique
-PASS SVGElement includes ElementCSSInlineStyle: member names are unique
-PASS SVGGraphicsElement includes SVGTests: member names are unique
-PASS SVGSVGElement includes SVGFitToViewBox: member names are unique
-PASS SVGSVGElement includes WindowEventHandlers: member names are unique
-PASS SVGImageElement includes SVGURIReference: member names are unique
-PASS SVGScriptElement includes SVGURIReference: member names are unique
-PASS SVGAElement includes SVGURIReference: member names are unique
-FAIL SVGAElement includes HTMLHyperlinkElementUtils: member names are unique assert_true: member href is unique expected true got false
-PASS DocumentFragment includes NonElementParentNode: member names are unique
-PASS DocumentFragment includes ParentNode: member names are unique
-PASS ShadowRoot includes DocumentOrShadowRoot: member names are unique
-PASS Element includes ParentNode: member names are unique
-PASS Element includes NonDocumentTypeChildNode: member names are unique
-PASS Element includes ChildNode: member names are unique
-PASS Element includes Slottable: member names are unique
-PASS RadioNodeList interface: existence and properties of interface object
-PASS RadioNodeList interface object length
-PASS RadioNodeList interface object name
-PASS RadioNodeList interface: existence and properties of interface prototype object
-PASS RadioNodeList interface: existence and properties of interface prototype object's "constructor" property
-PASS RadioNodeList interface: existence and properties of interface prototype object's @@unscopables property
-PASS RadioNodeList interface: attribute value
-PASS DOMStringList interface: existence and properties of interface object
-PASS DOMStringList interface object length
-PASS DOMStringList interface object name
-PASS DOMStringList interface: existence and properties of interface prototype object
-PASS DOMStringList interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringList interface: attribute length
-PASS DOMStringList interface: operation item(unsigned long)
-PASS DOMStringList interface: operation contains(DOMString)
-PASS DOMStringList must be primary interface of location.ancestorOrigins
-PASS Stringification of location.ancestorOrigins
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "length" with the proper type
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "item(unsigned long)" with the proper type
-PASS DOMStringList interface: calling item(unsigned long) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringList interface: location.ancestorOrigins must inherit property "contains(DOMString)" with the proper type
-PASS DOMStringList interface: calling contains(DOMString) on location.ancestorOrigins with too few arguments must throw TypeError
-PASS DOMStringMap interface: existence and properties of interface object
-PASS DOMStringMap interface object length
-PASS DOMStringMap interface object name
-PASS DOMStringMap interface: existence and properties of interface prototype object
-PASS DOMStringMap interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMStringMap interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMStringMap must be primary interface of document.head.dataset
-PASS Stringification of document.head.dataset
-PASS MediaError interface: existence and properties of interface object
-PASS MediaError interface object length
-PASS MediaError interface object name
-PASS MediaError interface: existence and properties of interface prototype object
-PASS MediaError interface: existence and properties of interface prototype object's "constructor" property
-PASS MediaError interface: existence and properties of interface prototype object's @@unscopables property
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_ABORTED on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface object
-PASS MediaError interface: constant MEDIA_ERR_NETWORK on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface object
-PASS MediaError interface: constant MEDIA_ERR_DECODE on interface prototype object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface object
-PASS MediaError interface: constant MEDIA_ERR_SRC_NOT_SUPPORTED on interface prototype object
-PASS MediaError interface: attribute code
-PASS MediaError interface: attribute message
-PASS MediaError must be primary interface of errorVideo.error
-PASS Stringification of errorVideo.error
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_ABORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_NETWORK" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_DECODE" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "MEDIA_ERR_SRC_NOT_SUPPORTED" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "code" with the proper type
-PASS MediaError interface: errorVideo.error must inherit property "message" with the proper type
-PASS AudioTrackList interface: existence and properties of interface object
-PASS AudioTrackList interface object length
-PASS AudioTrackList interface object name
-PASS AudioTrackList interface: existence and properties of interface prototype object
-PASS AudioTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrackList interface: attribute length
-PASS AudioTrackList interface: operation getTrackById(DOMString)
-PASS AudioTrackList interface: attribute onchange
-PASS AudioTrackList interface: attribute onaddtrack
-PASS AudioTrackList interface: attribute onremovetrack
-PASS AudioTrack interface: existence and properties of interface object
-PASS AudioTrack interface object length
-PASS AudioTrack interface object name
-PASS AudioTrack interface: existence and properties of interface prototype object
-PASS AudioTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS AudioTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS AudioTrack interface: attribute id
-PASS AudioTrack interface: attribute kind
-PASS AudioTrack interface: attribute label
-PASS AudioTrack interface: attribute language
-PASS AudioTrack interface: attribute enabled
-PASS VideoTrackList interface: existence and properties of interface object
-PASS VideoTrackList interface object length
-PASS VideoTrackList interface object name
-PASS VideoTrackList interface: existence and properties of interface prototype object
-PASS VideoTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrackList interface: attribute length
-PASS VideoTrackList interface: operation getTrackById(DOMString)
-PASS VideoTrackList interface: attribute selectedIndex
-PASS VideoTrackList interface: attribute onchange
-PASS VideoTrackList interface: attribute onaddtrack
-PASS VideoTrackList interface: attribute onremovetrack
-PASS VideoTrack interface: existence and properties of interface object
-PASS VideoTrack interface object length
-PASS VideoTrack interface object name
-PASS VideoTrack interface: existence and properties of interface prototype object
-PASS VideoTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS VideoTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS VideoTrack interface: attribute id
-PASS VideoTrack interface: attribute kind
-PASS VideoTrack interface: attribute label
-PASS VideoTrack interface: attribute language
-PASS VideoTrack interface: attribute selected
-PASS TextTrackList interface: existence and properties of interface object
-PASS TextTrackList interface object length
-PASS TextTrackList interface object name
-PASS TextTrackList interface: existence and properties of interface prototype object
-PASS TextTrackList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackList interface: attribute length
-PASS TextTrackList interface: operation getTrackById(DOMString)
-PASS TextTrackList interface: attribute onchange
-PASS TextTrackList interface: attribute onaddtrack
-PASS TextTrackList interface: attribute onremovetrack
-PASS TextTrackList must be primary interface of document.createElement("video").textTracks
-PASS Stringification of document.createElement("video").textTracks
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "length" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "getTrackById(DOMString)" with the proper type
-PASS TextTrackList interface: calling getTrackById(DOMString) on document.createElement("video").textTracks with too few arguments must throw TypeError
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onchange" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onaddtrack" with the proper type
-PASS TextTrackList interface: document.createElement("video").textTracks must inherit property "onremovetrack" with the proper type
-PASS TextTrack interface: existence and properties of interface object
-PASS TextTrack interface object length
-PASS TextTrack interface object name
-PASS TextTrack interface: existence and properties of interface prototype object
-PASS TextTrack interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrack interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrack interface: attribute kind
-PASS TextTrack interface: attribute label
-PASS TextTrack interface: attribute language
-PASS TextTrack interface: attribute id
-FAIL TextTrack interface: attribute inBandMetadataTrackDispatchType assert_true: The prototype object must have a property "inBandMetadataTrackDispatchType" expected true got false
-PASS TextTrack interface: attribute mode
-PASS TextTrack interface: attribute cues
-PASS TextTrack interface: attribute activeCues
-PASS TextTrack interface: operation addCue(TextTrackCue)
-PASS TextTrack interface: operation removeCue(TextTrackCue)
-PASS TextTrack interface: attribute oncuechange
-PASS TextTrack must be primary interface of document.createElement("track").track
-PASS Stringification of document.createElement("track").track
-PASS TextTrack interface: document.createElement("track").track must inherit property "kind" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "label" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "language" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "id" with the proper type
-FAIL TextTrack interface: document.createElement("track").track must inherit property "inBandMetadataTrackDispatchType" with the proper type assert_inherits: property "inBandMetadataTrackDispatchType" not found in prototype chain
-PASS TextTrack interface: document.createElement("track").track must inherit property "mode" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "cues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "activeCues" with the proper type
-PASS TextTrack interface: document.createElement("track").track must inherit property "addCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling addCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "removeCue(TextTrackCue)" with the proper type
-PASS TextTrack interface: calling removeCue(TextTrackCue) on document.createElement("track").track with too few arguments must throw TypeError
-PASS TextTrack interface: document.createElement("track").track must inherit property "oncuechange" with the proper type
-PASS TextTrackCueList interface: existence and properties of interface object
-PASS TextTrackCueList interface object length
-PASS TextTrackCueList interface object name
-PASS TextTrackCueList interface: existence and properties of interface prototype object
-PASS TextTrackCueList interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCueList interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCueList interface: attribute length
-PASS TextTrackCueList interface: operation getCueById(DOMString)
-PASS TextTrackCueList must be primary interface of document.createElement("video").addTextTrack("subtitles").cues
-PASS Stringification of document.createElement("video").addTextTrack("subtitles").cues
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "length" with the proper type
-PASS TextTrackCueList interface: document.createElement("video").addTextTrack("subtitles").cues must inherit property "getCueById(DOMString)" with the proper type
-PASS TextTrackCueList interface: calling getCueById(DOMString) on document.createElement("video").addTextTrack("subtitles").cues with too few arguments must throw TypeError
-PASS TextTrackCue interface: existence and properties of interface object
-PASS TextTrackCue interface object length
-PASS TextTrackCue interface object name
-PASS TextTrackCue interface: existence and properties of interface prototype object
-PASS TextTrackCue interface: existence and properties of interface prototype object's "constructor" property
-PASS TextTrackCue interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextTrackCue interface: attribute track
-PASS TextTrackCue interface: attribute id
-PASS TextTrackCue interface: attribute startTime
-PASS TextTrackCue interface: attribute endTime
-PASS TextTrackCue interface: attribute pauseOnExit
-PASS TextTrackCue interface: attribute onenter
-PASS TextTrackCue interface: attribute onexit
-PASS TimeRanges interface: existence and properties of interface object
-PASS TimeRanges interface object length
-PASS TimeRanges interface object name
-PASS TimeRanges interface: existence and properties of interface prototype object
-PASS TimeRanges interface: existence and properties of interface prototype object's "constructor" property
-PASS TimeRanges interface: existence and properties of interface prototype object's @@unscopables property
-PASS TimeRanges interface: attribute length
-PASS TimeRanges interface: operation start(unsigned long)
-PASS TimeRanges interface: operation end(unsigned long)
-PASS TimeRanges must be primary interface of document.createElement("video").buffered
-PASS Stringification of document.createElement("video").buffered
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "length" with the proper type
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "start(unsigned long)" with the proper type
-PASS TimeRanges interface: calling start(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TimeRanges interface: document.createElement("video").buffered must inherit property "end(unsigned long)" with the proper type
-PASS TimeRanges interface: calling end(unsigned long) on document.createElement("video").buffered with too few arguments must throw TypeError
-PASS TrackEvent interface: existence and properties of interface object
-PASS TrackEvent interface object length
-PASS TrackEvent interface object name
-PASS TrackEvent interface: existence and properties of interface prototype object
-PASS TrackEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS TrackEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS TrackEvent interface: attribute track
-PASS TrackEvent must be primary interface of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS Stringification of new TrackEvent("addtrack", {track:document.createElement("track").track})
-PASS TrackEvent interface: new TrackEvent("addtrack", {track:document.createElement("track").track}) must inherit property "track" with the proper type
-PASS ValidityState interface: existence and properties of interface object
-PASS ValidityState interface object length
-PASS ValidityState interface object name
-PASS ValidityState interface: existence and properties of interface prototype object
-PASS ValidityState interface: existence and properties of interface prototype object's "constructor" property
-PASS ValidityState interface: existence and properties of interface prototype object's @@unscopables property
-PASS ValidityState interface: attribute valueMissing
-PASS ValidityState interface: attribute typeMismatch
-PASS ValidityState interface: attribute patternMismatch
-PASS ValidityState interface: attribute tooLong
-PASS ValidityState interface: attribute tooShort
-PASS ValidityState interface: attribute rangeUnderflow
-PASS ValidityState interface: attribute rangeOverflow
-PASS ValidityState interface: attribute stepMismatch
-PASS ValidityState interface: attribute badInput
-PASS ValidityState interface: attribute customError
-PASS ValidityState interface: attribute valid
-PASS ValidityState must be primary interface of document.createElement("input").validity
-PASS Stringification of document.createElement("input").validity
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valueMissing" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "typeMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "patternMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooLong" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "tooShort" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeUnderflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "rangeOverflow" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "stepMismatch" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "badInput" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "customError" with the proper type
-PASS ValidityState interface: document.createElement("input").validity must inherit property "valid" with the proper type
-PASS SubmitEvent interface: existence and properties of interface object
-PASS SubmitEvent interface object length
-PASS SubmitEvent interface object name
-PASS SubmitEvent interface: existence and properties of interface prototype object
-PASS SubmitEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS SubmitEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS SubmitEvent interface: attribute submitter
-PASS FormDataEvent interface: existence and properties of interface object
-PASS FormDataEvent interface object length
-PASS FormDataEvent interface object name
-PASS FormDataEvent interface: existence and properties of interface prototype object
-PASS FormDataEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS FormDataEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS FormDataEvent interface: attribute formData
-PASS FormDataEvent must be primary interface of new FormDataEvent("formdata", { formData: new FormData() })
-PASS Stringification of new FormDataEvent("formdata", { formData: new FormData() })
-PASS FormDataEvent interface: new FormDataEvent("formdata", { formData: new FormData() }) must inherit property "formData" with the proper type
-PASS CanvasRenderingContext2D interface: existence and properties of interface object
-PASS CanvasRenderingContext2D interface object length
-PASS CanvasRenderingContext2D interface object name
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasRenderingContext2D interface: attribute canvas
-PASS CanvasRenderingContext2D interface: operation getContextAttributes()
-PASS CanvasRenderingContext2D interface: operation save()
-PASS CanvasRenderingContext2D interface: operation restore()
-PASS CanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS CanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation getTransform()
-PASS CanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS CanvasRenderingContext2D interface: operation resetTransform()
-PASS CanvasRenderingContext2D interface: attribute globalAlpha
-PASS CanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS CanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS CanvasRenderingContext2D interface: attribute strokeStyle
-PASS CanvasRenderingContext2D interface: attribute fillStyle
-PASS CanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS CanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS CanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS CanvasRenderingContext2D interface: attribute shadowBlur
-PASS CanvasRenderingContext2D interface: attribute shadowColor
-PASS CanvasRenderingContext2D interface: attribute filter
-PASS CanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation beginPath()
-PASS CanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation stroke()
-PASS CanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS CanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Element)
-PASS CanvasRenderingContext2D interface: operation drawFocusIfNeeded(Path2D, Element)
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView()
-PASS CanvasRenderingContext2D interface: operation scrollPathIntoView(Path2D)
-PASS CanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS CanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS CanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS CanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS CanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS CanvasRenderingContext2D interface: attribute lineWidth
-PASS CanvasRenderingContext2D interface: attribute lineCap
-PASS CanvasRenderingContext2D interface: attribute lineJoin
-PASS CanvasRenderingContext2D interface: attribute miterLimit
-PASS CanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS CanvasRenderingContext2D interface: operation getLineDash()
-PASS CanvasRenderingContext2D interface: attribute lineDashOffset
-PASS CanvasRenderingContext2D interface: attribute font
-PASS CanvasRenderingContext2D interface: attribute textAlign
-PASS CanvasRenderingContext2D interface: attribute textBaseline
-PASS CanvasRenderingContext2D interface: attribute direction
-PASS CanvasRenderingContext2D interface: operation closePath()
-PASS CanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS CanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CanvasRenderingContext2D must be primary interface of document.createElement("canvas").getContext("2d")
-PASS Stringification of document.createElement("canvas").getContext("2d")
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "canvas" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getContextAttributes()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "save()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "restore()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scale(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scale(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rotate(unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rotate(unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "translate(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling translate(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setTransform(optional DOMMatrix2DInit)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setTransform(optional DOMMatrix2DInit) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "resetTransform()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalAlpha" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "globalCompositeOperation" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingEnabled" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingQuality" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillStyle" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createLinearGradient(double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createLinearGradient(double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createRadialGradient(double, double, double, double, double, double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createRadialGradient(double, double, double, double, double, double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createPattern(CanvasImageSource, DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createPattern(CanvasImageSource, DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetX" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowOffsetY" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowBlur" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "shadowColor" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "filter" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "beginPath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fill(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fill(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "stroke(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling stroke(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "clip(Path2D, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling clip(Path2D, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "isPointInStroke(Path2D, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling isPointInStroke(Path2D, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawFocusIfNeeded(Path2D, Element)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawFocusIfNeeded(Path2D, Element) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "scrollPathIntoView(Path2D)" with the proper type
-PASS CanvasRenderingContext2D interface: calling scrollPathIntoView(Path2D) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "measureText(DOMString)" with the proper type
-PASS CanvasRenderingContext2D interface: calling measureText(DOMString) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "createImageData(ImageData)" with the proper type
-PASS CanvasRenderingContext2D interface: calling createImageData(ImageData) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getImageData(long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling getImageData(long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "putImageData(ImageData, long, long, long, long, long, long)" with the proper type
-PASS CanvasRenderingContext2D interface: calling putImageData(ImageData, long, long, long, long, long, long) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineWidth" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineCap" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineJoin" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "miterLimit" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "setLineDash(sequence<unrestricted double>)" with the proper type
-PASS CanvasRenderingContext2D interface: calling setLineDash(sequence<unrestricted double>) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "getLineDash()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineDashOffset" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "font" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textAlign" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "textBaseline" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "direction" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "closePath()" with the proper type
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "moveTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling moveTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "lineTo(unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling lineTo(unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)" with the proper type
-PASS CanvasRenderingContext2D interface: calling rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)" with the proper type
-PASS CanvasRenderingContext2D interface: calling ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean) on document.createElement("canvas").getContext("2d") with too few arguments must throw TypeError
-PASS CanvasGradient interface: existence and properties of interface object
-PASS CanvasGradient interface object length
-PASS CanvasGradient interface object name
-PASS CanvasGradient interface: existence and properties of interface prototype object
-PASS CanvasGradient interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasGradient interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasGradient interface: operation addColorStop(double, DOMString)
-PASS CanvasPattern interface: existence and properties of interface object
-PASS CanvasPattern interface object length
-PASS CanvasPattern interface object name
-PASS CanvasPattern interface: existence and properties of interface prototype object
-PASS CanvasPattern interface: existence and properties of interface prototype object's "constructor" property
-PASS CanvasPattern interface: existence and properties of interface prototype object's @@unscopables property
-PASS CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)
-PASS TextMetrics interface: existence and properties of interface object
-PASS TextMetrics interface object length
-PASS TextMetrics interface object name
-PASS TextMetrics interface: existence and properties of interface prototype object
-PASS TextMetrics interface: existence and properties of interface prototype object's "constructor" property
-PASS TextMetrics interface: existence and properties of interface prototype object's @@unscopables property
-PASS TextMetrics interface: attribute width
-PASS TextMetrics interface: attribute actualBoundingBoxLeft
-PASS TextMetrics interface: attribute actualBoundingBoxRight
-PASS TextMetrics interface: attribute fontBoundingBoxAscent
-PASS TextMetrics interface: attribute fontBoundingBoxDescent
-PASS TextMetrics interface: attribute actualBoundingBoxAscent
-PASS TextMetrics interface: attribute actualBoundingBoxDescent
-PASS TextMetrics interface: attribute emHeightAscent
-PASS TextMetrics interface: attribute emHeightDescent
-FAIL TextMetrics interface: attribute hangingBaseline assert_true: The prototype object must have a property "hangingBaseline" expected true got false
-FAIL TextMetrics interface: attribute alphabeticBaseline assert_true: The prototype object must have a property "alphabeticBaseline" expected true got false
-FAIL TextMetrics interface: attribute ideographicBaseline assert_true: The prototype object must have a property "ideographicBaseline" expected true got false
-PASS ImageData interface: existence and properties of interface object
-PASS ImageData interface object length
-PASS ImageData interface object name
-PASS ImageData interface: existence and properties of interface prototype object
-PASS ImageData interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageData interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageData interface: attribute width
-PASS ImageData interface: attribute height
-PASS ImageData interface: attribute data
-PASS ImageData must be primary interface of new ImageData(10, 10)
-PASS Stringification of new ImageData(10, 10)
-PASS ImageData interface: new ImageData(10, 10) must inherit property "width" with the proper type
-PASS ImageData interface: new ImageData(10, 10) must inherit property "height" with the proper type
-FAIL ImageData interface: new ImageData(10, 10) must inherit property "data" with the proper type assert_inherits: property "data" found on object expected in prototype chain
-PASS Path2D interface: existence and properties of interface object
-PASS Path2D interface object length
-PASS Path2D interface object name
-PASS Path2D interface: existence and properties of interface prototype object
-PASS Path2D interface: existence and properties of interface prototype object's "constructor" property
-PASS Path2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)
-PASS Path2D interface: operation closePath()
-PASS Path2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS ImageBitmapRenderingContext interface: existence and properties of interface object
-PASS ImageBitmapRenderingContext interface object length
-PASS ImageBitmapRenderingContext interface object name
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmapRenderingContext interface: attribute canvas
-PASS ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)
-PASS OffscreenCanvas interface: existence and properties of interface object
-PASS OffscreenCanvas interface object length
-PASS OffscreenCanvas interface object name
-PASS OffscreenCanvas interface: existence and properties of interface prototype object
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvas interface: attribute width
-PASS OffscreenCanvas interface: attribute height
-PASS OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)
-PASS OffscreenCanvas interface: operation transferToImageBitmap()
-PASS OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface object
-PASS OffscreenCanvasRenderingContext2D interface object length
-PASS OffscreenCanvasRenderingContext2D interface object name
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property
-PASS OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property
-PASS OffscreenCanvasRenderingContext2D interface: operation commit()
-PASS OffscreenCanvasRenderingContext2D interface: attribute canvas
-PASS OffscreenCanvasRenderingContext2D interface: operation save()
-PASS OffscreenCanvasRenderingContext2D interface: operation restore()
-PASS OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation getTransform()
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)
-PASS OffscreenCanvasRenderingContext2D interface: operation resetTransform()
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalAlpha
-PASS OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled
-PASS OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality
-PASS OffscreenCanvasRenderingContext2D interface: attribute strokeStyle
-PASS OffscreenCanvasRenderingContext2D interface: attribute fillStyle
-PASS OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowBlur
-PASS OffscreenCanvasRenderingContext2D interface: attribute shadowColor
-PASS OffscreenCanvasRenderingContext2D interface: attribute filter
-PASS OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation beginPath()
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke()
-PASS OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)
-PASS OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineWidth
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineCap
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineJoin
-PASS OffscreenCanvasRenderingContext2D interface: attribute miterLimit
-PASS OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)
-PASS OffscreenCanvasRenderingContext2D interface: operation getLineDash()
-PASS OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset
-PASS OffscreenCanvasRenderingContext2D interface: attribute font
-PASS OffscreenCanvasRenderingContext2D interface: attribute textAlign
-PASS OffscreenCanvasRenderingContext2D interface: attribute textBaseline
-PASS OffscreenCanvasRenderingContext2D interface: attribute direction
-PASS OffscreenCanvasRenderingContext2D interface: operation closePath()
-PASS OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)
-PASS OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)
-PASS CustomElementRegistry interface: existence and properties of interface object
-PASS CustomElementRegistry interface object length
-PASS CustomElementRegistry interface object name
-PASS CustomElementRegistry interface: existence and properties of interface prototype object
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's "constructor" property
-PASS CustomElementRegistry interface: existence and properties of interface prototype object's @@unscopables property
-PASS CustomElementRegistry interface: operation define(DOMString, CustomElementConstructor, optional ElementDefinitionOptions)
-PASS CustomElementRegistry interface: operation get(DOMString)
-PASS CustomElementRegistry interface: operation whenDefined(DOMString)
-PASS CustomElementRegistry interface: operation upgrade(Node)
-PASS ElementInternals interface: existence and properties of interface object
-PASS ElementInternals interface object length
-PASS ElementInternals interface object name
-PASS ElementInternals interface: existence and properties of interface prototype object
-PASS ElementInternals interface: existence and properties of interface prototype object's "constructor" property
-PASS ElementInternals interface: existence and properties of interface prototype object's @@unscopables property
-PASS ElementInternals interface: operation setFormValue((File or USVString or FormData)?, optional (File or USVString or FormData)?)
-PASS ElementInternals interface: attribute form
-FAIL ElementInternals interface: operation setValidity(optional ValidityStateFlags, optional DOMString, optional HTMLElement) assert_equals: property has wrong .length expected 0 but got 1
-PASS ElementInternals interface: attribute willValidate
-PASS ElementInternals interface: attribute validity
-PASS ElementInternals interface: attribute validationMessage
-PASS ElementInternals interface: operation checkValidity()
-PASS ElementInternals interface: operation reportValidity()
-PASS ElementInternals interface: attribute labels
-PASS DataTransfer interface: existence and properties of interface object
-PASS DataTransfer interface object length
-PASS DataTransfer interface object name
-PASS DataTransfer interface: existence and properties of interface prototype object
-PASS DataTransfer interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransfer interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransfer interface: attribute dropEffect
-PASS DataTransfer interface: attribute effectAllowed
-PASS DataTransfer interface: attribute items
-PASS DataTransfer interface: operation setDragImage(Element, long, long)
-PASS DataTransfer interface: attribute types
-PASS DataTransfer interface: operation getData(DOMString)
-PASS DataTransfer interface: operation setData(DOMString, DOMString)
-PASS DataTransfer interface: operation clearData(optional DOMString)
-PASS DataTransfer interface: attribute files
-PASS DataTransferItemList interface: existence and properties of interface object
-PASS DataTransferItemList interface object length
-PASS DataTransferItemList interface object name
-PASS DataTransferItemList interface: existence and properties of interface prototype object
-PASS DataTransferItemList interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItemList interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItemList interface: attribute length
-PASS DataTransferItemList interface: operation add(DOMString, DOMString)
-PASS DataTransferItemList interface: operation add(File)
-PASS DataTransferItemList interface: operation remove(unsigned long)
-PASS DataTransferItemList interface: operation clear()
-PASS DataTransferItem interface: existence and properties of interface object
-PASS DataTransferItem interface object length
-PASS DataTransferItem interface object name
-PASS DataTransferItem interface: existence and properties of interface prototype object
-PASS DataTransferItem interface: existence and properties of interface prototype object's "constructor" property
-PASS DataTransferItem interface: existence and properties of interface prototype object's @@unscopables property
-PASS DataTransferItem interface: attribute kind
-PASS DataTransferItem interface: attribute type
-PASS DataTransferItem interface: operation getAsString(FunctionStringCallback?)
-PASS DataTransferItem interface: operation getAsFile()
-PASS DragEvent interface: existence and properties of interface object
-PASS DragEvent interface object length
-PASS DragEvent interface object name
-PASS DragEvent interface: existence and properties of interface prototype object
-PASS DragEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS DragEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS DragEvent interface: attribute dataTransfer
-PASS BarProp interface: existence and properties of interface object
-PASS BarProp interface object length
-PASS BarProp interface object name
-PASS BarProp interface: existence and properties of interface prototype object
-PASS BarProp interface: existence and properties of interface prototype object's "constructor" property
-PASS BarProp interface: existence and properties of interface prototype object's @@unscopables property
-PASS BarProp interface: attribute visible
-PASS History interface: existence and properties of interface object
-PASS History interface object length
-PASS History interface object name
-PASS History interface: existence and properties of interface prototype object
-PASS History interface: existence and properties of interface prototype object's "constructor" property
-PASS History interface: existence and properties of interface prototype object's @@unscopables property
-PASS History interface: attribute length
-PASS History interface: attribute scrollRestoration
-PASS History interface: attribute state
-PASS History interface: operation go(optional long)
-PASS History interface: operation back()
-PASS History interface: operation forward()
-PASS History interface: operation pushState(any, DOMString, optional USVString?)
-PASS History interface: operation replaceState(any, DOMString, optional USVString?)
-PASS History must be primary interface of window.history
-PASS Stringification of window.history
-PASS History interface: window.history must inherit property "length" with the proper type
-PASS History interface: window.history must inherit property "scrollRestoration" with the proper type
-PASS History interface: window.history must inherit property "state" with the proper type
-PASS History interface: window.history must inherit property "go(optional long)" with the proper type
-PASS History interface: calling go(optional long) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "back()" with the proper type
-PASS History interface: window.history must inherit property "forward()" with the proper type
-PASS History interface: window.history must inherit property "pushState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling pushState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS History interface: window.history must inherit property "replaceState(any, DOMString, optional USVString?)" with the proper type
-PASS History interface: calling replaceState(any, DOMString, optional USVString?) on window.history with too few arguments must throw TypeError
-PASS Location interface: existence and properties of interface object
-PASS Location interface object length
-PASS Location interface object name
-PASS Location interface: existence and properties of interface prototype object
-PASS Location interface: existence and properties of interface prototype object's "constructor" property
-PASS Location interface: existence and properties of interface prototype object's @@unscopables property
-FAIL Location interface: stringifier assert_own_property: interface prototype object missing non-static operation expected property "toString" missing
-PASS Location must be primary interface of window.location
-PASS Stringification of window.location
-FAIL Location interface: window.location must have own property "href" assert_false: property descriptor should not have a "value" field expected false got true
-PASS Location interface: window.location must have own property "origin"
-PASS Location interface: window.location must have own property "protocol"
-PASS Location interface: window.location must have own property "host"
-PASS Location interface: window.location must have own property "hostname"
-PASS Location interface: window.location must have own property "port"
-PASS Location interface: window.location must have own property "pathname"
-PASS Location interface: window.location must have own property "search"
-PASS Location interface: window.location must have own property "hash"
-PASS Location interface: window.location must have own property "assign"
-PASS Location interface: calling assign(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "replace"
-PASS Location interface: calling replace(USVString) on window.location with too few arguments must throw TypeError
-PASS Location interface: window.location must have own property "reload"
-PASS Location interface: window.location must have own property "ancestorOrigins"
-PASS PopStateEvent interface: existence and properties of interface object
-PASS PopStateEvent interface object length
-PASS PopStateEvent interface object name
-PASS PopStateEvent interface: existence and properties of interface prototype object
-PASS PopStateEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PopStateEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PopStateEvent interface: attribute state
-PASS PopStateEvent must be primary interface of new PopStateEvent("popstate", { data: {} })
-PASS Stringification of new PopStateEvent("popstate", { data: {} })
-PASS PopStateEvent interface: new PopStateEvent("popstate", { data: {} }) must inherit property "state" with the proper type
-PASS HashChangeEvent interface: existence and properties of interface object
-PASS HashChangeEvent interface object length
-PASS HashChangeEvent interface object name
-PASS HashChangeEvent interface: existence and properties of interface prototype object
-PASS HashChangeEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS HashChangeEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS HashChangeEvent interface: attribute oldURL
-PASS HashChangeEvent interface: attribute newURL
-PASS PageTransitionEvent interface: existence and properties of interface object
-PASS PageTransitionEvent interface object length
-PASS PageTransitionEvent interface object name
-PASS PageTransitionEvent interface: existence and properties of interface prototype object
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PageTransitionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PageTransitionEvent interface: attribute persisted
-PASS BeforeUnloadEvent interface: existence and properties of interface object
-PASS BeforeUnloadEvent interface object length
-PASS BeforeUnloadEvent interface object name
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS BeforeUnloadEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS BeforeUnloadEvent interface: attribute returnValue
-FAIL ApplicationCache interface: existence and properties of interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface object length assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface object name assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: existence and properties of interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant UNCACHED on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant UNCACHED on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant IDLE on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant IDLE on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant CHECKING on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant CHECKING on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant DOWNLOADING on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant DOWNLOADING on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant UPDATEREADY on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant UPDATEREADY on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant OBSOLETE on interface object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: constant OBSOLETE on interface prototype object assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute status assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: operation update() assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: operation abort() assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: operation swapCache() assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onchecking assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onerror assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onnoupdate assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute ondownloading assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onprogress assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onupdateready assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute oncached assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache interface: attribute onobsolete assert_own_property: self does not have own property "ApplicationCache" expected property "ApplicationCache" missing
-FAIL ApplicationCache must be primary interface of window.applicationCache assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL Stringification of window.applicationCache assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "UNCACHED" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "IDLE" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "CHECKING" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "DOWNLOADING" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "UPDATEREADY" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "OBSOLETE" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "status" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "update()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "abort()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "swapCache()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onchecking" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onnoupdate" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "ondownloading" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onprogress" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onupdateready" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "oncached" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-FAIL ApplicationCache interface: window.applicationCache must inherit property "onobsolete" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
-PASS ErrorEvent interface: existence and properties of interface object
-PASS ErrorEvent interface object length
-PASS ErrorEvent interface object name
-PASS ErrorEvent interface: existence and properties of interface prototype object
-PASS ErrorEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS ErrorEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS ErrorEvent interface: attribute message
-PASS ErrorEvent interface: attribute filename
-PASS ErrorEvent interface: attribute lineno
-PASS ErrorEvent interface: attribute colno
-PASS ErrorEvent interface: attribute error
-PASS PromiseRejectionEvent interface: existence and properties of interface object
-PASS PromiseRejectionEvent interface object length
-PASS PromiseRejectionEvent interface object name
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS PromiseRejectionEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS PromiseRejectionEvent interface: attribute promise
-PASS PromiseRejectionEvent interface: attribute reason
-PASS DOMParser interface: existence and properties of interface object
-PASS DOMParser interface object length
-PASS DOMParser interface object name
-PASS DOMParser interface: existence and properties of interface prototype object
-PASS DOMParser interface: existence and properties of interface prototype object's "constructor" property
-PASS DOMParser interface: existence and properties of interface prototype object's @@unscopables property
-PASS DOMParser interface: operation parseFromString(DOMString, DOMParserSupportedType)
-PASS DOMParser must be primary interface of new DOMParser()
-PASS Stringification of new DOMParser()
-PASS DOMParser interface: new DOMParser() must inherit property "parseFromString(DOMString, DOMParserSupportedType)" with the proper type
-PASS DOMParser interface: calling parseFromString(DOMString, DOMParserSupportedType) on new DOMParser() with too few arguments must throw TypeError
-PASS Navigator interface: existence and properties of interface object
-PASS Navigator interface object length
-PASS Navigator interface object name
-PASS Navigator interface: existence and properties of interface prototype object
-PASS Navigator interface: existence and properties of interface prototype object's "constructor" property
-PASS Navigator interface: existence and properties of interface prototype object's @@unscopables property
-PASS Navigator interface: attribute appCodeName
-PASS Navigator interface: attribute appName
-PASS Navigator interface: attribute appVersion
-PASS Navigator interface: attribute platform
-PASS Navigator interface: attribute product
-PASS Navigator interface: attribute productSub
-PASS Navigator interface: attribute userAgent
-PASS Navigator interface: attribute vendor
-PASS Navigator interface: attribute vendorSub
-FAIL Navigator interface: operation taintEnabled() assert_own_property: interface prototype object missing non-static operation expected property "taintEnabled" missing
-FAIL Navigator interface: attribute oscpu assert_true: The prototype object must have a property "oscpu" expected true got false
-PASS Navigator interface: attribute language
-PASS Navigator interface: attribute languages
-PASS Navigator interface: attribute onLine
-FAIL Navigator interface: operation registerProtocolHandler(DOMString, USVString) assert_equals: property has wrong .length expected 2 but got 3
-PASS Navigator interface: operation unregisterProtocolHandler(DOMString, USVString)
-PASS Navigator interface: attribute cookieEnabled
-PASS Navigator interface: attribute plugins
-PASS Navigator interface: attribute mimeTypes
-PASS Navigator interface: operation javaEnabled()
-PASS Navigator interface: attribute hardwareConcurrency
-PASS Navigator must be primary interface of window.navigator
-PASS Stringification of window.navigator
-PASS Navigator interface: window.navigator must inherit property "appCodeName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appName" with the proper type
-PASS Navigator interface: window.navigator must inherit property "appVersion" with the proper type
-PASS Navigator interface: window.navigator must inherit property "platform" with the proper type
-PASS Navigator interface: window.navigator must inherit property "product" with the proper type
-PASS Navigator interface: window.navigator must inherit property "productSub" with the proper type
-PASS Navigator interface: window.navigator must inherit property "userAgent" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendor" with the proper type
-PASS Navigator interface: window.navigator must inherit property "vendorSub" with the proper type
-FAIL Navigator interface: window.navigator must inherit property "taintEnabled()" with the proper type assert_inherits: property "taintEnabled" not found in prototype chain
-FAIL Navigator interface: window.navigator must inherit property "oscpu" with the proper type assert_inherits: property "oscpu" not found in prototype chain
-PASS Navigator interface: window.navigator must inherit property "language" with the proper type
-PASS Navigator interface: window.navigator must inherit property "languages" with the proper type
-PASS Navigator interface: window.navigator must inherit property "onLine" with the proper type
-PASS Navigator interface: window.navigator must inherit property "registerProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling registerProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "unregisterProtocolHandler(DOMString, USVString)" with the proper type
-PASS Navigator interface: calling unregisterProtocolHandler(DOMString, USVString) on window.navigator with too few arguments must throw TypeError
-PASS Navigator interface: window.navigator must inherit property "cookieEnabled" with the proper type
-PASS Navigator interface: window.navigator must inherit property "plugins" with the proper type
-PASS Navigator interface: window.navigator must inherit property "mimeTypes" with the proper type
-PASS Navigator interface: window.navigator must inherit property "javaEnabled()" with the proper type
-PASS Navigator interface: window.navigator must inherit property "hardwareConcurrency" with the proper type
-PASS PluginArray interface: existence and properties of interface object
-PASS PluginArray interface object length
-PASS PluginArray interface object name
-PASS PluginArray interface: existence and properties of interface prototype object
-PASS PluginArray interface: existence and properties of interface prototype object's "constructor" property
-PASS PluginArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS PluginArray interface: operation refresh(optional boolean)
-PASS PluginArray interface: attribute length
-PASS PluginArray interface: operation item(unsigned long)
-PASS PluginArray interface: operation namedItem(DOMString)
-PASS MimeTypeArray interface: existence and properties of interface object
-PASS MimeTypeArray interface object length
-PASS MimeTypeArray interface object name
-PASS MimeTypeArray interface: existence and properties of interface prototype object
-PASS MimeTypeArray interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeTypeArray interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeTypeArray interface: attribute length
-PASS MimeTypeArray interface: operation item(unsigned long)
-PASS MimeTypeArray interface: operation namedItem(DOMString)
-PASS Plugin interface: existence and properties of interface object
-PASS Plugin interface object length
-PASS Plugin interface object name
-PASS Plugin interface: existence and properties of interface prototype object
-PASS Plugin interface: existence and properties of interface prototype object's "constructor" property
-PASS Plugin interface: existence and properties of interface prototype object's @@unscopables property
-PASS Plugin interface: attribute name
-PASS Plugin interface: attribute description
-PASS Plugin interface: attribute filename
-PASS Plugin interface: attribute length
-PASS Plugin interface: operation item(unsigned long)
-PASS Plugin interface: operation namedItem(DOMString)
-PASS MimeType interface: existence and properties of interface object
-PASS MimeType interface object length
-PASS MimeType interface object name
-PASS MimeType interface: existence and properties of interface prototype object
-PASS MimeType interface: existence and properties of interface prototype object's "constructor" property
-PASS MimeType interface: existence and properties of interface prototype object's @@unscopables property
-PASS MimeType interface: attribute type
-PASS MimeType interface: attribute description
-PASS MimeType interface: attribute suffixes
-PASS MimeType interface: attribute enabledPlugin
-PASS ImageBitmap interface: existence and properties of interface object
-PASS ImageBitmap interface object length
-PASS ImageBitmap interface object name
-PASS ImageBitmap interface: existence and properties of interface prototype object
-PASS ImageBitmap interface: existence and properties of interface prototype object's "constructor" property
-PASS ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property
-PASS ImageBitmap interface: attribute width
-PASS ImageBitmap interface: attribute height
-PASS ImageBitmap interface: operation close()
-PASS MessageEvent interface: existence and properties of interface object
-PASS MessageEvent interface object length
-PASS MessageEvent interface object name
-PASS MessageEvent interface: existence and properties of interface prototype object
-PASS MessageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageEvent interface: attribute data
-PASS MessageEvent interface: attribute origin
-PASS MessageEvent interface: attribute lastEventId
-PASS MessageEvent interface: attribute source
-PASS MessageEvent interface: attribute ports
-PASS MessageEvent interface: operation initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)
-PASS MessageEvent must be primary interface of new MessageEvent("message", { data: 5 })
-PASS Stringification of new MessageEvent("message", { data: 5 })
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "data" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "origin" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "lastEventId" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "source" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "ports" with the proper type
-PASS MessageEvent interface: new MessageEvent("message", { data: 5 }) must inherit property "initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>)" with the proper type
-PASS MessageEvent interface: calling initMessageEvent(DOMString, optional boolean, optional boolean, optional any, optional USVString, optional DOMString, optional MessageEventSource?, optional sequence<MessagePort>) on new MessageEvent("message", { data: 5 }) with too few arguments must throw TypeError
-PASS EventSource interface: existence and properties of interface object
-PASS EventSource interface object length
-PASS EventSource interface object name
-PASS EventSource interface: existence and properties of interface prototype object
-PASS EventSource interface: existence and properties of interface prototype object's "constructor" property
-PASS EventSource interface: existence and properties of interface prototype object's @@unscopables property
-PASS EventSource interface: attribute url
-PASS EventSource interface: attribute withCredentials
-PASS EventSource interface: constant CONNECTING on interface object
-PASS EventSource interface: constant CONNECTING on interface prototype object
-PASS EventSource interface: constant OPEN on interface object
-PASS EventSource interface: constant OPEN on interface prototype object
-PASS EventSource interface: constant CLOSED on interface object
-PASS EventSource interface: constant CLOSED on interface prototype object
-PASS EventSource interface: attribute readyState
-PASS EventSource interface: attribute onopen
-PASS EventSource interface: attribute onmessage
-PASS EventSource interface: attribute onerror
-PASS EventSource interface: operation close()
-PASS WebSocket interface: existence and properties of interface object
-PASS WebSocket interface object length
-PASS WebSocket interface object name
-PASS WebSocket interface: existence and properties of interface prototype object
-PASS WebSocket interface: existence and properties of interface prototype object's "constructor" property
-PASS WebSocket interface: existence and properties of interface prototype object's @@unscopables property
-PASS WebSocket interface: attribute url
-PASS WebSocket interface: constant CONNECTING on interface object
-PASS WebSocket interface: constant CONNECTING on interface prototype object
-PASS WebSocket interface: constant OPEN on interface object
-PASS WebSocket interface: constant OPEN on interface prototype object
-PASS WebSocket interface: constant CLOSING on interface object
-PASS WebSocket interface: constant CLOSING on interface prototype object
-PASS WebSocket interface: constant CLOSED on interface object
-PASS WebSocket interface: constant CLOSED on interface prototype object
-PASS WebSocket interface: attribute readyState
-PASS WebSocket interface: attribute bufferedAmount
-PASS WebSocket interface: attribute onopen
-PASS WebSocket interface: attribute onerror
-PASS WebSocket interface: attribute onclose
-PASS WebSocket interface: attribute extensions
-PASS WebSocket interface: attribute protocol
-PASS WebSocket interface: operation close(optional unsigned short, optional USVString)
-PASS WebSocket interface: attribute onmessage
-PASS WebSocket interface: attribute binaryType
-PASS WebSocket interface: operation send(USVString)
-PASS WebSocket interface: operation send(Blob)
-PASS WebSocket interface: operation send(ArrayBuffer)
-PASS WebSocket interface: operation send(ArrayBufferView)
-PASS WebSocket must be primary interface of new WebSocket("wss://nonexistent.web-platform.test")
-PASS Stringification of new WebSocket("wss://nonexistent.web-platform.test")
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "url" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CONNECTING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "OPEN" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSING" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "CLOSED" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "readyState" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "bufferedAmount" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onopen" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onerror" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onclose" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "extensions" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "protocol" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "close(optional unsigned short, optional USVString)" with the proper type
-PASS WebSocket interface: calling close(optional unsigned short, optional USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "onmessage" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "binaryType" with the proper type
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(USVString)" with the proper type
-PASS WebSocket interface: calling send(USVString) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(Blob)" with the proper type
-PASS WebSocket interface: calling send(Blob) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBuffer)" with the proper type
-PASS WebSocket interface: calling send(ArrayBuffer) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS WebSocket interface: new WebSocket("wss://nonexistent.web-platform.test") must inherit property "send(ArrayBufferView)" with the proper type
-PASS WebSocket interface: calling send(ArrayBufferView) on new WebSocket("wss://nonexistent.web-platform.test") with too few arguments must throw TypeError
-PASS CloseEvent interface: existence and properties of interface object
-PASS CloseEvent interface object length
-PASS CloseEvent interface object name
-PASS CloseEvent interface: existence and properties of interface prototype object
-PASS CloseEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS CloseEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS CloseEvent interface: attribute wasClean
-PASS CloseEvent interface: attribute code
-PASS CloseEvent interface: attribute reason
-PASS CloseEvent must be primary interface of new CloseEvent("close")
-PASS Stringification of new CloseEvent("close")
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "wasClean" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "code" with the proper type
-PASS CloseEvent interface: new CloseEvent("close") must inherit property "reason" with the proper type
-PASS MessageChannel interface: existence and properties of interface object
-PASS MessageChannel interface object length
-PASS MessageChannel interface object name
-PASS MessageChannel interface: existence and properties of interface prototype object
-PASS MessageChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS MessageChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessageChannel interface: attribute port1
-PASS MessageChannel interface: attribute port2
-PASS MessagePort interface: existence and properties of interface object
-PASS MessagePort interface object length
-PASS MessagePort interface object name
-PASS MessagePort interface: existence and properties of interface prototype object
-PASS MessagePort interface: existence and properties of interface prototype object's "constructor" property
-PASS MessagePort interface: existence and properties of interface prototype object's @@unscopables property
-PASS MessagePort interface: operation postMessage(any, sequence<object>)
-PASS MessagePort interface: operation postMessage(any, optional PostMessageOptions)
-PASS MessagePort interface: operation start()
-PASS MessagePort interface: operation close()
-PASS MessagePort interface: attribute onmessage
-PASS MessagePort interface: attribute onmessageerror
-PASS BroadcastChannel interface: existence and properties of interface object
-PASS BroadcastChannel interface object length
-PASS BroadcastChannel interface object name
-PASS BroadcastChannel interface: existence and properties of interface prototype object
-PASS BroadcastChannel interface: existence and properties of interface prototype object's "constructor" property
-PASS BroadcastChannel interface: existence and properties of interface prototype object's @@unscopables property
-PASS BroadcastChannel interface: attribute name
-PASS BroadcastChannel interface: operation postMessage(any)
-PASS BroadcastChannel interface: operation close()
-PASS BroadcastChannel interface: attribute onmessage
-PASS BroadcastChannel interface: attribute onmessageerror
-PASS WorkerGlobalScope interface: existence and properties of interface object
-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object
-PASS SharedWorkerGlobalScope interface: existence and properties of interface object
-PASS Worker interface: existence and properties of interface object
-PASS Worker interface object length
-PASS Worker interface object name
-PASS Worker interface: existence and properties of interface prototype object
-PASS Worker interface: existence and properties of interface prototype object's "constructor" property
-PASS Worker interface: existence and properties of interface prototype object's @@unscopables property
-PASS Worker interface: operation terminate()
-PASS Worker interface: operation postMessage(any, sequence<object>)
-PASS Worker interface: operation postMessage(any, optional PostMessageOptions)
-PASS Worker interface: attribute onmessage
-FAIL Worker interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-PASS Worker interface: attribute onerror
-PASS SharedWorker interface: existence and properties of interface object
-PASS SharedWorker interface object length
-PASS SharedWorker interface object name
-PASS SharedWorker interface: existence and properties of interface prototype object
-PASS SharedWorker interface: existence and properties of interface prototype object's "constructor" property
-PASS SharedWorker interface: existence and properties of interface prototype object's @@unscopables property
-PASS SharedWorker interface: attribute port
-PASS SharedWorker interface: attribute onerror
-PASS WorkerNavigator interface: existence and properties of interface object
-PASS WorkerLocation interface: existence and properties of interface object
-PASS Storage interface: existence and properties of interface object
-PASS Storage interface object length
-PASS Storage interface object name
-PASS Storage interface: existence and properties of interface prototype object
-PASS Storage interface: existence and properties of interface prototype object's "constructor" property
-PASS Storage interface: existence and properties of interface prototype object's @@unscopables property
-PASS Storage interface: attribute length
-PASS Storage interface: operation key(unsigned long)
-PASS Storage interface: operation getItem(DOMString)
-PASS Storage interface: operation setItem(DOMString, DOMString)
-PASS Storage interface: operation removeItem(DOMString)
-PASS Storage interface: operation clear()
-PASS StorageEvent interface: existence and properties of interface object
-PASS StorageEvent interface object length
-PASS StorageEvent interface object name
-PASS StorageEvent interface: existence and properties of interface prototype object
-PASS StorageEvent interface: existence and properties of interface prototype object's "constructor" property
-PASS StorageEvent interface: existence and properties of interface prototype object's @@unscopables property
-PASS StorageEvent interface: attribute key
-PASS StorageEvent interface: attribute oldValue
-PASS StorageEvent interface: attribute newValue
-PASS StorageEvent interface: attribute url
-PASS StorageEvent interface: attribute storageArea
-PASS StorageEvent interface: operation initStorageEvent(DOMString, optional boolean, optional boolean, optional DOMString?, optional DOMString?, optional DOMString?, optional USVString, optional Storage?)
-PASS External interface: existence and properties of interface object
-PASS External interface object length
-PASS External interface object name
-PASS External interface: existence and properties of interface prototype object
-PASS External interface: existence and properties of interface prototype object's "constructor" property
-PASS External interface: existence and properties of interface prototype object's @@unscopables property
-PASS External interface: operation AddSearchProvider()
-PASS External interface: operation IsSearchProviderInstalled()
-PASS External must be primary interface of window.external
-PASS Stringification of window.external
-PASS External interface: window.external must inherit property "AddSearchProvider()" with the proper type
-PASS External interface: window.external must inherit property "IsSearchProviderInstalled()" with the proper type
-PASS SVGElement interface: attribute onabort
-PASS SVGElement interface: attribute onauxclick
-PASS SVGElement interface: attribute onblur
-PASS SVGElement interface: attribute oncancel
-PASS SVGElement interface: attribute oncanplay
-PASS SVGElement interface: attribute oncanplaythrough
-PASS SVGElement interface: attribute onchange
-PASS SVGElement interface: attribute onclick
-PASS SVGElement interface: attribute onclose
-PASS SVGElement interface: attribute oncontextmenu
-PASS SVGElement interface: attribute oncuechange
-PASS SVGElement interface: attribute ondblclick
-PASS SVGElement interface: attribute ondrag
-PASS SVGElement interface: attribute ondragend
-PASS SVGElement interface: attribute ondragenter
-FAIL SVGElement interface: attribute ondragexit assert_true: The prototype object must have a property "ondragexit" expected true got false
-PASS SVGElement interface: attribute ondragleave
-PASS SVGElement interface: attribute ondragover
-PASS SVGElement interface: attribute ondragstart
-PASS SVGElement interface: attribute ondrop
-PASS SVGElement interface: attribute ondurationchange
-PASS SVGElement interface: attribute onemptied
-PASS SVGElement interface: attribute onended
-PASS SVGElement interface: attribute onerror
-PASS SVGElement interface: attribute onfocus
-PASS SVGElement interface: attribute onformdata
-PASS SVGElement interface: attribute oninput
-PASS SVGElement interface: attribute oninvalid
-PASS SVGElement interface: attribute onkeydown
-PASS SVGElement interface: attribute onkeypress
-PASS SVGElement interface: attribute onkeyup
-PASS SVGElement interface: attribute onload
-PASS SVGElement interface: attribute onloadeddata
-PASS SVGElement interface: attribute onloadedmetadata
-PASS SVGElement interface: attribute onloadstart
-PASS SVGElement interface: attribute onmousedown
-PASS SVGElement interface: attribute onmouseenter
-PASS SVGElement interface: attribute onmouseleave
-PASS SVGElement interface: attribute onmousemove
-PASS SVGElement interface: attribute onmouseout
-PASS SVGElement interface: attribute onmouseover
-PASS SVGElement interface: attribute onmouseup
-PASS SVGElement interface: attribute onpause
-PASS SVGElement interface: attribute onplay
-PASS SVGElement interface: attribute onplaying
-PASS SVGElement interface: attribute onprogress
-PASS SVGElement interface: attribute onratechange
-PASS SVGElement interface: attribute onreset
-PASS SVGElement interface: attribute onresize
-PASS SVGElement interface: attribute onscroll
-FAIL SVGElement interface: attribute onsecuritypolicyviolation assert_true: The prototype object must have a property "onsecuritypolicyviolation" expected true got false
-PASS SVGElement interface: attribute onseeked
-PASS SVGElement interface: attribute onseeking
-PASS SVGElement interface: attribute onselect
-FAIL SVGElement interface: attribute onslotchange assert_true: The prototype object must have a property "onslotchange" expected true got false
-PASS SVGElement interface: attribute onstalled
-PASS SVGElement interface: attribute onsubmit
-PASS SVGElement interface: attribute onsuspend
-PASS SVGElement interface: attribute ontimeupdate
-PASS SVGElement interface: attribute ontoggle
-PASS SVGElement interface: attribute onvolumechange
-PASS SVGElement interface: attribute onwaiting
-PASS SVGElement interface: attribute onwebkitanimationend
-PASS SVGElement interface: attribute onwebkitanimationiteration
-PASS SVGElement interface: attribute onwebkitanimationstart
-PASS SVGElement interface: attribute onwebkittransitionend
-PASS SVGElement interface: attribute onwheel
-PASS SVGElement interface: attribute oncopy
-PASS SVGElement interface: attribute oncut
-PASS SVGElement interface: attribute onpaste
-PASS SVGElement interface: attribute dataset
-PASS SVGElement interface: attribute nonce
-PASS SVGElement interface: attribute autofocus
-PASS SVGElement interface: attribute tabIndex
-PASS SVGElement interface: operation focus(optional FocusOptions)
-PASS SVGElement interface: operation blur()
-FAIL SVGSVGElement interface: attribute onafterprint assert_true: The prototype object must have a property "onafterprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeprint assert_true: The prototype object must have a property "onbeforeprint" expected true got false
-FAIL SVGSVGElement interface: attribute onbeforeunload assert_true: The prototype object must have a property "onbeforeunload" expected true got false
-FAIL SVGSVGElement interface: attribute onhashchange assert_true: The prototype object must have a property "onhashchange" expected true got false
-FAIL SVGSVGElement interface: attribute onlanguagechange assert_true: The prototype object must have a property "onlanguagechange" expected true got false
-FAIL SVGSVGElement interface: attribute onmessage assert_true: The prototype object must have a property "onmessage" expected true got false
-FAIL SVGSVGElement interface: attribute onmessageerror assert_true: The prototype object must have a property "onmessageerror" expected true got false
-FAIL SVGSVGElement interface: attribute onoffline assert_true: The prototype object must have a property "onoffline" expected true got false
-FAIL SVGSVGElement interface: attribute ononline assert_true: The prototype object must have a property "ononline" expected true got false
-FAIL SVGSVGElement interface: attribute onpagehide assert_true: The prototype object must have a property "onpagehide" expected true got false
-FAIL SVGSVGElement interface: attribute onpageshow assert_true: The prototype object must have a property "onpageshow" expected true got false
-FAIL SVGSVGElement interface: attribute onpopstate assert_true: The prototype object must have a property "onpopstate" expected true got false
-FAIL SVGSVGElement interface: attribute onrejectionhandled assert_true: The prototype object must have a property "onrejectionhandled" expected true got false
-FAIL SVGSVGElement interface: attribute onstorage assert_true: The prototype object must have a property "onstorage" expected true got false
-FAIL SVGSVGElement interface: attribute onunhandledrejection assert_true: The prototype object must have a property "onunhandledrejection" expected true got false
-FAIL SVGSVGElement interface: attribute onunload assert_true: The prototype object must have a property "onunload" expected true got false
-PASS ShadowRoot interface: attribute activeElement
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt b/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt
index 9c3aca383..6fe52b40 100644
--- a/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt
+++ b/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt
@@ -161,7 +161,7 @@
 PASS > [waveshaper] 
 PASS   node.oversample = "9x" did not throw an exception.
 PASS   node.oversample is equal to none.
-PASS   node.curve = {} threw TypeError: "Failed to set the 'curve' property on 'WaveShaperNode': The provided value is not of type 'Float32Array'.".
+PASS   node.curve = {} threw TypeError: "Failed to set the 'curve' property on 'WaveShaperNode': Failed to convert value to 'Float32Array'.".
 PASS   node.curve = new Float32Array(1) threw InvalidAccessError: "Failed to set the 'curve' property on 'WaveShaperNode': The curve length provided (1) is less than the minimum bound (2).".
 PASS   node.curve is equal to null.
 PASS   node.curve = new Float32Array(2) did not throw an exception.
@@ -233,7 +233,7 @@
 PASS > [convolver] 
 PASS   oc = new OfflineAudioContext(1, 44100, 44100) did not throw an exception.
 PASS   conv = oc.createConvolver() did not throw an exception.
-PASS   conv.buffer = {} threw TypeError: "Failed to set the 'buffer' property on 'ConvolverNode': The provided value is not of type 'AudioBuffer'.".
+PASS   conv.buffer = {} threw TypeError: "Failed to set the 'buffer' property on 'ConvolverNode': Failed to convert value to 'AudioBuffer'.".
 PASS   conv.buffer = oc.createBuffer(1, 100, 22050) threw NotSupportedError: "Failed to set the 'buffer' property on 'ConvolverNode': The buffer sample rate of 22050 does not match the context rate of 44100 Hz.".
 PASS   conv.buffer is equal to null.
 PASS < [convolver] All assertions passed. (total 5 assertions)
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 98f244c1..20dc7058 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -672,6 +672,7 @@
     attribute @@toStringTag
     getter cssRules
     getter name
+    method @@iterator
     method appendRule
     method constructor
     method deleteRule
@@ -3245,6 +3246,7 @@
     setter size
 interface HTMLFormControlsCollection : HTMLCollection
     attribute @@toStringTag
+    method @@iterator
     method constructor
     method namedItem
 interface HTMLFormElement : HTMLElement
@@ -6625,6 +6627,7 @@
 interface RadioNodeList : NodeList
     attribute @@toStringTag
     getter value
+    method @@iterator
     method constructor
     setter value
 interface Range
@@ -11653,7 +11656,6 @@
     attribute @@toStringTag
     getter src
     getter weight
-    method constructor
     setter src
     setter weight
 interface webkitSpeechGrammarList
@@ -11662,7 +11664,6 @@
     method @@iterator
     method addFromString
     method addFromUri
-    method constructor
     method item
 interface webkitSpeechRecognition : EventTarget
     attribute @@toStringTag
@@ -11683,7 +11684,6 @@
     getter onspeechstart
     getter onstart
     method abort
-    method constructor
     method start
     method stop
     setter continuous
@@ -11706,14 +11706,12 @@
     attribute @@toStringTag
     getter error
     getter message
-    method constructor
 interface webkitSpeechRecognitionEvent : Event
     attribute @@toStringTag
     getter emma
     getter interpretation
     getter resultIndex
     getter results
-    method constructor
 interface webkitURL
     static method createObjectURL
     static method revokeObjectURL
@@ -11747,25 +11745,17 @@
     attribute GCController
     attribute accessibilityController
     attribute chrome
-    attribute closed
     attribute console
     attribute eventSender
-    attribute frames
     attribute gamepadController
     attribute globalThis
     attribute internals
-    attribute length
-    attribute location
-    attribute opener
-    attribute parent
     attribute propertyNamesInGlobal
-    attribute self
     attribute testRunner
     attribute textInputController
-    attribute top
-    attribute window
     getter caches
     getter clientInformation
+    getter closed
     getter cookieStore
     getter crossOriginIsolated
     getter crypto
@@ -11777,13 +11767,16 @@
     getter event
     getter external
     getter frameElement
+    getter frames
     getter history
     getter indexedDB
     getter innerHeight
     getter innerWidth
     getter isSecureContext
     getter launchQueue
+    getter length
     getter localStorage
+    getter location
     getter locationbar
     getter menubar
     getter name
@@ -11903,6 +11896,7 @@
     getter onwebkitanimationstart
     getter onwebkittransitionend
     getter onwheel
+    getter opener
     getter origin
     getter originIsolationRestricted
     getter originPolicyIds
@@ -11910,6 +11904,7 @@
     getter outerWidth
     getter pageXOffset
     getter pageYOffset
+    getter parent
     getter performance
     getter personalbar
     getter portalHost
@@ -11922,15 +11917,18 @@
     getter scrollX
     getter scrollY
     getter scrollbars
+    getter self
     getter sessionStorage
     getter speechSynthesis
     getter status
     getter statusbar
     getter styleMedia
     getter toolbar
+    getter top
     getter trustedTypes
     getter visualViewport
     getter webkitStorageInfo
+    getter window
     method NodeFilter
     method alert
     method atob
@@ -11939,6 +11937,7 @@
     method cancelAnimationFrame
     method cancelIdleCallback
     method captureEvents
+    method chooseFileSystemEntries
     method clearInterval
     method clearTimeout
     method close
@@ -11990,8 +11989,11 @@
     setter devicePixelRatio
     setter event
     setter external
+    setter frames
     setter innerHeight
     setter innerWidth
+    setter length
+    setter location
     setter locationbar
     setter menubar
     setter name
@@ -12109,11 +12111,13 @@
     setter onwebkitanimationstart
     setter onwebkittransitionend
     setter onwheel
+    setter opener
     setter origin
     setter outerHeight
     setter outerWidth
     setter pageXOffset
     setter pageYOffset
+    setter parent
     setter performance
     setter personalbar
     setter scheduler
@@ -12125,6 +12129,7 @@
     setter scrollX
     setter scrollY
     setter scrollbars
+    setter self
     setter status
     setter statusbar
     setter toolbar
diff --git a/third_party/blink/web_tests/wpt_internal/webgpu/000_run_me_first.html b/third_party/blink/web_tests/wpt_internal/webgpu/000_run_me_first.html
new file mode 100644
index 0000000..3825ebfc
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/webgpu/000_run_me_first.html
@@ -0,0 +1,21 @@
+<!--
+  TODO(crbug.com/953991): The first WebGPU test gets blocked on some browser
+  startup work that takes a long time, causing the first test to flake. This
+  "test" just exists to sit at the beginning of the test list and be marked as
+  [ Slow ].
+-->
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<script>
+  'use strict';
+
+  async_test(async t => {
+    const adapter = await navigator.gpu.requestAdapter();
+    assert_true(adapter !== null);
+    const device = await adapter.requestDevice();
+    assert_true(device !== null);
+    t.done();
+  });
+</script>
diff --git a/third_party/crashpad/crashpad/util/process/process_memory_native.h b/third_party/crashpad/crashpad/util/process/process_memory_native.h
index e486c1c..5a792d7 100644
--- a/third_party/crashpad/crashpad/util/process/process_memory_native.h
+++ b/third_party/crashpad/crashpad/util/process/process_memory_native.h
@@ -16,7 +16,7 @@
 
 #if defined(OS_FUCHSIA)
 #include "util/process/process_memory_fuchsia.h"
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 #include "util/process/process_memory_linux.h"
 #elif defined(OS_WIN)
 #include "util/process/process_memory_win.h"
@@ -29,7 +29,7 @@
 #if defined(OS_FUCHSIA) || DOXYGEN
 //! \brief Alias for platform-specific native implementation of ProcessMemory.
 using ProcessMemoryNative = ProcessMemoryFuchsia;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 using ProcessMemoryNative = ProcessMemoryLinux;
 #elif defined(OS_WIN)
 using ProcessMemoryNative = ProcessMemoryWin;
diff --git a/third_party/wayland-protocols/unstable/gaming-input/gaming-input-unstable-v2.xml b/third_party/wayland-protocols/unstable/gaming-input/gaming-input-unstable-v2.xml
index 7c70e4d..3f9a74c 100644
--- a/third_party/wayland-protocols/unstable/gaming-input/gaming-input-unstable-v2.xml
+++ b/third_party/wayland-protocols/unstable/gaming-input/gaming-input-unstable-v2.xml
@@ -24,7 +24,7 @@
     DEALINGS IN THE SOFTWARE.
   </copyright>
 
-  <interface name="zcr_gaming_input_v2" version="1">
+  <interface name="zcr_gaming_input_v2" version="2">
     <description summary="extends wl_seat with gaming input devices">
       A global interface to provide gaming input devices for a given seat.
 
@@ -98,7 +98,7 @@
     </event>
   </interface>
 
-  <interface name="zcr_gamepad_v2" version="1">
+  <interface name="zcr_gamepad_v2" version="2">
     <description summary="gamepad input device">
       The zcr_gamepad_v2 interface represents one or more gamepad input devices,
       which are reported as a normalized 'Standard Gamepad' as it is specified
@@ -106,7 +106,10 @@
     </description>
 
     <request name="destroy" type="destructor">
-      <description summary="destroy gamepad object"/>
+      <description summary="destroy gamepad">
+        Destroy gamepad. Instances created from this gamepad are unaffected
+        and should be destroyed separately.
+      </description>
     </request>
 
     <event name="removed">
@@ -191,5 +194,51 @@
         gamepad_added_with_device_info.
       </description>
     </event>
+
+    <!-- added since v2 -->
+    <event name="vibrator_added" since="2">
+      <description summary="a vibrator is added">
+        Adds a vibrator to the gamepad. Only called if server has verified
+        that gamepad has a vibrator. The vibrator(s) for a gamepad are expected
+        to be added before the "activated" event is called.
+      </description>
+      <arg name="vibrator" type="new_id" interface="zcr_gamepad_vibrator_v2" summary="the gamepad vibrator"/>
+    </event>
+  </interface>
+
+  <interface name="zcr_gamepad_vibrator_v2" version="2">
+    <description summary="vibrator interface for a gamepad">
+      An interface that provides access to the vibrator of a gamepad. Requests can be
+      sent to make the gamepad vibrate and to stop an ongoing vibration.
+    </description>
+
+    <request name="vibrate" since="2">
+      <description summary="triggers the vibration event">
+        Triggers the vibration event on the gamepad vibrator. The gamepad is only allowed to
+        vibrate while the window is in focus. The values in the timings array are 64-bit integers
+        and the values in the amplitudes array are unsigned 8-bit integers.
+        The timings array and the amplitudes array are of the same length.
+        For each timing/amplitude pair, the amplitude determines the strength of
+        the vibration and the timing determines the length of the vibration in milliseconds.
+        Amplitude values must be between 0 and 255. An amplitude of 0 implies no vibration
+        and any timing/amplitude pair with a timing value of 0 is ignored.
+        The repeat argument determines the index at which the vibration pattern to repeat begins.
+        A repeat value of -1 disables repetition. If repetition is enabled, the vibration
+        pattern will repeat indefinitely until stopped, or when focus is lost.
+      </description>
+      <arg name="timings" type="array" summary="array of timing values" />
+      <arg name="amplitudes" type="array" summary="array of amplitude values" />
+      <arg name="repeat" type="int" summary="index into the timings array at which to repeat" />
+    </request>
+
+    <request name="cancel_vibration" since="2">
+      <description summary="cancels the existing vibration event">
+        Cancels the currently ongoing vibration event on the gamepad vibrator.
+      </description>
+    </request>
+
+    <request name="destroy" type="destructor" since="2">
+      <description summary="destroy gamepad vibrator"/>
+    </request>
   </interface>
 </protocol>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index b6e0faae..9ff7a3f 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -5790,6 +5790,7 @@
       label="BackForwardCache is disabled through command line (may include
              cases where the embedder disabled it due to, e.g., enterprise
              policy)"/>
+  <int value="36" label="Navigation entry was replaced"/>
 </enum>
 
 <enum name="BackForwardCacheReloadsAfterHistoryNavigation">
@@ -28739,6 +28740,9 @@
   <int value="3396" label="DigitalGoodsGetDigitalGoodsService"/>
   <int value="3397" label="DigitalGoodsGetDetails"/>
   <int value="3398" label="DigitalGoodsAcknowledge"/>
+  <int value="3399" label="MediaRecorder_MimeType"/>
+  <int value="3400" label="MediaRecorder_VideoBitsPerSecond"/>
+  <int value="3401" label="MediaRecorder_AudioBitsPerSecond"/>
 </enum>
 
 <enum name="FeaturePolicyAllowlistType">
@@ -39134,6 +39138,7 @@
   <int value="6" label="Non-integral y offset"/>
   <int value="7" label="Will-change: transform"/>
   <int value="8" label="Pixel or color effect"/>
+  <int value="9" label="Transform animation"/>
 </enum>
 
 <enum name="LevelDBCorruptionRestoreValue">
@@ -40803,6 +40808,8 @@
   <int value="-1324634193" label="EnablePalmOnMaxTouchMajor:disabled"/>
   <int value="-1324029365" label="EnableTLS13EarlyData:enabled"/>
   <int value="-1322882747" label="disable-datasaver-prompt"/>
+  <int value="-1321640296"
+      label="AutofillDownstreamCvcPromptUseGooglePayLogo:enabled"/>
   <int value="-1320181781" label="ChromeOSDirectVideoDecoder:disabled"/>
   <int value="-1319688939" label="ignore-gpu-blacklist"/>
   <int value="-1318914924" label="OverflowIconsForMediaControls:enabled"/>
@@ -41538,6 +41545,8 @@
   <int value="-538141684" label="SafetyTip:enabled"/>
   <int value="-536289234" label="ssl-interstitial-v2-colorful"/>
   <int value="-536230323" label="SingleClickAutofill:disabled"/>
+  <int value="-536003711"
+      label="OmniboxClobberTriggersContextualWebZeroSuggest:enabled"/>
   <int value="-535662704" label="BundledConnectionHelp:enabled"/>
   <int value="-535208779" label="enable-native-cups"/>
   <int value="-534470003" label="OmniboxOnDeviceHeadProviderIncognito:enabled"/>
@@ -41803,6 +41812,8 @@
   <int value="-271084069" label="ClickToCallUI:enabled"/>
   <int value="-270626757" label="log-net-log"/>
   <int value="-270261701" label="WebRtcEnableCaptureMultiChannelApm:disabled"/>
+  <int value="-269440655"
+      label="AutofillDownstreamCvcPromptUseGooglePayLogo:disabled"/>
   <int value="-268897347" label="DisableCameraFrameRotationAtSource:disabled"/>
   <int value="-268549184"
       label="AutofillSaveCreditCardUsesStrikeSystemV2:enabled"/>
@@ -43018,6 +43029,8 @@
   <int value="1057014709" label="EnforceTLS13Downgrade:enabled"/>
   <int value="1057887829" label="AutofillScanThemeDialog:disabled"/>
   <int value="1059007599" label="enable-gpu-appcontainer"/>
+  <int value="1059283439"
+      label="OmniboxClobberTriggersContextualWebZeroSuggest:disabled"/>
   <int value="1059698271" label="EnableZeroStateSuggestions:disabled"/>
   <int value="1060319397" label="enable-data-reduction-proxy-carrier-test"/>
   <int value="1060780557" label="DynamicColorGamut:disabled"/>
@@ -57517,6 +57530,7 @@
   <int value="10" label="PRINT_WITH_EXTENSION"/>
   <int value="11" label="OPEN_IN_MAC_PREVIEW"/>
   <int value="12" label="PRINT_TO_GOOGLE_DRIVE"/>
+  <int value="13" label="PRINT_TO_GOOGLE_DRIVE_CROS"/>
 </enum>
 
 <enum name="PrintSettings">
diff --git a/tools/metrics/histograms/histogram_ownership.py b/tools/metrics/histograms/histogram_ownership.py
index e0441d5e..a5c07e4 100755
--- a/tools/metrics/histograms/histogram_ownership.py
+++ b/tools/metrics/histograms/histogram_ownership.py
@@ -9,7 +9,6 @@
 
 from __future__ import print_function
 
-import errno
 import os
 import sys
 from xml.etree import ElementTree as ET
@@ -18,6 +17,9 @@
 import histogram_paths
 import merge_xml
 
+sys.path.append(os.path.join(os.path.dirname(__file__), 'common'))
+import path_util
+
 
 def PrintOwners(root):
   assert root.tag == 'histogram-configuration'
@@ -67,13 +69,14 @@
     python histogram_ownership.py
   """
   if len(sys.argv) == 1:
-    merged_xml_string = merge_xml.PrettyPrintMergedFiles(
-        histogram_paths.ALL_XMLS)
+    merged_xml_string = merge_xml.MergeFiles(
+        histogram_paths.ALL_XMLS).toxml()
     root = ET.fromstring(merged_xml_string)
   else:
-    rel_path = sys.argv[1]
+    rel_path = path_util.GetInputFile(
+        os.path.join('tools', 'metrics', 'histograms', sys.argv[1]))
     if not os.path.exists(rel_path):
-      raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT))
+      raise ValueError("A histograms.xml file does not exist in %s" % rel_path)
 
     tree = ET.parse(rel_path)
     root = tree.getroot()
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index bfe99507..3b41f1d 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -6407,17 +6407,20 @@
 </histogram>
 
 <histogram name="appcache.UpdateJob.ExistingResourceCorruptionRecovery"
-    units="units" expires_after="2020-02-18">
-  <obsolete>
-    Deprecated on 2020-02-18. No longer tracked.
-  </obsolete>
+    units="units" expires_after="2021-05-25">
   <owner>cmp@chromium.org</owner>
   <owner>pwnall@chromium.org</owner>
   <summary>
     Tracks the number of times we encountered a corrupt resource and chose to
-    recover the corruption by refetching the resource. This is only called when
-    we find a corrupt resource and have the corruption recovery feature enabled.
-    The count won't be incremented otherwise.
+    recover the corruption by refetching the resource in a non-conditional
+    request. This metric is always emitted upon AppCacheUpdateJob destruction
+    and is only incremented when the corruption recovery feature is enabled and
+    a corrupt resource is detected. If either corruption recovery is disabled or
+    no corrupt resources are detected, then the default value (0) will be sent
+    for metrics collection.
+
+    This metric was enabled in M81 (Dec 19, 2019), disabled in M82 (Feb 18,
+    2020), and re-enabled in M86 (Aug 2020).
   </summary>
 </histogram>
 
@@ -23866,8 +23869,8 @@
   </summary>
 </histogram>
 
-<histogram name="Browser.PaintPreview.TabbedPlayer.UpTime" units="ms"
-    expires_after="2020-10-20">
+<histogram base="true" name="Browser.PaintPreview.TabbedPlayer.UpTime"
+    units="ms" expires_after="2020-10-20">
   <owner>ckitagawa@chromium.org</owner>
   <owner>mahmoudi@chromium.org</owner>
   <owner>fredmello@chromium.org</owner>
@@ -48745,7 +48748,7 @@
 <histogram name="Enterprise.CBCMPolicyInvalidations"
     enum="EnterprisePolicyInvalidations" expires_after="2021-06-16">
   <owner>anthonyvd@google.com</owner>
-  <owner>chrome-enterprise-team-core@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
   <summary>
     Events for counting CBCM policy invalidations received with and without
     payloads. Invalidations indicate that a policy has been updated and should
@@ -48757,7 +48760,7 @@
 <histogram name="Enterprise.CBCMPolicyRefresh" enum="EnterprisePolicyRefresh"
     expires_after="2021-06-16">
   <owner>anthonyvd@google.com</owner>
-  <owner>chrome-enterprise-team-core@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
   <summary>
     Events measuring effectiveness of refreshing CBCM policy when invalidations
     are received from a service. For each refresh, indicates whether the policy
@@ -48765,6 +48768,68 @@
   </summary>
 </histogram>
 
+<histogram name="Enterprise.CBCMRemoteCommand.Executed"
+    enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
+
+  <owner>anthonyvd@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
+  <summary>
+    Events for counting status of executed CBCM remote commands. The metric
+    includes only signed CBCM remote commands. Reports a final status of
+    finished remote command (e.g. success, failure or termination).
+  </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Executed.Unsigned"
+    enum="RemoteCommandExecutionStatus" expires_after="2021-03-01">
+<!-- Name completed by histogram_suffixes name="Enterprise.RemoteCommandType". -->
+
+  <owner>anthonyvd@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
+  <summary>
+    Events for counting status of executed CBCM remote commands. The metric
+    includes only unsigned CBCM remote commands. Reports a final status of
+    finished remote command (e.g. success, failure or termination).
+  </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Received"
+    enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
+  <owner>anthonyvd@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
+  <summary>
+    Events for counting received CBCM remote commands. The metric includes
+    signed CBCM remote commands, both valid and invalid. Valid remote command is
+    counted by its type. Invalid remote command is counted by a reason why it is
+    considered invalid (e.g. unknown type or duplication).
+  </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommand.Received.Unsigned"
+    enum="RemoteCommandReceivedStatus" expires_after="2021-03-01">
+  <owner>anthonyvd@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
+  <summary>
+    Events for counting received CBCM remote commands. The metric includes
+    unsigned CBCM remote commands, both valid and invalid. Valid remote command
+    is counted by its type. Invalid remote command is counted by a reason why it
+    is considered invalid (e.g. unknown type or duplication).
+  </summary>
+</histogram>
+
+<histogram name="Enterprise.CBCMRemoteCommandInvalidations"
+    enum="EnterprisePolicyInvalidations" expires_after="2021-03-01">
+  <owner>anthonyvd@google.com</owner>
+  <owner>cbe-eng@google.com</owner>
+  <summary>
+    Events for counting CBCM remote commands invalidations received with and
+    without payloads. Invalidations indicate that there is a remote command to
+    execute. Payloads provide context about the remote commands update, but may
+    be absent if dropped by the invalidation service.
+  </summary>
+</histogram>
+
 <histogram name="Enterprise.CloudExtensionRequestUpdated"
     enum="EnterpriseCloudExtensionRequestListUpdate" expires_after="2021-02-01">
   <owner>zmin@chromium.org</owner>
@@ -83941,10 +84006,46 @@
 </histogram>
 
 <histogram name="MediaRouter.CastStreaming.Session.Length" units="ms"
-    expires_after="2021-02-01">
+    expires_after="2021-07-01">
   <owner>takumif@chromium.org</owner>
   <owner>openscreen-eng@google.com</owner>
-  <summary>Total length of a Cast Streaming mirror session.</summary>
+  <summary>
+    Total length of a Cast Streaming mirror session of any type, including the
+    time spent in media remoting.
+  </summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.File" units="ms"
+    expires_after="2021-07-01">
+  <owner>rwkeane@google.com</owner>
+  <owner>openscreen-eng@google.com</owner>
+  <summary>Total length of a Cast Streaming File mirror session.</summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.OffscreenTab"
+    units="ms" expires_after="2021-07-01">
+  <owner>rwkeane@google.com</owner>
+  <owner>openscreen-eng@google.com</owner>
+  <summary>
+    Total length of a Cast Streaming Offscreen Tab mirror session.
+  </summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.Screen" units="ms"
+    expires_after="2021-07-01">
+  <owner>rwkeane@google.com</owner>
+  <owner>openscreen-eng@google.com</owner>
+  <summary>Total length of a Cast Streaming Screen mirror session.</summary>
+</histogram>
+
+<histogram name="MediaRouter.CastStreaming.Session.Length.Tab" units="ms"
+    expires_after="2021-07-01">
+  <owner>rwkeane@google.com</owner>
+  <owner>openscreen-eng@google.com</owner>
+  <summary>
+    Total length of a Cast Streaming mirror session of type Tab and NOT of types
+    offscreen tab or local file. This includes the time spent in media remoting.
+  </summary>
 </histogram>
 
 <histogram name="MediaRouter.CastStreaming.Start.Failure"
@@ -88471,11 +88572,26 @@
   </summary>
 </histogram>
 
+<histogram name="Mobile.Share.BookmarkEntry.Actions" enum="IOSShareAction"
+    expires_after="2021-06-01">
+  <owner>seblalancette@chromium.org</owner>
+  <owner>chrome-sharing-core@google.com</owner>
+  <summary>
+    Tracks the sharing actions executed when the sharing scenario was initiated
+    for a bookmark entry. To view how often this sharing scenario was triggered,
+    take a look at: Mobile.Share.EntryPoints.
+  </summary>
+</histogram>
+
 <histogram name="Mobile.Share.EntryPoints" enum="IOSActivityScenario"
     expires_after="2021-06-01">
   <owner>seblalancette@chromium.org</owner>
   <owner>chrome-sharing-core@google.com</owner>
-  <summary>Tracks which sharing entry point was triggered.</summary>
+  <summary>
+    Tracks which sharing entry point was triggered. To view the outcome of these
+    sharing scenarios, take a look at their actions' histogram (the format is
+    Mobile.Share.*.Actions).
+  </summary>
 </histogram>
 
 <histogram name="Mobile.Share.HistoryEntry.Actions" enum="IOSShareAction"
@@ -88484,7 +88600,19 @@
   <owner>chrome-sharing-core@google.com</owner>
   <summary>
     Tracks the sharing actions executed when the sharing scenario was initiated
-    for a history entry.
+    for a history entry. To view how often this sharing scenario was triggered,
+    take a look at: Mobile.Share.EntryPoints.
+  </summary>
+</histogram>
+
+<histogram name="Mobile.Share.MostVisitedEntry.Actions" enum="IOSShareAction"
+    expires_after="2021-06-01">
+  <owner>seblalancette@chromium.org</owner>
+  <owner>chrome-sharing-core@google.com</owner>
+  <summary>
+    Tracks the sharing actions executed when the sharing scenario was initiated
+    for a most visited tile. To view how often this sharing scenario was
+    triggered, take a look at: Mobile.Share.EntryPoints.
   </summary>
 </histogram>
 
@@ -88494,7 +88622,30 @@
   <owner>chrome-sharing-core@google.com</owner>
   <summary>
     Tracks the sharing actions executed when the sharing scenario was initiated
-    for the generated QR code image.
+    for the generated QR code image. To view how often this sharing scenario was
+    triggered, take a look at: Mobile.Share.EntryPoints.
+  </summary>
+</histogram>
+
+<histogram name="Mobile.Share.ReadingListEntry.Actions" enum="IOSShareAction"
+    expires_after="2021-06-01">
+  <owner>seblalancette@chromium.org</owner>
+  <owner>chrome-sharing-core@google.com</owner>
+  <summary>
+    Tracks the sharing actions executed when the sharing scenario was initiated
+    for a reading list entry. To view how often this sharing scenario was
+    triggered, take a look at: Mobile.Share.EntryPoints.
+  </summary>
+</histogram>
+
+<histogram name="Mobile.Share.RecentTabsEntry.Actions" enum="IOSShareAction"
+    expires_after="2021-06-01">
+  <owner>seblalancette@chromium.org</owner>
+  <owner>chrome-sharing-core@google.com</owner>
+  <summary>
+    Tracks the sharing actions executed when the sharing scenario was initiated
+    for a recent tab entry. To view how often this sharing scenario was
+    triggered, take a look at: Mobile.Share.EntryPoints.
   </summary>
 </histogram>
 
@@ -88504,7 +88655,8 @@
   <owner>chrome-sharing-core@google.com</owner>
   <summary>
     Tracks the sharing actions executed when the sharing scenario was initiated
-    from the tab's share button.
+    from the tab's share button. To view how often this sharing scenario was
+    triggered, take a look at: Mobile.Share.EntryPoints.
   </summary>
 </histogram>
 
@@ -101034,6 +101186,16 @@
   </summary>
 </histogram>
 
+<histogram name="Net.QuicSession.ConnectionDuration" units="ms"
+    expires_after="2021-05-11">
+  <owner>renjietang@chromium.org</owner>
+  <owner>src/net/quic/OWNERS</owner>
+  <summary>
+    The duration of a QUIC connection starting from 1-RTT key available to
+    connection close.
+  </summary>
+</histogram>
+
 <histogram name="Net.QuicSession.ConnectionFlowControlBlocked"
     enum="BooleanBlocked" expires_after="2021-05-11">
   <owner>dschinazi@chromium.org</owner>
@@ -101527,6 +101689,15 @@
   </summary>
 </histogram>
 
+<histogram name="Net.QuicSession.NumPingsSent" units="pings"
+    expires_after="2021-05-11">
+  <owner>renjietang@chromium.org</owner>
+  <owner>src/net/quic/OWNERS</owner>
+  <summary>
+    The number of pings a QUIC connection sends during its lifetime.
+  </summary>
+</histogram>
+
 <histogram name="Net.QuicSession.NumQueuedPacketsAtOutOfOrder" units="packets"
     expires_after="M85">
   <obsolete>
@@ -108079,13 +108250,28 @@
   <summary>
     Chrome OS metric sampling the number of different frequencies (i.e.
     channels) on which a device has connected to a WiFi network. This value is
-    sampled every time a WiFi connection is established
+    recorded every time a WiFi connection is established
     (WPASupplicant::kInterfaceStateCompleted). Note that the word
     &quot;Ever&quot; in the metric name is misleading. Chrome OS actually ages
     out historical information, currently after 3 weeks.
   </summary>
 </histogram>
 
+<histogram name="Network.Shill.WiFi.HiddenSSIDNetworkCount" units="units"
+    expires_after="2021-08-15">
+  <owner>tnagel@chromium.org</owner>
+  <owner>cros-network-metrics@google.com</owner>
+  <owner>cros-privacy-core@google.com</owner>
+  <summary>
+    Chrome OS network metric tracking WiFi networks configured with hidden SSID.
+    The metric includes networks from system and user profile and it's recorded
+    each time a user configuration profile is loaded, such as when a user logs
+    in. The fraction of non-zero buckets should roughly correspond to the
+    fraction of devices that are trying to connect to hidden SSIDs at any given
+    point in time.
+  </summary>
+</histogram>
+
 <histogram name="Network.Shill.WiFi.HS20Support" enum="HotspotSupport"
     expires_after="2021-01-10">
   <owner>kglund@google.com</owner>
@@ -160677,6 +160863,35 @@
   </summary>
 </histogram>
 
+<histogram name="Session.WebStates.ForwardItemsCountAfterNavigation"
+    units="items" expires_after="2020-12-01">
+  <owner>ajuma@chromium.org</owner>
+  <owner>eugenebut@chromium.org</owner>
+  <owner>gambard@chromium.org</owner>
+  <summary>
+    Number of forward navigation items when navigation was committed/finished.
+    Recorded when main frame navigation was finished and there is at least one
+    navigation item. In conjunction with
+    Session.WebStates.HasForwardItemsAfterNavigation this metric will help to
+    understand how many navigation items Chrome should restore after relaunch.
+  </summary>
+</histogram>
+
+<histogram name="Session.WebStates.HasForwardItemsAfterNavigation"
+    enum="BooleanPresent" expires_after="2020-12-01">
+  <owner>ajuma@chromium.org</owner>
+  <owner>eugenebut@chromium.org</owner>
+  <owner>gambard@chromium.org</owner>
+  <summary>
+    True if navigation manager has forward navigation items when navigation was
+    committed/finished. Recorded when main frame navigation was finished. Can be
+    used to understand how often the users load items in the middle of
+    back-forward list. In conjunction with
+    Session.WebStates.ForwardItemsCountAfterNavigation this metric will help to
+    understand how many navigation items Chrome should restore after relaunch.
+  </summary>
+</histogram>
+
 <histogram base="true" name="Session.WebStates.NavigationItem" units="KB"
     expires_after="2021-05-01">
   <owner>eugenebut@chromium.org</owner>
@@ -202992,6 +203207,7 @@
 </histogram_suffixes>
 
 <histogram_suffixes name="Enterprise.RemoteCommandType" separator=".">
+  <suffix name="BrowserClearBrowsingData" label="Clear Browsing Data"/>
   <suffix name="CommandEchoTest" label="Command echo test"/>
   <suffix name="DeviceFetchStatus" label="Fetch status"/>
   <suffix name="DeviceGetAvailableDiagnosticRoutines"
@@ -215524,6 +215740,18 @@
   <affected-histogram name="Startup.BrowserOpenTabs"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="TabbedPaintPreviewPlayerUptime" separator=".">
+  <suffix name="RemovedByCompositorFailure"
+      label="Removed by compositor failure"/>
+  <suffix name="RemovedByLinkClick" label="Removed by link click"/>
+  <suffix name="RemovedByNavigation" label="Removed by navigation"/>
+  <suffix name="RemovedByPullToRefresh" label="Removed by pull to refresh"/>
+  <suffix name="RemovedBySnackBar" label="Removed by SnackBar"/>
+  <suffix name="RemovedOnLoad" label="Removed on load"/>
+  <suffix name="RemovedOnTabDestroy" label="Removed on tab destroy"/>
+  <affected-histogram name="Browser.PaintPreview.TabbedPlayer.UpTime"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="TabCountMetrics" separator=".">
   <suffix name="ByTabCount.0Tabs"
       label="Recorded with 0 tabs open in the browser."/>
diff --git a/tools/metrics/histograms/split_xml.py b/tools/metrics/histograms/split_xml.py
index 5d205c1..0473d2c 100644
--- a/tools/metrics/histograms/split_xml.py
+++ b/tools/metrics/histograms/split_xml.py
@@ -7,7 +7,6 @@
 Intended to be used to split up the large histograms.xml or enums.xml file.
 """
 
-import errno
 import logging
 import os
 import sys
@@ -40,8 +39,7 @@
     FileNotFoundError if histograms.xml not found in |base_dir|.
   """
   if HISTOGRAMS_XML not in os.listdir(base_dir):
-    raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT),
-                            HISTOGRAMS_XML)
+    raise ValueError(HISTOGRAMS_XML + 'is not in %s' % base_dir)
 
   dom = minidom.parse(os.path.join(base_dir, HISTOGRAMS_XML))
   comments = []
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index 7ff9a29..e6823a8 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -7906,6 +7906,25 @@
   </metric>
 </event>
 
+<event name="OptimizationGuideAutotuning">
+  <owner>sophiechang@chromium.org</owner>
+  <owner>mcrouse@chromium.org</owner>
+  <summary>
+    Metrics associated with an autotuning event initiated by the Optimization
+    Guide.
+  </summary>
+  <metric name="OptimizationType">
+    <summary>
+      The |optimization_guide::proto::OptimizationType| that is being tuned.
+    </summary>
+  </metric>
+  <metric name="TuningVersion">
+    <summary>
+      The version of the tuning group for the optimization type that was served.
+    </summary>
+  </metric>
+</event>
+
 <event name="PageDomainInfo">
   <owner>uthakore@chromium.org</owner>
   <owner>invernizzi@chromium.org</owner>
diff --git a/tools/perf/benchmarks/media.py b/tools/perf/benchmarks/media.py
index 1ad7f23..8a8cd4f9 100644
--- a/tools/perf/benchmarks/media.py
+++ b/tools/perf/benchmarks/media.py
@@ -91,7 +91,3 @@
     # The following option works around that.
     options.AppendExtraBrowserArgs(
         ['--autoplay-policy=no-user-gesture-required'])
-    # Force online state for the offline indicator so it doesn't show and affect
-    # the benchmarks on bots, which are offline by default.
-    options.AppendExtraBrowserArgs(
-        '--force-online-connection-state-for-indicator')
diff --git a/tools/perf/benchmarks/rendering.py b/tools/perf/benchmarks/rendering.py
index b5cda7a..a161083f 100644
--- a/tools/perf/benchmarks/rendering.py
+++ b/tools/perf/benchmarks/rendering.py
@@ -127,10 +127,6 @@
     # allows controls to unlock after page load, rather than in the middle of a
     # story.
     options.AppendExtraBrowserArgs('--disable-minimum-show-duration')
-    # Force online state for the offline indicator so it doesn't show and affect
-    # the benchmarks on bots, which are offline by default.
-    options.AppendExtraBrowserArgs(
-        '--force-online-connection-state-for-indicator')
 
   def CreateCoreTimelineBasedMeasurementOptions(self):
     options = super(
diff --git a/tools/perf/benchmarks/system_health.py b/tools/perf/benchmarks/system_health.py
index 88d2d3bc..c254b97 100644
--- a/tools/perf/benchmarks/system_health.py
+++ b/tools/perf/benchmarks/system_health.py
@@ -121,13 +121,6 @@
   def Name(cls):
     return 'system_health.common_mobile'
 
-  def SetExtraBrowserOptions(self, options):
-    super(MobileCommonSystemHealth, self).SetExtraBrowserOptions(options)
-    # Force online state for the offline indicator so it doesn't show and affect
-    # the benchmarks on bots, which are offline by default.
-    options.AppendExtraBrowserArgs(
-        '--force-online-connection-state-for-indicator')
-
 
 class _MemorySystemHealthBenchmark(perf_benchmark.PerfBenchmark):
   """Chrome Memory System Health Benchmark.
@@ -203,10 +196,6 @@
     # each time before Chrome starts so we effect even the first story
     # - avoiding the bug.
     options.flush_os_page_caches_on_start = True
-    # Force online state for the offline indicator so it doesn't show and affect
-    # the benchmarks on bots, which are offline by default.
-    options.AppendExtraBrowserArgs(
-        '--force-online-connection-state-for-indicator')
 
   @classmethod
   def Name(cls):
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 7773be5..d77d68d 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -2,15 +2,15 @@
     "trace_processor_shell": {
         "win": {
             "hash": "0819a37f7e3da5b5ede65fa8fdf1c244193e5d5c",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/241a4a92fb96af97fb17b9e84e177fed786925b6/trace_processor_shell.exe"
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/4c3752c7f6777b6c5d870271a6094db6840eabd7/trace_processor_shell.exe"
         },
         "mac": {
             "hash": "0da168dd179de98eb1e444ff4a7c763dfa2dda47",
-            "remote_path": "perfetto_binaries/trace_processor_shell/mac/241a4a92fb96af97fb17b9e84e177fed786925b6/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/mac/4c3752c7f6777b6c5d870271a6094db6840eabd7/trace_processor_shell"
         },
         "linux": {
             "hash": "dd01349511a394d6f96824080b48c3d34ae74146",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/4c3752c7f6777b6c5d870271a6094db6840eabd7/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/a3fcf2574157a93e5eec66c10a9b33d7dc331977/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config
index b943bd4..71d22ae2 100644
--- a/tools/perf/expectations.config
+++ b/tools/perf/expectations.config
@@ -196,6 +196,9 @@
 crbug.com/865400 [ android-pixel-2 android-webview ] loading.mobile/VoiceMemos_cold_3g [ Skip ]
 crbug.com/919191 [ android-nexus-5x android-webview ] loading.mobile/OLX_3g [ Skip ]
 
+# Benchmark: media.desktop
+crbug.com/1114681 [ win-laptop ] media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek [ Skip ]
+
 # Benchmark: power.desktop
 crbug.com/1036360 [ win7 ] power.desktop/abcnews [ Skip ]
 crbug.com/1082094 [ win10 ] power.desktop/abcnews [ Skip ]
diff --git a/ui/android/java/src/org/chromium/ui/DropdownItem.java b/ui/android/java/src/org/chromium/ui/DropdownItem.java
index cee8b1c..f7906e9 100644
--- a/ui/android/java/src/org/chromium/ui/DropdownItem.java
+++ b/ui/android/java/src/org/chromium/ui/DropdownItem.java
@@ -20,6 +20,10 @@
      */
     String getSublabel();
     /**
+     * Returns the item tag that should be shown in the dropdown.
+     */
+    String getItemTag();
+    /**
      * Returns the drawable id of the icon that should be shown in the dropdown, or NO_ICON.
      */
     int getIconId();
diff --git a/ui/android/java/src/org/chromium/ui/DropdownItemBase.java b/ui/android/java/src/org/chromium/ui/DropdownItemBase.java
index a0ba6e8..708ca0a 100644
--- a/ui/android/java/src/org/chromium/ui/DropdownItemBase.java
+++ b/ui/android/java/src/org/chromium/ui/DropdownItemBase.java
@@ -20,6 +20,11 @@
     }
 
     @Override
+    public String getItemTag() {
+        return null;
+    }
+
+    @Override
     public int getIconId() {
         return NO_ICON;
     }
diff --git a/ui/android/java/src/org/chromium/ui/base/Clipboard.java b/ui/android/java/src/org/chromium/ui/base/Clipboard.java
index d622df0..a3c9ad0 100644
--- a/ui/android/java/src/org/chromium/ui/base/Clipboard.java
+++ b/ui/android/java/src/org/chromium/ui/base/Clipboard.java
@@ -327,12 +327,14 @@
         setPrimaryClipNoException(ClipData.newPlainText(null, null));
     }
 
-    public void setPrimaryClipNoException(ClipData clip) {
+    private boolean setPrimaryClipNoException(ClipData clip) {
         try {
             mClipboardManager.setPrimaryClip(clip);
+            return true;
         } catch (Exception ex) {
             // Ignore any exceptions here as certain devices have bugs and will fail.
             showCopyToClipboardFailureMessage();
+            return false;
         }
     }
 
@@ -374,8 +376,9 @@
      */
     public void copyUrlToClipboard(String url) {
         ClipData clip = ClipData.newPlainText("url", url);
-        mClipboardManager.setPrimaryClip(clip);
-        Toast.makeText(mContext, R.string.link_copied, Toast.LENGTH_SHORT).show();
+        if (setPrimaryClipNoException(clip)) {
+            Toast.makeText(mContext, R.string.link_copied, Toast.LENGTH_SHORT).show();
+        }
     }
 
     /**
diff --git a/ui/android/junit/src/org/chromium/ui/base/ClipboardTest.java b/ui/android/junit/src/org/chromium/ui/base/ClipboardTest.java
index 403b8a8..22e430bd 100644
--- a/ui/android/junit/src/org/chromium/ui/base/ClipboardTest.java
+++ b/ui/android/junit/src/org/chromium/ui/base/ClipboardTest.java
@@ -7,8 +7,12 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.verify;
 
 import android.content.ClipData;
+import android.content.ClipboardManager;
 import android.content.Intent;
 import android.net.Uri;
 import android.text.SpannableString;
@@ -16,6 +20,8 @@
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mockito;
 import org.robolectric.annotation.Config;
 
 import org.chromium.base.ContentUriUtils;
@@ -98,4 +104,35 @@
 
         assertEquals(imageUri, clipboard.getImageUri());
     }
+
+    @Test
+    public void testClipboardCopyUrlToClipboard() {
+        Clipboard clipboard = Clipboard.getInstance();
+        ClipboardManager clipboardManager = Mockito.mock(ClipboardManager.class);
+        clipboard.overrideClipboardManagerForTesting(clipboardManager);
+
+        String url = "https://google.com";
+        clipboard.copyUrlToClipboard(url);
+
+        ArgumentCaptor<ClipData> clipCaptor = ArgumentCaptor.forClass(ClipData.class);
+        verify(clipboardManager).setPrimaryClip(clipCaptor.capture());
+        assertEquals("url", clipCaptor.getValue().getDescription().getLabel());
+        assertEquals(url, clipCaptor.getValue().getItemAt(0).getText());
+    }
+
+    @Test
+    public void testClipboardCopyUrlToClipboardNoException() {
+        Clipboard clipboard = Clipboard.getInstance();
+        ClipboardManager clipboardManager = Mockito.mock(ClipboardManager.class);
+        clipboard.overrideClipboardManagerForTesting(clipboardManager);
+
+        doThrow(SecurityException.class).when(clipboardManager).setPrimaryClip(any(ClipData.class));
+        String url = "https://google.com";
+        clipboard.copyUrlToClipboard(url);
+
+        ArgumentCaptor<ClipData> clipCaptor = ArgumentCaptor.forClass(ClipData.class);
+        verify(clipboardManager).setPrimaryClip(clipCaptor.capture());
+        assertEquals("url", clipCaptor.getValue().getDescription().getLabel());
+        assertEquals(url, clipCaptor.getValue().getItemAt(0).getText());
+    }
 }
diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc
index bea492f..6a3eb62f 100644
--- a/ui/aura/test/aura_test_helper.cc
+++ b/ui/aura/test/aura_test_helper.cc
@@ -29,7 +29,7 @@
 #include "ui/wm/core/default_activation_client.h"
 #include "ui/wm/core/default_screen_position_client.h"
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "ui/platform_window/common/platform_window_defaults.h"  // nogncheck
 #endif
 
@@ -55,7 +55,7 @@
   DCHECK(!g_instance);
   g_instance = this;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   ui::test::EnableTestConfigForPlatformWindows();
 #endif
 
diff --git a/ui/base/models/dialog_model.cc b/ui/base/models/dialog_model.cc
index 352b9a4..23fa1eb 100644
--- a/ui/base/models/dialog_model.cc
+++ b/ui/base/models/dialog_model.cc
@@ -4,6 +4,8 @@
 
 #include "ui/base/models/dialog_model.h"
 
+#include "base/bind_helpers.h"
+
 namespace ui {
 
 DialogModel::Builder::Builder(std::unique_ptr<DialogModelDelegate> delegate)
@@ -45,10 +47,15 @@
     base::OnceClosure callback,
     base::string16 label,
     const DialogModelButton::Params& params) {
-  DCHECK(!params.has_callback()) << "Use |callback| only.";
   DCHECK(!model_->accept_callback_);
   model_->accept_callback_ = std::move(callback);
-  model_->AddDialogButton(ui::DIALOG_BUTTON_OK, std::move(label), params);
+  // NOTREACHED() is used below to make sure this callback isn't used.
+  // DialogModelHost should be using OnDialogAccepted() instead.
+  model_->ok_button_.emplace(
+      model_->GetPassKey(), model_.get(),
+      base::BindRepeating([](const Event&) { NOTREACHED(); }), std::move(label),
+      params);
+
   return *this;
 }
 
@@ -56,17 +63,24 @@
     base::OnceClosure callback,
     base::string16 label,
     const DialogModelButton::Params& params) {
-  DCHECK(!params.has_callback()) << "Use |callback| only.";
   DCHECK(!model_->cancel_callback_);
   model_->cancel_callback_ = std::move(callback);
-  model_->AddDialogButton(ui::DIALOG_BUTTON_CANCEL, std::move(label), params);
+  // NOTREACHED() is used below to make sure this callback isn't used.
+  // DialogModelHost should be using OnDialogCanceled() instead.
+  model_->cancel_button_.emplace(
+      model_->GetPassKey(), model_.get(),
+      base::BindRepeating([](const Event&) { NOTREACHED(); }), std::move(label),
+      params);
+
   return *this;
 }
 
 DialogModel::Builder& DialogModel::Builder::AddDialogExtraButton(
+    base::RepeatingCallback<void(const Event&)> callback,
     base::string16 label,
     const DialogModelButton::Params& params) {
-  model_->AddDialogButton(kExtraButtonId, std::move(label), params);
+  model_->extra_button_.emplace(model_->GetPassKey(), model_.get(),
+                                std::move(callback), std::move(label), params);
   return *this;
 }
 
@@ -150,14 +164,6 @@
   return static_cast<DialogModelTextfield*>(field);
 }
 
-void DialogModel::OnButtonPressed(util::PassKey<DialogModelHost>,
-                                  DialogModelButton* button,
-                                  const Event& event) {
-  DCHECK_EQ(button->model_, this);
-  if (button->callback_)
-    button->callback_.Run(event);
-}
-
 void DialogModel::OnDialogAccepted(util::PassKey<DialogModelHost>) {
   if (accept_callback_)
     std::move(accept_callback_).Run();
@@ -173,52 +179,9 @@
     std::move(close_callback_).Run();
 }
 
-void DialogModel::OnComboboxSelectedIndexChanged(util::PassKey<DialogModelHost>,
-                                                 DialogModelCombobox* combobox,
-                                                 int index) {
-  DCHECK_EQ(combobox->model_, this);
-  combobox->selected_index_ = index;
-}
-
-void DialogModel::OnComboboxPerformAction(util::PassKey<DialogModelHost>,
-                                          DialogModelCombobox* combobox) {
-  DCHECK_EQ(combobox->model_, this);
-  if (combobox->callback_)
-    combobox->callback_.Run();
-}
-
-void DialogModel::OnTextfieldTextChanged(util::PassKey<DialogModelHost>,
-                                         DialogModelTextfield* textfield,
-                                         base::string16 text) {
-  DCHECK_EQ(textfield->model_, this);
-  textfield->text_ = std::move(text);
-}
-
 void DialogModel::OnWindowClosing(util::PassKey<DialogModelHost>) {
   if (window_closing_callback_)
     std::move(window_closing_callback_).Run();
 }
 
-void DialogModel::AddDialogButton(int button_id,
-                                  base::string16 label,
-                                  const DialogModelButton::Params& params) {
-  DCHECK(!host_);  // Dialog buttons should be added before adding to host.
-  base::Optional<DialogModelButton>* button = nullptr;
-  switch (button_id) {
-    case ui::DIALOG_BUTTON_OK:
-      button = &ok_button_;
-      break;
-    case ui::DIALOG_BUTTON_CANCEL:
-      button = &cancel_button_;
-      break;
-    case kExtraButtonId:
-      button = &extra_button_;
-      break;
-    default:
-      NOTREACHED();
-  }
-  DCHECK(!button->has_value());
-  button->emplace(GetPassKey(), this, std::move(label), params);
-}
-
 }  // namespace ui
\ No newline at end of file
diff --git a/ui/base/models/dialog_model.h b/ui/base/models/dialog_model.h
index 2a9748e..20da044 100644
--- a/ui/base/models/dialog_model.h
+++ b/ui/base/models/dialog_model.h
@@ -121,8 +121,10 @@
     // Use of the extra button in new dialogs are discouraged. If this is deemed
     // necessary please double-check with UX before adding any new dialogs with
     // them.
-    Builder& AddDialogExtraButton(base::string16 label,
-                                  const DialogModelButton::Params& params);
+    Builder& AddDialogExtraButton(
+        base::RepeatingCallback<void(const Event&)> callback,
+        base::string16 label,
+        const DialogModelButton::Params& params);
 
     // Adds a textfield. See DialogModel::AddTextfield().
     Builder& AddTextfield(base::string16 label,
@@ -167,22 +169,11 @@
   DialogModelCombobox* GetComboboxByUniqueId(int unique_id);
   DialogModelTextfield* GetTextfieldByUniqueId(int unique_id);
 
-  // Methods with util::PassKey<DialogModelHost> are for host implementations
-  // only.
-  void OnButtonPressed(util::PassKey<DialogModelHost>,
-                       DialogModelButton* field,
-                       const Event& event);
+  // Methods with util::PassKey<DialogModelHost> are only intended to be called
+  // by the DialogModelHost implementation.
   void OnDialogAccepted(util::PassKey<DialogModelHost>);
   void OnDialogCancelled(util::PassKey<DialogModelHost>);
   void OnDialogClosed(util::PassKey<DialogModelHost>);
-  void OnComboboxPerformAction(util::PassKey<DialogModelHost>,
-                               DialogModelCombobox* combobox);
-  void OnComboboxSelectedIndexChanged(util::PassKey<DialogModelHost>,
-                                      DialogModelCombobox* combobox,
-                                      int index);
-  void OnTextfieldTextChanged(util::PassKey<DialogModelHost>,
-                              DialogModelTextfield* textfield,
-                              base::string16 text);
   void OnWindowClosing(util::PassKey<DialogModelHost>);
 
   // Called when added to a DialogModelHost.
@@ -228,10 +219,6 @@
     return util::PassKey<DialogModel>();
   }
 
-  void AddDialogButton(int button,
-                       base::string16 label,
-                       const DialogModelButton::Params& params);
-
   std::unique_ptr<DialogModelDelegate> delegate_;
   DialogModelHost* host_ = nullptr;
 
diff --git a/ui/base/models/dialog_model_field.cc b/ui/base/models/dialog_model_field.cc
index 9394d8c..21b8ceb7 100644
--- a/ui/base/models/dialog_model_field.cc
+++ b/ui/base/models/dialog_model_field.cc
@@ -31,26 +31,29 @@
   return *this;
 }
 
-DialogModelButton::Params& DialogModelButton::Params::SetCallback(
-    base::RepeatingCallback<void(const Event&)> callback) {
-  callback_ = std::move(callback);
-  return *this;
-}
-
-DialogModelButton::DialogModelButton(util::PassKey<DialogModel> pass_key,
-                                     DialogModel* model,
-                                     base::string16 label,
-                                     const DialogModelButton::Params& params)
+DialogModelButton::DialogModelButton(
+    util::PassKey<DialogModel> pass_key,
+    DialogModel* model,
+    base::RepeatingCallback<void(const Event&)> callback,
+    base::string16 label,
+    const DialogModelButton::Params& params)
     : DialogModelField(pass_key,
                        model,
                        kButton,
                        params.unique_id_,
                        params.accelerators_),
       label_(std::move(label)),
-      callback_(params.callback_) {}
+      callback_(std::move(callback)) {
+  DCHECK(callback_);
+}
 
 DialogModelButton::~DialogModelButton() = default;
 
+void DialogModelButton::OnPressed(util::PassKey<DialogModelHost>,
+                                  const Event& event) {
+  callback_.Run(event);
+}
+
 DialogModelCombobox::Params::Params() = default;
 DialogModelCombobox::Params::~Params() = default;
 
@@ -98,6 +101,16 @@
 
 DialogModelCombobox::~DialogModelCombobox() = default;
 
+void DialogModelCombobox::OnSelectedIndexChanged(util::PassKey<DialogModelHost>,
+                                                 int selected_index) {
+  selected_index_ = selected_index;
+}
+
+void DialogModelCombobox::OnPerformAction(util::PassKey<DialogModelHost>) {
+  if (callback_)
+    callback_.Run();
+}
+
 DialogModelTextfield::Params::Params() = default;
 DialogModelTextfield::Params::~Params() = default;
 
@@ -137,4 +150,9 @@
 
 DialogModelTextfield::~DialogModelTextfield() = default;
 
+void DialogModelTextfield::OnTextChanged(util::PassKey<DialogModelHost>,
+                                         base::string16 text) {
+  text_ = std::move(text);
+}
+
 }  // namespace ui
\ No newline at end of file
diff --git a/ui/base/models/dialog_model_field.h b/ui/base/models/dialog_model_field.h
index 86a89222..a8a80f7d 100644
--- a/ui/base/models/dialog_model_field.h
+++ b/ui/base/models/dialog_model_field.h
@@ -34,7 +34,7 @@
   DialogModelField& operator=(const DialogModelField&) = delete;
   virtual ~DialogModelField();
 
-  // Accessors with util::PassKey<DialogModelHost> are only intended to be read
+  // Methods with util::PassKey<DialogModelHost> are only intended to be called
   // by the DialogModelHost implementation.
   Type type(util::PassKey<DialogModelHost>) const { return type_; }
   const base::flat_set<Accelerator>& accelerators(
@@ -73,21 +73,13 @@
 
     Params& SetUniqueId(int unique_id);
 
-    // The button callback gets called when the button is activated. Whether
-    // that happens on key-press, release, etc. is implementation (and platform)
-    // dependent.
-    Params& SetCallback(base::RepeatingCallback<void(const Event&)> callback);
-
     Params& AddAccelerator(Accelerator accelerator);
     Params& SetAccessibleName(base::string16 accessible_name);
 
-    bool has_callback() const { return !!callback_; }
-
    private:
     friend class DialogModelButton;
 
     int unique_id_ = -1;
-    base::RepeatingCallback<void(const Event&)> callback_;
     base::flat_set<Accelerator> accelerators_;
   };
 
@@ -95,18 +87,27 @@
   // fields.
   DialogModelButton(util::PassKey<DialogModel> pass_key,
                     DialogModel* model,
+                    base::RepeatingCallback<void(const Event&)> callback,
                     base::string16 label,
                     const Params& params);
   DialogModelButton(const DialogModelButton&) = delete;
   DialogModelButton& operator=(const DialogModelButton&) = delete;
   ~DialogModelButton() override;
 
-  const base::string16& label() const { return label_; }
+  // Methods with util::PassKey<DialogModelHost> are only intended to be called
+  // by the DialogModelHost implementation.
+  const base::string16& label(util::PassKey<DialogModelHost>) const {
+    return label_;
+  }
+  void OnPressed(util::PassKey<DialogModelHost>, const Event& event);
 
  private:
   friend class DialogModel;
 
   const base::string16 label_;
+  // The button callback gets called when the button is activated. Whether
+  // that happens on key-press, release, etc. is implementation (and platform)
+  // dependent.
   base::RepeatingCallback<void(const Event&)> callback_;
 };
 
@@ -157,11 +158,21 @@
   DialogModelCombobox& operator=(const DialogModelCombobox&) = delete;
   ~DialogModelCombobox() override;
 
-  const base::string16& label() const { return label_; }
-  const base::string16& accessible_name() const { return accessible_name_; }
   int selected_index() const { return selected_index_; }
   ui::ComboboxModel* combobox_model() { return combobox_model_.get(); }
 
+  // Methods with util::PassKey<DialogModelHost> are only intended to be called
+  // by the DialogModelHost implementation.
+  const base::string16& label(util::PassKey<DialogModelHost>) const {
+    return label_;
+  }
+  const base::string16& accessible_name(util::PassKey<DialogModelHost>) const {
+    return accessible_name_;
+  }
+  void OnSelectedIndexChanged(util::PassKey<DialogModelHost>,
+                              int selected_index);
+  void OnPerformAction(util::PassKey<DialogModelHost>);
+
  private:
   friend class DialogModel;
 
@@ -210,10 +221,18 @@
   DialogModelTextfield& operator=(const DialogModelTextfield&) = delete;
   ~DialogModelTextfield() override;
 
-  const base::string16& label() const { return label_; }
-  const base::string16& accessible_name() const { return accessible_name_; }
   const base::string16& text() const { return text_; }
 
+  // Methods with util::PassKey<DialogModelHost> are only intended to be called
+  // by the DialogModelHost implementation.
+  const base::string16& label(util::PassKey<DialogModelHost>) const {
+    return label_;
+  }
+  const base::string16& accessible_name(util::PassKey<DialogModelHost>) const {
+    return accessible_name_;
+  }
+  void OnTextChanged(util::PassKey<DialogModelHost>, base::string16 text);
+
  private:
   friend class DialogModel;
 
diff --git a/ui/base/resource/resource_bundle.cc b/ui/base/resource/resource_bundle.cc
index 74c0f3fe..df4b0a7 100644
--- a/ui/base/resource/resource_bundle.cc
+++ b/ui/base/resource/resource_bundle.cc
@@ -844,7 +844,7 @@
 }
 
 ScaleFactor ResourceBundle::GetMaxScaleFactor() const {
-#if defined(OS_WIN) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
   return max_scale_factor_;
 #else
   return GetSupportedScaleFactors().back();
@@ -897,7 +897,8 @@
   // On platforms other than iOS, 100P is always a supported scale factor.
   // For Windows we have a separate case in this function.
   supported_scale_factors.push_back(SCALE_FACTOR_100P);
-#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_APPLE) || defined(OS_LINUX) || defined(OS_CHROMEOS) || \
+    defined(OS_WIN)
   supported_scale_factors.push_back(SCALE_FACTOR_200P);
 #endif
 #endif
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
index c575c84..a9be5372 100644
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -130,7 +130,8 @@
     "PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT};
 #endif  // defined(OS_WIN)
 
-#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+    defined(OS_CHROMEOS)
 // Enables stylus appearing as touch when in contact with digitizer.
 const base::Feature kDirectManipulationStylus = {
     "DirectManipulationStylus",
@@ -140,7 +141,8 @@
     base::FEATURE_DISABLED_BY_DEFAULT
 #endif
 };
-#endif  // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX)
+#endif  // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
+        // defined(OS_CHROMEOS)
 
 // Enables forced colors mode for web content.
 const base::Feature kForcedColors{"ForcedColors",
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
index f73c55de..5dfdf28 100644
--- a/ui/base/ui_base_features.h
+++ b/ui/base/ui_base_features.h
@@ -60,10 +60,12 @@
 COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsUsingWMPointerForTouch();
 #endif  // defined(OS_WIN)
 
-#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX)
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+    defined(OS_CHROMEOS)
 COMPONENT_EXPORT(UI_BASE_FEATURES)
 extern const base::Feature kDirectManipulationStylus;
-#endif  // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX)
+#endif  // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
+        // defined(OS_CHROMEOS)
 
 // Used to enable forced colors mode for web content.
 COMPONENT_EXPORT(UI_BASE_FEATURES) extern const base::Feature kForcedColors;
diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
index c283794..499b9eb 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Alles is gerugsteun na <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Vee uit</translation>
 <translation id="6650726141019353908">Pienk skoenlapper</translation>
+<translation id="6657585470893396449">Wagwoord</translation>
 <translation id="6710213216561001401">Vorige</translation>
 <translation id="6718273304615422081">Kompakteer tans …</translation>
 <translation id="6751256176799620176">1 vouer is gekies</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Wysig</translation>
 <translation id="9099674669267916096">Aantal bladsye</translation>
 <translation id="9110990317705400362">Ons soek gedurig na maniere om jou blaai-ervaring veiliger te maak. Voorheen kon enige webwerf jou vra om 'n uitbreiding by jou blaaier te voeg. In die nuutste weergawes van Google Chrome moet jy Chrome spesifiek aansê dat jy hierdie uitbreidings wil installeer deur hulle via die uitbreidingbladsy by te voeg. <ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Ontsluit</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Speld vouer vas</translation>
 <translation id="9130775360844693113">Lede van "<ph name="DESTINATION_NAME" />" sal toegang tot hierdie items kry.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_am.xtb b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
index f9a27c8..98c1b12 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_am.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">ሁሉም ወደ <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> በምትኬ ተቀምጠዋል!</translation>
 <translation id="6643016212128521049">አጽዳ</translation>
 <translation id="6650726141019353908">ሮዝ ቢራቢሮ</translation>
+<translation id="6657585470893396449">የይለፍ ቃል፦</translation>
 <translation id="6710213216561001401">ቀዳሚ</translation>
 <translation id="6718273304615422081">በማጨቅ ላይ...</translation>
 <translation id="6751256176799620176">1 አቃፊ ተመርጧል</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">አርትዕ</translation>
 <translation id="9099674669267916096">የገጽ ብዛት</translation>
 <translation id="9110990317705400362">የእርስዎን አሰሳ ይበልጥ ደህንነቱ የተጠበቀ የሚሆንባቸው መንገዶችን በቋሚነት እየፈለግን ነው። ከዚህ ቀደም ማንኛውም ድር ጣቢያ ቅጥያ በአሳሽዎ ላይ እንዲያክሉ ሊጠይቅዎ ይችል ነበር። በቅርቦቹ የGoogle Chrome ስሪቶች ላይ እነዚህን ቅጥያዎች በቅጥያዎች ገጹ በኩል በማከል እንደሚፈልጓቸው በግልጽ ለChrome መንገር አለብዎት። <ph name="BEGIN_LINK" />ተጨማሪ ለመረዳት<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ክፈት</translation>
 <translation id="912419004897138677">ኮዴክ</translation>
 <translation id="9129931661813833980">አቃፊን አያይዝ</translation>
 <translation id="9130775360844693113">የ«<ph name="DESTINATION_NAME" />» አባላት የእነዚህ ንጥሎች መዳረሻ ያገኛሉ።</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
index f3e53fd9..6a85871 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">‏تمّت مشاركة هذا المجلد مع نظام التشغيل Windows.</translation>
 <translation id="4487088045714738411">لوحة المفاتيح البلجيكية</translation>
 <translation id="4522570452068850558">التفاصيل</translation>
+<translation id="4542387084127299777">يتعذّر فتح "<ph name="PATH" />".</translation>
 <translation id="4552678318981539154">شراء المزيد من مساحة التخزين</translation>
 <translation id="4559767610552730302">‏تأثير Bokeh</translation>
 <translation id="4572815280350369984">ملف <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">‏تم نسخ جميع العناصر احتياطيًا في <ph name="BEGIN_LINK" />Google Drive.<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">محو</translation>
 <translation id="6650726141019353908">فراشة وردية</translation>
+<translation id="6657585470893396449">كلمة المرور</translation>
 <translation id="6710213216561001401">السابق</translation>
 <translation id="6718273304615422081">جارٍ الضغط...</translation>
 <translation id="6751256176799620176">تم اختيار مجلد واحد</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">تعديل</translation>
 <translation id="9099674669267916096">عدد الصفحات</translation>
 <translation id="9110990317705400362">‏نحن نبحث باستمرار عن طرق من شأنها زيادة أمان تجربة تصفحك. في السابق، كان من الممكن لأي موقع إلكتروني أن يطالبك بتثبيت إضافة في متصفحك. أما في أحدث إصدارات Google Chrome، فيجب أن تبلغ Chrome صراحة أنك تريد تثبيت هذه الإضافات عن طريق إضافتها عبر صفحة الإضافات. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">فتح القفل</translation>
 <translation id="912419004897138677">برنامج ترميز</translation>
 <translation id="9129931661813833980">تثبيت المجلد</translation>
 <translation id="9130775360844693113">سيحصل أعضاء '<ph name="DESTINATION_NAME" />' على إمكانية الوصول إلى هذه العناصر.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
index fa92578..f883dbc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -43,7 +43,7 @@
 <translation id="1358735829858566124">ফাইলটো বা ডাইৰেক্ট’ৰীটো ব্যৱহাৰযোগ্য নহয়।</translation>
 <translation id="1363028406613469049">ট্ৰেক</translation>
 <translation id="1378727793141957596">Google Driveলৈ স্বাগতম!</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1395262318152388157">ছীক স্লাইডাৰ</translation>
 <translation id="1399648040768741453">তেলেগু কীব’ৰ্ড (উচ্চাৰণগত)</translation>
 <translation id="1430915738399379752">প্ৰিণ্ট কৰক</translation>
@@ -300,6 +300,7 @@
 <translation id="4481711095103932593">এই ফ’ল্ডাৰটো Windowsৰ সৈতে শ্বেয়াৰ কৰা হৈছে</translation>
 <translation id="4487088045714738411">বেলজিয়ান কীব’ৰ্ড</translation>
 <translation id="4522570452068850558">সবিশেষ</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" খুলিব পৰা নাই</translation>
 <translation id="4552678318981539154">অধিক ষ্ট’ৰেজ কিনক</translation>
 <translation id="4559767610552730302">ব’কে’</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ফাইল</translation>
@@ -510,6 +511,7 @@
 <translation id="6629841649550503054">সকলো ফাইল <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />ত বেক আপ কৰা হ’ল!</translation>
 <translation id="6643016212128521049">মচক</translation>
 <translation id="6650726141019353908">গুলপীয়া পখিলা</translation>
+<translation id="6657585470893396449">পাছৱৰ্ড</translation>
 <translation id="6710213216561001401">পূৰ্বৱৰ্তী</translation>
 <translation id="6718273304615422081">জিপ কৰি থকা হৈছে...</translation>
 <translation id="6751256176799620176">১টা ফ’ল্ডাৰ বাছনি কৰা হ’ল</translation>
@@ -717,6 +719,7 @@
 <translation id="9065203028668620118">সম্পাদনা কৰক</translation>
 <translation id="9099674669267916096">পৃষ্ঠাৰ সংখ্যা</translation>
 <translation id="9110990317705400362">আমি আপোনাৰ ব্ৰাউজিং সুৰক্ষিত কৰিবলৈ সদায়েই উপায় বিচাৰি আছোঁ। পূৰ্বতে, যিকোনো ৱেবছাইটে আপোনাৰ ব্ৰাউজাৰত এক্সটেনশ্বন যোগ কৰিবলৈ আপোনাক প্ৰ’ম্প্‌ট কৰিব পাৰিছিল। Google Chromeৰ শেহতীয়া সংস্কৰণত আপুনি Chromeক স্পষ্টভাৱে ক’ব লাগিব যে আপুনি এক্সটেনশ্বন পৃষ্ঠাটোৰ জৰিয়তে এই এক্সটেনশ্বনসমূহ ইনষ্টল কৰিবলৈ বিচাৰে। <ph name="BEGIN_LINK" />অধিক জানক<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">আনলক</translation>
 <translation id="912419004897138677">ক’ডেক</translation>
 <translation id="9129931661813833980">ফ’ল্ডাৰ পিন কৰক</translation>
 <translation id="9130775360844693113">‘<ph name="DESTINATION_NAME" />’ৰ সদস্যসকলে এই বস্তুবোৰলৈ এক্সেছ পাব।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
index 5bd5e86..53919691 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Bu qovluq Windows ilə paylaşılır</translation>
 <translation id="4487088045714738411">Belçika klaviaturası</translation>
 <translation id="4522570452068850558">Detallar</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" açılmadı</translation>
 <translation id="4552678318981539154">Əlavə yaddaş ehtiyatı alın</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> faylı</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Hər şey <ph name="BEGIN_LINK" />Google Diskə<ph name="END_LINK" /> yedəkləndi!</translation>
 <translation id="6643016212128521049">Silin</translation>
 <translation id="6650726141019353908">Çəhrayı kəpənək</translation>
+<translation id="6657585470893396449">Parol</translation>
 <translation id="6710213216561001401">Əvvəlki</translation>
 <translation id="6718273304615422081">Sıxılır...</translation>
 <translation id="6751256176799620176">1 qovluq seçildi</translation>
@@ -723,6 +725,7 @@
 <translation id="9065203028668620118">Düzəliş edin</translation>
 <translation id="9099674669267916096">Səhifə sayı</translation>
 <translation id="9110990317705400362">Brauzerinizi güvənli etməyin yollarını daima axtarırıq. Son Chrome versiyasında artırmaları əlavə etmək üçün bunu Chrome'a açıq şəkildə deməlisiniz. <ph name="BEGIN_LINK" />Ətraflı məlumat<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Kiliddən çıxarın</translation>
 <translation id="912419004897138677">Kodeks</translation>
 <translation id="9129931661813833980">Qovluğu panelə bərkidin</translation>
 <translation id="9130775360844693113">"<ph name="DESTINATION_NAME" />" üzvləri bu elementlərə daxil ola biləcək.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
index 410a602..bf78edf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Гэта папка абагулена з Windows</translation>
 <translation id="4487088045714738411">Бельгійская клавіятура</translation>
 <translation id="4522570452068850558">Падрабязнасці</translation>
+<translation id="4542387084127299777">Не ўдалося адкрыць "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Купіце больш месца ў сховішчы</translation>
 <translation id="4559767610552730302">Эфект баке</translation>
 <translation id="4572815280350369984">Файл <ph name="FILE_TYPE" /></translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Усе даныя скапіраваны на <ph name="BEGIN_LINK" />Google Дыск!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Ачысціць</translation>
 <translation id="6650726141019353908">Ружовы матылёк</translation>
+<translation id="6657585470893396449">Пароль</translation>
 <translation id="6710213216561001401">Назад</translation>
 <translation id="6718273304615422081">Ідзе архіваванне...</translation>
 <translation id="6751256176799620176">Выбрана 1 папка</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">Змяніць</translation>
 <translation id="9099674669267916096">Колькасць старонак</translation>
 <translation id="9110990317705400362">Мы пастаянна працуем над новымі спосабамі зрабіць працу ў інтэрнэце больш бяспечнай. Раней любы сайт мог прапанаваць вам дадаць пашырэнні ў браўзер. У апошніх версіях Google Chrome пашырэнні трэба дадаваць праз старонку "Пашырэнні", даючы браўзеру яўнае ўказанне, што вы хочаце іх усталяваць. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Разблакіраваць</translation>
 <translation id="912419004897138677">Кодэк</translation>
 <translation id="9129931661813833980">Замацаваць папку</translation>
 <translation id="9130775360844693113">Да гэтых элементаў атрымаюць доступ удзельнікі дыска "<ph name="DESTINATION_NAME" />".</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
index 6e16fd1..ce68899 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">На всичко бе създадено резервно копие в <ph name="BEGIN_LINK" />Google Диск<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">Изчистване</translation>
 <translation id="6650726141019353908">Розова пеперуда</translation>
+<translation id="6657585470893396449">Парола</translation>
 <translation id="6710213216561001401">Предишна</translation>
 <translation id="6718273304615422081">Компресира се...</translation>
 <translation id="6751256176799620176">Избрахте 1 папка</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Редактиране</translation>
 <translation id="9099674669267916096">Брой страници</translation>
 <translation id="9110990317705400362">Непрекъснато търсим начини да правим сърфирането ви по-безопасно. По-рано всеки уебсайт можеше да ви подкани да добавите разширение в браузъра си. В най-новите версии на Google Chrome трябва изрично да укажете на браузъра, че искате да инсталирате съответния софтуер, като го добавите чрез страницата „Разширения“. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Отключване</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Фиксиране на папката</translation>
 <translation id="9130775360844693113">Членовете на „<ph name="DESTINATION_NAME" />“ ще получат достъп до тези елементи.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
index 8418a1e..046fd4db 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -43,7 +43,7 @@
 <translation id="1358735829858566124">ফাইল বা ডিরেক্টরি ব্যবহারযোগ্য নয়৷</translation>
 <translation id="1363028406613469049">ট্র্যাক</translation>
 <translation id="1378727793141957596">Google ড্রাইভে স্বাগতম!</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1395262318152388157">স্লাইডার খুঁজুন</translation>
 <translation id="1399648040768741453">তেলুগু কীবোর্ড (ফোনেটিক)</translation>
 <translation id="1430915738399379752">প্রিন্ট</translation>
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">এই ফোল্ডারটি Windows-এর সাথে শেয়ার করা হয়েছে</translation>
 <translation id="4487088045714738411">বেলজিয়ান কীবোর্ড</translation>
 <translation id="4522570452068850558">বিশদ বিবরণ</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" খোলা যাচ্ছে না</translation>
 <translation id="4552678318981539154">আরও সঞ্চয়স্থান কিনুন</translation>
 <translation id="4559767610552730302">বোকে</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ফাইল</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google ড্রাইভ<ph name="END_LINK" /> এ সবগুলির ব্যাকআপ নেওয়া হয়েছে</translation>
 <translation id="6643016212128521049">সাফ করুন</translation>
 <translation id="6650726141019353908">গোলাপি প্রজাপতি</translation>
+<translation id="6657585470893396449">পাসওয়ার্ড</translation>
 <translation id="6710213216561001401">পূর্ববর্তী</translation>
 <translation id="6718273304615422081">জিপ করা হচ্ছে...</translation>
 <translation id="6751256176799620176">১টি ফোল্ডার নির্বাচন করা হয়েছে</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">সম্পাদনা</translation>
 <translation id="9099674669267916096">পৃষ্ঠার সংখ্যা</translation>
 <translation id="9110990317705400362">আমরা ক্রমাগত আপনার ব্রাউজিং নিরাপদ করতে উপায় খুঁজছি৷ আগে, যে কোনো ওয়েবসাইট আপনার ব্রাউজারে একটি এক্সটেনশন যোগ করার অনুরোধ জানাতে পারত৷ Google Chrome-এর সাম্প্রতিক ভার্সনে, আপনাকে অবশ্যই Chrome-কে স্পষ্টভাবে বলতে হবে যে আপনি এক্সটেনশনগুলির পৃষ্ঠার মাধ্যমে তাদের যোগ করে এই এক্সটেনশনগুলি ইনস্টল করতে চান৷ <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">আনলক</translation>
 <translation id="912419004897138677">কোডেক</translation>
 <translation id="9129931661813833980">ফোল্ডার পিন করুন</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' এর সদস্যরা এই আইটেমগুলির অ্যাক্সেস পাবেন।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
index a9c04dd..65c4a3a8 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Napravljene su sigurnosne kopije na <ph name="BEGIN_LINK" />Google Disku!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Obriši</translation>
 <translation id="6650726141019353908">Ružičasti leptir</translation>
+<translation id="6657585470893396449">Lozinka</translation>
 <translation id="6710213216561001401">Nazad</translation>
 <translation id="6718273304615422081">Kreiranje zip fajla...</translation>
 <translation id="6751256176799620176">Odabran je 1 folder</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Uredi</translation>
 <translation id="9099674669267916096">Broj stranica</translation>
 <translation id="9110990317705400362">Stalno tražimo načine da učinimo pregledanje sigurnijim. Prethodno je svaka web lokacija od vas mogla zatražiti da dodate ekstenziju u preglednik. U najnovijoj verziji Google Chromea, izričito morate reći Chromeu da želite instalirati ove ekstenzije tako što ćete ih dodati putem stranice Ekstenzije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Otključaj</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Zakači folder</translation>
 <translation id="9130775360844693113">Članovi tima "<ph name="DESTINATION_NAME" />" dobit će pristup ovim stavkama.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
index b78f9a1..ceed903 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Tots els elements tenen una còpia de seguretat a <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Esborra</translation>
 <translation id="6650726141019353908">Papallona rosa</translation>
+<translation id="6657585470893396449">Contrasenya</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">S'està comprimint...</translation>
 <translation id="6751256176799620176">1 carpeta seleccionada</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Edita</translation>
 <translation id="9099674669267916096">Nombre de pàgines</translation>
 <translation id="9110990317705400362">Mai no deixem de cercar maneres de millorar la seguretat de la navegació. Anteriorment, des de qualsevol lloc web se us podia demanar que afegíssiu una extensió al navegador. A les versions més recents de Google Chrome, heu d'afegir aquestes extensions mitjançant la pàgina Extensions per fer saber explícitament a Chrome que voleu instal·lar-les. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloqueja</translation>
 <translation id="912419004897138677">Còdec</translation>
 <translation id="9129931661813833980">Fixa la carpeta</translation>
 <translation id="9130775360844693113">Els membres de la unitat <ph name="DESTINATION_NAME" />, obtindran accés a aquets elements.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
index 14cc999..1f89f5e5 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_cs.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Tato složka je sdílena se systémem Windows</translation>
 <translation id="4487088045714738411">Belgická klávesnice</translation>
 <translation id="4522570452068850558">Podrobnosti</translation>
+<translation id="4542387084127299777">Soubor „<ph name="PATH" />“ nelze otevřít:</translation>
 <translation id="4552678318981539154">Koupit větší úložiště</translation>
 <translation id="4559767610552730302">Rozostření</translation>
 <translation id="4572815280350369984">Soubor <ph name="FILE_TYPE" /></translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Vše je zálohováno na <ph name="BEGIN_LINK" />Disku Google<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">Vymazat</translation>
 <translation id="6650726141019353908">Růžový motýl</translation>
+<translation id="6657585470893396449">Heslo</translation>
 <translation id="6710213216561001401">Předchozí</translation>
 <translation id="6718273304615422081">Komprimování...</translation>
 <translation id="6751256176799620176">Je vybrána 1 složka</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">Upravit</translation>
 <translation id="9099674669267916096">Počet stránek</translation>
 <translation id="9110990317705400362">Neustále hledáme způsoby, jak zvýšit bezpečnost prohlížení. V minulosti vás k přidání rozšíření do prohlížeče mohl vyzvat kterýkoliv web. V nejnovějších verzích Google Chrome musíte Chromu výslovně sdělit, že rozšíření chcete nainstalovat. Učiníte tak tím, že rozšíření přidáte na stránce Rozšíření. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Odemknout</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Připnout složku</translation>
 <translation id="9130775360844693113">Členové týmu <ph name="DESTINATION_NAME" /> získají přístup k těmto položkám.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_da.xtb b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
index 6b2d819..ddb4c3f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_da.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_da.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Alt er sikkerhedskopieret til <ph name="BEGIN_LINK" />Google Drev<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Ryd</translation>
 <translation id="6650726141019353908">Lyserød sommerfugl</translation>
+<translation id="6657585470893396449">Adgangskode</translation>
 <translation id="6710213216561001401">Forrige</translation>
 <translation id="6718273304615422081">Komprimerer...</translation>
 <translation id="6751256176799620176">1 mappe er valgt</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Rediger</translation>
 <translation id="9099674669267916096">Sideantal</translation>
 <translation id="9110990317705400362">Vi leder hele tiden efter nye metoder til at gøre din browsing mere sikker. Før kunne ethvert website anmode dig om at tilføje en udvidelse i din browser. I de nyeste versioner af Google Chrome skal du udtrykkeligt give Chrome besked om, at du vil installere udvidelser, ved at tilføje dem via siden Udvidelser. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Lås op</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Fastgør mappe</translation>
 <translation id="9130775360844693113">Medlemmer af "<ph name="DESTINATION_NAME" />" får adgang til disse elementer.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
index edfa24d8..2dd6da4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Alle Daten wurden in <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> gesichert.</translation>
 <translation id="6643016212128521049">Löschen</translation>
 <translation id="6650726141019353908">Rosa Schmetterling</translation>
+<translation id="6657585470893396449">Passwort</translation>
 <translation id="6710213216561001401">Zurück</translation>
 <translation id="6718273304615422081">Wird gezippt...</translation>
 <translation id="6751256176799620176">1 Ordner ausgewählt</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Bearbeiten</translation>
 <translation id="9099674669267916096">Seitenzahl</translation>
 <translation id="9110990317705400362">Wir arbeiten stets daran, das Surfen für Sie sicherer zu machen. Früher konnten Sie von jeder beliebigen Website aufgefordert werden, eine Erweiterung zu Ihrem Browser hinzuzufügen. In neueren Versionen von Google Chrome müssen Sie Chrome ausdrücklich mitteilen, dass Sie diese Erweiterungen installieren möchten, indem Sie sie über die Seite "Erweiterungen" hinzufügen. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Entsperren</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Ordner anpinnen</translation>
 <translation id="9130775360844693113">Mitglieder von "<ph name="DESTINATION_NAME" />" erhalten Zugriff auf diese Dateien.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_el.xtb b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
index 4b754c56..e9a0916e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_el.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
@@ -528,6 +528,7 @@
 <translation id="6629841649550503054">Δημιουργήθηκαν αντίγραφα ασφαλείας για όλα τα αρχεία στο <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Διαγραφή</translation>
 <translation id="6650726141019353908">Ροζ πεταλούδα</translation>
+<translation id="6657585470893396449">Κωδικός πρόσβασης</translation>
 <translation id="6710213216561001401">Προηγούμενο</translation>
 <translation id="6718273304615422081">Συμπίεση…</translation>
 <translation id="6751256176799620176">Επιλέχθηκε 1 φάκελος</translation>
@@ -750,6 +751,7 @@
 <translation id="9065203028668620118">Επεξεργασία</translation>
 <translation id="9099674669267916096">Πλήθος σελίδων</translation>
 <translation id="9110990317705400362">Αναζητούμε συνεχώς νέους τρόπους για να κάνουμε πιο ασφαλή την περιήγησή σας. Παλιότερα, ένας ιστότοπος μπορούσε να σας ζητήσει να προσθέσετε μια επέκταση στο πρόγραμμα περιήγησής σας. Στις πιο πρόσφατες εκδόσεις του Google Chrome, πρέπει να πείτε ρητά στο Chrome ότι επιθυμείτε την εγκατάσταση αυτών των επεκτάσεων, προσθέτοντάς τες μέσω της σελίδας "Επεκτάσεις". <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Ξεκλείδωμα</translation>
 <translation id="912419004897138677">Κωδικοποιητής</translation>
 <translation id="9129931661813833980">Καρφίτσωμα φακέλου</translation>
 <translation id="9130775360844693113">Τα μέλη του "<ph name="DESTINATION_NAME" />" θα αποκτήσουν πρόσβαση σε αυτά τα στοιχεία.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
index 3b72d5d..e8642a93 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">All backed up to <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Clear</translation>
 <translation id="6650726141019353908">Pink butterfly</translation>
+<translation id="6657585470893396449">Password</translation>
 <translation id="6710213216561001401">Previous</translation>
 <translation id="6718273304615422081">Zipping...</translation>
 <translation id="6751256176799620176">1 folder selected</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Edit</translation>
 <translation id="9099674669267916096">Page count</translation>
 <translation id="9110990317705400362">We're constantly looking for ways to make your browsing safer. Previously, any website could prompt you to add an extension into your browser. In the latest versions of Google Chrome, you must explicitly tell Chrome that you want to install these extensions by adding them through the Extensions page. <ph name="BEGIN_LINK" />Learn more<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Unlock</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Pin folder</translation>
 <translation id="9130775360844693113">Members of '<ph name="DESTINATION_NAME" />' will gain access to these items.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
index cff3a9d..6d1fee2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Se comparte esta carpeta con Windows</translation>
 <translation id="4487088045714738411">Teclado belga</translation>
 <translation id="4522570452068850558">Detalles</translation>
+<translation id="4542387084127299777">No se puede abrir "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Comprar más almacenamiento</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Archivo <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Todos los archivos están guardados en una copia de seguridad en <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Borrar</translation>
 <translation id="6650726141019353908">Mariposa rosa</translation>
+<translation id="6657585470893396449">Contraseña</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">Comprimiendo…</translation>
 <translation id="6751256176799620176">1 carpeta seleccionada</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Editar</translation>
 <translation id="9099674669267916096">Cantidad de páginas</translation>
 <translation id="9110990317705400362">Constantemente buscamos la forma de ofrecerte una navegación más segura. Antes, cualquier sitio web podía pedirte agregar una extensión al navegador. En las últimas versiones de Google Chrome, debes indicar a Chrome explícitamente que deseas instalar estas extensiones al agregarlas en la página Extensiones. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloquear</translation>
 <translation id="912419004897138677">Códec</translation>
 <translation id="9129931661813833980">Fijar carpeta</translation>
 <translation id="9130775360844693113">Los miembros de "<ph name="DESTINATION_NAME" />" tendrán acceso a estos elementos.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es.xtb b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
index de3502d..55b0dab 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_es.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_es.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Esta carpeta se comparte con Windows</translation>
 <translation id="4487088045714738411">Teclado belga</translation>
 <translation id="4522570452068850558">Detalles</translation>
+<translation id="4542387084127299777">No se puede abrir "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Comprar más almacenamiento</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Archivo <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Se ha realizado la copia de seguridad de todos los archivos en <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Eliminar</translation>
 <translation id="6650726141019353908">Mariposa rosa</translation>
+<translation id="6657585470893396449">Contraseña</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">Comprimiendo...</translation>
 <translation id="6751256176799620176">1 carpeta seleccionada</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Editar</translation>
 <translation id="9099674669267916096">Número de páginas</translation>
 <translation id="9110990317705400362">No dejamos de buscar formas de ofrecerte una navegación más segura. Anteriormente, cualquier sitio web podía solicitarte que añadieras una extensión al navegador. En las últimas versiones de Google Chrome, debes indicarle explícitamente a Chrome que quieres instalar esas extensiones añadiéndolas a través de la página Extensiones. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloquear</translation>
 <translation id="912419004897138677">Códec</translation>
 <translation id="9129931661813833980">Fijar carpeta</translation>
 <translation id="9130775360844693113">Los miembros de "<ph name="DESTINATION_NAME" />" obtendrán acceso a estos elementos.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_et.xtb b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
index d8286af..f0b28523 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_et.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Kõik failid varundati teenuses <ph name="BEGIN_LINK" />Google Drive.<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Tühjenda</translation>
 <translation id="6650726141019353908">Roosa liblikas</translation>
+<translation id="6657585470893396449">Parool</translation>
 <translation id="6710213216561001401">Eelmine</translation>
 <translation id="6718273304615422081">Pakkimine ...</translation>
 <translation id="6751256176799620176">Valitud on üks kaust</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Muuda</translation>
 <translation id="9099674669267916096">Lehtede arv</translation>
 <translation id="9110990317705400362">Otsime alati võimalusi, kuidas muuta sirvimine veelgi turvalisemaks. Varem võis iga veebisait paluda teil lisada brauserisse laiendusi. Google Chrome'i uusimas versioonis peate Chrome'ile selgelt ütlema, et soovite neid laiendusi installida, lisades need lehe Laiendused kaudu. <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Ava lukk</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Kinnita kaust</translation>
 <translation id="9130775360844693113">Sihtkoha „<ph name="DESTINATION_NAME" />” liikmed saavad juurdepääsu nendele üksustele.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
index 5be49426..64f4743 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Karpeta hau Windows-ekin partekatuta dago</translation>
 <translation id="4487088045714738411">Teklatu belgikarra</translation>
 <translation id="4522570452068850558">Xehetasunak</translation>
+<translation id="4542387084127299777">Ezin da ireki "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Erosi memoria gehiago</translation>
 <translation id="4559767610552730302">Bokeh efektua</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> fitxategia</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Fitxategi guztien babeskopia egin da <ph name="BEGIN_LINK" />Google Drive-n!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Garbitu</translation>
 <translation id="6650726141019353908">Tximeleta arrosa</translation>
+<translation id="6657585470893396449">Pasahitza</translation>
 <translation id="6710213216561001401">Aurrekoa</translation>
 <translation id="6718273304615422081">Konprimatzen…</translation>
 <translation id="6751256176799620176">Karpeta bat hautatu da</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">Editatu</translation>
 <translation id="9099674669267916096">Orri kopurua</translation>
 <translation id="9110990317705400362">Arakatzea geroz eta seguruagoa izan dadin saiatzen gara etengabe. Lehen, edozein webgunek eskain ziezazukeen arakatzailean gehitzeko luzapen bat. Google Chrome-ren azken bertsioetan, ordea, luzapen horiek Luzapenak orrian gehituta instalatu nahi dituzula berariaz esan behar diozu Chrome-ri. <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desblokeatu</translation>
 <translation id="912419004897138677">Kodeka</translation>
 <translation id="9129931661813833980">Ainguratu karpeta</translation>
 <translation id="9130775360844693113">Elementu hauetarako sarbidea izango dute "<ph name="DESTINATION_NAME" />" unitateko kideek.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
index d4dd91e8..9c63d99 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">‏همه در <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> پشتیبان گرفته شدند</translation>
 <translation id="6643016212128521049">پاک کردن</translation>
 <translation id="6650726141019353908">پروانه صورتی</translation>
+<translation id="6657585470893396449">گذرواژه</translation>
 <translation id="6710213216561001401">قبلی</translation>
 <translation id="6718273304615422081">در حال فشرده سازی ...</translation>
 <translation id="6751256176799620176">۱ پوشه انتخاب شد</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">ویرایش</translation>
 <translation id="9099674669267916096">تعداد صفحه</translation>
 <translation id="9110990317705400362">‏همواره به دنبال راه‌هایی هستیم تا مرورتان را ایمن‌تر کنیم. قبلاً هر وب‌سایتی از شما می‌خواست برنامه‌افزودنی‌ای را در مرورگرتان اضافه کنید. در جدیدترین نسخه Google Chrome، باید به Chrome صراحتاً بگویید که می‌خواهید با افزودن این برنامه‌های افزودنی از طریق صفحه افزونه‌ها آنها را نصب کنید. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">باز کردن قفل</translation>
 <translation id="912419004897138677">کدک</translation>
 <translation id="9129931661813833980">پین کردن پوشه</translation>
 <translation id="9130775360844693113">اعضای «<ph name="DESTINATION_NAME" />» به این موارد دسترسی پیدا می‌کنند.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
index c256fb8..ba5c4e0 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Tämä kansio on jaettu Windowsille</translation>
 <translation id="4487088045714738411">Näppäimistö: Belgia</translation>
 <translation id="4522570452068850558">Tiedot</translation>
+<translation id="4542387084127299777">Avaaminen ei onnistu: <ph name="PATH" /></translation>
 <translation id="4552678318981539154">Osta lisää tallennustilaa</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-tiedosto</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Kaikki on varmuuskopioitu <ph name="BEGIN_LINK" />Google Driveen!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Tyhjennä</translation>
 <translation id="6650726141019353908">Vaaleanpunainen perhonen</translation>
+<translation id="6657585470893396449">Salasana</translation>
 <translation id="6710213216561001401">Edellinen</translation>
 <translation id="6718273304615422081">Pakataan…</translation>
 <translation id="6751256176799620176">1 kansio valittu</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Muokkaa</translation>
 <translation id="9099674669267916096">Sivumäärä</translation>
 <translation id="9110990317705400362">Pyrimme jatkuvasti tekemään selaamisesta turvallisempaa. Aiemmin mikä tahansa sivusto pystyi pyytämään laajennuksen lisäämistä selaimeen. Uusimmissa Google Chrome -versioissa sinun on erikseen ilmoitettava Chromelle, että haluat asentaa nämä laajennukset, lisäämällä ne Laajennukset-sivulla. <ph name="BEGIN_LINK" />Lisätietoja<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Poista lukitus</translation>
 <translation id="912419004897138677">Pakkaus</translation>
 <translation id="9129931661813833980">Kiinnitä kansio</translation>
 <translation id="9130775360844693113">Paikan <ph name="DESTINATION_NAME" /> jäsenet saavat käyttöoikeuden näihin kohteisiin.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
index 3a1675fc7..3ef905f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Nakabahagi ang folder na ito sa Windows</translation>
 <translation id="4487088045714738411">Belgian na keyboard</translation>
 <translation id="4522570452068850558">Mga Detalye</translation>
+<translation id="4542387084127299777">Hindi mabuksan ang "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Bumili ng higit pang storage</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> na file</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Naka-back up na ang lahat sa <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">I-clear</translation>
 <translation id="6650726141019353908">Pink na paru-paro</translation>
+<translation id="6657585470893396449">Password</translation>
 <translation id="6710213216561001401">Nakaraan</translation>
 <translation id="6718273304615422081">Nagzi-zip...</translation>
 <translation id="6751256176799620176">1 folder ang napili</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">I-edit</translation>
 <translation id="9099674669267916096">Bilang ng page</translation>
 <translation id="9110990317705400362">Patuloy kaming naghahanap ng mga paraan upang gawing mas ligtas ang iyong pagba-browse. Noong nakaraan, maaari kang i-prompt ng anumang website na magdagdag ng extension sa iyong browser. Sa mga pinakabagong bersyon ng Google Chrome, dapat na tahasan mong sabihin sa Chrome na gusto mong i-install ang mga extension na ito sa pamamagitan ng pagdaragdag sa mga ito sa page ng Mga Extension. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">I-unlock</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">I-pin ang folder</translation>
 <translation id="9130775360844693113">Magkakaroon ng access ang mga miyembro ng '<ph name="DESTINATION_NAME" />' sa mga item na ito.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
index 0adeac5..d88bb36 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Ce dossier est partagé avec Windows</translation>
 <translation id="4487088045714738411">Clavier belge</translation>
 <translation id="4522570452068850558">Détails</translation>
+<translation id="4542387084127299777">Impossible d'ouvrir « <ph name="PATH" /> »</translation>
 <translation id="4552678318981539154">Acheter de l'espace de stockage supplémentaire</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Fichier <ph name="FILE_TYPE" /></translation>
@@ -515,6 +516,7 @@
 <translation id="6629841649550503054">Tous les fichiers ont été sauvegardés dans <ph name="BEGIN_LINK" />Google Disque<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">Effacer</translation>
 <translation id="6650726141019353908">Papillon rose</translation>
+<translation id="6657585470893396449">Mot de passe</translation>
 <translation id="6710213216561001401">Précédent</translation>
 <translation id="6718273304615422081">Compression au format .zip en cours...</translation>
 <translation id="6751256176799620176">1 dossier sélectionné</translation>
@@ -727,6 +729,7 @@
 <translation id="9065203028668620118">Modifier</translation>
 <translation id="9099674669267916096">Nombre de pages</translation>
 <translation id="9110990317705400362">Nous recherchons sans cesse à sécuriser voter navigation. Avant, n'importe quel site Web pouvait vous inviter à ajouter une extension à votre navigateur. Avec les dernières versions de Google Chrome, vous devez préciser explicitement à Chrome que vous souhaitez installer ces extensions en les ajoutant depuis la page Extensions. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Déverrouiller</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Épingler le dossier</translation>
 <translation id="9130775360844693113">Les membres de « <ph name="DESTINATION_NAME" /> » pourront accéder à ces éléments.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
index 991558f..d0cfff2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Ce dossier est partagé avec Windows</translation>
 <translation id="4487088045714738411">Clavier belge</translation>
 <translation id="4522570452068850558">Détails</translation>
+<translation id="4542387084127299777">Impossible d'ouvrir "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Acheter de l'espace de stockage supplémentaire</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Fichier <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Tous les contenus sont sauvegardés sur <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Effacer</translation>
 <translation id="6650726141019353908">Papillon rose</translation>
+<translation id="6657585470893396449">Mot de passe</translation>
 <translation id="6710213216561001401">Précédent</translation>
 <translation id="6718273304615422081">Compression en cours…</translation>
 <translation id="6751256176799620176">1 dossier sélectionné</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Modifier</translation>
 <translation id="9099674669267916096">Nombre de pages</translation>
 <translation id="9110990317705400362">Nous recherchons constamment à rendre votre navigation plus sûre. Auparavant, vous pouviez être invité à ajouter une extension dans votre navigateur par n'importe quel site Web. Dans les dernières versions de Google Chrome, vous devez explicitement indiquer que vous souhaitez installer une extension en l'ajoutant via la page "Extensions". <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Déverrouiller</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Épingler le dossier</translation>
 <translation id="9130775360844693113">Les membres de "<ph name="DESTINATION_NAME" />" auront accès à ces éléments.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
index 41a8d2e..1fd5bbe 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Todos os ficheiros teñen unha copia de seguranza en <ph name="BEGIN_LINK" />Google Drive.<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Borrar</translation>
 <translation id="6650726141019353908">Bolboreta rosa</translation>
+<translation id="6657585470893396449">Contrasinal</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">Comprimindo...</translation>
 <translation id="6751256176799620176">Seleccionouse 1 cartafol</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Editar</translation>
 <translation id="9099674669267916096">Número de páxinas</translation>
 <translation id="9110990317705400362">Estamos buscando constantemente maneiras de navegar de xeito máis seguro. Anteriormente calquera sitio web podía solicitarche engadir unha extensión ao teu navegador. Nas versións máis recentes de Google Chrome, debes indicar explicitamente a Chrome que queres instalar estas extensións engadíndoas a través da páxina Extensións. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloquear</translation>
 <translation id="912419004897138677">Códec</translation>
 <translation id="9129931661813833980">Fixar cartafol</translation>
 <translation id="9130775360844693113">Os membros de "<ph name="DESTINATION_NAME" />" terán acceso a estes elementos.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
index 1e8d3ef..6f69e49 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -43,7 +43,7 @@
 <translation id="1358735829858566124">ફાઇલ કે ડિરેક્ટરી ઉપયોગ યોગ્ય નથી.</translation>
 <translation id="1363028406613469049">ટ્રૅક</translation>
 <translation id="1378727793141957596">Google ડ્રાઇવ પર આપનું સ્વાગત છે!</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1395262318152388157">સ્લાઇડર શોધો</translation>
 <translation id="1399648040768741453">તેલુગુ કીબોર્ડ (ધ્વન્યાત્મક)</translation>
 <translation id="1430915738399379752">પ્રિન્ટ</translation>
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">આ ફોલ્ડર Windows સાથે શેર થાય છે</translation>
 <translation id="4487088045714738411">બેલ્જિયન કીબોર્ડ</translation>
 <translation id="4522570452068850558">વિગતો</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />"ને ખોલી શકતાં નથી</translation>
 <translation id="4552678318981539154">વધુ સ્ટોરેજ ખરીદો</translation>
 <translation id="4559767610552730302">બૉકે</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ફાઇલ</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">તમામનો <ph name="BEGIN_LINK" />Google ડ્રાઇવ<ph name="END_LINK" /> પર બેકઅપ લેવાયો!</translation>
 <translation id="6643016212128521049">સાફ કરો</translation>
 <translation id="6650726141019353908">ગુલાબી પતંગિયું</translation>
+<translation id="6657585470893396449">પાસવર્ડ</translation>
 <translation id="6710213216561001401">પાછલી</translation>
 <translation id="6718273304615422081">ઝિપ કરી રહ્યાં છે...</translation>
 <translation id="6751256176799620176">1 ફોલ્ડર પસંદ કર્યું</translation>
@@ -724,6 +726,7 @@
 <translation id="9065203028668620118">ફેરફાર કરો</translation>
 <translation id="9099674669267916096">પેજની સંખ્યા</translation>
 <translation id="9110990317705400362">અમે સતત તમારા બ્રાઉઝિંગને વધુ સલામત બનાવવાની રીતો શોધી રહ્યાં છીએ. પૂર્વમાં, કોઈપણ વેબસાઇટ તમને તમારા બ્રાઉઝરમાં એક્સ્ટેન્શન ઉમેરવા માટે સંકેત આપી શકતી હતી. Google Chrome ના નવીનતમ સંસ્કરણોમાં, તમે એક્સ્ટેન્શન્સ પૃષ્ઠ દ્વારા આ એક્સ્ટેન્શન્સને ઉમેરીને તમે તેમને ઇન્સ્ટોલ કરવા માગો છો તે, તમારે Chrome ને સ્પષ્ટપણે કહેવું આવશ્યક છે. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">અનલોક કરો</translation>
 <translation id="912419004897138677">કૉડેક</translation>
 <translation id="9129931661813833980">ફોલ્ડર પિન કરો</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />'ના સભ્યો આ આઇટમનો ઍક્સેસ મેળવશે.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
index 757aaf6..ffdd9e96 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">यह फ़ोल्डर, Windows के साथ शेयर किया गया है</translation>
 <translation id="4487088045714738411">बेल्‍जियन कीबोर्ड</translation>
 <translation id="4522570452068850558">विवरण</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" को नहीं खोला जा सकता</translation>
 <translation id="4552678318981539154">ज़्यादा मेमोरी खरीदें</translation>
 <translation id="4559767610552730302">बोके</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फ़ाइल</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">सभी का <ph name="BEGIN_LINK" />Google डिस्‍क<ph name="END_LINK" /> में बैक अप लिया गया!</translation>
 <translation id="6643016212128521049">साफ़ करें</translation>
 <translation id="6650726141019353908">गुलाबी तितली</translation>
+<translation id="6657585470893396449">पासवर्ड</translation>
 <translation id="6710213216561001401">पिछला</translation>
 <translation id="6718273304615422081">ज़िप किया जा रहा है...</translation>
 <translation id="6751256176799620176">1 फ़ोल्डर चयनित</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">बदलाव करें</translation>
 <translation id="9099674669267916096">पेज संख्या</translation>
 <translation id="9110990317705400362">हम आपकी ब्राउज़िंग को सुरक्षित रखने के तरीकों पर लगातार काम कर रहे हैं. पूर्व में, कोई भी वेबसाइट आपको अपने ब्राउज़र में एक्सटेंशन जोड़ने के लिए संकेत दे सकती थी. Google Chrome के नवीनतम संस्करणों में, आपको एक्सटेंशन पेज के माध्यम से इन एक्सटेंशन को जोड़कर Chrome को स्पष्ट रूप से बताना होगा कि आप इन्हें इंस्टॉल करना चाहते हैं. <ph name="BEGIN_LINK" />और जानें<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">अनलॉक करें</translation>
 <translation id="912419004897138677">कोडेक</translation>
 <translation id="9129931661813833980">फ़ोल्डर को पिन करें</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' के सदस्यों को इन आइटम का एक्सेस मिल जाएगा.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
index 2b35add..39f51900 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Sve je sigurnosno spremljeno na <ph name="BEGIN_LINK" />Google disk!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Izbriši</translation>
 <translation id="6650726141019353908">Ružičasti leptir</translation>
+<translation id="6657585470893396449">Zaporka</translation>
 <translation id="6710213216561001401">Prethodno</translation>
 <translation id="6718273304615422081">Komprimiranje...</translation>
 <translation id="6751256176799620176">Odabrana je 1 mapa</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Uredi</translation>
 <translation id="9099674669267916096">Broj stranica</translation>
 <translation id="9110990317705400362">Neprestano nastojimo učiniti pregledavanje interneta sigurnijim. Ranije je bilo koja web-lokacija mogla tražiti da dodate proširenje u preglednik. Najnovije verzije Google Chromea traže da izričito odobrite instalaciju ovih proširenja tako da ih dodate na stranici Proširenja. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Otključaj</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Prikvači mapu</translation>
 <translation id="9130775360844693113">Članovi grupe "<ph name="DESTINATION_NAME" />" dobit će pristup tim stavkama.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
index aab67a8..5859b45 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Ez a mappa meg van osztva a Windows rendszerrel</translation>
 <translation id="4487088045714738411">Belga billentyűzet</translation>
 <translation id="4522570452068850558">Részletek</translation>
+<translation id="4542387084127299777">A(z) „<ph name="PATH" />” megnyitása nem sikerült</translation>
 <translation id="4552678318981539154">További tárhely vásárlása</translation>
 <translation id="4559767610552730302">Elmosódott</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> fájl</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Mindenről van biztonsági másolat a <ph name="BEGIN_LINK" />Google Drive-on<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">Törlés</translation>
 <translation id="6650726141019353908">Rózsaszín pillangó</translation>
+<translation id="6657585470893396449">Jelszó</translation>
 <translation id="6710213216561001401">Előző</translation>
 <translation id="6718273304615422081">Tömörítés...</translation>
 <translation id="6751256176799620176">1 mappa kiválasztva</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Szerkesztés</translation>
 <translation id="9099674669267916096">Oldalak száma</translation>
 <translation id="9110990317705400362">Folyamatosan keressük az új módszereket, hogy a böngészést biztonságosabbá tegyük. Korábban bármelyik webhely megkérhette Önt, hogy adjon hozzá egy bővítményt a böngészőjéhez. A Google Chrome legújabb verzióiban kifejezetten meg kell mondania a Chrome-nak, hogy telepíteni szeretné ezeket a bővítményeket. Ehhez a Bővítmények oldalon kell hozzáadnia őket. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Feloldás</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Mappa rögzítése</translation>
 <translation id="9130775360844693113">A(z) „<ph name="DESTINATION_NAME" />” tagjai hozzá fognak férni ezekhez az elemekhez.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
index 00954e43..a6dfa1e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Բոլոր ֆայլերը կրկնօրինակվեցին <ph name="BEGIN_LINK" />Google Drive-ում<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Մաքրել</translation>
 <translation id="6650726141019353908">Վարդագույն թիթեռ</translation>
+<translation id="6657585470893396449">Գաղտնաբառ</translation>
 <translation id="6710213216561001401">Նախորդը</translation>
 <translation id="6718273304615422081">Արխիվացում…</translation>
 <translation id="6751256176799620176">Ընտրված է 1 պանակ</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Փոփոխել</translation>
 <translation id="9099674669267916096">Էջերի քանակը</translation>
 <translation id="9110990317705400362">Մենք մշտապես փորձում ենք ձեր զննարկումն ավելի ապահով դարձնել: Նախկինում ցանկացած վեբկայք կարող էր առաջարկել ձեզ ընդլայնում ավելացնել ձեր դիտարկիչին: Google Chrome-ի վերջին տարբերակներում Chrome-ը ձեզանից հստակորեն պետք է հրաման ստանա, եթե դուք ցանկանաք տեղադրել որևէ ընդլայնում՝ ավելացնելով դրանք Ընդլայնումների էջի միջոցով: <ph name="BEGIN_LINK" />Իմանալ ավելին<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Ապակողպել</translation>
 <translation id="912419004897138677">Կոդեկ</translation>
 <translation id="9129931661813833980">Ամրացնել պանակը</translation>
 <translation id="9130775360844693113">«<ph name="DESTINATION_NAME" />»-ի անդամներին այս տարրերը հասանելի կդառնան։</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
index 9721bdeb..327e55f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Folder ini dibagikan ke Windows</translation>
 <translation id="4487088045714738411">Keyboard untuk bahasa Belgia</translation>
 <translation id="4522570452068850558">Detail</translation>
+<translation id="4542387084127299777">Tidak dapat membuka "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Beli penyimpanan lagi</translation>
 <translation id="4559767610552730302">Efek Bokeh</translation>
 <translation id="4572815280350369984">File <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Semua dicadangkan ke <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Hapus</translation>
 <translation id="6650726141019353908">Kupu-kupu merah muda</translation>
+<translation id="6657585470893396449">Sandi</translation>
 <translation id="6710213216561001401">Sebelumnya</translation>
 <translation id="6718273304615422081">Membuat file zip...</translation>
 <translation id="6751256176799620176">1 folder dipilih</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Edit</translation>
 <translation id="9099674669267916096">Hitungan halaman</translation>
 <translation id="9110990317705400362">Kami terus mencari cara agar penjelajahan Anda lebih aman. Sebelumnya, situs web apa pun dapat meminta Anda untuk menambahkan ekstensi ke browser. Pada versi terbaru Google Chrome, Anda harus memberitahukan dengan jelas kepada Chrome bahwa Anda ingin memasang ekstensi ini dengan menambahkannya melalui halaman Ekstensi. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Buka kunci</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Pasang pin pada folder</translation>
 <translation id="9130775360844693113">Anggota '<ph name="DESTINATION_NAME" />' akan mendapatkan akses ke item berikut.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
index 81e3c089..4c0c6f4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Allt afritað á <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Hreinsa</translation>
 <translation id="6650726141019353908">Bleikt fiðrildi</translation>
+<translation id="6657585470893396449">Aðgangsorð</translation>
 <translation id="6710213216561001401">Til baka</translation>
 <translation id="6718273304615422081">Þjappar...</translation>
 <translation id="6751256176799620176">Ein mappa valin</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Breyta</translation>
 <translation id="9099674669267916096">Síðufjöldi</translation>
 <translation id="9110990317705400362">Við erum sífellt að leita leiða við að gera vefnotkun öruggari fyrir þig. Áður var það þannig að hvaða vefsvæði sem var gat birt kvaðningu um að þú bættir viðbót við vafrann. Í nýjustu útgáfum Google Chrome þarf notandinn að taka sérstaklega fram að Chrome eigi að setja upp viðbætur með því að bæta þeim við í gegnum síðuna Viðbætur. <ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Taka úr lás</translation>
 <translation id="912419004897138677">Kóðari</translation>
 <translation id="9129931661813833980">Festa möppu</translation>
 <translation id="9130775360844693113">Meðlimir „<ph name="DESTINATION_NAME" />“ fá aðgang að þessum atriðum.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_it.xtb b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
index 7f74a47..50e9f48 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_it.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
@@ -513,6 +513,7 @@
 <translation id="6629841649550503054">Backup di tutti gli elementi su <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> completato.</translation>
 <translation id="6643016212128521049">Cancella</translation>
 <translation id="6650726141019353908">Farfalla rosa</translation>
+<translation id="6657585470893396449">Password</translation>
 <translation id="6710213216561001401">Indietro</translation>
 <translation id="6718273304615422081">Compressione...</translation>
 <translation id="6751256176799620176">1 cartella selezionata</translation>
@@ -725,6 +726,7 @@
 <translation id="9065203028668620118">Modifica</translation>
 <translation id="9099674669267916096">Numero di pagine</translation>
 <translation id="9110990317705400362">Cerchiamo costantemente nuovi modi per rendere più sicura la navigazione. In passato, qualsiasi sito web poteva chiederti di aggiungere un'estensione nel browser. Nelle ultime versioni di Google Chrome, devi indicare esplicitamente a Chrome di voler installare le estensioni aggiungendole tramite la pagina Estensioni. <ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Sblocca</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Blocca cartella</translation>
 <translation id="9130775360844693113">I membri di "<ph name="DESTINATION_NAME" />" avranno accesso a questi elementi.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
index fff92426..63ef16f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">‏הכל מגובה ב-<ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">ניקוי</translation>
 <translation id="6650726141019353908">פרפר ורוד</translation>
+<translation id="6657585470893396449">סיסמה</translation>
 <translation id="6710213216561001401">הקודם</translation>
 <translation id="6718273304615422081">דוחס...</translation>
 <translation id="6751256176799620176">תיקייה אחת נבחרה</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">עריכה</translation>
 <translation id="9099674669267916096">מספר עמודים</translation>
 <translation id="9110990317705400362">‏אנחנו מחפשים כל הזמן דרכים לגלישה בטוחה יותר. בעבר, כל אתר יכול היה להציע לך להוסיף תוסף לדפדפן. בגרסאות האחרונות של Google Chrome, עליך לציין באופן מפורש ל-Chrome שברצונך להתקין תוספים אלה על-ידי הוספתם דרך הדף 'תוספים'. <ph name="BEGIN_LINK" />למידע נוסף<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">בטל נעילה</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">הצמדת התיקייה</translation>
 <translation id="9130775360844693113">חברים באחסון השיתופי '<ph name="DESTINATION_NAME" />' יקבלו גישה לפריטים האלה.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
index 3789335d..ffb35c25a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">すべて <ph name="BEGIN_LINK" />Google ドライブ<ph name="END_LINK" />にバックアップ済みです</translation>
 <translation id="6643016212128521049">削除</translation>
 <translation id="6650726141019353908">ピンクの蝶</translation>
+<translation id="6657585470893396449">パスワード</translation>
 <translation id="6710213216561001401">前へ</translation>
 <translation id="6718273304615422081">圧縮しています...</translation>
 <translation id="6751256176799620176">1 個のフォルダを選択しました</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">編集</translation>
 <translation id="9099674669267916096">ページ数</translation>
 <translation id="9110990317705400362">Google では、より安全にウェブを閲覧できる方法を常に追求しています。以前は、どのウェブサイトでも、ブラウザに拡張機能を追加するように指示することができました。Google Chrome の最新バージョンでは、ユーザーのインストールの意思をより明確に確認するため、拡張機能の追加は拡張機能ページで行うこととなりました。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ロック解除</translation>
 <translation id="912419004897138677">コーデック</translation>
 <translation id="9129931661813833980">フォルダを固定</translation>
 <translation id="9130775360844693113">「<ph name="DESTINATION_NAME" />」のメンバーがこれらのアイテムにアクセスできるようになります。</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
index dcc7b10..b0a748f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ეს საქაღალდე გაზიარებულია Windows-თან</translation>
 <translation id="4487088045714738411">ბელგიური კლავიატურა</translation>
 <translation id="4522570452068850558">დეტალები</translation>
+<translation id="4542387084127299777">„<ph name="PATH" />“ ვერ გაიხსნა</translation>
 <translation id="4552678318981539154">მეტი მეხსიერების ყიდვა</translation>
 <translation id="4559767610552730302">ბოკე</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ფაილი</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">ყველაფრის სარეზერვო ასლი შენახულია <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />-ში</translation>
 <translation id="6643016212128521049">გასუფთავება</translation>
 <translation id="6650726141019353908">ვარდისფერი პეპელა</translation>
+<translation id="6657585470893396449">პაროლი</translation>
 <translation id="6710213216561001401">წინა</translation>
 <translation id="6718273304615422081">დაარქივება…</translation>
 <translation id="6751256176799620176">არჩეულია 1 საქაღალდე</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">რედაქტირება</translation>
 <translation id="9099674669267916096">გვერდების რაოდენობა</translation>
 <translation id="9110990317705400362">ჩვენ მუდამ ვზრუნავთ იმაზე, თუ როგორ გავზარდოთ ჩვენი ბრაუზერის უსაფრთხოება. ადრე ნებისმიერ საიტს შეეძლო თქვენთვის ბრაუზერში გაფართოების დამატების შემოთავაზება. Google Chrome-ის უახლეს ვერსიებში პირდაპირ უნდა მიუთითოთ Chrome-ს, რომ გსურთ გაფართოების დაინსტალირება, გაფართოების გევრდზე მისი დამატების გზით. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">განბლოკვა</translation>
 <translation id="912419004897138677">კოდეკი</translation>
 <translation id="9129931661813833980">საქაღალდის ჩამაგრება</translation>
 <translation id="9130775360844693113">„<ph name="DESTINATION_NAME" />“-ის წევრები მიიღებენ წვდომას ამ ერთეულებზე.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
index 722e9ab..0f953aa 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Бұл қалта Windows арқылы бөлісілді.</translation>
 <translation id="4487088045714738411">Бельгиялық пернетақта</translation>
 <translation id="4522570452068850558">Мәліметтер</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" ашылмайды.</translation>
 <translation id="4552678318981539154">Көбірек сақтау орнын сатып алу</translation>
 <translation id="4559767610552730302">Боке</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> файлы</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> ішінде сақтық көшірмесі жасалды!</translation>
 <translation id="6643016212128521049">Тазалау</translation>
 <translation id="6650726141019353908">Қызғылт көбелек</translation>
+<translation id="6657585470893396449">Құпия сөз</translation>
 <translation id="6710213216561001401">Алдыңғы</translation>
 <translation id="6718273304615422081">Қысылуда…</translation>
 <translation id="6751256176799620176">1 қалта таңдалды</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">Өзгерту</translation>
 <translation id="9099674669267916096">Бет саны</translation>
 <translation id="9110990317705400362">Біз интернет шолуды барынша қауіпсіз ету жолдарын іздеуден жалықпаймыз. Бұрын кез келген сайт браузеріңізге кеңейтім қосу ұсынысын жасай алатын болса, Google Chrome соңғы нұсқасында енді кеңейтімдерді "Кеңейтімдер" бетіне кіріп қана орната аласыз. <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Құлпын ашу</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Қалтаны бекіту</translation>
 <translation id="9130775360844693113">"<ph name="DESTINATION_NAME" />" мүшелері бұл файлдарға кіру рұқсатын алады.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_km.xtb b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
index 5ea3201..cd2bd74 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_km.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ថតនេះ​ត្រូវបានចែករំលែក​ជាមួយ Windows</translation>
 <translation id="4487088045714738411">ក្តារចុចបែលហ្សិុក</translation>
 <translation id="4522570452068850558">ព័ត៌មានលំអិត</translation>
+<translation id="4542387084127299777">មិនអាច​បើក "<ph name="PATH" />" បានទេ</translation>
 <translation id="4552678318981539154">ទិន្នន័យចន្លោះផ្ទុ</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">ឯកសារ <ph name="FILE_TYPE" /></translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">បានបម្រុងទុកទៅក្នុង <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" />អស់ហើយ</translation>
 <translation id="6643016212128521049">ជម្រះ</translation>
 <translation id="6650726141019353908">មេអំបៅ​ពណ៌​ផ្កាឈូក</translation>
+<translation id="6657585470893396449">ពាក្យសម្ងាត់</translation>
 <translation id="6710213216561001401">មុន</translation>
 <translation id="6718273304615422081">កំពុងបង្រួម...</translation>
 <translation id="6751256176799620176">បានជ្រើសថតឯកសារ 1</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">កែប្រែ</translation>
 <translation id="9099674669267916096">ចំនួន​ទំព័រ</translation>
 <translation id="9110990317705400362">យើងតែងតែស្វែងរកមធ្យោបាយដើម្បីធ្វើឲ្យការរុករករបស់អ្នកមានសុវត្ថិភាពជាងមុនជានិច្ច។ កាលពីមុន គេហទំព័រទាំងឡាយអាចជម្រុញអ្នកឲ្យបន្ថែមកម្មវិធីបន្ថែមទៅក្នុងកម្មវិធីរុករករបស់អ្នក។ នៅក្នុងកំណែចុងក្រោយនៃ Google Chrome អ្នកត្រូវប្រាប់ Chrome ឲ្យច្បាស់ថាអ្នកចង់តំឡើងកម្មវិធីទាំងនេះ ដោយការបន្ថែមពួកវាតាមរយៈទំព័រកម្មវិធីបន្ថែម។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ដោះសោរ</translation>
 <translation id="912419004897138677">កូឌិក</translation>
 <translation id="9129931661813833980">ខ្ទាស់ថត</translation>
 <translation id="9130775360844693113">សមាជិក​របស់ '<ph name="DESTINATION_NAME" />' នឹងទទួល​បានសិទិ្ធ​ចូលប្រើ​ធាតុទាំង​នេះ។</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index 17089f5..9f8e9f56 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -298,6 +298,7 @@
 <translation id="4481711095103932593">ಈ ಫೋಲ್ಡರ್ ಅನ್ನು Windows ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ</translation>
 <translation id="4487088045714738411">ಬೆಲ್ಜಿಯನ್ ಕೀಬೋರ್ಡ್</translation>
 <translation id="4522570452068850558">ವಿವರಗಳು</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="4552678318981539154">ಇನ್ನಷ್ಟು ಸಂಗ್ರಹಣೆಯನ್ನು ಖರೀದಿಸಿ</translation>
 <translation id="4559767610552730302">ಬೊಕೆ</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ಫೈಲ್</translation>
@@ -510,6 +511,7 @@
 <translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google ಡ್ರೈವ್<ph name="END_LINK" /> ಗೆ ಎಲ್ಲವನ್ನೂ ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗಿದೆ!</translation>
 <translation id="6643016212128521049">ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="6650726141019353908">ಗುಲಾಬಿ ಬಣ್ಣದ ಚಿಟ್ಟೆ</translation>
+<translation id="6657585470893396449">ಪಾಸ್‌ವರ್ಡ್</translation>
 <translation id="6710213216561001401">ಹಿಂದೆ</translation>
 <translation id="6718273304615422081">ಜಿಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="6751256176799620176">1 ಫೋಲ್ಡರ್ ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ</translation>
@@ -714,6 +716,7 @@
 <translation id="9065203028668620118">ಎಡಿಟ್</translation>
 <translation id="9099674669267916096">ಪುಟ ಎಣಿಕೆ</translation>
 <translation id="9110990317705400362">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ನಾವು ನಿರಂತರವಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿರುತ್ತೇವೆ. ಹಿಂದೆ, ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಯಾವುದೇ ವೆಬ್‌ಸೈಟ್‌‌ ಕಾರ್ಯನಿರ್ವಹಿಸಿರಬಹುದು. ಇತ್ತೀಚಿನ Google Chrome ಆವೃತ್ತಿಗಳಲ್ಲಿ, ವಿಸ್ತರಣೆಗಳ ಪುಟದಿಂದ ಅವುಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುವುದಾಗಿ ನೀವು Chrome ಗೆ ಸ್ಪಷ್ಟವಾಗಿ ತಿಳಿಸಬೇಕು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ಅನ್‌ಲಾಕ್</translation>
 <translation id="912419004897138677">ಕೋಡೆಕ್</translation>
 <translation id="9129931661813833980">ಫೋಲ್ಡರ್ ಅನ್ನು ಪಿನ್ ಮಾಡಿ</translation>
 <translation id="9130775360844693113">ಈ ಐಟಂಗಳಿಗೆ '<ph name="DESTINATION_NAME" />' ನ ಸದಸ್ಯರು ಪ್ರವೇಶ ಪಡೆದುಕೊಳ್ಳುವರು.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
index 28b542b..7d4ba4c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Windows와 공유된 폴더입니다.</translation>
 <translation id="4487088045714738411">벨기에어 키보드</translation>
 <translation id="4522570452068850558">세부정보</translation>
+<translation id="4542387084127299777">'<ph name="PATH" />' 파일을 열 수 없습니다.</translation>
 <translation id="4552678318981539154">추가 저장용량 구입</translation>
 <translation id="4559767610552730302">흐리게 처리</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 파일</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">모두 <ph name="BEGIN_LINK" />Google 드라이브<ph name="END_LINK" />에 백업했습니다.</translation>
 <translation id="6643016212128521049">삭제</translation>
 <translation id="6650726141019353908">분홍 나비</translation>
+<translation id="6657585470893396449">비밀번호</translation>
 <translation id="6710213216561001401">이전</translation>
 <translation id="6718273304615422081">압축 중...</translation>
 <translation id="6751256176799620176">폴더 1개 선택됨</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">수정</translation>
 <translation id="9099674669267916096">페이지 수</translation>
 <translation id="9110990317705400362">Google은 더 안전한 인터넷 사용 방법을 끊임없이 모색하고 있습니다. 이전에는 브라우저에 확장 프로그램을 추가하라는 메시지가 어느 웹사이트에서나 표시되었습니다. 하지만 Chrome의 최신 버전에서는 확장 프로그램 페이지를 통해 확장 프로그램을 추가함으로써 설치를 원한다는 사실을 Chrome에 명시적으로 알려야 합니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">잠금 해제</translation>
 <translation id="912419004897138677">코덱</translation>
 <translation id="9129931661813833980">폴더 고정</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' 멤버에게 이 항목에 액세스할 수 있는 권한이 부여됩니다.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
index a5e3a1d8..6fa79de0 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Бул папка Windows менен бөлүшүлдү</translation>
 <translation id="4487088045714738411">Белгийче баскычтоп</translation>
 <translation id="4522570452068850558">Чоо-жайлары</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" ачылган жок</translation>
 <translation id="4552678318981539154">Көбүрөөк сактоо мейкиндигин сатып алыңыз…</translation>
 <translation id="4559767610552730302">Боке</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> файл</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Бардык нерселердин камдык көчүрмөсү <ph name="BEGIN_LINK" />Google Drive'га<ph name="END_LINK" /> сакталды!</translation>
 <translation id="6643016212128521049">Тазалоо</translation>
 <translation id="6650726141019353908">Кызгылтым көпөлөк</translation>
+<translation id="6657585470893396449">Сырсөз</translation>
 <translation id="6710213216561001401">Мурунку</translation>
 <translation id="6718273304615422081">Кысылууда…</translation>
 <translation id="6751256176799620176">1 куржун тандалды</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">Түзөтүү</translation>
 <translation id="9099674669267916096">Барактардын саны</translation>
 <translation id="9110990317705400362">Серептөө аракетиңиздин коопсуздугун чыңдоо үчүн болгон аракетибизди жумшап жатабыз. Буга чейин серепчиңизге кеңейтүү кошууну вебсайттар сунуштап турушчу. Ал эми Google Chrome'дун эң акыркы версияларында керектүү кеңейтүүлөрдү Кеңейтүүлөр бетинен кошуп, орното турганыңызды Chrome'го өзүңүз ачык билдиресиз. <ph name="BEGIN_LINK" />Көбүрөөк билүү<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Кулпуну ачуу</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Папканы кадап коюу</translation>
 <translation id="9130775360844693113">"<ph name="DESTINATION_NAME" />" жалпы дискинин колдонуучулары бул файлдарды колдоно алышат.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
index 48906369..3d95bbe 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ມີການແບ່ງປັນໂຟນເດີນີ້ກັບ Windows</translation>
 <translation id="4487088045714738411">ຄີບອດພາສາແບນຊິກ</translation>
 <translation id="4522570452068850558">ລາຍ​ລະ​ອຽດ</translation>
+<translation id="4542387084127299777">ບໍ່ສາມາດເປີດ "<ph name="PATH" />" ໄດ້</translation>
 <translation id="4552678318981539154">ຊື້​ບ່ອນເກັບຂໍ້ມູນເພີ່ມເຕີມ</translation>
 <translation id="4559767610552730302">ຮູບໜ້າແຈ້ງຫຼັງມົວ</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ໄຟລ​໌</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">ທັງ​ໝົດ​ຖືກ​ສຳ​ຮອງ​ໄປ​ໃສ່ <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /> ແລ້ວ</translation>
 <translation id="6643016212128521049">ລຶບ</translation>
 <translation id="6650726141019353908">ແມງກະເບື້ອສີບົວ</translation>
+<translation id="6657585470893396449">ລະຫັດຜ່ານ</translation>
 <translation id="6710213216561001401">ຜ່ານມາ</translation>
 <translation id="6718273304615422081">ກໍາລັງຊິບ...</translation>
 <translation id="6751256176799620176">ເລືອກ 1 ໂຟນເດີແລ້ວ</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">ແກ້ໄຂ</translation>
 <translation id="9099674669267916096">ຈຳນວນໜ້າ</translation>
 <translation id="9110990317705400362">ພວກເຮົາກໍາລັງຊອກຫາວິທີເຮັດໃຫ້ການທ່ອງເວັບຂອງທ່ານມີຄວາມປອດໄພກ່ວາ​ເກົ່າຢ່າງຕໍ່ເນື່ອງ. ກ່ອນນັ້ນ, ເວັບໄຊທ໌ໃດໜຶ່ງສາມາດເຕືອນໃຫ້ທ່ານເພີມສ່ວນຂະຫຍາຍເຂົ້າໃສ່ບຣາວເຊີຂອງທ່ານ. ຢູ່ໃນ Google Chrome ລຸ້ນຫຼ້າສຸດ, ທ່ານບອກ Chrome ຢ່າງຈະແຈ້ງວ່າ ທ່ານຕ້ອງການຕິດຕັ້ງສ່ວນຂະຫຍາຍນີ້ໂດຍການເພີ່ມພວກມັນຜ່ານໜ້າສ່ວນຂະຫຍາຍ. <ph name="BEGIN_LINK" />ຮຽນຮູ້ເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ປົດລັອກ</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">ປັກໝຸດໂຟນເດີ</translation>
 <translation id="9130775360844693113">ສະມາຊິກຂອງ '<ph name="DESTINATION_NAME" />' ຈະມີການເຂົ້າເຖິງລາຍການເຫຼົ່ານີ້.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
index 7e12323f..1fe4952 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Šis aplankas bendrinamas su „Windows“</translation>
 <translation id="4487088045714738411">Belgiška klaviatūra</translation>
 <translation id="4522570452068850558">Išsami informacija</translation>
+<translation id="4542387084127299777">Nepavyko atidaryti „<ph name="PATH" />“</translation>
 <translation id="4552678318981539154">Įsigyti daugiau atminties</translation>
 <translation id="4559767610552730302">„Bokeh“ efektas</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> failas</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Visų failų atsarginės kopijos sukurtos <ph name="BEGIN_LINK" />„Google“ diske!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Išvalyti</translation>
 <translation id="6650726141019353908">Rožinis drugelis</translation>
+<translation id="6657585470893396449">Slaptažodis</translation>
 <translation id="6710213216561001401">Ankstesnis</translation>
 <translation id="6718273304615422081">Glaudinama...</translation>
 <translation id="6751256176799620176">Pasirinktas 1 aplankas</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Redaguoti</translation>
 <translation id="9099674669267916096">Puslapių skaičius</translation>
 <translation id="9110990317705400362">Nuolat stengiamės padaryti naršymą saugesnį. Anksčiau bet kurioje svetainėje buvo leidžiama raginti jus pridėti plėtinį prie naršyklės. Naudodami naujausių versijų „Google Chrome“, privalote aiškiai nurodyti „Chrome“, kad norite įdiegti šiuos plėtinius, pridėję juos „Plėtinių“ puslapyje. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Atrakinti</translation>
 <translation id="912419004897138677">Kodekas</translation>
 <translation id="9129931661813833980">Prisegti aplanką</translation>
 <translation id="9130775360844693113">„<ph name="DESTINATION_NAME" />“ nariai galės pasiekti šiuos elementus.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
index 14cc43b4..7d379bcf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_lv.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Visi faili ir dublēti <ph name="BEGIN_LINK" />Google diskā<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Notīrīt</translation>
 <translation id="6650726141019353908">Rozā tauriņš</translation>
+<translation id="6657585470893396449">Parole</translation>
 <translation id="6710213216561001401">Iepriekšējais</translation>
 <translation id="6718273304615422081">Notiek tilpsaspiešana...</translation>
 <translation id="6751256176799620176">Atlasīta 1 mape</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Labot</translation>
 <translation id="9099674669267916096">Lappušu skaits</translation>
 <translation id="9110990317705400362">Mēs arvien meklējam veidus, kā papildus aizsargāt pārlūkošanu. Iepriekš jebkura vietne varēja aicināt pievienot paplašinājumu pārlūkā. Jaunākajās Google Chrome versijās lapā “Paplašinājumi” ir precīzi jānorāda, ka vēlaties instalēt šos paplašinājumus. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
+<translation id="9111102763498581341">Atbloķēt</translation>
 <translation id="912419004897138677">Kodeks</translation>
 <translation id="9129931661813833980">Piespraust mapi</translation>
 <translation id="9130775360844693113">“<ph name="DESTINATION_NAME" />” dalībnieki iegūs piekļuvi šiem vienumiem.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
index 705b53b..b136a18 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mk.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Сѐ е ископирано на <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Исчисти</translation>
 <translation id="6650726141019353908">Розова пеперутка</translation>
+<translation id="6657585470893396449">Лозинка</translation>
 <translation id="6710213216561001401">Претходно</translation>
 <translation id="6718273304615422081">Се пакува...</translation>
 <translation id="6751256176799620176">Избрана е 1 папка</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Измени</translation>
 <translation id="9099674669267916096">Број на страници</translation>
 <translation id="9110990317705400362">Ние постојано бараме начини да го направиме вашето прелистување побезбедно. Порано, која било веб-локација можеше да побара од вас да додадете наставка на прелистувачот. Во најновите верзии на Google Chrome, мора јасно да му кажете на Chrome дека сакате да ги инсталирате овие наставки со нивно додавање преку страницата Наставки. <ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Отклучи</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Прикачи папка</translation>
 <translation id="9130775360844693113">Членовите на „<ph name="DESTINATION_NAME" />“ ќе добијат пристап до ставкиве.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index 0a5f9746..69b1514f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ഈ ഫോൾഡർ Windows-മായി പങ്കിട്ടു</translation>
 <translation id="4487088045714738411">ബല്‍ജിയന്‍ കീബോര്‍ഡ്</translation>
 <translation id="4522570452068850558">വിശദാംശങ്ങൾ‌</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" തുറക്കാനായില്ല</translation>
 <translation id="4552678318981539154">കൂടുതൽ സംഭരണം വാങ്ങുക</translation>
 <translation id="4559767610552730302">ബൊക്കെ</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ഫയൽ</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">എല്ലാം <ph name="BEGIN_LINK" />Google ഡ്രൈവിലേക്ക്<ph name="END_LINK" /> ബാക്കപ്പുചെയ്‌തു!</translation>
 <translation id="6643016212128521049">മായ്‌ക്കുക</translation>
 <translation id="6650726141019353908">പിങ്ക് ചിത്രശലഭം</translation>
+<translation id="6657585470893396449">പാസ്‌വേഡ്</translation>
 <translation id="6710213216561001401">മുമ്പത്തേത്</translation>
 <translation id="6718273304615422081">Zip ചെയ്യുന്നു...</translation>
 <translation id="6751256176799620176">ഒരു ഫോൾഡർ തിരഞ്ഞെടുത്തു</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="9099674669267916096">പേജിന്റെ എണ്ണം</translation>
 <translation id="9110990317705400362">നിങ്ങളുടെ ബ്രൗസിംഗ് സുരക്ഷിതമാക്കുന്നതിനുള്ള മാർഗങ്ങൾക്കായി ഞങ്ങൾ സ്ഥിരമായി തിരയുന്നു. മുമ്പ്, എല്ലാ വെബ്‌സൈറ്റും നിങ്ങളുടെ ബ്രൗസറിൽ ഒരു വിപുലീകരണം ചേർക്കുന്നതിന് ആവശ്യപ്പെടുമായിരുന്നു. Google Chrome-ന്റെ ഏറ്റവും പുതിയ പതിപ്പുകളിൽ, വിപുലീകരണങ്ങളുടെ പേജ് മുഖേന ഈ വിപുലീകരണങ്ങൾ ചേർത്ത് അവ ഇൻസ്റ്റാൾ ചെയ്യണമെന്ന് നിങ്ങൾ Chrome-നോട് സ്പഷ്‌ടമായി പറയേണ്ടതുണ്ട്. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">അണ്‍ലോക്ക് ചെയ്യുക</translation>
 <translation id="912419004897138677">കൊഡെക്</translation>
 <translation id="9129931661813833980">ഫോൾഡർ പിൻ ചെയ്യൂ</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' എന്നതിലെ അംഗങ്ങൾ ഈ ഇനങ്ങളിലേക്ക് ആക്‌സസ് ‌കരസ്ഥമാക്കും.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
index 286c66c..2fb3eb55 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mn.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Энэ фолдерыг Windows-тай хуваалцсан байна</translation>
 <translation id="4487088045714738411">Бельги хэлний гар</translation>
 <translation id="4522570452068850558">дэлгэрэнгүй мэдээлэл</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />"-г нээх боломжгүй байна</translation>
 <translation id="4552678318981539154">Нэмэлт мэдээлэл хадгах зай худалдан авах</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> файл</translation>
@@ -511,6 +512,7 @@
 <translation id="6629841649550503054">Бүх мэдээллийг <ph name="BEGIN_LINK" />Google Drive-д хадгална уу<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">Цэвэрлэх</translation>
 <translation id="6650726141019353908">Ягаан эрвээхий</translation>
+<translation id="6657585470893396449">Нууц үг</translation>
 <translation id="6710213216561001401">Өмнөх</translation>
 <translation id="6718273304615422081">Зип болгож байна...</translation>
 <translation id="6751256176799620176">1 фолдер сонгосон</translation>
@@ -723,6 +725,7 @@
 <translation id="9065203028668620118">Засварлах</translation>
 <translation id="9099674669267916096">Хуудасны тоо</translation>
 <translation id="9110990317705400362">Бид таны вэб хөтчийг илүү аюулгүй болгох аргыг үргэлж хайж байдаг. Өмнө нь ямар ч вэб сайт таны вэб хөтчид өргөтгөл нэмэхийг таниас хүсэж болдог байсан. Google Chrome-ийн сүүлийн үеийн хувилбаруудын тусламжтай та эдгээр өргөтгөлүүдийг Өргөтгөлийн хуудсанд нэмсэнээр суурьлуулж болох сонголтыг Chrome-д хийж болно. <ph name="BEGIN_LINK" />Дэлгэрэнгүй мэдээллийг<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Нээх</translation>
 <translation id="912419004897138677">Кодлогч</translation>
 <translation id="9129931661813833980">Фолдерийг тогтоох</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />'-н гишүүд эдгээр зүйлд хандах эрхтэй болно.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
index b277b20..7ce8b117 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">हे फोल्डर Windows सोबत शेअर केलेले आहे</translation>
 <translation id="4487088045714738411">बेल्जिअन कीबोर्ड</translation>
 <translation id="4522570452068850558">तपशील</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" उघडता आले नाही</translation>
 <translation id="4552678318981539154">अधिक स्टोरेज खरेदी करा</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फाइल</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google ड्राइव्ह!<ph name="END_LINK" /> वर सर्व बॅकअप घेतला</translation>
 <translation id="6643016212128521049">साफ करा</translation>
 <translation id="6650726141019353908">गुलाबी फुलपाखरू</translation>
+<translation id="6657585470893396449">पासवर्ड</translation>
 <translation id="6710213216561001401">मागील</translation>
 <translation id="6718273304615422081">झिप करत आहे...</translation>
 <translation id="6751256176799620176">1 फोल्डर निवडले</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">संपादन</translation>
 <translation id="9099674669267916096">पेज गणना</translation>
 <translation id="9110990317705400362">आम्ही तुमचे ब्राउझिंग सुरक्षित करण्यासाठी सातत्याने मार्ग शोधत आहोत. मागे, तुमच्या ब्राउझरमध्ये एक्स्टेंशन जोडण्यासाठी कोणतीही वेबसाइट तुम्हाला सूचित करू शकत होती. Google Chrome च्या नवीनतम आवृत्तीमध्ये, एक्स्टेंशन पेजद्वारे ते जोडून हे एक्स्टेंशन तुम्ही इंस्टॉल करू इच्छित आहात हे तुम्ही Chrome ला स्पष्टपणे सांगणे आवश्यक आहे. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">अनलॉक करा</translation>
 <translation id="912419004897138677">कोडेक</translation>
 <translation id="9129931661813833980">फोल्डर पिन करा</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' चे सदस्य या आयटमचा ॲक्सेस मिळवतील.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
index a4cbe78..b95ace2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Folder ini dikongsi dengan Windows</translation>
 <translation id="4487088045714738411">Papan Kekunci Belgium</translation>
 <translation id="4522570452068850558">Butiran</translation>
+<translation id="4542387084127299777">Tidak dapat membuka "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Beli lagi storan</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Fail <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Semua telah disandarkan pada <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Kosongkan</translation>
 <translation id="6650726141019353908">Rama-rama merah jambu</translation>
+<translation id="6657585470893396449">Kata laluan</translation>
 <translation id="6710213216561001401">Sebelumnya</translation>
 <translation id="6718273304615422081">Mengezip...</translation>
 <translation id="6751256176799620176">1 folder dipilih</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Edit</translation>
 <translation id="9099674669267916096">Kiraan halaman</translation>
 <translation id="9110990317705400362">Kami sentiasa mencari cara-cara untuk membuat penyemakan imbas anda lebih selamat. Sebelum ini, mana-mana laman web boleh menggesa anda untuk menambah sambungan ke dalam penyemak imbas anda. Dalam versi terbaharu Google Chrome, anda mesti memberitahu Chrome dengan jelas bahawa anda mahu memasang sambungan ini dengan menambahnya melalui halaman Sambungan. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Buka kunci</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Semat folder</translation>
 <translation id="9130775360844693113">Ahli '<ph name="DESTINATION_NAME" />' akan mendapat akses ke item ini.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_my.xtb b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
index 410fdc9..dea85e2 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_my.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_my.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">အားလုံးကို <ph name="BEGIN_LINK" /> Google Drive<ph name="END_LINK" /> သို့အရံသိမ်းဆည်းမည်!</translation>
 <translation id="6643016212128521049">ရှင်းရန်</translation>
 <translation id="6650726141019353908">ပန်းရောင်လိပ်ပြာ</translation>
+<translation id="6657585470893396449">စကားဝှက်</translation>
 <translation id="6710213216561001401">အရင်</translation>
 <translation id="6718273304615422081">ဇစ်ပိတ်နေ...</translation>
 <translation id="6751256176799620176">ဖိုင်တွဲ ၁ ခု ရွေးချယ်ထားသည်</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">ပြင်ဆင်ရန်</translation>
 <translation id="9099674669267916096">စာမျက်နှာအရေအတွက်</translation>
 <translation id="9110990317705400362">သင်၏ ဘရောင်ဇာ သုံးမှု ပိုလုံခြုုံလာရေး နည်းလမ်းများကို ကျွန်ုပ်တို့ တချိန်လုံး ရှာကြံနေကြပါသည်။ အရင်တုန်းက၊ ဘယ် ဝက်ဘ်ဆိုက်မဆို သင်၏ ဘရောက်ဇာ ထဲသို့ တိုးချဲ့မှု တစ်ခုခိုကို ထည့်ပေးရန် တိုက်တွန်းခဲ့ပါမည်။ Google Chrome ၏ နောက်ဆုံး ဗားရှင်း ထဲမှာ၊ သင်သည် တိုးချဲ့မှု စာမျက်နှာ ထဲကို ထည့်ပေးခြင်း မှတစ်ဆင့် ထိုတိုးချဲ့မှုများကို ထည့်သွင်းလိုကြောင်း သင်သည် အတိအလင်း ပြောရန် လိုပါသည်။ <ph name="BEGIN_LINK" />ပိုမို လေ့လာရန်<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">သော့ဖွင့်ရန်</translation>
 <translation id="912419004897138677">ကိုးဒက်ခ်</translation>
 <translation id="9129931661813833980">ဖိုင်တွဲကို ပင်ထိုးရန်</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' ၏ အဖွဲ့ဝင်များသည် ဤအရာများကို အသုံးပြုခွင့်ရရှိမည်ဖြစ်သည်။</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
index 96da23e..a58910e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">यो फोल्डर Windows सँग सेयर गरिएको छ</translation>
 <translation id="4487088045714738411">बेल्जियम किबोर्ड</translation>
 <translation id="4522570452068850558">विवरणहरू</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" खोल्न सकिएन</translation>
 <translation id="4552678318981539154">थप भण्डारण खरीद गर्नुहोस्</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> फाइल</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">सबै <ph name="BEGIN_LINK" />Google ड्राइभ<ph name="END_LINK" /> मा जगेडा गरियो!</translation>
 <translation id="6643016212128521049">खालि गर्नुहोस्</translation>
 <translation id="6650726141019353908">गुलाफी पुतली</translation>
+<translation id="6657585470893396449">पासवर्ड</translation>
 <translation id="6710213216561001401">अघिल्लो</translation>
 <translation id="6718273304615422081">जिप गर्दै...</translation>
 <translation id="6751256176799620176">१ फोल्डरलाई चयन गरियो</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">सम्पादन गर्नुहोस</translation>
 <translation id="9099674669267916096">पृष्ठको गणना</translation>
 <translation id="9110990317705400362">हामी लगातार तपाईंको ब्राउजर अझ सुरक्षित बनाउने तरिकाहरू खोजिरहेकाछौं। योभन्दा पहिले, कुनैपनि वेबसाइटले आफ्नो ब्राउजरमा एक्स्टेन्शन थप्न तपाईंलाई प्रेरित गर्न सक्थ्यो। Google Chrome को यो नवीनतम संस्करणमा, तपाईंले तिनीहरूलाई एक्स्टेन्शनहरू भन्ने पृष्ठमा थपेर आफूले ती एक्स्टेन्शनहरू स्थापना गर्न चाहेको कुरा Chrome लाई भन्नैपर्छ। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">अनलक गर्नुहोस्</translation>
 <translation id="912419004897138677">कोडेक</translation>
 <translation id="9129931661813833980">फोल्डर पिन गर्नुहोस्</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' का सदस्यहरूले यी वस्तुहरूको प्रतिलिपिमाथिको पहुँच पाउनुहुनेछ।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
index d2cd298..7e2fc5f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_nl.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Deze map is gedeeld met Windows</translation>
 <translation id="4487088045714738411">Belgisch toetsenbord</translation>
 <translation id="4522570452068850558">Details</translation>
+<translation id="4542387084127299777">Kan '<ph name="PATH" />' niet openen</translation>
 <translation id="4552678318981539154">Meer opslagruimte kopen</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-bestand</translation>
@@ -515,6 +516,7 @@
 <translation id="6629841649550503054">Er is een back-up van alles gemaakt in <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Wissen</translation>
 <translation id="6650726141019353908">Roze vlinder</translation>
+<translation id="6657585470893396449">Wachtwoord</translation>
 <translation id="6710213216561001401">Vorige</translation>
 <translation id="6718273304615422081">Inpakken...</translation>
 <translation id="6751256176799620176">1 map geselecteerd</translation>
@@ -727,6 +729,7 @@
 <translation id="9065203028668620118">Bewerken</translation>
 <translation id="9099674669267916096">Aantal pagina's</translation>
 <translation id="9110990317705400362">We zijn altijd op zoek naar manieren om het surfen veiliger te maken. Vroeger kon elke website je vragen een extensie toe te voegen aan je browser. In de nieuwste versies van Google Chrome moet je Chrome expliciet toestemming geven om deze extensies te installeren door ze toe te voegen via de pagina 'Extensies'. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Ontgrendelen</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Map vastzetten</translation>
 <translation id="9130775360844693113">Leden van '<ph name="DESTINATION_NAME" />' krijgen toegang tot deze items.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_no.xtb b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
index 41adcd9..e9f311c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_no.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Denne mappen deles med Windows</translation>
 <translation id="4487088045714738411">Belgisk tastatur</translation>
 <translation id="4522570452068850558">Detaljer</translation>
+<translation id="4542387084127299777">Kan ikke åpne «<ph name="PATH" />»</translation>
 <translation id="4552678318981539154">Kjøp mer lagringsplass</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-fil</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Alt er sikkerhetskopiert til <ph name="BEGIN_LINK" />Google Disk<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Tøm</translation>
 <translation id="6650726141019353908">Rosa sommerfugl</translation>
+<translation id="6657585470893396449">Passord</translation>
 <translation id="6710213216561001401">Forrige</translation>
 <translation id="6718273304615422081">Zipper ...</translation>
 <translation id="6751256176799620176">1 mappe er valgt</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Endre</translation>
 <translation id="9099674669267916096">Antall sider</translation>
 <translation id="9110990317705400362">Vi jobber kontinuerlig for å gjøre surfingen din tryggere. Tidligere kunne et hvilket som helst nettsted be deg å legge til en utvidelse i nettleseren din. I de nyeste versjonene av Google Chrome må du gi Chrome uttrykkelig beskjed om at du ønsker å installere disse utvidelsene ved å legge dem til via Utvidelser-siden. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Lås opp</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Fest mappe</translation>
 <translation id="9130775360844693113">Medlemmer av «<ph name="DESTINATION_NAME" />» får tilgang til disse elementene.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_or.xtb b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
index b7095ed..c4f36dc 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_or.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
@@ -508,6 +508,7 @@
 <translation id="6629841649550503054"><ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" />ରେ ବ୍ୟାକ୍‍ଅପ୍‌ ନିଆଯାଇଛି</translation>
 <translation id="6643016212128521049">ଖାଲି କରନ୍ତୁ</translation>
 <translation id="6650726141019353908">ଗୋଲାପି ପ୍ରଜାପତି</translation>
+<translation id="6657585470893396449">ପାସ୍‌ୱର୍ଡ</translation>
 <translation id="6710213216561001401">ପୂର୍ବବର୍ତ୍ତୀ</translation>
 <translation id="6718273304615422081">ଜିପ୍ ହେଉଛି...</translation>
 <translation id="6751256176799620176">1ଟି ଫୋଲ୍ଡର୍ ଚୟନ କରାଯାଇଛି</translation>
@@ -720,6 +721,7 @@
 <translation id="9065203028668620118">ସମ୍ପାଦନ</translation>
 <translation id="9099674669267916096">ପୃଷ୍ଠା ସଂଖ୍ୟା</translation>
 <translation id="9110990317705400362">ଆପଣଙ୍କର ବ୍ରାଉଜର୍‌କୁ ସୁରକ୍ଷିତ କରିବାକୁ ଆମେ ନିରିବିଚ୍ଛିନ୍ନ ଭାବରେ ଉପାୟ ଖୋଜୁଛୁ। ପୂର୍ବରୁ, ଯେକୌଣସି ୱେବ୍‌ସାଇଟ୍‍ ଆପଣଙ୍କର ବ୍ରାଉଜର୍‌ରେ ଗୋଟିଏ ଏକ୍ସଟେନ୍‌ସନ୍‌ ଯୋଗ କରିବାକୁ ଆପଣଙ୍କୁ ସଙ୍କେତ ଦେଇଥିଲା। Google Chromeର ନବୀନତମ ସଂସ୍କରଣରେ, ଆପଣଙ୍କୁ ଏକ୍ସଟେନ୍‍ସନ୍‍ ପୃଷ୍ଠା ମାଧ୍ୟମରେ ଏହି ଏକ୍ସଟେନ୍‍ସନ୍‌କୁ ଯୋଗ କରି Chromeକୁ ସ୍ପଷ୍ଟ ଭାବରେ କହିବାକୁ ପଡ଼ିବ ଯେ ଆପଣ ଏହି ଏକ୍ସଟେନ୍‌ସନ୍‌‍ଗୁଡ଼ିକୁ ଇନ୍‍ଷ୍ଟଲ୍‍ କରିବାକୁ ଚାହୁଁଛନ୍ତି। <ph name="BEGIN_LINK" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ଅନ୍‌ଲକ୍ କରନ୍ତୁ</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">ଫୋଲ୍ଡର୍ ପିନ୍ କରନ୍ତୁ</translation>
 <translation id="9130775360844693113"><ph name="DESTINATION_NAME" />ର ସଦସ୍ୟମାନେ ଏହି ଆଇଟମ୍‍ଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିପାରିବେ।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
index 91730ef..7ea53ea 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pa.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ਇਹ ਫੋਲਡਰ Windows ਨਾਲ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ ਹੈ</translation>
 <translation id="4487088045714738411">ਬੈਲਜ਼ੀਅਨ ਕੀ-ਬੋਰਡ</translation>
 <translation id="4522570452068850558">ਵੇਰਵੇ</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ</translation>
 <translation id="4552678318981539154">ਹੋਰ ਸਟੋਰੇਜ ਖਰੀਦੋ</translation>
 <translation id="4559767610552730302">ਬੋਕੇਹ</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ਫਾਈਲ</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">ਸਾਰੇ <ph name="BEGIN_LINK" />Google Drive ਵਿੱਚ ਬੈਕ ਅਪ ਕੀਤੇ ਗਏ!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">ਹਟਾਓ</translation>
 <translation id="6650726141019353908">ਗੁਲਾਬੀ ਤਿਤਲੀ</translation>
+<translation id="6657585470893396449">ਪਾਸਵਰਡ</translation>
 <translation id="6710213216561001401">ਪਿਛਲਾ</translation>
 <translation id="6718273304615422081">ਜ਼ਿਪ ਕਰ ਰਿਹਾ ਹੈ...</translation>
 <translation id="6751256176799620176">1 ਫੋਲਡਰ ਚੁਣਿਆ ਗਿਆ</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">ਸੰਪਾਦਿਤ ਕਰੋ</translation>
 <translation id="9099674669267916096">ਪੰਨਾ ਗਿਣਤੀ</translation>
 <translation id="9110990317705400362">ਅਸੀਂ ਲਗਾਤਾਰ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਨੂੰ ਵੱਧ ਸੁਰੱਖਿਅਤ ਬਣਾਉਣ ਦੇ ਤਰੀਕੇ ਖੋਜਦੇ ਰਹਿੰਦੇ ਹਾਂ। ਪਹਿਲਾਂ, ਕੋਈ ਵੀ ਵੈੱਬਸਾਈਟ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਕਹਿ ਸਕਦੀ ਸੀ। Google Chrome ਦੇ ਨਵੇਂ ਵਰਜਨਾਂ ਵਿੱਚ, ਤੁਹਾਨੂੰ Chrome ਨੂੰ ਸਪਸ਼ਟ ਰੂਪ ਨਾਲ ਦੱਸਣਾ ਪਵੇਗਾ ਕਿ ਤੁਸੀਂ ਇਹਨਾਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਐਕਸਟੈਂਸ਼ਨਾਂ ਪੰਨੇ ਰਾਹੀਂ ਸ਼ਾਮਲ ਕਰਕੇ ਇਹਨਾਂ ਨੂੰ ਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ਅਣਲਾਕ ਕਰੋ</translation>
 <translation id="912419004897138677">ਕੋਡੈਕ</translation>
 <translation id="9129931661813833980">ਫੋਲਡਰ ਨੂੰ ਪਿੰਨ ਕਰੋ</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' ਦੇ ਮੈਂਬਰ ਇਹਨਾਂ ਆਈਟਮਾਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨਗੇ।</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
index 975bb2b..d128f3f4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pl.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Kopie zapasowe wszystkich materiałów zostały utworzone na <ph name="BEGIN_LINK" />Dysku Google<ph name="END_LINK" />.</translation>
 <translation id="6643016212128521049">Wyczyść</translation>
 <translation id="6650726141019353908">Różowy motyl</translation>
+<translation id="6657585470893396449">Hasło</translation>
 <translation id="6710213216561001401">Wstecz</translation>
 <translation id="6718273304615422081">Pakuję...</translation>
 <translation id="6751256176799620176">Wybrano jeden folder</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Edytuj</translation>
 <translation id="9099674669267916096">Liczba stron</translation>
 <translation id="9110990317705400362">Stale szukamy rozwiązań, dzięki którym przeglądanie internetu będzie bezpieczniejsze. Wcześniej każda strona mogła poprosić o dodanie rozszerzenia do przeglądarki. W nowszych wersjach Google Chrome musisz dodać rozszerzenie na stronie Rozszerzenia, by wyraźnie poinformować przeglądarkę, że chcesz je zainstalować. <ph name="BEGIN_LINK" />Więcej informacji<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Odblokuj</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Przypnij folder</translation>
 <translation id="9130775360844693113">Osoby z uprawnieniami do: „<ph name="DESTINATION_NAME" />” uzyskają dostęp do tych elementów.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
index ee235971..8e0e1a1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Backup completo para o <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Limpar</translation>
 <translation id="6650726141019353908">Borboleta rosa</translation>
+<translation id="6657585470893396449">Senha</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">Compactando...</translation>
 <translation id="6751256176799620176">1 pasta selecionada</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Editar</translation>
 <translation id="9099674669267916096">Contagem de páginas</translation>
 <translation id="9110990317705400362">Estamos constantemente à procura de maneiras para tornar sua navegação mais segura. Anteriormente, qualquer website podia pedir que você adicionasse uma extensão no seu navegador. Nas versões mais recentes do Google Chrome, você deve dizer explicitamente ao Chrome que deseja instalar essas extensões, adicionando-as através da página de extensões. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloquear</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Fixar pasta</translation>
 <translation id="9130775360844693113">Membros de '<ph name="DESTINATION_NAME" />' terão acesso a esses itens.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
index ac8f97c..825660a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Foi feita uma cópia de segurança de todos os ficheiros no <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Limpar</translation>
 <translation id="6650726141019353908">Borboleta cor-de-rosa</translation>
+<translation id="6657585470893396449">Palavra-passe</translation>
 <translation id="6710213216561001401">Anterior</translation>
 <translation id="6718273304615422081">A comprimir...</translation>
 <translation id="6751256176799620176">1 pasta selecionada</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Editar</translation>
 <translation id="9099674669267916096">Contagem de páginas</translation>
 <translation id="9110990317705400362">Estamos constantemente a procurar formas de tornar a navegação mais segura. Anteriormente, qualquer Website poderia pedir-lhe para adicionar uma extensão ao navegador. Nas versões mais recentes do Google Chrome, tem de definir explicitamente no Chrome que pretende instalar estas extensões adicionando-as através da página Extensões. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Desbloquear</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Fixar pasta</translation>
 <translation id="9130775360844693113">Os membros de "<ph name="DESTINATION_NAME" />" irão obter acesso a estes itens.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
index f3ff3f9c..7672d91 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Windows are acces la acest dosar</translation>
 <translation id="4487088045714738411">Tastatură bulgară</translation>
 <translation id="4522570452068850558">Detalii</translation>
+<translation id="4542387084127299777">Nu se poate deschide „<ph name="PATH" />”</translation>
 <translation id="4552678318981539154">Cumpărați mai mult spațiu de stocare</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984">Fișier <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Toate fișierele cu backup pe <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Șterge</translation>
 <translation id="6650726141019353908">Fluture roz</translation>
+<translation id="6657585470893396449">Parolă</translation>
 <translation id="6710213216561001401">Înapoi</translation>
 <translation id="6718273304615422081">Se arhivează...</translation>
 <translation id="6751256176799620176">Un dosar selectat</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Editează</translation>
 <translation id="9099674669267916096">Numărul de pagini</translation>
 <translation id="9110990317705400362">Google caută mereu modalități de a face navigarea mai sigură. Înainte, orice site îți putea solicita să adaugi o extensie în browser. În ultimele versiuni Google Chrome, trebuie să indici explicit că dorești să instalezi aceste extensii, adăugându-le în pagina Extensii. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Deblochează</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Fixează dosarul</translation>
 <translation id="9130775360844693113">Membrii „<ph name="DESTINATION_NAME" />” vor obține acces la aceste articole.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
index 35876c13..da27ae2b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Данные сохранены на <ph name="BEGIN_LINK" />Google Диске<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Удалить</translation>
 <translation id="6650726141019353908">Розовая бабочка</translation>
+<translation id="6657585470893396449">Пароль</translation>
 <translation id="6710213216561001401">Назад</translation>
 <translation id="6718273304615422081">Архивирование…</translation>
 <translation id="6751256176799620176">1 папка выбрана</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Изменить</translation>
 <translation id="9099674669267916096">Количество страниц</translation>
 <translation id="9110990317705400362">Мы постоянно работаем над тем, чтобы сделать наш браузер ещё более защищенным. Раньше любой сайт мог предложить вам установить расширение, что было небезопасно. В последних версиях Google Chrome добавить расширения можно только на странице "Расширения". <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Разблокировать</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Закрепить папку</translation>
 <translation id="9130775360844693113">Пользователи общего диска "<ph name="DESTINATION_NAME" />" получат доступ к этим объектам.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_si.xtb b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
index 286ff3c..3cda688 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_si.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">මෙම ෆෝල්ඩරය Windows සමඟ බෙදා ගෙන ඇත</translation>
 <translation id="4487088045714738411">බෙල්ජියානු යතුරු පුවරුව</translation>
 <translation id="4522570452068850558">විස්තර</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" විවෘත කළ නොහැකිය</translation>
 <translation id="4552678318981539154">තවත් ගබඩාව මිල දී ගන්න</translation>
 <translation id="4559767610552730302">බොකෙහ්</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ගොනුව</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">සියල්ල <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> වෙත උපස්ථ කරන ලදි!</translation>
 <translation id="6643016212128521049">මකන්න</translation>
 <translation id="6650726141019353908">රෝස සමනලයා</translation>
+<translation id="6657585470893396449">මුරපදය</translation>
 <translation id="6710213216561001401">පෙර</translation>
 <translation id="6718273304615422081">zip කරමින්...</translation>
 <translation id="6751256176799620176">ෆෝල්ඩර 1ක් තෝරන ලදී</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">සංස්කරණය කරන්න</translation>
 <translation id="9099674669267916096">පිටු ගණන</translation>
 <translation id="9110990317705400362">අපි නිරන්තරයෙන්ම ඔබගේ පිරික්සීම වඩාත් ආරක්ෂිත කිරීමට ක්‍රම සොයමින් සිටිමු. කලින්, ඕනෑම වෙබ් අඩවියකට ඔබගේ බ්‍රවුසරය වෙත දිගුවක් එක් කිරීමට ඔබව පෙළඹවීය හැකි විය. Google Chrome නවතම අනුවාදයේ දී, ඔබ ඒවා දිගු පිටුව හරහා එක් කිරීමෙන් මෙම දිගු ස්ථාපනය කිරීමට අවශ්‍ය බව Chrome හට ප්‍රකාශිතවම පැවසිය යුතුයි. <ph name="BEGIN_LINK" />වැඩිදුර හදාරන්න<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">අගුලු හරන්න</translation>
 <translation id="912419004897138677">කොඩෙක්</translation>
 <translation id="9129931661813833980">ෆෝල්ඩරය අමුණන්න</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' හි සාමාජිකයන්ට මෙම අයිතම වෙත ප්‍රවේශය ලැබෙනු ඇත.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
index 2a964063..02779ea 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Všetko bolo zálohované na <ph name="BEGIN_LINK" />Disk Google<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Vymazať</translation>
 <translation id="6650726141019353908">Ružový motýľ</translation>
+<translation id="6657585470893396449">Heslo</translation>
 <translation id="6710213216561001401">Dozadu</translation>
 <translation id="6718273304615422081">Prebieha komprimovanie...</translation>
 <translation id="6751256176799620176">1 vybratý súbor</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Upraviť</translation>
 <translation id="9099674669267916096">Počet strán</translation>
 <translation id="9110990317705400362">Neustále hľadáme spôsoby, ako zvýšiť bezpečnosť vášho prehliadania. Predtým vás mohli všetky webové stránky vyzvať pridať rozšírenie do prehliadača. Keď chcete v novších verziách prehliadača Google Chrome pridať rozšírenia, musíte to urobiť explicitne ich pridaním na stránke Rozšírenia. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Odomknúť</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Pripnúť priečinok</translation>
 <translation id="9130775360844693113">Členovia cieľa <ph name="DESTINATION_NAME" /> získajú prístup k týmto položkám.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
index 2127aa2..02c8aaa 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Ta mapa je deljena s sistemom Windows</translation>
 <translation id="4487088045714738411">Belgijska tipkovnica</translation>
 <translation id="4522570452068850558">Podrobnosti</translation>
+<translation id="4542387084127299777">Ni mogoče odpreti poti »<ph name="PATH" />«</translation>
 <translation id="4552678318981539154">Nakup dodatnega prostora za shranjevanje ...</translation>
 <translation id="4559767610552730302">Boke</translation>
 <translation id="4572815280350369984">Datoteka <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Vse varnostno kopirano v <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Izbriši</translation>
 <translation id="6650726141019353908">Rožnat metulj</translation>
+<translation id="6657585470893396449">Geslo</translation>
 <translation id="6710213216561001401">Nazaj</translation>
 <translation id="6718273304615422081">Stiskanje ...</translation>
 <translation id="6751256176799620176">Izbrana je 1 mapa</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Uredi</translation>
 <translation id="9099674669267916096">Število strani</translation>
 <translation id="9110990317705400362">Stalno si prizadevamo zagotoviti, da bi bilo brskanje varnejše. Prej vas je lahko vsako spletno mesto pozvalo, da dodate razširitev v brskalnik. V zadnjih različicah Google Chroma pa morate Chromu izrecno povedati, da želite te razširitve namestiti, tako da jih dodate na strani »Razširitve«. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Odkleni</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Pripni mapo</translation>
 <translation id="9130775360844693113">Člani skupine »<ph name="DESTINATION_NAME" />« bodo imeli dostop do teh elementov.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
index a37c1f6..242f11b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Të gjitha u rezervuan te <ph name="BEGIN_LINK" />Disku i Google!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Pastro</translation>
 <translation id="6650726141019353908">Flutur rozë</translation>
+<translation id="6657585470893396449">Fjalëkalimi</translation>
 <translation id="6710213216561001401">Prapa</translation>
 <translation id="6718273304615422081">Po ngjesh...</translation>
 <translation id="6751256176799620176">U zgjodh 1 dosje</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Redakto</translation>
 <translation id="9099674669267916096">Numri i faqeve</translation>
 <translation id="9110990317705400362">Ne kërkojmë vazhdimisht mënyra për ta bërë shfletimin tënd më të sigurt. Më parë, çdo uebsajt mund të të kërkonte të shtoje një shtesë në shfletues. Në versioniet e fundit të Google Chrome, duhet t'i tregosh ti vetë posaçërisht Chrome se dëshiron t'i instalosh këto shtesa duke i shtuar ato përmes faqes "Shtesat". <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Shkyç</translation>
 <translation id="912419004897138677">Kodeku</translation>
 <translation id="9129931661813833980">Gozhdo dosjen</translation>
 <translation id="9130775360844693113">Anëtarët e "<ph name="DESTINATION_NAME" />" do të fitojnë qasje te këta artikuj.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
index 755778d..49605dd 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr-Latn.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Rezervne kopije svih datoteka su napravljene na <ph name="BEGIN_LINK" />Google disku!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Obriši</translation>
 <translation id="6650726141019353908">Ružičasti leptir</translation>
+<translation id="6657585470893396449">Lozinka</translation>
 <translation id="6710213216561001401">Prethodno</translation>
 <translation id="6718273304615422081">Pravljenje zip datoteke...</translation>
 <translation id="6751256176799620176">Izabran je 1 direktorijum</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Izmeni</translation>
 <translation id="9099674669267916096">Broj stranica</translation>
 <translation id="9110990317705400362">Stalno tražimo nove načine da učinimo pregledanje bezbednijim. Ranije je svaki veb-sajt mogao da vam zatraži da dodate dodatak u pregledač. U najnovijim verzijama Google Chrome-a morate eksplicitno da kažete Chrome-u da želite da instalirate te dodatke tako što ćete ih dodati preko stranice Dodaci. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Otključaj</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Zakači direktorijum</translation>
 <translation id="9130775360844693113">Članovi iz „<ph name="DESTINATION_NAME" />“ će dobiti pristup ovim stavkama.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
index 02233c84..d61b10e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sr.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Резервне копије свих датотека су направљене на <ph name="BEGIN_LINK" />Google диску!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Обриши</translation>
 <translation id="6650726141019353908">Ружичасти лептир</translation>
+<translation id="6657585470893396449">Лозинка</translation>
 <translation id="6710213216561001401">Претходно</translation>
 <translation id="6718273304615422081">Прављење zip датотеке...</translation>
 <translation id="6751256176799620176">Изабран је 1 директоријум</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Измени</translation>
 <translation id="9099674669267916096">Број страница</translation>
 <translation id="9110990317705400362">Стално тражимо нове начине да учинимо прегледање безбеднијим. Раније је сваки веб-сајт могао да вам затражи да додате додатак у прегледач. У најновијим верзијама Google Chrome-а морате експлицитно да кажете Chrome-у да желите да инсталирате те додатке тако што ћете их додати преко странице Додаци. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Откључај</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Закачи директоријум</translation>
 <translation id="9130775360844693113">Чланови из „<ph name="DESTINATION_NAME" />“ ће добити приступ овим ставкама.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index 8ae5b36..36cb09b7 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Den här mappen delas med Windows</translation>
 <translation id="4487088045714738411">Belgiskt tangentbord</translation>
 <translation id="4522570452068850558">Info</translation>
+<translation id="4542387084127299777">Det går inte att öppna <ph name="PATH" /></translation>
 <translation id="4552678318981539154">Köp mer lagringsutrymme</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-fil</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Allt har säkerhetskopierats på <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Rensa</translation>
 <translation id="6650726141019353908">Rosa fjäril</translation>
+<translation id="6657585470893396449">Lösenord</translation>
 <translation id="6710213216561001401">Föregående</translation>
 <translation id="6718273304615422081">Komprimerar ...</translation>
 <translation id="6751256176799620176">1 mapp har valts</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Redigera</translation>
 <translation id="9099674669267916096">Sidantal</translation>
 <translation id="9110990317705400362">Vi strävar hela tiden efter att göra det säkrare för dig att surfa. Tidigare kunde du uppmanas att lägga till ett tillägg i webbläsaren på vilken webbplats som helst. I de senaste versionerna av Google Chrome måste du uttryckligen tala om för Chrome att du vill installera dessa tillägg genom att lägga till dem via sidan Tillägg. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Lås upp</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Fäst mapp</translation>
 <translation id="9130775360844693113">De som använder <ph name="DESTINATION_NAME" /> får åtkomst till dessa objekt.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
index a6604969..81bcdb9 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -515,6 +515,7 @@
 <translation id="6629841649550503054">Zote zimehifadhiwa nakala kwenye <ph name="BEGIN_LINK" />Hifadhi ya Google!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Futa</translation>
 <translation id="6650726141019353908">Kipepeo wa waridi</translation>
+<translation id="6657585470893396449">Nenosiri</translation>
 <translation id="6710213216561001401">Iliyotangulia</translation>
 <translation id="6718273304615422081">Inabanwa...</translation>
 <translation id="6751256176799620176">Folda 1 imechaguliwa</translation>
@@ -727,6 +728,7 @@
 <translation id="9065203028668620118">Badilisha</translation>
 <translation id="9099674669267916096">Idadi ya kurasa</translation>
 <translation id="9110990317705400362">Tunaendelea kutafuta njia za kufanya kuvinjari kwako kuwe salama zaidi. Hapo awali, tovuti yoyote ingeweza kukuomba kuongeza kiendelezi katika kivinjari chako. Katika matoleo mapya ya Google Chrome, lazima uiambie Chrome kwa uwazi kuwa unataka kusakinisha viendelezi hivi kwa kuviongeza kupitia ukurasa wa Viendelezi. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Fungua</translation>
 <translation id="912419004897138677">Kodeki</translation>
 <translation id="9129931661813833980">Bandika folda</translation>
 <translation id="9130775360844693113">Wanachama wa '<ph name="DESTINATION_NAME" />' watapata idhini ya kuvifikia vipengee hivi.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
index 581922b..4e5a663 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -43,7 +43,7 @@
 <translation id="1358735829858566124">கோப்பு அல்லது கோப்பகம் உபயோகிக்கக்கூடியதில்லை.</translation>
 <translation id="1363028406613469049">டிராக் எண்</translation>
 <translation id="1378727793141957596">Google இயக்ககத்திற்கு வருக!</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1395262318152388157">தேடுவதற்கான ஸ்லைடர்</translation>
 <translation id="1399648040768741453">தெலுங்கு விசைப்பலகை (ஒலிப்புமுறை)</translation>
 <translation id="1430915738399379752">அச்சிடுக</translation>
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">இந்தக் கோப்புறையானது Windows உடன் பகிரப்பட்டுள்ளது</translation>
 <translation id="4487088045714738411">பெல்ஜியம் விசைப்பலகை</translation>
 <translation id="4522570452068850558">விவரங்கள்</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" ஐத் திறக்க முடியவில்லை</translation>
 <translation id="4552678318981539154">கூடுதல் சேமிப்பிடத்தை வாங்கு</translation>
 <translation id="4559767610552730302">பொக்கே</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> கோப்பு</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">எல்லாம் <ph name="BEGIN_LINK" />Google இயக்ககத்தில்<ph name="END_LINK" /> காப்புப் பிரதி எடுக்கப்பட்டன</translation>
 <translation id="6643016212128521049">அழி</translation>
 <translation id="6650726141019353908">பிங்க் நிறப் பட்டாம்பூச்சி</translation>
+<translation id="6657585470893396449">கடவுச்சொல்</translation>
 <translation id="6710213216561001401">முந்தையது</translation>
 <translation id="6718273304615422081">ஜிப் செய்கிறது...</translation>
 <translation id="6751256176799620176">1 கோப்புறை தேர்ந்தெடுக்கப்பட்டது</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">திருத்து</translation>
 <translation id="9099674669267916096">பக்க எண்ணிக்கை</translation>
 <translation id="9110990317705400362">உங்கள் உலாவலைத் பாதுகாப்பாக்கும் வழிகளைத் தொடர்ந்து தேடுகிறோம். முன்னர், எந்த இணையதளமும் நீட்டிப்பை உங்கள் உலாவியில் சேர்க்கக் கேட்கலாம். சமீபத்திய Google Chrome பதிப்புகளில், நீட்டிப்புகள் பக்கம் வழியாக அவற்றைச் சேர்ப்பதன் மூலம், இந்த நீட்டிப்புகளை நிறுவ விரும்புகிறீர்களா என்பதை வெளிப்படையாக Chromeக்குக் கூற வேண்டும். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">பூட்டைத் திற</translation>
 <translation id="912419004897138677">கோடெக்</translation>
 <translation id="9129931661813833980">கோப்புறையைப் பின் செய்</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' இன் உறுப்பினர்கள் இந்தக் கோப்புகளுக்கான அணுகலைப் பெறுவார்கள்.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index 8c778465..35fe6ac4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -43,7 +43,7 @@
 <translation id="1358735829858566124">ఈ ఫైల్ లేదా డైరెక్టరీ ఉపయోగించబడదు.</translation>
 <translation id="1363028406613469049">ట్రాక్ చేయండి</translation>
 <translation id="1378727793141957596">Google డిస్క్‌కు స్వాగతం!</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1395262318152388157">సీక్ స్లయిడర్</translation>
 <translation id="1399648040768741453">తెలుగు కీబోర్డ్ (ఫొనెటిక్)</translation>
 <translation id="1430915738399379752">ముద్రించు</translation>
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ఈ ఫోల్డర్ Windowsతో షేర్ చేయబడింది</translation>
 <translation id="4487088045714738411">బెల్జియన్ కీబోర్డ్</translation>
 <translation id="4522570452068850558">వివరాలు</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />"ను తెరవడం సాధ్యం కాలేదు</translation>
 <translation id="4552678318981539154">మరింత నిల్వను కొనుగోలు చేయండి</translation>
 <translation id="4559767610552730302">బొకే</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ఫైల్</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">అన్నీ <ph name="BEGIN_LINK" />Google డిస్క్<ph name="END_LINK" />కి బ్యాకప్ చేయబడ్డాయి!</translation>
 <translation id="6643016212128521049">క్లియర్ చేయి</translation>
 <translation id="6650726141019353908">గులాబి రంగు సీతాకోకచిలుక</translation>
+<translation id="6657585470893396449">పాస్‌వర్డ్</translation>
 <translation id="6710213216561001401">మునుపటి</translation>
 <translation id="6718273304615422081">జిప్ చేస్తోంది...</translation>
 <translation id="6751256176799620176">1 ఫోల్డర్ ఎంచుకోబడింది</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">సవరించు</translation>
 <translation id="9099674669267916096">పేజీ గణన</translation>
 <translation id="9110990317705400362">మేము మీ బ్రౌజింగ్‌ను సురక్షితం చేసే మార్గాల కోసం నిరంతరం శోధిస్తున్నాము. గతంలో, ఏ వెబ్‌సైట్ అయినా మీ బ్రౌజర్‌కు ఎక్స్‌టెన్ష‌న్‌ను జోడించడానికి మిమ్మల్ని ప్రాంప్ట్ చేసి ఉండ‌వ‌చ్చు. Google Chrome తాజా వెర్ష‌న్‌ల‌లో, మీరు తప్పనిసరిగా ఎక్స్‌టెన్ష‌న్‌ల పేజీలో వాటిని జోడించడం ద్వారా ఈ ఎక్స్‌టెన్ష‌న్‌లను ఇన్‌స్టాల్ చేయాలని అనుకుంటున్నట్లు Chromeకు ప్రత్యేకించి తెలియజేయాలి. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">అన్‌లాక్ చేయి</translation>
 <translation id="912419004897138677">కోడెక్</translation>
 <translation id="9129931661813833980">ఫోల్డర్‌ను పిన్ చేయి</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' యొక్క సభ్యులు ఈ అంశాలకు యాక్సెస్ పొందుతారు.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_th.xtb b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
index 32ad705..92df6ae 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_th.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">โฟลเดอร์นี้แชร์กับ Windows อยู่</translation>
 <translation id="4487088045714738411">แป้นพิมพ์ภาษาเบลเยียม</translation>
 <translation id="4522570452068850558">รายละเอียด</translation>
+<translation id="4542387084127299777">เปิด "<ph name="PATH" />" ไม่ได้</translation>
 <translation id="4552678318981539154">ซื้อพื้นที่เก็บข้อมูลเพิ่ม</translation>
 <translation id="4559767610552730302">ชัดตื้น</translation>
 <translation id="4572815280350369984">ไฟล์ <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">สำรองข้อมูลทั้งหมดไปยัง <ph name="BEGIN_LINK" />Google ไดรฟ์<ph name="END_LINK" />แล้ว!</translation>
 <translation id="6643016212128521049">ล้าง</translation>
 <translation id="6650726141019353908">ผีเสื้อสีชมพู</translation>
+<translation id="6657585470893396449">รหัสผ่าน</translation>
 <translation id="6710213216561001401">ก่อนหน้า</translation>
 <translation id="6718273304615422081">กำลังซิป...</translation>
 <translation id="6751256176799620176">เลือกไว้ 1 โฟลเดอร์</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">แก้ไข</translation>
 <translation id="9099674669267916096">จำนวนหน้า</translation>
 <translation id="9110990317705400362">เรายังคงค้นหาวิธีที่จะทำให้การท่องเว็บของคุณปลอดภัยยิ่งขึ้นอย่างสม่ำเสมอ ก่อนหน้านี้ทุกเว็บไซต์สามารถแสดงข้อความแจ้งให้คุณเพิ่มส่วนขยายในเบราว์เซอร์ แต่ใน Google Chrome เวอร์ชันล่าสุด คุณจะต้องแจ้งให้ Chrome ทราบอย่างชัดเจนว่าคุณต้องการติดตั้งส่วนขยายเหล่านี้โดยการเพิ่มส่วนขยายผ่านหน้า "ส่วนขยาย" <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">ปลดล็อก</translation>
 <translation id="912419004897138677">ตัวแปลงรหัส</translation>
 <translation id="9129931661813833980">ตรึงโฟลเดอร์</translation>
 <translation id="9130775360844693113">สมาชิกของ "<ph name="DESTINATION_NAME" />" จะได้รับสิทธิ์เข้าถึงรายการเหล่านี้</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
index 382e1205..51714db 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Bu klasör Windows ile paylaşılıyor</translation>
 <translation id="4487088045714738411">Belçika dilinde klavye</translation>
 <translation id="4522570452068850558">Ayrıntılar</translation>
+<translation id="4542387084127299777">"<ph name="PATH" />" açılamıyor</translation>
 <translation id="4552678318981539154">Daha fazla depolama alanı satın alın</translation>
 <translation id="4559767610552730302">Bokeh</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> dosyası</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Tümü <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />'a yedeklendi!</translation>
 <translation id="6643016212128521049">Temizle</translation>
 <translation id="6650726141019353908">Pembe kelebek</translation>
+<translation id="6657585470893396449">Şifre</translation>
 <translation id="6710213216561001401">Önceki</translation>
 <translation id="6718273304615422081">Sıkıştırılıyor...</translation>
 <translation id="6751256176799620176">1 klasör seçildi</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Düzenle</translation>
 <translation id="9099674669267916096">Sayfa sayısı</translation>
 <translation id="9110990317705400362">Sürekli olarak, web'e daha güvenli göz atabilmenizi sağlamanın yollarını aramaktayız. Önceden, herhangi bir web sitesi, tarayıcınıza uzantı eklemeniz için istekte bulunabiliyordu. Google Chrome'un son sürümlerinde bu uzantıları yüklemek istediğinizi Chrome'a açıkça söylemelisiniz. Bunu yapmak için uzantıları Uzantılar sayfası üzerinden eklemeniz gerekiyor. <ph name="BEGIN_LINK" />Daha fazla bilgi edinin<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Kilidi Aç</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Klasörü sabitle</translation>
 <translation id="9130775360844693113">"<ph name="DESTINATION_NAME" />" hedefinin üyeleri, bu öğelere erişim hakkı kazanacaktır.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
index bea61fde..1128424 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">ОС Windows має доступ до цієї папки</translation>
 <translation id="4487088045714738411">Бельгійська розкладка</translation>
 <translation id="4522570452068850558">Деталі</translation>
+<translation id="4542387084127299777">Не вдається відкрити файл "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Придбати більше об’єму пам’яті</translation>
 <translation id="4559767610552730302">Боке</translation>
 <translation id="4572815280350369984">Файл <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Усі файли імпортовано на <ph name="BEGIN_LINK" />Google Диск.<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Очистити</translation>
 <translation id="6650726141019353908">Рожевий метелик</translation>
+<translation id="6657585470893396449">Пароль</translation>
 <translation id="6710213216561001401">Попереднє</translation>
 <translation id="6718273304615422081">Архівування…</translation>
 <translation id="6751256176799620176">Вибрано 1 папку</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Редагувати</translation>
 <translation id="9099674669267916096">Кількість сторінок</translation>
 <translation id="9110990317705400362">Ми постійно шукаємо способи зробити перегляд веб-сторінок безпечнішим. Раніше будь-який веб-сайт міг пропонувати вам додати розширення у веб-переглядач. В останніх версіях Google Chrome ви маєте чітко вказати, що хочете встановити ці розширення, додавши їх на сторінці "Розширення". <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Розблокувати</translation>
 <translation id="912419004897138677">Кодек</translation>
 <translation id="9129931661813833980">Закріпити папку</translation>
 <translation id="9130775360844693113">Учасники, які мають доступ до розташування "<ph name="DESTINATION_NAME" />", отримають доступ до цих елементів.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
index 2850829..db0e931 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ur.xtb
@@ -513,6 +513,7 @@
 <translation id="6629841649550503054">‏سبھی کا <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> میں بیک اپ لے لیا گیا!</translation>
 <translation id="6643016212128521049">صاف کریں</translation>
 <translation id="6650726141019353908">گلابی تتلی</translation>
+<translation id="6657585470893396449">پاس ورڈ</translation>
 <translation id="6710213216561001401">گزشتہ</translation>
 <translation id="6718273304615422081">زپ کیا جا رہا ہے…</translation>
 <translation id="6751256176799620176">1 فولڈر منتخب کیا گیا</translation>
@@ -725,6 +726,7 @@
 <translation id="9065203028668620118">تبدیل کریں</translation>
 <translation id="9099674669267916096">صفحات کی تعداد</translation>
 <translation id="9110990317705400362">‏ہم آپ کی براؤزنگ کو محفوظ تر بنانے کے طریقے مستقل تلاش کر رہے ہیں۔ ازیں قبل، کوئی بھی ویب سائٹ آپ کو اپنے براؤزر میں ایک ایکسٹینشن شامل کرنے کا اشارہ دے سکتی تھی۔ Google Chrome کے تازہ ترین ورژن میں، ایکسٹینشنز صفحہ کے ذریعہ ایکسٹینشنز کو شامل کر کے آپ کو واضح طور پر Chrome کو بتا دینا چاہیے کہ آپ انہیں شامل کرنا چاہتے ہیں۔ <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">غیر مقفل کریں</translation>
 <translation id="912419004897138677">کوڈیک</translation>
 <translation id="9129931661813833980">فولڈر کو پن کریں</translation>
 <translation id="9130775360844693113">'<ph name="DESTINATION_NAME" />' کے اراکین کو ان آئٹمز تک رسائي حاصل ہوگي۔</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
index 538f560..3f202cf 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Bu jild Windowsga ulashilgan</translation>
 <translation id="4487088045714738411">Belgiyacha klaviatura</translation>
 <translation id="4522570452068850558">Tafsilotlar</translation>
+<translation id="4542387084127299777">“<ph name="PATH" />” ochilmadi</translation>
 <translation id="4552678318981539154">Ko‘proq joy sotib olish</translation>
 <translation id="4559767610552730302">Boke</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" />-fayl</translation>
@@ -513,6 +514,7 @@
 <translation id="6629841649550503054">Hammasi <ph name="BEGIN_LINK" />Google Drive’ga<ph name="END_LINK" /> zaxiralandi!</translation>
 <translation id="6643016212128521049">Tozalash</translation>
 <translation id="6650726141019353908">Pushti kapalak</translation>
+<translation id="6657585470893396449">Parol</translation>
 <translation id="6710213216561001401">Avvalgi</translation>
 <translation id="6718273304615422081">Arxivlanmoqda...</translation>
 <translation id="6751256176799620176">1 ta jild tanlandi</translation>
@@ -725,6 +727,7 @@
 <translation id="9065203028668620118">O‘zgartirish</translation>
 <translation id="9099674669267916096">Sahifalar soni</translation>
 <translation id="9110990317705400362">Biz doim brauzerimizni yanada havfsizroq qilish ustida ishlaymiz. Avval har qanday sayt kengaytma o‘rnatishga ruxsati bo‘lgan edi. Google Chrome‘ning so‘nggi versiyalarida kengaytmalar endi faqat “Kengaytmalar” sahifasidan o‘rnatiladi. <ph name="BEGIN_LINK" />Batafsil...<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Qulfdan yechish</translation>
 <translation id="912419004897138677">Kodek</translation>
 <translation id="9129931661813833980">Jildni mahkamlash</translation>
 <translation id="9130775360844693113">“<ph name="DESTINATION_NAME" />” foydalanuvchilari bu elemntlardan foydalana olishadi.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
index 9328b93..ddb373c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">Thư mục này được chia sẻ với Windows</translation>
 <translation id="4487088045714738411">Bàn phím tiếng Bỉ</translation>
 <translation id="4522570452068850558">Chi tiết</translation>
+<translation id="4542387084127299777">Không thể mở "<ph name="PATH" />"</translation>
 <translation id="4552678318981539154">Mua thêm dung lượng lưu trữ</translation>
 <translation id="4559767610552730302">Hiệu ứng Bokeh</translation>
 <translation id="4572815280350369984">Tệp <ph name="FILE_TYPE" /></translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">Đã sao lưu toàn bộ vào <ph name="BEGIN_LINK" />Google Drive!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Xóa</translation>
 <translation id="6650726141019353908">Bướm màu hồng</translation>
+<translation id="6657585470893396449">Mật khẩu</translation>
 <translation id="6710213216561001401">Trước đó</translation>
 <translation id="6718273304615422081">Đang nén...</translation>
 <translation id="6751256176799620176">Đã chọn 1 thư mục</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">Chỉnh sửa</translation>
 <translation id="9099674669267916096">Số lượng trang</translation>
 <translation id="9110990317705400362">Chúng tôi không ngừng tìm cách để giúp cho quá trình duyệt web của bạn trở nên an toàn hơn. Trước đây, bất kỳ trang web nào cũng có thể nhắc bạn thêm tiện ích vào trình duyệt. Trong các phiên bản mới nhất của Google Chrome, bạn phải cho Chrome biết rõ rằng bạn muốn cài đặt các tiện ích này bằng cách thêm chúng thông qua trang Tiện ích. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Mở khóa</translation>
 <translation id="912419004897138677">Codec</translation>
 <translation id="9129931661813833980">Ghim thư mục</translation>
 <translation id="9130775360844693113">Thành viên của '<ph name="DESTINATION_NAME" />' sẽ có quyền truy cập vào các tệp này.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
index 38975e2..8f0a09c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">已与 Windows 共享此文件夹</translation>
 <translation id="4487088045714738411">比利时键盘</translation>
 <translation id="4522570452068850558">详细信息</translation>
+<translation id="4542387084127299777">无法打开“<ph name="PATH" />”</translation>
 <translation id="4552678318981539154">购买更多存储空间</translation>
 <translation id="4559767610552730302">焦外成像</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 文件</translation>
@@ -509,6 +510,7 @@
 <translation id="6629841649550503054">所有文件都已备份到 <ph name="BEGIN_LINK" />Google 云端硬盘<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6650726141019353908">粉蝴蝶</translation>
+<translation id="6657585470893396449">密码</translation>
 <translation id="6710213216561001401">上一个</translation>
 <translation id="6718273304615422081">正在压缩…</translation>
 <translation id="6751256176799620176">已选择 1 个文件夹</translation>
@@ -721,6 +723,7 @@
 <translation id="9065203028668620118">编辑</translation>
 <translation id="9099674669267916096">页数</translation>
 <translation id="9110990317705400362">我们在不断寻找各种方式来提高上网安全。之前,任何网站都可以提示您在浏览器中添加扩展程序;而在最新版本的Google Chrome中,您必须明确告诉Chrome您想要安装这些扩展程序(即:在“扩展程序”页添加它们)后才可以。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">解锁</translation>
 <translation id="912419004897138677">编解码器</translation>
 <translation id="9129931661813833980">固定文件夹</translation>
 <translation id="9130775360844693113">“<ph name="DESTINATION_NAME" />”的成员将会有权访问这些内容。</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
index 9a69235a..1c42fa1 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
@@ -302,6 +302,7 @@
 <translation id="4481711095103932593">此資料夾已經與 Windows 共用</translation>
 <translation id="4487088045714738411">比利時文鍵盤</translation>
 <translation id="4522570452068850558">詳情</translation>
+<translation id="4542387084127299777">無法開啟「<ph name="PATH" />」</translation>
 <translation id="4552678318981539154">購買更多儲存空間</translation>
 <translation id="4559767610552730302">散景</translation>
 <translation id="4572815280350369984"><ph name="FILE_TYPE" /> 檔案</translation>
@@ -514,6 +515,7 @@
 <translation id="6629841649550503054">已全部備份至「 <ph name="BEGIN_LINK" />Google 雲端硬碟」<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6650726141019353908">粉紅蝴蝶</translation>
+<translation id="6657585470893396449">密碼</translation>
 <translation id="6710213216561001401">上一個</translation>
 <translation id="6718273304615422081">壓縮中…</translation>
 <translation id="6751256176799620176">已選取 1 個資料夾</translation>
@@ -726,6 +728,7 @@
 <translation id="9065203028668620118">編輯</translation>
 <translation id="9099674669267916096">頁數</translation>
 <translation id="9110990317705400362">我們不斷努力提升瀏覽網絡的安全性。過去,任何網站都可以提示您在瀏覽器中新增擴充功能。在最新版本的 Google Chrome 中,您必須透過「擴充功能」頁面新增擴充功能,讓 Chrome 明確瞭解您想要安裝這些擴充功能。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">解鎖</translation>
 <translation id="912419004897138677">編解碼器</translation>
 <translation id="9129931661813833980">固定資料夾</translation>
 <translation id="9130775360844693113">「<ph name="DESTINATION_NAME" />」的成員將可存取這些項目。</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
index 64affe7..e3d212c 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">所有檔案都已備份到 <ph name="BEGIN_LINK" />Google 雲端硬碟<ph name="END_LINK" />!</translation>
 <translation id="6643016212128521049">清除</translation>
 <translation id="6650726141019353908">粉紅蝴蝶</translation>
+<translation id="6657585470893396449">密碼</translation>
 <translation id="6710213216561001401">返回</translation>
 <translation id="6718273304615422081">壓縮中...</translation>
 <translation id="6751256176799620176">已選取 1 個資料夾</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">編輯</translation>
 <translation id="9099674669267916096">頁數</translation>
 <translation id="9110990317705400362">我們不斷努力提升網路瀏覽的安全性。過去,任何網站都可以提示你在瀏覽器中新增擴充功能。在最新版本的 Google Chrome 中,你必須統一透過「擴充功能」頁面新增擴充功能,讓 Chrome 確實瞭解你要安裝的各項擴充功能。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">解除鎖定</translation>
 <translation id="912419004897138677">轉碼器</translation>
 <translation id="9129931661813833980">固定資料夾</translation>
 <translation id="9130775360844693113">「<ph name="DESTINATION_NAME" />」的成員將可存取這些項目。</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
index d95ddb8a..edf04df 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -514,6 +514,7 @@
 <translation id="6629841649550503054">Konke kwenziwe isipele ku-<ph name="BEGIN_LINK" />Google Drayivu!<ph name="END_LINK" /></translation>
 <translation id="6643016212128521049">Sula</translation>
 <translation id="6650726141019353908">Uvemvane ophinki</translation>
+<translation id="6657585470893396449">Igama lokungena</translation>
 <translation id="6710213216561001401">Okwedlule</translation>
 <translation id="6718273304615422081">Iyazipha...</translation>
 <translation id="6751256176799620176">1 ifolda ekhethiwe</translation>
@@ -726,6 +727,7 @@
 <translation id="9065203028668620118">Hlela</translation>
 <translation id="9099674669267916096">Ukubalwa kwekhasi</translation>
 <translation id="9110990317705400362">Sibheka izindlela zokwenza ukuphequlula kwakho kuphephe. Ngaphambilini, noma iyiphi iwebhusayithi ingakukhomba ukuthi ungeze isandiso kusiphequluli sakho. Kuzinguqulo zakamuva ze-Google Chrome, kufanele utshele ngokusobala i-Chrome ukuthi ufuna ukufaka lezi zelulo ngokuzingeza ngekhasi lezandiso. <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
+<translation id="9111102763498581341">Vula</translation>
 <translation id="912419004897138677">I-Codec</translation>
 <translation id="9129931661813833980">Phina ifolda</translation>
 <translation id="9130775360844693113">Amalungu e-'<ph name="DESTINATION_NAME" />' azothola ukufinyelela kulezi zinto.</translation>
diff --git a/ui/events/event_switches.cc b/ui/events/event_switches.cc
index e02e816..0bdb883 100644
--- a/ui/events/event_switches.cc
+++ b/ui/events/event_switches.cc
@@ -14,7 +14,7 @@
 const char kCompensateForUnstablePinchZoom[] =
     "compensate-for-unstable-pinch-zoom";
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 // Tells chrome to interpret events from these devices as touch events. Only
 // available with XInput 2 (i.e. X server 1.8 or above). The id's of the
 // devices can be retrieved from 'xinput list'.
diff --git a/ui/events/event_switches.h b/ui/events/event_switches.h
index 7b39b66..d94309b 100644
--- a/ui/events/event_switches.h
+++ b/ui/events/event_switches.h
@@ -13,7 +13,7 @@
 
 EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[];
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 EVENTS_BASE_EXPORT extern const char kTouchDevices[];
 EVENTS_BASE_EXPORT extern const char kPenDevices[];
 #endif
diff --git a/ui/gfx/gpu_fence.cc b/ui/gfx/gpu_fence.cc
index 87fc6d1..a8c2422 100644
--- a/ui/gfx/gpu_fence.cc
+++ b/ui/gfx/gpu_fence.cc
@@ -8,7 +8,7 @@
 #include "base/notreached.h"
 #include "base/time/time.h"
 
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
 #include <sync/sync.h>
 #endif
 
@@ -62,7 +62,7 @@
     case GpuFenceHandleType::kEmpty:
       break;
     case GpuFenceHandleType::kAndroidNativeFenceSync:
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
       static const int kInfiniteSyncWaitTimeout = -1;
       DCHECK_GE(owned_fd_.get(), 0);
       if (sync_wait(owned_fd_.get(), kInfiniteSyncWaitTimeout) < 0) {
@@ -79,7 +79,7 @@
 GpuFence::FenceStatus GpuFence::GetStatusChangeTime(int fd,
                                                     base::TimeTicks* time) {
   DCHECK_NE(fd, -1);
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
   auto info =
       std::unique_ptr<sync_fence_info_data, void (*)(sync_fence_info_data*)>{
           sync_fence_info(fd), sync_fence_info_free};
@@ -111,7 +111,7 @@
 
 base::TimeTicks GpuFence::GetMaxTimestamp() const {
   base::TimeTicks timestamp;
-#if defined(OS_LINUX) || defined(OS_ANDROID)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
   FenceStatus status = GetStatusChangeTime(owned_fd_.get(), &timestamp);
   DCHECK_EQ(status, FenceStatus::kSignaled);
   return timestamp;
diff --git a/ui/gfx/gpu_memory_buffer.cc b/ui/gfx/gpu_memory_buffer.cc
index 323ce456..56bda29 100644
--- a/ui/gfx/gpu_memory_buffer.cc
+++ b/ui/gfx/gpu_memory_buffer.cc
@@ -34,7 +34,7 @@
   handle.region = region.Duplicate();
   handle.offset = offset;
   handle.stride = stride;
-#if defined(OS_LINUX) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA)
   handle.native_pixmap_handle = CloneHandleForIPC(native_pixmap_handle);
 #elif defined(OS_MAC)
   NOTIMPLEMENTED();
diff --git a/ui/gfx/gpu_memory_buffer.h b/ui/gfx/gpu_memory_buffer.h
index 61c7dfa9..259e142 100644
--- a/ui/gfx/gpu_memory_buffer.h
+++ b/ui/gfx/gpu_memory_buffer.h
@@ -15,7 +15,7 @@
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/gfx_export.h"
 
-#if defined(USE_OZONE) || defined(OS_LINUX)
+#if defined(USE_OZONE) || defined(OS_LINUX) || defined(OS_CHROMEOS)
 #include "ui/gfx/native_pixmap_handle.h"
 #elif defined(OS_MAC)
 #include "ui/gfx/mac/io_surface.h"
@@ -69,7 +69,7 @@
   base::UnsafeSharedMemoryRegion region;
   uint32_t offset = 0;
   int32_t stride = 0;
-#if defined(OS_LINUX) || defined(OS_FUCHSIA)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA)
   NativePixmapHandle native_pixmap_handle;
 #elif defined(OS_MAC)
   ScopedRefCountedIOSurfaceMachPort mach_port;
diff --git a/ui/platform_window/platform_window_init_properties.h b/ui/platform_window/platform_window_init_properties.h
index d1a5cc0..be16c96 100644
--- a/ui/platform_window/platform_window_init_properties.h
+++ b/ui/platform_window/platform_window_init_properties.h
@@ -41,7 +41,7 @@
 
 class WorkspaceExtensionDelegate;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
 class X11ExtensionDelegate;
 #endif
 
@@ -82,7 +82,7 @@
 
   WorkspaceExtensionDelegate* workspace_extension_delegate = nullptr;
 
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   bool prefer_dark_theme = false;
   gfx::ImageSkia* icon = nullptr;
   base::Optional<int> background_color;
diff --git a/ui/snapshot/snapshot_aura_unittest.cc b/ui/snapshot/snapshot_aura_unittest.cc
index 08b4053..0537792f 100644
--- a/ui/snapshot/snapshot_aura_unittest.cc
+++ b/ui/snapshot/snapshot_aura_unittest.cc
@@ -200,12 +200,12 @@
 #define MAYBE_FullScreenWindow FullScreenWindow
 #endif
 TEST_P(SnapshotAuraTest, MAYBE_FullScreenWindow) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_CHROMEOS)
   // TODO(https://crbug.com/1002716): Fix this test to run in < action_timeout()
   // on the Linux Debug & TSAN bots.
   const base::test::ScopedRunLoopTimeout increased_run_timeout(
       FROM_HERE, TestTimeouts::action_max_timeout());
-#endif  // defined(OS_LINUX)
+#endif  // defined(OS_LINUX) || defined(OS_CHROMEOS)
 
 #if defined(OS_WIN)
   // TODO(https://crbug.com/850556): Make work on Win10.
diff --git a/ui/strings/translations/ui_strings_as.xtb b/ui/strings/translations/ui_strings_as.xtb
index b942fc6..2ecf778 100644
--- a/ui/strings/translations/ui_strings_as.xtb
+++ b/ui/strings/translations/ui_strings_as.xtb
@@ -17,7 +17,7 @@
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1306549533752902673">চুপাৰিছ কৰা এপ্‌</translation>
 <translation id="1368832886055348810">বাওঁফালৰ পৰা সোঁফাললৈ</translation>
-<translation id="1383876407941801731">সন্ধান</translation>
+<translation id="1383876407941801731">Chowa</translation>
 <translation id="1398853756734560583">সৰ্বাধিক মাত্ৰালৈ বঢ়াওক</translation>
 <translation id="1414271762428216854"><ph name="APP_NAME" />, ইনষ্টল হৈ থকা এপ্‌</translation>
 <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> শ্বেয়াৰ কৰিব নোৱাৰি</translation>
diff --git a/ui/strings/translations/ui_strings_be.xtb b/ui/strings/translations/ui_strings_be.xtb
index 3be9ed7..d53565a 100644
--- a/ui/strings/translations/ui_strings_be.xtb
+++ b/ui/strings/translations/ui_strings_be.xtb
@@ -41,6 +41,7 @@
 <translation id="1871244248791675517">Ins</translation>
 <translation id="1884435127456172652"><ph name="NUMBER" /> %</translation>
 <translation id="1901303067676059328">Выбраць &amp;усё</translation>
+<translation id="19085484004813472">Гэта новая функцыя</translation>
 <translation id="2006524834898217237">Праверце, ці падключана прылада да інтэрнэту.</translation>
 <translation id="208586643495776849">Паўтарыце спробу</translation>
 <translation id="2090963878406559571">Каб адпраўляць нумары з <ph name="ORIGIN" /> на свой тэлефон Android, <ph name="TROUBLESHOOT_LINK" /> для абедзвюх прылад у наладах.</translation>
diff --git a/ui/strings/translations/ui_strings_bn.xtb b/ui/strings/translations/ui_strings_bn.xtb
index ef2e8438..4e21d48 100644
--- a/ui/strings/translations/ui_strings_bn.xtb
+++ b/ui/strings/translations/ui_strings_bn.xtb
@@ -17,7 +17,7 @@
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1306549533752902673">প্রস্তাবিত অ্যাপ</translation>
 <translation id="1368832886055348810">বাঁ থেকে ডান</translation>
-<translation id="1383876407941801731">সার্চ করুন</translation>
+<translation id="1383876407941801731">খুঁজুন</translation>
 <translation id="1398853756734560583">বড় করুন</translation>
 <translation id="1414271762428216854"><ph name="APP_NAME" />, ইনস্টল করা অ্যাপ</translation>
 <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> শেয়ার করা যাচ্ছে না</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb
index 9256d43..4fba4333 100644
--- a/ui/strings/translations/ui_strings_gu.xtb
+++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -17,7 +17,7 @@
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1306549533752902673">ભલામણ કરેલ ઍપ</translation>
 <translation id="1368832886055348810">ડાબેથી જમણે</translation>
-<translation id="1383876407941801731">શોધો</translation>
+<translation id="1383876407941801731">શોધ</translation>
 <translation id="1398853756734560583">મોટું કરો</translation>
 <translation id="1414271762428216854"><ph name="APP_NAME" />, ઇન્સ્ટૉલ કરેલી ઍપ</translation>
 <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> શેર કરી શકતાં નથી</translation>
diff --git a/ui/strings/translations/ui_strings_kn.xtb b/ui/strings/translations/ui_strings_kn.xtb
index e9737d5..5c67d2c 100644
--- a/ui/strings/translations/ui_strings_kn.xtb
+++ b/ui/strings/translations/ui_strings_kn.xtb
@@ -41,6 +41,7 @@
 <translation id="1871244248791675517">Ins</translation>
 <translation id="1884435127456172652"><ph name="NUMBER" /> %</translation>
 <translation id="1901303067676059328">&amp;ಎಲ್ಲ ಆಯ್ಕೆ ಮಾಡಿ</translation>
+<translation id="19085484004813472">ಇದೊಂದು ಹೊಸ ವೈಶಿಷ್ಟ್ಯ</translation>
 <translation id="2006524834898217237">ಈ ಸಾಧನವು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation>
 <translation id="208586643495776849">ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="2090963878406559571"><ph name="ORIGIN" /> ನಿಂದ ನಿಮ್ಮ Android ಫೋನ್‌ಗೆ ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ಕಳುಹಿಸಲು, ಎರಡೂ ಸಾಧನಗಳಿಗಾಗಿ, ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ <ph name="TROUBLESHOOT_LINK" />.</translation>
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb
index c299c67d..e080ad6 100644
--- a/ui/strings/translations/ui_strings_ta.xtb
+++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -17,7 +17,7 @@
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1306549533752902673">பரிந்துரைக்கப்படும் ஆப்ஸ்</translation>
 <translation id="1368832886055348810">இடமிருந்து வலம்</translation>
-<translation id="1383876407941801731">தேடல்</translation>
+<translation id="1383876407941801731">தேடு</translation>
 <translation id="1398853756734560583">பெரிதாக்கு</translation>
 <translation id="1414271762428216854"><ph name="APP_NAME" />, நிறுவப்பட்ட ஆப்ஸ்</translation>
 <translation id="1450753235335490080"><ph name="CONTENT_TYPE" />ஐப் பகிர முடியவில்லை</translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb
index a94affc6..ef0dae34 100644
--- a/ui/strings/translations/ui_strings_te.xtb
+++ b/ui/strings/translations/ui_strings_te.xtb
@@ -17,7 +17,7 @@
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1306549533752902673">సిఫార్సు చేసిన యాప్‌లు</translation>
 <translation id="1368832886055348810">ఎడమ నుండి కుడికి</translation>
-<translation id="1383876407941801731">వెతుకు</translation>
+<translation id="1383876407941801731">శోధించు</translation>
 <translation id="1398853756734560583">గరిష్ఠీకరించు</translation>
 <translation id="1414271762428216854"><ph name="APP_NAME" />, ఇన్‌స్టాల్ చేసిన యాప్</translation>
 <translation id="1450753235335490080"><ph name="CONTENT_TYPE" /> షేర్ చేయడం సాధ్యపడలేదు</translation>
diff --git a/ui/views/bubble/bubble_dialog_model_host.cc b/ui/views/bubble/bubble_dialog_model_host.cc
index 26dd4308..8dea8a0 100644
--- a/ui/views/bubble/bubble_dialog_model_host.cc
+++ b/ui/views/bubble/bubble_dialog_model_host.cc
@@ -59,15 +59,16 @@
   auto* ok_button = model_->ok_button(GetPassKey());
   if (ok_button) {
     button_mask |= ui::DIALOG_BUTTON_OK;
-    if (!ok_button->label().empty())
-      SetButtonLabel(ui::DIALOG_BUTTON_OK, ok_button->label());
+    if (!ok_button->label(GetPassKey()).empty())
+      SetButtonLabel(ui::DIALOG_BUTTON_OK, ok_button->label(GetPassKey()));
   }
 
   auto* cancel_button = model_->cancel_button(GetPassKey());
   if (cancel_button) {
     button_mask |= ui::DIALOG_BUTTON_CANCEL;
-    if (!cancel_button->label().empty())
-      SetButtonLabel(ui::DIALOG_BUTTON_CANCEL, cancel_button->label());
+    if (!cancel_button->label(GetPassKey()).empty())
+      SetButtonLabel(ui::DIALOG_BUTTON_CANCEL,
+                     cancel_button->label(GetPassKey()));
   }
 
   // TODO(pbos): Consider refactoring ::SetExtraView() so it can be called after
@@ -75,8 +76,8 @@
   // OnDialogInitialized() will not work until then.
   auto* extra_button = model_->extra_button(GetPassKey());
   if (extra_button) {
-    OnViewCreatedForField(SetExtraView(std::make_unique<views::MdTextButton>(
-                              this, extra_button->label())),
+    OnViewCreatedForField(SetExtraView(std::make_unique<MdTextButton>(
+                              this, extra_button->label(GetPassKey()))),
                           extra_button);
   }
 
@@ -202,9 +203,9 @@
   // TODO(pbos): Support updates to the existing model.
 
   auto textfield = std::make_unique<Textfield>();
-  textfield->SetAccessibleName(model->accessible_name().empty()
-                                   ? model->text()
-                                   : model->accessible_name());
+  textfield->SetAccessibleName(model->accessible_name(GetPassKey()).empty()
+                                   ? model->label(GetPassKey())
+                                   : model->accessible_name(GetPassKey()));
   textfield->SetText(model->text());
 
   property_changed_subscriptions_.push_back(textfield->AddTextChangedCallback(
@@ -212,7 +213,7 @@
                           base::Unretained(this), textfield.get())));
 
   auto* textfield_ptr = textfield.get();
-  AddLabelAndField(model->label(), std::move(textfield),
+  AddLabelAndField(model->label(GetPassKey()), std::move(textfield),
                    textfield_ptr->GetFontList());
 
   return textfield_ptr;
@@ -223,14 +224,14 @@
   // TODO(pbos): Handle updating existing field.
 
   auto combobox = std::make_unique<Combobox>(model->combobox_model());
-  combobox->SetAccessibleName(model->accessible_name().empty()
-                                  ? model->label()
-                                  : model->accessible_name());
+  combobox->SetAccessibleName(model->accessible_name(GetPassKey()).empty()
+                                  ? model->label(GetPassKey())
+                                  : model->accessible_name(GetPassKey()));
   combobox->set_listener(this);
   // TODO(pbos): Add subscription to combobox selected-index changes.
   combobox->SetSelectedIndex(model->selected_index());
   auto* combobox_ptr = combobox.get();
-  AddLabelAndField(model->label(), std::move(combobox),
+  AddLabelAndField(model->label(GetPassKey()), std::move(combobox),
                    combobox_ptr->GetFontList());
   return combobox_ptr;
 }
@@ -251,22 +252,19 @@
 }
 
 void BubbleDialogModelHost::NotifyTextfieldTextChanged(Textfield* textfield) {
-  model_->OnTextfieldTextChanged(GetPassKey(),
-                                 FieldAsTextfield(view_to_field_[textfield]),
-                                 textfield->GetText());
+  FieldAsTextfield(view_to_field_[textfield])
+      ->OnTextChanged(GetPassKey(), textfield->GetText());
 }
 
 void BubbleDialogModelHost::NotifyComboboxSelectedIndexChanged(
     Combobox* combobox) {
-  model_->OnComboboxSelectedIndexChanged(
-      GetPassKey(), FieldAsCombobox(view_to_field_[combobox]),
-      combobox->GetSelectedIndex());
+  FieldAsCombobox(view_to_field_[combobox])
+      ->OnSelectedIndexChanged(GetPassKey(), combobox->GetSelectedIndex());
 }
 
 void BubbleDialogModelHost::ButtonPressed(Button* sender,
                                           const ui::Event& event) {
-  model_->OnButtonPressed(GetPassKey(), FieldAsButton(view_to_field_[sender]),
-                          event);
+  FieldAsButton(view_to_field_[sender])->OnPressed(GetPassKey(), event);
 }
 
 void BubbleDialogModelHost::OnPerformAction(Combobox* combobox) {
@@ -274,8 +272,7 @@
   // but Combobox right now doesn't support listening to selected-index changes.
   NotifyComboboxSelectedIndexChanged(combobox);
 
-  model_->OnComboboxPerformAction(GetPassKey(),
-                                  FieldAsCombobox(view_to_field_[combobox]));
+  FieldAsCombobox(view_to_field_[combobox])->OnPerformAction(GetPassKey());
 }
 
 void BubbleDialogModelHost::OnViewCreatedForField(View* view,
diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm
index 5e21b84..2c070aee 100644
--- a/ui/views/widget/native_widget_mac_unittest.mm
+++ b/ui/views/widget/native_widget_mac_unittest.mm
@@ -870,8 +870,12 @@
     // to the child window is released inside WidgetOwnerNSWindowAdapter::
     // OnWindowWillClose().
     [native_parent close];
-    EXPECT_TRUE(child_dealloced);
   }
+
+  // Check this only once the autorelease pool has been drained: AppKit likes to
+  // autorelease NSWindows when tearing them down, presumably to make UAF bugs
+  // with NSWindows less likely.
+  EXPECT_TRUE(child_dealloced);
   EXPECT_TRUE(native_parent_dealloced);
 }
 
@@ -1308,6 +1312,19 @@
   EXPECT_FALSE([retained_animation isAnimating]);
 }
 
+// Expect that |children|, the list of child windows of a window that has a
+// sheet open, is logically empty. "Logically empty" accounts for the
+// AppKit-created visual effect window that shows atop windows with open sheets
+// on macOS 11.
+void AssertNoChildrenForWindowWithSheet(NSArray<NSWindow*>* children) {
+  if (base::mac::IsAtLeastOS11()) {
+    ASSERT_EQ(1u, children.count);
+    EXPECT_NSEQ(@"NSSheetEffectDimmingWindow", children[0].className);
+  } else {
+    ASSERT_EQ(0u, children.count);
+  }
+}
+
 // Tests behavior of window-modal dialogs, displayed as sheets.
 TEST_F(NativeWidgetMacTest, WindowModalSheet) {
   NSWindow* native_parent = MakeClosableTitledNativeParent();
@@ -1365,8 +1382,7 @@
   ASSERT_EQ(2u, children.size());
   EXPECT_TRUE(children.count(sheet_widget));
 
-  // Sheets are not child windows of their parent NSWindow, though.
-  ASSERT_EQ(0u, [native_parent childWindows].count);
+  AssertNoChildrenForWindowWithSheet(native_parent.childWindows);
 
   // Modal, so the close button in the parent window should get disabled.
   EXPECT_FALSE([parent_close_button isEnabled]);
@@ -1389,7 +1405,7 @@
   widget_observer.WaitForVisibleCounts(1, 1);
   EXPECT_FALSE(sheet_widget->IsVisible());
   [native_parent makeKeyAndOrderFront:nil];
-  ASSERT_EQ(0u, [native_parent childWindows].count);
+  AssertNoChildrenForWindowWithSheet(native_parent.childWindows);
   widget_observer.WaitForVisibleCounts(2, 1);
   EXPECT_TRUE(sheet_widget->IsVisible());
 
diff --git a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
index 7cb2726..93db286d 100644
--- a/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
+++ b/ui/webui/resources/cr_components/chromeos/network/BUILD.gn
@@ -127,6 +127,7 @@
 js_library("network_ip_config") {
   deps = [
     ":onc_mojo",
+    "../../../cr_elements/cr_toggle:cr_toggle",
     "//ui/webui/resources/js:i18n_behavior",
   ]
 }
@@ -135,6 +136,7 @@
   deps = [
     ":cr_policy_network_behavior_mojo",
     ":onc_mojo",
+    "../../../cr_elements/cr_radio_group:cr_radio_group",
     "//ui/webui/resources/js:i18n_behavior",
   ]
 }
@@ -245,10 +247,10 @@
 js_type_check("closure_compile_module") {
   is_polymer3 = true
   deps = [
-    ":mojo_interface_provider.m",
-
     ":cr_policy_network_behavior_mojo.m",
     ":cr_policy_network_indicator_mojo.m",
+    ":mojo_interface_provider.m",
+
     #  ":network_apnlist.m",
     #  ":network_choose_mobile.m",
     #  ":network_config.m",
@@ -528,9 +530,9 @@
   html_file = "cr_policy_network_indicator_mojo.html"
   html_type = "dom-module"
   auto_imports = cr_components_chromeos_auto_imports + [
-    "ui/webui/resources/cr_elements/policy/cr_policy_indicator_behavior.html|CrPolicyIndicatorBehavior,CrPolicyIndicatorType",
-    "ui/webui/resources/cr_components/chromeos/network/cr_policy_network_behavior_mojo.html|CrPolicyNetworkBehaviorMojo",
-  ]
+                   "ui/webui/resources/cr_elements/policy/cr_policy_indicator_behavior.html|CrPolicyIndicatorBehavior,CrPolicyIndicatorType",
+                   "ui/webui/resources/cr_components/chromeos/network/cr_policy_network_behavior_mojo.html|CrPolicyNetworkBehaviorMojo",
+                 ]
 }
 
 polymer_modulizer("network_apnlist") {
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_apnlist.js b/ui/webui/resources/cr_components/chromeos/network/network_apnlist.js
index c1a9a14..54f5441 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_apnlist.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_apnlist.js
@@ -95,6 +95,14 @@
     },
   },
 
+  /*
+   * Returns the select APN SelectElement.
+   * @return {?HTMLSelectElement}
+   */
+  getApnSelect() {
+    return /** @type {?HTMLSelectElement} */ (this.$$('#selectApn'));
+  },
+
   /**
    * @param {!chromeos.networkConfig.mojom.ManagedApnProperties} apn
    * @return {!chromeos.networkConfig.mojom.ApnProperties}
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_config_toggle.js b/ui/webui/resources/cr_components/chromeos/network/network_config_toggle.js
index aae8dda..87ebe65 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_config_toggle.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_config_toggle.js
@@ -39,6 +39,11 @@
     'click': 'onHostTap_',
   },
 
+  /** @override */
+  focus() {
+    this.$$('cr-toggle').focus();
+  },
+
   /**
    * Handles non cr-toggle button clicks (cr-toggle handles its own click events
    * which don't bubble).
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
index 312c671..7926dfa 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
+++ b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.html
@@ -21,7 +21,7 @@
       <cr-policy-indicator indicator-type="[[getPolicyIndicatorType(
           managedProperties.ipAddressConfigType)]]">
       </cr-policy-indicator>
-      <cr-toggle checked="{{automatic_}}"
+      <cr-toggle id="autoConfigIpToggle" checked="{{automatic_}}"
           disabled="[[!canChangeIPConfigType_(managedProperties)]]"
           on-change="onAutomaticChange_"
           aria-labelledby="autoIPConfigLabel">
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
index 247901e5..47e3abca 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_ip_config.js
@@ -137,6 +137,14 @@
   },
 
   /**
+   * Returns the automatically configure IP CrToggleElement.
+   * @return {?CrToggleElement}
+   */
+  getAutoConfigIpToggle() {
+    return /** @type {?CrToggleElement} */ (this.$$('#autoConfigIpToggle'));
+  },
+
+  /**
    * Saved static IP configuration properties when switching to 'automatic'.
    * @private {!OncMojo.IPConfigUIProperties|undefined}
    */
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_nameservers.js b/ui/webui/resources/cr_components/chromeos/network/network_nameservers.js
index ad220687..a702529 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_nameservers.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_nameservers.js
@@ -71,6 +71,14 @@
    */
   savedNameservers_: [],
 
+  /*
+   * Returns the nameserver type CrRadioGroupElement.
+   * @return {?CrRadioGroupElement}
+   */
+  getNameserverRadioButtons() {
+    return /** @type {?CrRadioGroupElement} */ (this.$$('#nameserverType'));
+  },
+
   /**
    * Returns true if |nameservers| contains any all google nameserver entries
    * and only google nameserver entries or empty entries.
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java
index 97cf066..bb59addd 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/DownloadCallbackTest.java
@@ -18,7 +18,6 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.content_public.browser.test.util.Criteria;
 import org.chromium.content_public.browser.test.util.CriteriaHelper;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
@@ -198,7 +197,6 @@
 
     @Test
     @SmallTest
-    @DisabledTest(message = "Flaky - https://crbug.com/1116248")
     public void testBasic() {
         String url = mActivityTestRule.getTestDataURL("content-disposition.html");
         TestThreadUtils.runOnUiThreadBlocking(
diff --git a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ErrorPageCallbackTest.java b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ErrorPageCallbackTest.java
index e31e840..78d8ed76 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ErrorPageCallbackTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/weblayer/test/ErrorPageCallbackTest.java
@@ -17,7 +17,6 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 import org.chromium.net.test.EmbeddedTestServer;
 import org.chromium.net.test.ServerCertificate;
@@ -151,7 +150,6 @@
     @Test
     @SmallTest
     @MinWebLayerVersion(86)
-    @DisabledTest(message = "Flaky - https://crbug.com/1116277")
     public void testOverrideErrorPage() throws Throwable {
         mCallback.mErrorPage = new ErrorPage("<html><head><title>test error</title>");
         TestThreadUtils.runOnUiThreadBlocking(
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper.cc b/weblayer/browser/favicon/favicon_backend_wrapper.cc
index d5bec5e..6549964 100644
--- a/weblayer/browser/favicon/favicon_backend_wrapper.cc
+++ b/weblayer/browser/favicon/favicon_backend_wrapper.cc
@@ -12,6 +12,16 @@
 
 namespace weblayer {
 
+// Removing out of date entries can be costly. To avoid blocking the thread
+// this code runs on, the work is potentially throttled. Specifically at
+// most |kMaxNumberOfEntriesToRemoveAtATime| are removed during a single call.
+// If |kMaxNumberOfEntriesToRemoveAtATime| are removed, then there may be more
+// entries that can be removed, so the timer is restarted with a shorter time
+// out (|kTimeDeltaForRunningExpireWithRemainingWork|).
+constexpr base::TimeDelta kTimeDeltaForRunningExpireNoRemainingWork =
+    base::TimeDelta::FromHours(1);
+constexpr int kMaxNumberOfEntriesToRemoveAtATime = 100;
+
 FaviconBackendWrapper::FaviconBackendWrapper(
     scoped_refptr<base::SequencedTaskRunner> task_runner)
     : base::RefCountedDeleteOnSequence<FaviconBackendWrapper>(task_runner),
@@ -34,12 +44,16 @@
       return;
     }
   }
+
+  expire_timer_.Start(FROM_HERE, kTimeDeltaForRunningExpireWithRemainingWork,
+                      this, &FaviconBackendWrapper::OnExpireTimerFired);
 }
 
 void FaviconBackendWrapper::Shutdown() {
   // Ensures there isn't a reference to this in the task runner (by way of the
   // task the timer posts).
   commit_timer_.Stop();
+  expire_timer_.Stop();
 }
 
 void FaviconBackendWrapper::DeleteAndRecreateDatabase() {
@@ -145,4 +159,28 @@
     favicon_backend_->Commit();
 }
 
+void FaviconBackendWrapper::OnExpireTimerFired() {
+  if (!favicon_backend_)
+    return;
+
+  // See comments above |kTimeDeltaForRunningExpireNoRemainingWork| for a
+  // description of this logic.
+  favicon::FaviconDatabase* db = favicon_backend_->db();
+  auto icon_ids = db->GetFaviconsLastUpdatedBefore(
+      base::Time::Now() - kTimeDeltaWhenEntriesAreRemoved,
+      kMaxNumberOfEntriesToRemoveAtATime);
+  for (favicon_base::FaviconID icon_id : icon_ids) {
+    db->DeleteFavicon(icon_id);
+    db->DeleteIconMappingsForFaviconId(icon_id);
+  }
+  if (!icon_ids.empty())
+    Commit();
+  const base::TimeDelta delta =
+      icon_ids.size() == kMaxNumberOfEntriesToRemoveAtATime
+          ? kTimeDeltaForRunningExpireWithRemainingWork
+          : kTimeDeltaForRunningExpireNoRemainingWork;
+  expire_timer_.Start(FROM_HERE, delta, this,
+                      &FaviconBackendWrapper::OnExpireTimerFired);
+}
+
 }  // namespace weblayer
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper.h b/weblayer/browser/favicon/favicon_backend_wrapper.h
index f5c2dcce..7f83faa 100644
--- a/weblayer/browser/favicon/favicon_backend_wrapper.h
+++ b/weblayer/browser/favicon/favicon_backend_wrapper.h
@@ -29,8 +29,7 @@
 namespace weblayer {
 
 // FaviconBackendWrapper runs on a background task-runner and owns the database
-// side of favicons. This class largely delegates to favicon::FaviconBackend
-// and has very little logic.
+// side of favicons. This class largely delegates to favicon::FaviconBackend.
 class FaviconBackendWrapper
     : public base::RefCountedDeleteOnSequence<FaviconBackendWrapper>,
       public favicon::FaviconBackendDelegate {
@@ -82,10 +81,15 @@
  private:
   friend class base::RefCountedDeleteOnSequence<FaviconBackendWrapper>;
   friend class base::DeleteHelper<FaviconBackendWrapper>;
+  friend class FaviconBackendWrapperTest;
+
   ~FaviconBackendWrapper() override;
 
   void Commit();
 
+  // Called to expire (remove) out of date icons and restart the timer.
+  void OnExpireTimerFired();
+
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
   // Timer used to delay commits for a short amount of time. This done to
@@ -96,9 +100,24 @@
   // the database this will be null.
   std::unique_ptr<favicon::FaviconBackend> favicon_backend_;
 
+  // Timer used to remove items from the database that are likely no longer
+  // needed.
+  base::OneShotTimer expire_timer_;
+
   base::FilePath db_path_;
 };
 
+// These values are here only for tests.
+
+// Amount of time before favicons are removed. That is, any favicons downloaded
+// before this amount of time are removed.
+constexpr base::TimeDelta kTimeDeltaWhenEntriesAreRemoved =
+    base::TimeDelta::FromDays(30);
+
+// See comment near kMaxNumberOfEntriesToRemoveAtATime for details on this.
+constexpr base::TimeDelta kTimeDeltaForRunningExpireWithRemainingWork =
+    base::TimeDelta::FromMinutes(2);
+
 }  // namespace weblayer
 
 #endif  // WEBLAYER_BROWSER_FAVICON_FAVICON_BACKEND_WRAPPER_H_
diff --git a/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc b/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc
new file mode 100644
index 0000000..517b684
--- /dev/null
+++ b/weblayer/browser/favicon/favicon_backend_wrapper_unittest.cc
@@ -0,0 +1,130 @@
+// Copyright 2020 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 "weblayer/browser/favicon/favicon_backend_wrapper.h"
+
+#include <vector>
+
+#include "base/files/file_path.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/memory/ref_counted_memory.h"
+#include "base/test/task_environment.h"
+#include "base/threading/thread_task_runner_handle.h"
+#include "components/favicon/core/favicon_backend.h"
+#include "components/favicon/core/favicon_database.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace weblayer {
+namespace {
+
+// Blobs for adding favicons.
+const unsigned char kBlob1[] =
+    "12346102356120394751634516591348710478123649165419234519234512349134";
+
+}  // namespace
+
+class FaviconBackendWrapperTest : public testing::Test {
+ protected:
+  favicon::FaviconBackend* backend() {
+    return wrapper_->favicon_backend_.get();
+  }
+
+  // testing::Test:
+  void SetUp() override {
+    // Get a temporary directory for the test DB files.
+    ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
+
+    db_path_ = temp_dir_.GetPath().AppendASCII("test_db");
+  }
+
+  void TearDown() override {
+    wrapper_ = nullptr;
+    testing::Test::TearDown();
+  }
+
+  base::test::SingleThreadTaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
+  base::ScopedTempDir temp_dir_;
+  base::FilePath db_path_;
+  scoped_refptr<FaviconBackendWrapper> wrapper_;
+};
+
+TEST_F(FaviconBackendWrapperTest, BasicExpire) {
+  wrapper_ = base::MakeRefCounted<FaviconBackendWrapper>(
+      base::ThreadTaskRunnerHandle::Get());
+  wrapper_->Init(db_path_);
+  ASSERT_TRUE(backend());
+  auto* db = backend()->db();
+
+  std::vector<unsigned char> data(kBlob1, kBlob1 + sizeof(kBlob1));
+  scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
+  GURL url("http://google.com");
+  const base::Time time1 = base::Time::Now();
+  favicon_base::FaviconID favicon_id1 =
+      db->AddFavicon(url, favicon_base::IconType::kTouchIcon, favicon,
+                     favicon::FaviconBitmapType::ON_VISIT, time1, gfx::Size());
+  ASSERT_NE(0, favicon_id1);
+  favicon::IconMappingID icon_mapping_id1 =
+      db->AddIconMapping(url, favicon_id1);
+  ASSERT_NE(0, icon_mapping_id1);
+
+  // Fast forward past first expire running.
+  task_environment_.FastForwardBy(kTimeDeltaForRunningExpireWithRemainingWork *
+                                  2);
+  // The icon should still be there.
+  EXPECT_TRUE(db->GetFaviconHeader(favicon_id1, nullptr, nullptr));
+  EXPECT_TRUE(db->HasMappingFor(favicon_id1));
+
+  // Fast forward such that the icon is removed.
+  task_environment_.FastForwardBy(kTimeDeltaWhenEntriesAreRemoved);
+  EXPECT_FALSE(db->GetFaviconHeader(favicon_id1, nullptr, nullptr));
+  EXPECT_FALSE(db->HasMappingFor(favicon_id1));
+}
+
+TEST_F(FaviconBackendWrapperTest, ExpireWithOneRemaining) {
+  wrapper_ = base::MakeRefCounted<FaviconBackendWrapper>(
+      base::ThreadTaskRunnerHandle::Get());
+  wrapper_->Init(db_path_);
+  ASSERT_TRUE(backend());
+  auto* db = backend()->db();
+
+  // Add two entries. The second is more recent then the first.
+  std::vector<unsigned char> data(kBlob1, kBlob1 + sizeof(kBlob1));
+  scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
+  GURL url("http://google.com");
+  const base::Time time1 = base::Time::Now();
+  favicon_base::FaviconID favicon_id1 =
+      db->AddFavicon(url, favicon_base::IconType::kTouchIcon, favicon,
+                     favicon::FaviconBitmapType::ON_VISIT, time1, gfx::Size());
+  ASSERT_NE(0, favicon_id1);
+  favicon::IconMappingID icon_mapping_id1 =
+      db->AddIconMapping(url, favicon_id1);
+  ASSERT_NE(0, icon_mapping_id1);
+  const base::Time time2 = time1 + kTimeDeltaWhenEntriesAreRemoved / 2;
+  favicon_base::FaviconID favicon_id2 =
+      db->AddFavicon(url, favicon_base::IconType::kTouchIcon, favicon,
+                     favicon::FaviconBitmapType::ON_VISIT, time2, gfx::Size());
+  ASSERT_NE(0, favicon_id2);
+  favicon::IconMappingID icon_mapping_id2 =
+      db->AddIconMapping(url, favicon_id2);
+  ASSERT_NE(0, icon_mapping_id2);
+
+  // Fast forward such the first entry is expired and should be removed, but
+  // not the second.
+  task_environment_.FastForwardBy(kTimeDeltaWhenEntriesAreRemoved +
+                                  base::TimeDelta::FromDays(1));
+  EXPECT_FALSE(db->GetFaviconHeader(favicon_id1, nullptr, nullptr));
+  EXPECT_FALSE(db->HasMappingFor(favicon_id1));
+  EXPECT_TRUE(db->GetFaviconHeader(favicon_id2, nullptr, nullptr));
+  EXPECT_TRUE(db->HasMappingFor(favicon_id2));
+
+  // Fast forward enough such that second is removed.
+  task_environment_.FastForwardBy(kTimeDeltaWhenEntriesAreRemoved +
+                                  base::TimeDelta::FromDays(1));
+  EXPECT_FALSE(db->GetFaviconHeader(favicon_id2, nullptr, nullptr));
+  EXPECT_FALSE(db->HasMappingFor(favicon_id2));
+}
+
+}  // namespace weblayer
diff --git a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
index 983ed150..5d88655 100644
--- a/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
+++ b/weblayer/shell/android/shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java
@@ -62,6 +62,8 @@
 /**
  * Activity for managing the Demo Shell.
  */
+// This isn't part of Chrome, so using explicit colors/sizes is ok.
+@SuppressWarnings("checkstyle:SetTextColorAndSetTextSizeCheck")
 public class WebLayerShellActivity extends FragmentActivity {
     private static final String NON_INCOGNITO_PROFILE_NAME = "DefaultProfile";
     private static final String EXTRA_WEBVIEW_COMPAT = "EXTRA_WEBVIEW_COMPAT";
diff --git a/weblayer/test/BUILD.gn b/weblayer/test/BUILD.gn
index 63320d3..0de403e 100644
--- a/weblayer/test/BUILD.gn
+++ b/weblayer/test/BUILD.gn
@@ -244,12 +244,14 @@
 test("weblayer_unittests") {
   deps = [
     ":run_all_unittests",
+    "//components/favicon/core:database",
     "//components/site_isolation",
   ]
   if (is_android) {
     deps += [ ":weblayer_test_assets" ]
   }
   sources = [
+    "../browser/favicon/favicon_backend_wrapper_unittest.cc",
     "../browser/profile_disk_operations_unittests.cc",
     "../browser/site_isolation_policy_unittest.cc",
   ]