On Wed, Apr 19, 2023 at 3:41 PM Philip Jägenstedt <foo...@chromium.org>
wrote:

> I wonder if we can get enough confidence with less work than investigating
> 40 randomly chosen sites from UseCounter hits.
>
> This is a population proportion problem, and
> https://sample-size.net/confidence-interval-proportion/ is a useful tool.
> If you check 40 cases and find no breakage (N=40, x=0) that gives us 95%
> confidence that breakage is less than 7.2% of samples in this data set. If
> it's useful to check that much depends on the value of the use counter.
>
> Is https://chromestatus.com/metrics/feature/timeline/popularity/4463 the
> right use counter, and has it reached stable yet? Why is marked as obsolete?
>
> For purposes of illustration, let's use 0.04% from earlier in the thread
> and say we want to be (95%) confident that real breakage is less than
> 0.01%. Then we just need to get below 25% in the linked tool, and checking
> 11 samples and finding nothing is enough to do this.
>

I like your more sophisticated math, but it's <0.001% that we want I'm
afraid, not 0.01%. So, if I'm following your instructions right, that's ~42
samples to have 95% confidence :-)

Of course 0.001% is just a rough guideline that has often proven to be too
high or too low. So this is all a judgement call anyway.

On Wed, Apr 19, 2023 at 5:43 PM Mathias Bynens <m...@google.com> wrote:
>
>> Thanks for the guidance, Rick. I’ve prepared a CL moving the flag to
>> status=experimental
>> <https://chromium-review.googlesource.com/c/chromium/src/+/4447958> and
>> I can commit to investigating 40 unique UseCounter hits and summarizing my
>> findings. Fingers crossed the trend of “no actual breakage detected”
>> continues. I’ll keep you posted.
>>
>> On Wed, Apr 19, 2023 at 5:26 PM Rick Byers <rby...@chromium.org> wrote:
>>
>>> Thanks for doing a thorough compat analysis of this Mathias. I can
>>> totally see this being one where all the examples we can find don't seem to
>>> cause breakage in practice. I know it's a lot, but if we looked at 40
>>> random examples and found none of them to break, that would suggest an
>>> upper bound of <0.001% of pages impacted (probably much lower) and I'd be
>>> OK giving this a shot with a finch killswitch ready in case of reports of
>>> serious breakage. Does that sound reasonable to you?
>>>
>>> Also feel free to set your flag
>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=1912?q=HTMLPatternRegExpUnicodeSets%20file:.json5&ss=chromium>
>>> to status=experimental, that'll get us some additional usage coverage (from
>>> the small population that runs with
>>> --enable-experimental-web-platform-features) and also signal that this is
>>> close to becoming shipping behavior.
>>>
>>> Rick
>>>
>>> On Mon, Apr 17, 2023 at 7:03 AM 'Mathias Bynens' via blink-dev <
>>> blink-dev@chromium.org> wrote:
>>>
>>>> So far, none of the UseCounter hits I investigated constitute any
>>>> actual breakage. The vast majority of hits seem to be login forms backed by
>>>> server-side validation. I’ll keep looking though.
>>>>
>>>> In the meantime, this feature is now
>>>> <https://chromium-review.googlesource.com/c/chromium/src/+/4414859>
>>>> available behind the `--enable-blink-features=HTMLPatternRegExpUnicodeSets`
>>>> flag (disabled by default).
>>>>
>>>> On Wednesday, April 5, 2023 at 5:53:10 PM UTC+2 Mathias Bynens wrote:
>>>>
>>>>> On Wed, Apr 5, 2023 at 5:23 PM Alex Russell <sligh...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>> I don't understand why TAG review is not applicable for this intent.
>>>>>>
>>>>>
>>>>> Fair enough. I’ve filed a TAG review request here:
>>>>> https://github.com/w3ctag/design-reviews/issues/832 I’ll update the
>>>>> ChromeStatus entry to refer to it.
>>>>>
>>>>> On Tuesday, April 4, 2023 at 5:21:16 AM UTC-7 mt...@google.com wrote:
>>>>>>
>>>>> Thanks to the UseCounter + UKM + M112 hitting Stable, more results are
>>>>>>> starting to come in. I’ll be collecting public examples of potential
>>>>>>> incompatibilities here:
>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1412729#c11
>>>>>>> So far 0 out of the 2 examples cause any actual breakage — fingers 
>>>>>>> crossed
>>>>>>> that trend continues.
>>>>>>>
>>>>>>> On Mon, Apr 3, 2023 at 10:26 AM Philip Jägenstedt <
>>>>>>> foo...@chromium.org> wrote:
>>>>>>>
>>>>>> 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 <
>>>>>>>> blin...@chromium.org> wrote:
>>>>>>>>
>>>>>>> On Fri, Mar 31, 2023 at 4:35 PM Mike Taylor <mike...@chromium.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hey Mathias,
>>>>>>>>>> On 3/31/23 5:56 AM, Mathias Bynens wrote:
>>>>>>>>>>
>>>>>>>>>> Contact emails
>>>>>>>>>>
>>>>>>>>>> mat...@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+...@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+...@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+...@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/bf73fe5b-fde2-42df-90f0-582a905d1948n%40chromium.org
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bf73fe5b-fde2-42df-90f0-582a905d1948n%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/CAFUtAY-11%3DTd8aQhcJexktYanMWvp5bmQ5mZ96WY%2BLThP2sTaA%40mail.gmail.com.

Reply via email to