[webkit-changes] [WebKit/WebKit] 0be027: Add functionality to skip ads in PIP on macOS
Dana Estra
noreply at github.com
Thu Feb 27 09:47:15 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0be02770de86ec49feaeca8c6a0acff9e86a7eba
https://github.com/WebKit/WebKit/commit/0be02770de86ec49feaeca8c6a0acff9e86a7eba
Author: Dana Estra <destra at apple.com>
Date: 2025-02-27 (Thu, 27 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 Jer Noble.
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/291236@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