Revert "Add Skip Ad button to Picture-in-Picture window."
This reverts commit b0281b1250cdec351658e9bf07dd5f5d3331ef91.
Reason for revert: Broke build (see https://ci.chromium.org/buildbot/chromium.chrome/Google%20Chrome%20ChromeOS/60556 )
Original change's description:
> Add Skip Ad button to Picture-in-Picture window.
>
> This CL adds 'skipad' to the Media Session actions available to web
> developers. It allows them to use it to show/hide a Skip Ad button in
> the Picture-in-Picture window. When users clicks it, the action handler
> is called.
>
> Screenshots: https://imgur.com/a/fxBNTKf
>
> Change-Id: I017421e2efe9a8b31fd577647c1e2b5f73cb23f0
> Bug: 910436
> Reviewed-on: https://chromium-review.googlesource.com/c/1393331
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Becca Hughes <beccahughes@chromium.org>
> Reviewed-by: Eliot Courtney <edcourtney@chromium.org>
> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
> Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#622306}
TBR=dcheng@chromium.org,beaufort.francois@gmail.com,mlamouri@chromium.org,jochen@chromium.org,edcourtney@chromium.org,beccahughes@chromium.org
Change-Id: I2d02199072a3d8f1fc173c74ad7be4203f4506c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 910436
Reviewed-on: https://chromium-review.googlesource.com/c/1408269
Reviewed-by: Roman Sorokin [CET] <rsorokin@chromium.org>
Commit-Queue: Roman Sorokin [CET] <rsorokin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622308}
diff --git a/ash/media/media_notification_item.cc b/ash/media/media_notification_item.cc
index ba9d0e54..f6b36c5 100644
--- a/ash/media/media_notification_item.cc
+++ b/ash/media/media_notification_item.cc
@@ -158,8 +158,6 @@
case MediaSessionAction::kStop:
media_controller_ptr_->Stop();
break;
- case MediaSessionAction::kSkipAd:
- break;
}
}
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 783fe9a..df0f3a5 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5633,9 +5633,6 @@
<message name="IDS_PICTURE_IN_PICTURE_BACK_TO_TAB_CONTROL_TEXT" desc="Text label of the back to tab control button. The button appears when the user hovers over the Picture-in-Picture window.">
Back to tab
</message>
- <message name="IDS_PICTURE_IN_PICTURE_SKIP_AD_CONTROL_TEXT" desc="Text label of the skip ad control button. The button appears when the user hovers over the Picture-in-Picture window.">
- Skip Ad
- </message>
<message name="IDS_PICTURE_IN_PICTURE_CLOSE_CONTROL_TEXT" desc="Text label of the close control button. The button appears when the user hovers over the Picture-in-Picture window.">
Close
</message>
diff --git a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc
index f68926c7..5de94d1 100644
--- a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc
+++ b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc
@@ -91,8 +91,4 @@
// Should be a no-op on ARC. This is managed on the Android side.
}
-void ArcPictureInPictureWindowControllerImpl::SkipAd() {
- // Should be a no-op on ARC. This is managed on the Android side.
-}
-
} // namespace arc
diff --git a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h
index 0bc5b3f..6db70d2 100644
--- a/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h
+++ b/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h
@@ -50,7 +50,6 @@
void UpdatePlaybackState(bool is_playing,
bool reached_end_of_stream) override;
void SetAlwaysHidePlayPauseButton(bool is_visible) override;
- void SkipAd() override;
private:
arc::ArcPipBridge* const arc_pip_bridge_;
diff --git a/chrome/browser/picture_in_picture/DEPS b/chrome/browser/picture_in_picture/DEPS
index da2c556..7a8fcf0 100644
--- a/chrome/browser/picture_in_picture/DEPS
+++ b/chrome/browser/picture_in_picture/DEPS
@@ -3,6 +3,5 @@
"+ash/accelerators/accelerator_controller.h",
"+ash/shell.h",
"+chrome/browser/ui/views/overlay/overlay_window_views.h",
- "+chrome/browser/ui/views/overlay/skip_ad_label_button.h",
],
}
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
index 2c7aa711..610b98f 100644
--- a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
+++ b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
@@ -6,7 +6,6 @@
#include "base/path_service.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/test/scoped_feature_list.h"
#include "build/build_config.h"
#include "chrome/browser/devtools/devtools_window_testing.h"
#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
@@ -25,19 +24,15 @@
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_navigation_observer.h"
-#include "media/base/media_switches.h"
#include "net/dns/mock_host_resolver.h"
-#include "services/media_session/public/cpp/features.h"
#include "skia/ext/image_operations.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/blink/public/common/picture_in_picture/picture_in_picture_control_info.h"
#include "ui/aura/window.h"
-#include "ui/events/base_event_utils.h"
#include "ui/gfx/codec/png_codec.h"
#if !defined(OS_ANDROID)
#include "chrome/browser/ui/views/overlay/overlay_window_views.h"
-#include "chrome/browser/ui/views/overlay/skip_ad_label_button.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/widget/widget_observer.h"
#endif
@@ -78,7 +73,6 @@
MOCK_METHOD0(TogglePlayPause, bool());
MOCK_METHOD1(CustomControlPressed, void(const std::string&));
MOCK_METHOD1(SetAlwaysHidePlayPauseButton, void(bool));
- MOCK_METHOD0(SkipAd, void());
private:
DISALLOW_COPY_AND_ASSIGN(MockPictureInPictureWindowController);
@@ -1771,97 +1765,3 @@
active_web_contents, "isInPictureInPicture();", &in_picture_in_picture));
EXPECT_TRUE(in_picture_in_picture);
}
-
-class MediaSessionPictureInPictureWindowControllerBrowserTest
- : public PictureInPictureWindowControllerBrowserTest {
- public:
- void SetUpCommandLine(base::CommandLine* command_line) override {
- PictureInPictureWindowControllerBrowserTest::SetUpCommandLine(command_line);
- command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures,
- "MediaSession");
- scoped_feature_list_.InitWithFeatures(
- {media_session::features::kMediaSessionService, media::kSkipAd}, {});
- }
-
-#if !defined(OS_ANDROID)
- void MoveMouseOver(OverlayWindowViews* window) {
- gfx::Point p(window->GetBounds().x(), window->GetBounds().y());
- ui::MouseEvent moved_over(ui::ET_MOUSE_MOVED, p, p, ui::EventTimeForNow(),
- ui::EF_NONE, ui::EF_NONE);
- window->OnMouseEvent(&moved_over);
- }
-#endif
-
- private:
- base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-#if !defined(OS_ANDROID)
-// Tests that a Skip Ad button is displayed in the Picture-in-Picture window
-// when Media Session Action "skipad" is handled by the website.
-IN_PROC_BROWSER_TEST_F(MediaSessionPictureInPictureWindowControllerBrowserTest,
- SkipAdButtonVisibility) {
- LoadTabAndEnterPictureInPicture(browser());
- OverlayWindowViews* overlay_window = static_cast<OverlayWindowViews*>(
- window_controller()->GetWindowForTesting());
- ASSERT_TRUE(overlay_window);
-
- // Skip Ad button is not displayed initially when mouse is hovering over the
- // window.
- MoveMouseOver(overlay_window);
- EXPECT_FALSE(
- overlay_window->skip_ad_controls_view_for_testing()->layer()->visible());
-
- content::WebContents* active_web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- ASSERT_TRUE(content::ExecuteScript(active_web_contents,
- "setMediaSessionSkipAdActionHandler();"));
-
- // Skip Ad button is not displayed if video is not playing even if mouse is
- // hovering over the window and media session action handler has been set.
- base::RunLoop().RunUntilIdle();
- MoveMouseOver(overlay_window);
- EXPECT_FALSE(
- overlay_window->skip_ad_controls_view_for_testing()->layer()->visible());
-
- EXPECT_FALSE(
- overlay_window->skip_ad_controls_view_for_testing()->layer()->visible());
- ASSERT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
-
- // Set action handler and check that Skip Ad button is now displayed when
- // video plays and mouse is hovering over the window.
- base::RunLoop().RunUntilIdle();
- MoveMouseOver(overlay_window);
- EXPECT_TRUE(
- overlay_window->skip_ad_controls_view_for_testing()->layer()->visible());
-
- // Unset action handler and check that Skip Ad button is not displayed when
- // video plays and mouse is hovering over the window.
- ASSERT_TRUE(content::ExecuteScript(
- active_web_contents, "unsetMediaSessionSkipAdActionHandler();"));
- base::RunLoop().RunUntilIdle();
- MoveMouseOver(overlay_window);
- EXPECT_FALSE(
- overlay_window->skip_ad_controls_view_for_testing()->layer()->visible());
-}
-#endif
-
-// Tests that clicking the Skip Ad button in the Picture-in-Picture window
-// calls the Media Session Action "skipad" handler function.
-IN_PROC_BROWSER_TEST_F(MediaSessionPictureInPictureWindowControllerBrowserTest,
- SkipAdHandlerCalled) {
- LoadTabAndEnterPictureInPicture(browser());
- content::WebContents* active_web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- ASSERT_TRUE(content::ExecuteScript(active_web_contents, "video.play();"));
- ASSERT_TRUE(content::ExecuteScript(active_web_contents,
- "setMediaSessionSkipAdActionHandler();"));
- base::RunLoop().RunUntilIdle();
-
- // Simulates user clicking "Skip Ad" and check the handler function is called.
- window_controller()->SkipAd();
- base::string16 expected_title = base::ASCIIToUTF16("skipad");
- EXPECT_EQ(expected_title,
- content::TitleWatcher(active_web_contents, expected_title)
- .WaitAndGetTitle());
-}
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 2583faf..e5a88db 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -2644,8 +2644,6 @@
"views/overlay/playback_image_button.h",
"views/overlay/resize_handle_button.cc",
"views/overlay/resize_handle_button.h",
- "views/overlay/skip_ad_label_button.cc",
- "views/overlay/skip_ad_label_button.h",
"views/page_action/page_action_icon_container_view.cc",
"views/page_action/page_action_icon_container_view.h",
"views/page_action/page_action_icon_view.cc",
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 8184fea..d651225 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -17,12 +17,10 @@
#include "chrome/browser/ui/views/overlay/control_image_button.h"
#include "chrome/browser/ui/views/overlay/playback_image_button.h"
#include "chrome/browser/ui/views/overlay/resize_handle_button.h"
-#include "chrome/browser/ui/views/overlay/skip_ad_label_button.h"
#include "chrome/grit/generated_resources.h"
#include "components/vector_icons/vector_icons.h"
#include "content/public/browser/picture_in_picture_window_controller.h"
#include "content/public/browser/web_contents.h"
-#include "media/base/media_switches.h"
#include "media/base/video_util.h"
#include "third_party/blink/public/common/picture_in_picture/picture_in_picture_control_info.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -117,7 +115,6 @@
OverlayWindowViews* window = static_cast<OverlayWindowViews*>(widget_);
if (window->AreControlsVisible() &&
(window->GetBackToTabControlsBounds().Contains(point) ||
- window->GetSkipAdControlsBounds().Contains(point) ||
window->GetCloseControlsBounds().Contains(point) ||
window->GetFirstCustomControlsBounds().Contains(point) ||
window->GetSecondCustomControlsBounds().Contains(point) ||
@@ -189,7 +186,6 @@
controls_scrim_view_(new views::View()),
controls_parent_view_(new views::View()),
back_to_tab_controls_view_(new views::BackToTabImageButton(this)),
- skip_ad_controls_view_(new views::SkipAdLabelButton(this)),
close_controls_view_(new views::CloseImageButton(this)),
#if defined(OS_CHROMEOS)
resize_handle_view_(new views::ResizeHandleButton(this)),
@@ -336,15 +332,8 @@
// views::View that closes the window and focuses initiator tab. ------------
back_to_tab_controls_view_->SetPaintToLayer(ui::LAYER_TEXTURED);
back_to_tab_controls_view_->layer()->SetFillsBoundsOpaquely(false);
- back_to_tab_controls_view_->layer()->set_name("BackToTabControlsView");
back_to_tab_controls_view_->set_owned_by_client();
- // views::View that holds the skip-ad label button. -------------------------
- skip_ad_controls_view_->SetPaintToLayer(ui::LAYER_TEXTURED);
- skip_ad_controls_view_->layer()->SetFillsBoundsOpaquely(true);
- skip_ad_controls_view_->layer()->set_name("SkipAdControlsView");
- skip_ad_controls_view_->set_owned_by_client();
-
// views::View that closes the window. --------------------------------------
close_controls_view_->SetPaintToLayer(ui::LAYER_TEXTURED);
close_controls_view_->layer()->SetFillsBoundsOpaquely(false);
@@ -368,11 +357,10 @@
resize_handle_view_->set_owned_by_client();
#endif
- // Set up view::Views hierarchy. --------------------------------------------
+ // Set up view::Views heirarchy. --------------------------------------------
controls_parent_view_->AddChildView(play_pause_controls_view_.get());
GetContentsView()->AddChildView(controls_scrim_view_.get());
GetContentsView()->AddChildView(controls_parent_view_.get());
- GetContentsView()->AddChildView(skip_ad_controls_view_.get());
GetContentsView()->AddChildView(back_to_tab_controls_view_.get());
GetContentsView()->AddChildView(close_controls_view_.get());
#if defined(OS_CHROMEOS)
@@ -417,7 +405,6 @@
GetControlsScrimLayer()->SetVisible(is_visible);
GetControlsParentLayer()->SetVisible(is_visible);
GetBackToTabControlsLayer()->SetVisible(is_visible);
- GetSkipAdControlsLayer()->SetVisible(is_visible && show_skip_ad_button_);
GetCloseControlsLayer()->SetVisible(is_visible);
#if defined(OS_CHROMEOS)
@@ -435,7 +422,6 @@
WindowQuadrant quadrant = GetCurrentWindowQuadrant(GetBounds(), controller_);
back_to_tab_controls_view_->SetPosition(GetBounds().size(), quadrant);
- skip_ad_controls_view_->SetPosition(GetBounds().size());
close_controls_view_->SetPosition(GetBounds().size(), quadrant);
#if defined(OS_CHROMEOS)
resize_handle_view_->SetPosition(GetBounds().size(), quadrant);
@@ -628,11 +614,6 @@
always_hide_play_pause_button_ = !is_visible;
}
-void OverlayWindowViews::SetSkipAdButtonVisibility(bool is_visible) {
- if (base::FeatureList::IsEnabled(media::kSkipAd))
- show_skip_ad_button_ = is_visible;
-}
-
void OverlayWindowViews::SetPictureInPictureCustomControls(
const std::vector<blink::PictureInPictureControlInfo>& controls) {
// Clear any existing controls.
@@ -808,9 +789,6 @@
if (GetBackToTabControlsBounds().Contains(event->location())) {
controller_->CloseAndFocusInitiator();
event->SetHandled();
- } else if (GetSkipAdControlsBounds().Contains(event->location())) {
- controller_->SkipAd();
- event->SetHandled();
} else if (GetCloseControlsBounds().Contains(event->location())) {
controller_->Close(true /* should_pause_video */,
true /* should_reset_pip_player */);
@@ -826,9 +804,6 @@
if (sender == back_to_tab_controls_view_.get())
controller_->CloseAndFocusInitiator();
- if (sender == skip_ad_controls_view_.get())
- controller_->SkipAd();
-
if (sender == close_controls_view_.get())
controller_->Close(true /* should_pause_video */,
true /* should_reset_pip_player */);
@@ -847,10 +822,6 @@
return back_to_tab_controls_view_->GetMirroredBounds();
}
-gfx::Rect OverlayWindowViews::GetSkipAdControlsBounds() {
- return skip_ad_controls_view_->GetMirroredBounds();
-}
-
gfx::Rect OverlayWindowViews::GetCloseControlsBounds() {
return close_controls_view_->GetMirroredBounds();
}
@@ -891,10 +862,6 @@
return back_to_tab_controls_view_->layer();
}
-ui::Layer* OverlayWindowViews::GetSkipAdControlsLayer() {
- return skip_ad_controls_view_->layer();
-}
-
ui::Layer* OverlayWindowViews::GetCloseControlsLayer() {
return close_controls_view_->layer();
}
@@ -924,11 +891,6 @@
return back_to_tab_controls_view_->origin();
}
-views::SkipAdLabelButton*
-OverlayWindowViews::skip_ad_controls_view_for_testing() const {
- return skip_ad_controls_view_.get();
-}
-
gfx::Point OverlayWindowViews::close_image_position_for_testing() const {
return close_controls_view_->origin();
}
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.h b/chrome/browser/ui/views/overlay/overlay_window_views.h
index 2f1e974..13e27504 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.h
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.h
@@ -21,7 +21,6 @@
class CloseImageButton;
class PlaybackImageButton;
class ResizeHandleButton;
-class SkipAdLabelButton;
} // namespace views
// The Chrome desktop implementation of OverlayWindow. This will only be
@@ -48,7 +47,6 @@
void UpdateVideoSize(const gfx::Size& natural_size) override;
void SetPlaybackState(PlaybackState playback_state) override;
void SetAlwaysHidePlayPauseButton(bool is_visible) override;
- void SetSkipAdButtonVisibility(bool is_visible) override;
void SetPictureInPictureCustomControls(
const std::vector<blink::PictureInPictureControlInfo>& controls) override;
ui::Layer* GetWindowBackgroundLayer() override;
@@ -72,7 +70,6 @@
// Gets the bounds of the controls.
gfx::Rect GetBackToTabControlsBounds();
- gfx::Rect GetSkipAdControlsBounds();
gfx::Rect GetCloseControlsBounds();
gfx::Rect GetResizeHandleControlsBounds();
gfx::Rect GetPlayPauseControlsBounds();
@@ -89,7 +86,6 @@
views::PlaybackImageButton* play_pause_controls_view_for_testing() const;
gfx::Point back_to_tab_image_position_for_testing() const;
- views::SkipAdLabelButton* skip_ad_controls_view_for_testing() const;
gfx::Point close_image_position_for_testing() const;
gfx::Point resize_handle_position_for_testing() const;
views::View* controls_parent_view_for_testing() const;
@@ -143,7 +139,6 @@
ui::Layer* GetControlsScrimLayer();
ui::Layer* GetBackToTabControlsLayer();
- ui::Layer* GetSkipAdControlsLayer();
ui::Layer* GetCloseControlsLayer();
ui::Layer* GetResizeHandleLayer();
ui::Layer* GetControlsParentLayer();
@@ -195,10 +190,9 @@
std::unique_ptr<views::View> video_view_;
std::unique_ptr<views::View> controls_scrim_view_;
// |controls_parent_view_| is the parent view of all control views except
- // the back-to-tab, close and skip-ad views.
+ // the back-to-tab and close views.
std::unique_ptr<views::View> controls_parent_view_;
std::unique_ptr<views::BackToTabImageButton> back_to_tab_controls_view_;
- std::unique_ptr<views::SkipAdLabelButton> skip_ad_controls_view_;
std::unique_ptr<views::CloseImageButton> close_controls_view_;
std::unique_ptr<views::ResizeHandleButton> resize_handle_view_;
std::unique_ptr<views::PlaybackImageButton> play_pause_controls_view_;
@@ -215,10 +209,6 @@
// used to toggle play/pause/replay button.
PlaybackState playback_state_for_testing_ = kEndOfVideo;
- // Whether or not the skip ad button will be shown. This is the
- // case when Media Session "skipad" action is handled by the website.
- bool show_skip_ad_button_ = false;
-
DISALLOW_COPY_AND_ASSIGN(OverlayWindowViews);
};
diff --git a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc b/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
deleted file mode 100644
index 2d15883..0000000
--- a/chrome/browser/ui/views/overlay/skip_ad_label_button.cc
+++ /dev/null
@@ -1,50 +0,0 @@
-// 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 "chrome/browser/ui/views/overlay/skip_ad_label_button.h"
-
-#include "chrome/grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/gfx/color_palette.h"
-#include "ui/views/background.h"
-
-namespace {
-
-const int kSkipAdButtonWidth = 72;
-const int kSkipAdButtonHeight = 24;
-const int kSkipAdButtonMarginBottom = 40;
-
-constexpr SkColor kSkipAdButtonTextColor = SK_ColorWHITE;
-constexpr SkColor kSkipAdButtonBorderColor = SK_ColorWHITE;
-constexpr SkColor kSkipAdButtonBackgroundColor = gfx::kGoogleGrey700;
-
-} // namespace
-
-namespace views {
-
-SkipAdLabelButton::SkipAdLabelButton(ButtonListener* listener)
- : LabelButton(listener,
- l10n_util::GetStringUTF16(
- IDS_PICTURE_IN_PICTURE_SKIP_AD_CONTROL_TEXT)) {
- SetBackground(
- CreateBackgroundFromPainter(Painter::CreateRoundRectWith1PxBorderPainter(
- kSkipAdButtonBackgroundColor, kSkipAdButtonBorderColor, 1.f)));
- SetHorizontalAlignment(gfx::ALIGN_CENTER);
- SetEnabledTextColors(kSkipAdButtonTextColor);
- SetSize(gfx::Size(kSkipAdButtonWidth, kSkipAdButtonHeight));
-
- // Accessibility.
- SetFocusForPlatform();
- SetAccessibleName(label()->text());
- SetTooltipText(label()->text());
- SetInstallFocusRingOnFocus(true);
-}
-
-void SkipAdLabelButton::SetPosition(const gfx::Size& size) {
- LabelButton::SetPosition(gfx::Point(
- size.width() - kSkipAdButtonWidth + 1 /* border offset */,
- size.height() - kSkipAdButtonHeight - kSkipAdButtonMarginBottom));
-}
-
-} // 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
deleted file mode 100644
index a3d545d..0000000
--- a/chrome/browser/ui/views/overlay/skip_ad_label_button.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_OVERLAY_SKIP_AD_LABEL_BUTTON_H_
-#define CHROME_BROWSER_UI_VIEWS_OVERLAY_SKIP_AD_LABEL_BUTTON_H_
-
-#include "chrome/browser/ui/views/overlay/overlay_window_views.h"
-#include "ui/views/controls/button/label_button.h"
-
-namespace views {
-
-// A label button representing a skip-ad button.
-class SkipAdLabelButton : public views::LabelButton {
- public:
- explicit SkipAdLabelButton(ButtonListener* listener);
- ~SkipAdLabelButton() override = default;
-
- // Sets the position of itself with an offset from the given window size.
- void SetPosition(const gfx::Size& size);
-
- private:
- DISALLOW_COPY_AND_ASSIGN(SkipAdLabelButton);
-};
-
-} // namespace views
-
-#endif // CHROME_BROWSER_UI_VIEWS_OVERLAY_SKIP_AD_LABEL_BUTTON_H_
diff --git a/chrome/test/data/media/picture-in-picture/window-size.html b/chrome/test/data/media/picture-in-picture/window-size.html
index b9f6977..57adcaeb 100644
--- a/chrome/test/data/media/picture-in-picture/window-size.html
+++ b/chrome/test/data/media/picture-in-picture/window-size.html
@@ -110,19 +110,9 @@
}
function addVisibilityChangeEventListener() {
- document.addEventListener('visibilitychange', () => {
- document.title = document.visibilityState;
- });
- }
-
- function setMediaSessionSkipAdActionHandler() {
- navigator.mediaSession.setActionHandler('skipad', _ => {
- document.title = 'skipad';
- });
- }
-
- function unsetMediaSessionSkipAdActionHandler() {
- navigator.mediaSession.setActionHandler('skipad', null);
+ document.addEventListener('visibilitychange', () => {
+ document.title = document.visibilityState;
+ });
}
</script>
</html>
diff --git a/chromecast/browser/cast_media_blocker_unittest.cc b/chromecast/browser/cast_media_blocker_unittest.cc
index 973fe35..f3a1170d5 100644
--- a/chromecast/browser/cast_media_blocker_unittest.cc
+++ b/chromecast/browser/cast_media_blocker_unittest.cc
@@ -44,7 +44,6 @@
MOCK_METHOD1(GetDebugInfo, void(GetDebugInfoCallback));
MOCK_METHOD0(PreviousTrack, void());
MOCK_METHOD0(NextTrack, void());
- MOCK_METHOD0(SkipAd, void());
MOCK_METHOD1(SetAudioFocusGroupId, void(const base::UnguessableToken&));
private:
diff --git a/content/browser/media/session/media_session_impl.cc b/content/browser/media/session/media_session_impl.cc
index d2a9592..0a2702a 100644
--- a/content/browser/media/session/media_session_impl.cc
+++ b/content/browser/media/session/media_session_impl.cc
@@ -81,8 +81,6 @@
return MediaSessionUserAction::SeekBackward;
case media_session::mojom::MediaSessionAction::kSeekForward:
return MediaSessionUserAction::SeekForward;
- case media_session::mojom::MediaSessionAction::kSkipAd:
- return MediaSessionUserAction::SkipAd;
case media_session::mojom::MediaSessionAction::kStop:
break;
}
@@ -839,10 +837,6 @@
DidReceiveAction(media_session::mojom::MediaSessionAction::kNextTrack);
}
-void MediaSessionImpl::SkipAd() {
- DidReceiveAction(media_session::mojom::MediaSessionAction::kSkipAd);
-}
-
void MediaSessionImpl::AbandonSystemAudioFocusIfNeeded() {
if (audio_focus_state_ == State::INACTIVE || !normal_players_.empty() ||
!pepper_players_.empty() || !one_shot_players_.empty()) {
diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
index 9ca371b..0fa48a29 100644
--- a/content/browser/media/session/media_session_impl.h
+++ b/content/browser/media/session/media_session_impl.h
@@ -242,9 +242,6 @@
// Skip to the next track.
CONTENT_EXPORT void NextTrack() override;
- // Skip ad.
- CONTENT_EXPORT void SkipAd() override;
-
const base::UnguessableToken& audio_focus_group_id() const {
return audio_focus_group_id_;
}
diff --git a/content/browser/media/session/media_session_impl_uma_unittest.cc b/content/browser/media/session/media_session_impl_uma_unittest.cc
index a1e659296..0ffec2d 100644
--- a/content/browser/media/session/media_session_impl_uma_unittest.cc
+++ b/content/browser/media/session/media_session_impl_uma_unittest.cc
@@ -61,7 +61,6 @@
{MediaSessionAction::kNextTrack, MediaSessionUserAction::NextTrack},
{MediaSessionAction::kSeekBackward, MediaSessionUserAction::SeekBackward},
{MediaSessionAction::kSeekForward, MediaSessionUserAction::SeekForward},
- {MediaSessionAction::kSkipAd, MediaSessionUserAction::SkipAd},
};
} // anonymous namespace
diff --git a/content/browser/media/session/media_session_uma_helper.h b/content/browser/media/session/media_session_uma_helper.h
index 4745e78..6b882eaf 100644
--- a/content/browser/media/session/media_session_uma_helper.h
+++ b/content/browser/media/session/media_session_uma_helper.h
@@ -41,8 +41,7 @@
NextTrack = 6,
SeekBackward = 7,
SeekForward = 8,
- SkipAd = 9,
- kMaxValue = SkipAd,
+ kMaxValue = SeekForward,
};
MediaSessionUmaHelper();
diff --git a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc
index 50985897..1551d07c 100644
--- a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc
+++ b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc
@@ -10,11 +10,9 @@
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/common/media/media_player_delegate_messages.h"
#include "content/public/browser/content_browser_client.h"
-#include "content/public/browser/media_session.h"
#include "content/public/browser/overlay_window.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_client.h"
-#include "media/base/media_switches.h"
namespace content {
@@ -54,8 +52,7 @@
PictureInPictureWindowControllerImpl::PictureInPictureWindowControllerImpl(
WebContents* initiator)
- : initiator_(static_cast<WebContentsImpl* const>(initiator)),
- observer_binding_(this) {
+ : initiator_(static_cast<WebContentsImpl* const>(initiator)) {
DCHECK(initiator_);
media_web_contents_observer_ = initiator_->media_web_contents_observer();
@@ -69,17 +66,8 @@
DCHECK(surface_id_.is_valid());
window_->Show();
- window_->SetSkipAdButtonVisibility(false);
initiator_->SetHasPictureInPictureVideo(true);
- if (observer_binding_.is_bound()) {
- observer_binding_.Close();
- }
-
- media_session::mojom::MediaSessionObserverPtr observer;
- observer_binding_.Bind(mojo::MakeRequest(&observer));
- MediaSession::Get(initiator_)->AddObserver(std::move(observer));
-
return window_->GetBounds().size();
}
@@ -213,27 +201,6 @@
window_->SetAlwaysHidePlayPauseButton(is_visible);
}
-void PictureInPictureWindowControllerImpl::SkipAd() {
- if (base::FeatureList::IsEnabled(media::kSkipAd))
- MediaSession::Get(initiator_)->SkipAd();
-}
-
-void PictureInPictureWindowControllerImpl::MediaSessionActionsChanged(
- const std::vector<media_session::mojom::MediaSessionAction>& actions) {
- if (!window_)
- return;
-
- // TODO(crbug.com/919842): Currently, the first Media Session to be created
- // (independently of the frame) will be used. This means, we could show a
- // Skip Ad button for a PiP video from another frame. Ideally, we should have
- // a Media Session per frame, not per tab. This is not implemented yet.
-
- auto result = std::find(std::begin(actions), std::end(actions),
- media_session::mojom::MediaSessionAction::kSkipAd);
- bool show_skip_ad_button = result != actions.end();
- window_->SetSkipAdButtonVisibility(show_skip_ad_button);
-}
-
void PictureInPictureWindowControllerImpl::OnLeavingPictureInPicture(
bool should_pause_video,
bool should_reset_pip_player) {
@@ -264,10 +231,6 @@
initiator_->SetHasPictureInPictureVideo(false);
OnLeavingPictureInPicture(should_pause_video, should_reset_pip_player);
-
- if (observer_binding_.is_bound()) {
- observer_binding_.Close();
- }
}
void PictureInPictureWindowControllerImpl::EnsureWindow() {
diff --git a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h
index 6f302c5..71260f1 100644
--- a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h
+++ b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h
@@ -9,9 +9,6 @@
#include "components/viz/common/surfaces/parent_local_surface_id_allocator.h"
#include "content/public/browser/picture_in_picture_window_controller.h"
#include "content/public/browser/web_contents_user_data.h"
-#include "mojo/public/cpp/bindings/binding.h"
-#include "services/media_session/public/cpp/media_metadata.h"
-#include "services/media_session/public/mojom/media_session.mojom.h"
namespace content {
class OverlaySurfaceEmbedder;
@@ -26,8 +23,7 @@
// work with it. https://crbug.com/589840.
class PictureInPictureWindowControllerImpl
: public PictureInPictureWindowController,
- public WebContentsUserData<PictureInPictureWindowControllerImpl>,
- public media_session::mojom::MediaSessionObserver {
+ public WebContentsUserData<PictureInPictureWindowControllerImpl> {
public:
// Gets a reference to the controller associated with |initiator| and creates
// one if it does not exist. The returned pointer is guaranteed to be
@@ -57,16 +53,6 @@
CONTENT_EXPORT void UpdatePlaybackState(bool is_playing,
bool reached_end_of_stream) override;
CONTENT_EXPORT void SetAlwaysHidePlayPauseButton(bool is_visible) override;
- CONTENT_EXPORT void SkipAd() override;
-
- // media_session::mojom::MediaSessionObserver overrides.
- CONTENT_EXPORT void MediaSessionInfoChanged(
- media_session::mojom::MediaSessionInfoPtr session_info) override {}
- CONTENT_EXPORT void MediaSessionMetadataChanged(
- const base::Optional<media_session::MediaMetadata>& metadata) override {}
- CONTENT_EXPORT void MediaSessionActionsChanged(
- const std::vector<media_session::mojom::MediaSessionAction>& actions)
- override;
private:
friend class WebContentsUserData<PictureInPictureWindowControllerImpl>;
@@ -92,8 +78,6 @@
std::unique_ptr<OverlaySurfaceEmbedder> embedder_;
WebContentsImpl* const initiator_;
- mojo::Binding<media_session::mojom::MediaSessionObserver> observer_binding_;
-
// Used to determine the state of the media player and route messages to
// the corresponding media player with id |media_player_id_|.
MediaWebContentsObserver* media_web_contents_observer_;
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc
index 8ce1f5fc..28ba2bd 100644
--- a/content/browser/web_contents/web_contents_impl_unittest.cc
+++ b/content/browser/web_contents/web_contents_impl_unittest.cc
@@ -3272,7 +3272,6 @@
void UpdateVideoSize(const gfx::Size& natural_size) override {}
void SetPlaybackState(PlaybackState playback_state) override {}
void SetAlwaysHidePlayPauseButton(bool is_visible) override {}
- void SetSkipAdButtonVisibility(bool is_visible) override {}
ui::Layer* GetWindowBackgroundLayer() override { return nullptr; }
ui::Layer* GetVideoLayer() override { return nullptr; }
gfx::Rect GetVideoBounds() override { return gfx::Rect(); }
diff --git a/content/public/browser/media_session.h b/content/public/browser/media_session.h
index 969bd126..b08533a5e 100644
--- a/content/public/browser/media_session.h
+++ b/content/public/browser/media_session.h
@@ -78,9 +78,6 @@
// no-op.
void NextTrack() override = 0;
- // Skip ad.
- void SkipAd() override = 0;
-
// Seek the media session. If the media cannot seek then this will be a no-op.
// The |seek_time| is the time delta that the media will seek by and supports
// both positive and negative values.
diff --git a/content/public/browser/overlay_window.h b/content/public/browser/overlay_window.h
index 8eeeafd..a0d8a5b 100644
--- a/content/public/browser/overlay_window.h
+++ b/content/public/browser/overlay_window.h
@@ -59,7 +59,6 @@
virtual void SetPictureInPictureCustomControls(
const std::vector<blink::PictureInPictureControlInfo>& controls) = 0;
virtual void SetAlwaysHidePlayPauseButton(bool is_visible) = 0;
- virtual void SetSkipAdButtonVisibility(bool is_visible) = 0;
// Retrieves the ui::Layers corresponding to the window and video.
virtual ui::Layer* GetWindowBackgroundLayer() = 0;
diff --git a/content/public/browser/picture_in_picture_window_controller.h b/content/public/browser/picture_in_picture_window_controller.h
index 979086f7..e8ca224 100644
--- a/content/public/browser/picture_in_picture_window_controller.h
+++ b/content/public/browser/picture_in_picture_window_controller.h
@@ -67,9 +67,6 @@
bool reached_end_of_stream) = 0;
virtual void SetAlwaysHidePlayPauseButton(bool is_visible) = 0;
- // Called when the user interacts with the "Skip Ad" control.
- virtual void SkipAd() = 0;
-
// Commands.
// Returns true if the player is active (i.e. currently playing) after this
// call.
diff --git a/content/shell/browser/web_test/web_test_content_browser_client.cc b/content/shell/browser/web_test/web_test_content_browser_client.cc
index 5352c9cc..13627e8e 100644
--- a/content/shell/browser/web_test/web_test_content_browser_client.cc
+++ b/content/shell/browser/web_test/web_test_content_browser_client.cc
@@ -76,7 +76,6 @@
void UpdateVideoSize(const gfx::Size& natural_size) override {}
void SetPlaybackState(PlaybackState playback_state) override {}
void SetAlwaysHidePlayPauseButton(bool is_visible) override {}
- void SetSkipAdButtonVisibility(bool is_visible) override {}
ui::Layer* GetWindowBackgroundLayer() override { return nullptr; }
ui::Layer* GetVideoLayer() override { return nullptr; }
gfx::Rect GetVideoBounds() override { return gfx::Rect(); }
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
index 30c4bc1c..fb979f3 100644
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -204,9 +204,6 @@
#endif
};
-// Show Skip Ad button in Picture-in-Picture window.
-const base::Feature kSkipAd{"SkipAd", base::FEATURE_DISABLED_BY_DEFAULT};
-
// Only decode preload=metadata elements upon visibility?
const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
index 9c19f204..2f46cb062 100644
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -130,7 +130,6 @@
MEDIA_EXPORT extern const base::Feature kRecordWebAudioEngagement;
MEDIA_EXPORT extern const base::Feature kResumeBackgroundVideo;
MEDIA_EXPORT extern const base::Feature kSpecCompliantCanPlayThrough;
-MEDIA_EXPORT extern const base::Feature kSkipAd;
MEDIA_EXPORT extern const base::Feature kUnifiedAutoplay;
MEDIA_EXPORT extern const base::Feature kUseAndroidOverlay;
MEDIA_EXPORT extern const base::Feature kUseAndroidOverlayAggressively;
diff --git a/services/media_session/public/cpp/test/mock_media_session.h b/services/media_session/public/cpp/test/mock_media_session.h
index 8294306..2312fc7 100644
--- a/services/media_session/public/cpp/test/mock_media_session.h
+++ b/services/media_session/public/cpp/test/mock_media_session.h
@@ -98,7 +98,6 @@
void GetDebugInfo(GetDebugInfoCallback callback) override;
void PreviousTrack() override;
void NextTrack() override;
- void SkipAd() override{};
void Seek(base::TimeDelta seek_time) override;
void Stop(SuspendType type) override;
diff --git a/services/media_session/public/mojom/media_session.mojom b/services/media_session/public/mojom/media_session.mojom
index 6341525..c06c51e3 100644
--- a/services/media_session/public/mojom/media_session.mojom
+++ b/services/media_session/public/mojom/media_session.mojom
@@ -25,7 +25,6 @@
kNextTrack,
kSeekBackward,
kSeekForward,
- kSkipAd,
kStop,
};
@@ -111,7 +110,7 @@
// WebContents or ARC app.
// TODO(https://crbug.com/875004): migrate media session from content/public
// to mojo.
-// Next Method ID: 12
+// Next Method ID: 11
interface MediaSession {
[Extensible]
enum SuspendType {
@@ -165,7 +164,4 @@
// Stop the media session.
// |type| represents the origin of the request.
Stop@10(SuspendType suspend_type);
-
- // Skip ad.
- SkipAd@11();
};
diff --git a/third_party/blink/renderer/modules/mediasession/media_session.cc b/third_party/blink/renderer/modules/mediasession/media_session.cc
index 920b7a4..6173ecf 100644
--- a/third_party/blink/renderer/modules/mediasession/media_session.cc
+++ b/third_party/blink/renderer/modules/mediasession/media_session.cc
@@ -33,7 +33,6 @@
("seekbackward"));
DEFINE_STATIC_LOCAL(const AtomicString, seek_forward_action_name,
("seekforward"));
- DEFINE_STATIC_LOCAL(const AtomicString, skip_ad_action_name, ("skipad"));
switch (action) {
case MediaSessionAction::kPlay:
@@ -48,8 +47,6 @@
return seek_backward_action_name;
case MediaSessionAction::kSeekForward:
return seek_forward_action_name;
- case MediaSessionAction::kSkipAd:
- return skip_ad_action_name;
default:
NOTREACHED();
}
@@ -70,8 +67,6 @@
return MediaSessionAction::kSeekBackward;
if ("seekforward" == action_name)
return MediaSessionAction::kSeekForward;
- if ("skipad" == action_name)
- return MediaSessionAction::kSkipAd;
NOTREACHED();
return base::nullopt;
diff --git a/third_party/blink/renderer/modules/mediasession/media_session.idl b/third_party/blink/renderer/modules/mediasession/media_session.idl
index 9057544..e47398d 100644
--- a/third_party/blink/renderer/modules/mediasession/media_session.idl
+++ b/third_party/blink/renderer/modules/mediasession/media_session.idl
@@ -18,8 +18,7 @@
"previoustrack",
"nexttrack",
"seekbackward",
- "seekforward",
- "skipad",
+ "seekforward"
};
callback MediaSessionActionHandler = void ();
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index f6da139..808a166 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -34568,7 +34568,6 @@
<int value="6" label="Next track"/>
<int value="7" label="Seek backward"/>
<int value="8" label="Seek forward"/>
- <int value="9" label="Skip ad"/>
</enum>
<enum name="MediaSinkType">