Changeset 276547 in webkit
- Timestamp:
- Apr 24, 2021, 12:41:54 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt (added)
-
LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/html/HTMLOptionElement.cpp (modified) (1 diff)
-
Source/WebCore/html/HTMLSelectElement.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r276526 r276547 1 2021-04-24 Rob Buis <rbuis@igalia.com> 2 3 Move selectedOptions cache invalidation timing 4 https://bugs.webkit.org/show_bug.cgi?id=224894 5 6 Reviewed by Ryosuke Niwa. 7 8 Add test for this. 9 10 * fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt: Added. 11 * fast/dom/HTMLSelectElement/selected-options-item-crash.html: Added. 12 1 13 2021-04-23 Chris Dumez <cdumez@apple.com> 2 14 -
trunk/Source/WebCore/ChangeLog
r276546 r276547 1 2021-04-24 Rob Buis <rbuis@igalia.com> 2 3 Move selectedOptions cache invalidation timing 4 https://bugs.webkit.org/show_bug.cgi?id=224894 5 6 Reviewed by Ryosuke Niwa. 7 8 Move selectedOptions cache invalidation timing out 9 of setSelectedState, having it in setSelectedState 10 can cause selectedOptions cache invalidation while 11 determining the cache. 12 13 Test: fast/dom/HTMLSelectElement/selected-options-item-crash.html 14 15 * html/HTMLOptionElement.cpp: 16 (WebCore::HTMLOptionElement::setSelectedState): 17 * html/HTMLSelectElement.cpp: 18 (WebCore::HTMLSelectElement::updateListBoxSelection): 19 (WebCore::HTMLSelectElement::selectOption): 20 (WebCore::HTMLSelectElement::deselectItemsWithoutValidation): 21 (WebCore::HTMLSelectElement::restoreFormControlState): 22 (WebCore::HTMLSelectElement::reset): 23 (WebCore::HTMLSelectElement::updateSelectedState): 24 1 25 2021-04-23 Ian Gilbert <iang@apple.com> 2 26 -
trunk/Source/WebCore/html/HTMLOptionElement.cpp
r275161 r276547 235 235 m_isSelected = selected; 236 236 invalidateStyleForSubtree(); 237 238 if (RefPtr<HTMLSelectElement> select = ownerSelectElement())239 select->invalidateSelectedItems();240 237 } 241 238 -
trunk/Source/WebCore/html/HTMLSelectElement.cpp
r261013 r276547 656 656 } 657 657 658 invalidateSelectedItems(); 658 659 scrollToSelection(); 659 660 updateValidity(); … … 882 883 } 883 884 885 invalidateSelectedItems(); 884 886 updateValidity(); 885 887 … … 963 965 downcast<HTMLOptionElement>(*element).setSelectedState(false); 964 966 } 967 invalidateSelectedItems(); 965 968 } 966 969 … … 1028 1031 } 1029 1032 1033 invalidateSelectedItems(); 1030 1034 setOptionsChangedOnRenderer(); 1031 1035 updateValidity(); … … 1086 1090 firstOption->setSelectedState(true); 1087 1091 1092 invalidateSelectedItems(); 1088 1093 setOptionsChangedOnRenderer(); 1089 1094 invalidateStyleForSubtree(); … … 1322 1327 setActiveSelectionAnchorIndex(listIndex); 1323 1328 1329 invalidateSelectedItems(); 1324 1330 setActiveSelectionEndIndex(listIndex); 1325 1331 updateListBoxSelection(!multiSelect);
Note:
See TracChangeset
for help on using the changeset viewer.