Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: ec255a8cd5cce23106c903bd2fc8620c7eac1e01 https://github.com/WebKit/WebKit/commit/ec255a8cd5cce23106c903bd2fc8620c7eac1e01 Author: Cameron McCormack <hey...@apple.com> Date: 2023-09-10 (Sun, 10 Sep 2023)
Changed paths: M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt M LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html M Source/WebCore/html/HTMLInputElement.cpp M Source/WebCore/html/HTMLInputElement.h Log Message: ----------- Invalidate :default pseudo-class changes https://bugs.webkit.org/show_bug.cgi?id=261382 <rdar://problem/115236525> Reviewed by Tim Nguyen. On an <input type=checked>, the presence of the checked="" attribute determines whether :default matches. We must invalidate :default when the attribute is added or removed on a checkable input element. We also must invalidate :default when the type="" changes. Just use AnyValue rather than compute ahead of time what the new pseudo-class match value will be, in HTMLInputElement::updateType. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html: * Source/WebCore/html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::attributeChanged): (WebCore::HTMLInputElement::matchesDefaultPseudoClass const): (WebCore::HTMLInputElement::setDefaultCheckedState): (WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): * Source/WebCore/html/HTMLInputElement.h: Canonical link: https://commits.webkit.org/267848@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes