Remove explict focus ring install for button subclasses

Since views button installs focus ring by deafult to show on keyboard
focus, this CL refactors all its subclasses to remove explicit
installation of focus ring. Only subclasses that need to override to
remove focus ring installation need to call
SetInstallFocusRingOnFocus(false) explicitly.

BUG=924232

Change-Id: Ia5bfce1fca6aaca16ae7e39106737de976e191fc
Reviewed-on: https://chromium-review.googlesource.com/c/1432252
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Wei Li <weili@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625464}
diff --git a/ash/shelf/login_shelf_view.cc b/ash/shelf/login_shelf_view.cc
index 12e6575..92628d3 100644
--- a/ash/shelf/login_shelf_view.cc
+++ b/ash/shelf/login_shelf_view.cc
@@ -139,7 +139,6 @@
                  icon, SkColorSetA(kButtonIconColor,
                                    login_constants::kButtonDisabledAlpha)));
     SetFocusBehavior(FocusBehavior::ALWAYS);
-    SetInstallFocusRingOnFocus(true);
     focus_ring()->SetColor(kFocusBorderColor);
     SetFocusPainter(nullptr);
     SetInkDropMode(InkDropMode::ON);
@@ -227,7 +226,6 @@
   KioskAppsButton(const base::string16& text, const gfx::ImageSkia& image)
       : MenuButton(text, this), ui::SimpleMenuModel(this) {
     SetFocusBehavior(FocusBehavior::ALWAYS);
-    SetInstallFocusRingOnFocus(true);
     focus_ring()->SetColor(kFocusBorderColor);
     SetFocusPainter(nullptr);
     SetInkDropMode(InkDropMode::ON);
diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc
index ce81ebd..909af0e 100644
--- a/ash/system/tray/tray_background_view.cc
+++ b/ash/system/tray/tray_background_view.cc
@@ -162,7 +162,6 @@
 
   SetLayoutManager(std::make_unique<views::FillLayout>());
   SetBackground(std::unique_ptr<views::Background>(background_));
-  SetInstallFocusRingOnFocus(true);
   focus_ring()->SetColor(kFocusBorderColor);
   SetFocusPainter(nullptr);
 
diff --git a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
index d0c81f4..5fca188 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_tab_switch_button.cc
@@ -58,7 +58,6 @@
   animation_->SetSlideDuration(500);
   SetElideBehavior(gfx::FADE_TAIL);
 
-  SetInstallFocusRingOnFocus(true);
   focus_ring()->SetHasFocusPredicate([](View* view) {
     auto* button = static_cast<OmniboxTabSwitchButton*>(view);
     return button->IsSelected();
diff --git a/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc b/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc
index fae1519e..b34dcab 100644
--- a/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc
+++ b/chrome/browser/ui/views/overlay/back_to_tab_image_button.cc
@@ -46,7 +46,6 @@
       IDS_PICTURE_IN_PICTURE_BACK_TO_TAB_CONTROL_TEXT));
   SetAccessibleName(back_to_tab_button_label);
   SetTooltipText(back_to_tab_button_label);
-  SetInstallFocusRingOnFocus(true);
 }
 
 void BackToTabImageButton::StateChanged(ButtonState old_state) {
diff --git a/chrome/browser/ui/views/overlay/close_image_button.cc b/chrome/browser/ui/views/overlay/close_image_button.cc
index 65e0eb97..5d51a70 100644
--- a/chrome/browser/ui/views/overlay/close_image_button.cc
+++ b/chrome/browser/ui/views/overlay/close_image_button.cc
@@ -46,7 +46,6 @@
       l10n_util::GetStringUTF16(IDS_PICTURE_IN_PICTURE_CLOSE_CONTROL_TEXT));
   SetAccessibleName(close_button_label);
   SetTooltipText(close_button_label);
-  SetInstallFocusRingOnFocus(true);
 }
 
 void CloseImageButton::StateChanged(ButtonState old_state) {
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 5c8fa5e..8ade3f86 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -533,7 +533,6 @@
   base::string16 custom_button_label = base::UTF8ToUTF16(info.label);
   control_button->SetAccessibleName(custom_button_label);
   control_button->SetTooltipText(custom_button_label);
-  control_button->SetInstallFocusRingOnFocus(true);
   control_button->SetFocusForPlatform();
 }
 
diff --git a/chrome/browser/ui/views/overlay/playback_image_button.cc b/chrome/browser/ui/views/overlay/playback_image_button.cc
index b8f06c13..8c3a0cb5 100644
--- a/chrome/browser/ui/views/overlay/playback_image_button.cc
+++ b/chrome/browser/ui/views/overlay/playback_image_button.cc
@@ -30,7 +30,6 @@
       l10n_util::GetStringUTF16(
           IDS_PICTURE_IN_PICTURE_PLAY_PAUSE_CONTROL_ACCESSIBLE_TEXT));
   SetAccessibleName(playback_accessible_button_label);
