Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c63cafd6292b04519eec5e01bec088ce5712abf6
https://github.com/WebKit/WebKit/commit/c63cafd6292b04519eec5e01bec088ce5712abf6
Author: Zak Ridouh <[email protected]>
Date: 2026-10-13 (Tue, 13 Oct 2026)
Changed paths:
M Source/WebCore/page/DragController.cpp
M Source/WebCore/page/DragController.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
[Site Isolation] Dropping a file on a file input in a cross-site iframe does
nothing
<https://bugs.webkit.org/show_bug.cgi?id=325469>
<rdar://problem/188562610>
Reviewed by Ryosuke Niwa.
DragController::canProcessDrag() hit-tested from the local main frame, which
doesn't exist in a cross-site iframe's
process, so dropping onto a file input, a color input, or editable content in a
cross-site iframe did nothing.
Hit-test from the frame's local root instead. Also allow the dropped paths as
attachments in the target frame's
process, and on iOS always answer the edit drag snapshot request.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
* Source/WebCore/page/DragController.cpp:
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::canProcessDrag):
* Source/WebCore/page/DragController.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::propagateDragAndDrop):
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::didConcludeEditDrag):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::TEST(SiteIsolation,
DropTextOnContentEditableInCrossOriginSubframe)):
(TestWebKitAPI::TEST(SiteIsolation, DropFileOnFileInputInCrossOriginSubframe)):
Canonical link: https://commits.webkit.org/323552@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications