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

Reply via email to