[webkit-changes] [WebKit/WebKit] 87ea78: Begin implementing fullscreen for site isolation
Alex Christensen
noreply at github.com
Tue Jan 14 20:17:37 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 87ea7838ce18c3dae3f75121036b5c55443a36ac
https://github.com/WebKit/WebKit/commit/87ea7838ce18c3dae3f75121036b5c55443a36ac
Author: Alex Christensen <achristensen at apple.com>
Date: 2025-01-14 (Tue, 14 Jan 2025)
Changed paths:
M Source/WebKit/UIProcess/API/C/playstation/WKView.cpp
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBasePrivate.h
M Source/WebKit/UIProcess/API/playstation/APIViewClient.h
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
M Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp
M Source/WebKit/UIProcess/API/wpe/WPEWebView.h
M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
M Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
M Source/WebKit/UIProcess/mac/PageClientImplMac.h
M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
M Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h
M Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm
M Source/WebKit/UIProcess/playstation/PageClientImpl.cpp
M Source/WebKit/UIProcess/playstation/PageClientImpl.h
M Source/WebKit/UIProcess/playstation/PlayStationWebView.cpp
M Source/WebKit/UIProcess/playstation/PlayStationWebView.h
M Source/WebKit/UIProcess/win/PageClientImpl.cpp
M Source/WebKit/UIProcess/win/PageClientImpl.h
M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h
M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in
M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
M Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp
M Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
Log Message:
-----------
Begin implementing fullscreen for site isolation
https://bugs.webkit.org/show_bug.cgi?id=285898
Reviewed by Andy Estes.
This removes Messages::WebFullScreenManager::WillEnterFullScreen, which
was only ever sent to the main frame process, and replaces it with a
CompletionHandler that sends the equivalent signal to whichever process
sent Messages::WebFullScreenManagerProxy::EnterFullScreen, which now
is sent using sendWithAsyncReply. To do this, I found that
WebFullScreenManagerProxy::willEnterFullScreen is only ever called as a
result of Messages::WebFullScreenManagerProxy::EnterFullScreen. I also
found that WebPage::fullScreenManager only returns a non-null pointer,
and InjectedBundlePageFullScreenClient::enterFullScreenForElement only
ever receives non-null WebPage and Element pointers, so I changed them
to C++ references.
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::enterFullScreen):
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::enterFullScreen):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController enterFullScreen:completionHandler:]):
(-[WKFullScreenWindowController _enterFullScreen:windowScene:completionHandler:]):
(-[WKFullScreenWindowController enterFullScreen:]): Deleted.
(-[WKFullScreenWindowController _enterFullScreen:windowScene:]): Deleted.
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::enterFullScreen):
* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h:
* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:completionHandler:]):
(-[WKFullScreenWindowController enterFullScreen:]): Deleted.
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::enterFullScreenForElement):
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in:
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageWillEnterFullScreen):
(WKBundlePageDidEnterFullScreen):
(WKBundlePageWillExitFullScreen):
(WKBundlePageDidExitFullScreen):
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
(WebKit::InjectedBundlePageFullScreenClient::enterFullScreenForElement):
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::supportsFullScreenForElement):
(WebKit::WebChromeClient::enterFullScreenForElement):
(WebKit::WebChromeClient::updateImageSource):
(WebKit::WebChromeClient::exitFullScreenForElement):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::dispatchDidStartProvisionalLoad):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::videoControlsManagerDidChange):
(WebKit::WebPage::fullScreenManager):
(WebKit::WebPage::dispatchMessage):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
Canonical link: https://commits.webkit.org/288910@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