Hide Skip Ad tooltip if not visible in Picture-in-Picture window

Bug: 926121, 926679
Change-Id: Ia562854262a4245197577274b3f3fed67bf65853
Reviewed-on: https://chromium-review.googlesource.com/c/1443011
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#627577}(cherry picked from commit 7ffc24cbc9a6a4b5e4afbe023f678f17c51b5449)
Reviewed-on: https://chromium-review.googlesource.com/c/1448240
Reviewed-by: François Beaufort <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/branch-heads/3683@{#106}
Cr-Branched-From: e51029943e0a38dd794b73caaf6373d5496ae783-refs/heads/master@{#625896}
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 4cf13f6..1335673 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -443,10 +443,12 @@
   GetControlsScrimLayer()->SetVisible(is_visible);
   GetControlsParentLayer()->SetVisible(is_visible);
   GetBackToTabControlsLayer()->SetVisible(is_visible);
-  GetSkipAdControlsLayer()->SetVisible(is_visible && show_skip_ad_button_);
-  skip_ad_controls_view_->SetEnabled(is_visible && show_skip_ad_button_);
   GetCloseControlsLayer()->SetVisible(is_visible);
 
+  // We need to do more than usual visibility change because otherwise control
+  // is accessible via accessibility tools.
+  skip_ad_controls_view_->ToggleVisibility(is_visible && show_skip_ad_button_);
+
 #if defined(OS_CHROMEOS)
   GetResizeHandleLayer()->SetVisible(is_visible);
 #endif
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..bd1d9952 100644
--- a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
+++ b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
@@ -47,4 +47,11 @@
       size.height() - kSkipAdButtonHeight - kSkipAdButtonMarginBottom));
 }
 
+void SkipAdLabelButton::ToggleVisibility(bool is_visible) {
+  layer()->SetVisible(is_visible);
+  SetEnabled(is_visible);
+  SetSize(is_visible ? gfx::Size(kSkipAdButtonWidth, kSkipAdButtonHeight)
+                     : gfx::Size());
+}
+
 }  // namespace views
diff --git a/chrome/browser/ui/views/overlay/skip_ad_label_button.h b/chrome/browser/ui/views/overlay/skip_ad_label_button.h
index a3d545d..1b17b9a 100644
--- a/chrome/browser/ui/views/overlay/skip_ad_label_button.h
+++ b/chrome/browser/ui/views/overlay/skip_ad_label_button.h
@@ -19,6 +19,9 @@
   // Sets the position of itself with an offset from the given window size.
   void SetPosition(const gfx::Size& size);
 
+  // Toggle visibility.
+  void ToggleVisibility(bool is_visible);
+
  private:
   DISALLOW_COPY_AND_ASSIGN(SkipAdLabelButton);
 };