-  SetInstallFocusRingOnFocus(true);
 }
 
 PlaybackImageButton::~PlaybackImageButton() = default;
diff --git a/chrome/browser/ui/views/overlay/resize_handle_button.cc b/chrome/browser/ui/views/overlay/resize_handle_button.cc
index 29fd1e8..4f504bf 100644
--- a/chrome/browser/ui/views/overlay/resize_handle_button.cc
+++ b/chrome/browser/ui/views/overlay/resize_handle_button.cc
@@ -39,7 +39,6 @@
       l10n_util::GetStringUTF16(IDS_PICTURE_IN_PICTURE_RESIZE_HANDLE_TEXT));
   SetAccessibleName(resize_button_label);
   SetTooltipText(resize_button_label);
-  SetInstallFocusRingOnFocus(true);
 }
 
 ResizeHandleButton::~ResizeHandleButton() = default;
diff --git a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
index 2d15883..75b2fa0 100644
--- a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
+++ b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
@@ -38,7 +38,6 @@
   SetFocusForPlatform();
   SetAccessibleName(label()->text());
   SetTooltipText(label()->text());
-  SetInstallFocusRingOnFocus(true);
 }
 
 void SkipAdLabelButton::SetPosition(const gfx::Size& size) {
diff --git a/chrome/browser/ui/views/passwords/password_pending_view.cc b/chrome/browser/ui/views/passwords/password_pending_view.cc
index 26d13f0..b53409a 100644
--- a/chrome/browser/ui/views/passwords/password_pending_view.cc
+++ b/chrome/browser/ui/views/passwords/password_pending_view.cc
@@ -192,7 +192,6 @@
     bool are_passwords_revealed) {
   auto button = std::make_unique<views::ToggleImageButton>(listener);
   button->SetFocusForPlatform();
-  button->SetInstallFocusRingOnFocus(true);
   button->set_request_focus_on_press(true);
   button->SetTooltipText(
       l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_SHOW_PASSWORD));
diff --git a/chrome/browser/ui/views/tabs/new_tab_button.cc b/chrome/browser/ui/views/tabs/new_tab_button.cc
index b9e52a3..dda5769 100644
--- a/chrome/browser/ui/views/tabs/new_tab_button.cc
+++ b/chrome/browser/ui/views/tabs/new_tab_button.cc
@@ -74,8 +74,6 @@
   ink_drop_container_->SetVisible(false);
   SetInkDropMode(InkDropMode::ON);
   set_ink_drop_visible_opacity(0.08f);
-
-  SetInstallFocusRingOnFocus(true);
 }
 
 NewTabButton::~NewTabButton() {
diff --git a/chrome/browser/ui/views/tabs/tab_close_button.cc b/chrome/browser/ui/views/tabs/tab_close_button.cc
index f1698a8..8fc6aa3 100644
--- a/chrome/browser/ui/views/tabs/tab_close_button.cc
+++ b/chrome/browser/ui/views/tabs/tab_close_button.cc
@@ -43,8 +43,6 @@
   // Disable animation so that the red danger sign shows up immediately
   // to help avoid mis-clicks.
   SetAnimationDuration(0);
-
-  SetInstallFocusRingOnFocus(true);
 }
 
 TabCloseButton::~TabCloseButton() {}
diff --git a/ui/views/controls/button/checkbox.cc b/ui/views/controls/button/checkbox.cc
index d02b947..bf27e6b 100644
--- a/ui/views/controls/button/checkbox.cc
+++ b/ui/views/controls/button/checkbox.cc
@@ -45,10 +45,6 @@
   // Limit the checkbox height to match the legacy appearance.
   const gfx::Size preferred_size(LabelButton::CalculatePreferredSize());
   SetMinSize(gfx::Size(0, preferred_size.height() + 4));
-
-  // Checkboxes always have a focus ring, even when the platform otherwise
-  // doesn't generally use them for buttons.
-  SetInstallFocusRingOnFocus(true);
 }
 
 Checkbox::~Checkbox() {
diff --git a/ui/views/controls/button/md_text_button.cc b/ui/views/controls/button/md_text_button.cc
index 7f42ce4d..fbee2034 100644
--- a/ui/views/controls/button/md_text_button.cc
+++ b/ui/views/controls/button/md_text_button.cc
@@ -165,7 +165,6 @@
   const int minimum_width = LayoutProvider::Get()->GetDistanceMetric(
       DISTANCE_DIALOG_BUTTON_MINIMUM_WIDTH);
   SetMinSize(gfx::Size(minimum_width, 0));
-  SetInstallFocusRingOnFocus(true);
   label()->SetAutoColorReadabilityEnabled(false);
   set_request_focus_on_press(false);