[webkit-changes] [WebKit/WebKit] 78b540: Computed display of form inside table elements sho...

Ahmad Saleem noreply at github.com
Sun Jun 18 01:06:37 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 78b54052c50b05e6861860cc08ba9915d8c3404f
      https://github.com/WebKit/WebKit/commit/78b54052c50b05e6861860cc08ba9915d8c3404f
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-06-18 (Sun, 18 Jun 2023)

  Changed paths:
    M LayoutTests/fast/css/pseudo-class-internal-expected.txt
    M LayoutTests/fast/css/pseudo-class-internal.html
    M LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/form-in-tables-expected.txt
    M Source/WebCore/css/CSSSelector.cpp
    M Source/WebCore/css/CSSSelector.h
    M Source/WebCore/css/SelectorChecker.cpp
    M Source/WebCore/css/SelectorCheckerTestFunctions.h
    M Source/WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in
    M Source/WebCore/css/html.css
    M Source/WebCore/css/parser/CSSSelectorParser.cpp
    M Source/WebCore/cssjit/SelectorCompiler.cpp
    M Source/WebCore/html/HTMLFormElement.cpp
    M Source/WebCore/html/HTMLFormElement.h
    M Source/WebCore/html/parser/HTMLConstructionSite.cpp
    M Source/WebCore/html/parser/HTMLConstructionSite.h
    M Source/WebCore/html/parser/HTMLTreeBuilder.cpp

  Log Message:
  -----------
  Computed display of form inside table elements should be display:none

https://bugs.webkit.org/show_bug.cgi?id=252541
rdar://problem/105932450

Reviewed by Tim Nguyen.

This patch is to align WebKit with Blink / Chromium and Gecko / Firefox and web-specification.

Web-Spec: https://html.spec.whatwg.org/multipage/rendering.html#tables-2

The patch adds UA stylesheet rule as expected from the web-specification to change display
type of form inside table elements to "display: none" by introducing internal pseudo class ':-internal-html-document'.

* Source/WebCore/css/html.css: Add new UA rules for form in tables
* Source/WebCore/css/CSSSelector.h: New Pseudo class 'PseudoClassHtmlDocument'
* Source/WebCore/css/CSSSelector.cpp:
(CSSSelector::selectorText): As above to translate in ':-internal-html-document'
* Source/WebCore/css/SelectorChecker.cpp:
(SelectorChecker::checkOne): Add case for 'PseudoClassHtmlDocument'
* Source/WebCore/css/SelectorCheckerTestFunctions.h: New bool function 'matchesHtmlDocumentPseudoClass' to return 'HTML' document
* Source/WebCore/css/SelectorPseudoClassAndCompatibilityElementMap.in: Add '-internal-html-document' in list
* Source/WebCore/cssjit/SelectorCompiler.cpp: Add in namespace similar to other
(operationMatchesIsHtmlPseudoClass): New function to return 'matchesHtmlDocumentPseudoClass'
(addPseudoClassType): Add new case 'PseudoClassHtmlDocument'
* Source/WebCore/html/HTMLFormElement.cpp:
(HTMLFormElement::rendererIsNeeded): Deleted hardcoded logic of forms in table layout
(copyNonAttributePropertiesFromElement): Deleted
* Source/WebCore/html/HTMLFormElement.h: Deleted unused definition after above changes
* Source/WebCore/css/parser/CSSSelectorParser.cpp:
(CSSSelectorParser::consumePseudo): Restrict exposing internal pseudo class to web
* Source/WebCore/html/parser/HTMLConstructionSite.cpp:
(HTMLConstructionSite::insertHTMLFormElement): Remove 'isDemoted' and usage
* Source/WebCore/html/parser/HTMLConstructionSite.h: Remove 'isDemoted' from definition
* Source/WebCore/html/parser/HTMLTreeBuilder.cpp:
(HTMLTreeBuilder::processStartTagForInTable): Update since 'isDemoted' is now gone
* LayoutTests/fast/css/pseudo-class-internal.html: Update for new internal pseudo class
* LayoutTests/fast/css/pseudo-class-internal-expected.txt" Update Expectations for above
* LayoutTests/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/tables/form-in-tables-expected.txt: Rebaselined

Canonical link: https://commits.webkit.org/265283@main




More information about the webkit-changes mailing list