Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d0321d4e6eec17a325ca9fe4665525dd5e0df5c3
      
https://github.com/WebKit/WebKit/commit/d0321d4e6eec17a325ca9fe4665525dd5e0df5c3
  Author: Zak Ridouh <[email protected]>
  Date:   2026-09-25 (Fri, 25 Sep 2026)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Transcoded images chosen in a cross-site iframe's open panel 
go to the main frame's process
https://bugs.webkit.org/show_bug.cgi?id=324916
rdar://188138794

Reviewed by Alex Christensen.

On macOS, when a file chosen in an open panel is an image type the input does 
not accept, WebPageProxy
transcodes it before handing it to the page. That path granted file access to, 
and sent the files to, the
main frame's process. Under Site Isolation, an input in a cross-site iframe 
lives in another process, so
the iframe never received its files. That process also kept its open panel 
listener, so its file inputs
could not open another panel.

Pass the process that opened the panel into 
didChooseFilesForOpenPanelWithImageTranscoding and use it, as
the path without transcoding already does.

Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
(WebKit::WebPageProxy::didChooseFilesForOpenPanel):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::TEST(SiteIsolation, 
OpenPanelTranscodedImageReachesCrossOriginIframe)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to