[webkit-changes] [WebKit/WebKit] e8af12: Add functionality to skip ads in PIP on macOS
Dana Estra
noreply at github.com
Tue Feb 25 16:52:15 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e8af1264b1765565210b69a1fdb961613513d4d6
https://github.com/WebKit/WebKit/commit/e8af1264b1765565210b69a1fdb961613513d4d6
Author: Dana Estra <destra at apple.com>
Date: 2025-02-25 (Tue, 25 Feb 2025)
Changed paths:
M Source/WebCore/Modules/mediasession/MediaSession.cpp
M Source/WebCore/Modules/mediasession/MediaSession.h
M Source/WebCore/Modules/mediasession/NavigatorMediaSession.h
M Source/WebCore/PAL/pal/spi/mac/PIPSPI.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/LocalDOMWindow.h
M Source/WebCore/platform/cocoa/PlaybackSessionModel.h
M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h
M Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm
M Source/WebCore/platform/mac/VideoPresentationInterfaceMac.h
M Source/WebCore/platform/mac/VideoPresentationInterfaceMac.mm
M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h
M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in
M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.messages.in
M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm
Log Message:
-----------
Add functionality to skip ads in PIP on macOS
https://bugs.webkit.org/show_bug.cgi?id=288137
rdar://145305285
Reviewed by Jean-Yves Avenard.
This patch hooks up the media session skipAd action handler to
PiP. If the skipAd action handler has been implemented by the
website, we tell the pip framework that the video is skippable,
and if the user presses pip's 'skip' button, the action handler
is called.
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::hasActionHandler const):
* Source/WebCore/Modules/mediasession/MediaSession.h:
* Source/WebCore/Modules/mediasession/NavigatorMediaSession.h:
* Source/WebCore/PAL/pal/spi/mac/PIPSPI.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/page/LocalDOMWindow.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModel::skipAd):
(WebCore::PlaybackSessionModelClient::canSkipAdChanged):
* Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h:
* Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.mm:
(WebCore::PlaybackSessionInterfaceMac::skipAd):
* Source/WebCore/platform/mac/VideoPresentationInterfaceMac.h:
* Source/WebCore/platform/mac/VideoPresentationInterfaceMac.mm:
(-[WebVideoPresentationInterfaceMacObjC updateCanSkipAd:]):
(-[WebVideoPresentationInterfaceMacObjC pipActionSkipPreroll:]):
(WebCore::VideoPresentationInterfaceMac::skipAd):
(WebCore::VideoPresentationInterfaceMac::canSkipAdChanged):
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::skipAd):
(WebKit::PlaybackSessionModelContext::canSkipAdChanged):
(WebKit::PlaybackSessionManagerProxy::canSkipAdChanged):
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h:
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.messages.in:
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::setUpPlaybackControlsManager):
(WebKit::PlaybackSessionManager::setMediaSessionAndRegisterAsObserver):
(WebKit::PlaybackSessionManager::actionHandlersChanged):
(WebKit::PlaybackSessionManager::skipAd):
Canonical link: https://commits.webkit.org/291072@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list