Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 76e036a2ec61aff73e2e37821d2863d873936c3f
https://github.com/WebKit/WebKit/commit/76e036a2ec61aff73e2e37821d2863d873936c3f
Author: Zak Ridouh <[email protected]>
Date: 2026-09-28 (Mon, 28 Sep 2026)
Changed paths:
M Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h
M Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxyTesting.cpp
M Source/WebKit/UIProcess/WebPageProxyTesting.h
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/WebProcess/WebPage/WebPageTesting.cpp
M Source/WebKit/WebProcess/WebPage/WebPageTesting.h
M Source/WebKit/WebProcess/WebPage/WebPageTesting.messages.in
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
[Site Isolation][iOS] Password echo is not suppressed in cross-site iframes
during screen capture
<https://bugs.webkit.org/show_bug.cgi?id=325334>
<rdar://problem/188439582>
Reviewed by Ryosuke Niwa.
While the screen is recorded or mirrored, a password field in a cross-site
iframe still echoes the last typed
character. WebPageProxy only sent screen capture and hardware keyboard changes
to the main frame's process, and
never set isCapturingScreen in the creation parameters, so iframe processes
never knew to suppress the echo.
Send both changes to every process backing the page, and set isCapturingScreen
when creating a page. Add a
testing hook that reads the state in the process hosting a given frame.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
* Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _screenIsBeingCapturedForFrame:completionHandler:]):
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::hardwareKeyboardAvailabilityChanged):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* Source/WebKit/UIProcess/WebPageProxyTesting.cpp:
(WebKit::WebPageProxyTesting::screenIsBeingCaptured):
* Source/WebKit/UIProcess/WebPageProxyTesting.h:
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged):
(WebKit::WebPageProxy::setScreenIsBeingCaptured):
* Source/WebKit/WebProcess/WebPage/WebPageTesting.cpp:
(WebKit::WebPageTesting::screenIsBeingCaptured):
* Source/WebKit/WebProcess/WebPage/WebPageTesting.h:
* Source/WebKit/WebProcess/WebPage/WebPageTesting.messages.in:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::screenIsBeingCapturedInProcessForFrame):
(TestWebKitAPI::TEST(SiteIsolation,
ScreenCaptureStateReachesCrossSiteIframeProcesses)):
Canonical link: https://commits.webkit.org/322075@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications