Changeset 292523 in webkit


Ignore:
Timestamp:
Apr 6, 2022 9:29:06 PM (3 months ago)
Author:
ntim@apple.com
Message:

[:has() pseudo-class] Support invalidation for :placeholder-shown
https://bugs.webkit.org/show_bug.cgi?id=238894

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html

Use same pattern as other input pseudo classes.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r292467 r292523  
     12022-04-06  Tim Nguyen  <ntim@apple.com>
     2
     3        [:has() pseudo-class] Support invalidation for :placeholder-shown
     4        https://bugs.webkit.org/show_bug.cgi?id=238894
     5
     6        Reviewed by Simon Fraser.
     7
     8        * web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt:
     9
    1102022-04-06  Oriol Brufau  <obrufau@igalia.com>
    211
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has-expected.txt

    r292466 r292523  
    88PASS :required invalidation
    99FAIL :out-of-range invalidation assert_equals: ancestor should be darkgreen expected "rgb(0, 100, 0)" but got "rgb(0, 0, 0)"
    10 FAIL :placeholder-shown invalidation assert_equals: ancestor should be navy expected "rgb(0, 0, 128)" but got "rgb(0, 0, 0)"
     10PASS :placeholder-shown invalidation
    1111
  • trunk/Source/WebCore/ChangeLog

    r292522 r292523  
     12022-04-06  Tim Nguyen  <ntim@apple.com>
     2
     3        [:has() pseudo-class] Support invalidation for :placeholder-shown
     4        https://bugs.webkit.org/show_bug.cgi?id=238894
     5
     6        Reviewed by Simon Fraser.
     7
     8        Test: imported/w3c/web-platform-tests/css/selectors/invalidation/input-pseudo-classes-in-has.html
     9
     10        Use same pattern as other input pseudo classes.
     11
     12        * html/HTMLTextFormControlElement.cpp:
     13        (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
     14
    1152022-04-06  Myles C. Maxfield  <mmaxfield@apple.com>
    216
  • trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp

    r292370 r292523  
    5050#include "NodeTraversal.h"
    5151#include "Page.h"
     52#include "PseudoClassChangeInvalidation.h"
    5253#include "RenderLineBreak.h"
    5354#include "RenderTextControlSingleLine.h"
     
    184185void HTMLTextFormControlElement::updatePlaceholderVisibility()
    185186{
    186     bool placeHolderWasVisible = m_isPlaceholderVisible;
    187     m_isPlaceholderVisible = placeholderShouldBeVisible();
    188 
    189     if (placeHolderWasVisible == m_isPlaceholderVisible)
     187    bool newIsPlaceholderVisible = placeholderShouldBeVisible();
     188    if (m_isPlaceholderVisible == newIsPlaceholderVisible)
    190189        return;
    191190
    192     invalidateStyleForSubtree();
     191    Style::PseudoClassChangeInvalidation styleInvalidation(*this, CSSSelector::PseudoClassPlaceholderShown, newIsPlaceholderVisible);
     192    m_isPlaceholderVisible = newIsPlaceholderVisible;
     193
     194    if (RefPtr placeholder = placeholderElement())
     195        placeholder->invalidateStyle();
    193196}
    194197
Note: See TracChangeset for help on using the changeset viewer.