Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ad94373263a77c433dc04da03a3029c58962182b
      
https://github.com/WebKit/WebKit/commit/ad94373263a77c433dc04da03a3029c58962182b
  Author: Andy Estes <[email protected]>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModel.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h
    M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
    M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
    M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/FullscreenLifecycle.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSpatialTrackingLabels.mm
    M Tools/TestWebKitAPI/Tests/mac/InWindowFullscreen.mm
    M Tools/TestWebKitAPI/Utilities.h

  Log Message:
  -----------
  Allow WKWebView clients to toggle fullscreen video
https://bugs.webkit.org/show_bug.cgi?id=276376
rdar://131394306

Reviewed by Jer Noble.

Added APIs to WKWebViewPrivate.h that allow clients to (a) determine whether 
they can enter
fullscreen video (-_canEnterFullscreen), and (b) enter fullscreen 
programatically (-_enterFullscreen).
-_canEnterFullscreen is key-value observable.

While here, made it possible to create a CheckedPtr to PlaybackSessionModel and
WebFullScreenManagerProxy and fixed a bug with how 
PlaybackSessionManager::(enter|exit)Fullscreen
created UserGestureIndicators.

Added an API test.

* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModel.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h:
* Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::enterFullscreen):
(WebCore::PlaybackSessionModelMediaElement::exitFullscreen):
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _canEnterFullscreen]):
(-[WKWebView _enterFullscreen]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::videoControlsManagerDidChange):
* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
(WebKit::PlaybackSessionManagerProxy::hasControlsManagerInterface const):
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canEnterFullscreen):
(WebKit::WebPageProxy::enterFullscreen):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::videoControlsManagerDidChange):
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::videoControlsManagerDidChange):
* Source/WebKit/WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::enterFullscreen):
(WebKit::PlaybackSessionManager::exitFullscreen):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/FullscreenLifecycle.mm: Added.
(-[FullscreenLifecycleObserver 
observeValueForKeyPath:ofObject:change:context:]):
(TEST(Fullscreen, Lifecycle)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSpatialTrackingLabels.mm:
(TEST(WKWebView, DefaultSTSLabel)):
* Tools/TestWebKitAPI/Tests/mac/InWindowFullscreen.mm:
(TestWebKitAPI::TEST(InWindowFullscreen, CanToggleAfterPlaybackStarts)):
(TestWebKitAPI::TEST(InWindowFullscreen, ToggleChangesIsActive)):
(TestWebKitAPI::TEST(InWindowFullscreen, 
ToggleChangesIsActiveWithoutUserGesture)):
(TestWebKitAPI::testEventually): Deleted.
* Tools/TestWebKitAPI/Utilities.h:
(TestWebKitAPI::Util::waitFor):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to