[webkit-changes] [WebKit/WebKit] 7d3c8d: Add SPI to WKWebView for toggling in-window mode

Dana Estra noreply at github.com
Wed Feb 14 13:03:15 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d3c8dd214517a4bda7aeb8aa5f609d16b74631c
      https://github.com/WebKit/WebKit/commit/7d3c8dd214517a4bda7aeb8aa5f609d16b74631c
  Author: Dana Estra <destra at apple.com>
  Date:   2024-02-14 (Wed, 14 Feb 2024)

  Changed paths:
    M Source/WebCore/platform/cocoa/PlaybackSessionModel.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm
    M Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm
    M Source/WebCore/platform/mac/WebPlaybackControlsManager.h
    M Source/WebCore/platform/mac/WebPlaybackControlsManager.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
    M Source/WebKit/UIProcess/mac/WebViewImpl.h
    M Source/WebKit/UIProcess/mac/WebViewImpl.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 SPI to WKWebView for toggling in-window mode
https://bugs.webkit.org/show_bug.cgi?id=269032
rdar://122593920

Reviewed by Jer Noble.

This patch adds SPI to WKWebView _canToggleInWindow and _toggleInWindow, and a stub
for _isInWindowActive.

_canToggleInWindow uses the same heuristic as _canTogglePictureInPicture
To determine if there is a viable video on the webpage to put into in-window
Fullscreen mode.

_toggleInWindow toggles a viable video, if there is one, between
In-window and inline mode.

* Source/WebCore/platform/cocoa/PlaybackSessionModel.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::toggleInWindow):
(WebCore::PlaybackSessionModelMediaElement::isInWindowActive):
* Source/WebCore/platform/mac/WebPlaybackControlsManager.h:
* Source/WebCore/platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager toggleInWindow]):
(-[WebPlaybackControlsManager isInWindowActive]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _canToggleInWindow]):
(-[WKWebView _isInWindowActive]):
(-[WKWebView _toggleInWindow]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::toggleInWindow):
(WebKit::PlaybackSessionModelContext::isInWindowActive):
(WebKit::PlaybackSessionManagerProxy::toggleInWindow):
(WebKit::PlaybackSessionManagerProxy::isInWindowActive):
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::isInWindowActive):
(WebKit::WebViewImpl::toggleInWindow):
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.h:
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.messages.in:
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::toggleInWindow):
(WebKit::PlaybackSessionManager::isInWindowActive):

Canonical link: https://commits.webkit.org/274650@main




More information about the webkit-changes mailing list