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

Reply via email to