[webkit-changes] [WebKit/WebKit] f6dbc5: Delay creation of InputType and user agent shadow ...

Ryosuke Niwa noreply at github.com
Thu Feb 22 13:19:11 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f6dbc5c5c7258d5fd40c7010373c3eb3018b82d8
      https://github.com/WebKit/WebKit/commit/f6dbc5c5c7258d5fd40c7010373c3eb3018b82d8
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLInputElement.h
    M Source/WebCore/html/ValidatedFormListedElement.h

  Log Message:
  -----------
  Delay creation of InputType and user agent shadow trees during cloning
https://bugs.webkit.org/show_bug.cgi?id=269900

Reviewed by Yusuke Suzuki.

This PR delays the construction of InputType and user agent shadow tree when cloning an input element
such that InputType is initialized after all the attributes are cloned, and its shadow tree is
constructed as the element becomes connected to a document.

* Source/WebCore/dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
(WebCore::Element::cloneAttributesFromElement): Call initializeInputTypeAfterParsingOrCloning.
(WebCore::Element::cloneDataFromElement): Added an assertion to make sure the UA shadow tree's
construction has not happened yet.
* Source/WebCore/html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::cloneElementWithoutAttributesAndChildren): Added.
(WebCore::HTMLInputElement::initializeInputTypeAfterParsingOrCloning): Renamed from
parserInitializeInputType.
(WebCore::HTMLInputElement::attributeChanged):
(WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement): Don't update the shadow tree unless
we have already created it.
* Source/WebCore/html/HTMLInputElement.h:
* Source/WebCore/html/ValidatedFormListedElement.h:

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



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


More information about the webkit-changes mailing list