[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