Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c0726d077ff71e0114e9f8569ca136a1c6b46a6e
      
https://github.com/WebKit/WebKit/commit/c0726d077ff71e0114e9f8569ca136a1c6b46a6e
  Author: Anne van Kesteren <[email protected]>
  Date:   2026-09-23 (Wed, 23 Sep 2026)

  Changed paths:
    A 
LayoutTests/fast/forms/select/base/select-base-appearance-list-box-rows-expected.txt
    A 
LayoutTests/fast/forms/select/base/select-base-appearance-list-box-rows.html
    M 
LayoutTests/fast/forms/select/base/select-box-type-follows-preferred-size-expected.txt
    M 
LayoutTests/fast/forms/select/base/select-multiple-dropdown-box-picker-expected.txt
    M 
LayoutTests/platform/ios/fast/forms/select/base/select-multiple-dropdown-box-picker-expected.txt
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    A Source/WebCore/css/selectMultipleAndListBox.css
    M Source/WebCore/html/HTMLSelectElement.cpp
    M Source/WebCore/html/HTMLSelectElement.h
    M Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp
    M Source/WebCore/style/StyleSubstitutionResolver.cpp
    M Source/WebCore/style/StyleTreeResolver.cpp
    M Source/WebCore/style/UserAgentStyle.cpp
    M Source/WebCore/style/UserAgentStyle.h

  Log Message:
  -----------
  appearance: base-select list box rendering & styling infrastructure
https://bugs.webkit.org/show_bug.cgi?id=324965

Reviewed by Tim Nguyen.

Create a regular renderer for base appearance list boxes and add a stylesheet
for the two box types html.css does not cover, the list box and the
multi-select dropdown box, conditional on
HTMLEnhancedSelectMultipleAndListBoxEnabled.

The list box block size comes from attr(size), the first user agent rule to
put attr() inside -internal-auto-base(). That caches its substituted tokens on
the CSSValue, so two list boxes with different size attributes would share a
block size. To address that we reject a cache hit for attr() tainted tokens.

Caveats:

* size=0 gives no rows, because attr() falls back only for an absent or
  unparseable attribute, while preferredSize() treats 0 as absent as well.
* The option rules also apply to the options of a native list box, observable
  through getComputedStyle. They cannot revert, because -internal-auto-base()
  reads the appearance of the option rather than of its select. (This is not
  visible though and something we can address subsequently.)

Test: fast/forms/select/base/select-base-appearance-list-box-rows.html
Canonical link: https://commits.webkit.org/321762@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to