WebKit
af43ca31 - readonly attribute should only apply on certain input types

Commit
3 years ago
readonly attribute should only apply on certain input types https://bugs.webkit.org/show_bug.cgi?id=240343 <rdar://93173726> Reviewed by Chris Dumez. We should only apply the readonly attribute on certain input types: https://html.spec.whatwg.org/multipage/input.html#do-not-apply Except in the constraint validation case (willValidate) for compat reasons, since it affects the :in-range/:out-of-range pseudo-classes, the relevant test has been updated to reflect that. This also was the resolution of https://github.com/whatwg/html/issues/8133 in the HTML spec triage meeting. Also introduce isMutable() which corresponds to the spec concept of mutable form control. * LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate.html: * LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: * LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-disabled-readonly-expected.txt: Added. * Source/WebCore/html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::valueMissing const): (WebCore::BaseDateAndTimeInputType::handleDOMActivateEvent): * Source/WebCore/html/ColorInputType.cpp: (WebCore::ColorInputType::isKeyboardFocusable const): * Source/WebCore/html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::HTMLFormControlElement): (WebCore::HTMLFormControlElement::parseAttribute): (WebCore::HTMLFormControlElement::computeWillValidate const): * Source/WebCore/html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElement::supportsReadOnly const): (WebCore::HTMLFormControlElement::isReadOnly const): (WebCore::HTMLFormControlElement::isMutable const): (WebCore::HTMLFormControlElement::isDisabledOrReadOnly const): Deleted. * Source/WebCore/html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateType): (WebCore::HTMLInputElement::supportsReadOnly const): (WebCore::HTMLInputElement::showPicker): (WebCore::HTMLInputElement::matchesReadWritePseudoClass const): (WebCore::HTMLInputElement::createInnerTextStyle): * Source/WebCore/html/HTMLInputElement.h: * Source/WebCore/html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass const): * Source/WebCore/html/HTMLTextAreaElement.h: * Source/WebCore/html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::isInnerTextElementEditable const): * Source/WebCore/html/SearchInputType.cpp: (WebCore::SearchInputType::handleKeydownEvent): * Source/WebCore/html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::valueMissing const): (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents const): (WebCore::TextFieldInputType::shouldDrawCapsLockIndicator const): (WebCore::TextFieldInputType::shouldDrawAutoFillButton const): * Source/WebCore/html/shadow/SliderThumbElement.cpp: (WebCore::SliderThumbElement::handleTouchEvent): * Source/WebCore/html/shadow/TextControlInnerElements.cpp: (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEventsWithEditability const): Canonical link: https://commits.webkit.org/253321@main
Author
Parents
  • LayoutTests
    • imported/w3c/web-platform-tests/html/semantics/forms
      • constraints
        • File
          form-validation-willValidate-expected.txt
        • File
          form-validation-willValidate.html
      • the-input-element
        • File
          show-picker-disabled-readonly-expected.txt
    • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms
      • constraints
        • File
          form-validation-willValidate-expected.txt
      • the-input-element
        • File
          show-picker-disabled-readonly-expected.txt
  • Source/WebCore/html
    • File
      BaseDateAndTimeInputType.cpp
    • File
      ColorInputType.cpp
    • File
      HTMLFormControlElement.cpp
    • File
      HTMLFormControlElement.h
    • File
      HTMLInputElement.cpp
    • File
      HTMLInputElement.h
    • File
      HTMLTextAreaElement.cpp
    • File
      HTMLTextAreaElement.h
    • File
      HTMLTextFormControlElement.cpp
    • File
      SearchInputType.cpp
    • File
      TextFieldInputType.cpp
    • shadow
      • File
        SliderThumbElement.cpp
      • File
        TextControlInnerElements.cpp