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