Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dae6ae8ca62bef73b06eb3749782920897a1b4f2
https://github.com/WebKit/WebKit/commit/dae6ae8ca62bef73b06eb3749782920897a1b4f2
Author: Zak Ridouh <[email protected]>
Date: 2026-03-10 (Tue, 10 Mar 2026)
Changed paths:
A
LayoutTests/http/tests/site-isolation/datalist-cross-origin-iframe-expected.txt
A LayoutTests/http/tests/site-isolation/datalist-cross-origin-iframe.html
A LayoutTests/http/tests/site-isolation/resources/datalist-iframe.html
M Source/WebCore/html/DataListSuggestionInformation.h
M Source/WebCore/html/TextFieldInputType.cpp
M Source/WebCore/html/TextFieldInputType.h
M Source/WebCore/platform/DataListSuggestionsClient.h
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
M Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.cpp
M Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp
M Source/WebKit/UIProcess/gtk/WebDataListSuggestionsDropdownGtk.h
M Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.h
M Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm
M Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.h
M Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm
M Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp
Log Message:
-----------
[Site Isolation] Fix datalist picker for cross-origin iframes
https://bugs.webkit.org/show_bug.cgi?id=307654
rdar://164541257
Reviewed by Aditya Keerthi.
When site isolation is enabled, cross-origin iframes run in separate
WebContent processes. The datalist picker was sending responses
(didSelectDataListOption, didCloseSuggestions) only to the main
process, which would fail to update the input element in the iframe's
process.
This patch fixes the issue by:
1. Adding rootFrameID() to DataListSuggestionsClient to identify which
frame contains the datalist input element
2. Passing the frame identifier through the IPC message when showing
the datalist suggestions
3. Using sendToProcessContainingFrame() to route responses back to the
correct process
*
LayoutTests/http/tests/site-isolation/datalist-cross-origin-iframe-expected.txt:
Added.
* LayoutTests/http/tests/site-isolation/datalist-cross-origin-iframe.html:
Added.
* LayoutTests/http/tests/site-isolation/resources/datalist-iframe.html: Added.
* Source/WebCore/html/DataListSuggestionInformation.h:
* Source/WebCore/html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::rootFrameID const):
* Source/WebCore/html/TextFieldInputType.h:
* Source/WebCore/platform/DataListSuggestionsClient.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.cpp:
(WebKit::WebDataListSuggestionsDropdown::show):
(WebKit::WebDataListSuggestionsDropdown::close):
* Source/WebKit/UIProcess/WebDataListSuggestionsDropdown.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCloseSuggestions):
(WebKit::WebPageProxy::didSelectOption):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:
(WebKit::WebDataListSuggestionsDropdownGtk::didSelectOption):
(WebKit::WebDataListSuggestionsDropdownGtk::platformShow):
(WebKit::WebDataListSuggestionsDropdownGtk::handleKeydownWithIdentifier):
(WebKit::WebDataListSuggestionsDropdownGtk::show):
* Source/WebKit/UIProcess/gtk/WebDataListSuggestionsDropdownGtk.h:
* Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.h:
* Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(WebKit::WebDataListSuggestionsDropdownIOS::platformShow):
(WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption):
(WebKit::WebDataListSuggestionsDropdownIOS::show):
* Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
* Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::platformShow):
(WebKit::WebDataListSuggestionsDropdownMac::didSelectOption):
(WebKit::WebDataListSuggestionsDropdownMac::selectOption):
(WebKit::WebDataListSuggestionsDropdownMac::show):
* Source/WebKit/WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp:
(WebKit::WebDataListSuggestionPicker::displayWithActivationType):
Canonical link: https://commits.webkit.org/309034@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications