Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: cb12141f93d167c38953a9b7071439f7225d08e9 https://github.com/WebKit/WebKit/commit/cb12141f93d167c38953a9b7071439f7225d08e9 Author: Aditya Keerthi <akeer...@apple.com> Date: 2023-12-09 (Sat, 09 Dec 2023)
Changed paths: A LayoutTests/fast/forms/ios/select-option-removed-update-expected.txt A LayoutTests/fast/forms/ios/select-option-removed-update.html M LayoutTests/resources/ui-helper.js M Source/WebCore/html/HTMLSelectElement.cpp M Source/WebCore/page/ChromeClient.h M Source/WebKit/UIProcess/PageClient.h M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/UIProcess/ios/PageClientImplIOS.h M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm M Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm M Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm M Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm M Source/WebKit/UIProcess/ios/forms/WKFormPeripheral.h M Source/WebKit/UIProcess/ios/forms/WKFormPeripheralBase.h M Source/WebKit/UIProcess/ios/forms/WKFormPeripheralBase.mm M Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm M Source/WebKit/UIProcess/ios/forms/WKFormSelectPopover.mm M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h M Source/WebKit/WebProcess/WebPage/WebPage.cpp M Source/WebKit/WebProcess/WebPage/WebPage.h Log Message: ----------- [iOS] <select> UI is not updated if options are changed https://bugs.webkit.org/show_bug.cgi?id=235911 rdar://88292987 Reviewed by Wenson Hsieh. On iOS, <select> UI is driven by `FocusedElementInformation`, which is sent to the UI process each time a control is focused. However, if the control is already focused, there are currently no mechanisms for changes to element information to be sent to the UI process. Consequently, any changes to options while a <select> element is focused are not reflected in the UI process. Fix by adding a general mechanism to update `FocusedElementInformation` for controls that are already focused, and adopt it for <select> option changes. In the future, this mechanism could be used for updates to other control types. * LayoutTests/fast/forms/ios/select-option-removed-update-expected.txt: Added. * LayoutTests/fast/forms/ios/select-option-removed-update.html: Added. * LayoutTests/resources/ui-helper.js: * Source/WebCore/html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setRecalcListItems): * Source/WebCore/page/ChromeClient.h: (WebCore::ChromeClient::focusedSelectElementDidChangeOptions): * Source/WebKit/UIProcess/PageClient.h: * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/UIProcess/ios/PageClientImplIOS.h: * Source/WebKit/UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::updateFocusedElementInformation): * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _updateFocusedElementInformation:]): Ensure updates are made only if they are referencing the same element. * Source/WebKit/UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: (-[WKDataListSuggestionsPickerView controlUpdateEditing]): * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateFocusedElementInformation): * Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm: (-[WKDateTimePicker controlUpdateEditing]): * Source/WebKit/UIProcess/ios/forms/WKFormColorControl.mm: (-[WKColorPicker controlUpdateEditing]): * Source/WebKit/UIProcess/ios/forms/WKFormPeripheral.h: * Source/WebKit/UIProcess/ios/forms/WKFormPeripheralBase.h: * Source/WebKit/UIProcess/ios/forms/WKFormPeripheralBase.mm: (-[WKFormPeripheralBase updateEditing]): * Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm: (-[WKMultipleSelectPicker controlUpdateEditing]): (-[WKSelectSinglePicker controlUpdateEditing]): (-[WKSelectPicker controlUpdateEditing]): (-[WKSelectMultiplePicker controlUpdateEditing]): * Source/WebKit/UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover controlUpdateEditing]): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::focusedSelectElementDidChangeOptions): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h: * Source/WebKit/WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::focusedSelectElementDidChangeOptions): * Source/WebKit/WebProcess/WebPage/WebPage.h: Canonical link: https://commits.webkit.org/271805@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes