Branch: refs/heads/webkitglib/2.38
  Home:   https://github.com/WebKit/WebKit
  Commit: c6afca4fa8a93481a68a95b86d4fc00d7b34cfb1
      
https://github.com/WebKit/WebKit/commit/c6afca4fa8a93481a68a95b86d4fc00d7b34cfb1
  Author: Chris Dumez <[email protected]>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M 
LayoutTests/fast/forms/input-maxlength-paste-clusters-in-middle-expected.txt
    M LayoutTests/fast/forms/input-maxlength-paste-clusters-in-middle.html
    A LayoutTests/fast/forms/input-text-max-length-emojis-expected.txt
    A LayoutTests/fast/forms/input-text-max-length-emojis.html
    M LayoutTests/fast/forms/input-text-paste-maxlength-expected.txt
    M LayoutTests/fast/forms/input-text-paste-maxlength.html
    A 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/input-maxlength-emoji-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/input-maxlength-emoji.html
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLTextAreaElement.cpp
    M Source/WebCore/html/InputType.cpp
    M Source/WebCore/html/TextFieldInputType.cpp
    M Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp
    M Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.h

  Log Message:
  -----------
  Cherry-pick 260838@main (9743d10df7bc). 
https://bugs.webkit.org/show_bug.cgi?id=252900

    HTML maxlength attribute treats emoji of string length 11 as length 1
    https://bugs.webkit.org/show_bug.cgi?id=252900

    Reviewed by Ryosuke Niwa and Aditya Keerthi.

    Per the HTML specification[1], minlength/maxlength attributes on <input> 
should
    restrict the length of the value, which is defined in code units [2].

    Historically, WebKit has been counting grapheme clusters instead of code 
units
    because we felt it made more sense. However, Blink and Gecko follow the
    specification and only WebKit has the particular behavior. This is bad for
    interoperability and makes Web developers' life more difficult than it 
needs to
    be.

    As a result, I am proposing we update WebKit to align with the HTML
    specification and other major browser engines.

    [1] 
https://html.spec.whatwg.org/multipage/input.html#the-maxlength-and-minlength-attributes
    [2] https://infra.spec.whatwg.org/#string-length

    * 
LayoutTests/fast/forms/input-maxlength-paste-clusters-in-middle-expected.txt:
    * LayoutTests/fast/forms/input-maxlength-paste-clusters-in-middle.html:
    * LayoutTests/fast/forms/input-text-max-length-emojis-expected.txt: Added.
    * LayoutTests/fast/forms/input-text-max-length-emojis.html: Added.
    * LayoutTests/fast/forms/input-text-paste-maxlength-expected.txt:
    * LayoutTests/fast/forms/input-text-paste-maxlength.html:
    * Source/WebCore/html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::tooShort const):
    (WebCore::HTMLInputElement::tooLong const):
    * Source/WebCore/html/HTMLTextAreaElement.cpp:
    (WebCore::computeLengthForSubmission):
    * Source/WebCore/html/InputType.cpp:
    (WebCore::InputType::validationMessage const):
    * Source/WebCore/html/TextFieldInputType.cpp:
    (WebCore::limitLength):
    (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to