diff --git a/BUILD.gn b/BUILD.gn
index 1b83d3c..c01e2de 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -785,10 +785,6 @@
     "//third_party/pffft:pffft_benchmark",
     "//third_party/pffft:pffft_unittest",
   ]
-
-  if (is_linux) {
-    deps += [ "//third_party/openscreen/src:gn_all" ]
-  }
 }
 
 if ((is_linux || is_win) && enable_remoting && !use_ozone) {
diff --git a/DEPS b/DEPS
index 9f20dda..736f243 100644
--- a/DEPS
+++ b/DEPS
@@ -133,11 +133,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': '348880c3f67fb4422d1f66588ab87866c6ea848f',
+  'skia_revision': '1f09898e9a8a31f0ea977253ab39b908d0ae0dce',
   # 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': '0ef678d942fe182261c0120adea1091d6dde1986',
+  'v8_revision': '9d8a97f7ece30ae9a93f6766960375fc514e78d1',
   # 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.
@@ -145,11 +145,11 @@
   # 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': 'bff32703c75b0326ca3c7e49e49c7ecdacdef41e',
+  'angle_revision': 'a253cff3c8ac98adce68c75ae03cb65616352d58',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': 'cfbe5379bf8e12168908c305ab7228bb195d19bb',
+  'swiftshader_revision': '10186cb85fd68463067f8b0cbc59695739dbabbd',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
@@ -196,7 +196,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': '578d0b9046cc2dbce6c0c38637b71627169cb5d2',
+  'catapult_revision': '71e1bec28dde3882f523a2bff1f82842ad710e9d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -252,7 +252,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.
-  'spv_tools_revision': 'f815e6fe51af7d4c3df293af11acb7a233745412',
+  'spv_tools_revision': '84503583c6f03661e44d0d33b0b819ea8e58a34b',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -272,7 +272,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': '8eb45e950572f179000f13d707d6392619e929cb',
+  'quiche_revision': '63d0bc4ae8dcc67502f30c320cdc074c44ea4d89',
   # 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.
@@ -802,7 +802,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '69250bb90295f22db34c8c853e218a77a0cac787',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '023ca2db25adb55eeb69a42c2fa2021f946ea859',
       'condition': 'checkout_linux',
   },
 
@@ -1154,7 +1154,7 @@
     Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '6f26bce0b1c4e8ce0e13332f7c0083788def5fdf',
 
   'src/third_party/openscreen/src':
-    Var('chromium_git') + '/openscreen' + '@' + '035ec87f86835b249e5d873d0b52add07b299406',
+    Var('chromium_git') + '/openscreen' + '@' + 'b1d095ba4f8f3ec1efd90dbd5cb0a37e5b4b21f7',
 
   'src/third_party/ow2_asm': {
       'packages': [
@@ -1389,7 +1389,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@66347fe2ab6c4e95cc2b7abba325f16374c41019',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@ed36a5728bd95c97fce0821c471e118f285b0475',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/android_webview/browser/aw_autofill_client.cc b/android_webview/browser/aw_autofill_client.cc
index 5b226a5..9b4c32bc 100644
--- a/android_webview/browser/aw_autofill_client.cc
+++ b/android_webview/browser/aw_autofill_client.cc
@@ -13,8 +13,8 @@
 #include "base/android/scoped_java_ref.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_macros.h"
-#include "components/autofill/core/browser/autofill_popup_delegate.h"
-#include "components/autofill/core/browser/suggestion.h"
+#include "components/autofill/core/browser/ui/autofill_popup_delegate.h"
+#include "components/autofill/core/browser/ui/suggestion.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
diff --git a/apps/ui/views/app_window_frame_view.cc b/apps/ui/views/app_window_frame_view.cc
index 0caa47b..ccedbcc 100644
--- a/apps/ui/views/app_window_frame_view.cc
+++ b/apps/ui/views/app_window_frame_view.cc
@@ -197,17 +197,17 @@
     return client_component;
 
   // Then see if the point is within any of the window controls.
-  if (close_button_ && close_button_->visible() &&
+  if (close_button_ && close_button_->GetVisible() &&
       close_button_->GetMirroredBounds().Contains(point)) {
     return HTCLOSE;
   }
-  if ((maximize_button_ && maximize_button_->visible() &&
+  if ((maximize_button_ && maximize_button_->GetVisible() &&
        maximize_button_->GetMirroredBounds().Contains(point)) ||
-      (restore_button_ && restore_button_->visible() &&
+      (restore_button_ && restore_button_->GetVisible() &&
        restore_button_->GetMirroredBounds().Contains(point))) {
     return HTMAXBUTTON;
   }
-  if (minimize_button_ && minimize_button_->visible() &&
+  if (minimize_button_ && minimize_button_->GetVisible() &&
       minimize_button_->GetMirroredBounds().Contains(point)) {
     return HTMINBUTTON;
   }
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc
index 04c54d4..57dcc9d 100644
--- a/ash/accelerators/accelerator_controller_impl.cc
+++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -593,7 +593,7 @@
       Shelf::ForWindow(Shell::GetPrimaryRootWindow())->GetStatusAreaWidget();
   if (status_area_widget) {
     ImeMenuTray* ime_menu_tray = status_area_widget->ime_menu_tray();
-    if (ime_menu_tray && ime_menu_tray->visible() &&
+    if (ime_menu_tray && ime_menu_tray->GetVisible() &&
         !ime_menu_tray->GetBubbleView()) {
       ime_menu_tray->ShowBubble(false /* show_by_click */);
     }
diff --git a/ash/app_list/app_list_controller_impl_unittest.cc b/ash/app_list/app_list_controller_impl_unittest.cc
index cbf28b3..2e43ef2 100644
--- a/ash/app_list/app_list_controller_impl_unittest.cc
+++ b/ash/app_list/app_list_controller_impl_unittest.cc
@@ -49,7 +49,7 @@
       ->app_list_main_view()
       ->contents_view()
       ->expand_arrow_view()
-      ->visible();
+      ->GetVisible();
 }
 
 app_list::SearchBoxView* GetSearchBoxView() {
diff --git a/ash/app_list/views/app_list_main_view_unittest.cc b/ash/app_list/views/app_list_main_view_unittest.cc
index 8e82135..c6efc65 100644
--- a/ash/app_list/views/app_list_main_view_unittest.cc
+++ b/ash/app_list/views/app_list_main_view_unittest.cc
@@ -43,7 +43,7 @@
   ~GridViewVisibleWaiter() {}
 
   void Wait() {
-    if (grid_view_->visible())
+    if (grid_view_->GetVisible())
       return;
 
     check_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(50),
@@ -56,7 +56,7 @@
 
  private:
   void OnTimerCheck() {
-    if (grid_view_->visible())
+    if (grid_view_->GetVisible())
       run_loop_->Quit();
   }
 
@@ -205,10 +205,10 @@
     EXPECT_EQ(folder_item_view->item(), folder_item);
 
     // Click on the folder to open it.
-    EXPECT_FALSE(FolderView()->visible());
+    EXPECT_FALSE(FolderView()->GetVisible());
     SimulateClick(folder_item_view);
     base::RunLoop().RunUntilIdle();
-    EXPECT_TRUE(FolderView()->visible());
+    EXPECT_TRUE(FolderView()->GetVisible());
 
     return folder_item_view;
   }
@@ -220,8 +220,8 @@
     AppListItemView* dragged =
         SimulateInitiateDrag(FolderGridView(), AppsGridView::MOUSE, point);
     EXPECT_EQ(item_view, dragged);
-    EXPECT_FALSE(RootGridView()->visible());
-    EXPECT_TRUE(FolderView()->visible());
+    EXPECT_FALSE(RootGridView()->GetVisible());
+    EXPECT_TRUE(FolderView()->GetVisible());
 
     // Drag it to top left corner.
     point = gfx::Point(0, 0);
@@ -234,7 +234,7 @@
 
     // Wait until the folder view is invisible and root grid view shows up.
     GridViewVisibleWaiter(RootGridView()).Wait();
-    EXPECT_TRUE(RootGridView()->visible());
+    EXPECT_TRUE(RootGridView()->GetVisible());
     EXPECT_EQ(0, FolderView()->layer()->opacity());
 
     return dragged;
diff --git a/ash/app_list/views/app_list_view_unittest.cc b/ash/app_list/views/app_list_view_unittest.cc
index ca4793e..d11fbad 100644
--- a/ash/app_list/views/app_list_view_unittest.cc
+++ b/ash/app_list/views/app_list_view_unittest.cc
@@ -71,7 +71,7 @@
 size_t GetVisibleViews(const std::vector<T*>& tiles) {
   size_t count = 0;
   for (const auto& tile : tiles) {
-    if (tile->visible())
+    if (tile->GetVisible())
       count++;
   }
   return count;
@@ -81,7 +81,7 @@
 void CheckView(views::View* subview) {
   ASSERT_TRUE(subview);
   EXPECT_TRUE(subview->parent());
-  EXPECT_TRUE(subview->visible());
+  EXPECT_TRUE(subview->GetVisible());
   EXPECT_TRUE(subview->IsDrawn());
   EXPECT_FALSE(subview->bounds().IsEmpty());
 }
@@ -573,7 +573,7 @@
     std::vector<views::View*> suggestions;
     std::copy_if(children.cbegin(), children.cend(),
                  std::back_inserter(suggestions),
-                 [](const auto* v) { return v->visible(); });
+                 [](const auto* v) { return v->GetVisible(); });
     return suggestions;
   }
 
@@ -2123,7 +2123,7 @@
   EXPECT_TRUE(contents_view->Back());
   contents_view->Layout();
   EXPECT_TRUE(IsStateShown(ash::AppListState::kStateApps));
-  EXPECT_FALSE(search_box_view->back_button()->visible());
+  EXPECT_FALSE(search_box_view->back_button()->GetVisible());
 
   // Show the apps grid again.
   SetAppListState(ash::AppListState::kStateApps);
@@ -2133,7 +2133,7 @@
   view_->AcceleratorPressed(ui::Accelerator(ui::VKEY_ESCAPE, ui::EF_NONE));
   contents_view->Layout();
   EXPECT_TRUE(IsStateShown(ash::AppListState::kStateApps));
-  EXPECT_FALSE(search_box_view->back_button()->visible());
+  EXPECT_FALSE(search_box_view->back_button()->GetVisible());
 
   // Pressing ESC from the start page should close the app list.
   EXPECT_EQ(0, delegate_->dismiss_count());
@@ -2152,7 +2152,7 @@
   EXPECT_TRUE(contents_view->Back());
   contents_view->Layout();
   EXPECT_TRUE(IsStateShown(ash::AppListState::kStateApps));
-  EXPECT_FALSE(search_box_view->back_button()->visible());
+  EXPECT_FALSE(search_box_view->back_button()->GetVisible());
 }
 
 // Tests that even if initialize is called again with a different initial page,
diff --git a/ash/app_list/views/assistant/assistant_main_stage.cc b/ash/app_list/views/assistant/assistant_main_stage.cc
index 93afcc4..bdf678f 100644
--- a/ash/app_list/views/assistant/assistant_main_stage.cc
+++ b/ash/app_list/views/assistant/assistant_main_stage.cc
@@ -279,7 +279,7 @@
 
   // The footer is only visible when the progress indicator is not.
   // When it is not visible, it should not process events.
-  bool visible = !progress_indicator_->visible();
+  bool visible = !progress_indicator_->GetVisible();
 
   // Reset visibility to enable animation.
   footer_->SetVisible(true);
@@ -335,7 +335,7 @@
     const ui::CallbackLayerAnimationObserver& observer) {
   // The footer should only process events when visible. It is only visible when
   // the progress indicator is not visible.
-  bool visible = !progress_indicator_->visible();
+  bool visible = !progress_indicator_->GetVisible();
   footer_->set_can_process_events_within_subtree(visible);
   footer_->SetVisible(visible);
 
diff --git a/ash/app_list/views/contents_view.cc b/ash/app_list/views/contents_view.cc
index 8ee8c3a..53c7400 100644
--- a/ash/app_list/views/contents_view.cc
+++ b/ash/app_list/views/contents_view.cc
@@ -226,7 +226,7 @@
 void ContentsView::SetActiveStateInternal(int page_index,
                                           bool show_search_or_assistant_results,
                                           bool animate) {
-  if (!GetPageView(page_index)->visible())
+  if (!GetPageView(page_index)->GetVisible())
     return;
 
   if (!show_search_or_assistant_results)
@@ -636,7 +636,7 @@
 }
 
 void ContentsView::SetExpandArrowViewVisibility(bool show) {
-  if (expand_arrow_view_->visible() == show)
+  if (expand_arrow_view_->GetVisible() == show)
     return;
 
   expand_arrow_view_->SetVisible(show);
diff --git a/ash/app_list/views/folder_header_view.cc b/ash/app_list/views/folder_header_view.cc
index 7816fe7c..4a45d86 100644
--- a/ash/app_list/views/folder_header_view.cc
+++ b/ash/app_list/views/folder_header_view.cc
@@ -180,7 +180,7 @@
 }
 
 bool FolderHeaderView::IsFolderNameEnabledForTest() const {
-  return folder_name_view_->enabled();
+  return folder_name_view_->GetEnabled();
 }
 
 gfx::Size FolderHeaderView::CalculatePreferredSize() const {
diff --git a/ash/app_list/views/search_box_view_unittest.cc b/ash/app_list/views/search_box_view_unittest.cc
index f446c2b..84c0b15 100644
--- a/ash/app_list/views/search_box_view_unittest.cc
+++ b/ash/app_list/views/search_box_view_unittest.cc
@@ -160,13 +160,13 @@
 
 // Tests that the close button is invisible by default.
 TEST_F(SearchBoxViewTest, CloseButtonInvisibleByDefault) {
-  EXPECT_FALSE(view()->close_button()->visible());
+  EXPECT_FALSE(view()->close_button()->GetVisible());
 }
 
 // Tests that the close button becomes visible after typing in the search box.
 TEST_F(SearchBoxViewTest, CloseButtonVisibleAfterTyping) {
   KeyPress(ui::VKEY_A);
-  EXPECT_TRUE(view()->close_button()->visible());
+  EXPECT_TRUE(view()->close_button()->GetVisible());
 }
 
 // Tests that the close button is still invisible after the search box is
@@ -176,9 +176,9 @@
 
   // UI behavior is different with Zero State enabled.
   if (app_list_features::IsZeroStateSuggestionsEnabled())
-    EXPECT_TRUE(view()->close_button()->visible());
+    EXPECT_TRUE(view()->close_button()->GetVisible());
   else
-    EXPECT_FALSE(view()->close_button()->visible());
+    EXPECT_FALSE(view()->close_button()->GetVisible());
 }
 
 // Tests that the close button becomes invisible after close button is clicked.
@@ -189,7 +189,7 @@
       ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
                      base::TimeTicks(), ui::EF_LEFT_MOUSE_BUTTON,
                      ui::EF_LEFT_MOUSE_BUTTON));
-  EXPECT_FALSE(view()->close_button()->visible());
+  EXPECT_FALSE(view()->close_button()->GetVisible());
 }
 
 // Tests that the search box becomes empty after close button is clicked.
@@ -301,7 +301,7 @@
 
 // Tests that the assistant button is visible by default.
 TEST_F(SearchBoxViewAssistantButtonTest, AssistantButtonVisibleByDefault) {
-  EXPECT_TRUE(view()->assistant_button()->visible());
+  EXPECT_TRUE(view()->assistant_button()->GetVisible());
 }
 
 // Tests that the assistant button is visible after the search box is activated.
@@ -311,7 +311,7 @@
   // TODO(jennyz): Make assistant button show up under zero state.
   if (!app_list_features::IsZeroStateSuggestionsEnabled()) {
     SetSearchBoxActive(true, ui::ET_MOUSE_PRESSED);
-    EXPECT_TRUE(view()->assistant_button()->visible());
+    EXPECT_TRUE(view()->assistant_button()->GetVisible());
   }
 }
 
@@ -320,13 +320,13 @@
 TEST_F(SearchBoxViewAssistantButtonTest,
        AssistantButtonChangeVisibilityWithTyping) {
   KeyPress(ui::VKEY_A);
-  EXPECT_FALSE(view()->assistant_button()->visible());
+  EXPECT_FALSE(view()->assistant_button()->GetVisible());
 
   // Assistant button is not showing up under zero state for now.
   // TODO(crbug.com/925455): Make assistant button show up under zero state.
   if (!app_list_features::IsZeroStateSuggestionsEnabled()) {
     KeyPress(ui::VKEY_BACK);
-    EXPECT_TRUE(view()->assistant_button()->visible());
+    EXPECT_TRUE(view()->assistant_button()->GetVisible());
   }
 }
 
diff --git a/ash/app_list/views/search_result_actions_view.cc b/ash/app_list/views/search_result_actions_view.cc
index 59c20f9c..e07b1f0 100644
--- a/ash/app_list/views/search_result_actions_view.cc
+++ b/ash/app_list/views/search_result_actions_view.cc
@@ -112,7 +112,7 @@
 void SearchResultImageButton::OnFocus() {
   parent_->ActionButtonStateChanged();
   SchedulePaint();
-  if (visible())
+  if (GetVisible())
     NotifyAccessibilityEvent(ax::mojom::Event::kFocus, true);
 }
 
diff --git a/ash/app_list/views/search_result_answer_card_view_unittest.cc b/ash/app_list/views/search_result_answer_card_view_unittest.cc
index f7e53fe..d5f6217 100644
--- a/ash/app_list/views/search_result_answer_card_view_unittest.cc
+++ b/ash/app_list/views/search_result_answer_card_view_unittest.cc
@@ -126,7 +126,7 @@
 TEST_F(SearchResultAnswerCardViewTest, Basic) {
   EXPECT_EQ(kDisplayScore, GetContainerScore());
   EXPECT_EQ(1, GetResultCountFromView());
-  ASSERT_TRUE(search_card_view()->visible());
+  ASSERT_TRUE(search_card_view()->GetVisible());
   EXPECT_EQ(1, GetYSize());
 }
 
@@ -147,7 +147,7 @@
   DeleteResult();
   EXPECT_EQ(0UL, GetResults()->item_count());
   EXPECT_EQ(0, GetYSize());
-  ASSERT_FALSE(search_card_view()->visible());
+  ASSERT_FALSE(search_card_view()->GetVisible());
   EXPECT_EQ(0, GetContainerScore());
 }
 
diff --git a/ash/app_list/views/search_result_suggestion_chip_view.cc b/ash/app_list/views/search_result_suggestion_chip_view.cc
index dae8db2..87a879d6 100644
--- a/ash/app_list/views/search_result_suggestion_chip_view.cc
+++ b/ash/app_list/views/search_result_suggestion_chip_view.cc
@@ -120,7 +120,7 @@
   // When icon visibility is modified we need to update layout padding.
   if (child == icon_view_) {
     const int padding_left_dip =
-        icon_view_->visible() ? kIconMarginDip : kPaddingDip;
+        icon_view_->GetVisible() ? kIconMarginDip : kPaddingDip;
     layout_manager_->set_inside_border_insets(
         gfx::Insets(0, padding_left_dip, 0, kPaddingDip));
   }
diff --git a/ash/app_list/views/search_result_tile_item_view.cc b/ash/app_list/views/search_result_tile_item_view.cc
index 0d80c9b..5e0a2b23 100644
--- a/ash/app_list/views/search_result_tile_item_view.cc
+++ b/ash/app_list/views/search_result_tile_item_view.cc
@@ -223,13 +223,13 @@
   else
     accessible_name = title_->text();
 
-  if (rating_ && rating_->visible()) {
+  if (rating_ && rating_->GetVisible()) {
     accessible_name +=
         base::UTF8ToUTF16(", ") +
         l10n_util::GetStringFUTF16(IDS_APP_ACCESSIBILITY_STAR_RATING_ARC,
                                    rating_->text());
   }
-  if (price_ && price_->visible())
+  if (price_ && price_->GetVisible())
     accessible_name += base::UTF8ToUTF16(", ") + price_->text();
 
   if (result()->result_type() ==
diff --git a/ash/app_list/views/search_result_view.cc b/ash/app_list/views/search_result_view.cc
index 5d51ae2..cae7c46 100644
--- a/ash/app_list/views/search_result_view.cc
+++ b/ash/app_list/views/search_result_view.cc
@@ -248,7 +248,7 @@
   gfx::Rect content_rect(rect);
   gfx::Rect text_bounds(rect);
   text_bounds.set_x(kPreferredIconViewWidth);
-  if (actions_view_->visible()) {
+  if (actions_view_->GetVisible()) {
     text_bounds.set_width(
         rect.width() - kPreferredIconViewWidth - kTextTrailPadding -
         actions_view_->bounds().width() -
@@ -319,7 +319,7 @@
 }
 
 void SearchResultView::GetAccessibleNodeData(ui::AXNodeData* node_data) {
-  if (!visible())
+  if (!GetVisible())
     return;
 
   // This is a work around to deal with the nested button case(append and remove
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 84f7823..d17d579 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -1635,6 +1635,12 @@
       <message name="IDS_ASH_LOGIN_PUBLIC_ACCOUNT_MONITORING_INFO_ITEM_4" desc="Text shown in the warning dialog after user clicks on the learn more link, notifying the user of potential security and privacy implications of using the device">
         Adjust privacy settings
       </message>
+      <message name="IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIME" desc="Title of the parent access input dialog that allows to change the child's device time.">
+        Change time
+      </message>
+      <message name="IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIMEZONE" desc="Title of the parent access input dialog that allows to change the child's device timezone.">
+        Change timezone
+      </message>
       <message name="IDS_ASH_LOGIN_PARENT_ACCESS_DIALOG_NAME" desc="Accessible name of the parent access input dialog that allows to unlock child's device with a code.">
         Parent access
       </message>
@@ -1647,6 +1653,9 @@
       <message name="IDS_ASH_LOGIN_PARENT_ACCESS_DESCRIPTION" desc="Description shown on the parent access input dialog. Explains what code should be used to unlock the device.">
         To unlock the device, enter your Family Link parent access code
       </message>
+      <message name="IDS_ASH_LOGIN_PARENT_ACCESS_GENERIC_DESCRIPTION" desc="Description shown on the parent access input dialog. Explains what code should be used to unlock the device.">
+        Enter Family Link parent access code.
+      </message>
       <message name="IDS_ASH_LOGIN_PARENT_ACCESS_HELP" desc="Label of a button shown on the parent access input dialog.">
         Need help?
       </message>
diff --git a/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_GENERIC_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_GENERIC_DESCRIPTION.png.sha1
new file mode 100644
index 0000000..e621ecc
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_GENERIC_DESCRIPTION.png.sha1
@@ -0,0 +1 @@
+c91b340db5014b46e3a3f7fb921f595b4c1f40e6
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIME.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIME.png.sha1
new file mode 100644
index 0000000..1f1df04
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIME.png.sha1
@@ -0,0 +1 @@
+acacf3e1470cd06a751830e6d7b9a8f3165e4f25
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIMEZONE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIMEZONE.png.sha1
new file mode 100644
index 0000000..e621ecc
--- /dev/null
+++ b/ash/ash_strings_grd/IDS_ASH_LOGIN_PARENT_ACCESS_TITLE_CHANGE_TIMEZONE.png.sha1
@@ -0,0 +1 @@
+c91b340db5014b46e3a3f7fb921f595b4c1f40e6
\ No newline at end of file
diff --git a/ash/assistant/ui/assistant_container_view.cc b/ash/assistant/ui/assistant_container_view.cc
index d874a12..fd869a3 100644
--- a/ash/assistant/ui/assistant_container_view.cc
+++ b/ash/assistant/ui/assistant_container_view.cc
@@ -156,7 +156,7 @@
     // Our preferred width is the width of our largest visible child.
     int preferred_width = 0;
     for (const views::View* child : host->children()) {
-      if (child->visible()) {
+      if (child->GetVisible()) {
         preferred_width =
             std::max(child->GetPreferredSize().width(), preferred_width);
       }
@@ -170,7 +170,7 @@
     // Our preferred height is the height of our largest visible child.
     int preferred_height = 0;
     for (const views::View* child : host->children()) {
-      if (child->visible()) {
+      if (child->GetVisible()) {
         preferred_height =
             std::max(child->GetHeightForWidth(width), preferred_height);
       }
diff --git a/ash/assistant/ui/caption_bar.cc b/ash/assistant/ui/caption_bar.cc
index f811277..a634664 100644
--- a/ash/assistant/ui/caption_bar.cc
+++ b/ash/assistant/ui/caption_bar.cc
@@ -140,7 +140,7 @@
 }
 
 void CaptionBar::HandleButton(AssistantButtonId id) {
-  if (!GetViewByID(static_cast<int>(id))->visible())
+  if (!GetViewByID(static_cast<int>(id))->GetVisible())
     return;
 
   // If the delegate returns |true| it has handled the event and wishes to
diff --git a/ash/assistant/ui/main_stage/assistant_progress_indicator.cc b/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
index 6e058e7..5c3cdf3 100644
--- a/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
+++ b/ash/assistant/ui/main_stage/assistant_progress_indicator.cc
@@ -81,7 +81,7 @@
 }
 
 void AssistantProgressIndicator::AddedToWidget() {
-  VisibilityChanged(/*starting_from=*/this, /*is_visible=*/visible());
+  VisibilityChanged(/*starting_from=*/this, /*is_visible=*/GetVisible());
 }
 
 void AssistantProgressIndicator::RemovedFromWidget() {
@@ -91,7 +91,7 @@
 void AssistantProgressIndicator::OnLayerOpacityChanged(
     ui::PropertyChangeReason reason) {
   VisibilityChanged(/*starting_from=*/this,
-                    /*is_visible=*/visible());
+                    /*is_visible=*/GetVisible());
 }
 
 void AssistantProgressIndicator::VisibilityChanged(views::View* starting_from,
diff --git a/ash/assistant/ui/main_stage/suggestion_chip_view.cc b/ash/assistant/ui/main_stage/suggestion_chip_view.cc
index 23a3705d..9a74472 100644
--- a/ash/assistant/ui/main_stage/suggestion_chip_view.cc
+++ b/ash/assistant/ui/main_stage/suggestion_chip_view.cc
@@ -65,7 +65,7 @@
   // When icon visibility is modified we need to update layout padding.
   if (child == icon_view_) {
     const int padding_left_dip =
-        icon_view_->visible() ? kIconMarginDip : kChipPaddingDip;
+        icon_view_->GetVisible() ? kIconMarginDip : kChipPaddingDip;
     layout_manager_->set_inside_border_insets(
         gfx::Insets(0, padding_left_dip, 0, kChipPaddingDip));
   }
diff --git a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc
index db0276c..a0015b0 100644
--- a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc
+++ b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc
@@ -234,7 +234,7 @@
   search_box_bounds.set_y(top + kSearchBoxTopPadding);
   search_box_view_->SetBoundsRect(search_box_bounds);
 
-  views::View* content_view = categories_tabbed_pane_->visible()
+  views::View* content_view = categories_tabbed_pane_->GetVisible()
                                   ? categories_tabbed_pane_
                                   : search_results_container_;
   const int search_box_used_height = search_box_bounds.height() +
@@ -459,7 +459,7 @@
     // Remove all child views, including horizontal separator lines, to prepare
     // for showing search results next time.
     search_results_container_->RemoveAllChildViews(true);
-    if (!categories_tabbed_pane_->visible()) {
+    if (!categories_tabbed_pane_->GetVisible()) {
       // Repopulate |categories_tabbed_pane_| child views, which were removed
       // when they were added to |search_results_container_|.
       InitCategoriesTabbedPane(kAllCategories);
diff --git a/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc b/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
index 3a2b795..e9ecfd1 100644
--- a/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
+++ b/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
@@ -178,7 +178,7 @@
 
   // Press a key should enter search mode.
   KeyPress(ui::VKEY_A, /*should_insert=*/true);
-  EXPECT_TRUE(GetSearchBoxView()->back_button()->visible());
+  EXPECT_TRUE(GetSearchBoxView()->back_button()->GetVisible());
   EXPECT_FALSE(GetSearchBoxView()->search_box()->text().empty());
 
   // Case 2: Exit search mode by clicking |back_button|. The focus should be on
diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc
index 5239209..4afe4d3 100644
--- a/ash/drag_drop/drag_drop_controller.cc
+++ b/ash/drag_drop/drag_drop_controller.cc
@@ -465,7 +465,7 @@
   }
 
   DCHECK(drag_image_.get());
-  if (drag_image_->visible()) {
+  if (drag_image_->GetVisible()) {
     gfx::Point root_location_in_screen = event.root_location();
     ::wm::ConvertPointToScreen(target->GetRootWindow(),
                                &root_location_in_screen);
diff --git a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
index 1576533..952bb36 100644
--- a/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
+++ b/ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
@@ -111,9 +111,9 @@
   InitContainer(&container1);
   container1.Layout();
   FrameCaptionButtonContainerView::TestApi t1(&container1);
-  EXPECT_TRUE(t1.minimize_button()->visible());
-  EXPECT_TRUE(t1.size_button()->visible());
-  EXPECT_TRUE(t1.close_button()->visible());
+  EXPECT_TRUE(t1.minimize_button()->GetVisible());
+  EXPECT_TRUE(t1.size_button()->GetVisible());
+  EXPECT_TRUE(t1.close_button()->GetVisible());
   EXPECT_TRUE(CheckButtonsAtEdges(&container1, *t1.minimize_button(),
                                   *t1.close_button()));
 
@@ -124,9 +124,9 @@
   InitContainer(&container2);
   container2.Layout();
   FrameCaptionButtonContainerView::TestApi t2(&container2);
-  EXPECT_TRUE(t2.minimize_button()->visible());
-  EXPECT_FALSE(t2.size_button()->visible());
-  EXPECT_TRUE(t2.close_button()->visible());
+  EXPECT_TRUE(t2.minimize_button()->GetVisible());
+  EXPECT_FALSE(t2.size_button()->GetVisible());
+  EXPECT_TRUE(t2.close_button()->GetVisible());
   EXPECT_TRUE(CheckButtonsAtEdges(&container2, *t2.minimize_button(),
                                   *t2.close_button()));
 
@@ -137,9 +137,9 @@
   InitContainer(&container3);
   container3.Layout();
   FrameCaptionButtonContainerView::TestApi t3(&container3);
-  EXPECT_FALSE(t3.minimize_button()->visible());
-  EXPECT_FALSE(t3.size_button()->visible());
-  EXPECT_TRUE(t3.close_button()->visible());
+  EXPECT_FALSE(t3.minimize_button()->GetVisible());
+  EXPECT_FALSE(t3.size_button()->GetVisible());
+  EXPECT_TRUE(t3.close_button()->GetVisible());
   EXPECT_TRUE(
       CheckButtonsAtEdges(&container3, *t3.close_button(), *t3.close_button()));
 }
@@ -181,9 +181,9 @@
   // Parent needs to layout in response to size change.
   container.Layout();
 
-  EXPECT_TRUE(test.minimize_button()->visible());
-  EXPECT_TRUE(test.size_button()->visible());
-  EXPECT_TRUE(test.close_button()->visible());
+  EXPECT_TRUE(test.minimize_button()->GetVisible());
+  EXPECT_TRUE(test.size_button()->GetVisible());
+  EXPECT_TRUE(test.close_button()->GetVisible());
   gfx::Rect extra_button_bounds = extra_button->bounds();
   gfx::Rect minimize_button_bounds = test.minimize_button()->bounds();
   gfx::Rect size_button_bounds = test.size_button()->bounds();
@@ -202,9 +202,9 @@
   // Calling code needs to layout in response to size change.
   container.Layout();
   test.EndAnimations();
-  EXPECT_TRUE(test.minimize_button()->visible());
-  EXPECT_TRUE(test.size_button()->visible());
-  EXPECT_TRUE(test.close_button()->visible());
+  EXPECT_TRUE(test.minimize_button()->GetVisible());
+  EXPECT_TRUE(test.size_button()->GetVisible());
+  EXPECT_TRUE(test.close_button()->GetVisible());
   EXPECT_EQ(initial_extra_button_bounds, extra_button->bounds());
   EXPECT_EQ(initial_minimize_button_bounds, test.minimize_button()->bounds());
   EXPECT_EQ(initial_size_button_bounds, test.size_button()->bounds());
diff --git a/ash/frame/non_client_frame_view_ash.cc b/ash/frame/non_client_frame_view_ash.cc
index 2dff6e4..52e565b 100644
--- a/ash/frame/non_client_frame_view_ash.cc
+++ b/ash/frame/non_client_frame_view_ash.cc
@@ -207,7 +207,7 @@
   int onscreen_height = header_height_
                             ? *header_height_
                             : header_view_->GetPreferredOnScreenHeight();
-  if (onscreen_height == 0 || !visible()) {
+  if (onscreen_height == 0 || !GetVisible()) {
     header_view_->SetVisible(false);
   } else {
     const int height =
@@ -364,7 +364,7 @@
 }
 
 void NonClientFrameViewAsh::Layout() {
-  if (!enabled())
+  if (!GetEnabled())
     return;
   views::NonClientFrameView::Layout();
   aura::Window* frame_window = frame_->GetNativeWindow();
@@ -377,7 +377,7 @@
 }
 
 gfx::Size NonClientFrameViewAsh::GetMinimumSize() const {
-  if (use_empty_minimum_size_for_test_ || !enabled())
+  if (use_empty_minimum_size_for_test_ || !GetEnabled())
     return gfx::Size();
 
   gfx::Size min_client_view_size(frame_->client_view()->GetMinimumSize());
@@ -492,7 +492,7 @@
 int NonClientFrameViewAsh::NonClientTopBorderHeight() const {
   // The frame should not occupy the window area when it's in fullscreen,
   // not visible or disabled.
-  if (frame_->IsFullscreen() || !visible() || !enabled() ||
+  if (frame_->IsFullscreen() || !GetVisible() || !GetEnabled() ||
       header_view_->in_immersive_mode()) {
     return 0;
   }
diff --git a/ash/frame/non_client_frame_view_ash_unittest.cc b/ash/frame/non_client_frame_view_ash_unittest.cc
index cbc0a18..912faca 100644
--- a/ash/frame/non_client_frame_view_ash_unittest.cc
+++ b/ash/frame/non_client_frame_view_ash_unittest.cc
@@ -539,7 +539,7 @@
   model_ptr->SetVisible(views::CAPTION_BUTTON_ICON_BACK, true);
   non_client_frame_view->SizeConstraintsChanged();
   EXPECT_TRUE(header_view->GetBackButton());
-  EXPECT_FALSE(header_view->GetBackButton()->enabled());
+  EXPECT_FALSE(header_view->GetBackButton()->GetEnabled());
 
   // Back button is disabled, so clicking on it should not should
   // generate back key sequence.
@@ -553,7 +553,7 @@
   model_ptr->SetEnabled(views::CAPTION_BUTTON_ICON_BACK, true);
   non_client_frame_view->SizeConstraintsChanged();
   EXPECT_TRUE(header_view->GetBackButton());
-  EXPECT_TRUE(header_view->GetBackButton()->enabled());
+  EXPECT_TRUE(header_view->GetBackButton()->GetEnabled());
 
   // Back button is now enabled, so clicking on it should generate
   // back key sequence.
@@ -588,7 +588,7 @@
   widget->GetRootView()->Layout();
   EXPECT_EQ(gfx::Size(200, 100),
             widget->client_view()->GetLocalBounds().size());
-  EXPECT_FALSE(widget->non_client_view()->frame_view()->visible());
+  EXPECT_FALSE(widget->non_client_view()->frame_view()->GetVisible());
   EXPECT_EQ(
       window_bounds,
       non_client_frame_view->GetClientBoundsForWindowBounds(window_bounds));
@@ -596,7 +596,7 @@
   non_client_frame_view->SetVisible(true);
   widget->GetRootView()->Layout();
   EXPECT_EQ(client_bounds, widget->client_view()->GetLocalBounds().size());
-  EXPECT_TRUE(widget->non_client_view()->frame_view()->visible());
+  EXPECT_TRUE(widget->non_client_view()->frame_view()->GetVisible());
   EXPECT_EQ(32, delegate->GetNonClientFrameViewTopBorderHeight());
   EXPECT_EQ(
       gfx::Rect(gfx::Point(10, 42), client_bounds),
@@ -620,52 +620,52 @@
 
   // CLOSE buttion is always visible and enabled.
   EXPECT_TRUE(test_api.close_button());
-  EXPECT_TRUE(test_api.close_button()->visible());
-  EXPECT_TRUE(test_api.close_button()->enabled());
+  EXPECT_TRUE(test_api.close_button()->GetVisible());
+  EXPECT_TRUE(test_api.close_button()->GetEnabled());
 
-  EXPECT_FALSE(test_api.minimize_button()->visible());
-  EXPECT_FALSE(test_api.size_button()->visible());
-  EXPECT_FALSE(test_api.menu_button()->visible());
+  EXPECT_FALSE(test_api.minimize_button()->GetVisible());
+  EXPECT_FALSE(test_api.size_button()->GetVisible());
+  EXPECT_FALSE(test_api.menu_button()->GetVisible());
 
   // Back button
   model_ptr->SetVisible(views::CAPTION_BUTTON_ICON_BACK, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(header_view->GetBackButton()->visible());
-  EXPECT_FALSE(header_view->GetBackButton()->enabled());
+  EXPECT_TRUE(header_view->GetBackButton()->GetVisible());
+  EXPECT_FALSE(header_view->GetBackButton()->GetEnabled());
 
   model_ptr->SetEnabled(views::CAPTION_BUTTON_ICON_BACK, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(header_view->GetBackButton()->enabled());
+  EXPECT_TRUE(header_view->GetBackButton()->GetEnabled());
 
   // size button
   model_ptr->SetVisible(views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.size_button()->visible());
-  EXPECT_FALSE(test_api.size_button()->enabled());
+  EXPECT_TRUE(test_api.size_button()->GetVisible());
+  EXPECT_FALSE(test_api.size_button()->GetEnabled());
 
   model_ptr->SetEnabled(views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.size_button()->enabled());
+  EXPECT_TRUE(test_api.size_button()->GetEnabled());
 
   // minimize button
   model_ptr->SetVisible(views::CAPTION_BUTTON_ICON_MINIMIZE, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.minimize_button()->visible());
-  EXPECT_FALSE(test_api.minimize_button()->enabled());
+  EXPECT_TRUE(test_api.minimize_button()->GetVisible());
+  EXPECT_FALSE(test_api.minimize_button()->GetEnabled());
 
   model_ptr->SetEnabled(views::CAPTION_BUTTON_ICON_MINIMIZE, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.minimize_button()->enabled());
+  EXPECT_TRUE(test_api.minimize_button()->GetEnabled());
 
   // menu button
   model_ptr->SetVisible(views::CAPTION_BUTTON_ICON_MENU, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.menu_button()->visible());
-  EXPECT_FALSE(test_api.menu_button()->enabled());
+  EXPECT_TRUE(test_api.menu_button()->GetVisible());
+  EXPECT_FALSE(test_api.menu_button()->GetEnabled());
 
   model_ptr->SetEnabled(views::CAPTION_BUTTON_ICON_MENU, true);
   non_client_frame_view->SizeConstraintsChanged();
-  EXPECT_TRUE(test_api.menu_button()->enabled());
+  EXPECT_TRUE(test_api.menu_button()->GetEnabled());
 
   // zoom button
   EXPECT_STREQ(views::kWindowControlMaximizeIcon.name,
diff --git a/ash/frame/wide_frame_view.cc b/ash/frame/wide_frame_view.cc
index b88e2ac..3c9cf41 100644
--- a/ash/frame/wide_frame_view.cc
+++ b/ash/frame/wide_frame_view.cc
@@ -128,7 +128,7 @@
 
 void WideFrameView::Layout() {
   int onscreen_height = header_view_->GetPreferredOnScreenHeight();
-  if (onscreen_height == 0 || !visible()) {
+  if (onscreen_height == 0 || !GetVisible()) {
     header_view_->SetVisible(false);
   } else {
     const int height = header_view_->GetPreferredHeight();
diff --git a/ash/keyboard/ui/keyboard_controller.cc b/ash/keyboard/ui/keyboard_controller.cc
index 395d4dc..2a1df65 100644
--- a/ash/keyboard/ui/keyboard_controller.cc
+++ b/ash/keyboard/ui/keyboard_controller.cc
@@ -135,10 +135,8 @@
       return "INITIAL";
     case KeyboardControllerState::COUNT:
       NOTREACHED();
+      return "";
   }
-  NOTREACHED() << "Unknownstate: " << static_cast<int>(state);
-  // Needed for windows build.
-  return "";
 }
 
 // An enumeration of different keyboard control events that should be logged.
diff --git a/ash/kiosk_next/kiosk_next_home_controller.cc b/ash/kiosk_next/kiosk_next_home_controller.cc
index 4e0ff57..accbc87 100644
--- a/ash/kiosk_next/kiosk_next_home_controller.cc
+++ b/ash/kiosk_next/kiosk_next_home_controller.cc
@@ -43,11 +43,15 @@
     if (container->children().empty())
       continue;
 
-    // Expect only one window (there should be no app list window).
+    // Expect only one window.
     DCHECK_EQ(1u, container->children().size());
     aura::Window* window = container->children()[0];
-    DCHECK_EQ(window->type(), aura::client::WindowType::WINDOW_TYPE_NORMAL);
-    return window;
+
+    // When the app list is being destroyed (before the Home app is launched),
+    // the app list will appear here; filter for the Home app by checking for a
+    // normal type window.
+    if (window->type() == aura::client::WindowType::WINDOW_TYPE_NORMAL)
+      return window;
   }
 
   return nullptr;
diff --git a/ash/kiosk_next/kiosk_next_shell_controller.cc b/ash/kiosk_next/kiosk_next_shell_controller.cc
index 2f74330..4549bc4 100644
--- a/ash/kiosk_next/kiosk_next_shell_controller.cc
+++ b/ash/kiosk_next/kiosk_next_shell_controller.cc
@@ -56,32 +56,44 @@
 void KioskNextShellController::SetClient(
     mojom::KioskNextShellClientPtr client) {
   kiosk_next_shell_client_ = std::move(client);
+  LaunchKioskNextShellIfEnabled();
 }
 
 void KioskNextShellController::OnActiveUserPrefServiceChanged(
     PrefService* pref_service) {
-  bool prev_kiosk_next_enabled = kiosk_next_enabled_;
+  LaunchKioskNextShellIfEnabled();
+}
 
+void KioskNextShellController::LaunchKioskNextShellIfEnabled() {
+  SessionControllerImpl* session_controller =
+      Shell::Get()->session_controller();
+  PrefService* pref_service = session_controller->GetPrimaryUserPrefService();
+  if (!pref_service)
+    return;
+
+  if (!kiosk_next_shell_client_.is_bound())
+    return;
+
+  bool prev_kiosk_next_enabled = kiosk_next_enabled_;
   kiosk_next_enabled_ =
       base::FeatureList::IsEnabled(features::kKioskNextShell) &&
       pref_service->GetBoolean(prefs::kKioskNextShellEnabled);
+  if (!kiosk_next_enabled_ || prev_kiosk_next_enabled)
+    return;
 
-  if (!prev_kiosk_next_enabled && kiosk_next_enabled_) {
-    // Replace the AppListController with a KioskNextHomeController.
-    kiosk_next_home_controller_ = std::make_unique<KioskNextHomeController>();
-    Shell::Get()->home_screen_controller()->SetDelegate(
-        kiosk_next_home_controller_.get());
-    Shell::Get()->RemoveAppListController();
+  // Replace the AppListController with a KioskNextHomeController.
+  kiosk_next_home_controller_ = std::make_unique<KioskNextHomeController>();
+  Shell::Get()->home_screen_controller()->SetDelegate(
+      kiosk_next_home_controller_.get());
+  Shell::Get()->RemoveAppListController();
 
-    kiosk_next_shell_client_->LaunchKioskNextShell(Shell::Get()
-                                                       ->session_controller()
-                                                       ->GetPrimaryUserSession()
-                                                       ->user_info.account_id);
+  kiosk_next_shell_client_->LaunchKioskNextShell(
+      session_controller->GetPrimaryUserSession()->user_info.account_id);
 
-    // Notify observers that KioskNextShell has been enabled.
-    for (KioskNextShellObserver& observer : observer_list_) {
-      observer.OnKioskNextEnabled();
-    }
+  // Notify observers that KioskNextShell has been enabled.
+  for (KioskNextShellObserver& observer : observer_list_) {
+    observer.OnKioskNextEnabled();
   }
 }
+
 }  // namespace ash
diff --git a/ash/kiosk_next/kiosk_next_shell_controller.h b/ash/kiosk_next/kiosk_next_shell_controller.h
index 7d3fd45..ecc046b 100644
--- a/ash/kiosk_next/kiosk_next_shell_controller.h
+++ b/ash/kiosk_next/kiosk_next_shell_controller.h
@@ -49,6 +49,10 @@
   void OnActiveUserPrefServiceChanged(PrefService* pref_service) override;
 
  private:
+  // Launches Kiosk Next if the pref is enabled and the KioskNextShellClient is
+  // available.
+  void LaunchKioskNextShellIfEnabled();
+
   mojom::KioskNextShellClientPtr kiosk_next_shell_client_;
   mojo::BindingSet<mojom::KioskNextShellController> bindings_;
   base::ObserverList<KioskNextShellObserver> observer_list_;
diff --git a/ash/login/login_screen_controller_unittest.cc b/ash/login/login_screen_controller_unittest.cc
index 559f914..abac013 100644
--- a/ash/login/login_screen_controller_unittest.cc
+++ b/ash/login/login_screen_controller_unittest.cc
@@ -38,7 +38,7 @@
   aura::Window::Windows root_windows = Shell::GetAllRootWindows();
   RootWindowController* controller =
       RootWindowController::ForWindow(root_windows[index]);
-  return controller->GetStatusAreaWidget()->unified_system_tray()->visible();
+  return controller->GetStatusAreaWidget()->unified_system_tray()->GetVisible();
 }
 
 TEST_F(LoginScreenControllerTest, RequestAuthentication) {
diff --git a/ash/login/login_screen_test_api.cc b/ash/login/login_screen_test_api.cc
index b2018b1..3041669 100644
--- a/ash/login/login_screen_test_api.cc
+++ b/ash/login/login_screen_test_api.cc
@@ -40,7 +40,7 @@
 
   views::View* button_view = shelf_view->GetViewByID(button_view_id);
 
-  return button_view && button_view->visible();
+  return button_view && button_view->GetVisible();
 }
 
 }  // anonymous namespace
@@ -132,7 +132,7 @@
 
 void LoginScreenTestApi::IsLoginShelfShown(IsLoginShelfShownCallback callback) {
   LoginShelfView* view = GetLoginShelfView();
-  std::move(callback).Run(view && view->visible());
+  std::move(callback).Run(view && view->GetVisible());
 }
 
 void LoginScreenTestApi::IsRestartButtonShown(
@@ -152,7 +152,7 @@
   ash::LockScreen::TestApi lock_screen_test(ash::LockScreen::Get());
   ash::LockContentsView::TestApi lock_contents_test(
       lock_screen_test.contents_view());
-  std::move(callback).Run(lock_contents_test.auth_error_bubble()->visible());
+  std::move(callback).Run(lock_contents_test.auth_error_bubble()->GetVisible());
 }
 
 void LoginScreenTestApi::IsGuestButtonShown(
diff --git a/ash/login/ui/lock_contents_view.cc b/ash/login/ui/lock_contents_view.cc
index c697cd4..33fc378 100644
--- a/ash/login/ui/lock_contents_view.cc
+++ b/ash/login/ui/lock_contents_view.cc
@@ -845,7 +845,7 @@
   if (!big_user || !big_user->auth_user())
     return;
 
-  if (tooltip_bubble_->visible())
+  if (tooltip_bubble_->GetVisible())
     tooltip_bubble_->Hide();
 
   if (icon->autoshow_tooltip) {
@@ -863,7 +863,7 @@
                   "warning banner.";
     return;
   }
-  if (warning_banner_bubble_->visible())
+  if (warning_banner_bubble_->GetVisible())
     warning_banner_bubble_->Hide();
   // Shows warning banner as a persistent error bubble.
   views::Label* label =
@@ -881,7 +881,7 @@
 }
 
 void LockContentsView::OnHideWarningBanner() {
-  if (warning_banner_bubble_->visible())
+  if (warning_banner_bubble_->GetVisible())
     warning_banner_bubble_->Hide();
 }
 
@@ -983,7 +983,7 @@
   // Update expanded view because keyboard layouts is user interactive content.
   // I.e. user selects a language locale and the corresponding keyboard layouts
   // will be changed.
-  if (expanded_view_->visible() &&
+  if (expanded_view_->GetVisible() &&
       expanded_view_->current_user()->basic_user_info->account_id ==
           account_id) {
     mojom::LoginUserInfoPtr user_info = expanded_view_->current_user()->Clone();
@@ -1028,12 +1028,12 @@
       (pairing_status == DetachableBasePairingStatus::kAuthenticated &&
        detachable_base_model_->PairedBaseMatchesLastUsedByUser(
            *CurrentBigUserView()->GetCurrentUser()->basic_user_info))) {
-    if (detachable_base_error_bubble_->visible())
+    if (detachable_base_error_bubble_->GetVisible())
       detachable_base_error_bubble_->Hide();
     return;
   }
 
-  if (auth_error_bubble_->visible())
+  if (auth_error_bubble_->GetVisible())
     auth_error_bubble_->Hide();
 
   base::string16 error_text =
@@ -1400,10 +1400,10 @@
 
 void LockContentsView::OnAuthenticate(bool auth_success) {
   if (auth_success) {
-    if (auth_error_bubble_->visible())
+    if (auth_error_bubble_->GetVisible())
       auth_error_bubble_->Hide();
 
-    if (detachable_base_error_bubble_->visible())
+    if (detachable_base_error_bubble_->GetVisible())
       detachable_base_error_bubble_->Hide();
 
     // Now that the user has been authenticated, update the user's last used
@@ -1602,7 +1602,7 @@
     supervised_user_deprecation_bubble_->SetAnchorView(
         CurrentBigUserView()->auth_user()->password_view());
     supervised_user_deprecation_bubble_->Show();
-  } else if (supervised_user_deprecation_bubble_->visible()) {
+  } else if (supervised_user_deprecation_bubble_->GetVisible()) {
     supervised_user_deprecation_bubble_->Hide();
   }
 
@@ -1611,7 +1611,7 @@
   OnDetachableBasePairingStatusChanged(
       detachable_base_model_->GetPairingStatus());
 
-  if (!detachable_base_error_bubble_->visible())
+  if (!detachable_base_error_bubble_->GetVisible())
     CurrentBigUserView()->RequestFocus();
 }
 
@@ -1919,7 +1919,7 @@
       FocusPreviousUser();
       break;
     case AcceleratorAction::kShowSystemInfo:
-      if (!system_info_->visible()) {
+      if (!system_info_->GetVisible()) {
         system_info_->SetVisible(true);
         LayoutTopHeader();
       }
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index ec213b4..199632b 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -535,25 +535,25 @@
   views::View* note_action_button = test_api.note_action();
 
   // In kAvailable state, the note action button should be visible.
-  EXPECT_TRUE(note_action_button->visible());
+  EXPECT_TRUE(note_action_button->GetVisible());
 
   // In kLaunching state, the note action button should not be visible.
   DataDispatcher()->SetLockScreenNoteState(mojom::TrayActionState::kLaunching);
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
 
   // In kActive state, the note action button should not be visible.
   DataDispatcher()->SetLockScreenNoteState(mojom::TrayActionState::kActive);
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
 
   // When moved back to kAvailable state, the note action button should become
   // visible again.
   DataDispatcher()->SetLockScreenNoteState(mojom::TrayActionState::kAvailable);
-  EXPECT_TRUE(note_action_button->visible());
+  EXPECT_TRUE(note_action_button->GetVisible());
 
   // In kNotAvailable state, the note action button should not be visible.
   DataDispatcher()->SetLockScreenNoteState(
       mojom::TrayActionState::kNotAvailable);
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
 }
 
 // Verifies note action view bounds.
@@ -569,12 +569,12 @@
 
   // The note action button should not be visible if the note action is not
   // available.
-  EXPECT_FALSE(test_api.note_action()->visible());
+  EXPECT_FALSE(test_api.note_action()->GetVisible());
 
   // When the note action becomes available, the note action button should be
   // shown.
   DataDispatcher()->SetLockScreenNoteState(mojom::TrayActionState::kAvailable);
-  EXPECT_TRUE(test_api.note_action()->visible());
+  EXPECT_TRUE(test_api.note_action()->GetVisible());
 
   // Verify the bounds of the note action button are as expected.
   gfx::Rect widget_bounds = widget->GetWindowBoundsInScreen();
@@ -588,7 +588,7 @@
   // hidden.
   DataDispatcher()->SetLockScreenNoteState(
       mojom::TrayActionState::kNotAvailable);
-  EXPECT_FALSE(test_api.note_action()->visible());
+  EXPECT_FALSE(test_api.note_action()->GetVisible());
 }
 
 // Verifies the note action view bounds when note action is available at lock
@@ -605,7 +605,7 @@
 
   // Verify the note action button is visible and positioned in the top right
   // corner of the screen.
-  EXPECT_TRUE(test_api.note_action()->visible());
+  EXPECT_TRUE(test_api.note_action()->GetVisible());
   gfx::Rect widget_bounds = widget->GetWindowBoundsInScreen();
   gfx::Size note_action_size = test_api.note_action()->GetPreferredSize();
   EXPECT_EQ(gfx::Rect(widget_bounds.top_right() -
@@ -616,7 +616,7 @@
   // If the note action is disabled, the note action button should be hidden.
   DataDispatcher()->SetLockScreenNoteState(
       mojom::TrayActionState::kNotAvailable);
-  EXPECT_FALSE(test_api.note_action()->visible());
+  EXPECT_FALSE(test_api.note_action()->GetVisible());
 }
 
 // Verifies the system info view bounds interaction with the note-taking button.
@@ -631,14 +631,14 @@
   gfx::Rect widget_bounds = widget->GetWindowBoundsInScreen();
   LockContentsView::TestApi test_api(contents);
   // Verify that the system info view is hidden by default.
-  EXPECT_FALSE(test_api.system_info()->visible());
+  EXPECT_FALSE(test_api.system_info()->GetVisible());
 
   // Verify that the system info view becomes visible and it doesn't block the
   // note action button.
   DataDispatcher()->SetSystemInfo(true /*show_if_hidden*/, "Best version ever",
                                   "Asset ID: 6666", "Bluetooth adapter");
-  EXPECT_TRUE(test_api.system_info()->visible());
-  EXPECT_TRUE(test_api.note_action()->visible());
+  EXPECT_TRUE(test_api.system_info()->GetVisible());
+  EXPECT_TRUE(test_api.note_action()->GetVisible());
   gfx::Size note_action_size = test_api.note_action()->GetPreferredSize();
   EXPECT_GE(widget_bounds.right() -
                 test_api.system_info()->GetBoundsInScreen().right(),
@@ -648,7 +648,7 @@
   // the right to fill the empty space.
   DataDispatcher()->SetLockScreenNoteState(
       mojom::TrayActionState::kNotAvailable);
-  EXPECT_FALSE(test_api.note_action()->visible());
+  EXPECT_FALSE(test_api.note_action()->GetVisible());
   EXPECT_LT(widget_bounds.right() -
                 test_api.system_info()->GetBoundsInScreen().right(),
             note_action_size.width());
@@ -665,23 +665,23 @@
   std::unique_ptr<views::Widget> widget = CreateWidgetWithContent(contents);
   LockContentsView::TestApi test_api(contents);
   // Verify that the system info view is hidden by default.
-  EXPECT_FALSE(test_api.system_info()->visible());
+  EXPECT_FALSE(test_api.system_info()->GetVisible());
 
   // Verify that the system info view does not become visible when given data
   // but show is false.
   DataDispatcher()->SetSystemInfo(false /*show_if_hidden*/, "Best version ever",
                                   "Asset ID: 6666", "Bluetooth adapter");
-  EXPECT_FALSE(test_api.system_info()->visible());
+  EXPECT_FALSE(test_api.system_info()->GetVisible());
 
   // Alt-V shows hidden system info.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
-  EXPECT_TRUE(test_api.system_info()->visible());
+  EXPECT_TRUE(test_api.system_info()->GetVisible());
   // System info is not empty, ie, it is actually being displayed.
   EXPECT_FALSE(test_api.system_info()->bounds().IsEmpty());
 
   // Alt-V again does nothing.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_V, ui::EF_ALT_DOWN);
-  EXPECT_TRUE(test_api.system_info()->visible());
+  EXPECT_TRUE(test_api.system_info()->GetVisible());
 }
 
 // Updating existing system info and setting show_if_hidden=true later will
@@ -703,15 +703,15 @@
 
   // Start with hidden system info.
   set_system_info(false);
-  EXPECT_FALSE(test_api.system_info()->visible());
+  EXPECT_FALSE(test_api.system_info()->GetVisible());
 
   // Update system info but request it be shown.
   set_system_info(true);
-  EXPECT_TRUE(test_api.system_info()->visible());
+  EXPECT_TRUE(test_api.system_info()->GetVisible());
 
   // Trying to hide system info from mojom call doesn't do anything.
   set_system_info(false);
-  EXPECT_TRUE(test_api.system_info()->visible());
+  EXPECT_TRUE(test_api.system_info()->GetVisible());
 }
 
 // Verifies the easy unlock tooltip is automatically displayed when requested.
@@ -726,7 +726,7 @@
 
   LockContentsView::TestApi test_api(lock);
   // Creating lock screen does not show tooltip bubble.
-  EXPECT_FALSE(test_api.tooltip_bubble()->visible());
+  EXPECT_FALSE(test_api.tooltip_bubble()->GetVisible());
 
   // Show an icon with |autoshow_tooltip| is false. Tooltip bubble is not
   // activated.
@@ -735,13 +735,13 @@
   icon->autoshow_tooltip = false;
   DataDispatcher()->ShowEasyUnlockIcon(users()[0]->basic_user_info->account_id,
                                        icon);
-  EXPECT_FALSE(test_api.tooltip_bubble()->visible());
+  EXPECT_FALSE(test_api.tooltip_bubble()->GetVisible());
 
   // Show icon with |autoshow_tooltip| set to true. Tooltip bubble is shown.
   icon->autoshow_tooltip = true;
   DataDispatcher()->ShowEasyUnlockIcon(users()[0]->basic_user_info->account_id,
                                        icon);
-  EXPECT_TRUE(test_api.tooltip_bubble()->visible());
+  EXPECT_TRUE(test_api.tooltip_bubble()->GetVisible());
 }
 
 // Verifies that easy unlock icon state persists when changing auth user.
@@ -767,7 +767,7 @@
         LoginPasswordView::TestApi(
             LoginAuthUserView::TestApi(view->auth_user()).password_view())
             .easy_unlock_icon();
-    return icon->visible();
+    return icon->GetVisible();
   };
 
   // Enables easy unlock icon for |view|.
@@ -860,12 +860,12 @@
   generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
   base::RunLoop().RunUntilIdle();
 
-  EXPECT_TRUE(test_api.auth_error_bubble()->visible());
+  EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
 
   // The error bubble is expected to close on a user action - e.g. if they start
   // typing the password again.
   generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
-  EXPECT_FALSE(test_api.auth_error_bubble()->visible());
+  EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, AuthErrorButtonClickable) {
@@ -887,7 +887,7 @@
                   users()[0]->basic_user_info->account_id, _, false, _));
 
   // AuthErrorButton should not be visible yet.
-  EXPECT_FALSE(test_api.auth_error_bubble()->visible());
+  EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 
   // Submit password.
   ui::test::EventGenerator* generator = GetEventGenerator();
@@ -896,7 +896,7 @@
   base::RunLoop().RunUntilIdle();
 
   // Auth Error button should be visible as an incorrect password was given.
-  EXPECT_TRUE(test_api.auth_error_bubble()->visible());
+  EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
 
   // Find button in auth_error_bubble children.
   views::View* button = FindTopButton(test_api.auth_error_bubble());
@@ -912,7 +912,7 @@
   Shell::Get()->login_screen_controller()->FlushForTesting();
 
   // AuthErrorButton should go away after button press.
-  EXPECT_FALSE(test_api.auth_error_bubble()->visible());
+  EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 }
 
 // Gaia is never shown on lock, no mater how many times auth fails.
@@ -1004,17 +1004,17 @@
   LockContentsView::TestApi test_api(contents);
   ui::test::EventGenerator* generator = GetEventGenerator();
 
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Change detachable base to a base different than the one previously used by
   // the user - verify that a detachable base error bubble is shown.
   detachable_base_model->SetPairingStatus(
       DetachableBasePairingStatus::kAuthenticated, "5678");
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Verify that the bubble is not hidden if the user starts typing.
   generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Switching to the user that doesn't have previously used detachable base
   // (and should thus not be warned about the detachable base missmatch) should
@@ -1025,7 +1025,7 @@
       secondary_test_api.user_view()->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
 
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // The error should be shown again when switching back to the primary user.
   LoginAuthUserView::TestApi primary_test_api(
@@ -1034,7 +1034,7 @@
       primary_test_api.user_view()->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
 
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
   EXPECT_FALSE(primary_test_api.password_view()->HasFocus());
 
   EXPECT_EQ("1234",
@@ -1083,16 +1083,16 @@
   LockContentsView::TestApi test_api(contents);
   ui::test::EventGenerator* generator = GetEventGenerator();
 
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Show notification if unauthenticated base is attached.
   detachable_base_model->SetPairingStatus(
       DetachableBasePairingStatus::kNotAuthenticated, "");
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Verify that the bubble is not hidden if the user starts typing.
   generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Switching to another user should not hide the error bubble.
   LoginAuthUserView::TestApi secondary_test_api(
@@ -1101,7 +1101,7 @@
       secondary_test_api.user_view()->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
 
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
   EXPECT_FALSE(secondary_test_api.password_view()->HasFocus());
 
   // The last trusted detachable used by the user should not be overriden by
@@ -1150,12 +1150,12 @@
   // the user - verify that a detachable base error bubble is shown.
   detachable_base_model->SetPairingStatus(
       DetachableBasePairingStatus::kAuthenticated, "5678");
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // The notification should be hidden if the base gets detached.
   detachable_base_model->SetPairingStatus(DetachableBasePairingStatus::kNone,
                                           "");
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, DetachableBaseErrorClearsAuthError) {
@@ -1183,7 +1183,7 @@
   LockContentsView::TestApi test_api(contents);
   ui::test::EventGenerator* generator = GetEventGenerator();
 
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Attempt and fail user auth - an auth error is expected to be shown.
   std::unique_ptr<MockLoginScreenClient> client = BindMockLoginScreenClient();
@@ -1196,8 +1196,8 @@
   generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
   base::RunLoop().RunUntilIdle();
 
-  EXPECT_TRUE(test_api.auth_error_bubble()->visible());
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Change detachable base to a base different than the one previously used by
   // the user - verify that a detachable base error bubble is shown, and the
@@ -1205,8 +1205,8 @@
   detachable_base_model->SetPairingStatus(
       DetachableBasePairingStatus::kAuthenticated, "5678");
 
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
-  EXPECT_FALSE(test_api.auth_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
+  EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, AuthErrorDoesNotRemoveDetachableBaseError) {
@@ -1234,7 +1234,7 @@
   LockContentsView::TestApi test_api(contents);
   ui::test::EventGenerator* generator = GetEventGenerator();
 
-  EXPECT_FALSE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_FALSE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Change detachable base to a base different than the one previously used by
   // the user - verify that a detachable base error bubble is shown, and the
@@ -1242,7 +1242,7 @@
   detachable_base_model->SetPairingStatus(
       DetachableBasePairingStatus::kAuthenticated, "5678");
 
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // Attempt and fail user auth - an auth error is expected to be shown.
   // Detachable base error should not be hidden.
@@ -1259,15 +1259,15 @@
   generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
   base::RunLoop().RunUntilIdle();
 
-  EXPECT_TRUE(test_api.auth_error_bubble()->visible());
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
+  EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
 
   // User action, like pressing a key should close the auth error bubble, but
   // not the detachable base error bubble.
   generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
 
-  EXPECT_TRUE(test_api.detachable_base_error_bubble()->visible());
-  EXPECT_FALSE(test_api.auth_error_bubble()->visible());
+  EXPECT_TRUE(test_api.detachable_base_error_bubble()->GetVisible());
+  EXPECT_FALSE(test_api.auth_error_bubble()->GetVisible());
 }
 
 TEST_F(LockContentsViewKeyboardUnitTest, SwitchPinAndVirtualKeyboard) {
@@ -1289,13 +1289,13 @@
   // shown.
   LoginPinView* pin_view =
       LoginAuthUserView::TestApi(big_view->auth_user()).pin_view();
-  EXPECT_TRUE(pin_view->visible());
+  EXPECT_TRUE(pin_view->GetVisible());
 
   ASSERT_NO_FATAL_FAILURE(ShowKeyboard());
-  EXPECT_FALSE(pin_view->visible());
+  EXPECT_FALSE(pin_view->GetVisible());
 
   ASSERT_NO_FATAL_FAILURE(HideKeyboard());
-  EXPECT_TRUE(pin_view->visible());
+  EXPECT_TRUE(pin_view->GetVisible());
 }
 
 TEST_F(LockContentsViewKeyboardUnitTest,
@@ -1420,9 +1420,9 @@
   // Hide the PIN keyboard.
   LoginPinView* pin_view =
       LoginAuthUserView::TestApi(big_view->auth_user()).pin_view();
-  EXPECT_TRUE(pin_view->visible());
+  EXPECT_TRUE(pin_view->GetVisible());
   ASSERT_NO_FATAL_FAILURE(ShowKeyboard());
-  EXPECT_FALSE(pin_view->visible());
+  EXPECT_FALSE(pin_view->GetVisible());
 
   // Submit a password.
   LoginAuthUserView::TestApi(big_view->auth_user())
@@ -1769,8 +1769,8 @@
 
   views::View* main_view = lock_contents.main_view();
   LoginExpandedPublicAccountView* expanded_view = lock_contents.expanded_view();
-  EXPECT_TRUE(main_view->visible());
-  EXPECT_FALSE(expanded_view->visible());
+  EXPECT_TRUE(main_view->GetVisible());
+  EXPECT_FALSE(expanded_view->GetVisible());
 
   LoginBigUserView* primary_big_view = lock_contents.primary_big_view();
   AccountId primary_id =
@@ -1780,8 +1780,8 @@
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
 
-  EXPECT_FALSE(main_view->visible());
-  EXPECT_TRUE(expanded_view->visible());
+  EXPECT_FALSE(main_view->GetVisible());
+  EXPECT_TRUE(expanded_view->GetVisible());
   EXPECT_EQ(expanded_view->current_user()->basic_user_info->account_id,
             primary_id);
 
@@ -1815,9 +1815,9 @@
   views::View* disabled_auth_message = auth_test_api.disabled_auth_message();
 
   // The password field is shown by default.
-  EXPECT_TRUE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
-  EXPECT_FALSE(disabled_auth_message->visible());
+  EXPECT_TRUE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
+  EXPECT_FALSE(disabled_auth_message->GetVisible());
   // Setting auth disabled will hide the password field and show the message.
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
@@ -1825,14 +1825,14 @@
           ash::mojom::AuthDisabledReason::TIME_WINDOW_LIMIT,
           base::Time::Now() + base::TimeDelta::FromHours(8),
           base::TimeDelta::FromHours(1)));
-  EXPECT_FALSE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
-  EXPECT_TRUE(disabled_auth_message->visible());
+  EXPECT_FALSE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
+  EXPECT_TRUE(disabled_auth_message->GetVisible());
   // Setting auth enabled will hide the message and show the password field.
   DataDispatcher()->EnableAuthForUser(kFirstUserAccountId);
-  EXPECT_TRUE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
-  EXPECT_FALSE(disabled_auth_message->visible());
+  EXPECT_TRUE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
+  EXPECT_FALSE(disabled_auth_message->GetVisible());
 
   // Set auth disabled again.
   DataDispatcher()->DisableAuthForUser(
@@ -1841,19 +1841,19 @@
           ash::mojom::AuthDisabledReason::TIME_WINDOW_LIMIT,
           base::Time::Now() + base::TimeDelta::FromHours(8),
           base::TimeDelta::FromHours(1)));
-  EXPECT_FALSE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
-  EXPECT_TRUE(disabled_auth_message->visible());
+  EXPECT_FALSE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
+  EXPECT_TRUE(disabled_auth_message->GetVisible());
   // Enable PIN. There's no UI change because auth is currently disabled.
   DataDispatcher()->SetPinEnabledForUser(kFirstUserAccountId, true);
-  EXPECT_FALSE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
-  EXPECT_TRUE(disabled_auth_message->visible());
+  EXPECT_FALSE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
+  EXPECT_TRUE(disabled_auth_message->GetVisible());
   // Set auth enabled again. Both password field and PIN keyboard are shown.
   DataDispatcher()->EnableAuthForUser(kFirstUserAccountId);
-  EXPECT_TRUE(password_view->visible());
-  EXPECT_TRUE(pin_view->visible());
-  EXPECT_FALSE(disabled_auth_message->visible());
+  EXPECT_TRUE(password_view->GetVisible());
+  EXPECT_TRUE(pin_view->GetVisible());
+  EXPECT_FALSE(disabled_auth_message->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest,
@@ -1874,7 +1874,7 @@
   LockContentsView::TestApi contents_test_api(contents);
   views::View* note_action_button = contents_test_api.note_action();
 
-  EXPECT_TRUE(note_action_button->visible());
+  EXPECT_TRUE(note_action_button->GetVisible());
   // Setting auth disabled hides the note action button.
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
@@ -1882,10 +1882,10 @@
           ash::mojom::AuthDisabledReason::TIME_WINDOW_LIMIT,
           base::Time::Now() + base::TimeDelta::FromHours(8),
           base::TimeDelta::FromHours(1)));
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
   // Setting auth enabled shows the note action button.
   DataDispatcher()->EnableAuthForUser(kFirstUserAccountId);
-  EXPECT_TRUE(note_action_button->visible());
+  EXPECT_TRUE(note_action_button->GetVisible());
 
   // Set auth disabled again.
   DataDispatcher()->DisableAuthForUser(
@@ -1894,13 +1894,13 @@
           ash::mojom::AuthDisabledReason::TIME_WINDOW_LIMIT,
           base::Time::Now() + base::TimeDelta::FromHours(8),
           base::TimeDelta::FromHours(1)));
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
   // Set the lock screen note state to |kNotAvailable| while the note action
   // button is hidden.
   tray_action->UpdateLockScreenNoteState(mojom::TrayActionState::kNotAvailable);
   DataDispatcher()->EnableAuthForUser(kFirstUserAccountId);
   // The note action button remains hidden after setting auth enabled.
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, DisabledAuthMessageFocusBehavior) {
@@ -1926,7 +1926,7 @@
           ash::mojom::AuthDisabledReason::TIME_WINDOW_LIMIT,
           base::Time::Now() + base::TimeDelta::FromHours(8),
           base::TimeDelta::FromHours(1)));
-  EXPECT_TRUE(disabled_auth_message->visible());
+  EXPECT_TRUE(disabled_auth_message->GetVisible());
   EXPECT_TRUE(HasFocusInAnyChildView(disabled_auth_message));
   // Tabbing from the message will move focus to the user view.
   ASSERT_TRUE(TabThroughView(GetEventGenerator(), disabled_auth_message,
@@ -2161,7 +2161,7 @@
   EXPECT_TRUE(
       LoginAuthUserView::TestApi(test_api.primary_big_view()->auth_user())
           .pin_view()
-          ->visible());
+          ->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, ShowHideWarningBannerBubble) {
@@ -2179,19 +2179,19 @@
   ui::test::EventGenerator* generator = GetEventGenerator();
 
   // Creating lock screen does not show warning banner bubble.
-  EXPECT_FALSE(test_api.warning_banner_bubble()->visible());
+  EXPECT_FALSE(test_api.warning_banner_bubble()->GetVisible());
 
   // Verifies that a warning banner is shown by giving a non-empty message.
   DataDispatcher()->ShowWarningBanner(base::ASCIIToUTF16("foo"));
-  EXPECT_TRUE(test_api.warning_banner_bubble()->visible());
+  EXPECT_TRUE(test_api.warning_banner_bubble()->GetVisible());
 
   // Verifies that a warning banner is hidden by HideWarningBanner().
   DataDispatcher()->HideWarningBanner();
-  EXPECT_FALSE(test_api.warning_banner_bubble()->visible());
+  EXPECT_FALSE(test_api.warning_banner_bubble()->GetVisible());
 
   // Shows a warning banner again.
   DataDispatcher()->ShowWarningBanner(base::ASCIIToUTF16("foo"));
-  EXPECT_TRUE(test_api.warning_banner_bubble()->visible());
+  EXPECT_TRUE(test_api.warning_banner_bubble()->GetVisible());
 
   // Attempt and fail user auth - an auth error is expected to be shown.
   // The warning banner should not be hidden.
@@ -2208,8 +2208,8 @@
   generator->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
   base::RunLoop().RunUntilIdle();
 
-  EXPECT_TRUE(test_api.auth_error_bubble()->visible());
-  EXPECT_TRUE(test_api.warning_banner_bubble()->visible());
+  EXPECT_TRUE(test_api.auth_error_bubble()->GetVisible());
+  EXPECT_TRUE(test_api.warning_banner_bubble()->GetVisible());
 }
 
 TEST_F(LockContentsViewUnitTest, RemoveUserFocusMovesBackToPrimaryUser) {
diff --git a/ash/login/ui/login_auth_user_view_unittest.cc b/ash/login/ui/login_auth_user_view_unittest.cc
index 9ec94124..51be2c5 100644
--- a/ash/login/ui/login_auth_user_view_unittest.cc
+++ b/ash/login/ui/login_auth_user_view_unittest.cc
@@ -137,9 +137,9 @@
   // When auth method is |AUTH_ONLINE_SIGN_IN|, the online sign-in message is
   // visible. The password field and PIN keyboard are invisible.
   SetAuthMethods(LoginAuthUserView::AUTH_ONLINE_SIGN_IN);
-  EXPECT_TRUE(online_sign_in_message->visible());
-  EXPECT_FALSE(password_view->visible());
-  EXPECT_FALSE(pin_view->visible());
+  EXPECT_TRUE(online_sign_in_message->GetVisible());
+  EXPECT_FALSE(password_view->GetVisible());
+  EXPECT_FALSE(pin_view->GetVisible());
 
   // Clicking the message triggers |ShowGaiaSignin|.
   EXPECT_CALL(*client,
@@ -154,13 +154,13 @@
 
   // The online sign-in message is invisible for all other auth methods.
   SetAuthMethods(LoginAuthUserView::AUTH_NONE);
-  EXPECT_FALSE(online_sign_in_message->visible());
+  EXPECT_FALSE(online_sign_in_message->GetVisible());
   SetAuthMethods(LoginAuthUserView::AUTH_PASSWORD);
-  EXPECT_FALSE(online_sign_in_message->visible());
+  EXPECT_FALSE(online_sign_in_message->GetVisible());
   SetAuthMethods(LoginAuthUserView::AUTH_PIN);
-  EXPECT_FALSE(online_sign_in_message->visible());
+  EXPECT_FALSE(online_sign_in_message->GetVisible());
   SetAuthMethods(LoginAuthUserView::AUTH_TAP);
-  EXPECT_FALSE(online_sign_in_message->visible());
+  EXPECT_FALSE(online_sign_in_message->GetVisible());
 }
 
 // Verifies that password is cleared after AUTH_PASSWORD is disabled.
diff --git a/ash/login/ui/login_base_bubble_view.cc b/ash/login/ui/login_base_bubble_view.cc
index e673860..d88cf95 100644
--- a/ash/login/ui/login_base_bubble_view.cc
+++ b/ash/login/ui/login_base_bubble_view.cc
@@ -72,7 +72,7 @@
       return;
     }
 
-    if (!bubble_->visible())
+    if (!bubble_->GetVisible())
       return;
 
     if (bubble_->GetBubbleOpener() && bubble_->GetBubbleOpener()->HasFocus())
@@ -87,7 +87,7 @@
 
  private:
   void ProcessPressedEvent(const ui::LocatedEvent* event) {
-    if (!bubble_->visible())
+    if (!bubble_->GetVisible())
       return;
 
     gfx::Point screen_location = event->location();
@@ -197,7 +197,7 @@
   // If a Layout() is called while the bubble is visible (i.e. due to Show()),
   // its bounds may change because of the parent's LayoutManager. This allows
   // the bubbles to always determine their own size and position.
-  if (visible()) {
+  if (GetVisible()) {
     SetSize(GetPreferredSize());
     SetPosition(CalculatePosition());
   }
diff --git a/ash/login/ui/login_base_bubble_view_unittest.cc b/ash/login/ui/login_base_bubble_view_unittest.cc
index ddc5be7..0b8680e57 100644
--- a/ash/login/ui/login_base_bubble_view_unittest.cc
+++ b/ash/login/ui/login_base_bubble_view_unittest.cc
@@ -55,54 +55,54 @@
 };
 
 TEST_F(LoginBaseBubbleViewTest, BasicProperties) {
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 
   bubble_->Show();
-  EXPECT_TRUE(bubble_->visible());
+  EXPECT_TRUE(bubble_->GetVisible());
 
   EXPECT_EQ(bubble_->width(), kBubbleTotalWidthDp);
   EXPECT_EQ(bubble_->background()->get_color(), SK_ColorBLACK);
 
   bubble_->Hide();
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 }
 
 TEST_F(LoginBaseBubbleViewTest, KeyEventHandling) {
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 
   // Verify that a random key event won't open the bubble.
   ui::test::EventGenerator* generator = GetEventGenerator();
   container_->RequestFocus();
   generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 
   // Verify that a key event will close the bubble if it is open.
   bubble_->Show();
-  EXPECT_TRUE(bubble_->visible());
+  EXPECT_TRUE(bubble_->GetVisible());
   generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 }
 
 TEST_F(LoginBaseBubbleViewTest, MouseEventHandling) {
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 
   // Verify that a random mouse event won't open the bubble.
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->MoveMouseTo(container_->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 
   // Verify that a click event on the bubble won't close it.
   bubble_->Show();
-  EXPECT_TRUE(bubble_->visible());
+  EXPECT_TRUE(bubble_->GetVisible());
   generator->MoveMouseTo(bubble_->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
-  EXPECT_TRUE(bubble_->visible());
+  EXPECT_TRUE(bubble_->GetVisible());
 
   // Verify that a click event outside the bubble will close it if it is open.
   generator->MoveMouseTo(anchor_->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
-  EXPECT_FALSE(bubble_->visible());
+  EXPECT_FALSE(bubble_->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/login/ui/login_error_bubble_unittest.cc b/ash/login/ui/login_error_bubble_unittest.cc
index 37e2611..e212662 100644
--- a/ash/login/ui/login_error_bubble_unittest.cc
+++ b/ash/login/ui/login_error_bubble_unittest.cc
@@ -30,29 +30,29 @@
                                       true /*is_persistent*/);
   container->AddChildView(bubble);
 
-  EXPECT_FALSE(bubble->visible());
+  EXPECT_FALSE(bubble->GetVisible());
 
   bubble->Show();
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
 
   generator->MoveMouseTo(anchor_view->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   generator->MoveMouseTo(bubble->GetBoundsInScreen().CenterPoint());
   generator->ClickLeftButton();
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   generator->GestureTapAt(anchor_view->GetBoundsInScreen().CenterPoint());
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   generator->GestureTapAt(bubble->GetBoundsInScreen().CenterPoint());
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   generator->PressKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE);
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/login/ui/login_expanded_public_account_view.cc b/ash/login/ui/login_expanded_public_account_view.cc
index f54c158..e567e88 100644
--- a/ash/login/ui/login_expanded_public_account_view.cc
+++ b/ash/login/ui/login_expanded_public_account_view.cc
@@ -418,7 +418,7 @@
           selected_language_item_.value, selected_keyboard_item_.value);
     } else if (sender == language_selection_) {
       DCHECK(language_menu_view_);
-      if (language_menu_view_->visible()) {
+      if (language_menu_view_->GetVisible()) {
         language_menu_view_->Hide();
       } else {
         bool opener_had_focus = language_selection_->HasFocus();
@@ -430,7 +430,7 @@
       }
     } else if (sender == keyboard_selection_) {
       DCHECK(keyboard_menu_view_);
-      if (keyboard_menu_view_->visible()) {
+      if (keyboard_menu_view_->GetVisible()) {
         keyboard_menu_view_->Hide();
       } else {
         bool opener_had_focus = keyboard_selection_->HasFocus();
@@ -703,7 +703,7 @@
 
 void LoginExpandedPublicAccountView::ProcessPressedEvent(
     const ui::LocatedEvent* event) {
-  if (!visible())
+  if (!GetVisible())
     return;
 
   // Keep this view to be visible until warning dialog is dismissed.
@@ -770,7 +770,7 @@
 }
 
 void LoginExpandedPublicAccountView::OnKeyEvent(ui::KeyEvent* event) {
-  if (!visible() || event->type() != ui::ET_KEY_PRESSED)
+  if (!GetVisible() || event->type() != ui::ET_KEY_PRESSED)
     return;
 
   // Give warning dialog a chance to handle key event.
diff --git a/ash/login/ui/login_expanded_public_account_view_unittest.cc b/ash/login/ui/login_expanded_public_account_view_unittest.cc
index 839137a..3311e5f 100644
--- a/ash/login/ui/login_expanded_public_account_view_unittest.cc
+++ b/ash/login/ui/login_expanded_public_account_view_unittest.cc
@@ -131,14 +131,14 @@
 
   LoginExpandedPublicAccountView::TestApi test_api(public_account_);
   EXPECT_FALSE(user_->public_account_info->show_advanced_view);
-  EXPECT_FALSE(test_api.advanced_view()->visible());
+  EXPECT_FALSE(test_api.advanced_view()->GetVisible());
 
   // Toggle show_advanced_view.
   user_->public_account_info->show_advanced_view = true;
   public_account_->UpdateForUser(user_);
 
   // Advanced view is shown and the overall size does not change.
-  EXPECT_TRUE(test_api.advanced_view()->visible());
+  EXPECT_TRUE(test_api.advanced_view()->GetVisible());
   EXPECT_EQ(public_account_->width(), kBubbleTotalWidthDp);
   EXPECT_EQ(public_account_->height(), kBubbleTotalHeightDp);
 
@@ -146,7 +146,7 @@
   TapOnView(test_api.advanced_view_button());
 
   // Advanced view is hidden and the overall size does not change.
-  EXPECT_FALSE(test_api.advanced_view()->visible());
+  EXPECT_FALSE(test_api.advanced_view()->GetVisible());
   EXPECT_EQ(public_account_->width(), kBubbleTotalWidthDp);
   EXPECT_EQ(public_account_->height(), kBubbleTotalHeightDp);
 }
@@ -162,31 +162,31 @@
   views::View* link_view = styled_label_test.link_targets().begin()->first;
   TapOnView(link_view);
   EXPECT_NE(test_api.warning_dialog(), nullptr);
-  EXPECT_TRUE(test_api.warning_dialog()->visible());
+  EXPECT_TRUE(test_api.warning_dialog()->GetVisible());
 
   // When warning dialog is shown, tap outside of public account expanded view
   // should not hide it.
   TapOnView(other_view_);
-  EXPECT_TRUE(public_account_->visible());
+  EXPECT_TRUE(public_account_->GetVisible());
   EXPECT_NE(test_api.warning_dialog(), nullptr);
-  EXPECT_TRUE(test_api.warning_dialog()->visible());
+  EXPECT_TRUE(test_api.warning_dialog()->GetVisible());
 
   // If the warning dialog is shown, escape key should close the waring dialog,
   // but not the public account view.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(test_api.warning_dialog(), nullptr);
-  EXPECT_TRUE(public_account_->visible());
+  EXPECT_TRUE(public_account_->GetVisible());
 
   // Press escape again should hide the public account expanded view.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_ESCAPE, 0);
-  EXPECT_FALSE(public_account_->visible());
+  EXPECT_FALSE(public_account_->GetVisible());
 
   // Warning icon is shown only if full management disclosure flag is set.
   public_account_->SetShowFullManagementDisclosure(true);
-  EXPECT_TRUE(test_api.monitoring_warning_icon()->visible());
+  EXPECT_TRUE(test_api.monitoring_warning_icon()->GetVisible());
   public_account_->SetShowFullManagementDisclosure(false);
-  EXPECT_FALSE(test_api.monitoring_warning_icon()->visible());
+  EXPECT_FALSE(test_api.monitoring_warning_icon()->GetVisible());
 }
 
 // Verifies tap on submit button will try to launch public session.
@@ -214,16 +214,16 @@
 TEST_P(LoginExpandedPublicAccountViewTest, ShowLanguageAndKeyboardMenu) {
   LoginExpandedPublicAccountView::TestApi test_api(public_account_);
   EXPECT_FALSE(user_->public_account_info->show_advanced_view);
-  EXPECT_FALSE(test_api.advanced_view()->visible());
+  EXPECT_FALSE(test_api.advanced_view()->GetVisible());
 
   // Toggle show_advanced_view.
   user_->public_account_info->show_advanced_view = true;
   public_account_->UpdateForUser(user_);
-  EXPECT_TRUE(test_api.advanced_view()->visible());
+  EXPECT_TRUE(test_api.advanced_view()->GetVisible());
 
   // Tap on language selection button should bring up the language menu.
   TapOnView(test_api.language_selection_button());
-  EXPECT_TRUE(test_api.language_menu_view()->visible());
+  EXPECT_TRUE(test_api.language_menu_view()->GetVisible());
 
   // First language item is selected, and selected item should have focus.
   EXPECT_EQ(test_api.selected_language_item().value, kEnglishLanguageCode);
@@ -233,11 +233,11 @@
 
   // Select language item should close the language menu.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
-  EXPECT_FALSE(test_api.language_menu_view()->visible());
+  EXPECT_FALSE(test_api.language_menu_view()->GetVisible());
 
   // Tap on keyboard selection button should bring up the keyboard menu.
   TapOnView(test_api.keyboard_selection_button());
-  EXPECT_TRUE(test_api.keyboard_menu_view()->visible());
+  EXPECT_TRUE(test_api.keyboard_menu_view()->GetVisible());
 
   // Second keyboard item is selected, and selected item should have focus.
   EXPECT_EQ(test_api.selected_keyboard_item().value, kKeyboardIdForItem2);
@@ -247,19 +247,19 @@
 
   // Select keyboard item should close the keyboard menu.
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
-  EXPECT_FALSE(test_api.keyboard_menu_view()->visible());
+  EXPECT_FALSE(test_api.keyboard_menu_view()->GetVisible());
 }
 
 TEST_P(LoginExpandedPublicAccountViewTest, ChangeMenuSelection) {
   LoginExpandedPublicAccountView::TestApi test_api(public_account_);
   user_->public_account_info->show_advanced_view = true;
   public_account_->UpdateForUser(user_);
-  EXPECT_TRUE(test_api.advanced_view()->visible());
+  EXPECT_TRUE(test_api.advanced_view()->GetVisible());
 
   // Try to change language selection.
   // Open language menu.
   TapOnView(test_api.language_selection_button());
-  EXPECT_TRUE(test_api.language_menu_view()->visible());
+  EXPECT_TRUE(test_api.language_menu_view()->GetVisible());
 
   // Select second language item:
   // 1. Language menu will be closed automatically.
@@ -274,14 +274,14 @@
   EXPECT_EQ(test_api.selected_language_item().value, kEnglishLanguageCode);
   LoginMenuView::TestApi language_test_api(test_api.language_menu_view());
   TapOnView(language_test_api.contents()->children()[1]);
-  EXPECT_FALSE(test_api.language_menu_view()->visible());
+  EXPECT_FALSE(test_api.language_menu_view()->GetVisible());
   EXPECT_EQ(test_api.selected_language_item().value, kFrenchLanguageCode);
   base::RunLoop().RunUntilIdle();
 
   // Try to change keyboard selection.
   // Open keyboard menu.
   TapOnView(test_api.keyboard_selection_button());
-  EXPECT_TRUE(test_api.keyboard_menu_view()->visible());
+  EXPECT_TRUE(test_api.keyboard_menu_view()->GetVisible());
 
   // Select first keyboard item:
   // 1. Keyboard menu will be closed automatically.
@@ -289,7 +289,7 @@
   EXPECT_EQ(test_api.selected_keyboard_item().value, kKeyboardIdForItem2);
   LoginMenuView::TestApi keyboard_test_api(test_api.keyboard_menu_view());
   TapOnView(keyboard_test_api.contents()->children()[0]);
-  EXPECT_FALSE(test_api.keyboard_menu_view()->visible());
+  EXPECT_FALSE(test_api.keyboard_menu_view()->GetVisible());
   EXPECT_EQ(test_api.selected_keyboard_item().value, kKeyboardIdForItem1);
 }
 
diff --git a/ash/login/ui/login_password_view.cc b/ash/login/ui/login_password_view.cc
index 6369734..251ccce 100644
--- a/ash/login/ui/login_password_view.cc
+++ b/ash/login/ui/login_password_view.cc
@@ -519,7 +519,7 @@
 
 bool LoginPasswordView::OnKeyPressed(const ui::KeyEvent& event) {
   if (event.key_code() == ui::KeyboardCode::VKEY_RETURN &&
-      submit_button_->enabled()) {
+      submit_button_->GetEnabled()) {
     SubmitPassword();
     return true;
   }
@@ -586,7 +586,7 @@
 }
 
 void LoginPasswordView::SubmitPassword() {
-  DCHECK(submit_button_->enabled());
+  DCHECK(submit_button_->GetEnabled());
   if (textfield_->read_only())
     return;
   on_submit_.Run(textfield_->text());
diff --git a/ash/login/ui/login_password_view_test.cc b/ash/login/ui/login_password_view_test.cc
index 705fba7..9013928 100644
--- a/ash/login/ui/login_password_view_test.cc
+++ b/ash/login/ui/login_password_view_test.cc
@@ -65,33 +65,33 @@
 
   // The submit button starts with the disabled state.
   EXPECT_TRUE(is_password_field_empty_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
   // Enter 'a'. The submit button is enabled.
   generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
   EXPECT_FALSE(is_password_field_empty_);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
   // Enter 'b'. The submit button stays enabled.
   generator->PressKey(ui::KeyboardCode::VKEY_B, 0);
   EXPECT_FALSE(is_password_field_empty_);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   // Clear password. The submit button is disabled.
   view_->Clear();
   EXPECT_TRUE(is_password_field_empty_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   // Enter 'a'. The submit button is enabled.
   generator->PressKey(ui::KeyboardCode::VKEY_A, 0);
   EXPECT_FALSE(is_password_field_empty_);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
   // Set the text field to be read-only. The submit button is disabled.
   view_->SetReadOnly(true);
   EXPECT_FALSE(is_password_field_empty_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
   // Set the text field to be not read-only. The submit button is enabled.
   view_->SetReadOnly(false);
   EXPECT_FALSE(is_password_field_empty_);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 }
 
 // Verifies that password submit works with 'Enter'.
@@ -163,7 +163,7 @@
   // Enable icon.
   view_->SetEasyUnlockIcon(mojom::EasyUnlockIconId::SPINNER,
                            base::string16() /*accessibility_label*/);
-  ASSERT_TRUE(test_api.easy_unlock_icon()->visible());
+  ASSERT_TRUE(test_api.easy_unlock_icon()->GetVisible());
 
   // Click to the right of the icon, call is not generated.
   EXPECT_FALSE(easy_unlock_icon_tapped_called_);
@@ -193,7 +193,7 @@
   view_->SetEasyUnlockIcon(mojom::EasyUnlockIconId::SPINNER,
                            base::string16() /*accessibility_label*/);
   test_api.set_immediately_hover_easy_unlock_icon();
-  ASSERT_TRUE(test_api.easy_unlock_icon()->visible());
+  ASSERT_TRUE(test_api.easy_unlock_icon()->GetVisible());
 
   // Hover over the icon.
   EXPECT_FALSE(easy_unlock_icon_hovered_called_);
diff --git a/ash/login/ui/login_pin_view.cc b/ash/login/ui/login_pin_view.cc
index f06b8a0..4ba2906 100644
--- a/ash/login/ui/login_pin_view.cc
+++ b/ash/login/ui/login_pin_view.cc
@@ -271,7 +271,7 @@
 
   void OnEnabledChanged() {
     SkColor color = login_constants::kButtonEnabledColor;
-    if (!enabled()) {
+    if (!GetEnabled()) {
       color = SkColorSetA(color, login_constants::kButtonDisabledAlpha);
       CancelRepeat();
     }
diff --git a/ash/login/ui/login_user_menu_view.cc b/ash/login/ui/login_user_menu_view.cc
index fffa72d..617ec254 100644
--- a/ash/login/ui/login_user_menu_view.cc
+++ b/ash/login/ui/login_user_menu_view.cc
@@ -269,7 +269,7 @@
                                       const ui::Event& event) {
   // Show confirmation warning. The user has to click the button again before
   // we actually allow the exit.
-  if (!remove_user_confirm_data_->visible()) {
+  if (!remove_user_confirm_data_->GetVisible()) {
     remove_user_confirm_data_->SetVisible(true);
     remove_user_label_->SetEnabledColor(kRemoveUserConfirmColor);
 
diff --git a/ash/login/ui/login_user_menu_view_unittest.cc b/ash/login/ui/login_user_menu_view_unittest.cc
index 016b836..8521a55 100644
--- a/ash/login/ui/login_user_menu_view_unittest.cc
+++ b/ash/login/ui/login_user_menu_view_unittest.cc
@@ -44,7 +44,7 @@
 
   bubble->Show();
 
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   // Focus the remove user button (the menu should forward focus to the remove
   // button).
@@ -79,7 +79,7 @@
   anchor->AddChildView(bubble);
   bubble->Show();
 
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
 
   LoginUserMenuView::TestApi test_api(bubble);
   views::View* remove_user_button = test_api.remove_user_button();
@@ -88,15 +88,15 @@
 
   EXPECT_TRUE(bubble->GetBoundsInScreen().Contains(
       remove_user_button->GetBoundsInScreen()));
-  EXPECT_FALSE(remove_user_confirm_data->visible());
-  EXPECT_TRUE(username_label->visible());
+  EXPECT_FALSE(remove_user_confirm_data->GetVisible());
+  EXPECT_TRUE(username_label->GetVisible());
 
   bubble->RequestFocus();
   EXPECT_TRUE(remove_user_button->HasFocus());
 
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
-  EXPECT_TRUE(username_label->visible());
-  EXPECT_TRUE(remove_user_confirm_data->visible());
+  EXPECT_TRUE(username_label->GetVisible());
+  EXPECT_TRUE(remove_user_confirm_data->GetVisible());
   EXPECT_TRUE(remove_user_button->GetBoundsInScreen().y() >=
               remove_user_confirm_data->GetBoundsInScreen().y() +
                   remove_user_confirm_data->GetBoundsInScreen().height());
@@ -130,14 +130,14 @@
   container->AddChildView(bubble);
 
   bubble->Show();
-  EXPECT_TRUE(bubble->visible());
+  EXPECT_TRUE(bubble->GetVisible());
   EXPECT_TRUE(ink_drop_api.HasInkDrop());
   EXPECT_EQ(ink_drop_api.GetInkDrop()->GetTargetInkDropState(),
             views::InkDropState::ACTIVATED);
   EXPECT_TRUE(ink_drop_api.GetInkDrop()->IsHighlightFadingInOrVisible());
 
   bubble->Hide();
-  EXPECT_FALSE(bubble->visible());
+  EXPECT_FALSE(bubble->GetVisible());
   EXPECT_EQ(ink_drop_api.GetInkDrop()->GetTargetInkDropState(),
             views::InkDropState::HIDDEN);
   EXPECT_FALSE(ink_drop_api.GetInkDrop()->IsHighlightFadingInOrVisible());
@@ -158,14 +158,14 @@
   bubble->Show();
 
   LoginUserMenuView::TestApi test_api(bubble);
-  EXPECT_FALSE(test_api.remove_user_confirm_data()->visible());
+  EXPECT_FALSE(test_api.remove_user_confirm_data()->GetVisible());
 
   test_api.remove_user_button()->RequestFocus();
   GetEventGenerator()->PressKey(ui::KeyboardCode::VKEY_RETURN, 0);
-  EXPECT_TRUE(test_api.remove_user_confirm_data()->visible());
+  EXPECT_TRUE(test_api.remove_user_confirm_data()->GetVisible());
 
   bubble->ResetState();
-  EXPECT_FALSE(test_api.remove_user_confirm_data()->visible());
+  EXPECT_FALSE(test_api.remove_user_confirm_data()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/login/ui/login_user_view.cc b/ash/login/ui/login_user_view.cc
index ef28bae..d55bf8a 100644
--- a/ash/login/ui/login_user_view.cc
+++ b/ash/login/ui/login_user_view.cc
@@ -541,7 +541,7 @@
     DCHECK(menu_);
 
     // If menu is showing, just close it
-    if (menu_->visible()) {
+    if (menu_->GetVisible()) {
       menu_->Hide();
       return;
     }
diff --git a/ash/login/ui/note_action_launch_button_unittest.cc b/ash/login/ui/note_action_launch_button_unittest.cc
index adf4886..c9ee6a8 100644
--- a/ash/login/ui/note_action_launch_button_unittest.cc
+++ b/ash/login/ui/note_action_launch_button_unittest.cc
@@ -77,7 +77,7 @@
 TEST_F(NoteActionLaunchButtonTest, VisibilityActionNotAvailable) {
   auto note_action_button = std::make_unique<NoteActionLaunchButton>(
       mojom::TrayActionState::kNotAvailable);
-  EXPECT_FALSE(note_action_button->visible());
+  EXPECT_FALSE(note_action_button->GetVisible());
 }
 
 // Verifies that note action button is shown and enabled if lock screen note
@@ -87,12 +87,12 @@
       mojom::TrayActionState::kAvailable);
   NoteActionLaunchButton::TestApi test_api(note_action_button.get());
 
-  EXPECT_TRUE(note_action_button->visible());
-  EXPECT_TRUE(note_action_button->enabled());
+  EXPECT_TRUE(note_action_button->GetVisible());
+  EXPECT_TRUE(note_action_button->GetEnabled());
 
-  EXPECT_TRUE(test_api.ActionButtonView()->visible());
-  EXPECT_TRUE(test_api.ActionButtonView()->enabled());
-  EXPECT_TRUE(test_api.BackgroundView()->visible());
+  EXPECT_TRUE(test_api.ActionButtonView()->GetVisible());
+  EXPECT_TRUE(test_api.ActionButtonView()->GetEnabled());
+  EXPECT_TRUE(test_api.BackgroundView()->GetVisible());
 }
 
 // Tests that clicking Enter while lock screen action button is focused requests
diff --git a/ash/login/ui/parent_access_view_unittest.cc b/ash/login/ui/parent_access_view_unittest.cc
index 935417d..fc3a427 100644
--- a/ash/login/ui/parent_access_view_unittest.cc
+++ b/ash/login/ui/parent_access_view_unittest.cc
@@ -89,7 +89,7 @@
 // Tests that back button works.
 TEST_F(ParentAccessViewTest, BackButton) {
   ParentAccessView::TestApi test_api(view_);
-  EXPECT_TRUE(test_api.back_button()->enabled());
+  EXPECT_TRUE(test_api.back_button()->GetEnabled());
   EXPECT_EQ(0, back_action_);
 
   SimulateButtonPress(test_api.back_button());
@@ -101,14 +101,14 @@
 // Tests that submit button submits code from code input.
 TEST_F(ParentAccessViewTest, SubmitButton) {
   ParentAccessView::TestApi test_api(view_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
   for (int i = 0; i < 6; ++i) {
     generator->PressKey(ui::KeyboardCode(ui::KeyboardCode::VKEY_0 + i),
                         ui::EF_NONE);
   }
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -127,7 +127,7 @@
   ui::test::EventGenerator* generator = GetEventGenerator();
   for (int i = 0; i < 6; ++i)
     generator->PressKey(ui::KeyboardCode(ui::VKEY_NUMPAD0 + i), ui::EF_NONE);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -142,14 +142,14 @@
 // Tests that access code can be submitted with press of 'enter' key.
 TEST_F(ParentAccessViewTest, SubmitWithEnter) {
   ParentAccessView::TestApi test_api(view_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
   for (int i = 0; i < 6; ++i) {
     generator->PressKey(ui::KeyboardCode(ui::KeyboardCode::VKEY_0 + i),
                         ui::EF_NONE);
   }
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -164,7 +164,7 @@
 // Tests that 'enter' key does not submit incomplete code.
 TEST_F(ParentAccessViewTest, PressEnterOnIncompleteCode) {
   ParentAccessView::TestApi test_api(view_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   // Enter incomplete code.
   ui::test::EventGenerator* generator = GetEventGenerator();
@@ -172,7 +172,7 @@
     generator->PressKey(ui::KeyboardCode(ui::KeyboardCode::VKEY_0 + i),
                         ui::EF_NONE);
   }
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_, ValidateParentAccessCode_).Times(0);
@@ -184,7 +184,7 @@
 
   // Fill in last digit of the code.
   generator->PressKey(ui::KeyboardCode(ui::KeyboardCode::VKEY_9), ui::EF_NONE);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -200,29 +200,29 @@
 // Tests that backspace button works.
 TEST_F(ParentAccessViewTest, Backspace) {
   ParentAccessView::TestApi test_api(view_);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
   for (int i = 0; i < 6; ++i)
     generator->PressKey(ui::KeyboardCode::VKEY_1, ui::EF_NONE);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   // Active field has content - backspace clears the content, but does not move
   // focus.
   generator->PressKey(ui::KeyboardCode::VKEY_BACK, ui::EF_NONE);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   // Active Field is empty - backspace moves focus to before last field.
   generator->PressKey(ui::KeyboardCode::VKEY_BACK, ui::EF_NONE);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   // Change value in before last field.
   generator->PressKey(ui::KeyboardCode::VKEY_2, ui::EF_NONE);
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   // Fill in value in last field.
   generator->PressKey(ui::KeyboardCode::VKEY_3, ui::EF_NONE);
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -240,11 +240,11 @@
 
   ParentAccessView::TestApi test_api(view_);
   LoginPinView::TestApi test_pin_keyboard(test_api.pin_keyboard_view());
-  EXPECT_FALSE(test_api.submit_button()->enabled());
+  EXPECT_FALSE(test_api.submit_button()->GetEnabled());
 
   for (int i = 0; i < 6; ++i)
     SimulatePinKeyboardPress(test_pin_keyboard.GetButton(i));
-  EXPECT_TRUE(test_api.submit_button()->enabled());
+  EXPECT_TRUE(test_api.submit_button()->GetEnabled());
 
   login_client_->set_validate_parent_access_code_result(true);
   EXPECT_CALL(*login_client_,
@@ -260,13 +260,13 @@
 TEST_F(ParentAccessViewTest, PinKeyboardVisibilityChange) {
   ParentAccessView::TestApi test_api(view_);
   LoginPinView::TestApi test_pin_keyboard(test_api.pin_keyboard_view());
-  EXPECT_FALSE(test_api.pin_keyboard_view()->visible());
+  EXPECT_FALSE(test_api.pin_keyboard_view()->GetVisible());
 
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
-  EXPECT_TRUE(test_api.pin_keyboard_view()->visible());
+  EXPECT_TRUE(test_api.pin_keyboard_view()->GetVisible());
 
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(false);
-  EXPECT_FALSE(test_api.pin_keyboard_view()->visible());
+  EXPECT_FALSE(test_api.pin_keyboard_view()->GetVisible());
 }
 
 // Tests that error state is shown and cleared when neccesary.
diff --git a/ash/login/ui/scrollable_users_list_view.cc b/ash/login/ui/scrollable_users_list_view.cc
index 7d1aabf..f6d284b19 100644
--- a/ash/login/ui/scrollable_users_list_view.cc
+++ b/ash/login/ui/scrollable_users_list_view.cc
@@ -392,7 +392,7 @@
     cc::PaintFlags flags;
 
     // Only draw a gradient if the content can be scrolled.
-    if (vertical_scroll_bar()->visible()) {
+    if (vertical_scroll_bar()->GetVisible()) {
       // Draws symmetrical linear gradient at the top and bottom of the view.
       SkScalar view_height = render_bounds.height();
       SkScalar gradient_height = gradient_params_.height;
diff --git a/ash/media/media_notification_view_unittest.cc b/ash/media/media_notification_view_unittest.cc
index ff7c2bf..15d05b4 100644
--- a/ash/media/media_notification_view_unittest.cc
+++ b/ash/media/media_notification_view_unittest.cc
@@ -202,7 +202,7 @@
   }
 
   bool IsActionButtonVisible(MediaSessionAction action) const {
-    return GetButtonForAction(action)->visible();
+    return GetButtonForAction(action)->GetVisible();
   }
 
   MediaNotificationItem* GetItem() const {
@@ -221,14 +221,14 @@
   }
 
   bool expand_button_enabled() const {
-    return header_row()->expand_button()->visible();
+    return header_row()->expand_button()->GetVisible();
   }
 
   bool IsActuallyExpanded() const { return view_->IsActuallyExpanded(); }
 
   void SimulateButtonClick(MediaSessionAction action) {
     views::Button* button = GetButtonForAction(action);
-    EXPECT_TRUE(button->visible());
+    EXPECT_TRUE(button->GetVisible());
 
     view_->ButtonPressed(
         button, ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
@@ -312,7 +312,7 @@
 TEST_F(MediaNotificationViewTest, ButtonsSanityCheck) {
   EnableAllActions();
 
-  EXPECT_TRUE(button_row()->visible());
+  EXPECT_TRUE(button_row()->GetVisible());
   EXPECT_GT(button_row()->width(), 0);
   EXPECT_GT(button_row()->height(), 0);
 
@@ -321,7 +321,7 @@
   for (auto* child : button_row()->children()) {
     ASSERT_TRUE(IsMediaButtonType(child->GetClassName()));
 
-    EXPECT_TRUE(child->visible());
+    EXPECT_TRUE(child->GetVisible());
     EXPECT_LT(kMediaButtonIconSize, child->width());
     EXPECT_LT(kMediaButtonIconSize, child->height());
     EXPECT_FALSE(views::Button::AsButton(child)->GetAccessibleName().empty());
@@ -575,9 +575,9 @@
 TEST_F(MediaNotificationViewTest, MetadataIsDisplayed) {
   EnableAllActions();
 
-  EXPECT_TRUE(title_artist_row()->visible());
-  EXPECT_TRUE(title_label()->visible());
-  EXPECT_TRUE(artist_label()->visible());
+  EXPECT_TRUE(title_artist_row()->GetVisible());
+  EXPECT_TRUE(title_label()->GetVisible());
+  EXPECT_TRUE(artist_label()->GetVisible());
 
   EXPECT_EQ(base::ASCIIToUTF16("title"), title_label()->text());
   EXPECT_EQ(base::ASCIIToUTF16("artist"), artist_label()->text());
@@ -593,7 +593,7 @@
   ExpectHistogramMetadataRecorded(MediaNotificationView::Metadata::kAlbum, 0);
   ExpectHistogramMetadataRecorded(MediaNotificationView::Metadata::kCount, 1);
 
-  EXPECT_FALSE(header_row()->summary_text_for_testing()->visible());
+  EXPECT_FALSE(header_row()->summary_text_for_testing()->GetVisible());
 
   media_session::MediaMetadata metadata;
   metadata.title = base::ASCIIToUTF16("title2");
@@ -602,10 +602,10 @@
 
   GetItem()->MediaSessionMetadataChanged(metadata);
 
-  EXPECT_TRUE(title_artist_row()->visible());
-  EXPECT_TRUE(title_label()->visible());
-  EXPECT_TRUE(artist_label()->visible());
-  EXPECT_TRUE(header_row()->summary_text_for_testing()->visible());
+  EXPECT_TRUE(title_artist_row()->GetVisible());
+  EXPECT_TRUE(title_label()->GetVisible());
+  EXPECT_TRUE(artist_label()->GetVisible());
+  EXPECT_TRUE(header_row()->summary_text_for_testing()->GetVisible());
 
   EXPECT_EQ(metadata.title, title_label()->text());
   EXPECT_EQ(metadata.artist, artist_label()->text());
diff --git a/ash/metrics/login_metrics_recorder_unittest.cc b/ash/metrics/login_metrics_recorder_unittest.cc
index 9cd67fd..82b70df 100644
--- a/ash/metrics/login_metrics_recorder_unittest.cc
+++ b/ash/metrics/login_metrics_recorder_unittest.cc
@@ -91,7 +91,7 @@
   std::unique_ptr<views::Widget> widget = CreateWidgetWithContent(contents);
 
   LockContentsView::TestApi test_api(contents);
-  EXPECT_TRUE(test_api.note_action()->visible());
+  EXPECT_TRUE(test_api.note_action()->GetVisible());
 
   ui::test::EventGenerator* generator = GetEventGenerator();
   generator->MoveMouseTo(
diff --git a/ash/public/cpp/caption_buttons/frame_caption_button_container_view.cc b/ash/public/cpp/caption_buttons/frame_caption_button_container_view.cc
index ef51251..97cfabb 100644
--- a/ash/public/cpp/caption_buttons/frame_caption_button_container_view.cc
+++ b/ash/public/cpp/caption_buttons/frame_caption_button_container_view.cc
@@ -425,7 +425,7 @@
 }
 
 bool FrameCaptionButtonContainerView::IsMinimizeButtonVisible() const {
-  return minimize_button_->visible();
+  return minimize_button_->GetVisible();
 }
 
 void FrameCaptionButtonContainerView::SetButtonsToNormal(Animate animate) {
@@ -460,7 +460,7 @@
   views::FrameCaptionButton* closest_button = NULL;
   for (size_t i = 0; i < base::size(buttons); ++i) {
     views::FrameCaptionButton* button = buttons[i];
-    if (!button->visible())
+    if (!button->GetVisible())
       continue;
 
     gfx::Point center_point = button->GetLocalBounds().CenterPoint();
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index ef6882d..9e7d331 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -516,7 +516,7 @@
 
 bool RootWindowController::IsSystemTrayVisible() {
   TrayBackgroundView* tray = GetStatusAreaWidget()->unified_system_tray();
-  return tray && tray->GetWidget()->IsVisible() && tray->visible();
+  return tray && tray->GetWidget()->IsVisible() && tray->GetVisible();
 }
 
 bool RootWindowController::CanWindowReceiveEvents(aura::Window* window) {
diff --git a/ash/rotator/screen_rotation_animator_unittest.cc b/ash/rotator/screen_rotation_animator_unittest.cc
index b6667aa..2f775a2 100644
--- a/ash/rotator/screen_rotation_animator_unittest.cc
+++ b/ash/rotator/screen_rotation_animator_unittest.cc
@@ -395,7 +395,7 @@
                      display::Display::RotationSource::USER,
                      DisplayConfigurationController::ANIMATION_SYNC);
 
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 TEST_F(ScreenRotationAnimatorSmoothAnimationTest, Observer) {
@@ -634,7 +634,7 @@
   WaitForCopyCallback();
 
   GetTray()->layer()->GetAnimator()->StopAnimating();
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 // Test that smooth screen rotation animation will work when |root_window|
diff --git a/ash/shelf/login_shelf_view.cc b/ash/shelf/login_shelf_view.cc
index deef79b..7b14ad19 100644
--- a/ash/shelf/login_shelf_view.cc
+++ b/ash/shelf/login_shelf_view.cc
@@ -508,13 +508,13 @@
 }
 
 bool LoginShelfView::LaunchAppForTesting(const std::string& app_id) {
-  return kiosk_apps_button_->enabled() &&
+  return kiosk_apps_button_->GetEnabled() &&
          kiosk_apps_button_->LaunchAppForTesting(app_id);
 }
 
 bool LoginShelfView::SimulateAddUserButtonForTesting() {
   views::View* add_user_button = GetViewByID(kAddUser);
-  if (!add_user_button->enabled())
+  if (!add_user_button->GetEnabled())
     return false;
 
   StartAddUser();
@@ -523,7 +523,7 @@
 
 bool LoginShelfView::SimulateGuestButtonForTesting() {
   views::View* guest_login_button = GetViewByID(kBrowseAsGuest);
-  if (!guest_login_button->enabled())
+  if (!guest_login_button->GetEnabled())
     return false;
 
   Shell::Get()->login_screen_controller()->LoginAsGuest();
@@ -732,7 +732,7 @@
   button_union_bounds_ = gfx::Rect();
   View::Views children = GetChildrenInZOrder();
   for (auto* child : children) {
-    if (child->visible())
+    if (child->GetVisible())
       button_union_bounds_.Union(child->bounds());
   }
 }
diff --git a/ash/shelf/login_shelf_view_unittest.cc b/ash/shelf/login_shelf_view_unittest.cc
index eb87b8a..568af4c 100644
--- a/ash/shelf/login_shelf_view_unittest.cc
+++ b/ash/shelf/login_shelf_view_unittest.cc
@@ -108,19 +108,19 @@
   // the specified list must be unique.
   bool ShowsShelfButtons(std::vector<LoginShelfView::ButtonId> ids) {
     for (LoginShelfView::ButtonId id : ids) {
-      if (!login_shelf_view_->GetViewByID(id)->visible())
+      if (!login_shelf_view_->GetViewByID(id)->GetVisible())
         return false;
     }
     const auto& children = login_shelf_view_->children();
     const size_t visible_buttons =
         std::count_if(children.cbegin(), login_shelf_view_->children().cend(),
-                      [](const auto* v) { return v->visible(); });
+                      [](const auto* v) { return v->GetVisible(); });
     return visible_buttons == ids.size();
   }
 
   // Check whether the button is enabled.
   bool IsButtonEnabled(LoginShelfView::ButtonId id) {
-    return login_shelf_view_->GetViewByID(id)->enabled();
+    return login_shelf_view_->GetViewByID(id)->GetEnabled();
   }
 
   TestTrayActionClient tray_action_client_;
diff --git a/ash/shelf/shelf_tooltip_manager.cc b/ash/shelf/shelf_tooltip_manager.cc
index 57e6cc6..ef0c93a 100644
--- a/ash/shelf/shelf_tooltip_manager.cc
+++ b/ash/shelf/shelf_tooltip_manager.cc
@@ -162,7 +162,7 @@
 
 bool ShelfTooltipManager::ShouldShowTooltipForView(views::View* view) {
   Shelf* shelf = shelf_view_ ? shelf_view_->shelf() : nullptr;
-  return shelf && shelf_view_->visible() &&
+  return shelf && shelf_view_->GetVisible() &&
          shelf_view_->ShouldShowTooltipForView(view) &&
          (shelf->GetVisibilityState() == SHELF_VISIBLE ||
           (shelf->GetVisibilityState() == SHELF_AUTO_HIDE &&
diff --git a/ash/shelf/shelf_unittest.cc b/ash/shelf/shelf_unittest.cc
index d5b6df6..15f5ee9 100644
--- a/ash/shelf/shelf_unittest.cc
+++ b/ash/shelf/shelf_unittest.cc
@@ -109,7 +109,7 @@
   ShelfItem item;
   item.type = TYPE_APP;
   item.status = STATUS_RUNNING;
-  while (!shelf_view()->GetOverflowButton()->visible()) {
+  while (!shelf_view()->GetOverflowButton()->GetVisible()) {
     item.id = ShelfID(base::NumberToString(shelf_model()->item_count()));
     shelf_model()->Add(item);
     ASSERT_LT(shelf_model()->item_count(), 10000);
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 021dfe0..a382f27 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -210,7 +210,7 @@
       if (view != main_shelf->GetBackButton() || IsTabletModeEnabled())
         focusable_views.push_back(view);
     }
-    if (main_shelf->GetOverflowButton()->visible())
+    if (main_shelf->GetOverflowButton()->GetVisible())
       focusable_views.push_back(main_shelf->GetOverflowButton());
     const int overflow_cutoff = static_cast<int>(focusable_views.size());
     if (main_shelf->IsShowingOverflowBubble() && overflow_shelf) {
@@ -503,7 +503,7 @@
       visible_shelf_item_bounds_union_.Union(child->GetMirroredBounds());
   }
   // Also include the overflow button if it is visible.
-  if (overflow_button_->visible()) {
+  if (overflow_button_->GetVisible()) {
     visible_shelf_item_bounds_union_.Union(
         overflow_button_->GetMirroredBounds());
   }
@@ -553,7 +553,7 @@
   CalculateIdealBounds();
 
   int last_button_index = last_visible_index_;
-  if (!is_overflow_mode() && overflow_button_ && overflow_button_->visible())
+  if (!is_overflow_mode() && overflow_button_ && overflow_button_->GetVisible())
     ++last_button_index;
 
   // When an item is dragged off from the overflow bubble, it is moved to last
@@ -627,7 +627,7 @@
   // child's subviews.
   View::Views children = GetChildrenInZOrder();
   for (auto* child : base::Reversed(children)) {
-    if (!child->visible())
+    if (!child->GetVisible())
       continue;
 
     gfx::Point point_in_child_coords(point);
@@ -887,7 +887,7 @@
 views::View* ShelfView::FindLastFocusableChild() {
   if (IsShowingOverflowBubble())
     return overflow_shelf()->FindLastFocusableChild();
-  return overflow_button_->visible()
+  return overflow_button_->GetVisible()
              ? overflow_button_
              : view_model_->view_at(last_visible_index());
 }
@@ -1968,7 +1968,7 @@
 void ShelfView::StartFadeInLastVisibleItem() {
   // If overflow button is visible and there is a valid new last item, fading
   // the new last item in after sliding animation is finished.
-  if (overflow_button_->visible() && last_visible_index_ >= 0) {
+  if (overflow_button_->GetVisible() && last_visible_index_ >= 0) {
     views::View* last_visible_view = view_model_->view_at(last_visible_index_);
     last_visible_view->layer()->SetOpacity(0);
     bounds_animator_->SetAnimationDelegate(
@@ -2060,7 +2060,7 @@
     const int last_button_index = view_model_->view_size() - 1;
     gfx::Rect last_button_bounds =
         view_model_->view_at(last_button_index)->bounds();
-    if (overflow_button_->visible()) {
+    if (overflow_button_->GetVisible()) {
       // When overflow button is visible, last_button_bounds should be
       // overflow button's bounds.
       last_button_bounds = overflow_button_->bounds();
@@ -2204,7 +2204,7 @@
     UpdateOverflowRange(overflow_bubble_->bubble_view()->shelf_view());
   }
 
-  if (view->visible()) {
+  if (view->GetVisible()) {
     // The first animation fades out the view. When done we'll animate the rest
     // of the views to their target location.
     bounds_animator_->AnimateViewTo(view, view->bounds());
@@ -2246,7 +2246,7 @@
     view_model_->set_ideal_bounds(model_index, old_ideal_bounds);
 
     new_view->SetBoundsRect(old_view->bounds());
-    if (overflow_button_ && overflow_button_->visible())
+    if (overflow_button_ && overflow_button_->GetVisible())
       AnimateToIdealBounds();
     else
       bounds_animator_->AnimateViewTo(new_view, old_ideal_bounds);
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index 0907cc8..f147e98 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -530,7 +530,7 @@
 
   void AddButtonsUntilOverflow() {
     int items_added = 0;
-    while (!shelf_view_->GetOverflowButton()->visible()) {
+    while (!shelf_view_->GetOverflowButton()->GetVisible()) {
       AddAppShortcut();
       ++items_added;
       ASSERT_LT(items_added, 10000);
@@ -774,9 +774,9 @@
   // Add platform app button until overflow.
   int items_added = 0;
   ShelfID last_added = AddApp();
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     // Added button is visible after animation while in this loop.
-    EXPECT_TRUE(GetButtonByID(last_added)->visible());
+    EXPECT_TRUE(GetButtonByID(last_added)->GetVisible());
 
     last_added = AddApp();
     ++items_added;
@@ -784,12 +784,12 @@
   }
 
   // The last added button should be invisible.
-  EXPECT_FALSE(GetButtonByID(last_added)->visible());
+  EXPECT_FALSE(GetButtonByID(last_added)->GetVisible());
 }
 
 TEST_F(ShelfViewTest, OverflowVisibleIndex) {
   AddButtonsUntilOverflow();
-  ASSERT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  ASSERT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   const int last_visible_index = shelf_view_->last_visible_index();
 
   test_api_->ShowOverflowBubble();
@@ -824,9 +824,9 @@
   // Add app shortcut until overflow.
   int items_added = 0;
   ShelfID last_added = AddAppShortcut();
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     // Added button is visible after animation while in this loop.
-    EXPECT_TRUE(GetButtonByID(last_added)->visible());
+    EXPECT_TRUE(GetButtonByID(last_added)->GetVisible());
 
     last_added = AddAppShortcut();
     ++items_added;
@@ -834,7 +834,7 @@
   }
 
   // And the platform app button is invisible.
-  EXPECT_FALSE(GetButtonByID(browser_button_id)->visible());
+  EXPECT_FALSE(GetButtonByID(browser_button_id)->GetVisible());
 }
 
 // Making sure that no buttons on the shelf will ever overlap after adding many
@@ -842,7 +842,7 @@
 TEST_F(ShelfViewTest, AssertNoButtonsOverlap) {
   std::vector<ShelfID> button_ids;
   // Add app icons until the overflow button is visible.
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     ShelfID id = AddApp();
     button_ids.push_back(id);
   }
@@ -855,8 +855,8 @@
     RemoveByID(id);
     button_ids.pop_back();
   }
-  EXPECT_FALSE(shelf_view_->GetOverflowButton()->visible());
-  EXPECT_TRUE(GetButtonByID(button_ids.back())->visible());
+  EXPECT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
+  EXPECT_TRUE(GetButtonByID(button_ids.back())->GetVisible());
 
   // Add 20 app icons, and expect to have overflow.
   for (int i = 0; i < 20; ++i) {
@@ -864,7 +864,7 @@
     button_ids.push_back(id);
   }
   ASSERT_LT(button_ids.size(), 10000U);
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
 
   // Test that any two successive visible icons never overlap in all shelf
   // alignment types.
@@ -878,8 +878,8 @@
     // For every 2 successive visible icons, expect that their bounds don't
     // intersect.
     for (int i = 2; i < test_api_->GetButtonCount() - 1; ++i) {
-      if (!(test_api_->GetButton(i)->visible() &&
-            test_api_->GetButton(i + 1)->visible())) {
+      if (!(test_api_->GetButton(i)->GetVisible() &&
+            test_api_->GetButton(i + 1)->GetVisible())) {
         continue;
       }
 
@@ -901,7 +901,7 @@
   int items_added = 0;
   ShelfID first_added = AddApp();
   ShelfID last_added = first_added;
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     last_added = AddApp();
     ++items_added;
     ASSERT_LT(items_added, 10000);
@@ -909,16 +909,16 @@
 
   // Expect add more than 1 button. First added is visible and last is not.
   EXPECT_NE(first_added, last_added);
-  EXPECT_TRUE(GetButtonByID(first_added)->visible());
-  EXPECT_FALSE(GetButtonByID(last_added)->visible());
+  EXPECT_TRUE(GetButtonByID(first_added)->GetVisible());
+  EXPECT_FALSE(GetButtonByID(last_added)->GetVisible());
 
   // Remove first added.
   RemoveByID(first_added);
 
   // Last added button becomes visible and overflow chevron is gone.
-  EXPECT_TRUE(GetButtonByID(last_added)->visible());
+  EXPECT_TRUE(GetButtonByID(last_added)->GetVisible());
   EXPECT_EQ(1.0f, GetButtonByID(last_added)->layer()->opacity());
-  EXPECT_FALSE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
 }
 
 // Verifies that remove last overflowed button should hide overflow chevron.
@@ -929,14 +929,14 @@
   // Add platform app button until overflow.
   int items_added = 0;
   ShelfID last_added = AddApp();
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     last_added = AddApp();
     ++items_added;
     ASSERT_LT(items_added, 10000);
   }
 
   RemoveByID(last_added);
-  EXPECT_FALSE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
 }
 
 // Tests the visiblity of certain shelf items when the overflow bubble is open
@@ -948,7 +948,7 @@
     return shelf_test_api->shelf_view()
         ->view_model_for_test()
         ->view_at(index)
-        ->visible();
+        ->GetVisible();
   };
 
   // Setup the shelf so the overflow bubble is visible.
@@ -991,7 +991,7 @@
 
   // Add a few platform buttons quickly without wait for animation.
   int added_count = 0;
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     AddAppNoWait();
     ++added_count;
     ASSERT_LT(added_count, 10000);
@@ -1008,7 +1008,7 @@
   for (int i = 1; i <= shelf_view_->last_visible_index(); ++i) {
     ShelfAppButton* button = test_api_->GetButton(i);
     if (button) {
-      EXPECT_TRUE(button->visible()) << "button index=" << i;
+      EXPECT_TRUE(button->GetVisible()) << "button index=" << i;
       EXPECT_EQ(1.0f, button->layer()->opacity()) << "button index=" << i;
     }
   }
@@ -1603,7 +1603,7 @@
   // leave the last running.
   int items_added = 0;
   AddAppNoWait();
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     test_api_->RunMessageLoopUntilAnimationsDone();
     AddAppNoWait();
     ++items_added;
@@ -1614,7 +1614,7 @@
   gfx::Rect bounds = shelf_view_->bounds();
   bounds.set_width(bounds.width() - ShelfConstants::shelf_size());
   shelf_view_->SetBoundsRect(bounds);
-  ASSERT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  ASSERT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
 
   // Finish the animation.
   test_api_->RunMessageLoopUntilAnimationsDone();
@@ -1914,13 +1914,13 @@
 
   // Add a running Platform app.
   ShelfID platform_app_id = AddApp();
-  EXPECT_FALSE(GetButtonByID(platform_app_id)->visible());
+  EXPECT_FALSE(GetButtonByID(platform_app_id)->GetVisible());
 
   // Make the added running platform app to be an app shortcut.
   // This app shortcut should be a swapped view in overflow bubble, which is
   // invisible.
   SetShelfItemTypeToAppShortcut(platform_app_id);
-  EXPECT_FALSE(GetButtonByID(platform_app_id)->visible());
+  EXPECT_FALSE(GetButtonByID(platform_app_id)->GetVisible());
 }
 
 // Verifies that Launcher_ButtonPressed_* UMA user actions are recorded when an
@@ -2056,13 +2056,13 @@
   const ShelfID first_shelf_id = AddAppShortcut();
   AddButtonsUntilOverflow();
   test_api_->ShowOverflowBubble();
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_TRUE(shelf_view_->IsShowingOverflowBubble());
 
   // Unpinning an item should hide the overflow button and close the bubble.
   model_->UnpinAppWithID(first_shelf_id.app_id);
   test_api_->RunMessageLoopUntilAnimationsDone();
-  EXPECT_FALSE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_FALSE(shelf_view_->IsShowingOverflowBubble());
 }
 
@@ -2353,11 +2353,11 @@
   }
 
   // Now add apps until the overflow button appears.
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     app_buttons.push_back(GetButtonByID(AddApp()));
     n_buttons = app_buttons.size();
   }
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   // Now that the apps + overflow button are centered over the available space
   // on the shelf, check that the the distance between the left app and the
   // app list button is equal to the distance between the overflow button
@@ -2390,7 +2390,7 @@
   ShelfID last_added_item_id;
   while (true) {
     last_added_item_id = AddApp();
-    if (shelf_view_->GetOverflowButton()->visible()) {
+    if (shelf_view_->GetOverflowButton()->GetVisible()) {
       last_visible_index_before_overflow = last_visible_index;
       break;
     }
@@ -2402,7 +2402,7 @@
   // The overflow button is now visible. Check that the last visible index is
   // one less than before, because the overflow button replaces the last visible
   // app.
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_EQ(last_visible_index_before_overflow - 1,
             shelf_view_->last_visible_index());
 
@@ -2415,7 +2415,7 @@
 
   // Adding another app should let the overflow button appear again.
   AddApp();
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_EQ(last_visible_index_before_overflow - 1,
             shelf_view_->last_visible_index());
   // And now adding more apps shouldn't change the last visible index.
@@ -2584,7 +2584,7 @@
     EXPECT_TRUE(shelf_bounds.Contains(visible_bounds));
     for (int i = 0; i < test_api_->GetButtonCount(); ++i)
       if (ShelfAppButton* button = test_api_->GetButton(i)) {
-        if (button->visible())
+        if (button->GetVisible())
           EXPECT_TRUE(visible_bounds.Contains(button->GetBoundsInScreen()));
       }
     CheckAppListButtonIsInBounds();
@@ -2610,10 +2610,10 @@
     AddAppShortcut();
   }
   test_api_->RunMessageLoopUntilAnimationsDone();
-  EXPECT_FALSE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
   CheckAllItemsAreInBounds();
   // Same for overflow case.
-  while (!shelf_view_->GetOverflowButton()->visible()) {
+  while (!shelf_view_->GetOverflowButton()->GetVisible()) {
     AddAppShortcut();
   }
   test_api_->RunMessageLoopUntilAnimationsDone();
@@ -3176,7 +3176,7 @@
         .SetInkDrop(std::move(overflow_button_ink_drop));
 
     AddButtonsUntilOverflow();
-    EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+    EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
     EXPECT_FALSE(shelf_view_->IsShowingOverflowBubble());
   }
 
@@ -3781,7 +3781,7 @@
 // Tests that the overflow button is visible and that not all the items are
 // visible on the main shelf.
 TEST_F(ShelfViewOverflowFocusTest, Basic) {
-  EXPECT_TRUE(shelf_view_->GetOverflowButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_FALSE(shelf_view_->IsShowingOverflowBubble());
 
   EXPECT_EQ(last_item_on_main_shelf_index_, items_ - 5);
@@ -3964,14 +3964,14 @@
   LogInKioskNextUser(GetSessionControllerClient());
 
   // The home and back buttons are always visible.
-  EXPECT_TRUE(shelf_view_->GetAppListButton()->visible());
-  EXPECT_TRUE(shelf_view_->GetBackButton()->visible());
+  EXPECT_TRUE(shelf_view_->GetAppListButton()->GetVisible());
+  EXPECT_TRUE(shelf_view_->GetBackButton()->GetVisible());
 
   // Adding app items doesn't add them to the visible shelf, and the overflow
   // button remains hidden.
   AddApp();
   AddApp();
-  ASSERT_FALSE(shelf_view_->GetOverflowButton()->visible());
+  ASSERT_FALSE(shelf_view_->GetOverflowButton()->GetVisible());
   EXPECT_EQ(1, shelf_view_->last_visible_index());
 }
 
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc
index 087397e..8f1bc3f 100644
--- a/ash/shelf/shelf_widget.cc
+++ b/ash/shelf/shelf_widget.cc
@@ -278,7 +278,7 @@
   if (!IsUsingViewsShelf())
     return GetFirstFocusableChild();
 
-  if (shelf_widget_->login_shelf_view_->visible()) {
+  if (shelf_widget_->login_shelf_view_->GetVisible()) {
     return FindFirstOrLastFocusableChild(shelf_widget_->login_shelf_view_,
                                          default_last_focusable_child_);
   } else {
@@ -304,7 +304,7 @@
   // calculated higher up in the class hierarchy by |EasyResizeWindowTargeter|.
   // When in OOBE or locked/login screen, let events pass through empty parts
   // of the shelf.
-  DCHECK(login_shelf_view_->visible());
+  DCHECK(login_shelf_view_->GetVisible());
   gfx::Rect login_view_button_bounds =
       login_shelf_view_->ConvertRectToWidget(login_shelf_view_->GetMirroredRect(
           login_shelf_view_->get_button_union_bounds()));
@@ -494,7 +494,7 @@
 
 void ShelfWidget::FocusFirstOrLastFocusableChild(bool last) {
   // This is only ever called during an active session.
-  if (!shelf_view_->visible())
+  if (!shelf_view_->GetVisible())
     return;
   views::View* to_focus = shelf_view_->FindFirstOrLastFocusableChild(last);
 
diff --git a/ash/shelf/shelf_widget_unittest.cc b/ash/shelf/shelf_widget_unittest.cc
index b57109f..aba25ca 100644
--- a/ash/shelf/shelf_widget_unittest.cc
+++ b/ash/shelf/shelf_widget_unittest.cc
@@ -450,17 +450,18 @@
               !primary_shelf_widget_->IsVisible());
     if (primary_shelf_visibility != kNone) {
       EXPECT_EQ(primary_shelf_visibility == kLoginShelf,
-                primary_shelf_widget_->login_shelf_view()->visible());
+                primary_shelf_widget_->login_shelf_view()->GetVisible());
       EXPECT_EQ(primary_shelf_visibility == kShelf,
-                primary_shelf_widget_->shelf_view_for_testing()->visible());
+                primary_shelf_widget_->shelf_view_for_testing()->GetVisible());
     }
     EXPECT_EQ(secondary_shelf_visibility == kNone,
               !secondary_shelf_widget_->IsVisible());
     if (secondary_shelf_visibility != kNone) {
       EXPECT_EQ(secondary_shelf_visibility == kLoginShelf,
-                secondary_shelf_widget_->login_shelf_view()->visible());
-      EXPECT_EQ(secondary_shelf_visibility == kShelf,
-                secondary_shelf_widget_->shelf_view_for_testing()->visible());
+                secondary_shelf_widget_->login_shelf_view()->GetVisible());
+      EXPECT_EQ(
+          secondary_shelf_visibility == kShelf,
+          secondary_shelf_widget_->shelf_view_for_testing()->GetVisible());
     }
   }
 
diff --git a/ash/sticky_keys/sticky_keys_overlay.cc b/ash/sticky_keys/sticky_keys_overlay.cc
index 6bec5d7..3e509db 100644
--- a/ash/sticky_keys/sticky_keys_overlay.cc
+++ b/ash/sticky_keys/sticky_keys_overlay.cc
@@ -190,7 +190,7 @@
 bool StickyKeysOverlayView::GetModifierVisible(ui::EventFlags modifier) {
   ModifierLabelMap::iterator it = modifier_label_map_.find(modifier);
   DCHECK(it != modifier_label_map_.end());
-  return it->second->visible();
+  return it->second->GetVisible();
 }
 
 void StickyKeysOverlayView::AddKeyLabel(ui::EventFlags modifier,
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb
index 00dab71..fa1306a 100644
--- a/ash/strings/ash_strings_am.xtb
+++ b/ash/strings/ash_strings_am.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">የሌሊት ብርሃን፦ <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">ሲም ካርድ ተዘግቷል</translation>
 <translation id="2653659639078652383">አስገባ</translation>
+<translation id="2658778018866295321">ጠቅ ያድርጉ እና ይጎትቱ</translation>
 <translation id="2700493154570097719">የእርስዎን ቁልፍ ሰሌዳ ያቀናብሩ</translation>
 <translation id="2718395828230677721">የምሽት ብርሃን</translation>
 <translation id="2727977024730340865">አነስተኛ ኃይል ወዳለው ባትሪ መሙያ ተሰክቷል። የባትሪ መሙላት አስተማማኝ ላይሆን ይችላል።</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">በመገናኘት ላይ...</translation>
 <translation id="4379531060876907730">እነዚህ የእርስዎ የስታይለስ መሣሪያዎች ናቸው</translation>
 <translation id="4389184120735010762">የተተከለ የማጉያ የቁልፍ ሰሌዳ አቋራጩን ተጭነዋል። ሊያበሩት ይፈልጋሉ?</translation>
+<translation id="4394049700291259645">አሰናክል</translation>
 <translation id="4421231901400348175">የማያ ገጽዎን ቁጥጥር በርቀት እርዳታ በኩል ለ<ph name="HELPER_NAME" /> በማጋራት ላይ።</translation>
 <translation id="4430019312045809116">ድምፅ</translation>
 <translation id="4450893287417543264">ዳግም አታሳይ</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">በወላጅ ኮድ መሣሪያን ክፈት</translation>
 <translation id="4731797938093519117">የወላጅ መዳረሻ</translation>
 <translation id="4734965478015604180">አግድማዊ</translation>
-<translation id="476166673298332917">የዚህ መሣሪያ አስተዳዳሪ የይለፍ ቃላት እና ግንኙነትን ጨምሮ የሁሉንም እንቅስቃሴ መዳረሻ አለው።</translation>
 <translation id="4774338217796918551">ነገ <ph name="COME_BACK_TIME" /> ላይ ተመልሰው ይምጡ።</translation>
 <translation id="4776917500594043016">የ<ph name="USER_EMAIL_ADDRESS" /> ይለፍ ቃል</translation>
 <translation id="4778095205580009397">የGoogle ረዳቱ በማሳያ ክፍለ-ጊዜ ውስጥ አይገኝም።</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">ማያ ገጽን አንሳ</translation>
 <translation id="6542521951477560771">ወደ <ph name="RECEIVER_NAME" /> cast በማድረግ ላይ</translation>
 <translation id="6559976592393364813">አስተዳዳሪን ይጠይቁ</translation>
-<translation id="6574601967010742428">የመሣሪያው አስተዳዳሪ የእርስዎን እንቅስቃሴ ሊከታተል ይችላል።</translation>
 <translation id="6585808820553845416">ክፍለ-ጊዜ በ<ph name="SESSION_TIME_REMAINING" /> ውስጥ ያበቃል።</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል። እባክዎ ይህን የይለፍ ቁልፍ በዚህ መሣሪያ ላይ ያስገቡ፦ <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb
index 996bcb7..11df8d5 100644
--- a/ash/strings/ash_strings_ar.xtb
+++ b/ash/strings/ash_strings_ar.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">إضاءة ليلية: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">‏تم قفل شريحة SIM</translation>
 <translation id="2653659639078652383">إرسال</translation>
+<translation id="2658778018866295321">انقر واسحب</translation>
 <translation id="2700493154570097719">تعيين لوحة المفاتيح</translation>
 <translation id="2718395828230677721">الإضاءة الليلية</translation>
 <translation id="2727977024730340865">تمّ توصيل شاحن منخفض الطاقة. لذا قد لا تكون عملية شحن البطارية جديرة بالثقة.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">جارٍ الاتصال...</translation>
 <translation id="4379531060876907730">هذه هي أدوات قلم الشاشة</translation>
 <translation id="4389184120735010762">لقد ضغطت على اختصار لوحة المفاتيح للمُكبِّر الذي تم إرساؤه. هل ترغب في تفعيله؟</translation>
+<translation id="4394049700291259645">إيقاف</translation>
 <translation id="4421231901400348175">مشاركة التحكم في شاشتك مع <ph name="HELPER_NAME" /> عن طريق المساعدة عن بُعد.</translation>
 <translation id="4430019312045809116">مستوى الصوت</translation>
 <translation id="4450893287417543264">عدم الإظهار مرة أخرى</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">فتح قفل الجهاز باستخدام رمز الوالدين</translation>
 <translation id="4731797938093519117">وصول أحد الوالدين</translation>
 <translation id="4734965478015604180">أفقي</translation>
-<translation id="476166673298332917">قد يراقب مشرف الجهاز نشاط التصفُح.</translation>
 <translation id="4774338217796918551">يمكنك العودة غدًا في <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">كلمة مرور <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">‏لا يتوفَّر "مساعد Google" في جلسة تجريبية.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">التقاط الشاشة</translation>
 <translation id="6542521951477560771">البث على <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">الطلب من المشرف</translation>
-<translation id="6574601967010742428">قد يتمكَّن مشرف الجهاز من مراقبة نشاطك.</translation>
 <translation id="6585808820553845416">تنتهي الجلسة في <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">يريد جهاز بلوتوث "<ph name="DEVICE_NAME" />" الحصول على إذن للإقران. يُرجى إدخال مفتاح المرور هذا في هذا الجهاز: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 2e71330..9f691ef3 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Нощно осветление: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM картата е заключена</translation>
 <translation id="2653659639078652383">Изпращане</translation>
+<translation id="2658778018866295321">Кликване и преместване с плъзгане</translation>
 <translation id="2700493154570097719">Задайте клавиатура</translation>
 <translation id="2718395828230677721">Нощно осветление</translation>
 <translation id="2727977024730340865">Използва се зарядно устройство с малка мощност. Зареждането на батерията може да не е надеждно.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Установява се връзка...</translation>
 <translation id="4379531060876907730">Това са инструментите ви за писане</translation>
 <translation id="4389184120735010762">Използвахте клавишната комбинация за лупата в прикрепен режим. Искате ли да включите функцията?</translation>
+<translation id="4394049700291259645">Деактивиране</translation>
 <translation id="4421231901400348175">Споделяте с/ъс <ph name="HELPER_NAME" /> контрола върху екрана си чрез отдалечено съдействие.</translation>
 <translation id="4430019312045809116">Звук</translation>
 <translation id="4450893287417543264">Да не се показва отново</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Отключване на устройството с код на родител</translation>
 <translation id="4731797938093519117">Достъп на родител</translation>
 <translation id="4734965478015604180">Хоризонтална ориентация</translation>
-<translation id="476166673298332917">Администраторът на устройството може да наблюдава активността ви при сърфиране.</translation>
 <translation id="4774338217796918551">Заповядайте отново утре в <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Парола за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Асистент не е налице по време на демонстрационна сесия.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Заснемане на екрана</translation>
 <translation id="6542521951477560771">Предава се към „<ph name="RECEIVER_NAME" />“</translation>
 <translation id="6559976592393364813">Попитайте администратора</translation>
-<translation id="6574601967010742428">Администраторът на устройството може да е в състояние да наблюдава активността ви.</translation>
 <translation id="6585808820553845416">Сесията приключва след <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">клавиш „търсене“ + Shift + K</translation>
 <translation id="6650933572246256093">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване. Моля, въведете на него следния ключ за достъп: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 224bb4e..2b65b91 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">নাইট লাইট: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">সিম কার্ড লক করা আছে</translation>
 <translation id="2653659639078652383">জমা দিন</translation>
+<translation id="2658778018866295321">ক্লিক করে ড্র্যাগ করুন</translation>
 <translation id="2700493154570097719">আপনার কীবোর্ড সেট করুন</translation>
 <translation id="2718395828230677721">নাইট লাইট</translation>
 <translation id="2727977024730340865">একটি নিম্ন শক্তির চার্জার প্লাগইন করা হয়েছে৷ বিশ্বস্ত ব্যাটারি চার্জ নাও হতে পারে৷</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">সংযুক্ত হচ্ছে...</translation>
 <translation id="4379531060876907730">এগুলি হল আপনার স্টাইলাস টুল</translation>
 <translation id="4389184120735010762">ডক করা ম্যাগনিফায়ারের জন্য আপনি কীবোর্ড শর্টকাট টিপেছেন। আপনি কি এটি চালু করতে চান?</translation>
+<translation id="4394049700291259645">বন্ধ</translation>
 <translation id="4421231901400348175">রিমোট সহায়কের মাধ্যমে <ph name="HELPER_NAME" />-এর সাথে আপনার স্ক্রিন নিয়ন্ত্রন ভাগ করুন৷</translation>
 <translation id="4430019312045809116">ভলিউম</translation>
 <translation id="4450893287417543264">আর দেখতে চাই না</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">অভিভাবকীয় কোড দিয়ে ডিভাইস আনলক করুন</translation>
 <translation id="4731797938093519117">অভিভাবকীয় অ্যাক্সেস</translation>
 <translation id="4734965478015604180">অনুভূমিক</translation>
-<translation id="476166673298332917">ডিভাইস প্রশাসক আপনার ব্রাউজিং অ্যাক্টিভিটি পর্যবেক্ষণ করতে পারেন।</translation>
 <translation id="4774338217796918551">আগামীকাল <ph name="COME_BACK_TIME" />-এ আবার ব্যবহার করতে পারবেন।</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />-এর জন্য পাসওয়ার্ড</translation>
 <translation id="4778095205580009397">একটি ডেমো সেশনে Google অ্যাসিস্ট্যান্ট উপলভ্য নয়।</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">স্ক্রিন ক্যাপচার করুন</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> এ কাস্ট করা হচ্ছে</translation>
 <translation id="6559976592393364813">অ্যাডমিনিস্ট্রেটরকে জিজ্ঞাসা করুন</translation>
-<translation id="6574601967010742428">ডিভাইস অ্যাডমিনিস্ট্রেটর আপনার অ্যাক্টিভিটি হয়ত মনিটর করতে পারেন।</translation>
 <translation id="6585808820553845416"><ph name="SESSION_TIME_REMAINING" /> এর মধ্যে সেশন শেষ হয়ে যাবে৷</translation>
 <translation id="6627638273713273709">সার্চ+Shift+K</translation>
 <translation id="6650933572246256093">ব্লুটুথ ডিভাইস "<ph name="DEVICE_NAME" />" যুক্ত করার অনুমতি চাইছে। ডিভাইসটিতে এই পাস কীটি দিন: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 235260b8..6bc1458a 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Llum nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">La targeta SIM està bloquejada</translation>
 <translation id="2653659639078652383">Envia</translation>
+<translation id="2658778018866295321">Fes clic i arrossega</translation>
 <translation id="2700493154570097719">Defineix el teu teclat</translation>
 <translation id="2718395828230677721">Llum nocturna</translation>
 <translation id="2727977024730340865">S'ha connectat a un carregador de baix consum. És possible que la càrrega de la bateria no sigui fiable.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">S'està connectant...</translation>
 <translation id="4379531060876907730">Aquestes són les eines del llapis òptic</translation>
 <translation id="4389184120735010762">Has premut la tecla de drecera de la lupa acoblada. Vols activar-la?</translation>
+<translation id="4394049700291259645">Desactiva</translation>
 <translation id="4421231901400348175">Es comparteix el control de la pantalla amb <ph name="HELPER_NAME" /> mitjançant l'Assistència remota.</translation>
 <translation id="4430019312045809116">Volum</translation>
 <translation id="4450893287417543264">No ho tornis a mostrar</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Desbloqueja el dispositiu amb el codi parental</translation>
 <translation id="4731797938093519117">Accés parental</translation>
 <translation id="4734965478015604180">Horitzontal</translation>
-<translation id="476166673298332917">És possible que l'administrador del dispositiu supervisi l'activitat de navegació.</translation>
 <translation id="4774338217796918551">Pots tornar demà a les <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Contrasenya per a <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">L'Assistent de Google no està disponible en les sessions de demostració.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Captura la pantalla</translation>
 <translation id="6542521951477560771">S'està emetent a <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Pregunta a l'administrador</translation>
-<translation id="6574601967010742428">Pot ser que l'administrador del dispositiu pugui supervisar la teva activitat.</translation>
 <translation id="6585808820553845416">La sessió finalitzarà d'aquí a <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Cerca+Maj+K</translation>
 <translation id="6650933572246256093">El dispositiu Bluetooth "<ph name="DEVICE_NAME" />" sol·licita permís per emparellar-se. Introduïu-hi aquesta contrasenya: <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 96c2726..91b53ef 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Noční režim: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM karta je uzamčena</translation>
 <translation id="2653659639078652383">Odeslat</translation>
+<translation id="2658778018866295321">Kliknout a přetáhnout</translation>
 <translation id="2700493154570097719">Nastavit klávesnici</translation>
 <translation id="2718395828230677721">Noční režim</translation>
 <translation id="2727977024730340865">Byla připojena nabíječka s nízkým výkonem. Nabíjení baterie nemusí probíhat spolehlivě.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Připojování...</translation>
 <translation id="4379531060876907730">Toto jsou nástroje pro dotykové pero</translation>
 <translation id="4389184120735010762">Stiskli jste klávesovou zkratku pro zadokovanou lupu. Chcete ji zapnout?</translation>
+<translation id="4394049700291259645">Deaktivovat</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Odemkněte zařízení rodičovským kódem</translation>
 <translation id="4731797938093519117">Rodičovský přístup</translation>
 <translation id="4734965478015604180">Na šířku</translation>
-<translation id="476166673298332917">Správce tohoto zařízení může monitorovat vaše aktivity v prohlížeči.</translation>
 <translation id="4774338217796918551">Vrať se v <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Heslo pro účet <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Asistent Google není v ukázkové relaci k dispozici.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Pořídit snímek obrazovky</translation>
 <translation id="6542521951477560771">Odesílání do zařízení <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Zeptejte se administrátora</translation>
-<translation id="6574601967010742428">Administrátor zařízení může mít možnost sledovat vaši aktivitu.</translation>
 <translation id="6585808820553845416">Relace skončí za <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Vyhledávací tlačítko + Shift + K</translation>
 <translation id="6650933572246256093">Zařízení Bluetooth „<ph name="DEVICE_NAME" />“ žádá o povolení ke spárování. V zařízení prosím zadejte následující přístupový klíč: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index 69fb4e8..1dec4ac5 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nattelys: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-kortet er låst</translation>
 <translation id="2653659639078652383">Indsend</translation>
+<translation id="2658778018866295321">Klik og træk</translation>
 <translation id="2700493154570097719">Angiv dit tastatur</translation>
 <translation id="2718395828230677721">Nattelys</translation>
 <translation id="2727977024730340865">Tilsluttet en oplader med lav kraft. Batteriopladningen er muligvis ikke pålidelig.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Opretter forbindelse...</translation>
 <translation id="4379531060876907730">Dette er dine styluspenværktøjer</translation>
 <translation id="4389184120735010762">Du trykkede på tastaturgenvejen for det fastgjorte lupvindue. Vil du aktivere indstillingen?</translation>
+<translation id="4394049700291259645">Deaktiver</translation>
 <translation id="4421231901400348175">Skærmdeling med <ph name="HELPER_NAME" /> via Fjernsupport.</translation>
 <translation id="4430019312045809116">Lydstyrke</translation>
 <translation id="4450893287417543264">Vis ikke igen</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Lås enheden op med forældrekode</translation>
 <translation id="4731797938093519117">Forældreadgang</translation>
 <translation id="4734965478015604180">Vandret</translation>
-<translation id="476166673298332917">Administratoren af enheden kan overvåge din browseraktivitet.</translation>
 <translation id="4774338217796918551">Kom tilbage i morgen kl. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Adgangskode for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Assistent er ikke tilgængelig i en demosession.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Tag screenshot</translation>
 <translation id="6542521951477560771">Caster til <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Spørg din administrator</translation>
-<translation id="6574601967010742428">Enhedsadministratoren kan muligvis overvåge din aktivitet.</translation>
 <translation id="6585808820553845416">Sessionen slutter om <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Søgetast+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth-enheden "<ph name="DEVICE_NAME" />" vil gerne have parringstilladelse. Angiv din adgangsnøgle på enheden: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index c2efba7..e8106ef 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nachtlicht: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-Karte ist gesperrt</translation>
 <translation id="2653659639078652383">Senden</translation>
+<translation id="2658778018866295321">Klicken und ziehen</translation>
 <translation id="2700493154570097719">Tastatur einrichten</translation>
 <translation id="2718395828230677721">Nachtlicht</translation>
 <translation id="2727977024730340865">Das Gerät ist an ein Schwachstrom-Ladegerät angeschlossen. Möglicherweise kann der Akku nicht zuverlässig aufgeladen werden.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Verbindung wird hergestellt...</translation>
 <translation id="4379531060876907730">Dies sind Ihre Eingabestift-Tools</translation>
 <translation id="4389184120735010762">Sie haben die Tastenkombination für den Modus "Angedockte Lupe" gedrückt. Möchten Sie ihn aktivieren?</translation>
+<translation id="4394049700291259645">Deaktivieren</translation>
 <translation id="4421231901400348175">Sie teilen sich die Bildschirmsteuerung mit <ph name="HELPER_NAME" /> per Remote-Unterstützung.</translation>
 <translation id="4430019312045809116">Lautstärke</translation>
 <translation id="4450893287417543264">Nicht mehr anzeigen</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Gerät mit Elterncode entsperren</translation>
 <translation id="4731797938093519117">Elternfreigabe</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">Der Geräteadministrator überwacht unter Umständen Ihre Browseraktivitäten.</translation>
 <translation id="4774338217796918551">Du darfst das Gerät um <ph name="COME_BACK_TIME" /> wieder verwenden.</translation>
 <translation id="4776917500594043016">Passwort für <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">In Demositzungen ist Google Assistant nicht verfügbar.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Screenshot aufnehmen</translation>
 <translation id="6542521951477560771">Inhalte werden an <ph name="RECEIVER_NAME" /> gestreamt</translation>
 <translation id="6559976592393364813">Administrator fragen</translation>
-<translation id="6574601967010742428">Der Geräteadministrator kann Ihre Aktivitäten möglicherweise überwachen.</translation>
 <translation id="6585808820553845416">Sitzung endet in <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Suchtaste + Umschalttaste + K</translation>
 <translation id="6650933572246256093">Das Bluetooth-Gerät "<ph name="DEVICE_NAME" />" bittet um Erlaubnis für Kopplung. Geben Sie auf dem Gerät folgenden Zugangscode ein: <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb
index 045d32f..dca7d91 100644
--- a/ash/strings/ash_strings_el.xtb
+++ b/ash/strings/ash_strings_el.xtb
@@ -228,6 +228,7 @@
 <translation id="4378551569595875038">Σύνδεση…</translation>
 <translation id="4379531060876907730">Αυτά είναι τα εργαλεία γραφίδας σας</translation>
 <translation id="4389184120735010762">Πατήσατε τη συντόμευση πληκτρολογίου για τον μεγεθυντικό φακό σε παράθυρο. Θέλετε να τον ενεργοποιήσετε;</translation>
+<translation id="4394049700291259645">Απενεργοποίηση</translation>
 <translation id="4421231901400348175">Κοινόχρηστος έλεγχος της οθόνης σας με το χρήστη <ph name="HELPER_NAME" /> μέσω της απομακρυσμένης βοήθειας.</translation>
 <translation id="4430019312045809116">Ένταση</translation>
 <translation id="4450893287417543264">Να μην εμφανιστεί ξανά</translation>
@@ -247,7 +248,6 @@
 <translation id="4696813013609194136">Ξεκλείδωμα συσκευής με κωδικό γονέα</translation>
 <translation id="4731797938093519117">Γονική πρόσβαση</translation>
 <translation id="4734965478015604180">Οριζόντια περιστροφή</translation>
-<translation id="476166673298332917">Ο διαχειριστής της συσκευής μπορεί να παρακολουθεί τη δραστηριότητα περιήγησής σας.</translation>
 <translation id="4774338217796918551">Επιστρέψτε ξανά αύριο στις <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Κωδικός πρόσβασης για <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Ο Βοηθός Google δεν είναι διαθέσιμος σε περίοδο λειτουργίας επίδειξης.</translation>
@@ -355,7 +355,6 @@
 <translation id="6537270692134705506">Λήψη στιγμιότυπου οθόνης</translation>
 <translation id="6542521951477560771">Μετάδοση στη συσκευή <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Απευθυνθείτε στον διαχειριστή</translation>
-<translation id="6574601967010742428">Ο διαχειριστής της συσκευής ίσως έχει τη δυνατότητα να παρακολουθεί τη δραστηριότητά σας.</translation>
 <translation id="6585808820553845416">Η περίοδος σύνδεσης λήγει σε <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Αναζήτηση+Shift+K</translation>
 <translation id="6650933572246256093">Η συσκευή Bluetooth "<ph name="DEVICE_NAME" />" ζητά δικαιώματα σύζευξης. Καταχωρίστε αυτό το κλειδί πρόσβασης στη συγκεκριμένη συσκευή: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb
index b9922e3..93290c1 100644
--- a/ash/strings/ash_strings_en-GB.xtb
+++ b/ash/strings/ash_strings_en-GB.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Night Light: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM card is locked</translation>
 <translation id="2653659639078652383">Submit</translation>
+<translation id="2658778018866295321">Click and drag</translation>
 <translation id="2700493154570097719">Set your keyboard</translation>
 <translation id="2718395828230677721">Night Light</translation>
 <translation id="2727977024730340865">Plugged in to a low-power charger. Battery charging may not be reliable.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Connecting...</translation>
 <translation id="4379531060876907730">These are your stylus tools</translation>
 <translation id="4389184120735010762">You pressed the keyboard shortcut for the docked magnifier. Do you want to turn it on?</translation>
+<translation id="4394049700291259645">Disable</translation>
 <translation id="4421231901400348175">Sharing control of your screen with <ph name="HELPER_NAME" /> via Remote Assistance.</translation>
 <translation id="4430019312045809116">volume</translation>
 <translation id="4450893287417543264">Don't show again</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Unlock device with parent code</translation>
 <translation id="4731797938093519117">Parent access</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">The device admin may monitor your browsing activity.</translation>
 <translation id="4774338217796918551">Come back tomorrow at <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Password for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">The Google Assistant is not available in a demo session.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Capture screen</translation>
 <translation id="6542521951477560771">Casting to <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Ask administrator</translation>
-<translation id="6574601967010742428">The device administrator may be able to monitor your activity.</translation>
 <translation id="6585808820553845416">Session ends in <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth device "<ph name="DEVICE_NAME" />" would like permission to pair. Please enter this passkey on that device: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
index 7d3610d..a02c136 100644
--- a/ash/strings/ash_strings_es-419.xtb
+++ b/ash/strings/ash_strings_es-419.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Luz nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">La tarjeta SIM está bloqueada</translation>
 <translation id="2653659639078652383">Enviar</translation>
+<translation id="2658778018866295321">Hacer clic y arrastrar</translation>
 <translation id="2700493154570097719">Establecer el teclado</translation>
 <translation id="2718395828230677721">Luz nocturna</translation>
 <translation id="2727977024730340865">Conexión a un cargador de baja potencia. Es posible que la carga de la batería no sea confiable.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Conectando…</translation>
 <translation id="4379531060876907730">Estas son las herramientas de la pluma stylus</translation>
 <translation id="4389184120735010762">Presionaste la combinación de teclas para activar la lupa con vista acoplada. ¿Quieres activarla?</translation>
+<translation id="4394049700291259645">Inhabilitar</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Desbloquea el dispositivo con el código parental</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">El administrador tiene acceso a toda la actividad, incluidas las contraseñas y comunicaciones.</translation>
 <translation id="4774338217796918551">Regresa mañana a las <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Contraseña para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">El Asistente de Google no está disponible en la sesión de demostración.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Captura total de pantalla</translation>
 <translation id="6542521951477560771">Transmitiendo a <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Pregúntale al administrador</translation>
-<translation id="6574601967010742428">Es posible que el administrador del dispositivo supervise tu actividad.</translation>
 <translation id="6585808820553845416">La sesión terminará en <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Búsqueda+mayúscula+K</translation>
 <translation id="6650933572246256093">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para sincronizarse. Ingresa la siguiente clave de contraseña en el dispositivo: <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index b2c2b08d..a1ee629 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Luz nocturna: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">La tarjeta SIM está bloqueada</translation>
 <translation id="2653659639078652383">Enviar</translation>
+<translation id="2658778018866295321">Hacer clic y arrastrar</translation>
 <translation id="2700493154570097719">Elegir el teclado</translation>
 <translation id="2718395828230677721">Luz nocturna</translation>
 <translation id="2727977024730340865">Conectado a un cargador de baja potencia. Es posible que la carga de la batería no sea fiable.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Conectando...</translation>
 <translation id="4379531060876907730">Estas son las herramientas del lápiz óptico</translation>
 <translation id="4389184120735010762">Has pulsado la combinación de teclas que activa la lupa fijada. ¿Quieres activarla?</translation>
+<translation id="4394049700291259645">Inhabilitar</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Desbloquear el dispositivo con código parental</translation>
 <translation id="4731797938093519117">Acceso parental</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">Es posible que el administrador del dispositivo supervise tu actividad de navegación.</translation>
 <translation id="4774338217796918551">Vuelve mañana a las <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Contraseña de <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">El Asistente de Google no está disponible en las sesiones de demostración.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Capturar pantalla</translation>
 <translation id="6542521951477560771">Enviando contenido a <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Pregunta al administrador</translation>
-<translation id="6574601967010742428">Es posible que el administrador del dispositivo supervise tu actividad.</translation>
 <translation id="6585808820553845416">La sesión finalizará dentro de <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tecla de búsqueda + Mayús + K</translation>
 <translation id="6650933572246256093">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para vincularse. Introduce la clave de contraseña <ph name="PASSKEY" /> en el dispositivo</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb
index 0788862..028a7d6 100644
--- a/ash/strings/ash_strings_et.xtb
+++ b/ash/strings/ash_strings_et.xtb
@@ -229,6 +229,7 @@
 <translation id="4378551569595875038">Ühendamine ...</translation>
 <translation id="4379531060876907730">Need on teie elektronpliiatsi tööriistad</translation>
 <translation id="4389184120735010762">Vajutasite dokitud luubi otseteed. Kas soovite luubi sisse lülitada?</translation>
+<translation id="4394049700291259645">Keela</translation>
 <translation id="4421231901400348175">Ekraani juhtimise jagamine isikuga <ph name="HELPER_NAME" /> kaugabi kaudu.</translation>
 <translation id="4430019312045809116">Helitugevus</translation>
 <translation id="4450893287417543264">Ära kuva uuesti</translation>
@@ -248,7 +249,6 @@
 <translation id="4696813013609194136">Avage seade lapsevanema koodiga</translation>
 <translation id="4731797938093519117">Vanema juurdepääs</translation>
 <translation id="4734965478015604180">Horisontaalne</translation>
-<translation id="476166673298332917">Seadme administraator võib jälgida teie sirvimistegevust.</translation>
 <translation id="4774338217796918551">Tulge tagasi homme kell <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> parool</translation>
 <translation id="4778095205580009397">Google'i assistent ei ole demoseansi puhul saadaval.</translation>
@@ -356,7 +356,6 @@
 <translation id="6537270692134705506">Jäädvusta ekraanikuva</translation>
 <translation id="6542521951477560771">Ülekandmine seadmesse <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Küsige administraatorilt</translation>
-<translation id="6574601967010742428">Seadme haldur võib saada teie tegevust jälgida.</translation>
 <translation id="6585808820553845416">Seansi lõpuni on jäänud <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Otsing + Tõstuklahv + K</translation>
 <translation id="6650933572246256093">Bluetoothi seade „<ph name="DEVICE_NAME" />” küsib luba sidumiseks. Sisestage seadmesse see parool: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
index 3801b86..6d56fed 100644
--- a/ash/strings/ash_strings_fa.xtb
+++ b/ash/strings/ash_strings_fa.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">«نور شب»: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">سیم‌کارت قفل است</translation>
 <translation id="2653659639078652383">ارائه</translation>
+<translation id="2658778018866295321">کلیک کنید و بکشید</translation>
 <translation id="2700493154570097719">تنظیم صفحه‌کلید</translation>
 <translation id="2718395828230677721">نور شب</translation>
 <translation id="2727977024730340865">باتری به شارژر برق ضعیف متصل است. شارژ باتری ممکن است قابل اطمینان نباشد.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">در حال اتصال...</translation>
 <translation id="4379531060876907730">این‌ها ابزارهای قلم شما هستند</translation>
 <translation id="4389184120735010762">میان‌بر صفحه‌کلید مربوط به ذره‌بین متصل را فشار دادید. می‌خواهید آن را روشن کنید؟</translation>
+<translation id="4394049700291259645">غیر فعال کردن</translation>
 <translation id="4421231901400348175">هم‌رسانی کنترل صفحه‌تان با <ph name="HELPER_NAME" /> از طریق راهنمایی ازراه‌دور.</translation>
 <translation id="4430019312045809116">میزان صدا</translation>
 <translation id="4450893287417543264">دیگر نشان داده نشود</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">باز کردن قفل دستگاه با کد والدین</translation>
 <translation id="4731797938093519117">دسترسی والدین</translation>
 <translation id="4734965478015604180">افقی</translation>
-<translation id="476166673298332917">سرپرست دستگاه ممکن است فعالیت مرور شما را پایش کند.</translation>
 <translation id="4774338217796918551">فردا ساعت <ph name="COME_BACK_TIME" /> برگردید.</translation>
 <translation id="4776917500594043016">گذرواژه <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">‏«دستیار Google» در جلسه نمایشی در دسترس نیست.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">ضبط کردن صفحه</translation>
 <translation id="6542521951477560771">ارسال محتوا به <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">سؤال از سرپرست</translation>
-<translation id="6574601967010742428">سرپرست دستگاه ممکن است بر فعالیتتان نظارت داشته باشد.</translation>
 <translation id="6585808820553845416">جلسه در <ph name="SESSION_TIME_REMAINING" /> به پایان می‌رسد.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">دستگاه بلوتوث «<ph name="DEVICE_NAME" />» برای مرتبط‌سازی به مجوز نیاز دارد. لطفاً این کلیدواژه را در آن دستگاه وارد کنید: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 6859a85..732a303 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Yövalo: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-kortti on lukittu.</translation>
 <translation id="2653659639078652383">Lähetä</translation>
+<translation id="2658778018866295321">Klikkaa ja vedä</translation>
 <translation id="2700493154570097719">Määritä näppäimistö</translation>
 <translation id="2718395828230677721">Yövalo</translation>
 <translation id="2727977024730340865">Pienitehoinen laturi kytketty. Akku ei ehkä lataudu luotettavasti.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Yhdistetään…</translation>
 <translation id="4379531060876907730">Tässä ovat näyttökynätyökalusi</translation>
 <translation id="4389184120735010762">Painoit kiinnitetyn suurennuksen pikanäppäintä. Haluatko ottaa sen käyttöön?</translation>
+<translation id="4394049700291259645">Poista käytöstä</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Avaa lukitus vanhemman koodilla</translation>
 <translation id="4731797938093519117">Avaus vanhemmille</translation>
 <translation id="4734965478015604180">Vaakasuora</translation>
-<translation id="476166673298332917">Laitteen järjestelmänvalvoja voi valvoa selaustoimintaasi.</translation>
 <translation id="4774338217796918551">Palaa huomenna kello <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Osoitteen <ph name="USER_EMAIL_ADDRESS" /> salasana</translation>
 <translation id="4778095205580009397">Google Assistantia ei voi käyttää demo-käyttökerralla.</translation>
@@ -357,7 +358,6 @@
 <translation id="6537270692134705506">Tallenna kuvakaappaus koko näkymästä</translation>
 <translation id="6542521951477560771">Suoratoistetaan: <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Pyydä apua järjestelmänvalvojalta</translation>
-<translation id="6574601967010742428">Laitteen järjestelmänvalvoja voi ehkä seurata toimintaasi.</translation>
 <translation id="6585808820553845416">Istunnon loppumiseen on <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Haku+Vaihto+K</translation>
 <translation id="6650933572246256093">Bluetooth-laite <ph name="DEVICE_NAME" /> pyytää lupaa laiteparin muodostamiseen. Anna tämä avain kyseisellä laitteella: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index cd0437d..b8c2b45 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Night Light: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Naka-lock ang SIM card</translation>
 <translation id="2653659639078652383">Isumite</translation>
+<translation id="2658778018866295321">I-click at i-drag</translation>
 <translation id="2700493154570097719">Itakda ang iyong keyboard</translation>
 <translation id="2718395828230677721">Night Light</translation>
 <translation id="2727977024730340865">Naka-saksak sa isang low-power charger. Maaaring hindi maging tiyak ang pag-charge ng baterya.</translation>
@@ -164,7 +165,7 @@
 <translation id="3371140690572404006">USB-C device (port sa kanang bahagi sa harap)</translation>
 <translation id="3400357268283240774">Mga karagdagang setting</translation>
 <translation id="3413817803639110246">Wala pang makikita</translation>
-<translation id="343571671045587506">Mag-edit ng paalala</translation>
+<translation id="343571671045587506">I-edit ang paalala</translation>
 <translation id="3445925074670675829">USB-C device</translation>
 <translation id="3454224730401036106">Lumipat ang iyong koneksyon sa mas secure na network</translation>
 <translation id="3465223694362104965">May isa pang keyboard na kumonekta sa device na ito mula noong huling beses kang nag-sign in. Tiyaking pinagkakatiwalaan mo ang keyboard na ito bago mo ito gamitin.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Kumokonekta...</translation>
 <translation id="4379531060876907730">Ito ang iyong mga stylus tool</translation>
 <translation id="4389184120735010762">Napindot mo ang keyboard shortcut para sa naka-dock na magnifier. Gusto mo ba itong i-on?</translation>
+<translation id="4394049700291259645">Huwag paganahin</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">I-unlock ang device gamit ang parent code</translation>
 <translation id="4731797938093519117">Pangunahing access</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">Maaaring subaybayan ng admin ng device na ito ang iyong aktibidad sa pag-browse.</translation>
 <translation id="4774338217796918551">Bumalik nang <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Password para sa <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Hindi available ang Google Assistant sa demo session.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">I-capture ang screen</translation>
 <translation id="6542521951477560771">Nagka-cast sa <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Magtanong sa Administrator</translation>
-<translation id="6574601967010742428">Maaaring masubaybayan ng administrator ng device ang iyong aktibidad.</translation>
 <translation id="6585808820553845416">Matatapos ang session pagkalipas ng <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Maghanap+Shift+K</translation>
 <translation id="6650933572246256093">Gusto ng bluetooth device na "<ph name="DEVICE_NAME" />" ng pahintulot na magpares. Pakilagay ang passkey na ito sa device na iyon: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index 6afbc3d..0883936 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Éclairage nocturne : <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">La carte SIM est verrouillée</translation>
 <translation id="2653659639078652383">Valider</translation>
+<translation id="2658778018866295321">Cliquer et faire glisser</translation>
 <translation id="2700493154570097719">Définir votre clavier</translation>
 <translation id="2718395828230677721">Éclairage nocturne</translation>
 <translation id="2727977024730340865">L'appareil est branché à un chargeur de faible puissance. Il se peut que la charge ne soit pas fiable.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Connexion</translation>
 <translation id="4379531060876907730">Voici vos outils de stylet</translation>
 <translation id="4389184120735010762">Vous avez appuyé sur le raccourci clavier de la loupe ancrée. Voulez-vous l'activer ?</translation>
+<translation id="4394049700291259645">Désactiver</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Déverrouiller l'appareil avec le code parental</translation>
 <translation id="4731797938093519117">Accès parental</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">L'administrateur de cet appareil a accès à toute votre activité de navigation.</translation>
 <translation id="4774338217796918551">Revenez demain à <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Mot de passe de <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">L'Assistant Google n'est pas disponible dans une session de démonstration.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Capturer l'écran</translation>
 <translation id="6542521951477560771">Diffusion vers <ph name="RECEIVER_NAME" />…</translation>
 <translation id="6559976592393364813">Se renseigner auprès de l'administrateur</translation>
-<translation id="6574601967010742428">Il est possible que l'administrateur de l'appareil puisse surveiller votre activité.</translation>
 <translation id="6585808820553845416">Fin de la session dans <ph name="SESSION_TIME_REMAINING" /></translation>
 <translation id="6627638273713273709">Rechercher+Maj+K</translation>
 <translation id="6650933572246256093">L'appareil Bluetooth "<ph name="DEVICE_NAME" />" demande l'autorisation de s'associer. Veuillez saisir le code d'authentification suivant sur l'appareil : <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb
index 6bffae5..9b5dba2 100644
--- a/ash/strings/ash_strings_gu.xtb
+++ b/ash/strings/ash_strings_gu.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">રાત્રિ પ્રકાશ: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM કાર્ડ લૉક કરેલ છે</translation>
 <translation id="2653659639078652383">સબમિટ કરો</translation>
+<translation id="2658778018866295321">ક્લિક કરો અને ખેંચો</translation>
 <translation id="2700493154570097719">તમારું કીબોર્ડ સેટ કરો</translation>
 <translation id="2718395828230677721">રાત્રિ પ્રકાશ</translation>
 <translation id="2727977024730340865">નિમ્ન-પાવર ચાર્જરમાં પ્લગ કરેલું છે. બૅટરી ચાર્જિંગ વિશ્વસનીય હશે નહીં.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">કનેક્ટિંગ...</translation>
 <translation id="4379531060876907730">આ છે તમારા સ્ટાઇલસનાં સાધનો</translation>
 <translation id="4389184120735010762">તમે ડૉક કરેલ મૅગ્નિફાયર માટે કીબોર્ડ શૉર્ટકટ દબાવેલ છે. શું તમે તેને ચાલુ કરવા માગો છો?</translation>
+<translation id="4394049700291259645">બંધ કરો</translation>
 <translation id="4421231901400348175">દૂરસ્થ સહાય વડે <ph name="HELPER_NAME" /> સાથે તમારી સ્ક્રીનનું નિયંત્રણ શેર કરવું.</translation>
 <translation id="4430019312045809116">વૉલ્યૂમ</translation>
 <translation id="4450893287417543264">ફરી બતાવશો નહીં</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">માતાપિતાના કોડ વડે ડિવાઇસને અનલૉક કરો</translation>
 <translation id="4731797938093519117">માતાપિતા માટે ઍક્સેસ</translation>
 <translation id="4734965478015604180">આડી</translation>
-<translation id="476166673298332917">ડિવાઇસ વ્યવસ્થાપક તમારી બ્રાઉઝિંગ પ્રવૃત્તિને મોનિટર કરી શકે છે.</translation>
 <translation id="4774338217796918551">આવતી કાલે <ph name="COME_BACK_TIME" /> વાગ્યે પાછા આવજો.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> માટેનો પાસવર્ડ </translation>
 <translation id="4778095205580009397">ડેમો સત્રમાં Google આસિસ્ટંટ ઉપલબ્ધ નથી.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">સ્ક્રીનને કૅપ્ચર કરો</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> પર કાસ્ટ કરી રહ્યાં છીએ</translation>
 <translation id="6559976592393364813">વ્યવસ્થાપકને પૂછો</translation>
-<translation id="6574601967010742428">ડિવાઇસના વ્યવસ્થાપક તમારી પ્રવૃત્તિને મૉનિટર કરી શકે છે.</translation>
 <translation id="6585808820553845416"><ph name="SESSION_TIME_REMAINING" /> માં સત્ર સમાપ્ત થાય છે.</translation>
 <translation id="6627638273713273709">શોધ+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth ડિવાઇસ "<ph name="DEVICE_NAME" />" ને જોડી બનાવવા માટે પરવાનગી જોઈએ છે. કૃપા કરીને તે ડિવાઇસ પર આ પાસકીને દાખલ કરો: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 5aab1a5..08881ab 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">नाइट लाइट: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">सिम कार्ड लॉक है</translation>
 <translation id="2653659639078652383">सबमिट करें</translation>
+<translation id="2658778018866295321">क्लिक करके खींचें और छोड़ें</translation>
 <translation id="2700493154570097719">अपना कीबोर्ड सेट करें</translation>
 <translation id="2718395828230677721">नाइट लाइट</translation>
 <translation id="2727977024730340865">कम-शक्ति वाले चार्जर में प्लग इन करें. बैटरी चार्ज करना संभवत: विश्वसनीय नहीं होगा.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">कनेक्ट हो रहा है...</translation>
 <translation id="4379531060876907730">ये आपके स्टाइलस टूल हैं</translation>
 <translation id="4389184120735010762">आपने 'सामग्री को बड़ा दिखाने वाली डॉक की गई सेवा' का कीबोर्ड शॉर्टकट दबाया है. क्या आप इसे चालू करना चाहते हैं?</translation>
+<translation id="4394049700291259645">बंद करें</translation>
 <translation id="4421231901400348175">आपकी स्‍क्रीन का नियंत्रण दूरस्‍थ सहायक के द्वारा <ph name="HELPER_NAME" /> से शेयर किया जा रहा है.</translation>
 <translation id="4430019312045809116">मात्रा</translation>
 <translation id="4450893287417543264">फिर से न दिखाएं</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">माता-पिता के कोड से डिवाइस अनलॉक करें</translation>
 <translation id="4731797938093519117">अभिभावक एक्सेस</translation>
 <translation id="4734965478015604180">क्षैतिज</translation>
-<translation id="476166673298332917">इस डिवाइस का एडमिन आपकी ब्राउज़िंग गतिविधि पर नज़र रख सकता है.</translation>
 <translation id="4774338217796918551">कल <ph name="COME_BACK_TIME" /> बजे फिर से देखें.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> के लिए पासवर्ड</translation>
 <translation id="4778095205580009397">डेमो सत्र में Google Assistant मौजूद नहीं है.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">स्क्रीन कैप्चर करें</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> पर कास्ट किया जा रहा है</translation>
 <translation id="6559976592393364813">एडमिन से पूछें</translation>
-<translation id="6574601967010742428">डिवाइस का एडमिन आपकी गतिविधि पर नज़र रख सकता है.</translation>
 <translation id="6585808820553845416">सत्र <ph name="SESSION_TIME_REMAINING" /> में खत्म होने वाला है.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">ब्लूटूथ डिवाइस "<ph name="DEVICE_NAME" />" युग्मित करने की अनुमति चाहता है. कृपया डिवाइस पर यह पासकुंजी डालें: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb
index b32bd19..b71427e7 100644
--- a/ash/strings/ash_strings_hr.xtb
+++ b/ash/strings/ash_strings_hr.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Noćno svjetlo: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM kartica je zaključana</translation>
 <translation id="2653659639078652383">Pošalji</translation>
+<translation id="2658778018866295321">Klikanje i povlačenje</translation>
 <translation id="2700493154570097719">Postavite tipkovnicu</translation>
 <translation id="2718395828230677721">Noćno svjetlo</translation>
 <translation id="2727977024730340865">Uređaj je priključen na punjač male snage. Punjenje baterije možda nije pouzdano.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Povezivanje...</translation>
 <translation id="4379531060876907730">Ovo su vaši alati za pisaljke</translation>
 <translation id="4389184120735010762">Pritisnuli ste tipkovni prečac za usidreno povećalo. Želite li ga uključiti?</translation>
+<translation id="4394049700291259645">Onemogući</translation>
 <translation id="4421231901400348175"><ph name="HELPER_NAME" /> i vi dijelite kontrolu nad zaslonom putem Daljinske pomoći.</translation>
 <translation id="4430019312045809116">Glasnoća</translation>
 <translation id="4450893287417543264">Ne prikazuj ponovo</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Otključajte uređaj roditeljskim kodom</translation>
 <translation id="4731797938093519117">Roditeljski pristup</translation>
 <translation id="4734965478015604180">Vodoravno</translation>
-<translation id="476166673298332917">Administrator uređaja može pratiti vašu aktivnost pregledavanja.</translation>
 <translation id="4774338217796918551">Vrati se sutra u <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Zaporka za adresu <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google asistent nije dostupan u demosesiji.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Snimi zaslon</translation>
 <translation id="6542521951477560771">Emitiranje na uređaj <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Pitajte administratora</translation>
-<translation id="6574601967010742428">Administrator uređaja možda može nadzirati vašu aktivnost.</translation>
 <translation id="6585808820553845416">Sesija će završiti za <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Pretraži + Shift + K</translation>
 <translation id="6650933572246256093">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži dopuštenje za uparivanje. Unesite ovaj pristupni ključ na tom uređaju: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb
index a6432a9..a6c99ab 100644
--- a/ash/strings/ash_strings_hu.xtb
+++ b/ash/strings/ash_strings_hu.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Éjszakai fény: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">A SIM-kártya zárolva van</translation>
 <translation id="2653659639078652383">Elküldés</translation>
+<translation id="2658778018866295321">Kattintás és húzás</translation>
 <translation id="2700493154570097719">Billentyűzetet beállítása</translation>
 <translation id="2718395828230677721">Éjszakai fény</translation>
 <translation id="2727977024730340865">Kis teljesítményű töltőt csatlakoztatott. Az akkumulátor töltése nem megbízható.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Kapcsolódás folyamatban…</translation>
 <translation id="4379531060876907730">Ezek az érintőceruza-eszközök</translation>
 <translation id="4389184120735010762">Lenyomta a dokkolt nagyító billentyűparancsát. Bekapcsolja a funkciót?</translation>
+<translation id="4394049700291259645">Kikapcsolás</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Zárolás feloldása szülői kóddal</translation>
 <translation id="4731797938093519117">Szülői hozzáférés</translation>
 <translation id="4734965478015604180">Vízszintes</translation>
-<translation id="476166673298332917">Az eszköz rendszergazdája figyelheti a böngészési tevékenységét.</translation>
 <translation id="4774338217796918551">Térjen vissza holnap, ekkor: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">A(z) <ph name="USER_EMAIL_ADDRESS" /> fiókhoz tartozó jelszó</translation>
 <translation id="4778095205580009397">A Google Segéd nem áll rendelkezésre bemutató munkamenetben.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Képernyőkép rögzítése</translation>
 <translation id="6542521951477560771">Küldés ide: <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Érdeklődjön a rendszergazdánál</translation>
-<translation id="6574601967010742428">Lehetséges, hogy tevékenységeit megfigyelheti az eszköz adminisztrátora.</translation>
 <translation id="6585808820553845416">A munkamenet <ph name="SESSION_TIME_REMAINING" /> múlva véget ér.</translation>
 <translation id="6627638273713273709">Keresés+Shift+K</translation>
 <translation id="6650933572246256093">A(z) „<ph name="DEVICE_NAME" />” Bluetooth-eszköz engedélyt kér a párosításra. Kérjük, adja meg ezt a biztonsági kódot azon az eszközön: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index ce0ccf0..85681b9 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Cahaya Malam: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Kartu SIM terkunci</translation>
 <translation id="2653659639078652383">Kirim</translation>
+<translation id="2658778018866295321">Klik dan tarik</translation>
 <translation id="2700493154570097719">Setel keyboard Anda</translation>
 <translation id="2718395828230677721">Cahaya Malam</translation>
 <translation id="2727977024730340865">Dipasang ke pengisi daya rendah. Pengisian daya baterai mungkin tidak dapat diandalkan.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Menyambung...</translation>
 <translation id="4379531060876907730">Ini adalah fitur stilus</translation>
 <translation id="4389184120735010762">Anda menekan pintasan keyboard untuk kaca pembesar yang terpasang di dok. Ingin mengaktifkannya?</translation>
+<translation id="4394049700291259645">Nonaktifkan</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Buka kunci perangkat dengan kode orang tua</translation>
 <translation id="4731797938093519117">Akses orang tua</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">Admin perangkat dapat memantau aktivitas akses internet Anda.</translation>
 <translation id="4774338217796918551">Gunakan lagi besok pukul <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Sandi untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Asisten Google tidak tersedia dalam sesi demo.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Tangkap layar</translation>
 <translation id="6542521951477560771">Transmisikan ke <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Tanyakan kepada Administrator</translation>
-<translation id="6574601967010742428">Administrator perangkat mungkin dapat memantau aktivitas Anda.</translation>
 <translation id="6585808820553845416">Sesi berakhir dalam <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tombol Penelusuran+Shift+K</translation>
 <translation id="6650933572246256093">Perangkat Bluetooth "<ph name="DEVICE_NAME" />" meminta izin untuk bersanding. Masukkan kunci sandi ini pada perangkat tersebut: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 5b28358..297628b 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Luminosità notturna: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">La scheda SIM è bloccata</translation>
 <translation id="2653659639078652383">Invia</translation>
+<translation id="2658778018866295321">Fai clic e trascina</translation>
 <translation id="2700493154570097719">Imposta la tastiera</translation>
 <translation id="2718395828230677721">Luminosità notturna</translation>
 <translation id="2727977024730340865">Collegato a un caricabatterie a basso consumo. La carica della batteria potrebbe non essere affidabile.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Connessione...</translation>
 <translation id="4379531060876907730">Ecco gli strumenti per il tuo stilo</translation>
 <translation id="4389184120735010762">Hai premuto la scorciatoia da tastiera per la lente d'ingrandimento ancorata. Vuoi attivarla?</translation>
+<translation id="4394049700291259645">Disabilita</translation>
 <translation id="4421231901400348175">Condividi il controllo dello schermo con <ph name="HELPER_NAME" /> tramite Assistenza remota.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Non mostrare più</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Sblocca con codice genitore</translation>
 <translation id="4731797938093519117">Accesso genitore</translation>
 <translation id="4734965478015604180">Orizzontale</translation>
-<translation id="476166673298332917">L'amministratore del dispositivo può controllare l'attività di navigazione.</translation>
 <translation id="4774338217796918551">Puoi riprendere domani alle ore <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Password per <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">L'Assistente Google non è disponibile in una sessione demo.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Acquisisci schermata</translation>
 <translation id="6542521951477560771">Trasmissione di contenuti a <ph name="RECEIVER_NAME" /> in corso</translation>
 <translation id="6559976592393364813">Rivolgiti all'amministratore</translation>
-<translation id="6574601967010742428">L'amministratore del dispositivo potrebbe essere in grado di monitorare le tue attività.</translation>
 <translation id="6585808820553845416">La sessione terminerà tra <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tasto per la ricerca + MAIUSC + K</translation>
 <translation id="6650933572246256093">Il dispositivo Bluetooth "<ph name="DEVICE_NAME" />" chiede l'autorizzazione per essere accoppiato. Inserisci questa passkey sul dispositivo: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 62e2710..40802cd 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">תאורת לילה: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">‏כרטיס ה-SIM נעול</translation>
 <translation id="2653659639078652383">שלח</translation>
+<translation id="2658778018866295321">לחיצה וגרירה</translation>
 <translation id="2700493154570097719">בחירת מקלדת</translation>
 <translation id="2718395828230677721">תאורת לילה</translation>
 <translation id="2727977024730340865">מחובר למטען בעל מתח נמוך. ייתכן שטעינת הסוללה לא תהיה אמינה.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">מתחבר...</translation>
 <translation id="4379531060876907730">אלה כלי הסטיילוס שלך</translation>
 <translation id="4389184120735010762">הקשת על מקש הקיצור של זכוכית מגדלת במצב עגינה. להפעיל אותה?</translation>
+<translation id="4394049700291259645">השבת</translation>
 <translation id="4421231901400348175">שיתוף השליטה במסך עם <ph name="HELPER_NAME" /> דרך סיוע מרחוק.</translation>
 <translation id="4430019312045809116">עוצמת קול</translation>
 <translation id="4450893287417543264">אין להציג שוב</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">ביטול נעילת המכשיר באמצעות קוד הורה</translation>
 <translation id="4731797938093519117">גישת הורים</translation>
 <translation id="4734965478015604180">אופקי</translation>
-<translation id="476166673298332917">מנהל המכשיר עשוי לנטר את פעילות הגלישה שלך.</translation>
 <translation id="4774338217796918551">אפשר לחזור מחר בשעה <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">סיסמה עבור <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">‏Google Assistant אינו זמין בסשן הדגמה.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">צילום מסך</translation>
 <translation id="6542521951477560771">מעביר אל <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">יש לבקש ממנהל המערכת</translation>
-<translation id="6574601967010742428">למנהל המכשיר תהיה יכולת לעקוב אחרי הפעילות שלך.</translation>
 <translation id="6585808820553845416">הפעילות באתר תסתיים בעוד <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">‏חיפוש+Shift‏+K</translation>
 <translation id="6650933572246256093">‏מכשיר ה-Bluetooth ‏"<ph name="DEVICE_NAME" />" מבקש הרשאה לביצוע התאמה. הזן את מפתח הסיסמה הבא במכשיר הזה: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 9c17959..83b7315 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">夜間モード: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM カードはロックされています</translation>
 <translation id="2653659639078652383">送信</translation>
+<translation id="2658778018866295321">クリックしてドラッグ</translation>
 <translation id="2700493154570097719">キーボードを設定</translation>
 <translation id="2718395828230677721">夜間モード</translation>
 <translation id="2727977024730340865">低電力の充電器に接続しています。バッテリーが充電されない可能性があります。</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">接続中...</translation>
 <translation id="4379531060876907730">タッチペン ツール</translation>
 <translation id="4389184120735010762">拡大鏡(ドッキング)のキーボード ショートカットを押しました。この機能をオンにしますか?</translation>
+<translation id="4394049700291259645">無効にする</translation>
 <translation id="4421231901400348175">リモート サポート経由で <ph name="HELPER_NAME" /> と画面の制御を共有しています。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4450893287417543264">次回から表示しない</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">保護者のコードでデバイスをロック解除</translation>
 <translation id="4731797938093519117">保護者によるアクセス</translation>
 <translation id="4734965478015604180">横</translation>
-<translation id="476166673298332917">デバイス管理者が閲覧アクティビティを監視している可能性があります。</translation>
 <translation id="4774338217796918551">明日の <ph name="COME_BACK_TIME" /> になったら利用を再開できます。</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> のパスワード</translation>
 <translation id="4778095205580009397">Google アシスタントは、デモセッションではご利用いただけません。</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">画面をキャプチャ</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> にキャストしています</translation>
 <translation id="6559976592393364813">管理者に問い合わせる</translation>
-<translation id="6574601967010742428">デバイスの管理者によりアクティビティが監視される可能性があります。</translation>
 <translation id="6585808820553845416">セッション終了まであと <ph name="SESSION_TIME_REMAINING" />です。</translation>
 <translation id="6627638273713273709">検索+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth デバイス「<ph name="DEVICE_NAME" />」がペア設定の権限をリクエストしています。このデバイスに次のパスキーを入力してください: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index a1b87f8..c11b76d 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">ನೈಟ್ ಲೈಟ್: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">ಸಿಮ್‌ ಕಾರ್ಡ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="2653659639078652383">ಸಲ್ಲಿಸು</translation>
+<translation id="2658778018866295321">ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ</translation>
 <translation id="2700493154570097719">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="2718395828230677721">ನೈಟ್ ಲೈಟ್</translation>
 <translation id="2727977024730340865">ಕಡಿಮೆ ವಿದ್ಯುತ್ ಚಾರ್ಜರ್‌ಗೆ ಪ್ಲಗ್ ಮಾಡಲಾಗಿದೆ. ಬ್ಯಾಟರಿ ಚಾರ್ಜಿಂಗ್ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಲ್ಲದಿರಬಹುದು.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="4379531060876907730">ಇವುಗಳು ನಿಮ್ಮ ಸ್ಟೈಲಸ್ ಪರಿಕರಗಳಾಗಿವೆ</translation>
 <translation id="4389184120735010762">ನೀವು ಡಾಕ್ ಮಾಡಿದ ವರ್ಧಕದ ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ ಒತ್ತಿದ್ದೀರಿ. ನೀವು ಅದನ್ನು ಆನ್ ಮಾಡಲು ಬಯಸುವಿರಾ?</translation>
+<translation id="4394049700291259645">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4421231901400348175">ರಿಮೋಟ್ ಸಹಾಯದ ಮೂಲಕ <ph name="HELPER_NAME" /> ಜೊತೆಗೆ ನಿಮ್ಮ ಪರದೆಯ ನಿಯಂತ್ರಣವನ್ನು ಹಂಚಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="4430019312045809116">ವಾಲ್ಯೂಮ್</translation>
 <translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">ಪೋಷಕ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="4731797938093519117">ಪೋಷಕ ಪ್ರವೇಶ ಬಟನ್‌</translation>
 <translation id="4734965478015604180">ಅಡ್ಡ</translation>
-<translation id="476166673298332917">ಈ ಡಿವೈಸ್‌ ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್‌ ಚಟುವಟಿಕೆಯನ್ನು ಗಮನಿಸಬಹುದು.</translation>
 <translation id="4774338217796918551">ನಾಳೆ <ph name="COME_BACK_TIME" /> ಸಮಯಕ್ಕೆ ಹಿಂತಿರುಗಿ.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> ಗಾಗಿ ಪಾಸ್‌ವರ್ಡ್</translation>
 <translation id="4778095205580009397">Google ಅಸಿಸ್ಟೆಂಟ್‌ ಡೆಮೊ ಸೆಶನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">ಸೆರೆಹಿಡಿಯುವ ಪರದೆ</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> ಗೆ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="6559976592393364813">ನಿರ್ವಾಹಕರನ್ನು ಕೇಳಿ</translation>
-<translation id="6574601967010742428">ನಿಮ್ಮ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಸಾಧನ ನಿರ್ವಾಹಕರಿಗೆ ಸಾಧ್ಯವಾಗಬಹುದು.</translation>
 <translation id="6585808820553845416">ಸೆಷನ್ <ph name="SESSION_TIME_REMAINING" /> ರಲ್ಲಿ ಕೊನೆಗೊಳ್ಳಲಿದೆ.</translation>
 <translation id="6627638273713273709">ಹುಡುಕಾಟ+Shift+K</translation>
 <translation id="6650933572246256093">ಬ್ಲೂಟೂತ್‌ ಸಾಧನವು "<ph name="DEVICE_NAME" />" ಜೋಡಣೆಗಾಗಿ ಅನುಮತಿಯನ್ನು ಬಯಸುತ್ತಿದೆ. ಆ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್‌ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 89bf673..d58fac2 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">야간 조명: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM 카드가 잠겨 있습니다.</translation>
 <translation id="2653659639078652383">제출</translation>
+<translation id="2658778018866295321">클릭하여 드래그</translation>
 <translation id="2700493154570097719">키보드 설정</translation>
 <translation id="2718395828230677721">야간 조명</translation>
 <translation id="2727977024730340865">저출력 충전기에 연결되었습니다. 배터리 충전 상태가 불안정합니다.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">연결 중...</translation>
 <translation id="4379531060876907730">스타일러스 도구입니다</translation>
 <translation id="4389184120735010762">고정 돋보기 단축키를 누르셨습니다. 사용 설정할까요?</translation>
+<translation id="4394049700291259645">사용 중지</translation>
 <translation id="4421231901400348175">원격 지원을 통해 <ph name="HELPER_NAME" />와(과) 화면 제어 공유</translation>
 <translation id="4430019312045809116">볼륨</translation>
 <translation id="4450893287417543264">다시 표시하지 않음</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">부모 코드로 기기 잠금 해제</translation>
 <translation id="4731797938093519117">부모 액세스</translation>
 <translation id="4734965478015604180">가로</translation>
-<translation id="476166673298332917">기기 관리자가 탐색 활동을 모니터링할 수 있습니다.</translation>
 <translation id="4774338217796918551">내일 <ph name="COME_BACK_TIME" />에 다시 사용해 주세요.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />의 비밀번호</translation>
 <translation id="4778095205580009397">데모 세션에서는 Google 어시스턴트를 사용할 수 없습니다.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">화면 캡처</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" />(으)로 전송 중</translation>
 <translation id="6559976592393364813">관리자에게 요청</translation>
-<translation id="6574601967010742428">기기 관리자가 내 활동을 모니터링할 수도 있습니다.</translation>
 <translation id="6585808820553845416">세션이 <ph name="SESSION_TIME_REMAINING" /> 후에 종료됩니다.</translation>
 <translation id="6627638273713273709">검색+Shift+K</translation>
 <translation id="6650933572246256093">블루투스 기기 '<ph name="DEVICE_NAME" />'에서 페어링 허가를 요청합니다. 해당 기기에서 다음 패스키를 입력하세요. <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index e7c878f..83e9018 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nakties šviesa: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM kortelė užrakinta</translation>
 <translation id="2653659639078652383">Pateikti</translation>
+<translation id="2658778018866295321">Spustelėti ir vilkti</translation>
 <translation id="2700493154570097719">Klaviatūros nustatymas</translation>
 <translation id="2718395828230677721">Nakties šviesa</translation>
 <translation id="2727977024730340865">Prijungtas mažos galios įkroviklis. Akumuliatoriaus įkrovimas gali būti nepatikimas.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Jungiamasi...</translation>
 <translation id="4379531060876907730">Tai yra jūsų rašiklio įrankiai</translation>
 <translation id="4389184120735010762">Paspaudėte prie doko prijungto didintuvo spartųjį klavišą. Ar norite jį įjungti?</translation>
+<translation id="4394049700291259645">Neleisti</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Atrakinkite įrenginį naudodami tėvų kodą</translation>
 <translation id="4731797938093519117">Tėvų prieiga</translation>
 <translation id="4734965478015604180">Horizontaliai</translation>
-<translation id="476166673298332917">Šio įrenginio administratorius gali stebėti jūsų naršymo veiklą.</translation>
 <translation id="4774338217796918551">Grįžkite rytoj <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> slaptažodis</translation>
 <translation id="4778095205580009397">„Google“ padėjėjas nepasiekiamas demonstracinėje sesijoje.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Užfiksuoti ekrano vaizdą</translation>
 <translation id="6542521951477560771">Perduodama į „<ph name="RECEIVER_NAME" />“</translation>
 <translation id="6559976592393364813">Klausti administratoriaus</translation>
-<translation id="6574601967010742428">Įrenginio administratorius gali stebėti jūsų veiklą.</translation>
 <translation id="6585808820553845416">Sesija baigsis po <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Paieškos klavišas + „Shift“ + K</translation>
 <translation id="6650933572246256093">„Bluetooth“ įrenginys „<ph name="DEVICE_NAME" />“ prašo leidimo susieti. Šiame įrenginyje įveskite šį slaptąjį raktą: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb
index 5115559..3de3503 100644
--- a/ash/strings/ash_strings_lv.xtb
+++ b/ash/strings/ash_strings_lv.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nakts režīms: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM karte ir bloķēta.</translation>
 <translation id="2653659639078652383">Iesniegt</translation>
+<translation id="2658778018866295321">Noklikšķiniet un velciet</translation>
 <translation id="2700493154570097719">Iestatiet savu tastatūru</translation>
 <translation id="2718395828230677721">Nakts režīms</translation>
 <translation id="2727977024730340865">Pievienots lādētājs ar mazu strāvas padevi. Akumulatora uzlāde var nebūt uzticama.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Notiek pievienošana...</translation>
 <translation id="4379531060876907730">Šie ir jūsu skārienekrāna pildspalvas rīki</translation>
 <translation id="4389184120735010762">Jūs nospiedāt dokotās lupas īsinājumtaustiņu. Vai vēlaties to ieslēgt?</translation>
+<translation id="4394049700291259645">Atspējot</translation>
 <translation id="4421231901400348175">Ekrāna pārvaldības koplietošana ar <ph name="HELPER_NAME" />, izmantojot attālo palīdzību.</translation>
 <translation id="4430019312045809116">Skaļums</translation>
 <translation id="4450893287417543264">Vairs nerādīt</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Ierīces atbloķēšana, ievadot vecāku kodu</translation>
 <translation id="4731797938093519117">Vecāku piekļuve</translation>
 <translation id="4734965478015604180">Horizontāli</translation>
-<translation id="476166673298332917">Ierīces administrators var novērot visas jūsu pārlūkošanas darbības.</translation>
 <translation id="4774338217796918551">Atgriezieties plkst. <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Parole e-pasta adresei <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google asistents nav pieejams demonstrācijas sesijā.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Uzņemt ekrāna attēlu</translation>
 <translation id="6542521951477560771">Notiek apraide uz ierīci <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Jautājiet administratoram</translation>
-<translation id="6574601967010742428">Jūsu darbības var pārraudzīt ierīces pārvaldnieks.</translation>
 <translation id="6585808820553845416">Atlikušais laiks līdz šīs sesijas beigām: <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Meklēšana+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth ierīce “<ph name="DEVICE_NAME" />” vēlas saņemt atļauju, lai izveidotu savienojumu pārī. Lūdzu, ievadiet ierīcē šo ieejas atslēgu: <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index 54bdee8..ec91c57 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">നൈറ്റ് ‌ലൈറ്റ്: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">സിം കാർഡ് ലോക്കുചെയ്‌തു</translation>
 <translation id="2653659639078652383">സമര്‍പ്പിക്കൂ</translation>
+<translation id="2658778018866295321">ക്ലിക്ക് ചെയ്‌ത് വലിച്ചിടുക</translation>
 <translation id="2700493154570097719">നിങ്ങളുടെ കീബോഡ് സജ്ജീകരിക്കുക</translation>
 <translation id="2718395828230677721">നൈറ്റ് ലൈറ്റ്</translation>
 <translation id="2727977024730340865">കുറഞ്ഞ തോതിൽ വൈദ്യുതി പ്രവഹിക്കുന്ന ചാർജ്ജറിലേക്ക് പ്ലഗ് ചെയ്‌തിരിക്കുന്നു. ബാറ്ററി ചാർജുചെയ്യൽ വിശ്വസനീയമാകണമെന്നില്ല.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">കണക്റ്റുചെയ്യുന്നു...</translation>
 <translation id="4379531060876907730">ഇവയാണ് നിങ്ങളുടെ സ്‌റ്റൈലസ് ടൂളുകൾ</translation>
 <translation id="4389184120735010762">നിങ്ങൾ ഡോക്ക് ചെയ്‌ത മാഗ്നിഫയറിനായി കീബോഡ് കുറുക്കുവഴി അമർത്തി. അത് ഓണാക്കണോ?</translation>
+<translation id="4394049700291259645">അപ്രാപ്‌തമാക്കുക</translation>
 <translation id="4421231901400348175"><ph name="HELPER_NAME" /> ഉപയോഗിച്ച് നിങ്ങളുടെ വിദൂര സഹായി മുഖേന സ്‌ക്രീനിന്റെ നിയന്ത്രണം പങ്കിടുക.</translation>
 <translation id="4430019312045809116">അളവ്</translation>
 <translation id="4450893287417543264">വീണ്ടും കാണിക്കരുത്</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">രക്ഷാകർതൃ കോഡ് ഉപയോഗിച്ച് ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
 <translation id="4731797938093519117">രക്ഷാകർതൃ ആക്‌സസ്</translation>
 <translation id="4734965478015604180">സമാന്തരം</translation>
-<translation id="476166673298332917">ഉപകരണ അഡ്‌മിൻ നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്‌റ്റിവിറ്റി നിരീക്ഷിച്ചേക്കാം.</translation>
 <translation id="4774338217796918551">നാളെ <ph name="COME_BACK_TIME" />-ന് തിരികെ വരിക.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> എന്നതിനായുള്ള പാസ്‌വേഡ്</translation>
 <translation id="4778095205580009397">ഡെമോ സെഷനിൽ Google അസി‌സ്‌റ്റന്റ് ലഭ്യമല്ല.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">സ്‌ക്രീൻ ക്യാപ്‌ചർ ചെയ്യുക</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> ഉപകരണത്തിലേക്ക് കാസ്‌റ്റ് ചെയ്യുന്നു</translation>
 <translation id="6559976592393364813">അഡ്‌മിനിസ്‌ട്രേറ്ററോട് ചോദിക്കുക</translation>
-<translation id="6574601967010742428">ഉപകരണ അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് നിങ്ങളുടെ ആക്‌റ്റിവിറ്റി നിരീക്ഷിക്കാനായേക്കും.</translation>
 <translation id="6585808820553845416"><ph name="SESSION_TIME_REMAINING" />-നുള്ളിൽ സെഷൻ അവസാനിക്കുന്നു.</translation>
 <translation id="6627638273713273709">തിരയല്‍+Shift+K</translation>
 <translation id="6650933572246256093">"<ph name="DEVICE_NAME" />" എന്ന Bluetooth ഉപകരണം ജോടിയാക്കുന്നതിനുള്ള അനുമതി ആവശ്യപ്പെടുന്നു. ആ ഉപകരണത്തിൽ ഈ പാസ്‌കീ നൽകുക: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index b6f7678..db8f804 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">रात्रीचा प्रकाश: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">सिम कार्ड लॉक केले आहे</translation>
 <translation id="2653659639078652383">सबमिट करा</translation>
+<translation id="2658778018866295321">क्लिक आणि ड्रॅग करा</translation>
 <translation id="2700493154570097719">तुमचा कीबोर्ड सेट करा</translation>
 <translation id="2718395828230677721">रात्रीचा प्रकाश</translation>
 <translation id="2727977024730340865">एका निम्न-उर्जेच्या चार्जरवर प्लग इन केले. बॅटरी चार्जिंग विश्वसनीय असू शकत नाही.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">कनेक्ट करीत आहे...</translation>
 <translation id="4379531060876907730">ही तुमची स्टायलस टूल आहेत</translation>
 <translation id="4389184120735010762">तुम्ही डॉक मॅग्निफायरसाठी कीबोर्ड शॉर्टकट दाबला आहे. तुम्हाला ते सुरू करायचे आहे का?</translation>
+<translation id="4394049700291259645">अक्षम करा</translation>
 <translation id="4421231901400348175">दूरस्त सहाय्याद्वारे <ph name="HELPER_NAME" /> सह आपल्या स्क्रीनचे नियंत्रण शेअर करत आहे.</translation>
 <translation id="4430019312045809116">व्हॉल्यूम</translation>
 <translation id="4450893287417543264">पुन्हा दाखवू नका</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">पालक कोडने डिव्हाइस अनलॉक करा</translation>
 <translation id="4731797938093519117">पालक अ‍ॅक्सेस</translation>
 <translation id="4734965478015604180">आडवा</translation>
-<translation id="476166673298332917">डिव्हाइस प्रशासक तुमच्या ब्राउझिंग ॲक्टिव्हिटीचे परीक्षण करू शकतो.</translation>
 <translation id="4774338217796918551"><ph name="COME_BACK_TIME" /> वाजता परत या.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> साठी पासवर्ड</translation>
 <translation id="4778095205580009397">डेमो सेशनमध्ये Google असिस्टंट उपलब्ध नाही.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">स्क्रीन कॅप्चर करा</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> वर कास्ट करत आहे</translation>
 <translation id="6559976592393364813">अ‍ॅडमिनिस्ट्रेटरला विचारा</translation>
-<translation id="6574601967010742428">डिव्हाइस ॲडमिनिस्ट्रेटर कदाचित तुमची ॲक्टिव्हिटी नियंत्रित करू शकेल.</translation>
 <translation id="6585808820553845416"><ph name="SESSION_TIME_REMAINING" /> मध्ये सेशन समाप्त होते.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">"<ph name="DEVICE_NAME" />" Bluetooth डिव्हाइस जोडण्यासाठी परवानगी घेऊ इच्छिते. कृपया त्या डिव्हाइसवर ही पासकी प्रविष्ट करा: <ph name="PASSKEY" /></translation>
@@ -411,7 +411,7 @@
 <translation id="7526573455193969409">नेटवर्कचे परीक्षण केले जाऊ शकते</translation>
 <translation id="7536035074519304529">IP पत्ता: <ph name="ADDRESS" /></translation>
 <translation id="7548434653388805669">झोपण्याची वेळ</translation>
-<translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> <ph name="SPECIFIED_RESOLUTION" /> ला सपोर्ट करत नाही. रिझोल्युशन <ph name="FALLBACK_RESOLUTION" /> मध्ये बदलले</translation>
+<translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> <ph name="SPECIFIED_RESOLUTION" /> ला सपोर्ट देत नाही. रिजोल्यूशन <ph name="FALLBACK_RESOLUTION" /> मध्ये बदलले</translation>
 <translation id="7562368315689366235">इमोजी पॅलेट</translation>
 <translation id="7564874036684306347">दुसऱ्या डेस्कटॉपवर विंडो हलवण्याने अनपेक्षित वर्तन घडू शकते. नंतर येणाऱ्या सूचना, विंडो आणि डायलॉग हे डेस्कटॉपच्या दरम्यान विभाजित केले जाऊ शकतात.</translation>
 <translation id="7569509451529460200">ब्रेल आणि ChromeVox चालू केलेले आहेत</translation>
@@ -425,7 +425,7 @@
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{एक सूचना}other{# सूचना}}</translation>
 <translation id="776344839111254542">अपडेट तपशील पाहण्यासाठी क्लिक करा</translation>
 <translation id="7780159184141939021">स्क्रीन फिरवा</translation>
-<translation id="7796353162336583443">नोंद करून घेण्यासाठी, स्क्रीनशॉट घेण्यासाठी, Google असिस्टंट, लेझर पॉइंटर किंवा भिंग वापरण्यासाठी शेल्फवरील स्टायलस बटणावर टॅप करा.</translation>
+<translation id="7796353162336583443">नोंद करून घेण्यासाठी, स्क्रीनशॉट घेण्यासाठी, Google Assistant, लेझर पॉइंटर किंवा भिंग वापरण्यासाठी शेल्फवरील स्टायलस बटणावर टॅप करा.</translation>
 <translation id="7798302898096527229">रद्द करण्यासाठी Search किंवा Shift दाबा.</translation>
 <translation id="7814236020522506259"><ph name="HOUR" /> आणि <ph name="MINUTE" /></translation>
 <translation id="7829386189513694949">मजबूत सिग्नल</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb
index a745c0e..e45f62d 100644
--- a/ash/strings/ash_strings_ms.xtb
+++ b/ash/strings/ash_strings_ms.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Lampu Malam: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Kad SIM dikunci</translation>
 <translation id="2653659639078652383">Serah</translation>
+<translation id="2658778018866295321">Klik dan seret</translation>
 <translation id="2700493154570097719">Tetapkan papan kekunci anda</translation>
 <translation id="2718395828230677721">Cahaya Malam</translation>
 <translation id="2727977024730340865">Dipalamkan pada pengecas berkuasa rendah. Pengecasan bateri mungkin tidak boleh diharapkan.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Menyambung...</translation>
 <translation id="4379531060876907730">Berikut ialah alatan stilus anda</translation>
 <translation id="4389184120735010762">Anda menekan pintasan papan kekunci untuk penggadang yang didok. Adakah anda ingin menghidupkannya?</translation>
+<translation id="4394049700291259645">Lumpuhkan</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Buka kunci peranti menggunakan kod ibu bapa</translation>
 <translation id="4731797938093519117">Akses ibu bapa</translation>
 <translation id="4734965478015604180">Mendatar</translation>
-<translation id="476166673298332917">Pentadbir peranti boleh memantau aktiviti penyemakan imbas anda.</translation>
 <translation id="4774338217796918551">Datang semula esok pada <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Kata laluan untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Assistant tidak tersedia dalam sesi tunjuk cara.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Tangkap skrin</translation>
 <translation id="6542521951477560771">Menghantar ke <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Tanya Pentadbir</translation>
-<translation id="6574601967010742428">Pentadbir peranti mungkin dapat memantau aktiviti anda</translation>
 <translation id="6585808820553845416">Sesi berakhir dalam <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan. Sila masukkan kekunci laluan ini pada peranti tersebut: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 3b9a46e..9af4bb7 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nachtverlichting: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Simkaart is vergrendeld</translation>
 <translation id="2653659639078652383">Verzenden</translation>
+<translation id="2658778018866295321">Klikken en slepen</translation>
 <translation id="2700493154570097719">Je toetsenbord instellen</translation>
 <translation id="2718395828230677721">Nachtverlichting</translation>
 <translation id="2727977024730340865">Aangesloten op een laag-vermogen-lader. Opladen van de batterij mogelijk niet betrouwbaar.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Verbinden...</translation>
 <translation id="4379531060876907730">Dit zijn je stylustools</translation>
 <translation id="4389184120735010762">Je hebt op de sneltoets voor het gedockte vergrootglas gedrukt. Wil je deze functie inschakelen?</translation>
+<translation id="4394049700291259645">Uitschakelen</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Apparaat ontgrendelen met oudercode</translation>
 <translation id="4731797938093519117">Toegang door ouders</translation>
 <translation id="4734965478015604180">Horizontaal</translation>
-<translation id="476166673298332917">De apparaatbeheerder kan je browseactiviteit controleren.</translation>
 <translation id="4774338217796918551">Kom morgen terug om <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Wachtwoord voor <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">De Google Assistent is niet beschikbaar in een demosessie.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Screenshot maken</translation>
 <translation id="6542521951477560771">Er wordt gecast naar <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Vraag het de beheerder</translation>
-<translation id="6574601967010742428">De beheerder van het apparaat kan je activiteit mogelijk bekijken.</translation>
 <translation id="6585808820553845416">Sessie loopt af over <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Zoeken+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth-apparaat '<ph name="DEVICE_NAME" />' wil toestemming om te koppelen. Voer de volgende toegangscode in op dat apparaat: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
index cfc7768..5500bbd 100644
--- a/ash/strings/ash_strings_no.xtb
+++ b/ash/strings/ash_strings_no.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nattlys: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-kortet er låst</translation>
 <translation id="2653659639078652383">Send</translation>
+<translation id="2658778018866295321">Klikk og dra</translation>
 <translation id="2700493154570097719">Velg tastatur</translation>
 <translation id="2718395828230677721">Nattlys</translation>
 <translation id="2727977024730340865">Tilkoblet laveffektslader. Batteriladingen kan være upålitelig.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Kobler til …</translation>
 <translation id="4379531060876907730">Dette er pekepennverktøyene dine</translation>
 <translation id="4389184120735010762">Du trykket på hurtigtasten for den dokkede lupen. Vil du slå den på?</translation>
+<translation id="4394049700291259645">Slå av</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Lås opp enheten med foreldrekode</translation>
 <translation id="4731797938093519117">Foreldretilgang</translation>
 <translation id="4734965478015604180">Horisontal</translation>
-<translation id="476166673298332917">Enhetsadministratoren har tilgang til nettleseraktiviteten din.</translation>
 <translation id="4774338217796918551">Kom tilbake i morgen <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Passord for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google-assistenten er ikke tilgjengelig under demonstrasjonsøkter.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Ta skjermdump av skjermen</translation>
 <translation id="6542521951477560771">Caster til <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Spør administratoren</translation>
-<translation id="6574601967010742428">Enhetsadministratoren kan muligens overvåke aktiviteten din.</translation>
 <translation id="6585808820553845416">Økten slutter om <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Søk + Shift + K</translation>
 <translation id="6650933572246256093">Bluetooth-enheten «<ph name="DEVICE_NAME" />» ber om tillatelse til å koble til. Skriv inn denne tilgangskoden på den aktuelle enheten: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index 6722644..227b073 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Podświetlenie nocne: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Karta SIM jest zablokowana</translation>
 <translation id="2653659639078652383">Prześlij</translation>
+<translation id="2658778018866295321">Kliknij i przeciągnij</translation>
 <translation id="2700493154570097719">Ustaw klawiaturę</translation>
 <translation id="2718395828230677721">Podświetlenie nocne</translation>
 <translation id="2727977024730340865">Podłączono ładowarkę o małej mocy. Ładowanie baterii może być nieprawidłowe.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Łączę...</translation>
 <translation id="4379531060876907730">To są Twoje narzędzia rysika</translation>
 <translation id="4389184120735010762">Naciśnięto skrót klawiszowy lupy zadokowanej. Czy chcesz ją włączyć?</translation>
+<translation id="4394049700291259645">Wyłącz</translation>
 <translation id="4421231901400348175">Udostępnianie sterowania ekranem użytkownikowi <ph name="HELPER_NAME" /> przy użyciu pomocy zdalnej.</translation>
 <translation id="4430019312045809116">Głośność</translation>
 <translation id="4450893287417543264">Nie pokazuj ponownie</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Odblokuj urządzenie kodem rodzica</translation>
 <translation id="4731797938093519117">Dostęp rodzica</translation>
 <translation id="4734965478015604180">Orientacja pozioma</translation>
-<translation id="476166673298332917">Administrator urządzenia może monitorować Twoją aktywność związaną z przeglądaniem.</translation>
 <translation id="4774338217796918551">Możesz wrócić jutro o <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Hasło dla <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Asystent Google jest niedostępny w sesji demonstracyjnej.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Zrzut całego ekranu</translation>
 <translation id="6542521951477560771">Przesyłam do: <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Poproś administratora</translation>
-<translation id="6574601967010742428">Administrator urządzenia może monitorować Twoją aktywność.</translation>
 <translation id="6585808820553845416">Sesja kończy się za <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Szukaj + Shift + K</translation>
 <translation id="6650933572246256093">Urządzenie Bluetooth „<ph name="DEVICE_NAME" />” chce się sparować. Wpisz na nim ten klucz: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 6fa97ce..9e398f9 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Modo noturno: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">O chip está bloqueado</translation>
 <translation id="2653659639078652383">Enviar</translation>
+<translation id="2658778018866295321">Clicar e arrastar</translation>
 <translation id="2700493154570097719">Configurar teclado</translation>
 <translation id="2718395828230677721">Modo noturno</translation>
 <translation id="2727977024730340865">Conectado a um carregador de baixa potência. O carregamento da bateria pode não ser confiável.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Conectando...</translation>
 <translation id="4379531060876907730">Estas são suas ferramentas da stylus</translation>
 <translation id="4389184120735010762">Você pressionou o atalho de teclado para a lupa ancorada. Gostaria de ativá-la?</translation>
+<translation id="4394049700291259645">Desativar</translation>
 <translation id="4421231901400348175">Compartilhando o controle da sua tela com <ph name="HELPER_NAME" /> via Assistência remota.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Não mostrar novamente</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Desbloquear dispositivo usando o código de pai/mãe</translation>
 <translation id="4731797938093519117">Acesso de pai/mãe</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">O administrador deste dispositivo poderá monitorar sua atividade de navegação.</translation>
 <translation id="4774338217796918551">Volte amanhã, neste horário: <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Senha para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">O Google Assistente não está disponível para uma sessão de demonstração.</translation>
@@ -356,7 +357,6 @@
 <translation id="6537270692134705506">Capturar tela</translation>
 <translation id="6542521951477560771">Transmitindo para <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Peça ao administrador</translation>
-<translation id="6574601967010742428">O administrador do dispositivo pode conseguir monitorar sua atividade.</translation>
 <translation id="6585808820553845416">A sessão termina em <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Pesquisar+Shift+K</translation>
 <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" deseja permissão para realizar o pareamento. Digite esta senha no dispositivo: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index cd18f06..479ee07 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Luz noturna: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">O cartão SIM está bloqueado</translation>
 <translation id="2653659639078652383">Submeter</translation>
+<translation id="2658778018866295321">Clique e arraste</translation>
 <translation id="2700493154570097719">Definir o teclado</translation>
 <translation id="2718395828230677721">Luz noturna</translation>
 <translation id="2727977024730340865">Ligado a um carregador de baixo consumo. O carregamento da bateria pode não ser fiável.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">A ligar...</translation>
 <translation id="4379531060876907730">Estas são as suas ferramentas da caneta stylus</translation>
 <translation id="4389184120735010762">Premiu o atalho de teclado da lupa ancorada. Pretende ativá-la?</translation>
+<translation id="4394049700291259645">Desactivar</translation>
 <translation id="4421231901400348175">A partilhar o controlo do seu ecrã com <ph name="HELPER_NAME" /> através da Assistência remota.</translation>
 <translation id="4430019312045809116">Volume</translation>
 <translation id="4450893287417543264">Não mostrar de novo</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Desbloquear o dispositivo com o código parental</translation>
 <translation id="4731797938093519117">Acesso parental</translation>
 <translation id="4734965478015604180">Horizontal</translation>
-<translation id="476166673298332917">O administrador deste dispositivo poderá monitorizar a sua atividade de navegação.</translation>
 <translation id="4774338217796918551">Volte amanhã à(s) <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Palavra-passe para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">O Assistente Google não está disponível numa sessão de demonstração.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Capturar ecrã</translation>
 <translation id="6542521951477560771">A transmitir para <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Peça ao administrador.</translation>
-<translation id="6574601967010742428">O administrador do dispositivo pode conseguir monitorizar a sua atividade.</translation>
 <translation id="6585808820553845416">A sessão termina em <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Pesquisar+Shift+K</translation>
 <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" necessita de autorização para sincronizar. Introduza esta chave nesse dispositivo: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index c4249e4..b483d5b 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Lumină de noapte: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Cardul SIM este blocat</translation>
 <translation id="2653659639078652383">Trimite</translation>
+<translation id="2658778018866295321">Dă clic și trage</translation>
 <translation id="2700493154570097719">Setează tastatura</translation>
 <translation id="2718395828230677721">Lumină de noapte</translation>
 <translation id="2727977024730340865">V-ați conectat la un încărcător de putere joasă. Încărcarea bateriei poate fi nesigură.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Se stabilește conexiunea...</translation>
 <translation id="4379531060876907730">Acestea sunt instrumentele pentru creion</translation>
 <translation id="4389184120735010762">Ai accesat comanda rapidă de la tastatură pentru lupa andocată. Vrei să o activezi?</translation>
+<translation id="4394049700291259645">Dezactivează</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Deblochează dispozitivul cu codul părintelui</translation>
 <translation id="4731797938093519117">Acces pentru părinți</translation>
 <translation id="4734965478015604180">Orizontal</translation>
-<translation id="476166673298332917">Administratorul dispozitivului îți poate monitoriza activitatea de navigare.</translation>
 <translation id="4774338217796918551">Revino mâine la <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Parolă pentru <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Asistentul Google nu este disponibil într-o sesiune demonstrativă.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Capturează ecranul</translation>
 <translation id="6542521951477560771">Se proiectează conținut la <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Întreabă administratorul</translation>
-<translation id="6574601967010742428">Administratorul dispozitivului poate să îți monitorizeze activitatea.</translation>
 <translation id="6585808820553845416">Sesiunea se încheie peste <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tasta de căutare + Shift + K</translation>
 <translation id="6650933572246256093">Dispozitivul Bluetooth „<ph name="DEVICE_NAME" />” solicită permisiunea de a se conecta. Introduceți această parolă pe dispozitivul respectiv: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index d2b0926..27f5d1c 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Ночной режим: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-карта заблокирована</translation>
 <translation id="2653659639078652383">Отправить</translation>
+<translation id="2658778018866295321">Перетаскивание</translation>
 <translation id="2700493154570097719">Выберите раскладку</translation>
 <translation id="2718395828230677721">Ночной режим</translation>
 <translation id="2727977024730340865">Подключено маломощное зарядное устройство. Возможны проблемы при зарядке.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Подключение…</translation>
 <translation id="4379531060876907730">Инструменты для работы со стилусом</translation>
 <translation id="4389184120735010762">Вы нажали сочетание клавиш для включения закрепленной лупы. Выполнить это действие?</translation>
+<translation id="4394049700291259645">Отключить</translation>
 <translation id="4421231901400348175">Доступ к экрану для <ph name="HELPER_NAME" /> с помощью удаленного помощника</translation>
 <translation id="4430019312045809116">Объем</translation>
 <translation id="4450893287417543264">Больше не показывать</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Требуется родительский код доступа</translation>
 <translation id="4731797938093519117">Родительский доступ</translation>
 <translation id="4734965478015604180">Горизонтальная ориентация</translation>
-<translation id="476166673298332917">Администратору устройства доступна информация о том, какие страницы вы просматриваете в браузере.</translation>
 <translation id="4774338217796918551">Возвращайтесь завтра в <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Пароль для адреса электронной почты <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Ассистент в демонстрационном сеансе недоступен</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Снимок экрана</translation>
 <translation id="6542521951477560771">Трансляция на устройство "<ph name="RECEIVER_NAME" />"</translation>
 <translation id="6559976592393364813">Обратитесь к администратору</translation>
-<translation id="6574601967010742428">Администратор может отслеживать ваши действия на этом устройстве.</translation>
 <translation id="6585808820553845416">Сеанс закончится через <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Поиск + Shift + K</translation>
 <translation id="6650933572246256093">Устройству <ph name="DEVICE_NAME" /> требуется разрешение на подключение через Bluetooth. Введите на нем код: <ph name="PASSKEY" />.</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index e7d8802c..7262b56 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -228,6 +228,7 @@
 <translation id="4378551569595875038">Pripája sa...</translation>
 <translation id="4379531060876907730">Toto sú vaše nástroje pre dotykové pero</translation>
 <translation id="4389184120735010762">Stlačili ste klávesovú skratku ukotvenej lupy. Chcete ju zapnúť?</translation>
+<translation id="4394049700291259645">Zakázať</translation>
 <translation id="4421231901400348175">Ovládanie obrazovky sa prostredníctvom Vzdialenej pomoci zdieľa s používateľom <ph name="HELPER_NAME" />.</translation>
 <translation id="4430019312045809116">Hlasitosť</translation>
 <translation id="4450893287417543264">Nabudúce nezobrazovať</translation>
@@ -247,7 +248,6 @@
 <translation id="4696813013609194136">Odomknutie zariadenia kódom rodiča</translation>
 <translation id="4731797938093519117">Rodičovský prístup</translation>
 <translation id="4734965478015604180">Na šírku</translation>
-<translation id="476166673298332917">Správca zariadenia môže sledovať vašu aktivitu prehliadania.</translation>
 <translation id="4774338217796918551">Vráť sa zajtra o <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Heslo pre účet <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Asistent Google nie je k dispozícii v relácii ukážky.</translation>
@@ -355,7 +355,6 @@
 <translation id="6537270692134705506">Nasnímať obrazovku</translation>
 <translation id="6542521951477560771">Prebieha prenášanie do zariadenia <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Požiadajte o to správcu</translation>
-<translation id="6574601967010742428">Správca zariadenia môže sledovať vašu aktivitu.</translation>
 <translation id="6585808820553845416">Relácia sa skončí o <ph name="SESSION_TIME_REMAINING" /></translation>
 <translation id="6627638273713273709">Hľadať+Shift+K</translation>
 <translation id="6650933572246256093">Zariadenie Bluetooth s názvom <ph name="DEVICE_NAME" /> žiada o povolenie párovania. Zadajte na danom zariadení tento prístupový kľúč: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 3922145..9ace52e 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nočna svetloba: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Kartica SIM je zaklenjena</translation>
 <translation id="2653659639078652383">Pošlji</translation>
+<translation id="2658778018866295321">Klikanje in vlečenje</translation>
 <translation id="2700493154570097719">Nastavitev tipkovnice</translation>
 <translation id="2718395828230677721">Nočna svetloba</translation>
 <translation id="2727977024730340865">Priključen je nizkoenergijski polnilnik. Polnjenje akumulatorja morda ne bo zanesljivo.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Povezovanje ...</translation>
 <translation id="4379531060876907730">To so vaša orodja pisala</translation>
 <translation id="4389184120735010762">Pritisnili ste bližnjično tipko za zasidrano lupo. Ali jo želite vklopiti?</translation>
+<translation id="4394049700291259645">Onemogoči</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Odklepanje naprave s kodo starša</translation>
 <translation id="4731797938093519117">Starševski dostop</translation>
 <translation id="4734965478015604180">Vodoravno</translation>
-<translation id="476166673298332917">Skrbnik naprave morda spremlja vašo dejavnost brskanja.</translation>
 <translation id="4774338217796918551">Vrni se jutri ob <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Geslo za <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Pomočnik Google ni na voljo v predstavitveni seji.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Zajem zaslona</translation>
 <translation id="6542521951477560771">Predvajanje v napravi <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Vprašajte skrbnika</translation>
-<translation id="6574601967010742428">Upravitelj naprave lahko morda nadzira vašo dejavnost.</translation>
 <translation id="6585808820553845416">Seja se konča čez <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tipka za iskanje + Shift + K</translation>
 <translation id="6650933572246256093">Naprava Bluetooth »<ph name="DEVICE_NAME" />« želi vaše dovoljenje za seznanjanje. V napravi vnesite to geslo: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb
index a8d2beb..b01569a 100644
--- a/ash/strings/ash_strings_sr.xtb
+++ b/ash/strings/ash_strings_sr.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Ноћно светло: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM картица је закључана</translation>
 <translation id="2653659639078652383">Пошаљи</translation>
+<translation id="2658778018866295321">Кликните и превуците</translation>
 <translation id="2700493154570097719">Подесите тастатуру</translation>
 <translation id="2718395828230677721">Ноћно светло</translation>
 <translation id="2727977024730340865">Уређај је укључен у пуњач мале снаге. Пуњење батерије можда неће бити поуздано.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Повезује се...</translation>
 <translation id="4379531060876907730">Ово су алатке за писаљку</translation>
 <translation id="4389184120735010762">Притиснули сте тастерску пречицу за монтирану лупу екрана. Желите ли да је укључите?</translation>
+<translation id="4394049700291259645">Онемогући</translation>
 <translation id="4421231901400348175">Делите контролу над екраном са особом <ph name="HELPER_NAME" /> преко Даљинске помоћи.</translation>
 <translation id="4430019312045809116">Јачина звука</translation>
 <translation id="4450893287417543264">Не приказуј поново</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Откључајте уређај помоћу кода родитеља</translation>
 <translation id="4731797938093519117">Родитељски приступ</translation>
 <translation id="4734965478015604180">Хоризонтално</translation>
-<translation id="476166673298332917">Администратор овог уређаја може да надгледа активности прегледања.</translation>
 <translation id="4774338217796918551">Вратите се сутра у <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Лозинка за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google помоћник није доступан у сесији демонстрације.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Сними екран</translation>
 <translation id="6542521951477560771">Пребацује се на <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Питајте администратора</translation>
-<translation id="6574601967010742428">Администратор уређаја ће можда моћи да надгледа ваше активности.</translation>
 <translation id="6585808820553845416">Сесија се завршава за <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Тастер за претрагу+Shift+K</translation>
 <translation id="6650933572246256093">Bluetooth уређај „<ph name="DEVICE_NAME" />“ жели дозволу за упаривање. Унесите ову шифру на том уређају: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index 64cec34..99cb9863 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Nattljus: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-kortet är låst</translation>
 <translation id="2653659639078652383">Skicka</translation>
+<translation id="2658778018866295321">Klicka och dra</translation>
 <translation id="2700493154570097719">Ställ in tangentbord</translation>
 <translation id="2718395828230677721">Nattljus</translation>
 <translation id="2727977024730340865">Ansluten till en laddare med låg effekt. Batteriet kanske inte laddas ordentligt.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Ansluter ...</translation>
 <translation id="4379531060876907730">Här är dina verktyg för e-penna</translation>
 <translation id="4389184120735010762">Du tryckte på kortkommandot för dockad skärmförstoring. Vill du aktivera funktionen?</translation>
+<translation id="4394049700291259645">Inaktivera</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Lås upp enheten med föräldrakod</translation>
 <translation id="4731797938093519117">Föräldraåtkomst</translation>
 <translation id="4734965478015604180">Horisontell</translation>
-<translation id="476166673298332917">Enhetens administratör kan övervaka din webbhistorik</translation>
 <translation id="4774338217796918551">Prova igen i morgon klockan <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Lösenord för <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google-assistenten är inte tillgänglig i en demosession.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Ta en bild av skärmen</translation>
 <translation id="6542521951477560771">Castar till <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Fråga administratören</translation>
-<translation id="6574601967010742428">Enhetsadministratören kan ha möjlighet att övervaka det du gör.</translation>
 <translation id="6585808820553845416">Sessionen upphör om <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Söktangenten + Skift + K</translation>
 <translation id="6650933572246256093">Bluetooth-enheten <ph name="DEVICE_NAME" /> har begärt tillstånd för koppling. Ange denna lösenordsnyckel på den enheten: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb
index 7e4361a9..17b37ef 100644
--- a/ash/strings/ash_strings_sw.xtb
+++ b/ash/strings/ash_strings_sw.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Mwanga wa Usiku: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM kadi imefungwa</translation>
 <translation id="2653659639078652383">Wasilisha</translation>
+<translation id="2658778018866295321">Bofya na uburute</translation>
 <translation id="2700493154570097719">Weka kibodi yako</translation>
 <translation id="2718395828230677721">Mwanga wa Usiku</translation>
 <translation id="2727977024730340865">Imechomekwa katika chaja ya kawi ya chini. Huenda kuchaji kwa betri hakutakuwa kuzuri.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Inaunganisha...</translation>
 <translation id="4379531060876907730">Hizi ni zana zako za stylus</translation>
 <translation id="4389184120735010762">Umebofya mikato ya kibodi ya kikuzaji kilichoambatishwa. Ungependa kukiwasha?</translation>
+<translation id="4394049700291259645">Zima</translation>
 <translation id="4421231901400348175">Kushiriki udhibiti wa skrini yako na <ph name="HELPER_NAME" /> kupitia Usaidizi wa Mbali.</translation>
 <translation id="4430019312045809116">Kiwango</translation>
 <translation id="4450893287417543264">Usionyeshe tena</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Fungua kifaa ukitumia msimbo wa mzazi</translation>
 <translation id="4731797938093519117">Idhini ya mzazi</translation>
 <translation id="4734965478015604180">Kimlalo</translation>
-<translation id="476166673298332917">Msimamizi wa kifaa hiki anaweza kufuatilia shughuli zako za kuvinjari.</translation>
 <translation id="4774338217796918551">Rejea kesho saa <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Nenosiri la <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Programu ya Mratibu wa Google haipatikani katika kipindi cha onyesho.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Piga skrini picha</translation>
 <translation id="6542521951477560771">Tuma kwenye <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Mwulize Msimamizi</translation>
-<translation id="6574601967010742428">Huenda msimamizi wa kifaa hiki atafuatilia shughuli zako.</translation>
 <translation id="6585808820553845416">Kipindi kitakwisha baada ya <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tafuta+Shift+K</translation>
 <translation id="6650933572246256093">Kifaa cha Bluetooth cha "<ph name="DEVICE_NAME" />" kinaomba idhini ya kuoanisha. Tafadhali weka nenosiri hili kwenye kifaa hicho: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index dd31797..3918171 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -84,6 +84,7 @@
 <translation id="225680501294068881">சாதனங்களைக் கண்டறிகிறது...</translation>
 <translation id="2268130516524549846">புளூடூத் முடக்கப்பட்டது</translation>
 <translation id="2268813581635650749">அனைவரையும் வெளியேற்று</translation>
+<translation id="2277103315734023688">முன்னோக்கிச் செல்</translation>
 <translation id="2292698582925480719">திரை அளவு</translation>
 <translation id="2302092602801625023">இந்தக் கணக்கு Family Linkகால் நிர்வகிக்கப்படுகிறது</translation>
 <translation id="2303600792989757991">சாளர மேலோட்டத்தை நிலைமாற்று</translation>
@@ -163,6 +164,7 @@
 <translation id="3371140690572404006">USB-C சாதனம் (வலது பக்கம் முன்னே இருக்கும் போர்ட்)</translation>
 <translation id="3400357268283240774">கூடுதல் அமைப்புகள்</translation>
 <translation id="3413817803639110246">பார்ப்பதற்கு எதுவுமில்லை</translation>
+<translation id="343571671045587506">நினைவூட்டலைத் திருத்தவும்</translation>
 <translation id="3445925074670675829">USB-C சாதனம்</translation>
 <translation id="3454224730401036106">உங்கள் இணைப்பு மிகவும் பாதுகாப்பான நெட்வொர்க்குக்கு மாற்றப்பட்டது</translation>
 <translation id="3465223694362104965">நீங்கள் கடந்த முறை உள்நுழைந்த பின்னர் இந்தச் சாதனத்துடன் மற்றொரு கீபோர்டு இணைக்கப்பட்டுள்ளது. இதைப் பயன்படுத்தும் முன்பு, நீங்கள் இந்தக் கீபோர்டை நம்புகிறீர்களா என்பதை உறுதிப்படுத்தவும்.</translation>
@@ -195,13 +197,15 @@
 <translation id="3900355044994618856">உங்கள் அமர்வு <ph name="SESSION_TIME_REMAINING" /> இல் முடியும்</translation>
 <translation id="3901991538546252627"><ph name="NAME" /> க்கு இணைக்கிறது</translation>
 <translation id="394485226368336402">ஆடியோ அமைப்புகள்</translation>
+<translation id="3962859241508114581">முந்தைய ட்ராக்</translation>
 <translation id="397105322502079400">கணக்கிடுகிறது...</translation>
-<translation id="3977512764614765090">பேட்டரி <ph name="PERCENTAGE" />% நிரம்பியுள்ளது தொடர்ந்து சார்ஜ் ஆகிறது.</translation>
+<translation id="3977512764614765090">பேட்டரி <ph name="PERCENTAGE" />% நிரம்பியுள்ளது, தொடர்ந்து சார்ஜ் ஆகிறது.</translation>
 <translation id="3995138139523574647">USB-C சாதனம் (வலது பக்கம் பின்னே இருக்கும் போர்ட்)</translation>
 <translation id="4017989525502048489">லேசர் பாயிண்டர்</translation>
 <translation id="4042660782729322247">திரையைப் பகிர்ந்துள்ளீர்கள்</translation>
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{ஒரு ஆப்ஸுக்கு முடக்கு}other{# ஆப்ஸுக்கு முடக்கு}}</translation>
 <translation id="4072264167173457037">நடுத்தரமான சிக்னல்</translation>
+<translation id="4112140312785995938">பின்னோக்கிச் செல்</translation>
 <translation id="4129129681837227511">பூட்டுத் திரையில் அறிவிப்புகளைப் பார்க்க, அமைப்பை மாற்றுவதற்குச் சாதனத்தைத் திறக்கவும்</translation>
 <translation id="4146833061457621061">இசையை இயக்கு</translation>
 <translation id="4181841719683918333">மொழிகள்</translation>
@@ -223,9 +227,11 @@
 <translation id="4378551569595875038">இணைக்கிறது...</translation>
 <translation id="4379531060876907730">இவை உங்கள் ஸ்டைலஸ் கருவிகள்</translation>
 <translation id="4389184120735010762">டாக் செய்யப்பட்ட பெரிதாக்கியின் கீபோர்ட் ஷார்ட்கட்டை அழுத்தியுள்ளீர்கள். அதை இயக்க விரும்புகிறீர்களா?</translation>
+<translation id="4394049700291259645">முடக்கு</translation>
 <translation id="4421231901400348175">தொலைநிலை உதவி மூலம் <ph name="HELPER_NAME" /> உடன் உங்கள் திரையின் கட்டுப்பாட்டைப் பகிர்கிறது.</translation>
 <translation id="4430019312045809116">அளவு</translation>
 <translation id="4450893287417543264">மீண்டும் காட்டாதே</translation>
+<translation id="4477350412780666475">அடுத்த ட்ராக்</translation>
 <translation id="4479639480957787382">ஈத்தர்நெட்</translation>
 <translation id="4481530544597605423">இணைக்காத சாதனங்கள்</translation>
 <translation id="4508225577814909926"><ph name="NAME" />: இணைக்கிறது...</translation>
@@ -241,7 +247,6 @@
 <translation id="4696813013609194136">பெற்றோர் குறியீட்டின் மூலம் சாதனத்தை திறத்தல்</translation>
 <translation id="4731797938093519117">பெற்றோர் அணுகல்</translation>
 <translation id="4734965478015604180">கிடைமட்டம்</translation>
-<translation id="476166673298332917">சாதன நிர்வாகி உங்கள் உலாவல் செயல்பாட்டைக் கண்காணிக்கக்கூடும்.</translation>
 <translation id="4774338217796918551">நாளை <ph name="COME_BACK_TIME" />க்கு சாதனத்தை மீண்டும் பயன்படுத்தலாம்.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> க்கான கடவுச்சொல்</translation>
 <translation id="4778095205580009397">டெமோ அமர்வில் Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியாது.</translation>
@@ -349,7 +354,6 @@
 <translation id="6537270692134705506">திரையைப் படமெடு</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" />க்கு அலைபரப்புகிறது</translation>
 <translation id="6559976592393364813">நிர்வாகியைக் கேட்கவும்</translation>
-<translation id="6574601967010742428">உங்கள் செயல்பாடு சாதன நிர்வாகியால் கண்காணிக்கப்படலாம்.</translation>
 <translation id="6585808820553845416"><ph name="SESSION_TIME_REMAINING" /> இல் அமர்வு முடிந்துவிடும்.</translation>
 <translation id="6627638273713273709">தேடல்+Shift+K</translation>
 <translation id="6650933572246256093">புளூடூத் சாதனம் "<ph name="DEVICE_NAME" />" இணைப்பதற்கான அனுமதியை விரும்புகிறது. அந்தச் சாதனத்தில் இந்தக் கடவுச்சொல்லை உள்ளிடவும்: <ph name="PASSKEY" /></translation>
@@ -390,6 +394,7 @@
 <translation id="7222902781030499995">டைமரை நிறுத்து</translation>
 <translation id="7256634071279256947">பின்பக்க மைக்ரோஃபோன்</translation>
 <translation id="726276584504105859">திரைப் பிரிப்பைப் பயன்படுத்த, இங்கே இழுக்கவும்</translation>
+<translation id="7262906531272962081">நினைவூட்டலை உருவாக்கு</translation>
 <translation id="7303365578352795231">மற்றொரு சாதனத்தில் பதிலளிக்கப்படுகிறது.</translation>
 <translation id="7305884605064981971">EDGE</translation>
 <translation id="7348093485538360975">ஸ்கிரீன் கீபோர்ட்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index b45876f..a3f8402 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">రాత్రి కాంతి: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM కార్డ్ లాక్ అయింది</translation>
 <translation id="2653659639078652383">సమర్పించు</translation>
+<translation id="2658778018866295321">క్లిక్ చేసి, లాగండి</translation>
 <translation id="2700493154570097719">మీ కీబోర్డ్‌ని సెట్ చేయండి</translation>
 <translation id="2718395828230677721">రాత్రి కాంతి</translation>
 <translation id="2727977024730340865">తక్కువ-పవర్ గల ఛార్జర్‌కు ప్లగిన్ చేయబడింది. బ్యాటరీ ఛార్జింగ్ విశ్వసనీయంగా ఉండకపోవచ్చు.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">కనెక్ట్ అవుతోంది...</translation>
 <translation id="4379531060876907730">ఇవి మీ స్టైలస్ సాధనాలు</translation>
 <translation id="4389184120735010762">మీరు డాక్ చేసిన మాగ్నిఫైయర్‌ కోసం కీబోర్డ్ షార్ట్‌కట్‌ను నొక్కారు. మీరు దీన్ని ఆన్ చేయాలనుకుంటున్నారా?</translation>
+<translation id="4394049700291259645">నిలిపివేయి</translation>
 <translation id="4421231901400348175">రిమోట్ సహాయం విధానంలో మీ స్క్రీన్ నియంత్రణ <ph name="HELPER_NAME" />కి భాగస్వామ్యం చేయబడుతోంది.</translation>
 <translation id="4430019312045809116">వాల్యూమ్</translation>
 <translation id="4450893287417543264">మళ్లీ చూపవద్దు</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">తల్లి/తండ్రి కోడ్‌తో పరికరాన్ని అన్‌లాక్ చేయండి</translation>
 <translation id="4731797938093519117">తల్లి/తండ్రి యాక్సెస్</translation>
 <translation id="4734965478015604180">అడ్డంగా ఉంది</translation>
-<translation id="476166673298332917">పరికర నిర్వాహకులు మీ బ్రౌజింగ్ కార్యకలాపాన్ని పర్యవేక్షించవచ్చు.</translation>
 <translation id="4774338217796918551">రేపు <ph name="COME_BACK_TIME" />కి తిరిగి రండి.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> కోసం పాస్‌వర్డ్</translation>
 <translation id="4778095205580009397">Google అసిస్టెంట్ డెమో సెషన్‌లో అందుబాటులో లేదు.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">స్క్రీన్‌ని సంగ్రహించు</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" />కు ప్రసారం చేస్తున్నారు</translation>
 <translation id="6559976592393364813">నిర్వాహకుడిని అడగండి</translation>
-<translation id="6574601967010742428">మీ కార్యకలాపాన్ని పరికర నిర్వాహకులు పర్యవేక్షించవచ్చు.</translation>
 <translation id="6585808820553845416">సెషన్ <ph name="SESSION_TIME_REMAINING" />లో ముగుస్తుంది.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">బ్లూటూత్ పరికరం "<ph name="DEVICE_NAME" />" జత కావడానికి అనుమతి కోరుతోంది. దయచేసి ఆ పరికరంలో ఈ పాస్‌కీని నమోదు చేయండి: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index 1f45886..7a24b1e 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">แสงตอนกลางคืน: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">ซิมการ์ดถูกล็อก</translation>
 <translation id="2653659639078652383">ส่ง</translation>
+<translation id="2658778018866295321">คลิกแล้วลาก</translation>
 <translation id="2700493154570097719">ตั้งค่าแป้นพิมพ์</translation>
 <translation id="2718395828230677721">แสงตอนกลางคืน</translation>
 <translation id="2727977024730340865">เสียบอยู่กับที่ชาร์จพลังงานต่ำ การชาร์จแบตเตอรี่อาจไม่น่าเชื่อถือ</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">กำลังเชื่อมต่อ...</translation>
 <translation id="4379531060876907730">นี่คือเครื่องมือสไตลัส</translation>
 <translation id="4389184120735010762">คุณกดแป้นพิมพ์ลัดสำหรับแว่นขยายหน้าจอบางส่วน จะเปิดแว่นขยายไหม</translation>
+<translation id="4394049700291259645">ปิดการใช้งาน</translation>
 <translation id="4421231901400348175">กำลังแชร์การควบคุมหน้าจอกับ <ph name="HELPER_NAME" /> ผ่านความช่วยเหลือระยะไกล</translation>
 <translation id="4430019312045809116">ระดับเสียง</translation>
 <translation id="4450893287417543264">ไม่ต้องแสดงอีก</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">ปลดล็อกอุปกรณ์ด้วยรหัสของผู้ปกครอง</translation>
 <translation id="4731797938093519117">การเข้าถึงของผู้ปกครอง</translation>
 <translation id="4734965478015604180">แนวนอน</translation>
-<translation id="476166673298332917">ผู้ดูแลระบบของอุปกรณ์อาจตรวจสอบกิจกรรมการท่องเว็บของคุณ</translation>
 <translation id="4774338217796918551">ใช้ได้อีกครั้งพรุ่งนี้ เวลา <ph name="COME_BACK_TIME" /></translation>
 <translation id="4776917500594043016">รหัสผ่านของ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Assistant ไม่พร้อมใช้งานในเซสชันสาธิต</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">จับภาพหน้าจอ</translation>
 <translation id="6542521951477560771">แคสต์ไปที่<ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">ถามผู้ดูแลระบบ</translation>
-<translation id="6574601967010742428">ผู้ดูแลระบบของอุปกรณ์อาจมีสิทธิ์ตรวจสอบกิจกรรมของคุณได้</translation>
 <translation id="6585808820553845416">เซสชันจะสิ้นสุดใน <ph name="SESSION_TIME_REMAINING" /></translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">อุปกรณ์บลูทูธ "<ph name="DEVICE_NAME" />" ต้องการสิทธิ์ในการจับคู่ โปรดป้อนรหัสผ่านนี้บนอุปกรณ์นั้น: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index 6312711..b016ce0 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Gece Işığı: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM kart kilitli</translation>
 <translation id="2653659639078652383">Gönder</translation>
+<translation id="2658778018866295321">Tıkla ve sürükle</translation>
 <translation id="2700493154570097719">Klavyenizi ayarlayın</translation>
 <translation id="2718395828230677721">Gece Işığı</translation>
 <translation id="2727977024730340865">Düşük güçlü bir şarj cihazına takıldı. Şarj durumu güvenilir olmayabilir.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Bağlanıyor...</translation>
 <translation id="4379531060876907730">Bunlar ekran kalemi araçlarınızdır</translation>
 <translation id="4389184120735010762">Yerleştirilmiş büyüteç klavye kısayoluna bastınız. Bu özelliği açmak istiyor musunuz?</translation>
+<translation id="4394049700291259645">Devre dışı bırak</translation>
 <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>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Kilidi ebeveyn koduyla açın</translation>
 <translation id="4731797938093519117">Ebeveyn erişimi</translation>
 <translation id="4734965478015604180">Yatay</translation>
-<translation id="476166673298332917">Cihaz yöneticisi göz atma etkinliğinizi izleyebilir.</translation>
 <translation id="4774338217796918551">Saat <ph name="COME_BACK_TIME" /> olduğunda geri gelin.</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> için şifre</translation>
 <translation id="4778095205580009397">Google Asistan, demo oturumunda kullanılamaz.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Ekran görüntüsünü kaydet</translation>
 <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> alıcısına gönderiliyor</translation>
 <translation id="6559976592393364813">Yöneticiye sorun</translation>
-<translation id="6574601967010742428">Cihaz yöneticisi, etkinliğinizi izleyebilir.</translation>
 <translation id="6585808820553845416">Oturumun süresi <ph name="SESSION_TIME_REMAINING" /> içinde bitiyor.</translation>
 <translation id="6627638273713273709">Ara+Üst Karakter+K</translation>
 <translation id="6650933572246256093">"<ph name="DEVICE_NAME" />" adlı Bluetooth cihaz eşleme izni istiyor. Lütfen söz konusu cihazda bu parolayı girin: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 9b021e9..19bd8c5 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Нічний режим: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM-карту заблоковано</translation>
 <translation id="2653659639078652383">Надіслати</translation>
+<translation id="2658778018866295321">Натиснути й перетягнути</translation>
 <translation id="2700493154570097719">Вибрати клавіатуру</translation>
 <translation id="2718395828230677721">Нічний режим</translation>
 <translation id="2727977024730340865">Підключено до зарядного пристрою низької потужності. Акумулятор може заряджатися неналежним чином.</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">Підключення…</translation>
 <translation id="4379531060876907730">Це ваші інструменти стилуса</translation>
 <translation id="4389184120735010762">Ви натиснули комбінацію клавіш для закріпленої лупи. Увімкнути?</translation>
+<translation id="4394049700291259645">Вимкнути</translation>
 <translation id="4421231901400348175">Спільний доступ до екрана для користувача <ph name="HELPER_NAME" /> через віддалену допомогу.</translation>
 <translation id="4430019312045809116">Гучність</translation>
 <translation id="4450893287417543264">Більше не показувати</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">Введіть код доступу батьків</translation>
 <translation id="4731797938093519117">Батьківський доступ</translation>
 <translation id="4734965478015604180">Горизонтально</translation>
-<translation id="476166673298332917">Адміністратор пристрою може бачити, що ви робите в Інтернеті.</translation>
 <translation id="4774338217796918551">Поверніться завтра о <ph name="COME_BACK_TIME" />.</translation>
 <translation id="4776917500594043016">Пароль користувача  <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Google Асистент недоступний у демонстраційному сеансі.</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">Зробити знімок екрана</translation>
 <translation id="6542521951477560771">Трансляція на пристрій "<ph name="RECEIVER_NAME" />"</translation>
 <translation id="6559976592393364813">Зверніться до адміністратора</translation>
-<translation id="6574601967010742428">Адміністратор пристрою може відстежувати вашу активність.</translation>
 <translation id="6585808820553845416">Сеанс закінчиться через <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Search+Shift+K</translation>
 <translation id="6650933572246256093">Пристрою Bluetooth "<ph name="DEVICE_NAME" />" потрібен дозвіл на підключення. Введіть на пристрої цей ключ доступу: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index d21884a..92d3c72 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">Ánh sáng đêm: <ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">Thẻ SIM bị khóa</translation>
 <translation id="2653659639078652383">Gửi</translation>
+<translation id="2658778018866295321">Nhấp và kéo</translation>
 <translation id="2700493154570097719">Đặt bàn phím</translation>
 <translation id="2718395828230677721">Ánh sáng đêm</translation>
 <translation id="2727977024730340865">Được cắm vào bộ sạc công suất thấp. Việc sạc pin có thể không được đảm bảo.</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">Đang kết nối…</translation>
 <translation id="4379531060876907730">Đây là các công cụ bút dành cho bút cảm ứng</translation>
 <translation id="4389184120735010762">Bạn đã nhấn phím tắt của tính năng phóng to ở vị trí cố định. Bạn có muốn bật tính năng này không?</translation>
+<translation id="4394049700291259645">Vô hiệu hóa</translation>
 <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>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">Mở khóa thiết bị bằng mã dành cho cha mẹ</translation>
 <translation id="4731797938093519117">Quyền truy cập của cha mẹ</translation>
 <translation id="4734965478015604180">Ngang</translation>
-<translation id="476166673298332917">Quản trị viên thiết bị có thể theo dõi hoạt động duyệt web của bạn.</translation>
 <translation id="4774338217796918551">Hãy quay lại lúc <ph name="COME_BACK_TIME" /> ngày mai.</translation>
 <translation id="4776917500594043016">Mật khẩu cho <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="4778095205580009397">Bạn không thể sử dụng Trợ lý Google trong phiên minh họa.</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">Chụp màn hình</translation>
 <translation id="6542521951477560771">Đang truyền tới <ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">Hỏi quản trị viên</translation>
-<translation id="6574601967010742428">Quản trị viên thiết bị có thể theo dõi hoạt động của bạn.</translation>
 <translation id="6585808820553845416">Phiên sẽ kết thúc sau <ph name="SESSION_TIME_REMAINING" />.</translation>
 <translation id="6627638273713273709">Tìm kiếm+Shift+K</translation>
 <translation id="6650933572246256093">Thiết bị Bluetooth "<ph name="DEVICE_NAME" />" muốn được phép ghép nối. Vui lòng nhập mã xác nhận này trên thiết bị đó: <ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index a35c10e..ed90b8c 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">夜间模式:<ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM 卡已被锁定</translation>
 <translation id="2653659639078652383">提交</translation>
+<translation id="2658778018866295321">点击并拖动</translation>
 <translation id="2700493154570097719">设置键盘</translation>
 <translation id="2718395828230677721">夜间模式</translation>
 <translation id="2727977024730340865">已插入低功率充电器;可能无法保证充电成功。</translation>
@@ -228,6 +229,7 @@
 <translation id="4378551569595875038">正在连接…</translation>
 <translation id="4379531060876907730">这些是您的触控笔工具</translation>
 <translation id="4389184120735010762">您按下了停靠放大镜的键盘快捷键。要开启这项功能吗?</translation>
+<translation id="4394049700291259645">停用</translation>
 <translation id="4421231901400348175">正在通过远程协助与<ph name="HELPER_NAME" />共享您屏幕的控制权限。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4450893287417543264">不再显示</translation>
@@ -247,7 +249,6 @@
 <translation id="4696813013609194136">使用家长访问代码解锁设备</translation>
 <translation id="4731797938093519117">家长访问</translation>
 <translation id="4734965478015604180">横向</translation>
-<translation id="476166673298332917">此设备的管理员可能会监控您的浏览活动。</translation>
 <translation id="4774338217796918551">您需要等到明天<ph name="COME_BACK_TIME" /> 才能再次使用此设备。</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密码</translation>
 <translation id="4778095205580009397">无法在演示会话中使用 Google 助理。</translation>
@@ -355,7 +356,6 @@
 <translation id="6537270692134705506">获取屏幕截图</translation>
 <translation id="6542521951477560771">正在投射到<ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">询问您的管理员</translation>
-<translation id="6574601967010742428">设备管理员或许能监控您的活动。</translation>
 <translation id="6585808820553845416">会话将在<ph name="SESSION_TIME_REMAINING" />后结束。</translation>
 <translation id="6627638273713273709">搜索键+Shift+K</translation>
 <translation id="6650933572246256093">蓝牙设备“<ph name="DEVICE_NAME" />”需要配对许可。请在该设备上输入以下配对密钥:<ph name="PASSKEY" /></translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index bf91c8d..a48ceb8 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -112,6 +112,7 @@
 <translation id="2597972630681408282">夜燈功能:<ph name="NIGHT_LIGHT_STATUS" /></translation>
 <translation id="2617342710774726426">SIM 卡已鎖定</translation>
 <translation id="2653659639078652383">提交</translation>
+<translation id="2658778018866295321">按住並拖曳</translation>
 <translation id="2700493154570097719">設定鍵盤</translation>
 <translation id="2718395828230677721">夜燈</translation>
 <translation id="2727977024730340865">使用低功率充電器,可能導致充電狀態不穩定。</translation>
@@ -227,6 +228,7 @@
 <translation id="4378551569595875038">連線中…</translation>
 <translation id="4379531060876907730">這些是可用的觸控筆工具</translation>
 <translation id="4389184120735010762">你按下了停駐放大鏡的鍵盤快速鍵。確定要啟用這項功能嗎?</translation>
+<translation id="4394049700291259645">停用</translation>
 <translation id="4421231901400348175">透過遠端協助與<ph name="HELPER_NAME" />分享螢幕控制功能。</translation>
 <translation id="4430019312045809116">音量</translation>
 <translation id="4450893287417543264">不要再顯示</translation>
@@ -246,7 +248,6 @@
 <translation id="4696813013609194136">使用家長存取碼將裝置解鎖</translation>
 <translation id="4731797938093519117">家長存取</translation>
 <translation id="4734965478015604180">橫向</translation>
-<translation id="476166673298332917">裝置管理員可能會監控你的瀏覽活動。</translation>
 <translation id="4774338217796918551"><ph name="COME_BACK_TIME" /> 裝置就會解除鎖定。</translation>
 <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密碼</translation>
 <translation id="4778095205580009397">Google 助理不適用於示範工作階段。</translation>
@@ -354,7 +355,6 @@
 <translation id="6537270692134705506">擷取整個畫面</translation>
 <translation id="6542521951477560771">正在投放至<ph name="RECEIVER_NAME" /></translation>
 <translation id="6559976592393364813">詢問系統管理員</translation>
-<translation id="6574601967010742428">裝置管理員或許可監控你的活動。</translation>
 <translation id="6585808820553845416">這個工作階段將在 <ph name="SESSION_TIME_REMAINING" />後結束。</translation>
 <translation id="6627638273713273709">搜尋鍵 + Shift + K 鍵</translation>
 <translation id="6650933572246256093">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限,請在裝置上輸入此密碼金鑰:<ph name="PASSKEY" /></translation>
diff --git a/ash/system/accessibility/accessibility_feature_pod_controller_unittest.cc b/ash/system/accessibility/accessibility_feature_pod_controller_unittest.cc
index 3d5b83b..55188a7 100644
--- a/ash/system/accessibility/accessibility_feature_pod_controller_unittest.cc
+++ b/ash/system/accessibility/accessibility_feature_pod_controller_unittest.cc
@@ -58,14 +58,14 @@
 TEST_F(AccessibilityFeaturePodControllerTest, ButtonVisibilityNotLoggedIn) {
   SetUpButton();
   // If not logged in, it should be always visible.
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
 }
 
 TEST_F(AccessibilityFeaturePodControllerTest, ButtonVisibilityLoggedIn) {
   CreateUserSessions(1);
   SetUpButton();
   // If logged in, it's not visible by default.
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/accessibility/autoclick_menu_view.cc b/ash/system/accessibility/autoclick_menu_view.cc
index 1f512ac..23651c9 100644
--- a/ash/system/accessibility/autoclick_menu_view.cc
+++ b/ash/system/accessibility/autoclick_menu_view.cc
@@ -85,7 +85,7 @@
   }
 
   void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
-    if (!enabled())
+    if (!GetEnabled())
       return;
     TopShortcutButton::GetAccessibleNodeData(node_data);
     node_data->role = ax::mojom::Role::kToggleButton;
diff --git a/ash/system/accessibility/dictation_button_tray_unittest.cc b/ash/system/accessibility/dictation_button_tray_unittest.cc
index 5432a12..fa92548 100644
--- a/ash/system/accessibility/dictation_button_tray_unittest.cc
+++ b/ash/system/accessibility/dictation_button_tray_unittest.cc
@@ -82,7 +82,7 @@
   controller->SetDictationAcceleratorDialogAccepted();
   controller->SetDictationEnabled(true);
   EXPECT_TRUE(GetImageView(GetTray()));
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
 }
 
 // Test that clicking the button activates dictation.
diff --git a/ash/system/accessibility/select_to_speak_tray_unittest.cc b/ash/system/accessibility/select_to_speak_tray_unittest.cc
index 39ee46d..90ea036 100644
--- a/ash/system/accessibility/select_to_speak_tray_unittest.cc
+++ b/ash/system/accessibility/select_to_speak_tray_unittest.cc
@@ -48,7 +48,7 @@
 
  protected:
   // Returns true if the Select to Speak tray is visible.
-  bool IsVisible() { return GetTray()->visible(); }
+  bool IsVisible() { return GetTray()->GetVisible(); }
 
   // Returns true if the background color of the tray is active.
   bool IsTrayBackgroundActive() { return GetTray()->is_active(); }
diff --git a/ash/system/ime/ime_feature_pod_controller_unittest.cc b/ash/system/ime/ime_feature_pod_controller_unittest.cc
index 27fc65a..8a30350 100644
--- a/ash/system/ime/ime_feature_pod_controller_unittest.cc
+++ b/ash/system/ime/ime_feature_pod_controller_unittest.cc
@@ -94,11 +94,11 @@
   SetUpButton();
 
   SetActiveIMECount(0);
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
   SetActiveIMECount(1);
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
   SetActiveIMECount(2);
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
 }
 
 TEST_F(IMEFeaturePodControllerTest, ButtonVisibilityImeMenuActive) {
@@ -106,11 +106,11 @@
   Shell::Get()->ime_controller()->ShowImeMenuOnShelf(true);
 
   SetActiveIMECount(0);
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
   SetActiveIMECount(1);
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
   SetActiveIMECount(2);
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
 }
 
 TEST_F(IMEFeaturePodControllerTest, ButtonVisibilityPolicy) {
@@ -119,11 +119,11 @@
   Shell::Get()->ime_controller()->SetImesManagedByPolicy(true);
 
   SetActiveIMECount(0);
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
   SetActiveIMECount(1);
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
   SetActiveIMECount(2);
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/ime_menu/ime_menu_tray_unittest.cc b/ash/system/ime_menu/ime_menu_tray_unittest.cc
index fad54fc..96ffe1f 100644
--- a/ash/system/ime_menu/ime_menu_tray_unittest.cc
+++ b/ash/system/ime_menu/ime_menu_tray_unittest.cc
@@ -52,7 +52,7 @@
 
  protected:
   // Returns true if the IME menu tray is visible.
-  bool IsVisible() { return GetTray()->visible(); }
+  bool IsVisible() { return GetTray()->GetVisible(); }
 
   // Returns the label text of the tray.
   const base::string16& GetTrayText() { return GetTray()->label_->text(); }
diff --git a/ash/system/locale/locale_feature_pod_controller_unittest.cc b/ash/system/locale/locale_feature_pod_controller_unittest.cc
index 60ed980..18642d3 100644
--- a/ash/system/locale/locale_feature_pod_controller_unittest.cc
+++ b/ash/system/locale/locale_feature_pod_controller_unittest.cc
@@ -56,13 +56,13 @@
   // The button is invisible if the locale list is unset.
   std::unique_ptr<FeaturePodButton> button;
   button.reset(controller_->CreateButton());
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 
   // The button is invisible if the locale list is empty.
   Shell::Get()->system_tray_model()->SetLocaleList(
       std::vector<mojom::LocaleInfoPtr>(), kDefaultLocaleIsoCode);
   button.reset(controller_->CreateButton());
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 
   // The button is visible if the locale list is non-empty.
   std::vector<mojom::LocaleInfoPtr> locale_list;
@@ -72,7 +72,7 @@
   Shell::Get()->system_tray_model()->SetLocaleList(std::move(locale_list),
                                                    kDefaultLocaleIsoCode);
   button.reset(controller_->CreateButton());
-  EXPECT_TRUE(button->visible());
+  EXPECT_TRUE(button->GetVisible());
 }
 
 }  // namespace
diff --git a/ash/system/message_center/notifier_settings_view.cc b/ash/system/message_center/notifier_settings_view.cc
index 98f730e..1af99dc 100644
--- a/ash/system/message_center/notifier_settings_view.cc
+++ b/ash/system/message_center/notifier_settings_view.cc
@@ -151,7 +151,7 @@
   contents_->SetBounds(0, y, contents_width, contents_height);
 
   // Since normally we don't show |disabled_filter_|, initialize it lazily.
-  if (!contents_->enabled()) {
+  if (!contents_->GetEnabled()) {
     if (!disabled_filter_)
       CreateDisabledFilter();
     disabled_filter_->SetVisible(true);
@@ -162,8 +162,8 @@
     disabled_filter_->SetVisible(false);
   }
 
-  SetFocusBehavior(contents_->enabled() ? FocusBehavior::ALWAYS
-                                        : FocusBehavior::NEVER);
+  SetFocusBehavior(contents_->GetEnabled() ? FocusBehavior::ALWAYS
+                                           : FocusBehavior::NEVER);
 }
 
 gfx::Size NotifierButtonWrapperView::CalculatePreferredSize() const {
@@ -381,7 +381,7 @@
   layout->AddView(icon_view_);
   layout->AddView(name_view_);
 
-  if (!enabled()) {
+  if (!GetEnabled()) {
     views::ImageView* policy_enforced_icon = new views::ImageView();
     policy_enforced_icon->SetImage(gfx::CreateVectorIcon(
         kSystemMenuBusinessIcon, kEntryIconSize, kUnifiedMenuIconColor));
@@ -578,7 +578,7 @@
   gfx::Size header_size = header_view_->GetPreferredSize();
   gfx::Size content_size = scroller_->contents()->GetPreferredSize();
   int no_notifiers_height = 0;
-  if (no_notifiers_view_->visible())
+  if (no_notifiers_view_->GetVisible())
     no_notifiers_height = no_notifiers_view_->GetPreferredSize().height();
   return gfx::Size(
       std::max(header_size.width(), content_size.width()),
diff --git a/ash/system/message_center/notifier_settings_view_unittest.cc b/ash/system/message_center/notifier_settings_view_unittest.cc
index 027155d..18eb027 100644
--- a/ash/system/message_center/notifier_settings_view_unittest.cc
+++ b/ash/system/message_center/notifier_settings_view_unittest.cc
@@ -136,15 +136,15 @@
   InitView();
   // Wait for mojo.
   base::RunLoop().RunUntilIdle();
-  EXPECT_FALSE(GetView()->no_notifiers_view_->visible());
-  EXPECT_TRUE(GetView()->top_label_->visible());
+  EXPECT_FALSE(GetView()->no_notifiers_view_->GetVisible());
+  EXPECT_TRUE(GetView()->top_label_->GetVisible());
 
   SetNoNotifiers(true);
   InitView();
   // Wait for mojo.
   base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(GetView()->no_notifiers_view_->visible());
-  EXPECT_FALSE(GetView()->top_label_->visible());
+  EXPECT_TRUE(GetView()->no_notifiers_view_->GetVisible());
+  EXPECT_FALSE(GetView()->top_label_->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc
index 28b5eb25..cd72818 100644
--- a/ash/system/message_center/unified_message_center_view.cc
+++ b/ash/system/message_center/unified_message_center_view.cc
@@ -337,7 +337,7 @@
 }
 
 void UnifiedMessageCenterView::OnNotificationSlidOut() {
-  if (stacking_counter_->visible() &&
+  if (stacking_counter_->GetVisible() &&
       message_list_view_->GetTotalNotificationCount() <= 1) {
     StartHideStackingBarAnimation();
   } else if (!message_list_view_->GetTotalNotificationCount()) {
@@ -375,7 +375,7 @@
 void UnifiedMessageCenterView::Layout() {
   stacking_counter_->SetCount(message_list_view_->GetTotalNotificationCount(),
                               GetStackedNotificationCount());
-  if (stacking_counter_->visible()) {
+  if (stacking_counter_->GetVisible()) {
     gfx::Rect counter_bounds(GetContentsBounds());
 
     int stacking_counter_height = GetStackingNotificationCounterHeight();
@@ -403,7 +403,7 @@
 gfx::Size UnifiedMessageCenterView::CalculatePreferredSize() const {
   gfx::Size preferred_size = scroller_->GetPreferredSize();
 
-  if (stacking_counter_->visible()) {
+  if (stacking_counter_->GetVisible()) {
     int bar_height = GetStackingNotificationCounterHeight();
     if (animation_state_ ==
         UnifiedMessageCenterAnimationState::HIDE_STACKING_BAR)
@@ -541,7 +541,7 @@
 
   // When notification list went invisible, the last notification should be
   // targeted next time.
-  if (!visible()) {
+  if (!GetVisible()) {
     model_->set_notification_target_mode(
         UnifiedSystemTrayModel::NotificationTargetMode::LAST_NOTIFICATION);
     NotifyRectBelowScroll();
@@ -551,7 +551,7 @@
 void UnifiedMessageCenterView::ScrollToTarget() {
   // Following logic doesn't work when the view is invisible, because it uses
   // the height of |scroller_|.
-  if (!visible())
+  if (!GetVisible())
     return;
 
   auto target_mode = model_->notification_target_mode();
@@ -619,7 +619,7 @@
 
 void UnifiedMessageCenterView::NotifyRectBelowScroll() {
   // If the message center is hidden, make sure rounded corners are not drawn.
-  if (!visible()) {
+  if (!GetVisible()) {
     SetNotificationRectBelowScroll(gfx::Rect());
     return;
   }
diff --git a/ash/system/message_center/unified_message_center_view_unittest.cc b/ash/system/message_center/unified_message_center_view_unittest.cc
index 27998d9..eeedb18 100644
--- a/ash/system/message_center/unified_message_center_view_unittest.cc
+++ b/ash/system/message_center/unified_message_center_view_unittest.cc
@@ -89,8 +89,8 @@
   void OnViewPreferredSizeChanged(views::View* view) override {
     if (view->GetPreferredSize() == view->size())
       return;
-    view->SetBoundsRect(view->visible() ? gfx::Rect(view->GetPreferredSize())
-                                        : gfx::Rect());
+    view->SetBoundsRect(view->GetVisible() ? gfx::Rect(view->GetPreferredSize())
+                                           : gfx::Rect());
     view->Layout();
     ++size_changed_count_;
   }
@@ -219,10 +219,10 @@
 
 TEST_F(UnifiedMessageCenterViewTest, AddAndRemoveNotification) {
   CreateMessageCenterView();
-  EXPECT_FALSE(message_center_view()->visible());
+  EXPECT_FALSE(message_center_view()->GetVisible());
 
   auto id0 = AddNotification();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
   EXPECT_EQ(3 * kUnifiedNotificationCenterSpacing,
             GetScrollerContents()->height() -
                 GetScroller()->GetVisibleRect().bottom());
@@ -237,12 +237,12 @@
   collapse_animation->SetCurrentValue(0.5);
   message_center_view()->AnimationProgressed(collapse_animation);
   AnimateMessageListToMiddle();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // The message center is now hidden after all animations complete.
   collapse_animation->End();
   AnimateMessageListToEnd();
-  EXPECT_FALSE(message_center_view()->visible());
+  EXPECT_FALSE(message_center_view()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, RemoveNotificationAtTail) {
@@ -250,7 +250,7 @@
   for (int i = 0; i < 10; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // The message center should autoscroll to the bottom of the list (with some
   // padding) after adding a new notification.
@@ -289,7 +289,7 @@
   for (size_t i = 0; i < 10; ++i)
     ids.push_back(AddNotification());
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
@@ -298,7 +298,7 @@
 
   MessageCenter::Get()->RemoveNotification(ids.back(), true /* by_user */);
   AnimateMessageListUntilIdle();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
   EXPECT_GT(previous_contents_height, GetScrollerContents()->height());
   EXPECT_GT(previous_list_height, GetMessageListView()->height());
 }
@@ -306,14 +306,14 @@
 TEST_F(UnifiedMessageCenterViewTest, InsufficientHeight) {
   CreateMessageCenterView();
   AddNotification();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   message_center_view()->SetAvailableHeight(kUnifiedNotificationMinimumHeight -
                                             1);
-  EXPECT_FALSE(message_center_view()->visible());
+  EXPECT_FALSE(message_center_view()->GetVisible());
 
   message_center_view()->SetAvailableHeight(kUnifiedNotificationMinimumHeight);
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, NotVisibleWhenLocked) {
@@ -331,7 +331,7 @@
   BlockUserSession(BLOCKED_BY_LOCK_SCREEN);
   CreateMessageCenterView();
 
-  EXPECT_FALSE(message_center_view()->visible());
+  EXPECT_FALSE(message_center_view()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, VisibleWhenLocked) {
@@ -354,14 +354,14 @@
   BlockUserSession(BLOCKED_BY_LOCK_SCREEN);
   CreateMessageCenterView();
 
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, ClearAllPressed) {
   AddNotification();
   AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // ScrollView fills MessageCenterView.
   EXPECT_EQ(message_center_view()->bounds(), GetScroller()->bounds());
@@ -383,14 +383,14 @@
   // view becomes invisible.
   message_center_view()->ButtonPressed(nullptr, DummyEvent());
   AnimateMessageListUntilIdle();
-  EXPECT_FALSE(message_center_view()->visible());
+  EXPECT_FALSE(message_center_view()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, InitialPosition) {
   AddNotification();
   AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is not maxed out.
   EXPECT_LT(GetMessageListView()->bounds().height(),
@@ -405,7 +405,7 @@
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
@@ -420,7 +420,7 @@
   AddNotification();
   AddNotification();
   CreateMessageCenterView(100 /* max_height */);
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is shorter than the notification.
   gfx::Rect message_view_bounds = GetMessageViewVisibleBounds(1);
@@ -435,7 +435,7 @@
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
@@ -466,13 +466,13 @@
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
 
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
   EXPECT_EQ(0, GetStackingCounter()->bounds().y());
   EXPECT_EQ(GetStackingCounter()->bounds().bottom(),
             GetScroller()->bounds().y());
@@ -481,7 +481,7 @@
   GetScroller()->ScrollToPosition(GetScrollBar(), 0);
   message_center_view()->OnMessageCenterScrolled();
 
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
   EXPECT_EQ(0, GetScroller()->bounds().y());
 }
 
@@ -490,7 +490,7 @@
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
@@ -499,7 +499,7 @@
   // Scroll to the top, making the counter invisbile.
   GetScroller()->ScrollToPosition(GetScrollBar(), 0);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
 
   gfx::Rect previous_bounds = GetMessageViewVisibleBounds(2);
 
@@ -508,7 +508,7 @@
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
   message_center_view()->OnMessageCenterScrolled();
 
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
   // The offset change matches with the scroll amount plus the stacking bar
   // height.
   EXPECT_EQ(
@@ -518,7 +518,7 @@
 
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount - 1);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, StackingCounterRemovedWithNotifications) {
@@ -526,18 +526,18 @@
   for (size_t i = 0; i < 6; ++i)
     ids.push_back(AddNotification());
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
 
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
   for (size_t i = 0; i < 5; ++i) {
     MessageCenter::Get()->RemoveNotification(ids[i], true /* by_user */);
     AnimateMessageListUntilIdle();
   }
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest, RedesignedStackingCounterLayout) {
@@ -548,24 +548,24 @@
 
   // MessageCenterView is maxed out.
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
 
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
   EXPECT_EQ(0, GetStackingCounter()->bounds().y());
   EXPECT_EQ(GetStackingCounter()->bounds().bottom(),
             GetScroller()->bounds().y());
-  EXPECT_TRUE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 
   // Scroll to the top, making the counter label invisible.
   GetScroller()->ScrollToPosition(GetScrollBar(), 0);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_TRUE(GetStackingCounter()->visible());
-  EXPECT_FALSE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
+  EXPECT_FALSE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest,
@@ -575,9 +575,9 @@
   for (size_t i = 0; i < 10; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
-  EXPECT_TRUE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
@@ -586,9 +586,9 @@
   // Scroll to the top, making the counter label invisible.
   GetScroller()->ScrollToPosition(GetScrollBar(), 0);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_TRUE(GetStackingCounter()->visible());
-  EXPECT_FALSE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
+  EXPECT_FALSE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 
   gfx::Rect previous_bounds = GetMessageViewVisibleBounds(2);
 
@@ -597,7 +597,7 @@
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
   message_center_view()->OnMessageCenterScrolled();
 
-  EXPECT_TRUE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterLabel()->GetVisible());
   // The offset change matches with the scroll amount.
   EXPECT_EQ(previous_bounds - gfx::Vector2d(0, scroll_amount),
             GetMessageViewVisibleBounds(2));
@@ -606,9 +606,9 @@
   // counter label invisible again.
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount - 2);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_TRUE(GetStackingCounter()->visible());
-  EXPECT_FALSE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
+  EXPECT_FALSE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest,
@@ -619,21 +619,21 @@
   for (size_t i = 0; i < 6; ++i)
     ids.push_back(AddNotification());
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
 
   // Dismiss until there are 2 notifications. The bar should still be visible.
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
   for (size_t i = 0; i < 4; ++i) {
     MessageCenter::Get()->RemoveNotification(ids[i], true /* by_user */);
     AnimateMessageListUntilIdle();
   }
-  EXPECT_TRUE(GetStackingCounter()->visible());
-  EXPECT_FALSE(GetStackingCounterLabel()->visible());
-  EXPECT_TRUE(GetStackingCounterClearAllButton()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
+  EXPECT_FALSE(GetStackingCounterLabel()->GetVisible());
+  EXPECT_TRUE(GetStackingCounterClearAllButton()->GetVisible());
 
   // The MessageCenterView should be tall enough to contain the bar, two
   // notifications, and extra padding.
@@ -645,24 +645,24 @@
   // Dismiss until there is only 1 notification left. The bar should be
   // hidden after an animation.
   MessageCenter::Get()->RemoveNotification(ids[4], true /* by_user */);
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
 
   // The HIDE_STACKING_BAR animation starts after the notification is slid out.
   AnimateMessageListToEnd();
   auto* hide_animation = GetMessageCenterAnimation();
   EXPECT_TRUE(hide_animation->is_animating());
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
 
   // Animate to middle. The bar should still be visible.
   AnimateMessageListToMiddle();
   hide_animation->SetCurrentValue(0.5);
   message_center_view()->AnimationProgressed(hide_animation);
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
 
   // Animate to end. The bar should now be hidden.
   AnimateMessageListToEnd();
   hide_animation->End();
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
 }
 
 TEST_F(UnifiedMessageCenterViewTest,
@@ -677,13 +677,13 @@
   model()->SetTargetNotification(id);
 
   CreateMessageCenterView();
-  EXPECT_FALSE(GetStackingCounterLabel()->visible());
+  EXPECT_FALSE(GetStackingCounterLabel()->GetVisible());
 
   // Scroll past one notification to show the stacking bar.
   int scroll_amount = GetMessageViewVisibleBounds(0).height() + 1;
   GetScroller()->ScrollToPosition(GetScrollBar(), scroll_amount);
   message_center_view()->OnMessageCenterScrolled();
-  EXPECT_TRUE(GetStackingCounterLabel()->visible());
+  EXPECT_TRUE(GetStackingCounterLabel()->GetVisible());
   int label_width = GetStackingCounterLabel()->bounds().width();
   EXPECT_GT(label_width, 0);
 
@@ -699,7 +699,7 @@
   for (size_t i = 0; i < 6; ++i)
     AddNotification();
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   // MessageCenterView is maxed out.
   EXPECT_GT(GetMessageListView()->bounds().height(),
@@ -722,7 +722,7 @@
   model()->SetTargetNotification(ids[0]);
 
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
@@ -742,7 +742,7 @@
   model()->SetTargetNotification(ids[8]);
 
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
@@ -761,7 +761,7 @@
   model()->SetTargetNotification(ids[9]);
 
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
@@ -779,7 +779,7 @@
   model()->SetTargetNotification("INVALID_ID");
 
   CreateMessageCenterView();
-  EXPECT_TRUE(message_center_view()->visible());
+  EXPECT_TRUE(message_center_view()->GetVisible());
 
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
@@ -833,19 +833,19 @@
   // and show the stacking counter.
   EXPECT_GT(GetMessageListView()->bounds().height(),
             message_center_view()->bounds().height());
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
 
   // Advancing focus causes list to scroll to the top, which hides the counter.
   auto* message_view =
       ToggleFocusToMessageView(0 /* index */, false /* reverse */);
   EXPECT_EQ(first_notification_id, message_view->notification_id());
-  EXPECT_FALSE(GetStackingCounter()->visible());
+  EXPECT_FALSE(GetStackingCounter()->GetVisible());
 
   // Reversing the focus more scrolls the list to the bottom, reshowing the
   // counter.
   message_view = ToggleFocusToMessageView(7 /* index */, false /* reverse */);
   EXPECT_EQ(last_notification_id, message_view->notification_id());
-  EXPECT_TRUE(GetStackingCounter()->visible());
+  EXPECT_TRUE(GetStackingCounter()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/network/network_state_list_detailed_view.cc b/ash/system/network/network_state_list_detailed_view.cc
index 9612db2..ec69d3b 100644
--- a/ash/system/network/network_state_list_detailed_view.cc
+++ b/ash/system/network/network_state_list_detailed_view.cc
@@ -140,7 +140,7 @@
     gfx::Size max_size(GetMaxChildSize(host));
     // Center each child view within |max_size|.
     for (auto* child : host->children()) {
-      if (!child->visible())
+      if (!child->GetVisible())
         continue;
       gfx::Size child_size = child->GetPreferredSize();
       gfx::Point origin;
@@ -163,7 +163,7 @@
   gfx::Size GetMaxChildSize(const views::View* host) const {
     gfx::Size max_size;
     for (const auto* child : host->children()) {
-      if (child->visible())
+      if (child->GetVisible())
         max_size.SetToMax(child->GetPreferredSize());
     }
     return max_size;
diff --git a/ash/system/network/vpn_feature_pod_controller.cc b/ash/system/network/vpn_feature_pod_controller.cc
index bee2435..3a98617 100644
--- a/ash/system/network/vpn_feature_pod_controller.cc
+++ b/ash/system/network/vpn_feature_pod_controller.cc
@@ -64,7 +64,7 @@
     return;
 
   button_->SetVisible(vpn_util::IsVPNVisibleInSystemTray());
-  if (!button_->visible())
+  if (!button_->GetVisible())
     return;
 
   button_->SetSubLabel(l10n_util::GetStringUTF16(
diff --git a/ash/system/overview/overview_button_tray_unittest.cc b/ash/system/overview/overview_button_tray_unittest.cc
index 7ae6e3c..7e65896 100644
--- a/ash/system/overview/overview_button_tray_unittest.cc
+++ b/ash/system/overview/overview_button_tray_unittest.cc
@@ -109,12 +109,12 @@
 // OverviewButtonTray should only be visible when TabletMode is enabled.
 // By default the system should not have TabletMode enabled.
 TEST_F(OverviewButtonTrayTest, TabletModeObserverOnTabletModeToggled) {
-  ASSERT_FALSE(GetTray()->visible());
+  ASSERT_FALSE(GetTray()->GetVisible());
   TabletModeControllerTestApi().EnterTabletMode();
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
 
   TabletModeControllerTestApi().LeaveTabletMode();
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 // Tests that activating this control brings up window selection mode.
@@ -208,16 +208,16 @@
 TEST_F(OverviewButtonTrayTest, DisplaysOnBothDisplays) {
   UpdateDisplay("400x400,200x200");
   base::RunLoop().RunUntilIdle();
-  EXPECT_FALSE(GetTray()->visible());
-  EXPECT_FALSE(GetSecondaryTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
+  EXPECT_FALSE(GetSecondaryTray()->GetVisible());
   TabletModeControllerTestApi().EnterTabletMode();
   base::RunLoop().RunUntilIdle();
   // DisplayConfigurationObserver enables mirror mode when tablet mode is
   // enabled. Disable mirror mode to test tablet mode with multiple displays.
   display_manager()->SetMirrorMode(display::MirrorMode::kOff, base::nullopt);
   base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(GetTray()->visible());
-  EXPECT_TRUE(GetSecondaryTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
+  EXPECT_TRUE(GetSecondaryTray()->GetVisible());
 }
 
 // Tests if Maximize Mode is enabled before a secondary display is attached
@@ -229,7 +229,7 @@
   TabletModeControllerTestApi().EnterTabletMode();
   UpdateDisplay("400x400,200x200");
   base::RunLoop().RunUntilIdle();
-  EXPECT_TRUE(GetSecondaryTray()->visible());
+  EXPECT_TRUE(GetSecondaryTray()->GetVisible());
 }
 
 // Tests that the tray loses visibility when a user logs out, and that it
@@ -238,16 +238,16 @@
   TabletModeControllerTestApi().EnterTabletMode();
   ClearLogin();
   Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::NOT_LOGGED_IN);
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
   CreateUserSessions(1);
   Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::USER);
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
   SetUserAddingScreenRunning(true);
   NotifySessionStateChanged();
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
   SetUserAddingScreenRunning(false);
   NotifySessionStateChanged();
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
 }
 
 // Tests that the tray only renders as active while selection is ongoing. Any
@@ -272,9 +272,9 @@
 // Test that a hide animation can complete.
 TEST_F(OverviewButtonTrayTest, HideAnimationAlwaysCompletes) {
   TabletModeControllerTestApi().EnterTabletMode();
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
   GetTray()->SetVisible(false);
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 // Test that when a hide animation is aborted via deletion, the
@@ -295,7 +295,7 @@
       ::wm::RecreateLayers(root_window);
   old_layer_tree_owner.reset();
 
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 // Tests that the overview button becomes visible when the user enters
@@ -313,9 +313,9 @@
 
   ASSERT_TRUE(Shell::IsSystemModalWindowOpen());
   TabletModeControllerTestApi().EnterTabletMode();
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
   TabletModeControllerTestApi().LeaveTabletMode();
-  EXPECT_FALSE(GetTray()->visible());
+  EXPECT_FALSE(GetTray()->GetVisible());
 }
 
 // Verify that quick switch works properly when one of the windows has a
@@ -378,11 +378,11 @@
 TEST_F(OverviewButtonTrayTest, LeaveTabletModeBecauseExternalMouse) {
   TabletModeControllerTestApi().OpenLidToAngle(315.0f);
   EXPECT_TRUE(TabletModeControllerTestApi().IsTabletModeStarted());
-  ASSERT_TRUE(GetTray()->visible());
+  ASSERT_TRUE(GetTray()->GetVisible());
 
   TabletModeControllerTestApi().AttachExternalMouse();
   EXPECT_FALSE(TabletModeControllerTestApi().IsTabletModeStarted());
-  EXPECT_TRUE(GetTray()->visible());
+  EXPECT_TRUE(GetTray()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/palette/palette_tray.cc b/ash/system/palette/palette_tray.cc
index 4331e31..24fd27b 100644
--- a/ash/system/palette/palette_tray.cc
+++ b/ash/system/palette/palette_tray.cc
@@ -318,7 +318,7 @@
     return;
 
   // Don't do anything if the palette tray is not shown.
-  if (!visible())
+  if (!GetVisible())
     return;
 
   // Auto show/hide the palette if allowed by the user.
diff --git a/ash/system/palette/palette_tray_unittest.cc b/ash/system/palette/palette_tray_unittest.cc
index f2d6953..4ac89d93 100644
--- a/ash/system/palette/palette_tray_unittest.cc
+++ b/ash/system/palette/palette_tray_unittest.cc
@@ -101,13 +101,13 @@
 // Verify the palette tray button exists and but is not visible initially.
 TEST_F(PaletteTrayTest, PaletteTrayIsInvisible) {
   ASSERT_TRUE(palette_tray_);
-  EXPECT_FALSE(palette_tray_->visible());
+  EXPECT_FALSE(palette_tray_->GetVisible());
 }
 
 // Verify if the has seen stylus pref is not set initially, the palette tray
 // should become visible after seeing a stylus event.
 TEST_F(PaletteTrayTest, PaletteTrayVisibleAfterStylusSeen) {
-  ASSERT_FALSE(palette_tray_->visible());
+  ASSERT_FALSE(palette_tray_->GetVisible());
   ASSERT_FALSE(local_state_pref_service()->GetBoolean(prefs::kHasSeenStylus));
 
   // Send a stylus event.
@@ -117,16 +117,16 @@
   generator->ReleaseTouch();
   generator->ExitPenPointerMode();
 
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
 }
 
 // Verify if the has seen stylus pref is initially set, the palette tray is
 // visible.
 TEST_F(PaletteTrayTest, StylusSeenPrefInitiallySet) {
-  ASSERT_FALSE(palette_tray_->visible());
+  ASSERT_FALSE(palette_tray_->GetVisible());
   local_state_pref_service()->SetBoolean(prefs::kHasSeenStylus, true);
 
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
 }
 
 // Verify taps on the palette tray button results in expected behaviour.
@@ -204,15 +204,15 @@
   // kEnableStylusTools is true by default
   ASSERT_TRUE(
       active_user_pref_service()->GetBoolean(prefs::kEnableStylusTools));
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
 
   // Resetting the pref hides the palette tray.
   active_user_pref_service()->SetBoolean(prefs::kEnableStylusTools, false);
-  EXPECT_FALSE(palette_tray_->visible());
+  EXPECT_FALSE(palette_tray_->GetVisible());
 
   // Setting the pref again shows the palette tray.
   active_user_pref_service()->SetBoolean(prefs::kEnableStylusTools, true);
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
 }
 
 TEST_F(PaletteTrayTest, WelcomeBubbleVisibility) {
@@ -554,13 +554,13 @@
 // internal stylus.
 TEST_F(PaletteTrayTestWithInternalStylus, Visible) {
   ASSERT_TRUE(palette_tray_);
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
 }
 
 // Verify that when entering or exiting the lock screen, the behavior of the
 // palette tray button is as expected.
 TEST_F(PaletteTrayTestWithInternalStylus, PaletteTrayOnLockScreenBehavior) {
-  ASSERT_TRUE(palette_tray_->visible());
+  ASSERT_TRUE(palette_tray_->GetVisible());
 
   PaletteToolManager* manager = test_api_->palette_tool_manager();
   manager->ActivateTool(PaletteToolId::LASER_POINTER);
@@ -570,19 +570,19 @@
   // hidden, and the tool that was active is no longer active.
   GetSessionControllerClient()->LockScreen();
   EXPECT_FALSE(manager->IsToolActive(PaletteToolId::LASER_POINTER));
-  EXPECT_FALSE(palette_tray_->visible());
+  EXPECT_FALSE(palette_tray_->GetVisible());
 
   // Verify that when logging back in the tray is visible, but the tool that was
   // active before locking the screen is still inactive.
   GetSessionControllerClient()->UnlockScreen();
-  EXPECT_TRUE(palette_tray_->visible());
+  EXPECT_TRUE(palette_tray_->GetVisible());
   EXPECT_FALSE(manager->IsToolActive(PaletteToolId::LASER_POINTER));
 }
 
 // Verify a tool deactivates when the palette bubble is opened while the tool
 // is active.
 TEST_F(PaletteTrayTestWithInternalStylus, ToolDeactivatesWhenOpeningBubble) {
-  ASSERT_TRUE(palette_tray_->visible());
+  ASSERT_TRUE(palette_tray_->GetVisible());
 
   palette_tray_->ShowBubble(false /* show_by_click */);
   EXPECT_TRUE(test_api_->tray_bubble_wrapper());
@@ -747,8 +747,8 @@
       controllers[1]->GetStatusAreaWidget()->palette_tray();
 
   // The palette tray on the external monitor is not visible.
-  EXPECT_TRUE(main_tray->visible());
-  EXPECT_FALSE(external_tray->visible());
+  EXPECT_TRUE(main_tray->GetVisible());
+  EXPECT_FALSE(external_tray->GetVisible());
 
   // Removing the stylus shows the bubble only on the main palette tray.
   fake_stylus_event_on_all_trays(ui::StylusState::REMOVED);
diff --git a/ash/system/palette/tools/metalayer_mode.cc b/ash/system/palette/tools/metalayer_mode.cc
index 83d285e..64979b0 100644
--- a/ash/system/palette/tools/metalayer_mode.cc
+++ b/ash/system/palette/tools/metalayer_mode.cc
@@ -210,7 +210,7 @@
 
   TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::DETAILED_VIEW_LABEL,
                            false /* use_unified_theme */);
-  style.set_color_style(highlight_view_->enabled()
+  style.set_color_style(highlight_view_->GetEnabled()
                             ? TrayPopupItemStyle::ColorStyle::ACTIVE
                             : TrayPopupItemStyle::ColorStyle::DISABLED);
 
diff --git a/ash/system/palette/tools/metalayer_unittest.cc b/ash/system/palette/tools/metalayer_unittest.cc
index a6db795..abc72d0 100644
--- a/ash/system/palette/tools/metalayer_unittest.cc
+++ b/ash/system/palette/tools/metalayer_unittest.cc
@@ -101,7 +101,7 @@
           std::unique_ptr<views::View> view =
               base::WrapUnique(tool_->CreateView());
           EXPECT_TRUE(view);
-          EXPECT_EQ(selectable, view->enabled());
+          EXPECT_EQ(selectable, view->GetEnabled());
 
           const base::string16 label_text =
               static_cast<HoverHighlightView*>(view.get())
diff --git a/ash/system/power/power_status_view.cc b/ash/system/power/power_status_view.cc
index 1be54df..f579a54 100644
--- a/ash/system/power/power_status_view.cc
+++ b/ash/system/power/power_status_view.cc
@@ -83,7 +83,7 @@
   // Move the time_status_label_, separator_label_, and percentage_label_
   // closer to each other.
   if (percentage_label_ && separator_label_ && time_status_label_ &&
-      percentage_label_->visible() && time_status_label_->visible()) {
+      percentage_label_->GetVisible() && time_status_label_->GetVisible()) {
     separator_label_->SetX(percentage_label_->bounds().right() + 1);
     time_status_label_->SetX(separator_label_->bounds().right() + 1);
   }
diff --git a/ash/system/power/power_status_view_unittest.cc b/ash/system/power/power_status_view_unittest.cc
index f33ca20..6834784 100644
--- a/ash/system/power/power_status_view_unittest.cc
+++ b/ash/system/power/power_status_view_unittest.cc
@@ -39,11 +39,11 @@
   }
 
   bool IsPercentageVisible() const {
-    return view_->percentage_label_->visible();
+    return view_->percentage_label_->GetVisible();
   }
 
   bool IsTimeStatusVisible() const {
-    return view_->time_status_label_->visible();
+    return view_->time_status_label_->GetVisible();
   }
 
   base::string16 RemainingTimeInView() const {
diff --git a/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc b/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc
index 1107e5b..06e1407 100644
--- a/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc
+++ b/ash/system/rotation/rotation_lock_feature_pod_controller_unittest.cc
@@ -61,7 +61,7 @@
 // not visible.
 TEST_F(RotationLockFeaturePodControllerTest, CreateButton) {
   SetUpController();
-  EXPECT_FALSE(button_view()->visible());
+  EXPECT_FALSE(button_view()->GetVisible());
 }
 
 // Tests that when the button is created, while TabletMode is active,
@@ -69,9 +69,9 @@
 TEST_F(RotationLockFeaturePodControllerTest, CreateButtonDuringTabletMode) {
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
   SetUpController();
-  EXPECT_TRUE(button_view()->visible());
+  EXPECT_TRUE(button_view()->GetVisible());
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(false);
-  EXPECT_FALSE(button_view()->visible());
+  EXPECT_FALSE(button_view()->GetVisible());
 }
 
 // Tests that the enabling of TabletMode affects a previously created default
@@ -80,9 +80,9 @@
        ButtonVisibilityChangesDuringTabletMode) {
   SetUpController();
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
-  EXPECT_TRUE(button_view()->visible());
+  EXPECT_TRUE(button_view()->GetVisible());
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(false);
-  EXPECT_FALSE(button_view()->visible());
+  EXPECT_FALSE(button_view()->GetVisible());
 }
 
 TEST_F(RotationLockFeaturePodControllerTest, OnIconPressed) {
@@ -93,17 +93,17 @@
       Shell::Get()->screen_orientation_controller();
   ASSERT_FALSE(screen_orientation_controller->rotation_locked());
   tablet_mode_controller->EnableTabletModeWindowManager(true);
-  ASSERT_TRUE(button_view()->visible());
+  ASSERT_TRUE(button_view()->GetVisible());
   EXPECT_FALSE(button_view()->IsToggled());
 
   controller()->OnIconPressed();
   EXPECT_TRUE(screen_orientation_controller->rotation_locked());
-  EXPECT_TRUE(button_view()->visible());
+  EXPECT_TRUE(button_view()->GetVisible());
   EXPECT_TRUE(button_view()->IsToggled());
 
   controller()->OnIconPressed();
   EXPECT_FALSE(screen_orientation_controller->rotation_locked());
-  EXPECT_TRUE(button_view()->visible());
+  EXPECT_TRUE(button_view()->GetVisible());
   EXPECT_FALSE(button_view()->IsToggled());
 
   tablet_mode_controller->EnableTabletModeWindowManager(false);
diff --git a/ash/system/session/logout_button_tray_unittest.cc b/ash/system/session/logout_button_tray_unittest.cc
index e9ae578..d06e0cf 100644
--- a/ash/system/session/logout_button_tray_unittest.cc
+++ b/ash/system/session/logout_button_tray_unittest.cc
@@ -51,26 +51,26 @@
                                  ->GetStatusAreaWidget()
                                  ->logout_button_tray_for_testing();
   ASSERT_TRUE(button);
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 
   // Button is not visible after simulated login.
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 
   // Setting the pref makes the button visible.
   pref_service()->SetBoolean(prefs::kShowLogoutButtonInTray, true);
-  EXPECT_TRUE(button->visible());
+  EXPECT_TRUE(button->GetVisible());
 
   // Locking the screen hides the button.
   GetSessionControllerClient()->LockScreen();
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 
   // Unlocking the screen shows the button.
   GetSessionControllerClient()->UnlockScreen();
-  EXPECT_TRUE(button->visible());
+  EXPECT_TRUE(button->GetVisible());
 
   // Resetting the pref hides the button.
   pref_service()->SetBoolean(prefs::kShowLogoutButtonInTray, false);
-  EXPECT_FALSE(button->visible());
+  EXPECT_FALSE(button->GetVisible());
 }
 
 TEST_F(LogoutButtonTrayTest, ButtonPressed) {
diff --git a/ash/system/status_area_widget_delegate.cc b/ash/system/status_area_widget_delegate.cc
index fbd0e00..045ef095 100644
--- a/ash/system/status_area_widget_delegate.cc
+++ b/ash/system/status_area_widget_delegate.cc
@@ -123,7 +123,7 @@
   // Update tray border based on layout.
   bool is_child_on_edge = true;
   for (auto* child : children()) {
-    if (!child->visible())
+    if (!child->GetVisible())
       continue;
     SetBorderOnChild(child, is_child_on_edge);
     is_child_on_edge = false;
@@ -133,7 +133,7 @@
 
   if (shelf_->IsHorizontalAlignment()) {
     for (auto* child : children()) {
-      if (!child->visible())
+      if (!child->GetVisible())
         continue;
       columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::FILL,
                          0, /* resize percent */
@@ -141,7 +141,7 @@
     }
     layout->StartRow(0, 0);
     for (auto* child : children()) {
-      if (child->visible())
+      if (child->GetVisible())
         layout->AddView(child);
     }
   } else {
@@ -149,7 +149,7 @@
                        0, /* resize percent */
                        views::GridLayout::USE_PREF, 0, 0);
     for (auto* child : children()) {
-      if (!child->visible())
+      if (!child->GetVisible())
         continue;
       layout->StartRow(0, 0);
       layout->AddView(child);
diff --git a/ash/system/status_area_widget_unittest.cc b/ash/system/status_area_widget_unittest.cc
index a20d8b3..4036229 100644
--- a/ash/system/status_area_widget_unittest.cc
+++ b/ash/system/status_area_widget_unittest.cc
@@ -59,11 +59,11 @@
   EXPECT_TRUE(status->palette_tray());
 
   // Default trays are visible.
-  EXPECT_FALSE(status->overview_button_tray()->visible());
-  EXPECT_TRUE(status->unified_system_tray()->visible());
-  EXPECT_FALSE(status->logout_button_tray_for_testing()->visible());
-  EXPECT_FALSE(status->ime_menu_tray()->visible());
-  EXPECT_FALSE(status->virtual_keyboard_tray_for_testing()->visible());
+  EXPECT_FALSE(status->overview_button_tray()->GetVisible());
+  EXPECT_TRUE(status->unified_system_tray()->GetVisible());
+  EXPECT_FALSE(status->logout_button_tray_for_testing()->GetVisible());
+  EXPECT_FALSE(status->ime_menu_tray()->GetVisible());
+  EXPECT_FALSE(status->virtual_keyboard_tray_for_testing()->GetVisible());
 }
 
 class SystemTrayFocusTestObserver : public SystemTrayFocusObserver {
@@ -144,16 +144,16 @@
   ASSERT_TRUE(status->virtual_keyboard_tray_for_testing());
 
   // Default trays are visible.
-  ASSERT_FALSE(status->overview_button_tray()->visible());
-  ASSERT_TRUE(status->unified_system_tray()->visible());
-  ASSERT_FALSE(status->logout_button_tray_for_testing()->visible());
-  ASSERT_FALSE(status->ime_menu_tray()->visible());
-  ASSERT_FALSE(status->virtual_keyboard_tray_for_testing()->visible());
+  ASSERT_FALSE(status->overview_button_tray()->GetVisible());
+  ASSERT_TRUE(status->unified_system_tray()->GetVisible());
+  ASSERT_FALSE(status->logout_button_tray_for_testing()->GetVisible());
+  ASSERT_FALSE(status->ime_menu_tray()->GetVisible());
+  ASSERT_FALSE(status->virtual_keyboard_tray_for_testing()->GetVisible());
 
   // In Unified, we don't have notification tray, so ImeMenuTray is used for
   // tab testing.
   status->ime_menu_tray()->OnIMEMenuActivationChanged(true);
-  ASSERT_TRUE(status->ime_menu_tray()->visible());
+  ASSERT_TRUE(status->ime_menu_tray()->GetVisible());
 
   // Set focus to status area widget. The first focused view will be the IME
   // tray.
diff --git a/ash/system/tray/hover_highlight_view.cc b/ash/system/tray/hover_highlight_view.cc
index d5b751c..a083c9e 100644
--- a/ash/system/tray/hover_highlight_view.cc
+++ b/ash/system/tray/hover_highlight_view.cc
@@ -56,7 +56,7 @@
     tri_view_->SetContainerBorder(TriView::Container::END, std::move(border));
 
   right_view_ = view;
-  right_view_->SetEnabled(enabled());
+  right_view_->SetEnabled(GetEnabled());
   tri_view_->AddView(TriView::Container::END, right_view_);
   tri_view_->SetContainerVisible(TriView::Container::END, true);
 }
@@ -130,12 +130,12 @@
 
   left_icon_ = TrayPopupUtils::CreateMainImageView();
   left_icon_->SetImage(image);
-  left_icon_->SetEnabled(enabled());
+  left_icon_->SetEnabled(GetEnabled());
   tri_view_->AddView(TriView::Container::START, left_icon_);
 
   text_label_ = TrayPopupUtils::CreateDefaultLabel();
   text_label_->SetText(text);
-  text_label_->SetEnabled(enabled());
+  text_label_->SetEnabled(GetEnabled());
   TrayPopupItemStyle style(font_style, use_unified_theme_);
   style.SetupLabel(text_label_);
   tri_view_->AddView(TriView::Container::CENTER, text_label_);
@@ -249,11 +249,11 @@
 
 void HoverHighlightView::OnEnabledChanged() {
   if (left_icon_)
-    left_icon_->SetEnabled(enabled());
+    left_icon_->SetEnabled(GetEnabled());
   if (text_label_)
-    text_label_->SetEnabled(enabled());
+    text_label_->SetEnabled(GetEnabled());
   if (right_view_)
-    right_view_->SetEnabled(enabled());
+    right_view_->SetEnabled(GetEnabled());
 }
 
 }  // namespace ash
diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc
index 988af7f..d110e2f 100644
--- a/ash/system/tray/tray_background_view.cc
+++ b/ash/system/tray/tray_background_view.cc
@@ -288,7 +288,7 @@
   // * Otherwise (login/lock screen, OOBE), bring focus to the shelf only
   //   if we're going in reverse; if we're going forward, let the system tray
   //   focus observers focus the lock/login view.
-  if (shelf->shelf_widget()->login_shelf_view()->visible()) {
+  if (shelf->shelf_widget()->login_shelf_view()->GetVisible()) {
     // Login/lock screen or OOBE.
     should_focus_shelf = reverse;
   }
diff --git a/ash/system/tray/tray_bubble_view.cc b/ash/system/tray/tray_bubble_view.cc
index 6b0e060..b0702d2 100644
--- a/ash/system/tray/tray_bubble_view.cc
+++ b/ash/system/tray/tray_bubble_view.cc
@@ -107,7 +107,7 @@
          i != host->children().rend() && consumed_height < host->height();
          ++i) {
       View* child = *i;
-      if (!child->visible())
+      if (!child->GetVisible())
         continue;
       gfx::Size size = child->GetPreferredSize();
       child->SetBounds(0, host->height() - consumed_height - size.height(),
@@ -430,7 +430,7 @@
 int TrayBubbleView::GetHeightForWidth(int width) const {
   width = std::max(width - GetInsets().width(), 0);
   const auto visible_height = [width](int height, const views::View* child) {
-    return height + (child->visible() ? child->GetHeightForWidth(width) : 0);
+    return height + (child->GetVisible() ? child->GetHeightForWidth(width) : 0);
   };
   const int height = std::accumulate(children().cbegin(), children().cend(),
                                      GetInsets().height(), visible_height);
diff --git a/ash/system/tray/tray_info_label_unittest.cc b/ash/system/tray/tray_info_label_unittest.cc
index 0b6efca..82ed048 100644
--- a/ash/system/tray/tray_info_label_unittest.cc
+++ b/ash/system/tray/tray_info_label_unittest.cc
@@ -76,7 +76,7 @@
     EXPECT_EQ(expected_clickable, label_->IsClickable());
     EXPECT_EQ(expected_clickable ? views::View::FocusBehavior::ALWAYS
                                  : views::View::FocusBehavior::NEVER,
-              label_->focus_behavior());
+              label_->GetFocusBehavior());
 
     ui::AXNodeData node_data;
     label_->GetAccessibleNodeData(&node_data);
diff --git a/ash/system/tray/tray_item_view.cc b/ash/system/tray/tray_item_view.cc
index 686cbad..6338d58e 100644
--- a/ash/system/tray/tray_item_view.cc
+++ b/ash/system/tray/tray_item_view.cc
@@ -66,7 +66,7 @@
     animation_.reset(new gfx::SlideAnimation(this));
     animation_->SetSlideDuration(GetAnimationDurationMS());
     animation_->SetTweenType(gfx::Tween::LINEAR);
-    animation_->Reset(visible() ? 1.0 : 0.0);
+    animation_->Reset(GetVisible() ? 1.0 : 0.0);
   }
 
   if (!set_visible) {
diff --git a/ash/system/tray/tri_view.cc b/ash/system/tray/tri_view.cc
index 317d01f..6c3d858 100644
--- a/ash/system/tray/tri_view.cc
+++ b/ash/system/tray/tri_view.cc
@@ -123,7 +123,7 @@
 }
 
 void TriView::SetContainerVisible(Container container, bool visible) {
-  if (GetContainer(container)->visible() == visible)
+  if (GetContainer(container)->GetVisible() == visible)
     return;
   GetContainer(container)->SetVisible(visible);
   Layout();
diff --git a/ash/system/unified/collapse_button.cc b/ash/system/unified/collapse_button.cc
index 9d2d662..8af263f 100644
--- a/ash/system/unified/collapse_button.cc
+++ b/ash/system/unified/collapse_button.cc
@@ -95,8 +95,8 @@
 void CustomShapeButton::PaintCustomShapePath(gfx::Canvas* canvas) {
   cc::PaintFlags flags;
   flags.setAntiAlias(true);
-  flags.setColor(enabled() ? kUnifiedMenuButtonColor
-                           : kUnifiedMenuButtonColorDisabled);
+  flags.setColor(GetEnabled() ? kUnifiedMenuButtonColor
+                              : kUnifiedMenuButtonColorDisabled);
   flags.setStyle(cc::PaintFlags::kFill_Style);
 
   canvas->DrawPath(CreateCustomShapePath(GetLocalBounds()), flags);
@@ -148,8 +148,8 @@
 void CollapseButton::OnEnabledChanged() {
   SetImage(views::Button::STATE_NORMAL,
            gfx::CreateVectorIcon(kUnifiedMenuExpandIcon,
-                                 enabled() ? kUnifiedMenuIconColor
-                                           : kUnifiedMenuIconColorDisabled));
+                                 GetEnabled() ? kUnifiedMenuIconColor
+                                              : kUnifiedMenuIconColorDisabled));
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/feature_pod_button.cc b/ash/system/unified/feature_pod_button.cc
index e0d242c..845cc48 100644
--- a/ash/system/unified/feature_pod_button.cc
+++ b/ash/system/unified/feature_pod_button.cc
@@ -60,7 +60,7 @@
   flags.setAntiAlias(true);
 
   SkColor color = kUnifiedMenuButtonColor;
-  if (enabled()) {
+  if (GetEnabled()) {
     if (toggled_)
       color = kUnifiedMenuButtonColorActive;
   } else {
@@ -140,7 +140,7 @@
   LayoutInCenter(label_, GetContentsBounds().y());
   LayoutInCenter(sub_label_, GetContentsBounds().CenterPoint().y());
 
-  if (!detailed_view_arrow_->visible())
+  if (!detailed_view_arrow_->GetVisible())
     return;
 
   // We need custom Layout() because |label_| is first laid out in the center
@@ -156,7 +156,7 @@
 gfx::Size FeaturePodLabelButton::CalculatePreferredSize() const {
   // Minimum width of the button
   int width = kUnifiedFeaturePodLabelWidth + GetInsets().width();
-  if (detailed_view_arrow_->visible()) {
+  if (detailed_view_arrow_->GetVisible()) {
     const int label_width = std::min(kUnifiedFeaturePodLabelWidth,
                                      label_->GetPreferredSize().width());
     // Symmetrically increase the width to accommodate the arrow
@@ -168,7 +168,7 @@
   }
 
   int height = label_->GetPreferredSize().height() + GetInsets().height();
-  if (sub_label_->visible())
+  if (sub_label_->GetVisible())
     height += sub_label_->GetPreferredSize().height();
 
   return gfx::Size(width, height);
@@ -216,13 +216,13 @@
 }
 
 void FeaturePodLabelButton::OnEnabledChanged() {
-  label_->SetEnabledColor(enabled() ? kUnifiedMenuTextColor
-                                    : kUnifiedMenuTextColorDisabled);
-  sub_label_->SetEnabledColor(enabled() ? kUnifiedMenuSecondaryTextColor
-                                        : kUnifiedMenuTextColorDisabled);
+  label_->SetEnabledColor(GetEnabled() ? kUnifiedMenuTextColor
+                                       : kUnifiedMenuTextColorDisabled);
+  sub_label_->SetEnabledColor(GetEnabled() ? kUnifiedMenuSecondaryTextColor
+                                           : kUnifiedMenuTextColorDisabled);
   detailed_view_arrow_->SetImage(gfx::CreateVectorIcon(
       kUnifiedMenuMoreIcon,
-      enabled() ? kUnifiedMenuIconColor : kUnifiedMenuIconColorDisabled));
+      GetEnabled() ? kUnifiedMenuIconColor : kUnifiedMenuIconColorDisabled));
 }
 
 void FeaturePodLabelButton::LayoutInCenter(views::View* child, int y) {
@@ -324,8 +324,8 @@
 }
 
 void FeaturePodButton::OnEnabledChanged() {
-  icon_button_->SetEnabled(enabled());
-  label_button_->SetEnabled(enabled());
+  icon_button_->SetEnabled(GetEnabled());
+  label_button_->SetEnabled(GetEnabled());
 }
 
 void FeaturePodButton::ButtonPressed(views::Button* sender,
diff --git a/ash/system/unified/feature_pods_container_view.cc b/ash/system/unified/feature_pods_container_view.cc
index 21127a8..9906ab7 100644
--- a/ash/system/unified/feature_pods_container_view.cc
+++ b/ash/system/unified/feature_pods_container_view.cc
@@ -86,7 +86,7 @@
 
   int visible_count = 0;
   for (auto* child : children()) {
-    if (!child->visible())
+    if (!child->GetVisible())
       continue;
 
     gfx::Size child_size;
diff --git a/ash/system/unified/feature_pods_container_view_unittest.cc b/ash/system/unified/feature_pods_container_view_unittest.cc
index 8a3ec63..ad9fbfe 100644
--- a/ash/system/unified/feature_pods_container_view_unittest.cc
+++ b/ash/system/unified/feature_pods_container_view_unittest.cc
@@ -80,7 +80,7 @@
   EXPECT_LT(buttons_[0]->y(), buttons_[kUnifiedFeaturePodItemsInRow]->y());
   // All buttons are visible.
   for (auto* button : buttons_)
-    EXPECT_TRUE(button->visible());
+    EXPECT_TRUE(button->GetVisible());
 
   container()->SetExpandedAmount(0.0);
 
@@ -91,7 +91,7 @@
   // Buttons exceed kUnifiedFeaturePodMaxItemsInCollapsed are invisible.
   for (int i = 0; i < kNumberOfAddedButtons; ++i) {
     EXPECT_EQ(i < kUnifiedFeaturePodMaxItemsInCollapsed,
-              buttons_[i]->visible());
+              buttons_[i]->GetVisible());
   }
 }
 
@@ -100,9 +100,9 @@
   // The button is invisible in expanded state.
   buttons_.front()->SetVisible(false);
   container()->SetExpandedAmount(0.0);
-  EXPECT_FALSE(buttons_.front()->visible());
+  EXPECT_FALSE(buttons_.front()->GetVisible());
   container()->SetExpandedAmount(1.0);
-  EXPECT_FALSE(buttons_.front()->visible());
+  EXPECT_FALSE(buttons_.front()->GetVisible());
 }
 
 TEST_F(FeaturePodsContainerViewTest, BecomeVisibleInCollapsed) {
@@ -113,7 +113,7 @@
   // The button becomes visible in collapsed state.
   buttons_.back()->SetVisible(true);
   // As the container still has remaining space, the button will be visible.
-  EXPECT_TRUE(buttons_.back()->visible());
+  EXPECT_TRUE(buttons_.back()->GetVisible());
 }
 
 TEST_F(FeaturePodsContainerViewTest, StillHiddenInCollapsed) {
@@ -124,22 +124,22 @@
   // The button becomes visible in collapsed state.
   buttons_.back()->SetVisible(true);
   // As the container doesn't have remaining space, the button won't be visible.
-  EXPECT_FALSE(buttons_.back()->visible());
+  EXPECT_FALSE(buttons_.back()->GetVisible());
 
   container()->SetExpandedAmount(1.0);
   // The button becomes visible in expanded state.
-  EXPECT_TRUE(buttons_.back()->visible());
+  EXPECT_TRUE(buttons_.back()->GetVisible());
 }
 
 TEST_F(FeaturePodsContainerViewTest, DifferentButtonBecomeVisibleInCollapsed) {
   AddButtons(kUnifiedFeaturePodMaxItemsInCollapsed + 1);
   container()->SetExpandedAmount(0.0);
   // The last button is not visible as it doesn't have enough space.
-  EXPECT_FALSE(buttons_.back()->visible());
+  EXPECT_FALSE(buttons_.back()->GetVisible());
   // The first button becomes invisible.
   buttons_.front()->SetVisible(false);
   // The last button now has the space for it.
-  EXPECT_TRUE(buttons_.back()->visible());
+  EXPECT_TRUE(buttons_.back()->GetVisible());
 }
 
 TEST_F(FeaturePodsContainerViewTest, SizeChangeByExpanding) {
diff --git a/ash/system/unified/quiet_mode_feature_pod_controller.cc b/ash/system/unified/quiet_mode_feature_pod_controller.cc
index 4a3d15d9..4a90db6 100644
--- a/ash/system/unified/quiet_mode_feature_pod_controller.cc
+++ b/ash/system/unified/quiet_mode_feature_pod_controller.cc
@@ -45,7 +45,7 @@
   button_->ShowDetailedViewArrow();
   OnQuietModeChanged(MessageCenter::Get()->IsQuietMode());
 
-  if (button_->visible()) {
+  if (button_->GetVisible()) {
     Shell::Get()->message_center_controller()->AddNotifierSettingsListener(
         this);
     Shell::Get()->message_center_controller()->RequestNotifierSettingsUpdate();
diff --git a/ash/system/unified/quiet_mode_feature_pod_controller_unittest.cc b/ash/system/unified/quiet_mode_feature_pod_controller_unittest.cc
index b2c762a..3807b49 100644
--- a/ash/system/unified/quiet_mode_feature_pod_controller_unittest.cc
+++ b/ash/system/unified/quiet_mode_feature_pod_controller_unittest.cc
@@ -58,14 +58,14 @@
 TEST_F(QuietModeFeaturePodControllerTest, ButtonVisibilityNotLoggedIn) {
   SetUpButton();
   // If not logged in, it should not be visible.
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
 }
 
 TEST_F(QuietModeFeaturePodControllerTest, ButtonVisibilityLoggedIn) {
   CreateUserSessions(1);
   SetUpButton();
   // If logged in, it should be visible.
-  EXPECT_TRUE(button()->visible());
+  EXPECT_TRUE(button()->GetVisible());
 }
 
 TEST_F(QuietModeFeaturePodControllerTest, ButtonVisibilityLocked) {
@@ -73,7 +73,7 @@
   BlockUserSession(UserSessionBlockReason::BLOCKED_BY_LOCK_SCREEN);
   SetUpButton();
   // If locked, it should not be visible.
-  EXPECT_FALSE(button()->visible());
+  EXPECT_FALSE(button()->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/top_shortcuts_view.cc b/ash/system/unified/top_shortcuts_view.cc
index 5246c4a..78c4309 100644
--- a/ash/system/unified/top_shortcuts_view.cc
+++ b/ash/system/unified/top_shortcuts_view.cc
@@ -71,7 +71,7 @@
   views::View::Views visible_children;
   std::copy_if(children().cbegin(), children().cend(),
                std::back_inserter(visible_children), [](const auto* v) {
-                 return v->visible() && (v->GetPreferredSize().width() > 0);
+                 return v->GetVisible() && (v->GetPreferredSize().width() > 0);
                });
   if (visible_children.empty())
     return;
@@ -119,7 +119,7 @@
   int total_horizontal_size = 0;
   int num_visible = 0;
   for (const auto* child : children()) {
-    if (!child->visible())
+    if (!child->GetVisible())
       continue;
     int child_horizontal_size = child->GetPreferredSize().width();
     if (child_horizontal_size == 0)
diff --git a/ash/system/unified/top_shortcuts_view_unittest.cc b/ash/system/unified/top_shortcuts_view_unittest.cc
index 0359957..88d3245 100644
--- a/ash/system/unified/top_shortcuts_view_unittest.cc
+++ b/ash/system/unified/top_shortcuts_view_unittest.cc
@@ -76,11 +76,11 @@
 TEST_F(TopShortcutsViewTest, ButtonStatesNotLoggedIn) {
   SetUpView();
   EXPECT_EQ(nullptr, GetUserAvatar());
-  EXPECT_FALSE(GetSignOutButton()->visible());
-  EXPECT_FALSE(GetLockButton()->visible());
-  EXPECT_FALSE(GetSettingsButton()->visible());
-  EXPECT_TRUE(GetPowerButton()->visible());
-  EXPECT_TRUE(GetCollapseButton()->visible());
+  EXPECT_FALSE(GetSignOutButton()->GetVisible());
+  EXPECT_FALSE(GetLockButton()->GetVisible());
+  EXPECT_FALSE(GetSettingsButton()->GetVisible());
+  EXPECT_TRUE(GetPowerButton()->GetVisible());
+  EXPECT_TRUE(GetCollapseButton()->GetVisible());
 }
 
 // All buttons are shown after login.
@@ -88,11 +88,11 @@
   CreateUserSessions(1);
   SetUpView();
   EXPECT_NE(nullptr, GetUserAvatar());
-  EXPECT_TRUE(GetSignOutButton()->visible());
-  EXPECT_TRUE(GetLockButton()->visible());
-  EXPECT_TRUE(GetSettingsButton()->visible());
-  EXPECT_TRUE(GetPowerButton()->visible());
-  EXPECT_TRUE(GetCollapseButton()->visible());
+  EXPECT_TRUE(GetSignOutButton()->GetVisible());
+  EXPECT_TRUE(GetLockButton()->GetVisible());
+  EXPECT_TRUE(GetSettingsButton()->GetVisible());
+  EXPECT_TRUE(GetPowerButton()->GetVisible());
+  EXPECT_TRUE(GetCollapseButton()->GetVisible());
 }
 
 // Settings button and lock button are hidden at the lock screen.
@@ -100,11 +100,11 @@
   BlockUserSession(BLOCKED_BY_LOCK_SCREEN);
   SetUpView();
   EXPECT_NE(nullptr, GetUserAvatar());
-  EXPECT_TRUE(GetSignOutButton()->visible());
-  EXPECT_FALSE(GetLockButton()->visible());
-  EXPECT_FALSE(GetSettingsButton()->visible());
-  EXPECT_TRUE(GetPowerButton()->visible());
-  EXPECT_TRUE(GetCollapseButton()->visible());
+  EXPECT_TRUE(GetSignOutButton()->GetVisible());
+  EXPECT_FALSE(GetLockButton()->GetVisible());
+  EXPECT_FALSE(GetSettingsButton()->GetVisible());
+  EXPECT_TRUE(GetPowerButton()->GetVisible());
+  EXPECT_TRUE(GetCollapseButton()->GetVisible());
 }
 
 // Settings button and lock button are hidden when adding a second
@@ -114,11 +114,11 @@
   SetUserAddingScreenRunning(true);
   SetUpView();
   EXPECT_NE(nullptr, GetUserAvatar());
-  EXPECT_TRUE(GetSignOutButton()->visible());
-  EXPECT_FALSE(GetLockButton()->visible());
-  EXPECT_FALSE(GetSettingsButton()->visible());
-  EXPECT_TRUE(GetPowerButton()->visible());
-  EXPECT_TRUE(GetCollapseButton()->visible());
+  EXPECT_TRUE(GetSignOutButton()->GetVisible());
+  EXPECT_FALSE(GetLockButton()->GetVisible());
+  EXPECT_FALSE(GetSettingsButton()->GetVisible());
+  EXPECT_TRUE(GetPowerButton()->GetVisible());
+  EXPECT_TRUE(GetCollapseButton()->GetVisible());
 }
 
 // Settings button and lock button are hidden when adding a supervised user.
@@ -130,11 +130,11 @@
       "foo@example.com", user_manager::USER_TYPE_REGULAR, enable_settings);
   SetUpView();
   EXPECT_EQ(nullptr, GetUserAvatar());
-  EXPECT_FALSE(GetSignOutButton()->visible());
-  EXPECT_FALSE(GetLockButton()->visible());
-  EXPECT_FALSE(GetSettingsButton()->visible());
-  EXPECT_TRUE(GetPowerButton()->visible());
-  EXPECT_TRUE(GetCollapseButton()->visible());
+  EXPECT_FALSE(GetSignOutButton()->GetVisible());
+  EXPECT_FALSE(GetLockButton()->GetVisible());
+  EXPECT_FALSE(GetSettingsButton()->GetVisible());
+  EXPECT_TRUE(GetPowerButton()->GetVisible());
+  EXPECT_TRUE(GetCollapseButton()->GetVisible());
 }
 
 // Try to layout buttons before login.
diff --git a/ash/system/unified/unified_slider_view.cc b/ash/system/unified/unified_slider_view.cc
index 5ca2d09..f03f78f 100644
--- a/ash/system/unified/unified_slider_view.cc
+++ b/ash/system/unified/unified_slider_view.cc
@@ -98,7 +98,7 @@
 }
 
 void UnifiedSliderButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
-  if (!enabled())
+  if (!GetEnabled())
     return;
   TopShortcutButton::GetAccessibleNodeData(node_data);
   node_data->role = ax::mojom::Role::kToggleButton;
diff --git a/ash/system/unified/unified_system_info_view_unittest.cc b/ash/system/unified/unified_system_info_view_unittest.cc
index 284c0dd..bcad42c 100644
--- a/ash/system/unified/unified_system_info_view_unittest.cc
+++ b/ash/system/unified/unified_system_info_view_unittest.cc
@@ -47,7 +47,7 @@
 
 TEST_F(UnifiedSystemInfoViewTest, EnterpriseManagedVisible) {
   // By default, EnterpriseManagedView is not shown.
-  EXPECT_FALSE(info_view()->enterprise_managed_->visible());
+  EXPECT_FALSE(info_view()->enterprise_managed_->GetVisible());
 
   // Simulate enterprise information becoming available.
   const bool active_directory = false;
@@ -57,7 +57,7 @@
       ->SetEnterpriseDisplayDomain("example.com", active_directory);
 
   // EnterpriseManagedView should be shown.
-  EXPECT_TRUE(info_view()->enterprise_managed_->visible());
+  EXPECT_TRUE(info_view()->enterprise_managed_->GetVisible());
 }
 
 TEST_F(UnifiedSystemInfoViewTest, EnterpriseManagedVisibleForActiveDirectory) {
@@ -70,7 +70,7 @@
       ->SetEnterpriseDisplayDomain(empty_domain, active_directory);
 
   // EnterpriseManagedView should be shown.
-  EXPECT_TRUE(info_view()->enterprise_managed_->visible());
+  EXPECT_TRUE(info_view()->enterprise_managed_->GetVisible());
 }
 
 using UnifiedSystemInfoViewNoSessionTest = NoSessionAshTestBase;
@@ -87,7 +87,7 @@
   // Before login the supervised user view is invisible.
   std::unique_ptr<UnifiedSystemInfoView> info_view_;
   info_view_ = std::make_unique<UnifiedSystemInfoView>(controller_.get());
-  EXPECT_FALSE(info_view_->supervised_->visible());
+  EXPECT_FALSE(info_view_->supervised_->GetVisible());
   info_view_.reset();
 
   // Simulate a supervised user logging in.
@@ -101,7 +101,7 @@
 
   // Now the supervised user view is visible.
   info_view_ = std::make_unique<UnifiedSystemInfoView>(controller_.get());
-  ASSERT_TRUE(info_view_->supervised_->visible());
+  ASSERT_TRUE(info_view_->supervised_->GetVisible());
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/unified_system_tray_controller_unittest.cc b/ash/system/unified/unified_system_tray_controller_unittest.cc
index 2199ce6..e42ae25 100644
--- a/ash/system/unified/unified_system_tray_controller_unittest.cc
+++ b/ash/system/unified/unified_system_tray_controller_unittest.cc
@@ -127,16 +127,16 @@
 
 TEST_F(UnifiedSystemTrayControllerTest, EnsureExpanded_UserChooserShown) {
   InitializeView();
-  EXPECT_FALSE(view()->detailed_view_for_testing()->visible());
+  EXPECT_FALSE(view()->detailed_view_for_testing()->GetVisible());
 
   // Show the user chooser view.
   controller()->ShowUserChooserView();
-  EXPECT_TRUE(view()->detailed_view_for_testing()->visible());
+  EXPECT_TRUE(view()->detailed_view_for_testing()->GetVisible());
 
   // Calling EnsureExpanded() should hide the detailed view (e.g. this can
   // happen when changing the brightness or volume).
   controller()->EnsureExpanded();
-  EXPECT_FALSE(view()->detailed_view_for_testing()->visible());
+  EXPECT_FALSE(view()->detailed_view_for_testing()->GetVisible());
 }
 
 TEST_F(UnifiedSystemTrayControllerTest, PreferredSizeChanged) {
@@ -162,7 +162,7 @@
 
   EXPECT_TRUE(AshMessageCenterLockScreenController::IsAllowed());
   EXPECT_TRUE(AshMessageCenterLockScreenController::IsEnabled());
-  EXPECT_FALSE(view()->notification_hidden_view_for_testing()->visible());
+  EXPECT_FALSE(view()->notification_hidden_view_for_testing()->GetVisible());
 }
 
 TEST_F(UnifiedSystemTrayControllerTest, NotificationHiddenView_ModeHide) {
@@ -173,7 +173,7 @@
 
   EXPECT_TRUE(AshMessageCenterLockScreenController::IsAllowed());
   EXPECT_FALSE(AshMessageCenterLockScreenController::IsEnabled());
-  EXPECT_TRUE(view()->notification_hidden_view_for_testing()->visible());
+  EXPECT_TRUE(view()->notification_hidden_view_for_testing()->GetVisible());
   EXPECT_NE(nullptr, view()
                          ->notification_hidden_view_for_testing()
                          ->change_button_for_testing());
@@ -188,7 +188,7 @@
 
   EXPECT_TRUE(AshMessageCenterLockScreenController::IsAllowed());
   EXPECT_TRUE(AshMessageCenterLockScreenController::IsEnabled());
-  EXPECT_FALSE(view()->notification_hidden_view_for_testing()->visible());
+  EXPECT_FALSE(view()->notification_hidden_view_for_testing()->GetVisible());
 }
 
 TEST_F(UnifiedSystemTrayControllerTest, NotificationHiddenView_ModeProhibited) {
@@ -199,7 +199,7 @@
 
   EXPECT_FALSE(AshMessageCenterLockScreenController::IsAllowed());
   EXPECT_FALSE(AshMessageCenterLockScreenController::IsEnabled());
-  EXPECT_TRUE(view()->notification_hidden_view_for_testing()->visible());
+  EXPECT_TRUE(view()->notification_hidden_view_for_testing()->GetVisible());
   EXPECT_EQ(nullptr, view()
                          ->notification_hidden_view_for_testing()
                          ->change_button_for_testing());
diff --git a/ash/system/unified/unified_system_tray_test_api.cc b/ash/system/unified/unified_system_tray_test_api.cc
index 81a5476..69a2b92 100644
--- a/ash/system/unified/unified_system_tray_test_api.cc
+++ b/ash/system/unified/unified_system_tray_test_api.cc
@@ -85,13 +85,13 @@
   if (open_tray)
     tray_->ShowBubble(false /* show_by_click */);
   views::View* view = GetBubbleView(view_id);
-  std::move(cb).Run(view && view->visible());
+  std::move(cb).Run(view && view->GetVisible());
 }
 
 void UnifiedSystemTrayTestApi::ClickBubbleView(int32_t view_id,
                                                ClickBubbleViewCallback cb) {
   views::View* view = GetBubbleView(view_id);
-  if (view && view->visible()) {
+  if (view && view->GetVisible()) {
     gfx::Point cursor_location(1, 1);
     views::View::ConvertPointToScreen(view, &cursor_location);
 
diff --git a/ash/system/unified/unified_system_tray_view.cc b/ash/system/unified/unified_system_tray_view.cc
index a5ed7ea..c78e621 100644
--- a/ash/system/unified/unified_system_tray_view.cc
+++ b/ash/system/unified/unified_system_tray_view.cc
@@ -353,7 +353,7 @@
 }
 
 int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const {
-  return (notification_hidden_view_->visible()
+  return (notification_hidden_view_->GetVisible()
               ? notification_hidden_view_->GetPreferredSize().height()
               : 0) +
          top_shortcuts_view_->GetPreferredSize().height() +
@@ -363,7 +363,7 @@
 }
 
 int UnifiedSystemTrayView::GetCollapsedSystemTrayHeight() const {
-  return (notification_hidden_view_->visible()
+  return (notification_hidden_view_->GetVisible()
               ? notification_hidden_view_->GetPreferredSize().height()
               : 0) +
          top_shortcuts_view_->GetPreferredSize().height() +
@@ -379,7 +379,7 @@
   // TODO(tetsui): Support animation by transform even when
   // UnifiedMessageCenterview is visible.
   return expanded_amount_ != 0.0 && expanded_amount_ != 1.0 &&
-         !message_center_view_->visible();
+         !message_center_view_->GetVisible();
 }
 
 void UnifiedSystemTrayView::SetNotificationRectBelowScroll(
diff --git a/ash/system/user/rounded_image_view.cc b/ash/system/user/rounded_image_view.cc
index 4644390..fd1c44a 100644
--- a/ash/system/user/rounded_image_view.cc
+++ b/ash/system/user/rounded_image_view.cc
@@ -1,3 +1,4 @@
+
 // 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.
@@ -27,7 +28,7 @@
   // Try to get the best image quality for the avatar.
   resized_image_ = gfx::ImageSkiaOperations::CreateResizedImage(
       image, skia::ImageOperations::RESIZE_BEST, size);
-  if (GetWidget() && visible()) {
+  if (GetWidget() && GetVisible()) {
     PreferredSizeChanged();
     SchedulePaint();
   }
diff --git a/ash/system/virtual_keyboard/virtual_keyboard_tray_unittest.cc b/ash/system/virtual_keyboard/virtual_keyboard_tray_unittest.cc
index d7aa47f8..7f1c5a3 100644
--- a/ash/system/virtual_keyboard/virtual_keyboard_tray_unittest.cc
+++ b/ash/system/virtual_keyboard/virtual_keyboard_tray_unittest.cc
@@ -42,7 +42,7 @@
   StatusAreaWidget* status = StatusAreaWidgetTestHelper::GetStatusAreaWidget();
   VirtualKeyboardTray* tray = status->virtual_keyboard_tray_for_testing();
   tray->SetVisible(true);
-  ASSERT_TRUE(tray->visible());
+  ASSERT_TRUE(tray->GetVisible());
 
   // First tap should show the virtual keyboard.
   tray->PerformAction(ui::GestureEvent(
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc
index b5a7c8a..525f2f7 100644
--- a/ash/wm/desks/desks_unittests.cc
+++ b/ash/wm/desks/desks_unittests.cc
@@ -66,7 +66,7 @@
   const gfx::Point mini_view_center =
       desk_mini_view->GetBoundsInScreen().CenterPoint();
   event_generator->MoveMouseTo(mini_view_center);
-  EXPECT_TRUE(desk_mini_view->close_desk_button()->visible());
+  EXPECT_TRUE(desk_mini_view->close_desk_button()->GetVisible());
   // Move to the center of the close button and click.
   event_generator->MoveMouseTo(
       desk_mini_view->close_desk_button()->GetBoundsInScreen().CenterPoint());
@@ -240,7 +240,7 @@
   // new desk button is enabled.
   DCHECK(desks_bar_view);
   EXPECT_TRUE(desks_bar_view->mini_views().empty());
-  EXPECT_TRUE(desks_bar_view->new_desk_button()->enabled());
+  EXPECT_TRUE(desks_bar_view->new_desk_button()->GetEnabled());
 
   // Click many times on the new desk button and expect only the max number of
   // desks will be created, and the button is no longer enabled.
@@ -257,16 +257,16 @@
   EXPECT_EQ(controller->desks().size(), desks_bar_view->mini_views().size());
   EXPECT_FALSE(controller->CanCreateDesks());
   EXPECT_TRUE(controller->CanRemoveDesks());
-  EXPECT_FALSE(desks_bar_view->new_desk_button()->enabled());
+  EXPECT_FALSE(desks_bar_view->new_desk_button()->GetEnabled());
 
   // Hover over one of the mini_views, and expect that the close button becomes
   // visible.
   const auto* mini_view = desks_bar_view->mini_views().back().get();
-  EXPECT_FALSE(mini_view->close_desk_button()->visible());
+  EXPECT_FALSE(mini_view->close_desk_button()->GetVisible());
   const gfx::Point mini_view_center =
       mini_view->GetBoundsInScreen().CenterPoint();
   event_generator->MoveMouseTo(mini_view_center);
-  EXPECT_TRUE(mini_view->close_desk_button()->visible());
+  EXPECT_TRUE(mini_view->close_desk_button()->GetVisible());
 
   // Use the close button to close the desk.
   event_generator->MoveMouseTo(
@@ -277,7 +277,7 @@
   EXPECT_EQ(desks_util::kMaxNumberOfDesks - 1, controller->desks().size());
   EXPECT_EQ(controller->desks().size(), desks_bar_view->mini_views().size());
   EXPECT_TRUE(controller->CanCreateDesks());
-  EXPECT_TRUE(desks_bar_view->new_desk_button()->enabled());
+  EXPECT_TRUE(desks_bar_view->new_desk_button()->GetEnabled());
 
   // Exit overview mode and re-enter. Since we have more than one pre-existing
   // desks, their mini_views should be created upon construction of the desks
@@ -296,7 +296,7 @@
 
   DCHECK(desks_bar_view);
   EXPECT_EQ(controller->desks().size(), desks_bar_view->mini_views().size());
-  EXPECT_TRUE(desks_bar_view->new_desk_button()->enabled());
+  EXPECT_TRUE(desks_bar_view->new_desk_button()->GetEnabled());
 }
 
 TEST_F(DesksTest, DeskActivation) {
@@ -573,7 +573,7 @@
   EXPECT_FALSE(desk_4->is_active());
   const auto* mini_view = desks_bar_view->mini_views().back().get();
   EXPECT_EQ(desk_4, mini_view->desk());
-  EXPECT_FALSE(mini_view->close_desk_button()->visible());
+  EXPECT_FALSE(mini_view->close_desk_button()->GetVisible());
   const gfx::Point mini_view_center =
       mini_view->GetBoundsInScreen().CenterPoint();
   auto* event_generator = GetEventGenerator();
diff --git a/ash/wm/overview/drop_target_view.cc b/ash/wm/overview/drop_target_view.cc
index 63324bd..52f9d8b 100644
--- a/ash/wm/overview/drop_target_view.cc
+++ b/ash/wm/overview/drop_target_view.cc
@@ -71,7 +71,7 @@
 }
 
 void DropTargetView::UpdateBackgroundVisibility(bool visible) {
-  if (background_view_->visible() == visible)
+  if (background_view_->GetVisible() == visible)
     return;
   background_view_->SetVisible(visible);
 }
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index 9ba48d2..ab8b487 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -2409,9 +2409,9 @@
   // Only very tall and very wide windows will have a backdrop. The backdrop
   // only gets created if we need it once during the overview session.
   ASSERT_TRUE(GetBackdropView(wide_item));
-  EXPECT_TRUE(GetBackdropView(wide_item)->visible());
+  EXPECT_TRUE(GetBackdropView(wide_item)->GetVisible());
   EXPECT_TRUE(GetBackdropView(tall_item));
-  ASSERT_TRUE(GetBackdropView(tall_item)->visible());
+  ASSERT_TRUE(GetBackdropView(tall_item)->GetVisible());
   EXPECT_FALSE(GetBackdropView(normal_item));
 
   display::Screen* screen = display::Screen::GetScreen();
@@ -2423,9 +2423,9 @@
   // After rotation the former wide window will be a normal window and its
   // backdrop will still be there but invisible.
   ASSERT_TRUE(GetBackdropView(wide_item));
-  EXPECT_FALSE(GetBackdropView(wide_item)->visible());
+  EXPECT_FALSE(GetBackdropView(wide_item)->GetVisible());
   EXPECT_TRUE(GetBackdropView(tall_item));
-  ASSERT_TRUE(GetBackdropView(tall_item)->visible());
+  ASSERT_TRUE(GetBackdropView(tall_item)->GetVisible());
   EXPECT_FALSE(GetBackdropView(normal_item));
 
   // Test that leaving overview mode cleans up properly.
diff --git a/ash/wm/splitview/split_view_divider_handler_view.cc b/ash/wm/splitview/split_view_divider_handler_view.cc
index cf2cade..70f3fea 100644
--- a/ash/wm/splitview/split_view_divider_handler_view.cc
+++ b/ash/wm/splitview/split_view_divider_handler_view.cc
@@ -92,7 +92,7 @@
 
  private:
   void StartAnimation() {
-    DCHECK(!white_handler_view_->visible());
+    DCHECK(!white_handler_view_->GetVisible());
     white_handler_view_->SetVisible(true);
     DCHECK(!is_animating());
     Show();
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 04e650d..d294d8a 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -2704,6 +2704,7 @@
     "time/pr_time_unittest.cc",
     "time/time_unittest.cc",
     "time/time_win_unittest.cc",
+    "timer/elapsed_timer_unittest.cc",
     "timer/hi_res_timer_manager_unittest.cc",
     "timer/lap_timer_unittest.cc",
     "timer/mock_timer_unittest.cc",
diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h
index aab27f3..3cb0f10 100644
--- a/base/allocator/partition_allocator/partition_alloc.h
+++ b/base/allocator/partition_allocator/partition_alloc.h
@@ -126,7 +126,7 @@
   ALWAYS_INLINE void* Alloc(size_t size, const char* type_name);
   ALWAYS_INLINE void* AllocFlags(int flags, size_t size, const char* type_name);
 
-  void PurgeMemory(int flags);
+  void PurgeMemory(int flags) override;
 
   void DumpStats(const char* partition_name,
                  bool is_light_dump,
@@ -166,7 +166,7 @@
 
   ALWAYS_INLINE size_t ActualSize(size_t size);
 
-  void PurgeMemory(int flags);
+  void PurgeMemory(int flags) override;
 
   void DumpStats(const char* partition_name,
                  bool is_light_dump,
diff --git a/base/allocator/partition_allocator/partition_root_base.h b/base/allocator/partition_allocator/partition_root_base.h
index c804504..9e971f9f 100644
--- a/base/allocator/partition_allocator/partition_root_base.h
+++ b/base/allocator/partition_allocator/partition_root_base.h
@@ -82,6 +82,9 @@
   ALWAYS_INLINE void DecommitSystemPages(void* address, size_t length);
   ALWAYS_INLINE void RecommitSystemPages(void* address, size_t length);
 
+  // Frees memory from this partition, if possible, by decommitting pages.
+  // |flags| is an OR of base::PartitionPurgeFlags.
+  virtual void PurgeMemory(int flags) = 0;
   void DecommitEmptyPages();
 };
 
diff --git a/base/android/record_user_action.cc b/base/android/record_user_action.cc
index 107db1c..ede4d61 100644
--- a/base/android/record_user_action.cc
+++ b/base/android/record_user_action.cc
@@ -37,7 +37,7 @@
     const JavaParamRef<jobject>& callback) {
   // Create a wrapper for the ActionCallback, so it can life on the heap until
   // RemoveActionCallbackForTesting() is called.
-  auto* wrapper = new ActionCallbackWrapper{base::Bind(
+  auto* wrapper = new ActionCallbackWrapper{base::BindRepeating(
       &OnActionRecorded, ScopedJavaGlobalRef<jobject>(env, callback))};
   base::AddActionCallback(wrapper->action_callback);
   return reinterpret_cast<intptr_t>(wrapper);
diff --git a/base/logging_unittest.cc b/base/logging_unittest.cc
index 68e8eb7..333fbf6 100644
--- a/base/logging_unittest.cc
+++ b/base/logging_unittest.cc
@@ -233,7 +233,7 @@
       WillRepeatedly(Return("check message"));
   EXPECT_CALL(uncalled_mock_log_source, Log()).Times(0);
 
-  ScopedLogAssertHandler scoped_assert_handler(base::Bind(LogSink));
+  ScopedLogAssertHandler scoped_assert_handler(base::BindRepeating(LogSink));
 
   CHECK(mock_log_source.Log()) << uncalled_mock_log_source.Log();
   PCHECK(!mock_log_source.Log()) << mock_log_source.Log();
@@ -582,12 +582,12 @@
   EXPECT_FALSE(DLOG_IS_ON(DCHECK));
 #elif defined(NDEBUG) && defined(DCHECK_ALWAYS_ON)
   // Release build with real DCHECKS.
-  ScopedLogAssertHandler scoped_assert_handler(base::Bind(LogSink));
+  ScopedLogAssertHandler scoped_assert_handler(base::BindRepeating(LogSink));
   EXPECT_TRUE(DCHECK_IS_ON());
   EXPECT_TRUE(DLOG_IS_ON(DCHECK));
 #else
   // Debug build.
-  ScopedLogAssertHandler scoped_assert_handler(base::Bind(LogSink));
+  ScopedLogAssertHandler scoped_assert_handler(base::BindRepeating(LogSink));
   EXPECT_TRUE(DCHECK_IS_ON());
   EXPECT_TRUE(DLOG_IS_ON(DCHECK));
 #endif
@@ -700,7 +700,7 @@
           base::StringPiece("Last assert must be caught by handler_a again"),
           _));
 
-  logging::ScopedLogAssertHandler scoped_handler_a(base::Bind(
+  logging::ScopedLogAssertHandler scoped_handler_a(base::BindRepeating(
       &MockLogAssertHandler::HandleLogAssert, base::Unretained(&handler_a)));
 
   // Using LOG(FATAL) rather than CHECK(false) here since log messages aren't
@@ -708,7 +708,7 @@
   LOG(FATAL) << "First assert must be caught by handler_a";
 
   {
-    logging::ScopedLogAssertHandler scoped_handler_b(base::Bind(
+    logging::ScopedLogAssertHandler scoped_handler_b(base::BindRepeating(
         &MockLogAssertHandler::HandleLogAssert, base::Unretained(&handler_b)));
     LOG(FATAL) << "Second assert must be caught by handler_b";
   }
@@ -754,7 +754,7 @@
   ::testing::StrictMock<MockLogAssertHandler> handler;
   EXPECT_CALL(handler, HandleLogAssert(_, _, _, _)).Times(2);
   {
-    logging::ScopedLogAssertHandler scoped_handler_b(base::Bind(
+    logging::ScopedLogAssertHandler scoped_handler_b(base::BindRepeating(
         &MockLogAssertHandler::HandleLogAssert, base::Unretained(&handler)));
     DCHECK(false);
     DCHECK_EQ(1, 2);
diff --git a/base/metrics/statistics_recorder_unittest.cc b/base/metrics/statistics_recorder_unittest.cc
index 9392e17..9609d90 100644
--- a/base/metrics/statistics_recorder_unittest.cc
+++ b/base/metrics/statistics_recorder_unittest.cc
@@ -453,13 +453,15 @@
   CallbackCheckWrapper callback_wrapper;
 
   bool result = base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
   EXPECT_TRUE(result);
 
   result = base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
   EXPECT_FALSE(result);
 }
 
@@ -472,15 +474,17 @@
   CallbackCheckWrapper callback_wrapper;
 
   bool result = base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
   EXPECT_TRUE(result);
   EXPECT_EQ(histogram->flags() & base::HistogramBase::kCallbackExists,
             base::HistogramBase::kCallbackExists);
 
   result = base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
   EXPECT_FALSE(result);
   EXPECT_EQ(histogram->flags() & base::HistogramBase::kCallbackExists,
             base::HistogramBase::kCallbackExists);
@@ -499,8 +503,9 @@
   CallbackCheckWrapper callback_wrapper;
 
   bool result = base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
   EXPECT_TRUE(result);
   EXPECT_EQ(histogram->flags() & base::HistogramBase::kCallbackExists,
             base::HistogramBase::kCallbackExists);
@@ -523,8 +528,9 @@
     CallbackCheckWrapper callback_wrapper;
 
     base::StatisticsRecorder::SetCallback(
-        "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                    base::Unretained(&callback_wrapper)));
+        "TestHistogram",
+        base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                            base::Unretained(&callback_wrapper)));
 
     histogram->Add(1);
 
@@ -540,8 +546,8 @@
 
     base::StatisticsRecorder::SetCallback(
         "TestLinearHistogram",
-        base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                   base::Unretained(&callback_wrapper)));
+        base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                            base::Unretained(&callback_wrapper)));
 
     linear_histogram->Add(1);
 
@@ -560,8 +566,8 @@
 
     base::StatisticsRecorder::SetCallback(
         "TestCustomHistogram",
-        base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                   base::Unretained(&callback_wrapper)));
+        base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                            base::Unretained(&callback_wrapper)));
 
     custom_histogram->Add(1);
 
@@ -577,8 +583,8 @@
 
     base::StatisticsRecorder::SetCallback(
         "TestSparseHistogram",
-        base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                   base::Unretained(&callback_wrapper)));
+        base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                            base::Unretained(&callback_wrapper)));
 
     custom_histogram->Add(1);
 
@@ -592,8 +598,9 @@
   CallbackCheckWrapper callback_wrapper;
 
   base::StatisticsRecorder::SetCallback(
-      "TestHistogram", base::Bind(&CallbackCheckWrapper::OnHistogramChanged,
-                                  base::Unretained(&callback_wrapper)));
+      "TestHistogram",
+      base::BindRepeating(&CallbackCheckWrapper::OnHistogramChanged,
+                          base::Unretained(&callback_wrapper)));
 
   HistogramBase* histogram = Histogram::FactoryGet("TestHistogram", 1, 1000, 10,
                                                    HistogramBase::kNoFlags);
diff --git a/base/task/lazy_task_runner_unittest.cc b/base/task/lazy_task_runner_unittest.cc
index 8494908..c3150fc 100644
--- a/base/task/lazy_task_runner_unittest.cc
+++ b/base/task/lazy_task_runner_unittest.cc
@@ -156,7 +156,7 @@
 }
 #endif  // defined(OS_WIN)
 
-TEST(TaskSchdulerLazyTaskRunnerTest, LazySequencedTaskRunnerReset) {
+TEST(LazyTaskRunnerTest, LazySequencedTaskRunnerReset) {
   for (int i = 0; i < 2; ++i) {
     test::ScopedTaskEnvironment scoped_task_environment;
     // If the TaskRunner isn't released when the test::ScopedTaskEnvironment
@@ -167,7 +167,7 @@
   }
 }
 
-TEST(TaskSchdulerLazyTaskRunnerTest, LazySingleThreadTaskRunnerReset) {
+TEST(LazyTaskRunnerTest, LazySingleThreadTaskRunnerReset) {
   for (int i = 0; i < 2; ++i) {
     test::ScopedTaskEnvironment scoped_task_environment;
     // If the TaskRunner isn't released when the test::ScopedTaskEnvironment
@@ -179,7 +179,7 @@
 }
 
 #if defined(OS_WIN)
-TEST(TaskSchdulerLazyTaskRunnerTest, LazyCOMSTATaskRunnerReset) {
+TEST(LazyTaskRunnerTest, LazyCOMSTATaskRunnerReset) {
   for (int i = 0; i < 2; ++i) {
     test::ScopedTaskEnvironment scoped_task_environment;
     // If the TaskRunner isn't released when the test::ScopedTaskEnvironment
diff --git a/base/task/thread_pool/test_task_factory.cc b/base/task/thread_pool/test_task_factory.cc
index d8534ee..ca29b1c 100644
--- a/base/task/thread_pool/test_task_factory.cc
+++ b/base/task/thread_pool/test_task_factory.cc
@@ -51,7 +51,7 @@
                                       PostNestedTask post_nested_task,
                                       OnceClosure after_task_closure) {
   if (post_nested_task == PostNestedTask::YES)
-    PostTask(PostNestedTask::NO, Closure());
+    PostTask(PostNestedTask::NO, OnceClosure());
 
   EXPECT_TRUE(task_runner_->RunsTasksInCurrentSequence());
 
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc
index da0ad4d..66a9242 100644
--- a/base/test/launcher/test_launcher.cc
+++ b/base/test/launcher/test_launcher.cc
@@ -699,7 +699,8 @@
 
   auto controller = base::FileDescriptorWatcher::WatchReadable(
       g_shutdown_pipe[0],
-      base::Bind(&TestLauncher::OnShutdownPipeReadable, Unretained(this)));
+      base::BindRepeating(&TestLauncher::OnShutdownPipeReadable,
+                          Unretained(this)));
 #endif  // defined(OS_POSIX)
 
   // Start the watchdog timer.
diff --git a/base/test/metrics/user_action_tester.cc b/base/test/metrics/user_action_tester.cc
index 29fee46..66fd7dc 100644
--- a/base/test/metrics/user_action_tester.cc
+++ b/base/test/metrics/user_action_tester.cc
@@ -12,8 +12,8 @@
 
 UserActionTester::UserActionTester()
     : task_runner_(new base::TestSimpleTaskRunner),
-      action_callback_(
-          base::Bind(&UserActionTester::OnUserAction, base::Unretained(this))) {
+      action_callback_(base::BindRepeating(&UserActionTester::OnUserAction,
+                                           base::Unretained(this))) {
   base::SetRecordActionTaskRunner(task_runner_);
   base::AddActionCallback(action_callback_);
 }
diff --git a/base/test/test_mock_time_task_runner_unittest.cc b/base/test/test_mock_time_task_runner_unittest.cc
index df8a2a2..c758525b 100644
--- a/base/test/test_mock_time_task_runner_unittest.cc
+++ b/base/test/test_mock_time_task_runner_unittest.cc
@@ -268,7 +268,7 @@
 
 TEST(TestMockTimeTaskRunnerTest, CancelPendingTask) {
   auto task_runner = MakeRefCounted<TestMockTimeTaskRunner>();
-  CancelableClosure task1(Bind([]() {}));
+  CancelableOnceClosure task1(DoNothing::Once());
   task_runner->PostDelayedTask(FROM_HERE, task1.callback(),
                                TimeDelta::FromSeconds(1));
   EXPECT_TRUE(task_runner->HasPendingTask());
@@ -277,19 +277,19 @@
   task1.Cancel();
   EXPECT_FALSE(task_runner->HasPendingTask());
 
-  CancelableClosure task2(Bind([]() {}));
+  CancelableOnceClosure task2(DoNothing::Once());
   task_runner->PostDelayedTask(FROM_HERE, task2.callback(),
                                TimeDelta::FromSeconds(1));
   task2.Cancel();
   EXPECT_EQ(0u, task_runner->GetPendingTaskCount());
 
-  CancelableClosure task3(Bind([]() {}));
+  CancelableOnceClosure task3(DoNothing::Once());
   task_runner->PostDelayedTask(FROM_HERE, task3.callback(),
                                TimeDelta::FromSeconds(1));
   task3.Cancel();
   EXPECT_EQ(TimeDelta::Max(), task_runner->NextPendingTaskDelay());
 
-  CancelableClosure task4(Bind([]() {}));
+  CancelableOnceClosure task4(DoNothing::Once());
   task_runner->PostDelayedTask(FROM_HERE, task4.callback(),
                                TimeDelta::FromSeconds(1));
   task4.Cancel();
@@ -299,7 +299,7 @@
 TEST(TestMockTimeTaskRunnerTest, NoFastForwardToCancelledTask) {
   auto task_runner = MakeRefCounted<TestMockTimeTaskRunner>();
   TimeTicks start_time = task_runner->NowTicks();
-  CancelableClosure task(Bind([]() {}));
+  CancelableOnceClosure task(DoNothing::Once());
   task_runner->PostDelayedTask(FROM_HERE, task.callback(),
                                TimeDelta::FromSeconds(1));
   EXPECT_EQ(TimeDelta::FromSeconds(1), task_runner->NextPendingTaskDelay());
diff --git a/base/test/trace_event_analyzer_unittest.cc b/base/test/trace_event_analyzer_unittest.cc
index a528d1c..259fd95 100644
--- a/base/test/trace_event_analyzer_unittest.cc
+++ b/base/test/trace_event_analyzer_unittest.cc
@@ -62,10 +62,9 @@
   base::WaitableEvent flush_complete_event(
       base::WaitableEvent::ResetPolicy::AUTOMATIC,
       base::WaitableEvent::InitialState::NOT_SIGNALED);
-  base::trace_event::TraceLog::GetInstance()->Flush(
-      base::Bind(&TraceEventAnalyzerTest::OnTraceDataCollected,
-                 base::Unretained(this),
-                 base::Unretained(&flush_complete_event)));
+  base::trace_event::TraceLog::GetInstance()->Flush(base::BindRepeating(
+      &TraceEventAnalyzerTest::OnTraceDataCollected, base::Unretained(this),
+      base::Unretained(&flush_complete_event)));
   flush_complete_event.Wait();
   buffer_.Finish();
 }
diff --git a/base/test/trace_to_file.cc b/base/test/trace_to_file.cc
index 3ad4463..6eef502 100644
--- a/base/test/trace_to_file.cc
+++ b/base/test/trace_to_file.cc
@@ -94,7 +94,7 @@
 
   trace_event::TraceResultBuffer buffer;
   buffer.SetOutputCallback(
-      Bind(&TraceToFile::TraceOutputCallback, Unretained(this)));
+      BindRepeating(&TraceToFile::TraceOutputCallback, Unretained(this)));
 
   // In tests we might not have a MessageLoop, create one if needed.
   std::unique_ptr<MessageLoop> message_loop;
@@ -102,8 +102,8 @@
     message_loop = std::make_unique<MessageLoop>();
 
   RunLoop run_loop;
-  trace_event::TraceLog::GetInstance()->Flush(
-      Bind(&OnTraceDataCollected, run_loop.QuitClosure(), Unretained(&buffer)));
+  trace_event::TraceLog::GetInstance()->Flush(BindRepeating(
+      &OnTraceDataCollected, run_loop.QuitClosure(), Unretained(&buffer)));
   run_loop.Run();
 
   AppendFileFooter();
diff --git a/base/threading/thread_checker_unittest.cc b/base/threading/thread_checker_unittest.cc
index 5fbbc528..b0acdb7 100644
--- a/base/threading/thread_checker_unittest.cc
+++ b/base/threading/thread_checker_unittest.cc
@@ -23,21 +23,21 @@
 // A thread that runs a callback.
 class RunCallbackThread : public SimpleThread {
  public:
-  explicit RunCallbackThread(const Closure& callback)
-      : SimpleThread("RunCallbackThread"), callback_(callback) {}
+  explicit RunCallbackThread(OnceClosure callback)
+      : SimpleThread("RunCallbackThread"), callback_(std::move(callback)) {}
 
  private:
   // SimpleThread:
-  void Run() override { callback_.Run(); }
+  void Run() override { std::move(callback_).Run(); }
 
-  const Closure callback_;
+  OnceClosure callback_;
 
   DISALLOW_COPY_AND_ASSIGN(RunCallbackThread);
 };
 
 // Runs a callback on a new thread synchronously.
-void RunCallbackOnNewThreadSynchronously(const Closure& callback) {
-  RunCallbackThread run_callback_thread(callback);
+void RunCallbackOnNewThreadSynchronously(OnceClosure callback) {
+  RunCallbackThread run_callback_thread(std::move(callback));
   run_callback_thread.Start();
   run_callback_thread.Join();
 }
@@ -125,7 +125,7 @@
 TEST(ThreadCheckerTest, DisallowedDifferentThreadsNoSequenceToken) {
   ThreadCheckerImpl thread_checker;
   RunCallbackOnNewThreadSynchronously(
-      Bind(&ExpectNotCalledOnValidThread, Unretained(&thread_checker)));
+      BindOnce(&ExpectNotCalledOnValidThread, Unretained(&thread_checker)));
 }
 
 TEST(ThreadCheckerTest, DisallowedDifferentThreadsSameSequence) {
@@ -138,7 +138,7 @@
   ThreadCheckerImpl thread_checker;
   EXPECT_TRUE(thread_checker.CalledOnValidThread());
 
-  RunCallbackOnNewThreadSynchronously(Bind(
+  RunCallbackOnNewThreadSynchronously(BindOnce(
       &ExpectNotCalledOnValidThreadWithSequenceTokenAndThreadTaskRunnerHandle,
       Unretained(&thread_checker), sequence_token));
 }
@@ -173,7 +173,7 @@
   // Verify that CalledOnValidThread() returns true when called on a different
   // thread after a call to DetachFromThread().
   RunCallbackOnNewThreadSynchronously(
-      Bind(&ExpectCalledOnValidThread, Unretained(&thread_checker)));
+      BindOnce(&ExpectCalledOnValidThread, Unretained(&thread_checker)));
 
   EXPECT_FALSE(thread_checker.CalledOnValidThread());
 }
@@ -189,7 +189,7 @@
   // Verify that CalledOnValidThread() returns true when called on a different
   // thread after a call to DetachFromThread().
   RunCallbackOnNewThreadSynchronously(
-      Bind(&ExpectCalledOnValidThread, Unretained(&thread_checker)));
+      BindOnce(&ExpectCalledOnValidThread, Unretained(&thread_checker)));
 
   EXPECT_FALSE(thread_checker.CalledOnValidThread());
 }
@@ -232,14 +232,14 @@
 TEST_F(ThreadCheckerMacroTest, Macros) {
   THREAD_CHECKER(my_thread_checker);
 
-  RunCallbackOnNewThreadSynchronously(Bind(
+  RunCallbackOnNewThreadSynchronously(BindOnce(
       &ThreadCheckerMacroTest::ExpectDeathOnOtherThread, Unretained(this)));
 
   DETACH_FROM_THREAD(my_thread_checker_);
 
   RunCallbackOnNewThreadSynchronously(
-      Bind(&ThreadCheckerMacroTest::ExpectNoDeathOnOtherThreadAfterDetach,
-           Unretained(this)));
+      BindOnce(&ThreadCheckerMacroTest::ExpectNoDeathOnOtherThreadAfterDetach,
+               Unretained(this)));
 }
 
 }  // namespace base
diff --git a/base/timer/elapsed_timer.cc b/base/timer/elapsed_timer.cc
index ca86ccd..74d2f55 100644
--- a/base/timer/elapsed_timer.cc
+++ b/base/timer/elapsed_timer.cc
@@ -6,13 +6,9 @@
 
 namespace base {
 
-ElapsedTimer::ElapsedTimer() {
-  begin_ = TimeTicks::Now();
-}
+ElapsedTimer::ElapsedTimer() : begin_(TimeTicks::Now()) {}
 
-ElapsedTimer::ElapsedTimer(ElapsedTimer&& other) {
-  begin_ = other.begin_;
-}
+ElapsedTimer::ElapsedTimer(ElapsedTimer&& other) : begin_(other.begin_) {}
 
 void ElapsedTimer::operator=(ElapsedTimer&& other) {
   begin_ = other.begin_;
@@ -22,4 +18,12 @@
   return TimeTicks::Now() - begin_;
 }
 
+ElapsedThreadTimer::ElapsedThreadTimer()
+    : is_supported_(ThreadTicks::IsSupported()),
+      begin_(is_supported_ ? ThreadTicks::Now() : ThreadTicks()) {}
+
+TimeDelta ElapsedThreadTimer::Elapsed() const {
+  return is_supported_ ? (ThreadTicks::Now() - begin_) : TimeDelta();
+}
+
 }  // namespace base
diff --git a/base/timer/elapsed_timer.h b/base/timer/elapsed_timer.h
index b75d46a..59de957 100644
--- a/base/timer/elapsed_timer.h
+++ b/base/timer/elapsed_timer.h
@@ -31,6 +31,24 @@
   DISALLOW_COPY_AND_ASSIGN(ElapsedTimer);
 };
 
+// A simple wrapper around ThreadTicks::Now().
+class BASE_EXPORT ElapsedThreadTimer {
+ public:
+  ElapsedThreadTimer();
+
+  // Returns the ThreadTicks time elapsed since object construction.
+  // Only valid if |is_supported()| returns true, otherwise returns TimeDelta().
+  TimeDelta Elapsed() const;
+
+  bool is_supported() const { return is_supported_; }
+
+ private:
+  const bool is_supported_;
+  const ThreadTicks begin_;
+
+  DISALLOW_COPY_AND_ASSIGN(ElapsedThreadTimer);
+};
+
 }  // namespace base
 
 #endif  // BASE_TIMER_ELAPSED_TIMER_H_
diff --git a/base/timer/elapsed_timer_unittest.cc b/base/timer/elapsed_timer_unittest.cc
new file mode 100644
index 0000000..8b65985
--- /dev/null
+++ b/base/timer/elapsed_timer_unittest.cc
@@ -0,0 +1,76 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/timer/elapsed_timer.h"
+
+#include "base/threading/platform_thread.h"
+#include "base/time/time.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+
+namespace {
+
+constexpr TimeDelta kSleepDuration = TimeDelta::FromMilliseconds(20);
+
+}
+
+TEST(ElapsedTimerTest, Simple) {
+  ElapsedTimer timer;
+
+  PlatformThread::Sleep(kSleepDuration);
+  EXPECT_GE(timer.Elapsed(), kSleepDuration);
+
+  // Can call |Elapsed()| multiple times.
+  PlatformThread::Sleep(kSleepDuration);
+  EXPECT_GE(timer.Elapsed(), 2 * kSleepDuration);
+}
+
+class ElapsedThreadTimerTest : public ::testing::Test {
+ protected:
+  void SetUp() override {
+    if (ThreadTicks::IsSupported())
+      ThreadTicks::WaitUntilInitialized();
+  }
+};
+
+TEST_F(ElapsedThreadTimerTest, IsSupported) {
+  ElapsedThreadTimer timer;
+  if (!ThreadTicks::IsSupported()) {
+    EXPECT_FALSE(timer.is_supported());
+    EXPECT_EQ(TimeDelta(), timer.Elapsed());
+  } else {
+    EXPECT_TRUE(timer.is_supported());
+  }
+}
+
+TEST_F(ElapsedThreadTimerTest, Simple) {
+  if (!ThreadTicks::IsSupported())
+    return;
+
+  ElapsedThreadTimer timer;
+  EXPECT_TRUE(timer.is_supported());
+
+  // 1ms of work.
+  constexpr TimeDelta kLoopingTime = TimeDelta::FromMilliseconds(1);
+  const ThreadTicks start_ticks = ThreadTicks::Now();
+  while (ThreadTicks::Now() - start_ticks < kLoopingTime) {
+  }
+
+  EXPECT_GE(timer.Elapsed(), kLoopingTime);
+}
+
+TEST_F(ElapsedThreadTimerTest, DoesNotCountSleep) {
+  if (!ThreadTicks::IsSupported())
+    return;
+
+  ElapsedThreadTimer timer;
+  EXPECT_TRUE(timer.is_supported());
+
+  PlatformThread::Sleep(kSleepDuration);
+  // Sleep time is not accounted for.
+  EXPECT_LT(timer.Elapsed(), kSleepDuration);
+}
+
+}  // namespace base
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
index 97d3453..8b1bd7a 100644
--- a/base/trace_event/memory_dump_manager.cc
+++ b/base/trace_event/memory_dump_manager.cc
@@ -283,9 +283,8 @@
   return dump_thread_->task_runner();
 }
 
-void MemoryDumpManager::CreateProcessDump(
-    const MemoryDumpRequestArgs& args,
-    const ProcessMemoryDumpCallback& callback) {
+void MemoryDumpManager::CreateProcessDump(const MemoryDumpRequestArgs& args,
+                                          ProcessMemoryDumpCallback callback) {
   char guid_str[20];
   sprintf(guid_str, "0x%" PRIx64, args.dump_guid);
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(kTraceCategory, "ProcessMemoryDump",
@@ -307,7 +306,8 @@
     AutoLock lock(lock_);
 
     pmd_async_state.reset(new ProcessMemoryDumpAsyncState(
-        args, dump_providers_, callback, GetOrCreateBgTaskRunnerLocked()));
+        args, dump_providers_, std::move(callback),
+        GetOrCreateBgTaskRunnerLocked()));
   }
 
   // Start the process dump. This involves task runner hops as specified by the
@@ -473,10 +473,9 @@
   TRACE_EVENT0(kTraceCategory, "MemoryDumpManager::FinishAsyncProcessDump");
 
   if (!pmd_async_state->callback.is_null()) {
-    pmd_async_state->callback.Run(
-        true /* success */, dump_guid,
-        std::move(pmd_async_state->process_memory_dump));
-    pmd_async_state->callback.Reset();
+    std::move(pmd_async_state->callback)
+        .Run(true /* success */, dump_guid,
+             std::move(pmd_async_state->process_memory_dump));
   }
 
   TRACE_EVENT_NESTABLE_ASYNC_END0(kTraceCategory, "ProcessMemoryDump",
@@ -525,7 +524,7 @@
     ProcessMemoryDumpCallback callback,
     scoped_refptr<SequencedTaskRunner> dump_thread_task_runner)
     : req_args(req_args),
-      callback(callback),
+      callback(std::move(callback)),
       callback_task_runner(ThreadTaskRunnerHandle::Get()),
       dump_thread_task_runner(std::move(dump_thread_task_runner)) {
   pending_dump_providers.reserve(dump_providers.size());
diff --git a/base/trace_event/memory_dump_manager.h b/base/trace_event/memory_dump_manager.h
index e7e4cb3..476d9cd 100644
--- a/base/trace_event/memory_dump_manager.h
+++ b/base/trace_event/memory_dump_manager.h
@@ -116,7 +116,7 @@
   // thread on which CreateProcessDump() was called. This method should only be
   // used by the memory-infra service while creating a global memory dump.
   void CreateProcessDump(const MemoryDumpRequestArgs& args,
-                         const ProcessMemoryDumpCallback& callback);
+                         ProcessMemoryDumpCallback callback);
 
   // Lets tests see if a dump provider is registered.
   bool IsDumpProviderRegisteredForTesting(MemoryDumpProvider*);
diff --git a/base/trace_event/memory_dump_manager_unittest.cc b/base/trace_event/memory_dump_manager_unittest.cc
index 596da1c..2710f38 100644
--- a/base/trace_event/memory_dump_manager_unittest.cc
+++ b/base/trace_event/memory_dump_manager_unittest.cc
@@ -206,20 +206,21 @@
     //     bool success,
     //     std::unique_ptr<ProcessMemoryDump> pmd)
     // The extra arguments prepended to the |callback| below (the ones with the
-    // "curried_" prefix) are just passed from the Bind(). This is just to get
-    // around the limitation of Bind() in supporting only capture-less lambdas.
-    ProcessMemoryDumpCallback callback = Bind(
-        [](bool* curried_success, Closure curried_quit_closure,
+    // "curried_" prefix) are just passed from the BindOnce(). This is just to
+    // get around the limitation of BindOnce() in supporting only capture-less
+    // lambdas.
+    ProcessMemoryDumpCallback callback = BindOnce(
+        [](bool* curried_success, OnceClosure curried_quit_closure,
            uint64_t curried_expected_guid, bool success, uint64_t dump_guid,
            std::unique_ptr<ProcessMemoryDump> pmd) {
           *curried_success = success;
           EXPECT_EQ(curried_expected_guid, dump_guid);
-          ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
-                                                  curried_quit_closure);
+          ThreadTaskRunnerHandle::Get()->PostTask(
+              FROM_HERE, std::move(curried_quit_closure));
         },
         Unretained(&success), run_loop.QuitClosure(), test_guid);
 
-    mdm_->CreateProcessDump(request_args, callback);
+    mdm_->CreateProcessDump(request_args, std::move(callback));
     run_loop.Run();
     return success;
   }
@@ -445,11 +446,11 @@
     // thread the MDP belongs to.
     {
       RunLoop run_loop;
-      Closure unregistration =
-          Bind(&MemoryDumpManager::UnregisterDumpProvider,
-               Unretained(mdm_.get()), Unretained(mdps.back().get()));
-      threads.back()->task_runner()->PostTaskAndReply(FROM_HERE, unregistration,
-                                                      run_loop.QuitClosure());
+      OnceClosure unregistration =
+          BindOnce(&MemoryDumpManager::UnregisterDumpProvider,
+                   Unretained(mdm_.get()), Unretained(mdps.back().get()));
+      threads.back()->task_runner()->PostTaskAndReply(
+          FROM_HERE, std::move(unregistration), run_loop.QuitClosure());
       run_loop.Run();
     }
     mdps.pop_back();
diff --git a/base/trace_event/memory_dump_request_args.h b/base/trace_event/memory_dump_request_args.h
index f854a4b..c50a1cb 100644
--- a/base/trace_event/memory_dump_request_args.h
+++ b/base/trace_event/memory_dump_request_args.h
@@ -82,7 +82,7 @@
   uint64_t dump_guid;
 };
 
-using ProcessMemoryDumpCallback = Callback<
+using ProcessMemoryDumpCallback = OnceCallback<
     void(bool success, uint64_t dump_guid, std::unique_ptr<ProcessMemoryDump>)>;
 
 BASE_EXPORT const char* MemoryDumpTypeToString(const MemoryDumpType& dump_type);
diff --git a/base/trace_event/memory_dump_scheduler_unittest.cc b/base/trace_event/memory_dump_scheduler_unittest.cc
index d5993b6..8fd4812 100644
--- a/base/trace_event/memory_dump_scheduler_unittest.cc
+++ b/base/trace_event/memory_dump_scheduler_unittest.cc
@@ -52,7 +52,8 @@
   const uint32_t kTicks = 5;
   MemoryDumpScheduler::Config config;
   config.triggers.push_back({kLevelOfDetail, kPeriodMs});
-  config.callback = Bind(&CallbackWrapper::OnTick, Unretained(&on_tick_));
+  config.callback =
+      BindRepeating(&CallbackWrapper::OnTick, Unretained(&on_tick_));
 
   testing::InSequence sequence;
   EXPECT_CALL(on_tick_, OnTick(_)).Times(kTicks - 1);
@@ -87,7 +88,8 @@
   const MemoryDumpLevelOfDetail kDetailed = MemoryDumpLevelOfDetail::DETAILED;
   config.triggers.push_back({kLight, kPeriodLightMs});
   config.triggers.push_back({kDetailed, kPeriodDetailedMs});
-  config.callback = Bind(&CallbackWrapper::OnTick, Unretained(&on_tick_));
+  config.callback =
+      BindRepeating(&CallbackWrapper::OnTick, Unretained(&on_tick_));
 
   TimeTicks t1, t2, t3;
 
@@ -125,13 +127,14 @@
 
   MemoryDumpScheduler::Config light_config;
   light_config.triggers.push_back({MemoryDumpLevelOfDetail::LIGHT, kPeriodMs});
-  light_config.callback = Bind(&CallbackWrapper::OnTick, Unretained(&on_tick_));
+  light_config.callback =
+      BindRepeating(&CallbackWrapper::OnTick, Unretained(&on_tick_));
 
   MemoryDumpScheduler::Config detailed_config;
   detailed_config.triggers.push_back(
       {MemoryDumpLevelOfDetail::DETAILED, kPeriodMs});
   detailed_config.callback =
-      Bind(&CallbackWrapper::OnTick, Unretained(&on_tick_));
+      BindRepeating(&CallbackWrapper::OnTick, Unretained(&on_tick_));
 
   testing::InSequence sequence;
   EXPECT_CALL(on_tick_, OnTick(MemoryDumpLevelOfDetail::LIGHT))
@@ -163,7 +166,8 @@
   const uint32_t kTicks = 3;
   MemoryDumpScheduler::Config config;
   config.triggers.push_back({MemoryDumpLevelOfDetail::DETAILED, kPeriodMs});
-  config.callback = Bind(&CallbackWrapper::OnTick, Unretained(&on_tick_));
+  config.callback =
+      BindRepeating(&CallbackWrapper::OnTick, Unretained(&on_tick_));
 
   scoped_refptr<TaskRunner> expected_task_runner = bg_thread_.task_runner();
   testing::InSequence sequence;
diff --git a/base/trace_event/trace_event_android.cc b/base/trace_event/trace_event_android.cc
index c699334..480ba16 100644
--- a/base/trace_event/trace_event_android.cc
+++ b/base/trace_event/trace_event_android.cc
@@ -84,7 +84,7 @@
                       WaitableEvent* complete_event) {
   trace_log->SetDisabled();
   // Delete the buffered trace events as they have been sent to atrace.
-  trace_log->Flush(Bind(&NoOpOutputCallback, complete_event));
+  trace_log->Flush(BindRepeating(&NoOpOutputCallback, complete_event));
 }
 
 }  // namespace
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc
index eecf5e4c..a831b9b 100644
--- a/base/trace_event/trace_event_unittest.cc
+++ b/base/trace_event/trace_event_unittest.cc
@@ -130,19 +130,19 @@
   }
 
   void CancelTraceAsync(WaitableEvent* flush_complete_event) {
-    TraceLog::GetInstance()->CancelTracing(
-        base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
-                   base::Unretained(static_cast<TraceEventTestFixture*>(this)),
-                   base::Unretained(flush_complete_event)));
+    TraceLog::GetInstance()->CancelTracing(base::BindRepeating(
+        &TraceEventTestFixture::OnTraceDataCollected,
+        base::Unretained(static_cast<TraceEventTestFixture*>(this)),
+        base::Unretained(flush_complete_event)));
   }
 
   void EndTraceAndFlushAsync(WaitableEvent* flush_complete_event) {
     TraceLog::GetInstance()->SetDisabled(TraceLog::RECORDING_MODE |
                                          TraceLog::FILTERING_MODE);
-    TraceLog::GetInstance()->Flush(
-        base::Bind(&TraceEventTestFixture::OnTraceDataCollected,
-                   base::Unretained(static_cast<TraceEventTestFixture*>(this)),
-                   base::Unretained(flush_complete_event)));
+    TraceLog::GetInstance()->Flush(base::BindRepeating(
+        &TraceEventTestFixture::OnTraceDataCollected,
+        base::Unretained(static_cast<TraceEventTestFixture*>(this)),
+        base::Unretained(flush_complete_event)));
   }
 
   void SetUp() override {
@@ -2332,7 +2332,7 @@
 
   if (base::MatchPattern(category_group_name, "benchmark") &&
       base::MatchPattern(event_name, "granularly_whitelisted")) {
-    *arg_filter = base::Bind(&IsArgNameWhitelisted);
+    *arg_filter = base::BindRepeating(&IsArgNameWhitelisted);
     return true;
   }
 
@@ -2343,7 +2343,7 @@
 
 TEST_F(TraceEventTestFixture, ArgsWhitelisting) {
   TraceLog::GetInstance()->SetArgumentFilterPredicate(
-      base::Bind(&IsTraceEventArgsWhitelisted));
+      base::BindRepeating(&IsTraceEventArgsWhitelisted));
 
   TraceLog::GetInstance()->SetEnabled(
     TraceConfig(kRecordAllCategoryFilter, "enable-argument-filter"),
diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h
index 693604e9..360e123 100644
--- a/base/trace_event/trace_log.h
+++ b/base/trace_event/trace_log.h
@@ -188,8 +188,9 @@
   // callback will be called directly with (empty_string, false) to indicate
   // the end of this unsuccessful flush. Flush does the serialization
   // on the same thread if the caller doesn't set use_worker_thread explicitly.
-  typedef base::Callback<void(const scoped_refptr<base::RefCountedString>&,
-                              bool has_more_events)> OutputCallback;
+  using OutputCallback =
+      base::RepeatingCallback<void(const scoped_refptr<base::RefCountedString>&,
+                                   bool has_more_events)>;
   void Flush(const OutputCallback& cb, bool use_worker_thread = false);
 
   // Cancels tracing and discards collected data.
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 704a1db..7ad064a 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8913436241537136912
\ No newline at end of file
+8913411792119227504
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 613e233..1e12f719 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8913468411235898544
\ No newline at end of file
+8913411115352177952
\ No newline at end of file
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index 7878cd0..1bcb233 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -627,7 +627,11 @@
 } else if (is_mac) {
   chrome_helper_name = chrome_product_full_name + " Helper"
   chrome_framework_name = chrome_product_full_name + " Framework"
-  chrome_framework_version = "A"
+  if (new_mac_bundle_structure) {
+    chrome_framework_version = chrome_version_full
+  } else {
+    chrome_framework_version = "A"
+  }
 
   group("chrome") {
     deps = [
@@ -698,6 +702,7 @@
       ":chrome_app_strings_bundle_data",
       ":chrome_resources",
       ":chrome_versioned_bundle_data",
+      "//chrome/common:buildflags",
       "//chrome/common:version_header",
     ]
 
@@ -800,14 +805,17 @@
   bundle_data("chrome_versioned_bundle_data") {
     sources = [
       "$root_out_dir/$chrome_framework_name.framework",
-      "$root_out_dir/$chrome_helper_name.app",
     ]
-    outputs = [
-      "{{bundle_contents_dir}}/Versions/$chrome_version_full/{{source_file_part}}",
-    ]
+    if (new_mac_bundle_structure) {
+      outputs = [
+        "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}",
+      ]
+    } else {
+      outputs = [
+        "{{bundle_contents_dir}}/Versions/$chrome_version_full/{{source_file_part}}",
+      ]
+    }
     public_deps = [
-      ":chrome_helper_app",
-
       # Before bundling the versioned app components, delete any existing
       # versions.
       ":clean_up_old_versions",
@@ -822,22 +830,57 @@
       ":verify_chrome_framework_order",
     ]
 
+    if (!new_mac_bundle_structure) {
+      sources += [ "$root_out_dir/$chrome_helper_name.app" ]
+      public_deps += [ ":chrome_helper_app" ]
+    }
+
     if (enable_widevine_cdm_host_verification) {
-      sources += [ "$root_out_dir/Widevine Resources.bundle" ]
-      public_deps += [ ":widevine_resources_bundle" ]
+      if (new_mac_bundle_structure) {
+        # The :chrome_framework_widevine_signature target copies into the
+        # :chrome_framework bundle. But because the signing file depends on the
+        # framework itself, that would cause a cyclical dependency. Instead,
+        # this dependency directly copies the file into the framework's
+        # resources directory.
+        public_deps += [ ":chrome_framework_widevine_signature" ]
+      } else {
+        sources += [ "$root_out_dir/Widevine Resources.bundle" ]
+        public_deps += [ ":widevine_resources_bundle" ]
+      }
     }
   }
 
   action("clean_up_old_versions") {
     script = "//chrome/tools/build/mac/clean_up_old_versions.py"
+
+    _stamp_file = "$root_gen_dir/run_$target_name.stamp"
+
     outputs = [
-      "$root_gen_dir/run_$target_name.stamp",
+      _stamp_file,
     ]
+
+    if (new_mac_bundle_structure) {
+      _versions_dir = "$root_out_dir/$chrome_product_full_name.app/Contents/Frameworks/$chrome_framework_name.framework/Versions"
+    } else {
+      _versions_dir =
+          "$root_out_dir/$chrome_product_full_name.app/Contents/Versions"
+    }
+
     args = [
-             rebase_path("$root_out_dir/$chrome_product_full_name.app",
-                         root_build_dir),
-             "$chrome_version_full",
-           ] + rebase_path(outputs, root_build_dir)
+      "--versions-dir",
+      rebase_path(_versions_dir, root_build_dir),
+      "--stamp",
+      rebase_path(_stamp_file, root_build_dir),
+      "--keep",
+      chrome_version_full,
+    ]
+
+    if (new_mac_bundle_structure) {
+      args += [
+        "--keep",
+        "Current",
+      ]
+    }
   }
 
   tweak_info_plist("chrome_helper_plist") {
@@ -877,6 +920,7 @@
     defines = [ "HELPER_EXECUTABLE" ]
 
     deps = [
+      "//chrome/common:buildflags",
       "//chrome/common:version_header",
       "//sandbox/mac:seatbelt",
     ]
@@ -884,12 +928,21 @@
     ldflags = []
 
     if (is_component_build) {
-      ldflags += [
-        # The helper is in Chromium.app/Contents/Versions/X/Chromium Helper.app/Contents/MacOS/
-        # so set rpath up to the base.
-        "-rpath",
-        "@loader_path/../../../../../../..",
-      ]
+      if (new_mac_bundle_structure) {
+        ldflags += [
+          # The helper is in Chromium.app/Contents/Frameworks/Chromium Framework.framework/Versions/X/Helpers/Chromium Helper.app/Contents/MacOS
+          # so set rpath up to the base.
+          "-rpath",
+          "@loader_path/../../../../../../../../../..",
+        ]
+      } else {
+        ldflags += [
+          # The helper is in Chromium.app/Contents/Versions/X/Chromium Helper.app/Contents/MacOS/
+          # so set rpath up to the base.
+          "-rpath",
+          "@loader_path/../../../../../../..",
+        ]
+      }
     }
 
     if (enable_stripping) {
@@ -917,6 +970,11 @@
       "//components/crash/content/app:chrome_crashpad_handler",
     ]
 
+    if (new_mac_bundle_structure) {
+      sources += [ "$root_out_dir/$chrome_helper_name.app" ]
+      public_deps += [ ":chrome_helper_app" ]
+    }
+
     if (using_sanitizer) {
       # crashpad_handler requires the ASan runtime at its @executable_path.
       sources += [ "$root_out_dir/libclang_rt.asan_osx_dynamic.dylib" ]
@@ -1129,49 +1187,65 @@
       ]
     }
 
-    mac_info_plist("widevine_resources_plist") {
-      info_plist = "//third_party/widevine/cdm/widevine_resources.plist"
-      extra_substitutions = [
-        "CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id",
-        "BUNDLE_ID=widevine-resources",
-      ]
-      executable_name = "Widevine Resources"
-    }
+    if (new_mac_bundle_structure) {
+      copy("chrome_framework_widevine_signature") {
+        deps = [
+          ":sign_chrome_framework_for_widevine",
+        ]
 
-    bundle_data("widevine_resources_plist_bundle_data") {
-      sources = get_target_outputs(":widevine_resources_plist")
-      outputs = [
-        "{{bundle_contents_dir}}/Info.plist",
-      ]
-      public_deps = [
-        ":widevine_resources_plist",
-      ]
-    }
+        sources = [
+          "$root_out_dir/$chrome_framework_name.sig",
+        ]
 
-    bundle_data("framework_widevine_signature") {
-      sources = [
-        "$root_out_dir/$chrome_framework_name.sig",
-      ]
+        outputs = [
+          "$root_out_dir/$chrome_framework_name.framework/Resources/{{source_file_part}}",
+        ]
+      }
+    } else {
+      mac_info_plist("widevine_resources_plist") {
+        info_plist = "//third_party/widevine/cdm/widevine_resources.plist"
+        extra_substitutions = [
+          "CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id",
+          "BUNDLE_ID=widevine-resources",
+        ]
+        executable_name = "Widevine Resources"
+      }
 
-      outputs = [
-        "{{bundle_resources_dir}}/{{source_file_part}}",
-      ]
+      bundle_data("widevine_resources_plist_bundle_data") {
+        sources = get_target_outputs(":widevine_resources_plist")
+        outputs = [
+          "{{bundle_contents_dir}}/Info.plist",
+        ]
+        public_deps = [
+          ":widevine_resources_plist",
+        ]
+      }
 
-      public_deps = [
-        ":sign_chrome_framework_for_widevine",
-      ]
-    }
+      bundle_data("framework_widevine_signature") {
+        sources = [
+          "$root_out_dir/$chrome_framework_name.sig",
+        ]
 
-    create_bundle("widevine_resources_bundle") {
-      output_name = "Widevine Resources.bundle"
-      bundle_root_dir = "$root_build_dir/$output_name"
-      bundle_contents_dir = "$bundle_root_dir/Contents"
-      bundle_resources_dir = "$bundle_contents_dir/Resources"
+        outputs = [
+          "{{bundle_resources_dir}}/{{source_file_part}}",
+        ]
 
-      deps = [
-        ":framework_widevine_signature",
-        ":widevine_resources_plist_bundle_data",
-      ]
+        public_deps = [
+          ":sign_chrome_framework_for_widevine",
+        ]
+      }
+
+      create_bundle("widevine_resources_bundle") {
+        output_name = "Widevine Resources.bundle"
+        bundle_root_dir = "$root_build_dir/$output_name"
+        bundle_contents_dir = "$bundle_root_dir/Contents"
+        bundle_resources_dir = "$bundle_contents_dir/Resources"
+
+        deps = [
+          ":framework_widevine_signature",
+          ":widevine_resources_plist_bundle_data",
+        ]
+      }
     }
   }
 
@@ -1321,8 +1395,13 @@
       deps += [ ":default_apps" ]
     }
 
-    ldflags = [
-      "-Wl,-install_name,@executable_path/../Versions/$chrome_version_full/$chrome_framework_name.framework/$chrome_framework_name",
+    if (new_mac_bundle_structure) {
+      ldflags = [ "-Wl,-install_name,@executable_path/../Frameworks/$chrome_framework_name.framework/Versions/$chrome_version_full/$chrome_framework_name" ]
+    } else {
+      ldflags = [ "-Wl,-install_name,@executable_path/../Versions/$chrome_version_full/$chrome_framework_name.framework/$chrome_framework_name" ]
+    }
+
+    ldflags += [
       "-compatibility_version",
       chrome_dylib_version,
       "-current_version",
@@ -1331,11 +1410,18 @@
     ]
 
     if (is_component_build) {
-      ldflags += [
-        "-rpath",
-        "@loader_path/../../../../../../..",
-        "-Wl,-reexport_library,libchrome_dll.dylib",
-      ]
+      if (new_mac_bundle_structure) {
+        ldflags += [
+          "-rpath",
+          "@loader_path/../../../../../../../..",
+        ]
+      } else {
+        ldflags += [
+          "-rpath",
+          "@loader_path/../../../../../../..",
+        ]
+      }
+      ldflags += [ "-Wl,-reexport_library,libchrome_dll.dylib" ]
 
       data_deps = [
         ":chrome_dll",
diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn
index e07149b..b3b17c2 100644
--- a/chrome/android/features/autofill_assistant/BUILD.gn
+++ b/chrome/android/features/autofill_assistant/BUILD.gn
@@ -105,11 +105,11 @@
     "java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayDrawable.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayEventFilter.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantChoiceList.java",
+    "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestBinder.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestContactDetailsSection.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestCoordinator.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestDelegate.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestModel.java",
-    "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestOptions.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestPaymentMethodSection.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestSection.java",
     "java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestShippingAddressSection.java",
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBottomBarCoordinator.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBottomBarCoordinator.java
index e7c0d12..ff03574 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBottomBarCoordinator.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBottomBarCoordinator.java
@@ -28,6 +28,7 @@
 import org.chromium.chrome.browser.autofill_assistant.overlay.AssistantOverlayModel;
 import org.chromium.chrome.browser.autofill_assistant.overlay.AssistantOverlayState;
 import org.chromium.chrome.browser.autofill_assistant.payment.AssistantPaymentRequestCoordinator;
+import org.chromium.chrome.browser.autofill_assistant.payment.AssistantPaymentRequestModel;
 import org.chromium.chrome.browser.compositor.CompositorViewResizer;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetController;
@@ -44,13 +45,13 @@
     private final AssistantBottomSheetContent mContent;
 
     // Child coordinators.
-    private AssistantInfoBoxCoordinator mInfoBoxCoordinator;
     private final AssistantHeaderCoordinator mHeaderCoordinator;
     private final AssistantDetailsCoordinator mDetailsCoordinator;
-    private final AssistantPaymentRequestCoordinator mPaymentRequestCoordinator;
     private final AssistantCarouselCoordinator mSuggestionsCoordinator;
     private final AssistantCarouselCoordinator mActionsCoordinator;
     private final AssistantPeekHeightCoordinator mPeekHeightCoordinator;
+    private AssistantInfoBoxCoordinator mInfoBoxCoordinator;
+    private AssistantPaymentRequestCoordinator mPaymentRequestCoordinator;
 
     private final ObserverList<CompositorViewResizer.Observer> mSizeObservers =
             new ObserverList<>();
@@ -161,6 +162,8 @@
     public void destroy() {
         mInfoBoxCoordinator.destroy();
         mInfoBoxCoordinator = null;
+        mPaymentRequestCoordinator.destroy();
+        mPaymentRequestCoordinator = null;
     }
 
     /**
@@ -219,7 +222,8 @@
     @Override
     public void setShowOnlyCarousels(boolean showOnlyCarousels) {
         mDetailsCoordinator.setForceInvisible(showOnlyCarousels);
-        mPaymentRequestCoordinator.setForceInvisible(showOnlyCarousels);
+        mModel.getPaymentRequestModel().set(
+                AssistantPaymentRequestModel.FORCE_INVISIBLE, showOnlyCarousels);
     }
 
     @Override
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestBinder.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestBinder.java
new file mode 100644
index 0000000..76ceb1e
--- /dev/null
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestBinder.java
@@ -0,0 +1,475 @@
+// 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.
+
+package org.chromium.chrome.browser.autofill_assistant.payment;
+
+import android.app.Activity;
+import android.text.TextUtils;
+import android.view.View;
+
+import org.chromium.chrome.browser.ChromeVersionInfo;
+import org.chromium.chrome.browser.autofill.PersonalDataManager;
+import org.chromium.chrome.browser.payments.AddressEditor;
+import org.chromium.chrome.browser.payments.AutofillPaymentApp;
+import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
+import org.chromium.chrome.browser.payments.BasicCardUtils;
+import org.chromium.chrome.browser.payments.CardEditor;
+import org.chromium.chrome.browser.payments.ContactEditor;
+import org.chromium.chrome.browser.payments.PaymentInstrument;
+import org.chromium.chrome.browser.widget.prefeditor.EditorDialog;
+import org.chromium.components.url_formatter.UrlFormatter;
+import org.chromium.content_public.browser.WebContents;
+import org.chromium.payments.mojom.PaymentMethodData;
+import org.chromium.ui.modelutil.PropertyKey;
+import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class is responsible for pushing updates to the Autofill Assistant payment request. These
+ * updates are pulled from the {@link AssistantPaymentRequestModel} when a notification of an update
+ * is received.
+ */
+class AssistantPaymentRequestBinder
+        implements PropertyModelChangeProcessor.ViewBinder<AssistantPaymentRequestModel,
+                AssistantPaymentRequestBinder.ViewHolder, PropertyKey> {
+    /**
+     * Helper class that compares instances of {@link PersonalDataManager.AutofillProfile} by
+     * completeness in regards to the current state of the given {@link
+     * AssistantPaymentRequestModel}.
+     */
+    class CompletenessComparator implements Comparator<PersonalDataManager.AutofillProfile> {
+        final boolean mRequestName;
+        final boolean mRequestShipping;
+        final boolean mRequestEmail;
+        final boolean mRequestPhone;
+        CompletenessComparator(AssistantPaymentRequestModel model) {
+            mRequestName = model.get(AssistantPaymentRequestModel.REQUEST_NAME);
+            mRequestShipping = model.get(AssistantPaymentRequestModel.REQUEST_SHIPPING_ADDRESS);
+            mRequestEmail = model.get(AssistantPaymentRequestModel.REQUEST_EMAIL);
+            mRequestPhone = model.get(AssistantPaymentRequestModel.REQUEST_PHONE);
+        }
+
+        @Override
+        public int compare(
+                PersonalDataManager.AutofillProfile a, PersonalDataManager.AutofillProfile b) {
+            int result = countCompleteFields(a) - countCompleteFields(b);
+            // Fallback, compare by name alphabetically.
+            if (result == 0) {
+                return a.getFullName().compareTo(b.getFullName());
+            }
+            return result;
+        }
+
+        private int countCompleteFields(PersonalDataManager.AutofillProfile profile) {
+            int completeFields = 0;
+            if (mRequestName && !TextUtils.isEmpty((profile.getFullName()))) {
+                completeFields++;
+            }
+            if (mRequestShipping && !TextUtils.isEmpty(profile.getStreetAddress())) {
+                completeFields++;
+            }
+            if (mRequestEmail && !TextUtils.isEmpty(profile.getEmailAddress())) {
+                completeFields++;
+            }
+            if (mRequestPhone && !TextUtils.isEmpty(profile.getPhoneNumber())) {
+                completeFields++;
+            }
+            return completeFields;
+        }
+    }
+
+    /**
+     * A wrapper class that holds the different views of the payment request.
+     */
+    static class ViewHolder {
+        private final View mRootView;
+        private final AssistantVerticalExpanderAccordion mPaymentRequestExpanderAccordion;
+        private final int mSectionToSectionPadding;
+        private final AssistantPaymentRequestContactDetailsSection mContactDetailsSection;
+        private final AssistantPaymentRequestPaymentMethodSection mPaymentMethodSection;
+        private final AssistantPaymentRequestShippingAddressSection mShippingAddressSection;
+        private final AssistantPaymentRequestTermsSection mTermsSection;
+        private final Object mDividerTag;
+        private final Activity mActivity;
+        private PersonalDataManager.PersonalDataManagerObserver mPersonalDataManagerObserver;
+
+        public ViewHolder(View rootView, AssistantVerticalExpanderAccordion accordion,
+                int sectionPadding,
+                AssistantPaymentRequestContactDetailsSection contactDetailsSection,
+                AssistantPaymentRequestPaymentMethodSection paymentMethodSection,
+                AssistantPaymentRequestShippingAddressSection shippingAddressSection,
+                AssistantPaymentRequestTermsSection termsSection, Object dividerTag,
+                Activity activity) {
+            mRootView = rootView;
+            mPaymentRequestExpanderAccordion = accordion;
+            mSectionToSectionPadding = sectionPadding;
+            mContactDetailsSection = contactDetailsSection;
+            mPaymentMethodSection = paymentMethodSection;
+            mShippingAddressSection = shippingAddressSection;
+            mTermsSection = termsSection;
+            mDividerTag = dividerTag;
+            mActivity = activity;
+        }
+
+        /**
+         * Explicitly clean up.
+         */
+        public void destroy() {
+            stopListenToPersonalDataManager();
+        }
+
+        private void startListenToPersonalDataManager(
+                PersonalDataManager.PersonalDataManagerObserver observer) {
+            if (mPersonalDataManagerObserver != null) {
+                return;
+            }
+            mPersonalDataManagerObserver = observer;
+            PersonalDataManager.getInstance().registerDataObserver(mPersonalDataManagerObserver);
+        }
+
+        private void stopListenToPersonalDataManager() {
+            if (mPersonalDataManagerObserver == null) {
+                return;
+            }
+            PersonalDataManager.getInstance().unregisterDataObserver(mPersonalDataManagerObserver);
+            mPersonalDataManagerObserver = null;
+        }
+    }
+
+    @Override
+    public void bind(AssistantPaymentRequestModel model, ViewHolder view, PropertyKey propertyKey) {
+        boolean handled = updateEditors(model, propertyKey, view);
+        handled = updateSectionPaddings(model, propertyKey, view) || handled;
+        handled = updateRootVisibility(model, propertyKey, view) || handled;
+        handled = updateSectionVisibility(model, propertyKey, view) || handled;
+        handled = updateSectionContents(model, propertyKey, view) || handled;
+        handled = updateSectionSelectedItem(model, propertyKey, view) || handled;
+
+        if (propertyKey == AssistantPaymentRequestModel.DELEGATE) {
+            AssistantPaymentRequestDelegate delegate =
+                    model.get(AssistantPaymentRequestModel.DELEGATE);
+            view.mTermsSection.setListener(
+                    delegate != null ? delegate::onTermsAndConditionsChanged : null);
+            view.mContactDetailsSection.setListener(
+                    delegate != null ? delegate::onContactInfoChanged : null);
+            view.mPaymentMethodSection.setListener(
+                    delegate != null ? delegate::onPaymentMethodChanged : null);
+            view.mShippingAddressSection.setListener(
+                    delegate != null ? delegate::onShippingAddressChanged : null);
+        } else if (propertyKey == AssistantPaymentRequestModel.SUPPORTED_BASIC_CARD_NETWORKS) {
+            updateAvailablePaymentMethods(model);
+        } else if (propertyKey == AssistantPaymentRequestModel.SUPPORTED_PAYMENT_METHODS) {
+            updateAvailableAutofillPaymentMethods(model);
+        } else
+            assert handled : "Unhandled property detected in AssistantPaymentRequestBinder!";
+    }
+
+    private boolean shouldShowContactDetails(AssistantPaymentRequestModel model) {
+        return model.get(AssistantPaymentRequestModel.REQUEST_NAME)
+                || model.get(AssistantPaymentRequestModel.REQUEST_PHONE)
+                || model.get(AssistantPaymentRequestModel.REQUEST_EMAIL);
+    }
+
+    /**
+     * Updates the available items for each PR section.
+     * @return whether the property key was handled.
+     */
+    private boolean updateSectionContents(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if (propertyKey == AssistantPaymentRequestModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS) {
+            List<AutofillPaymentInstrument> availablePaymentMethods =
+                    model.get(AssistantPaymentRequestModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS);
+            if (availablePaymentMethods == null) availablePaymentMethods = Collections.emptyList();
+            view.mPaymentMethodSection.onAvailablePaymentMethodsChanged(availablePaymentMethods);
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.AVAILABLE_PROFILES) {
+            List<PersonalDataManager.AutofillProfile> autofillProfiles =
+                    model.get(AssistantPaymentRequestModel.AVAILABLE_PROFILES);
+            if (autofillProfiles == null) {
+                autofillProfiles = Collections.emptyList();
+            }
+            view.mContactDetailsSection.onProfilesChanged(autofillProfiles);
+            view.mPaymentMethodSection.onProfilesChanged(autofillProfiles);
+            view.mShippingAddressSection.onProfilesChanged(autofillProfiles);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Updates visibility of PR sections.
+     * @return whether the property key was handled.
+     */
+    private boolean updateSectionVisibility(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if ((propertyKey == AssistantPaymentRequestModel.REQUEST_NAME)
+                || (propertyKey == AssistantPaymentRequestModel.REQUEST_EMAIL)
+                || (propertyKey == AssistantPaymentRequestModel.REQUEST_PHONE)) {
+            view.mContactDetailsSection.setVisible(shouldShowContactDetails(model));
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.REQUEST_SHIPPING_ADDRESS) {
+            view.mShippingAddressSection.setVisible(
+                    model.get(AssistantPaymentRequestModel.REQUEST_SHIPPING_ADDRESS));
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.REQUEST_PAYMENT) {
+            view.mPaymentMethodSection.setVisible(
+                    (model.get(AssistantPaymentRequestModel.REQUEST_PAYMENT)));
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Updates visibility of the root widget.
+     * @return whether the property key was handled.
+     */
+    private boolean updateRootVisibility(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if ((propertyKey != AssistantPaymentRequestModel.VISIBLE)
+                && (propertyKey != AssistantPaymentRequestModel.FORCE_INVISIBLE)) {
+            return false;
+        }
+        int visibility = model.get(AssistantPaymentRequestModel.VISIBLE)
+                        && !model.get(AssistantPaymentRequestModel.FORCE_INVISIBLE)
+                ? View.VISIBLE
+                : View.GONE;
+        if (view.mRootView.getVisibility() != visibility) {
+            if (visibility == View.VISIBLE) {
+                // Update available profiles and credit cards before PR is made visible.
+                updateAvailableProfiles(model, view);
+                updateAvailablePaymentMethods(model);
+                WebContents webContents = model.get(AssistantPaymentRequestModel.WEB_CONTENTS);
+                if (webContents != null) {
+                    view.mTermsSection.setOrigin(UrlFormatter.formatUrlForSecurityDisplayOmitScheme(
+                            webContents.getLastCommittedUrl()));
+                }
+                view.startListenToPersonalDataManager(
+                        ()
+                                -> AssistantPaymentRequestBinder.this.updateAvailableProfiles(
+                                        model, view));
+            } else {
+                view.stopListenToPersonalDataManager();
+            }
+            view.mRootView.setVisibility(visibility);
+        }
+        return true;
+    }
+
+    /**
+     * Updates the currently selected item in each PR section.
+     * @return whether the property key was handled.
+     */
+    private boolean updateSectionSelectedItem(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if (propertyKey == AssistantPaymentRequestModel.SHIPPING_ADDRESS) {
+            view.mShippingAddressSection.addOrUpdateItem(
+                    model.get(AssistantPaymentRequestModel.SHIPPING_ADDRESS), true);
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.PAYMENT_METHOD) {
+            view.mPaymentMethodSection.addOrUpdateItem(
+                    model.get(AssistantPaymentRequestModel.PAYMENT_METHOD), true);
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.CONTACT_DETAILS) {
+            view.mContactDetailsSection.addOrUpdateItem(
+                    model.get(AssistantPaymentRequestModel.CONTACT_DETAILS), true);
+            return true;
+        } else if (propertyKey == AssistantPaymentRequestModel.TERMS_STATUS) {
+            view.mTermsSection.setTermsStatus(model.get(AssistantPaymentRequestModel.TERMS_STATUS));
+            return true;
+        }
+        return false;
+    }
+
+    // TODO(crbug.com/806868): Move this logic to native.
+    private void updateAvailableProfiles(AssistantPaymentRequestModel model, ViewHolder view) {
+        List<PersonalDataManager.AutofillProfile> autofillProfiles =
+                PersonalDataManager.getInstance().getProfilesToSuggest(
+                        /* includeNameInLabel= */ false);
+
+        // Suggest complete profiles first.
+        Collections.sort(autofillProfiles, new CompletenessComparator(model));
+        model.set(AssistantPaymentRequestModel.AVAILABLE_PROFILES, autofillProfiles);
+    }
+
+    /**
+     * Updates the paddings between sections and section dividers.
+     * @return whether the property key was handled.
+     */
+    private boolean updateSectionPaddings(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if ((propertyKey != AssistantPaymentRequestModel.REQUEST_SHIPPING_ADDRESS)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_NAME)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_EMAIL)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_PHONE)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_PAYMENT)
+                && (propertyKey != AssistantPaymentRequestModel.EXPANDED_SECTION)) {
+            return false;
+        }
+
+        // Update section paddings such that the first and last section are flush to the top/bottom,
+        // and all other sections have the same amount of padding in-between them.
+        if (shouldShowContactDetails(model)) {
+            view.mContactDetailsSection.setPaddings(0, view.mSectionToSectionPadding);
+            view.mPaymentMethodSection.setPaddings(
+                    view.mSectionToSectionPadding, view.mSectionToSectionPadding);
+            view.mShippingAddressSection.setPaddings(
+                    view.mSectionToSectionPadding, view.mSectionToSectionPadding);
+        } else if (model.get(AssistantPaymentRequestModel.REQUEST_PAYMENT)) {
+            view.mPaymentMethodSection.setPaddings(0, view.mSectionToSectionPadding);
+            view.mShippingAddressSection.setPaddings(
+                    view.mSectionToSectionPadding, view.mSectionToSectionPadding);
+        } else if (model.get(AssistantPaymentRequestModel.REQUEST_SHIPPING_ADDRESS)) {
+            view.mShippingAddressSection.setPaddings(0, view.mSectionToSectionPadding);
+        }
+        view.mTermsSection.setPaddings(view.mSectionToSectionPadding, 0);
+
+        // Hide the divider after the expanded section, if any.
+        boolean prevSectionIsExpanded = false;
+        for (int i = 0; i < view.mPaymentRequestExpanderAccordion.getChildCount(); i++) {
+            View child = view.mPaymentRequestExpanderAccordion.getChildAt(i);
+            if (child instanceof AssistantVerticalExpander) {
+                prevSectionIsExpanded = ((AssistantVerticalExpander) child).isExpanded();
+            } else if (child.getTag() == view.mDividerTag) {
+                child.setVisibility(prevSectionIsExpanded ? View.GONE : View.VISIBLE);
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Updates/recreates section editors.
+     * @return whether the property key was handled.
+     */
+    private boolean updateEditors(
+            AssistantPaymentRequestModel model, PropertyKey propertyKey, ViewHolder view) {
+        if ((propertyKey != AssistantPaymentRequestModel.WEB_CONTENTS)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_NAME)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_EMAIL)
+                && (propertyKey != AssistantPaymentRequestModel.REQUEST_PHONE)
+                && (propertyKey
+                        != AssistantPaymentRequestModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS)) {
+            return false;
+        }
+
+        WebContents webContents = model.get(AssistantPaymentRequestModel.WEB_CONTENTS);
+        if (webContents == null) {
+            view.mContactDetailsSection.setEditor(null);
+            view.mPaymentMethodSection.setEditor(null);
+            view.mShippingAddressSection.setEditor(null);
+            return true;
+        }
+
+        if (shouldShowContactDetails(model)) {
+            ContactEditor contactEditor =
+                    new ContactEditor(model.get(AssistantPaymentRequestModel.REQUEST_NAME),
+                            model.get(AssistantPaymentRequestModel.REQUEST_PHONE),
+                            model.get(AssistantPaymentRequestModel.REQUEST_EMAIL),
+                            !webContents.isIncognito());
+            contactEditor.setEditorDialog(new EditorDialog(view.mActivity, null,
+                    /*deleteRunnable =*/null));
+            view.mContactDetailsSection.setEditor(contactEditor);
+        }
+
+        AddressEditor addressEditor = new AddressEditor(AddressEditor.Purpose.PAYMENT_REQUEST,
+                /* saveToDisk= */ !webContents.isIncognito());
+        addressEditor.setEditorDialog(new EditorDialog(view.mActivity, null,
+                /*deleteRunnable =*/null));
+
+        CardEditor cardEditor = new CardEditor(webContents, addressEditor,
+                /* includeOrgLabel= */ false, /* observerForTest= */ null);
+        Map<String, PaymentMethodData> paymentMethods =
+                model.get(AssistantPaymentRequestModel.SUPPORTED_PAYMENT_METHODS);
+        if (paymentMethods != null) {
+            for (Map.Entry<String, PaymentMethodData> entry : paymentMethods.entrySet()) {
+                cardEditor.addAcceptedPaymentMethodIfRecognized(entry.getValue());
+            }
+        }
+
+        EditorDialog cardEditorDialog = new EditorDialog(view.mActivity, null,
+                /*deleteRunnable =*/null);
+        if (ChromeVersionInfo.isBetaBuild() || ChromeVersionInfo.isStableBuild()) {
+            cardEditorDialog.disableScreenshots();
+        }
+        cardEditor.setEditorDialog(cardEditorDialog);
+
+        view.mShippingAddressSection.setEditor(addressEditor);
+        view.mPaymentMethodSection.setEditor(cardEditor);
+        return true;
+    }
+
+    /**
+     * Updates the map of supported payment methods (identifier -> methodData), filtered by
+     * |SUPPORTED_BASIC_CARD_NETWORKS|.
+     */
+    // TODO(crbug.com/806868): Move the logic to retrieve and filter payment methods to native.
+    private void updateAvailablePaymentMethods(AssistantPaymentRequestModel model) {
+        WebContents webContents = model.get(AssistantPaymentRequestModel.WEB_CONTENTS);
+        if (webContents == null) {
+            model.set(
+                    AssistantPaymentRequestModel.SUPPORTED_PAYMENT_METHODS, Collections.emptyMap());
+            return;
+        }
+
+        // Only enable 'basic-card' payment method.
+        PaymentMethodData methodData = new PaymentMethodData();
+        methodData.supportedMethod = BasicCardUtils.BASIC_CARD_METHOD_NAME;
+
+        // Apply basic-card filter if specified
+        List<String> supportedBasicCardNetworks =
+                model.get(AssistantPaymentRequestModel.SUPPORTED_BASIC_CARD_NETWORKS);
+        if (supportedBasicCardNetworks != null && supportedBasicCardNetworks.size() > 0) {
+            ArrayList<Integer> filteredNetworks = new ArrayList<>();
+            Map<String, Integer> networks = BasicCardUtils.getNetworkIdentifiers();
+            for (int i = 0; i < supportedBasicCardNetworks.size(); i++) {
+                assert networks.containsKey(supportedBasicCardNetworks.get(i));
+                filteredNetworks.add(networks.get(supportedBasicCardNetworks.get(i)));
+            }
+
+            methodData.supportedNetworks = new int[filteredNetworks.size()];
+            for (int i = 0; i < filteredNetworks.size(); i++) {
+                methodData.supportedNetworks[i] = filteredNetworks.get(i);
+            }
+        }
+
+        Map<String, PaymentMethodData> supportedPaymentMethods = new HashMap<>();
+        supportedPaymentMethods.put(BasicCardUtils.BASIC_CARD_METHOD_NAME, methodData);
+        model.set(AssistantPaymentRequestModel.SUPPORTED_PAYMENT_METHODS, supportedPaymentMethods);
+    }
+
+    /**
+     * Updates the list of available autofill payment methods (i.e., the list of available payment
+     * methods available to the user as items in the UI).
+     */
+    // TODO(crbug.com/806868): Move this logic to native.
+    private void updateAvailableAutofillPaymentMethods(AssistantPaymentRequestModel model) {
+        WebContents webContents = model.get(AssistantPaymentRequestModel.WEB_CONTENTS);
+        if (webContents == null) {
+            model.set(AssistantPaymentRequestModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS,
+                    Collections.emptyList());
+            return;
+        }
+
+        AutofillPaymentApp autofillPaymentApp = new AutofillPaymentApp(webContents);
+        Map<String, PaymentMethodData> supportedPaymentMethods =
+                model.get(AssistantPaymentRequestModel.SUPPORTED_PAYMENT_METHODS);
+        List<PaymentInstrument> paymentMethods = autofillPaymentApp.getInstruments(
+                supportedPaymentMethods != null ? supportedPaymentMethods : Collections.emptyMap(),
+                /*forceReturnServerCards=*/true);
+
+        List<AutofillPaymentInstrument> availablePaymentMethods = new ArrayList<>();
+        for (PaymentInstrument method : paymentMethods) {
+            if (method instanceof AutofillPaymentInstrument) {
+                availablePaymentMethods.add(((AutofillPaymentInstrument) method));
+            }
+        }
+        model.set(AssistantPaymentRequestModel.AVAILABLE_AUTOFILL_PAYMENT_METHODS,
+                availablePaymentMethods);
+    }
+}
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestCoordinator.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestCoordinator.java
index b0af097..642fc3c 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestCoordinator.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestCoordinator.java
@@ -5,9 +5,6 @@
 package org.chromium.chrome.browser.autofill_assistant.payment;
 
 import android.app.Activity;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.ArrayMap;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -15,28 +12,8 @@
 import android.widget.ScrollView;
 
 import org.chromium.chrome.autofill_assistant.R;
-import org.chromium.chrome.browser.ChromeVersionInfo;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.PersonalDataManagerObserver;
-import org.chromium.chrome.browser.payments.AddressEditor;
-import org.chromium.chrome.browser.payments.AutofillPaymentApp;
-import org.chromium.chrome.browser.payments.BasicCardUtils;
-import org.chromium.chrome.browser.payments.CardEditor;
-import org.chromium.chrome.browser.payments.ContactEditor;
-import org.chromium.chrome.browser.payments.PaymentInstrument;
 import org.chromium.chrome.browser.widget.FadingEdgeScrollView;
-import org.chromium.chrome.browser.widget.prefeditor.Completable;
-import org.chromium.chrome.browser.widget.prefeditor.EditorDialog;
-import org.chromium.components.url_formatter.UrlFormatter;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.payments.mojom.PaymentMethodData;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
 
 // TODO(crbug.com/806868): Use mCarouselCoordinator to show chips.
 
@@ -44,29 +21,18 @@
  * Coordinator for the Payment Request.
  */
 public class AssistantPaymentRequestCoordinator {
-    private static final Comparator<Completable> COMPLETENESS_COMPARATOR =
-            (a, b) -> (b.isComplete() ? 1 : 0) - (a.isComplete() ? 1 : 0);
-
     private static final String DIVIDER_TAG = "divider";
-    private static final String SECTION_TAG = "section";
     private final Activity mActivity;
     private final LinearLayout mPaymentRequestUI;
     private final FadingEdgeScrollView mPaymentRequestScrollView;
-    private final AssistantVerticalExpanderAccordion mPaymentRequestExpanderAccordion;
-    private final int mPaymentRequestSectionPadding;
-
-    private AssistantPaymentRequestContactDetailsSection mContactDetailsSection;
-    private AssistantPaymentRequestPaymentMethodSection mPaymentMethodSection;
-    private AssistantPaymentRequestShippingAddressSection mShippingAddressSection;
-    private PersonalDataManagerObserver mPersonalDataManagerObserver;
-    private Map<String, PaymentMethodData> mPaymentMethodsData;
-    private boolean mVisible;
-    private boolean mForceInvisible;
+    private final AssistantPaymentRequestModel mModel;
+    private AssistantPaymentRequestBinder.ViewHolder mViewHolder;
 
     public AssistantPaymentRequestCoordinator(
             Activity activity, AssistantPaymentRequestModel model) {
         mActivity = activity;
-        mPaymentRequestSectionPadding = activity.getResources().getDimensionPixelSize(
+        mModel = model;
+        int sectionToSectionPadding = activity.getResources().getDimensionPixelSize(
                 R.dimen.autofill_assistant_payment_request_section_padding);
 
         mPaymentRequestUI = new LinearLayout(mActivity);
@@ -75,30 +41,44 @@
                 new LinearLayout.LayoutParams(/* width= */ ViewGroup.LayoutParams.MATCH_PARENT,
                         /* height= */ 0, /* weight= */ 1));
 
-        mPaymentRequestExpanderAccordion = new AssistantVerticalExpanderAccordion(mActivity, null);
-        mPaymentRequestExpanderAccordion.setOrientation(LinearLayout.VERTICAL);
-        mPaymentRequestExpanderAccordion.setLayoutParams(
+        AssistantVerticalExpanderAccordion paymentRequestExpanderAccordion =
+                new AssistantVerticalExpanderAccordion(mActivity, null);
+        paymentRequestExpanderAccordion.setOrientation(LinearLayout.VERTICAL);
+        paymentRequestExpanderAccordion.setLayoutParams(
                 new LinearLayout.LayoutParams(/* width= */ ViewGroup.LayoutParams.MATCH_PARENT,
                         /* height= */ 0, /* weight= */ 1));
-        mPaymentRequestExpanderAccordion.setOnExpandedViewChangedListener(
-                expander -> updateSectionPaddings());
+        paymentRequestExpanderAccordion.setOnExpandedViewChangedListener(
+                expander -> mModel.set(AssistantPaymentRequestModel.EXPANDED_SECTION, expander));
 
         mPaymentRequestScrollView = new FadingEdgeScrollView(mActivity, null);
-        mPaymentRequestScrollView.addView(mPaymentRequestExpanderAccordion,
+        mPaymentRequestScrollView.addView(paymentRequestExpanderAccordion,
                 new LinearLayout.LayoutParams(
                         ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
         mPaymentRequestUI.addView(mPaymentRequestScrollView,
                 new LinearLayout.LayoutParams(/* width= */ ViewGroup.LayoutParams.MATCH_PARENT,
                         /* height= */ 0, /* weight= */ 1));
 
-        // Payment request is initially hidden.
-        setVisible(false);
+        AssistantPaymentRequestContactDetailsSection contactDetailsSection =
+                new AssistantPaymentRequestContactDetailsSection(
+                        mActivity, paymentRequestExpanderAccordion);
+        createSeparator(paymentRequestExpanderAccordion);
+        AssistantPaymentRequestPaymentMethodSection paymentMethodSection =
+                new AssistantPaymentRequestPaymentMethodSection(
+                        mActivity, paymentRequestExpanderAccordion);
+        createSeparator(paymentRequestExpanderAccordion);
+        AssistantPaymentRequestShippingAddressSection shippingAddressSection =
+                new AssistantPaymentRequestShippingAddressSection(
+                        mActivity, paymentRequestExpanderAccordion);
+        createSeparator(paymentRequestExpanderAccordion);
+        AssistantPaymentRequestTermsSection termsSection =
+                new AssistantPaymentRequestTermsSection(mActivity, paymentRequestExpanderAccordion);
 
-        // Listen for model changes.
-        model.addObserver((source, propertyKey)
-                                  -> resetUI(model.get(AssistantPaymentRequestModel.WEB_CONTENTS),
-                                          model.get(AssistantPaymentRequestModel.OPTIONS),
-                                          model.get(AssistantPaymentRequestModel.DELEGATE)));
+        // Bind view and mediator through the model.
+        mViewHolder = new AssistantPaymentRequestBinder.ViewHolder(mPaymentRequestUI,
+                paymentRequestExpanderAccordion, sectionToSectionPadding, contactDetailsSection,
+                paymentMethodSection, shippingAddressSection, termsSection, DIVIDER_TAG, activity);
+        AssistantPaymentRequestBinder binder = new AssistantPaymentRequestBinder();
+        PropertyModelChangeProcessor.create(model, mViewHolder, binder);
     }
 
     public View getView() {
@@ -109,284 +89,18 @@
         return mPaymentRequestScrollView;
     }
 
-    private void setVisible(boolean visible) {
-        mVisible = visible;
-        updateVisibility();
-    }
-
-    private void updateVisibility() {
-        int visibility = mVisible && !mForceInvisible ? View.VISIBLE : View.GONE;
-        if (getView().getVisibility() != visibility) {
-            getView().setVisibility(visibility);
-        }
-    }
-
-    /** Force the view of this coordinator to be invisible. */
-    public void setForceInvisible(boolean forceInvisible) {
-        if (mForceInvisible == forceInvisible) return;
-
-        mForceInvisible = forceInvisible;
-        updateVisibility();
-    }
-
-    private void resetUI(@Nullable WebContents webContents,
-            @Nullable AssistantPaymentRequestOptions options,
-            @Nullable AssistantPaymentRequestDelegate delegate) {
-        if (mPersonalDataManagerObserver != null) {
-            PersonalDataManager.getInstance().unregisterDataObserver(mPersonalDataManagerObserver);
-            mPersonalDataManagerObserver = null;
-        }
-        if (options == null || webContents == null || delegate == null) {
-            setVisible(false);
-            return;
-        }
-        // Remove dynamically created UI elements.
-        mPaymentRequestExpanderAccordion.removeAllViews();
-
-        boolean showContactDetailsSection = options.mRequestPayerName || options.mRequestPayerPhone
-                || options.mRequestPayerEmail;
-        if (showContactDetailsSection || options.mRequestShipping) {
-            // Listen to changes to profile data and update sections when necessary.
-            mPersonalDataManagerObserver = ()
-                    -> AssistantPaymentRequestCoordinator.this.updateSections(webContents, options);
-            PersonalDataManager.getInstance().registerDataObserver(mPersonalDataManagerObserver);
-        }
-
-        mContactDetailsSection = null;
-        if (showContactDetailsSection) {
-            mContactDetailsSection = createContactDetailsSection(webContents, options, delegate);
-            createSeparator();
-        }
-
-        mPaymentMethodSection = null;
-        mPaymentMethodsData = null;
-        if (options.mRequestPaymentMethod) {
-            mPaymentMethodSection = createPaymentMethodsSection(webContents, options, delegate);
-            createSeparator();
-        }
-
-        mShippingAddressSection = null;
-        if (options.mRequestShipping) {
-            mShippingAddressSection = createShippingAddressSection(webContents, options, delegate);
-            createSeparator();
-        }
-        createTermsAndConditionsSection(webContents, options, delegate);
-        updateSections(webContents, options);
-        setVisible(true);
-    }
-
     /**
-     * Adjusts the paddings between sections and dividers.
+     * Explicitly clean up.
      */
-    private void updateSectionPaddings() {
-        boolean prevChildWasDivider = false;
-        boolean prevChildWasSection = false;
-        for (int i = 0; i < mPaymentRequestExpanderAccordion.getChildCount(); i++) {
-            View child = mPaymentRequestExpanderAccordion.getChildAt(i);
-            if (child.getTag() == null) {
-                continue;
-            }
-            boolean isDivider = child.getTag().equals(DIVIDER_TAG);
-            boolean isSection = child.getTag().equals(SECTION_TAG);
-            if (isSection && prevChildWasDivider) {
-                child.setPadding(child.getPaddingLeft(), mPaymentRequestSectionPadding,
-                        child.getPaddingRight(), child.getPaddingBottom());
-            } else if (isDivider && prevChildWasSection) {
-                View prevChild = mPaymentRequestExpanderAccordion.getChildAt(i - 1);
-                if (prevChild instanceof AssistantVerticalExpander) {
-                    // For expanders, the padding must be set for all views separately to
-                    // effectively enlarge their background (if any).
-                    AssistantVerticalExpander expander = (AssistantVerticalExpander) prevChild;
-                    View titleView = expander.getTitleView();
-                    View collapsedView = expander.getCollapsedView();
-                    View expandedView = expander.getExpandedView();
-                    expander.setPadding(expander.getPaddingLeft(), expander.getPaddingTop(),
-                            expander.getPaddingRight(), 0);
-                    collapsedView.setPadding(collapsedView.getPaddingLeft(),
-                            collapsedView.getPaddingTop(), collapsedView.getPaddingRight(),
-                            mPaymentRequestSectionPadding);
-                    expandedView.setPadding(expandedView.getPaddingLeft(),
-                            expandedView.getPaddingTop(), expandedView.getPaddingRight(),
-                            mPaymentRequestSectionPadding);
-
-                    // Dividers need additional margin to fixed expanders.
-                    ViewGroup.MarginLayoutParams lp =
-                            (ViewGroup.MarginLayoutParams) child.getLayoutParams();
-                    lp.topMargin = expander.isFixed() ? mPaymentRequestSectionPadding : 0;
-                    child.setLayoutParams(lp);
-
-                    // Hide divider if corresponding section is expanded.
-                    child.setVisibility(expander.isExpanded() ? View.GONE : View.VISIBLE);
-                } else {
-                    prevChild.setPadding(prevChild.getPaddingLeft(), prevChild.getPaddingTop(),
-                            prevChild.getPaddingRight(), mPaymentRequestSectionPadding);
-                }
-            }
-
-            prevChildWasDivider = isDivider;
-            prevChildWasSection = isSection;
-        }
+    public void destroy() {
+        mViewHolder.destroy();
+        mViewHolder = null;
     }
 
-    private void createSeparator() {
+    private void createSeparator(ViewGroup parent) {
         View divider = LayoutInflater.from(mActivity).inflate(
-                R.layout.autofill_assistant_payment_request_section_divider,
-                mPaymentRequestExpanderAccordion, false);
+                R.layout.autofill_assistant_payment_request_section_divider, parent, false);
         divider.setTag(DIVIDER_TAG);
-        mPaymentRequestExpanderAccordion.addView(divider);
-    }
-
-    private void createTermsAndConditionsSection(WebContents webContents,
-            AssistantPaymentRequestOptions options, AssistantPaymentRequestDelegate delegate) {
-        AssistantPaymentRequestTermsSection termsSection =
-                new AssistantPaymentRequestTermsSection(mActivity, mPaymentRequestExpanderAccordion,
-                        UrlFormatter.formatUrlForSecurityDisplayOmitScheme(
-                                webContents.getLastCommittedUrl()),
-                        delegate::onTermsAndConditionsChanged);
-        termsSection.getView().setTag(SECTION_TAG);
-    }
-
-    private AssistantPaymentRequestShippingAddressSection createShippingAddressSection(
-            WebContents webContents, AssistantPaymentRequestOptions options,
-            AssistantPaymentRequestDelegate delegate) {
-        AddressEditor editor = new AddressEditor(AddressEditor.Purpose.PAYMENT_REQUEST,
-                /* saveToDisk= */ !webContents.isIncognito());
-        editor.setEditorDialog(new EditorDialog(mActivity, null,
-                /*deleteRunnable =*/null));
-
-        AssistantPaymentRequestShippingAddressSection shippingAddressSection =
-                new AssistantPaymentRequestShippingAddressSection(
-                        mActivity, mPaymentRequestExpanderAccordion);
-        shippingAddressSection.setListener(address
-                -> delegate.onShippingAddressChanged(
-                        address != null ? address.getProfile() : null));
-        shippingAddressSection.setEditor(editor);
-        shippingAddressSection.getView().setTag(SECTION_TAG);
-        return shippingAddressSection;
-    }
-
-    private AssistantPaymentRequestContactDetailsSection createContactDetailsSection(
-            WebContents webContents, AssistantPaymentRequestOptions options,
-            AssistantPaymentRequestDelegate delegate) {
-        ContactEditor editor = new ContactEditor(options.mRequestPayerName,
-                options.mRequestPayerPhone, options.mRequestPayerEmail, !webContents.isIncognito());
-        editor.setEditorDialog(new EditorDialog(mActivity, null,
-                /*deleteRunnable =*/null));
-
-        AssistantPaymentRequestContactDetailsSection contactDetailsSection =
-                new AssistantPaymentRequestContactDetailsSection(
-                        mActivity, mPaymentRequestExpanderAccordion);
-
-        contactDetailsSection.setListener(delegate::onContactInfoChanged);
-        contactDetailsSection.setEditor(editor);
-        contactDetailsSection.getView().setTag(SECTION_TAG);
-        return contactDetailsSection;
-    }
-
-    private AssistantPaymentRequestPaymentMethodSection createPaymentMethodsSection(
-            WebContents webContents, AssistantPaymentRequestOptions options,
-            AssistantPaymentRequestDelegate delegate) {
-        // Only enable 'basic-card' payment method.
-        PaymentMethodData methodData = new PaymentMethodData();
-        methodData.supportedMethod = BasicCardUtils.BASIC_CARD_METHOD_NAME;
-
-        // Apply basic-card filter if specified
-        String[] supportedBasicCardNetworks = options.mSupportedBasicCardNetworks;
-        if (supportedBasicCardNetworks.length > 0) {
-            ArrayList<Integer> filteredNetworks = new ArrayList<>();
-            Map<String, Integer> networks = BasicCardUtils.getNetworkIdentifiers();
-            for (int i = 0; i < supportedBasicCardNetworks.length; i++) {
-                assert networks.containsKey(supportedBasicCardNetworks[i]);
-                filteredNetworks.add(networks.get(supportedBasicCardNetworks[i]));
-            }
-
-            methodData.supportedNetworks = new int[filteredNetworks.size()];
-            for (int i = 0; i < filteredNetworks.size(); i++) {
-                methodData.supportedNetworks[i] = filteredNetworks.get(i);
-            }
-        }
-
-        mPaymentMethodsData = new ArrayMap<>();
-        mPaymentMethodsData.put(BasicCardUtils.BASIC_CARD_METHOD_NAME, methodData);
-        AssistantPaymentRequestPaymentMethodSection paymentMethodsSection =
-                new AssistantPaymentRequestPaymentMethodSection(
-                        mActivity, mPaymentRequestExpanderAccordion);
-        paymentMethodsSection.setListener(
-                method -> delegate.onCreditCardChanged(method != null ? method.getCard() : null));
-
-        paymentMethodsSection.getView().setTag(SECTION_TAG);
-        return paymentMethodsSection;
-    }
-
-    private int countCompleteFields(
-            AssistantPaymentRequestOptions options, AutofillProfile profile) {
-        int completeFields = 0;
-        if (options.mRequestShipping && !TextUtils.isEmpty(profile.getStreetAddress())) {
-            completeFields++;
-        }
-
-        if (options.mRequestPayerEmail && !TextUtils.isEmpty(profile.getEmailAddress())) {
-            completeFields++;
-        }
-
-        if (options.mRequestPayerName && !TextUtils.isEmpty((profile.getFullName()))) {
-            completeFields++;
-        }
-
-        if (options.mRequestPayerPhone && !TextUtils.isEmpty(profile.getPhoneNumber())) {
-            completeFields++;
-        }
-
-        return completeFields;
-    }
-
-    /**
-     * Populates or updates items in all sections that are currently displayed.
-     */
-    private void updateSections(WebContents webContents, AssistantPaymentRequestOptions options) {
-        List<AutofillProfile> autofillProfiles =
-                PersonalDataManager.getInstance().getProfilesToSuggest(
-                        /* includeNameInLabel= */ false);
-
-        // Suggest complete profiles first.
-        Collections.sort(autofillProfiles,
-                (a, b) -> countCompleteFields(options, a) - countCompleteFields(options, b));
-
-        if (mContactDetailsSection != null) {
-            mContactDetailsSection.onProfilesChanged(autofillProfiles);
-        }
-        if (mShippingAddressSection != null) {
-            mShippingAddressSection.onProfilesChanged(autofillProfiles);
-        }
-        if (mPaymentMethodSection != null) {
-            // TODO(crbug.com/806868): It is currently not possible to clear the billing address
-            // dropdown of |CardEditor|. As a workaround, we create a new instance here.
-            AddressEditor addressEditor = new AddressEditor(AddressEditor.Purpose.PAYMENT_REQUEST,
-                    /* saveToDisk= */ !webContents.isIncognito());
-            CardEditor cardEditor = new CardEditor(webContents, addressEditor,
-                    /* includeOrgLabel= */ false, /* observerForTest= */ null);
-            for (Map.Entry<String, PaymentMethodData> entry : mPaymentMethodsData.entrySet()) {
-                cardEditor.addAcceptedPaymentMethodIfRecognized(entry.getValue());
-            }
-
-            addressEditor.setEditorDialog(new EditorDialog(mActivity, null,
-                    /*deleteRunnable =*/null));
-            EditorDialog cardEditorDialog = new EditorDialog(mActivity, null,
-                    /*deleteRunnable =*/null);
-            if (ChromeVersionInfo.isBetaBuild() || ChromeVersionInfo.isStableBuild()) {
-                cardEditorDialog.disableScreenshots();
-            }
-            cardEditor.setEditorDialog(cardEditorDialog);
-            mPaymentMethodSection.setEditor(cardEditor);
-            mPaymentMethodSection.onProfilesChanged(autofillProfiles);
-
-            // TODO(crbug.com/806868): Change to asynchronous |getInstruments|.
-            // TODO(crbug.com/806868): Sort payment methods, those matching autofillProfiles first.
-            AutofillPaymentApp autofillPaymentApp = new AutofillPaymentApp(webContents);
-            List<PaymentInstrument> paymentMethods = autofillPaymentApp.getInstruments(
-                    mPaymentMethodsData, /*forceReturnServerCards=*/true);
-            mPaymentMethodSection.onPaymentMethodsChanged(paymentMethods);
-        }
-        updateSectionPaddings();
+        parent.addView(divider);
     }
 }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestDelegate.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestDelegate.java
index 385e574..4951ff45 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestDelegate.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestDelegate.java
@@ -9,7 +9,9 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.chrome.browser.autofill.PersonalDataManager;
+import org.chromium.chrome.browser.payments.AutofillAddress;
 import org.chromium.chrome.browser.payments.AutofillContact;
+import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 
 /** Delegate for the Payment Request UI. */
 @JNINamespace("autofill_assistant")
@@ -42,15 +44,17 @@
         }
     }
 
-    public void onShippingAddressChanged(@Nullable PersonalDataManager.AutofillProfile address) {
+    public void onShippingAddressChanged(@Nullable AutofillAddress address) {
         if (mNativeAssistantPaymentRequestDelegate != 0) {
-            nativeOnShippingAddressChanged(mNativeAssistantPaymentRequestDelegate, address);
+            nativeOnShippingAddressChanged(mNativeAssistantPaymentRequestDelegate,
+                    address != null ? address.getProfile() : null);
         }
     }
 
-    public void onCreditCardChanged(@Nullable PersonalDataManager.CreditCard card) {
+    public void onPaymentMethodChanged(@Nullable AutofillPaymentInstrument paymentInstrument) {
         if (mNativeAssistantPaymentRequestDelegate != 0) {
-            nativeOnCreditCardChanged(mNativeAssistantPaymentRequestDelegate, card);
+            nativeOnCreditCardChanged(mNativeAssistantPaymentRequestDelegate,
+                    paymentInstrument != null ? paymentInstrument.getCard() : null);
         }
     }
 
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestModel.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestModel.java
index c3838b6..20ddaee 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestModel.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestModel.java
@@ -1,4 +1,4 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
+// Copyright 2019 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,37 +6,123 @@
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
+import org.chromium.chrome.browser.autofill.PersonalDataManager;
+import org.chromium.chrome.browser.payments.AutofillAddress;
+import org.chromium.chrome.browser.payments.AutofillContact;
+import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 import org.chromium.content_public.browser.WebContents;
+import org.chromium.payments.mojom.PaymentMethodData;
 import org.chromium.ui.modelutil.PropertyModel;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
 /**
  * State for the header of the Autofill Assistant.
  */
 @JNINamespace("autofill_assistant")
 public class AssistantPaymentRequestModel extends PropertyModel {
+    // TODO(crbug.com/806868): add |setAvailableProfiles| and |setAvailablePaymentMethods| from
+    // native. Implement |setShippingAddress|, |setContactDetails| and |setPaymentMethod|.
+
     static final WritableObjectPropertyKey<AssistantPaymentRequestDelegate> DELEGATE =
             new WritableObjectPropertyKey<>();
 
-    /** The payment request options. Set to null to hide the payment request UI. */
-    public static final WritableObjectPropertyKey<AssistantPaymentRequestOptions> OPTIONS =
-            new WritableObjectPropertyKey<>();
-
-    /** The web contents the payment request is associated to. */
+    /** The web contents the payment request is associated with. */
     public static final WritableObjectPropertyKey<WebContents> WEB_CONTENTS =
             new WritableObjectPropertyKey<>();
 
+    public static final WritableBooleanPropertyKey VISIBLE = new WritableBooleanPropertyKey();
+    public static final WritableBooleanPropertyKey FORCE_INVISIBLE =
+            new WritableBooleanPropertyKey();
+
+    /** The chosen shipping address. */
+    public static final WritableObjectPropertyKey<AutofillAddress> SHIPPING_ADDRESS =
+            new WritableObjectPropertyKey<>();
+
+    /** The chosen payment method (including billing address). */
+    public static final WritableObjectPropertyKey<AutofillPaymentInstrument> PAYMENT_METHOD =
+            new WritableObjectPropertyKey<>();
+
+    /** The chosen contact details. */
+    public static final WritableObjectPropertyKey<AutofillContact> CONTACT_DETAILS =
+            new WritableObjectPropertyKey<>();
+
+    /** The status of the third party terms & conditions. */
+    public static final WritableIntPropertyKey TERMS_STATUS = new WritableIntPropertyKey();
+
+    public static final WritableBooleanPropertyKey REQUEST_NAME = new WritableBooleanPropertyKey();
+    public static final WritableBooleanPropertyKey REQUEST_EMAIL = new WritableBooleanPropertyKey();
+    public static final WritableBooleanPropertyKey REQUEST_PHONE = new WritableBooleanPropertyKey();
+    public static final WritableBooleanPropertyKey REQUEST_SHIPPING_ADDRESS =
+            new WritableBooleanPropertyKey();
+    public static final WritableBooleanPropertyKey REQUEST_PAYMENT =
+            new WritableBooleanPropertyKey();
+
+    public static final WritableObjectPropertyKey<List<PersonalDataManager.AutofillProfile>>
+            AVAILABLE_PROFILES = new WritableObjectPropertyKey<>();
+
+    public static final WritableObjectPropertyKey<List<AutofillPaymentInstrument>>
+            AVAILABLE_AUTOFILL_PAYMENT_METHODS = new WritableObjectPropertyKey<>();
+
+    public static final WritableObjectPropertyKey<List<String>> SUPPORTED_BASIC_CARD_NETWORKS =
+            new WritableObjectPropertyKey<>();
+
+    /** The available payment methods, e.g., |BASIC_CARD_METHOD_NAME|. */
+    public static final WritableObjectPropertyKey<Map<String, PaymentMethodData>>
+            SUPPORTED_PAYMENT_METHODS = new WritableObjectPropertyKey<>();
+
+    /** The currently expanded section (may be null). */
+    public static final WritableObjectPropertyKey<AssistantVerticalExpander> EXPANDED_SECTION =
+            new WritableObjectPropertyKey<>();
+
     public AssistantPaymentRequestModel() {
-        super(DELEGATE, OPTIONS, WEB_CONTENTS);
+        super(DELEGATE, WEB_CONTENTS, VISIBLE, FORCE_INVISIBLE, SHIPPING_ADDRESS, PAYMENT_METHOD,
+                CONTACT_DETAILS, TERMS_STATUS, REQUEST_NAME, REQUEST_EMAIL, REQUEST_PHONE,
+                REQUEST_SHIPPING_ADDRESS, REQUEST_PAYMENT, AVAILABLE_PROFILES,
+                AVAILABLE_AUTOFILL_PAYMENT_METHODS, SUPPORTED_BASIC_CARD_NETWORKS,
+                SUPPORTED_PAYMENT_METHODS, EXPANDED_SECTION);
     }
 
     @CalledByNative
-    private void setOptions(String defaultEmail, boolean requestShipping,
-            boolean requestPaymentMethod, boolean requestPayerName, boolean requestPayerPhone,
-            boolean requestPayerEmail, String[] supportedBasicCardNetworks) {
-        set(OPTIONS,
-                new AssistantPaymentRequestOptions(requestPayerName, requestPayerEmail,
-                        requestPayerPhone, requestShipping, requestPaymentMethod,
-                        supportedBasicCardNetworks, defaultEmail));
+    private void setRequestName(boolean requestName) {
+        set(REQUEST_NAME, requestName);
+    }
+
+    @CalledByNative
+    private void setRequestEmail(boolean requestEmail) {
+        set(REQUEST_EMAIL, requestEmail);
+    }
+
+    @CalledByNative
+    private void setRequestPhone(boolean requestPhone) {
+        set(REQUEST_PHONE, requestPhone);
+    }
+
+    @CalledByNative
+    private void setRequestShippingAddress(boolean requestShippingAddress) {
+        set(REQUEST_SHIPPING_ADDRESS, requestShippingAddress);
+    }
+
+    @CalledByNative
+    private void setRequestPayment(boolean requestPayment) {
+        set(REQUEST_PAYMENT, requestPayment);
+    }
+
+    @CalledByNative
+    private void setSupportedBasicCardNetworks(String[] supportedBasicCardNetworks) {
+        set(SUPPORTED_BASIC_CARD_NETWORKS, Arrays.asList(supportedBasicCardNetworks));
+    }
+
+    @CalledByNative
+    private void setVisible(boolean visible) {
+        set(VISIBLE, visible);
+    }
+
+    @CalledByNative
+    private void setTermsStatus(@AssistantTermsAndConditionsState int termsStatus) {
+        set(TERMS_STATUS, termsStatus);
     }
 
     @CalledByNative
@@ -45,11 +131,6 @@
     }
 
     @CalledByNative
-    private void clearOptions() {
-        set(OPTIONS, null);
-    }
-
-    @CalledByNative
     private void setDelegate(AssistantPaymentRequestDelegate delegate) {
         set(DELEGATE, delegate);
     }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestOptions.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestOptions.java
deleted file mode 100644
index bdfeddb..0000000
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestOptions.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.autofill_assistant.payment;
-
-import android.support.annotation.Nullable;
-
-/**
- * Options for the Assistant Payment Request.
- */
-class AssistantPaymentRequestOptions {
-    final boolean mRequestPayerName;
-    final boolean mRequestPayerEmail;
-    final boolean mRequestPayerPhone;
-    final boolean mRequestShipping;
-    final boolean mRequestPaymentMethod;
-    final String[] mSupportedBasicCardNetworks;
-    @Nullable
-    final String mDefaultEmail;
-
-    AssistantPaymentRequestOptions(boolean requestPayerName, boolean requestPayerEmail,
-            boolean requestPayerPhone, boolean requestShipping, boolean requestPaymentMethod,
-            String[] supportedBasicCardNetworks, @Nullable String defaultEmail) {
-        this.mRequestPayerName = requestPayerName;
-        this.mRequestPayerEmail = requestPayerEmail;
-        this.mRequestPayerPhone = requestPayerPhone;
-        this.mRequestShipping = requestShipping;
-        this.mRequestPaymentMethod = requestPaymentMethod;
-        this.mSupportedBasicCardNetworks = supportedBasicCardNetworks;
-        this.mDefaultEmail = defaultEmail;
-    }
-}
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestPaymentMethodSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestPaymentMethodSection.java
index c7caf86..b1ac137 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestPaymentMethodSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestPaymentMethodSection.java
@@ -17,9 +17,7 @@
 import org.chromium.chrome.browser.payments.AutofillAddress;
 import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 import org.chromium.chrome.browser.payments.CardEditor;
-import org.chromium.chrome.browser.payments.PaymentInstrument;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,7 +26,6 @@
 public class AssistantPaymentRequestPaymentMethodSection
         extends AssistantPaymentRequestSection<AutofillPaymentInstrument> {
     private CardEditor mEditor;
-    private boolean mIgnorePaymentMethodsChangeNotifications;
 
     AssistantPaymentRequestPaymentMethodSection(Context context, ViewGroup parent) {
         super(context, parent, R.layout.autofill_assistant_payment_method_summary,
@@ -50,10 +47,8 @@
         if (mEditor == null) {
             return;
         }
-        mIgnorePaymentMethodsChangeNotifications = true;
         mEditor.edit(
                 oldItem, editedOption -> onItemCreatedOrEdited(oldItem, oldFullView, editedOption));
-        mIgnorePaymentMethodsChangeNotifications = false;
     }
 
     @Override
@@ -104,9 +99,9 @@
     }
 
     void onProfilesChanged(List<PersonalDataManager.AutofillProfile> profiles) {
-        for (int i = 0; i < profiles.size(); i++) {
+        for (PersonalDataManager.AutofillProfile profile : profiles) {
             // TODO(crbug.com/806868): replace suggested billing addresses (remove if necessary).
-            mEditor.updateBillingAddressIfComplete(new AutofillAddress(mContext, profiles.get(i)));
+            mEditor.updateBillingAddressIfComplete(new AutofillAddress(mContext, profile));
         }
     }
 
@@ -114,18 +109,10 @@
      * The set of available payment methods has changed externally. This will rebuild the UI with
      * the new/changed set of payment methods, while keeping the selected item if possible.
      */
-    void onPaymentMethodsChanged(List<PaymentInstrument> paymentMethods) {
-        if (mIgnorePaymentMethodsChangeNotifications) {
-            return;
-        }
-
+    void onAvailablePaymentMethodsChanged(List<AutofillPaymentInstrument> paymentMethods) {
         AutofillPaymentInstrument previouslySelectedMethod = mSelectedOption;
         int selectedMethodIndex = -1;
-        List<AutofillPaymentInstrument> creditCards = new ArrayList<>();
         for (int i = 0; i < paymentMethods.size(); i++) {
-            if (paymentMethods.get(i) instanceof AutofillPaymentInstrument) {
-                creditCards.add((AutofillPaymentInstrument) paymentMethods.get(i));
-            }
             if (previouslySelectedMethod != null
                     && TextUtils.equals(paymentMethods.get(i).getIdentifier(),
                             previouslySelectedMethod.getIdentifier())) {
@@ -134,6 +121,6 @@
         }
 
         // Replace current set of items, keep selection if possible.
-        setItems(creditCards, selectedMethodIndex);
+        setItems(paymentMethods, selectedMethodIndex);
     }
 }
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestSection.java
index 5c7a8fd..26a0ad8 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestSection.java
@@ -34,12 +34,15 @@
     private final View mSummaryView;
     private final int mFullViewResId;
     private final List<Item> mItems;
+    private final int mTitleToContentPadding;
 
     protected final Context mContext;
     protected T mSelectedOption;
 
     private boolean mIgnoreItemSelectedNotifications;
     private Callback<T> mListener;
+    private int mTopPadding;
+    private int mBottomPadding;
 
     private class Item {
         Item(View fullView, T option) {
@@ -67,6 +70,7 @@
         mContext = context;
         mFullViewResId = fullViewResId;
         mItems = new ArrayList<>();
+        mTitleToContentPadding = titleToContentPadding;
 
         LayoutInflater inflater = LayoutInflater.from(context);
         mSectionExpander = new AssistantVerticalExpander(context, null);
@@ -96,9 +100,6 @@
         setHorizontalMargins(mSummaryView, horizontalMargin, 0);
         setHorizontalMargins(mItemsView, 0, 0);
 
-        // Add some space between title and summary / expanded section.
-        mSectionExpander.setTitleToContentMargin(titleToContentPadding);
-
         TextView titleView = mSectionExpander.findViewById(R.id.section_title);
         titleView.setText(title);
 
@@ -170,7 +171,11 @@
         }
     }
 
-    private void addOrUpdateItem(T option, boolean select) {
+    void addOrUpdateItem(@Nullable T option, boolean select) {
+        if (option == null) {
+            return;
+        }
+
         // Update existing item if possible.
         Item item = null;
         for (int i = 0; i < mItems.size(); i++) {
@@ -197,6 +202,27 @@
         }
     }
 
+    void setPaddings(int topPadding, int bottomPadding) {
+        mTopPadding = topPadding;
+        mBottomPadding = bottomPadding;
+        updatePaddings();
+    }
+
+    void updatePaddings() {
+        if (isEmpty()) {
+            // Section is empty, i.e., the title is the bottom-most widget.
+            mSectionExpander.setTitlePadding(mTopPadding, mBottomPadding);
+        } else if (mSectionExpander.isExpanded()) {
+            // Section is expanded, i.e., the expanded widget is the bottom-most widget.
+            mSectionExpander.setTitlePadding(mTopPadding, mTitleToContentPadding);
+            setBottomPadding(mSectionExpander.getExpandedView(), mBottomPadding);
+        } else {
+            // Section is non-empty and collapsed -> collapsed widget is the bottom-most widget.
+            mSectionExpander.setTitlePadding(mTopPadding, mTitleToContentPadding);
+            setBottomPadding(mSectionExpander.getCollapsedView(), mBottomPadding);
+        }
+    }
+
     private void selectItem(Item item) {
         mSelectedOption = item.mOption;
         mItemsView.setCheckedItem(item.mFullView);
@@ -325,5 +351,11 @@
         if (isEmpty()) {
             mSectionExpander.setExpanded(false);
         }
+        updatePaddings();
+    }
+
+    private void setBottomPadding(View view, int padding) {
+        view.setPadding(
+                view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), padding);
     }
 }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestTermsSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestTermsSection.java
index 404f159..9ff33cc 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestTermsSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantPaymentRequestTermsSection.java
@@ -22,51 +22,81 @@
  */
 public class AssistantPaymentRequestTermsSection {
     private final View mView;
-    private final Callback<Integer> mListener;
+    private final AssistantChoiceList mTermsList;
+    private final TextView mTermsAgree;
+    private final TextView mTermsRequiresReview;
+    private final TextView mThirdPartyPrivacyNotice;
+    private Callback<Integer> mListener;
 
-    AssistantPaymentRequestTermsSection(
-            Context context, ViewGroup parent, String origin, Callback<Integer> listener) {
-        mListener = listener;
+    AssistantPaymentRequestTermsSection(Context context, ViewGroup parent) {
         mView = LayoutInflater.from(context).inflate(
                 R.layout.autofill_assistant_payment_request_terms_and_conditions, parent, false);
         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                 ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
         parent.addView(mView, lp);
-        AssistantChoiceList list = mView.findViewById(R.id.third_party_terms_list);
+        mTermsList = mView.findViewById(R.id.third_party_terms_list);
 
-        TextView termsAgree = new TextView(context);
-        StyleSpan boldSpan = new StyleSpan(android.graphics.Typeface.BOLD);
-        termsAgree.setText(SpanApplier.applySpans(
-                context.getString(R.string.autofill_assistant_3rd_party_terms_accept, origin),
-                new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
+        mTermsAgree = new TextView(context);
         ApiCompatibilityUtils.setTextAppearance(
-                termsAgree, org.chromium.chrome.R.style.TextAppearance_BlackCaption);
-        list.addItem(termsAgree, /*hasEditButton=*/false, selected -> {
+                mTermsAgree, org.chromium.chrome.R.style.TextAppearance_BlackCaption);
+        mTermsList.addItem(mTermsAgree, /*hasEditButton=*/false, selected -> {
             if (selected && mListener != null) {
                 mListener.onResult(AssistantTermsAndConditionsState.ACCEPTED);
             }
         }, /* itemEditedListener=*/null);
 
-        TextView termsReview = new TextView(context);
-        termsReview.setText(SpanApplier.applySpans(
-                context.getString(R.string.autofill_assistant_3rd_party_terms_review, origin),
-                new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
+        mTermsRequiresReview = new TextView(context);
         ApiCompatibilityUtils.setTextAppearance(
-                termsReview, org.chromium.chrome.R.style.TextAppearance_BlackCaption);
-        list.addItem(termsReview, /*hasEditButton=*/false, selected -> {
+                mTermsRequiresReview, org.chromium.chrome.R.style.TextAppearance_BlackCaption);
+        mTermsList.addItem(mTermsRequiresReview, /*hasEditButton=*/false, selected -> {
             if (selected && mListener != null) {
                 mListener.onResult(AssistantTermsAndConditionsState.REQUIRES_REVIEW);
             }
         }, /* itemEditedListener=*/null);
 
-        // Set 3rd party privacy notice text.
-        TextView thirdPartyPrivacyNotice =
+        mThirdPartyPrivacyNotice =
                 mView.findViewById(R.id.payment_request_3rd_party_privacy_notice);
-        thirdPartyPrivacyNotice.setText(SpanApplier.applySpans(
+    }
+
+    public void setOrigin(String origin) {
+        StyleSpan boldSpan = new StyleSpan(android.graphics.Typeface.BOLD);
+        Context context = mView.getContext();
+        mTermsAgree.setText(SpanApplier.applySpans(
+                context.getString(R.string.autofill_assistant_3rd_party_terms_accept, origin),
+                new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
+
+        mTermsRequiresReview.setText(SpanApplier.applySpans(
+                context.getString(R.string.autofill_assistant_3rd_party_terms_review, origin),
+                new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
+
+        mThirdPartyPrivacyNotice.setText(SpanApplier.applySpans(
                 context.getString(R.string.autofill_assistant_3rd_party_privacy_notice, origin),
                 new SpanApplier.SpanInfo("<b>", "</b>", boldSpan)));
     }
 
+    public void setTermsStatus(@AssistantTermsAndConditionsState int status) {
+        switch (status) {
+            case AssistantTermsAndConditionsState.NOT_SELECTED:
+                mTermsList.setCheckedItem(null);
+                break;
+            case AssistantTermsAndConditionsState.ACCEPTED:
+                mTermsList.setCheckedItem(mTermsAgree);
+                break;
+            case AssistantTermsAndConditionsState.REQUIRES_REVIEW:
+                mTermsList.setCheckedItem(mTermsRequiresReview);
+                break;
+        }
+    }
+
+    public void setPaddings(int topPadding, int bottomPadding) {
+        mView.setPadding(
+                mView.getPaddingLeft(), topPadding, mView.getPaddingRight(), bottomPadding);
+    }
+
+    public void setListener(Callback<Integer> listener) {
+        mListener = listener;
+    }
+
     View getView() {
         return mView;
     }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantVerticalExpander.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantVerticalExpander.java
index fd2c67a..eab3912f 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantVerticalExpander.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/payment/AssistantVerticalExpander.java
@@ -161,22 +161,15 @@
     }
 
     /**
-     * Sets the margin between the title bar and the content. This method should be used instead of
-     * manually setting a margin on the title view, because that would result in misalignment
-     * between title view and the expand chevron.
-     * @param marginInPixels The desired margin between the title bar and the content.
+     * Sets the top/bottom padding of the title bar. This method should be used instead of manually
+     * setting a padding on the title view, because that would result in misalignment between title
+     * view and the expand chevron.
      */
-    public void setTitleToContentMargin(int marginInPixels) {
-        View[] views = new View[] {mCollapsedContainer, mExpandedContainer};
-        for (View view : views) {
-            MarginLayoutParams lp = (MarginLayoutParams) view.getLayoutParams();
-            lp.topMargin = marginInPixels;
-            view.setLayoutParams(lp);
-        }
-
-        MarginLayoutParams lp = (MarginLayoutParams) mChevronButton.getLayoutParams();
-        lp.bottomMargin = marginInPixels;
-        mChevronButton.setLayoutParams(lp);
+    public void setTitlePadding(int topPadding, int bottomPadding) {
+        mTitleContainer.setPadding(mTitleContainer.getPaddingLeft(), topPadding,
+                mTitleContainer.getPaddingRight(), bottomPadding);
+        mChevronButton.setPadding(mChevronButton.getPaddingLeft(), topPadding,
+                mChevronButton.getPaddingRight(), bottomPadding);
     }
 
     public View getChevronButton() {
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
index 246b19a..ac42fbb 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_am.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="am">
 <translation id="1135993792949700405">Chrome እርስዎ የመረጡትን የግል ውሂብ ወደ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ይልካል</translation>
 <translation id="1625889395409731085">ውጫዊ አገናኝ ይከፈት?</translation>
+<translation id="1699570257714336246">መረጃ ይጎድላል</translation>
 <translation id="3604604794717279723">ተቀብያለሁ</translation>
 <translation id="4437727785356380473">Google ረዳት በChrome ውስጥ ተዘግቷል።</translation>
 <translation id="4850886885716139402">አሳይ</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ar.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ar.xtb
index 5558352..f505a88 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ar.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ar.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ar">
 <translation id="1135993792949700405">‏سيُرسل Chrome البيانات الشخصية التي اختَرتها إلى <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">هل تريد فتح الرابط الخارجي؟</translation>
+<translation id="1699570257714336246">معلومات مفقودة</translation>
 <translation id="3604604794717279723">أوافق</translation>
 <translation id="4437727785356380473">‏تم غلق "مساعد Google" في Chrome.</translation>
 <translation id="4850886885716139402">عرض</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
index 9b92fea..9ec427ea 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bg.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="bg">
 <translation id="1135993792949700405">Chrome ще изпрати избраните от вас лични данни до <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Да се отвори ли външната връзка?</translation>
+<translation id="1699570257714336246">Липсва информация</translation>
 <translation id="3604604794717279723">Приемам</translation>
 <translation id="4437727785356380473">Google Асистент в Chrome бе затворен.</translation>
 <translation id="4850886885716139402">Изглед</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bn.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bn.xtb
index 69dbdde..8fbe272 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bn.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_bn.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="bn">
 <translation id="1135993792949700405">আপনার বেছে নেওয়া <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />-এ Chrome ব্যক্তিগত ডেটা পাঠাবে</translation>
 <translation id="1625889395409731085">এক্সটারনাল লিঙ্ক খুলতে চান?</translation>
+<translation id="1699570257714336246">সম্পূর্ণ তথ্য দেওয়া হয়নি</translation>
 <translation id="3604604794717279723">আমি সম্মতি দিচ্ছি</translation>
 <translation id="4437727785356380473">Chrome-এ Google অ্যাসিস্ট্যান্ট বন্ধ হয়ে গেছে।</translation>
 <translation id="4850886885716139402">দেখুন</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
index f50933e..3ce5261 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ca.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ca">
 <translation id="1135993792949700405">Chrome enviarà a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> les dades personals que hagis seleccionat</translation>
 <translation id="1625889395409731085">Vols obrir l'enllaç extern?</translation>
+<translation id="1699570257714336246">Falta informació</translation>
 <translation id="3604604794717279723">Accepto</translation>
 <translation id="4437727785356380473">L'Assistent de Google a Chrome s'ha tancat.</translation>
 <translation id="4850886885716139402">Mostra</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_cs.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_cs.xtb
index f15e526..2f092ce 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_cs.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_cs.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="cs">
 <translation id="1135993792949700405">Osobní údaje, které jste vybrali, Chrome odešle webu <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Otevřít externí odkaz?</translation>
+<translation id="1699570257714336246">Některé informace chybí</translation>
 <translation id="3604604794717279723">Přijímám</translation>
 <translation id="4437727785356380473">Asistent Google v Chromu byl zavřen.</translation>
 <translation id="4850886885716139402">Zobrazit</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
index 1f86321..7dd7976 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_da.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="da">
 <translation id="1135993792949700405">Chrome sender de personoplysninger, du har valgt, til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Vil du åbne et eksternt link?</translation>
+<translation id="1699570257714336246">Der mangler oplysninger</translation>
 <translation id="3604604794717279723">Jeg accepterer</translation>
 <translation id="4437727785356380473">Google Assistent i Chrome er lukket.</translation>
 <translation id="4850886885716139402">Vis</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_de.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_de.xtb
index 165ea50..bac884c 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_de.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_de.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="de">
 <translation id="1135993792949700405">Chrome sendet die von Ihnen ausgewählten personenbezogenen Daten an <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Externen Link öffnen?</translation>
+<translation id="1699570257714336246">Fehlende Informationen</translation>
 <translation id="3604604794717279723">Ich stimme zu</translation>
 <translation id="4437727785356380473">Google Assistant für Chrome geschlossen.</translation>
 <translation id="4850886885716139402">Anzeigen</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
index fc52c82..3311dcf 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_en-GB.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="en-GB">
 <translation id="1135993792949700405">Chrome will send personal data that you selected to <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Open external link?</translation>
+<translation id="1699570257714336246">Information missing</translation>
 <translation id="3604604794717279723">I accept</translation>
 <translation id="4437727785356380473">Google Assistant in Chrome closed.</translation>
 <translation id="4850886885716139402">View</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es-419.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es-419.xtb
index c91305f..8b946bb 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es-419.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es-419.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="es-419">
 <translation id="1135993792949700405">Chrome enviará los datos personales que hayas seleccionados a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">¿Quieres abrir el vínculo externo?</translation>
+<translation id="1699570257714336246">Falta información</translation>
 <translation id="3604604794717279723">Acepto</translation>
 <translation id="4437727785356380473">Se cerró el Asistente de Google en Chrome.</translation>
 <translation id="4850886885716139402">Ver</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es.xtb
index c353db0b..b6e1371 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_es.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="es">
 <translation id="1135993792949700405">Chrome enviará la información personal que hayas seleccionado a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">¿Quieres abrir el enlace externo?</translation>
+<translation id="1699570257714336246">Falta información</translation>
 <translation id="3604604794717279723">Acepto</translation>
 <translation id="4437727785356380473">Se ha cerrado el Asistente de Google en Chrome.</translation>
 <translation id="4850886885716139402">Ver</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
index 906c0fc1..7daeca7 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fa.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="fa">
 <translation id="1135993792949700405">‏Chrome داده‌های شخصی را که انتخاب کرده‌اید به <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ارسال می‌کند</translation>
 <translation id="1625889395409731085">پیوند خارجی باز شود؟</translation>
+<translation id="1699570257714336246">اطلاعات از دست می‌رود</translation>
 <translation id="3604604794717279723">موافقم</translation>
 <translation id="4437727785356380473">‏«دستیار Google» در Chrome بسته شد.</translation>
 <translation id="4850886885716139402">نما</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
index 43a2ea04..0a58821 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fi.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="fi">
 <translation id="1135993792949700405">Chrome lähettää valitsemaasi henkilökohtaista dataa: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Avataanko ulkoinen linkki?</translation>
+<translation id="1699570257714336246">Tietoja puuttuu</translation>
 <translation id="3604604794717279723">Hyväksyn</translation>
 <translation id="4437727785356380473">Chromen Google Assistant suljettu</translation>
 <translation id="4850886885716139402">Näytä</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fil.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fil.xtb
index e9a20b5..b754858 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fil.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fil.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="fil">
 <translation id="1135993792949700405">Ipapadala ng Chrome sa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ang napili mong personal na data</translation>
 <translation id="1625889395409731085">Buksan ang external na link?</translation>
+<translation id="1699570257714336246">May nawawalang impormasyon</translation>
 <translation id="3604604794717279723">Tinatanggap ko</translation>
 <translation id="4437727785356380473">Nakasara ang Google Assistant sa Chrome.</translation>
 <translation id="4850886885716139402">View</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fr.xtb
index 7fe6985..6cca942 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_fr.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="fr">
 <translation id="1135993792949700405">Chrome envoie les données à caractère personnel sélectionnées par vos soins à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Ouvrir le lien externe ?</translation>
+<translation id="1699570257714336246">Informations manquantes</translation>
 <translation id="3604604794717279723">J'accepte</translation>
 <translation id="4437727785356380473">L'Assistant Google dans Chrome est fermé.</translation>
 <translation id="4850886885716139402">Afficher</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gu.xtb
index 7e10464..1ea6271 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_gu.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="gu">
 <translation id="1135993792949700405">તમે પસંદ કરેલો વ્યક્તિગત ડેટા Chrome <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />ને મોકલશે</translation>
 <translation id="1625889395409731085">બાહ્ય લિંક ખોલીએ?</translation>
+<translation id="1699570257714336246">માહિતી ખૂટે છે</translation>
 <translation id="3604604794717279723">હું સ્વીકારું છું</translation>
 <translation id="4437727785356380473">Chromeમાં Google આસિસ્ટંટ બંધ કર્યું.</translation>
 <translation id="4850886885716139402">જુઓ</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hi.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hi.xtb
index c4fa1f1..7bc02358 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hi.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hi.xtb
@@ -3,8 +3,9 @@
 <translationbundle lang="hi">
 <translation id="1135993792949700405">Chrome वह निजी डेटा भेजेगा जिसे आपने <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> के लिए चुना है</translation>
 <translation id="1625889395409731085">बाहरी लिंक खोलना चाहते हैं?</translation>
+<translation id="1699570257714336246">जानकारी मौजूद नहीं है</translation>
 <translation id="3604604794717279723">मैं सहमत हूं</translation>
-<translation id="4437727785356380473">Chrome में Google Assistant बंद हो गई है.</translation>
+<translation id="4437727785356380473">Chrome में Google Assistant की सुविधा बंद हो गई है.</translation>
 <translation id="4850886885716139402">देखें</translation>
 <translation id="5014174725590676422">'Chrome में Google Assistant' की सबसे पहली स्क्रीन दिखाई गई है</translation>
 <translation id="5188078772080029703">Chrome साइट के यूआरएल और सामग्री के साथ ही आपका ईमेल और Chrome में सेव किया गया क्रेडिट कार्ड का प्रकार Google को भेजेगा. आप Chrome सेटिंग में जाकर इसे बंद कर सकते हैं. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
index 633e1e2..a37a5cf 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hr.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="hr">
 <translation id="1135993792949700405">Chrome će poslati domeni <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> osobne podatke koje ste odabrali</translation>
 <translation id="1625889395409731085">Želite li otvoriti eksternu vezu?</translation>
+<translation id="1699570257714336246">Nedostaju podaci</translation>
 <translation id="3604604794717279723">Prihvaćam</translation>
 <translation id="4437727785356380473">Zatvoren je Google asistent u Chromeu.</translation>
 <translation id="4850886885716139402">Prikaz</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
index 2207d00..dfc7f63 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_hu.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="hu">
 <translation id="1135993792949700405">Az Ön által kiválasztott személyes adatokat a Chrome elküldi a következő domainnek: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Megnyitja a külső linket?</translation>
+<translation id="1699570257714336246">Hiányzó információ</translation>
 <translation id="3604604794717279723">Elfogadom</translation>
 <translation id="4437727785356380473">A Google Segéd be van zárva a Chrome-ban.</translation>
 <translation id="4850886885716139402">Nézet</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
index 97604d0..dbd69f3 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_id.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="id">
 <translation id="1135993792949700405">Chrome akan mengirimkan data pribadi yang Anda pilih ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Buka link eksternal?</translation>
+<translation id="1699570257714336246">Informasi tidak ada</translation>
 <translation id="3604604794717279723">Saya setuju</translation>
 <translation id="4437727785356380473">Asisten Google di Chrome ditutup.</translation>
 <translation id="4850886885716139402">Lihat</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
index 7616e98..750cf03 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_it.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="it">
 <translation id="1135993792949700405">Chrome invierà i dati personali selezionati al sito <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Aprire il link esterno?</translation>
+<translation id="1699570257714336246">Mancano informazioni</translation>
 <translation id="3604604794717279723">Accetto</translation>
 <translation id="4437727785356380473">Assistente Google in Chrome chiuso.</translation>
 <translation id="4850886885716139402">Visualizza</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
index a2dbca7..4a65eaf 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_iw.xtb
@@ -3,8 +3,9 @@
 <translationbundle lang="iw">
 <translation id="1135993792949700405">‏Chrome ישלח את המידע האישי שבחרת אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">לפתוח את הקישור החיצוני?</translation>
+<translation id="1699570257714336246">חסר מידע</translation>
 <translation id="3604604794717279723">אני מסכים/ה</translation>
-<translation id="4437727785356380473">‏Google Assistant ב-Chrome סגור.</translation>
+<translation id="4437727785356380473">‏Google Assistant ב-Chrome נסגר.</translation>
 <translation id="4850886885716139402">הצגה</translation>
 <translation id="5014174725590676422">‏מוצג מסך ההפעלה הראשונה של Google Assistant ב-Chrome</translation>
 <translation id="5188078772080029703">‏Chrome ישלח אל Google את כתובת ה-URL של האתר ואת התוכן שלו, כמו גם את כתובת האימייל וסוג כרטיס האשראי ששמרת ב-Chrome. ניתן להשבית את האפשרות הזו בהגדרות Chrome. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ja.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ja.xtb
index d530b94..89d8d6c 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ja.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ja.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ja">
 <translation id="1135993792949700405">ユーザーが選択した個人データが Chrome から <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> に送信されます</translation>
 <translation id="1625889395409731085">外部リンクを開きますか?</translation>
+<translation id="1699570257714336246">情報が不足しています</translation>
 <translation id="3604604794717279723">同意する</translation>
 <translation id="4437727785356380473">Chrome の Google アシスタントを終了しました。</translation>
 <translation id="4850886885716139402">表示</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
index 44eb93f..bc44baa 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_kn.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="kn">
 <translation id="1135993792949700405">Chrome, ನೀವು ಆಯ್ಕೆ ಮಾಡಿರುವ ವೈಯಕ್ತಿಕ ಡೇಟಾವನ್ನು <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="1625889395409731085">ಬಾಹ್ಯ ಲಿಂಕ್ ತೆರೆಯುವುದೇ?</translation>
+<translation id="1699570257714336246">ಮಾಹಿತಿ ಕಾಣೆಯಾಗಿದೆ</translation>
 <translation id="3604604794717279723">ನಾನು ಒಪ್ಪುತ್ತೇನೆ</translation>
 <translation id="4437727785356380473">Chrome ನಲ್ಲಿ Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಮುಚ್ಚಲಾಗಿದೆ.</translation>
 <translation id="4850886885716139402">ವೀಕ್ಷಣೆ</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ko.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ko.xtb
index cd85092..2e50634 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ko.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ko.xtb
@@ -3,13 +3,14 @@
 <translationbundle lang="ko">
 <translation id="1135993792949700405">Chrome에서 사용자가 선택한 개인 정보가 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />에 전송됩니다.</translation>
 <translation id="1625889395409731085">외부 링크를 여시겠습니까?</translation>
+<translation id="1699570257714336246">정보 누락</translation>
 <translation id="3604604794717279723">동의</translation>
-<translation id="4437727785356380473">Chrome의 Google 어시스턴트가 종료되었습니다.</translation>
+<translation id="4437727785356380473">Chrome의 Google 어시스턴트가 종료되었습니다</translation>
 <translation id="4850886885716139402">보기</translation>
 <translation id="5014174725590676422">Chrome의 Google 어시스턴트 첫 실행 화면이 표시됩니다.</translation>
 <translation id="5188078772080029703">사이트의 URL과 콘텐츠, Chrome에 저장된 이메일 및 신용카드 종류가 Google에 전송됩니다. 이 기능은 Chrome 설정에서 사용 중지할 수 있습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
-<translation id="5267269112080050255">Chrome의 Google 어시스턴트가 전체 높이로 열렸습니다.</translation>
-<translation id="6555233628095991027">Chrome의 Google 어시스턴트가 절반 높이로 열렸습니다.</translation>
+<translation id="5267269112080050255">Chrome의 Google 어시스턴트가 전체 높이로 열렸습니다</translation>
+<translation id="6555233628095991027">Chrome의 Google 어시스턴트가 절반 높이로 열렸습니다</translation>
 <translation id="6973932557599545801">죄송합니다. 더 이상 도와드릴 수 없습니다. 직접 계속해 주세요.</translation>
 <translation id="7658239707568436148">취소</translation>
 <translation id="7871791972254842204">나중에 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />의 이용약관을 읽고 동의하겠습니다.</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
index 79b9170..e42d2a5 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lt.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="lt">
 <translation id="1135993792949700405">„Chrome“ siųs pasirinktus asmens duomenis į <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Atidaryti išorinę nuorodą?</translation>
+<translation id="1699570257714336246">Trūksta informacijos</translation>
 <translation id="3604604794717279723">Sutinku</translation>
 <translation id="4437727785356380473">Programa „Google Assistant“ sistemoje „Chrome“ uždaryta.</translation>
 <translation id="4850886885716139402">Žiūrėti</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
index dd28459..303bfc0 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_lv.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="lv">
 <translation id="1135993792949700405">Chrome sūtīs jūsu atlasītos personas datus uz <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Vai atvērt ārējo saiti?</translation>
+<translation id="1699570257714336246">Trūkst informācijas</translation>
 <translation id="3604604794717279723">Piekrītu</translation>
 <translation id="4437727785356380473">Google asistents pārlūkprogrammā Chrome ir aizvērts.</translation>
 <translation id="4850886885716139402">Skatīt</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
index 82e30d0..1a44b00 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ml.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ml">
 <translation id="1135993792949700405">നിങ്ങൾ തിരഞ്ഞെടുത്ത വ്യക്തിപരമായ ഡാറ്റ Chrome <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> എന്നതിലേക്ക് അയയ്ക്കും</translation>
 <translation id="1625889395409731085">ബാഹ്യ ലിങ്ക് തുറക്കണോ?</translation>
+<translation id="1699570257714336246">വിവരങ്ങൾ സമ്പൂർണ്ണമല്ല</translation>
 <translation id="3604604794717279723">ഞാന്‍ അംഗീകരിക്കുന്നു</translation>
 <translation id="4437727785356380473">Chrome-ലെ Google അസിസ്‌റ്റന്റ് അടച്ചു.</translation>
 <translation id="4850886885716139402">കാണുക</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
index 6aa5180..07745d5 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_mr.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="mr">
 <translation id="1135993792949700405">Chrome तुम्ही निवडलेला वैयक्तिक डेटा <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ला पाठवेल</translation>
 <translation id="1625889395409731085">बाह्य लिंक उघडायची आहे का?</translation>
+<translation id="1699570257714336246">माहिती नाही आहे</translation>
 <translation id="3604604794717279723">मी स्वीकारत आहे</translation>
 <translation id="4437727785356380473">Chrome मधील Google असिस्टंट बंद आहे.</translation>
 <translation id="4850886885716139402">पहा</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
index 96ebb15..3279cf8 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ms.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ms">
 <translation id="1135993792949700405">Chrome akan menghantar data peribadi yang anda pilih ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Buka pautan luar?</translation>
+<translation id="1699570257714336246">Tiada maklumat</translation>
 <translation id="3604604794717279723">Saya terima</translation>
 <translation id="4437727785356380473">Google Assistant dalam Chrome ditutup.</translation>
 <translation id="4850886885716139402">Lihat</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
index 06fb1ea..57b1c7f 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_nl.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="nl">
 <translation id="1135993792949700405">Chrome verzendt de persoonsgegevens die je hebt geselecteerd naar <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Externe link openen?</translation>
+<translation id="1699570257714336246">Ontbrekende informatie</translation>
 <translation id="3604604794717279723">Ik ga akkoord</translation>
 <translation id="4437727785356380473">De Google Assistent in Chrome is gesloten.</translation>
 <translation id="4850886885716139402">Weergave</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
index 0477efc..7f71bda 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_no.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="no">
 <translation id="1135993792949700405">Chrome sender personopplysningene du har valgt, til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Vil du åpne den eksterne linken?</translation>
+<translation id="1699570257714336246">Informasjon mangler</translation>
 <translation id="3604604794717279723">Godta</translation>
 <translation id="4437727785356380473">Google-assistenten i Chrome er lukket.</translation>
 <translation id="4850886885716139402">Visning</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
index 9f97ef4..d2b035c 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pl.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="pl">
 <translation id="1135993792949700405">Chrome będzie wysyłać wybrane przez Ciebie dane osobowe do <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Otworzyć link zewnętrzny?</translation>
+<translation id="1699570257714336246">Brak informacji</translation>
 <translation id="3604604794717279723">Zgadzam się</translation>
 <translation id="4437727785356380473">Zamknięto Asystenta Google w Chrome.</translation>
 <translation id="4850886885716139402">Widok</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
index 07809ef6..4c7c9bf 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-BR.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="pt-BR">
 <translation id="1135993792949700405">O Chrome enviará dados pessoais selecionados por você para <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Abrir link externo?</translation>
+<translation id="1699570257714336246">Informações faltantes</translation>
 <translation id="3604604794717279723">Aceito</translation>
 <translation id="4437727785356380473">Google Assistente no Chrome fechado.</translation>
 <translation id="4850886885716139402">Visualizar</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
index 6e0eec4..b6ca03fa 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_pt-PT.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="pt-PT">
 <translation id="1135993792949700405">O Chrome envia os dados pessoais selecionados para <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />.</translation>
 <translation id="1625889395409731085">Pretende abrir o link externo?</translation>
+<translation id="1699570257714336246">Informações em falta</translation>
 <translation id="3604604794717279723">Aceito</translation>
 <translation id="4437727785356380473">Assistente Google no Chrome fechado.</translation>
 <translation id="4850886885716139402">Ver</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ro.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ro.xtb
index 43d2bf2..deda00c 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ro.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ro.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ro">
 <translation id="1135993792949700405">Chrome va trimite datele cu caracter personal selectate la <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Deschizi linkul extern?</translation>
+<translation id="1699570257714336246">Informații lipsă</translation>
 <translation id="3604604794717279723">Accept</translation>
 <translation id="4437727785356380473">Asistentul Google în Chrome este închis.</translation>
 <translation id="4850886885716139402">Afișează</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ru.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ru.xtb
index 4a6b43c..f3561d3 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ru.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ru.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="ru">
 <translation id="1135993792949700405">Персональные данные, выбранные вами для автозаполнения, будут переданы <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />.</translation>
 <translation id="1625889395409731085">Открыть внешнюю ссылку?</translation>
+<translation id="1699570257714336246">Данные отсутствуют</translation>
 <translation id="3604604794717279723">Принимаю</translation>
 <translation id="4437727785356380473">Окно Google Ассистента в Chrome закрыто.</translation>
 <translation id="4850886885716139402">Посмотреть</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sl.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sl.xtb
index 691857b..2548c26 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sl.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sl.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="sl">
 <translation id="1135993792949700405">Chrome bo <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> pošiljal osebne podatke, ki ste jih izbrali</translation>
 <translation id="1625889395409731085">Želite odpreti zunanjo povezavo?</translation>
+<translation id="1699570257714336246">Manjkajo podatki</translation>
 <translation id="3604604794717279723">Sprejmem</translation>
 <translation id="4437727785356380473">Pomočnik Google v Chromu je zaprt.</translation>
 <translation id="4850886885716139402">Pogled</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
index e5cb277..2a8b71a 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sr.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="sr">
 <translation id="1135993792949700405">Chrome ће послати личне податке које сте изабрали на <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Желите ли да отворите спољни линк?</translation>
+<translation id="1699570257714336246">Недостају информације</translation>
 <translation id="3604604794717279723">Прихватам</translation>
 <translation id="4437727785356380473">Google помоћник у Chrome-у је затворен.</translation>
 <translation id="4850886885716139402">Приказ</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
index 2159b6e..4b68fd9 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sv.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="sv">
 <translation id="1135993792949700405">Chrome skickar valda personuppgifter till <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Vill du öppna extern länk?</translation>
+<translation id="1699570257714336246">Uppgifter saknas</translation>
 <translation id="3604604794717279723">Godkänn</translation>
 <translation id="4437727785356380473">Google-assistenten i Chrome är stängd.</translation>
 <translation id="4850886885716139402">Visa</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
index 3108986..7250069 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_sw.xtb
@@ -3,6 +3,7 @@
 <translationbundle lang="sw">
 <translation id="1135993792949700405">Chrome itatuma data ya binafsi uliyochagua kwa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="1625889395409731085">Ungependa kufungua kiungo cha nje?</translation>
+<translation id="1699570257714336246">Maelezo hayajakamilika</translation>
 <translation id="3604604794717279723">Ninakubali</translation>
 <translation id="4437727785356380473">Imefunga Mratibu wa Google katika Chrome.</translation>
 <translation id="4850886885716139402">Mwonekano</translation>
diff --git a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ta.xtb b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ta.xtb
index 2dea2db..b5f75cb 100644
--- a/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ta.xtb
+++ b/chrome/android/features/autofill_assistant/java/strings/translations/android_chrome_autofill_assistant_strings_ta.xtb
@@ -2,13 +2,18 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
 <translation id="1135993792949700405">Chrome நீங்கள் தேர்ந்தெடுத்த தனிப்பட்ட தரவை <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> டொமைனுக்கு அனுப்பும்</translation>
+<translation id="1625889395409731085">புற இணைப்புகளைத் திறக்கவா?</translation>
 <translation id="3604604794717279723">ஏற்கிறேன்</translation>
+<translation id="4437727785356380473">'Chromeமில் Google அசிஸ்டண்ட்' மூடப்பட்டது.</translation>
 <translation id="4850886885716139402">காட்சி</translation>
 <translation id="5014174725590676422">’Chromeமில் Google அசிஸ்டண்ட்