I took a look at https://github.com/whatwg/html/pull/7908 and it looks like
there's agreement to merge it, but it's waiting on this intent to be
approved. Normally we block in the other direction, but that's fine, as
long as the spec change is merged.

Looks like there's broad support for this change, and it's just a question
of the site compat risk. ~0.04% as an upper bound is quite high. Can we
wait until the use counter is in stable and look at a random set of sites
hitting the use counter to determine what the real-world breakage looks
like?

On Fri, Mar 31, 2023 at 5:07 PM 'Mathias Bynens' via blink-dev <
blink-dev@chromium.org> wrote:

>
>
> On Fri, Mar 31, 2023 at 4:35 PM Mike Taylor <miketa...@chromium.org>
> wrote:
>
>> Hey Mathias,
>> On 3/31/23 5:56 AM, Mathias Bynens wrote:
>>
>> Contact emails
>>
>> math...@chromium.org
>>
>> Specification
>>
>> https://github.com/whatwg/html/pull/7908
>>
>> Summary
>>
>> The <input pattern> attribute allows developers to specify a regular
>> expression pattern against which the input’s values are checked for
>> validity.
>>
>> <label>
>>
>>   Part number:
>>
>>   <input pattern="[0-9][A-Z]{3}" name="part"
>>
>>          title="A part number is a digit followed by three uppercase
>> letters.">
>>
>> </label>
>>
>> When the pattern attribute was first implemented, these regular
>> expressions were compiled without any RegExp flags. In 2014, the HTML
>> Standard changed this by implicitly enabling the u flag for the pattern
>> attribute, enabling better Unicode support (including support for Unicode
>> character properties like \p{Letter}). This change shipped in Chrome 53.
>> <https://chromestatus.com/feature/4753420745441280>
>>
>> Now, we’re taking this to the next level by enabling the new RegExp v
>> flag <https://v8.dev/features/regexp-v-flag> instead of u, enabling the
>> use of set notation, string literal syntax, and Unicode properties of
>> strings.
>>
>> (Context: The RegExp v flag is a JavaScript language feature which
>> previously went through the Blink Intents process and shipped in Chrome
>> 112 <https://chromestatus.com/feature/5144156542861312>. This new
>> ChromeStatus entry is specifically about integrating it with the HTML
>> pattern attribute.)
>>
>> Blink component
>>
>> Blink>Forms
>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EForms>
>>
>> Search tags
>>
>> unicode <https://chromestatus.com/features#tags:unicode>, regexp
>> <https://chromestatus.com/features#tags:regexp>, pattern
>> <https://chromestatus.com/features#tags:pattern>, validation
>> <https://chromestatus.com/features#tags:validation>
>>
>> TAG review
>> TAG review status
>>
>> Not applicable
>>
>> Risks
>> Interoperability and Compatibility
>>
>> The spec patch at https://github.com/whatwg/html/pull/7908 lists the
>> potentially breaking changes. Some patterns that previously would compile,
>> now throw an early error with the v flag — specifically those with a
>> character class including either an unescaped special character or a double
>> punctuator.
>>
>> We expect such patterns to be rare. To validate this assumption we’ve
>> added a UseCounter called
>> HTMLPatternRegExpUnicodeSetIncompatibilitiesWithUnicodeMode
>> <https://chromestatus.com/metrics/feature/popularity#HTMLPatternRegExpUnicodeSetIncompatibilitiesWithUnicodeMode>
>> in M112, which tracks patterns in any JavaScript u RegExps generated via
>> the HTML pattern attribute that would throw if they were used with the v
>> flag.
>>
>> Importantly, note that any throwing pattern gracefully degrades — it
>> simply behaves as if the pattern attribute wasn’t present, resulting in 
>> inputElement.validity.valid
>> === true for any input value. Consequently, the only compatibility risk
>> is that some value/pattern combinations that would previously result in
>> inputElement.validity.valid being false now result in it being true. Thus,
>> for every UseCounter hit, it could still be that there is no actual
>> breakage — the UseCounter just gives us the upper bound. The currently
>> available data from Beta suggests the UseCounter hits for 0.0393% of
>> Chrome page loads.
>>
>> I'm somewhat curious to see how much that UseCounter will grow (if at
>> all) when 112 goes to stable next week...
>>
> Me too, and FWIW I'd understand if you and the other API owners prefer to
> wait until there’s some data for Stable before responding to this Intent.
>
>> Do you have any concerns about certain inputs being sent to a server that
>> might not have any backend validation, that would previously be prevented
>> by the u-vintage validation?
>>
> That’s indeed the only scenario in which there would be breakage. So far
> we haven’t heard of such cases in the wild. (Arguably, such web pages are
> already broken, since DevTools could easily be used to remove the `pattern`
> attribute, or requests could be made with tools like `curl`.) FWIW, there
> was a similar discussion in this old blink-dev thread:
> https://groups.google.com/a/chromium.org/g/blink-dev/c/XUNMtri0tI4/m/mjPkwXKNAQAJ
>
> I forgot to mention that we explicitly added a console warning in M112 for
> any `pattern` attribute values that would be affected by this change, to
> help developers prepare for the potential change. One developer reported
> seeing the warning and adjusting their `pattern` attribute values
> accordingly, but it’s unclear whether inaction would have really broken
> their web page:
> https://bugs.chromium.org/p/chromium/issues/detail?id=1412729#c7
>
>
>>
>> Gecko: Positive (Mozilla standards position request
>> <https://github.com/mozilla/standards-positions/issues/745>, implementation
>> tracking issue <https://bugzilla.mozilla.org/show_bug.cgi?id=pattern-v>)
>>
>> WebKit: Positive (WebKit standards position request
>> <https://github.com/WebKit/standards-positions/issues/132>, implementation
>> tracking issue <https://bugs.webkit.org/show_bug.cgi?id=pattern-v>)
>>
>> Web developers: No signals
>>
>> Other signals:
>>
>> Debuggability
>>
>> The pattern attribute is already well-supported in DevTools and other
>> tooling; no changes are necessary.
>>
>> Will this feature be supported on all six Blink platforms (Windows, Mac,
>> Linux, Chrome OS, Android, and Android WebView)?
>>
>> Yes
>>
>> Is this feature fully tested by web-platform-tests
>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>> ?
>>
>> Pull Request: https://github.com/web-platform-tests/wpt/pull/38547
>>
>> Flag name
>>
>> N/A
>>
>> Requires code in //chrome?
>>
>> False
>>
>> Tracking bug
>>
>> https://bugs.chromium.org/p/chromium/issues/detail?id=1412729
>>
>> Sample links
>>
>> https://mathiasbynens.be/demo/pattern-u-vs-v
>>
>> Estimated milestones
>>
>> M114
>>
>> Link to entry on the Chrome Platform Status
>>
>> https://chromestatus.com/feature/5149507107422208
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADizRgaAq4FwzJbUqLQVo%2BQdd_V0PT7rBr510OGe8fenHA%3D3HQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADizRgaAq4FwzJbUqLQVo%2BQdd_V0PT7rBr510OGe8fenHA%3D3HQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c9571b2a-a35b-3824-0f37-c93a9bb522fc%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c9571b2a-a35b-3824-0f37-c93a9bb522fc%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADizRgYxU2v2ANQgzNiLD%2B4P-qJHxzTYJfRDsKNCtY0Yb_0bdg%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADizRgYxU2v2ANQgzNiLD%2B4P-qJHxzTYJfRDsKNCtY0Yb_0bdg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdA3-df%2BXFXxVd%3DAOintpGr%3D56o8UQbOpVZUfVoTi5wWA%40mail.gmail.com.

Reply via email to