Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates for Chrome 120 beta #21148

Merged
merged 6 commits into from Nov 17, 2023
Merged

Updates for Chrome 120 beta #21148

merged 6 commits into from Nov 17, 2023

Conversation

Elchi3
Copy link
Member

@Elchi3 Elchi3 commented Nov 2, 2023

This PR is an experiment. I've run Open Web Docs' BCD collector against Chrome 120 which reached beta yesterday. We believe that when there are beta versions of browsers available it is a good time to update BCD and ideally we should do so automatically with the help of tooling. So today is the day when such a PR would be created in the cycle. I'm creating this PR manually for the moment, but in the future we hope it can be generated from a workflow.

The collector found 21 new features shipping in Chrome 120:

  • api.CredentialsContainer.create.publicKey_option.extensions.minPinLength
  • api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers
  • api.HTMLDetailsElement.name
  • api.IntersectionObserver.scrollMargin
  • api.URL.canParse_static
  • css.at-rules.media.scripting
  • css.properties.mask-clip
  • css.properties.mask-composite
  • css.properties.mask-image
  • css.properties.mask-mode
  • css.properties.mask-origin
  • css.properties.mask-origin.fill-box
  • css.properties.mask-origin.stroke-box
  • css.properties.mask-origin.view-box
  • css.properties.mask-position
  • css.properties.mask-repeat
  • css.properties.mask-size
  • css.types.color.light-dark
  • css.types.length.lh
  • css.types.length.rlh
  • html.elements.details.name

We can now compare this list against the blog post that @rachelandrew published and see if we have missed things and why (or if the blog posts missed things :)). https://developer.chrome.com/blog/chrome-120-beta/

Also cc'ing @chrisdavidmills who usually works on Chrome updates. Chris, if this PR would be auto-generated, would that be reviewable for you? What would you improve? Thanks for your input which will be useful for us as we design an automated workflow here. For more information about this project, see: openwebdocs/project#168

@github-actions github-actions bot added data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API data:css 🎨 Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS labels Nov 2, 2023
@chrisdavidmills
Copy link
Collaborator

Thanks for this @Elchi3. I would be happy to help review these PRs, and think they would be useful in several ways. For example, it would help me to do my BCD updates more quickly (by doing some of my work or me), and I could also use this as an forcing function to update my future work list, taking some of that burden off @rachelandrew's hands.

The way I see it, in each case I would:

  • Check the list against the beta blog post and produce two lists:
    • Features in the PR that aren't in the blog post. If such features exist, I could talk to Chrome engineers to see what the deal is with these features.
    • Features in the blog post that aren't in the PR. I'll pass this list to you say we can investigate them and see what the deal is.
      • There are several of these in the 120 beta release. I'm guessing that this is because you do not include features in the PR that are currently behind a flag in non-release versions? I'd have to test these to see what the deal is.
  • Add all the missing bits to my future worklist, and start to work on them.

Does this sound like a good plan to y'all? Am I missing anything?

@rachelandrew
Copy link
Collaborator

Just a note to say you don't need to check the blog post, it's much easier to look at the Chrome Status roadmap as that's where the info from the post comes from.

@teoli2003
Copy link
Member

teoli2003 commented Nov 8, 2023

I am working on a script that classifies the list of features changed (like the one given by Florian in the OP) by spec.

To test, I ran that list in it and got what follows (feedback welcome)

Credential Management Level 1

spec

  • api.CredentialsContainer.create.publicKey_option.extensions.minPinLength

HTML Standard

spec

  • api.HTMLDetailsElement.name
  • html.elements.details.name

Intersection Observer

spec

  • api.IntersectionObserver.scrollMargin

URL Standard

spec

  • api.URL.canParse_static

WebGPU

spec

  • api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers

CSS 2

spec

  • css.at-rules.media.scripting

CSS Color Module Level 5

spec

  • css.types.color.light-dark

CSS Masking Module Level 1

spec

  • css.properties.mask-image
  • css.properties.mask-mode
  • css.properties.mask-repeat
  • css.properties.mask-position
  • css.properties.mask-clip
  • css.properties.mask-origin
  • css.properties.mask-origin.fill-box
  • css.properties.mask-origin.stroke-box
  • css.properties.mask-origin.view-box
  • css.properties.mask-size
  • css.properties.mask-composite

CSS Values and Units Module Level 4

spec

  • css.types.length.lh
  • css.types.length.rlh

@Elchi3
Copy link
Member Author

Elchi3 commented Nov 9, 2023

Thanks for this @Elchi3. I would be happy to help review these PRs, and think they would be useful in several ways. For example, it would help me to do my BCD updates more quickly (by doing some of my work or me), and I could also use this as an forcing function to update my future work list, taking some of that burden off @rachelandrew's hands.

The way I see it, in each case I would:
[...]
Does this sound like a good plan to y'all? Am I missing anything?

Thanks for your feedback, Chris! Glad this project is useful to y'all. It does sound like a good plan. As Rachel says, the https://chromestatus.com/roadmap is even easier to look at. In order to move forward with this PR, I would propose two things for you:

  • Review the changes this PRs makes. Can you confirm (using chromestatus) what we have here is correct and ships in Chrome 120?
  • Let us know what we forgot in this PR (also using chromestatus). This will be useful for getting the complete data into BCD for Chrome 120 and also it will help us to know where we still need to improve the collector so that these things could be potentially be found automatically in the future.

Thanks again for your help!

@teoli2003
Copy link
Member

teoli2003 commented Nov 10, 2023

HI!

I'm working to link the Chromestatus features to the different BCD IDs. This should help @chrisdavidmills to find the Chromestatus entry related to what the collector has detected.

Here is the current output. Feedback welcome!

Note the section at the end (hidden by default) with the list of CS features not linked to spec with BCD IDs modified.

Note: Official ChromeStatus roadmap for Chrome 120
Note2: What follows is generated by a script.


Note: Official ChromeStatus [roadmap for Chrome 120](https://chromestatus.com/roadmap?120)

Credential Management Level 1

spec

  • api.CredentialsContainer.create.publicKey_option.extensions.minPinLength

HTML Standard

spec

  • api.HTMLDetailsElement.name
  • html.elements.details.name

Potential ChromeStatus features:

Intersection Observer

spec

  • api.IntersectionObserver.scrollMargin

Potential ChromeStatus features:

URL Standard

spec

  • api.URL.canParse_static

WebGPU

spec

  • api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers

Potential ChromeStatus features:

CSS Color Module Level 5

spec

  • css.types.color.light-dark

CSS Masking Module Level 1

spec

  • css.properties.mask-image
  • css.properties.mask-mode
  • css.properties.mask-repeat
  • css.properties.mask-position
  • css.properties.mask-clip
  • css.properties.mask-origin
  • css.properties.mask-origin.fill-box
  • css.properties.mask-origin.stroke-box
  • css.properties.mask-origin.view-box
  • css.properties.mask-size
  • css.properties.mask-composite

Potential ChromeStatus features:

CSS Values and Units Module Level 4

spec

  • css.types.length.lh
  • css.types.length.rlh

Potential ChromeStatus features:

Media Queries Level 5

spec

  • css.at-rules.media.scripting

Potential ChromeStatus features:

ChromeStatus features not linked to one of these specs
The following BCD IDs have already been updated
  • css.at-rules.media.scripting
  • html.elements.details.name

@chrisdavidmills
Copy link
Collaborator

chrisdavidmills commented Nov 14, 2023

OK, here is my review of all this stuff. Let me know if you think this is useful.

Notes:

  • In the roadmap, I just reviewed Deprecated and Enabled by default items. I ignored DT and OT items. Sound reasonable?
  • When I say "In BCD already?", I mean "Is it already in BCD, before this PR was raised?". If the value is just "No", it generally means that it is not already in BCD, but it is being added to this PR. If the required change is not in this PR either, then I generally say something like "Needs adding".
  • The "Items in 120 roadmap, not listed in PR" section is generally where you'll find the most juicy stuff that looks like it needs to be added to BCD, but there are a couple of bits in the first section too.
  • For most of this stuff, I just looked at the info in the ChromeStatus entry; I didn't test it in any great detail. I'm assuming that's OK for this review.
  • The table is a bit wide; you'll need to scroll to see all of it.

Items listed in the PR

Item In Chrome 120? In roadmap? In BCD already? Chromestatus
api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers Yes No No https://chromestatus.com/feature/5081403763195904
api.CredentialsContainer.create.publicKey_option.extensions.minPinLength ? (No version in status entry) No Yes https://chromestatus.com/feature/5729885776510976
api.HTMLDetailsElement.name Yes Yes No https://chromestatus.com/feature/6710427028815872
api.IntersectionObserver.scrollMargin Yes Yes No https://chromestatus.com/feature/5091020593430528
api.URL.canParse_static Yes No No https://chromestatus.com/feature/5123302532317184
css.at-rules.media.scripting Yes Yes Yes https://chromestatus.com/feature/5075009105559552
css.properties.mask-clip Yes Yes No https://chromestatus.com/feature/5839739127332864
css.properties.mask-composite Yes Yes No "
css.properties.mask-image Yes Yes No "
css.properties.mask-mode Yes Yes No "
css.properties.mask-origin Yes Yes No "
css.properties.mask-origin.fill-box Yes Yes No "
css.properties.mask-origin.stroke-box Yes Yes No "
css.properties.mask-origin.view-box Yes Yes No "
css.properties.mask-position Yes Yes No "
css.properties.mask-repeat Yes Yes No "
css.properties.mask-size Yes Yes No "
css.types.color.light-dark ? (couldn't find status entry) No No (not in PR either) ?
css.types.length.lh No (BCD reckons supported in 109) No Yes https://chromestatus.com/feature/4998371945742336
css.types.length.rlh No (BCD reckons supportedd in 111) No Yes https://chromestatus.com/feature/5073969265246208
html.elements.details.name Yes Yes No (not in PR either, needs adding) https://chromestatus.com/feature/6710427028815872

Notes

  • mask-position in the Chrome DevTools seems to show up as a shorthand property with -webkit-mask-position-x and -webkit-mask-position-y and the longhands. These values are also shown as components of mask, instead of the expected mask-position. Might require investigating.

Items in 120 roadmap, not listed in PR

Item In Chrome 120? In roadmap? In BCD already? Chromestatus
css.properties.mask Yes Yes Needs adding https://chromestatus.com/feature/5839739127332864
Deprecate and remove Theora support Yes Yes Not recorded in BCD; content note needed https://chromestatus.com/feature/5158654475239424
api.VideoFrame.VideoFrame.transfer Yes Yes Needs adding https://chromestatus.com/feature/5075602045927424
api.AudioData.AudioData.transfer Yes Yes Needs adding "
api.EncodedVideoChunk.EncodedVideoChunk.transfer Yes Yes Needs adding "
api.EncodedAudioChunk.EncodedAudioChunk.transfer Yes Yes Needs adding "
api.ImageDecoder.ImageDecoder.transfer Yes Yes Needs adding "
css.at-rules.property.syntax.image (or similar) Yes Yes Needs adding https://chromestatus.com/feature/5142205606133760
api.css.registerProperty_static.image (or similar) Yes Yes Needs adding "
css.at-rules.property.syntax.transform-function (or similar) Yes Yes Needs adding https://chromestatus.com/feature/5184552188510208
api.css.registerProperty_static.transform-function (or similar) Yes Yes Needs adding "
css.at-rules.property.syntax.transform-list (or similar) Yes Yes Needs adding "
api.css.registerProperty_static.transform-list (or similar) Yes Yes Needs adding "
css.selectors.dir Yes Yes Needs updating https://chromestatus.com/feature/5751531651465216
css.types.sqrt Yes Yes Needs updating https://chromestatus.com/feature/5118715069202432
css.types.pow Yes Yes Needs updating "
css.types.hypot Yes Yes Needs updating "
css.types.log Yes Yes Needs updating "
css.types.exp Yes Yes Needs updating "
api.FontFaceSet.check Yes Yes Needs updating (partial support for a long time) https://chromestatus.com/feature/5174086494060544
api.IdentityCredential.asAutoSelected Yes Yes Needs adding (when added to spec) https://chromestatus.com/feature/5384360374566912
api.IdentityCredentialError Yes Yes Needs adding (when added to spec) "
api.IdentityCredentialError.IdentityCredentialError Yes Yes Needs adding (when added to spec) "
api.IdentityCredentialError.code Yes Yes Needs adding (when added to spec) "
api.IdentityCredentialError.url Yes Yes Needs adding (when added to spec) "
html.elements.source.media Yes Yes Looks like this was already fixed in Content; see mdn/content#27079, but the Chrome BCD looks wrong? https://chromestatus.com/feature/5144127067127808
api.HTMLSourceElement.media Yes Yes " "
api.MediaSession.setActionHandler.enterpictureinpicture_type Yes Yes " https://chromestatus.com/feature/6245717716238336
api.MediaStreamTrack.stats Yes Yes Needs adding (just video type) https://chromestatus.com/feature/5087376775053312
api.MediaStreamTrackVideoStats Yes Yes Needs adding "
api.MediaStreamTrackVideoStats.deliveredFrames Yes Yes Needs adding "
api.MediaStreamTrackVideoStats.discardedFrames Yes Yes Needs adding "
api.MediaStreamTrackVideoStats.totalFrames Yes Yes Needs adding "
api.MediaStreamTrackVideoStats.toJSON Yes Yes Needs adding "
api.PermissionsPolicyViolationReportBody Yes Yes Needs adding https://chromestatus.com/feature/5105435227455488
api.PermissionsPolicyViolationReportBody.featureId Yes Yes Needs adding "
api.PermissionsPolicyViolationReportBody.sourceFile Yes Yes Needs adding "
api.PermissionsPolicyViolationReportBody.lineNumber Yes Yes Needs adding "
api.PermissionsPolicyViolationReportBody.columnNumber Yes Yes Needs adding "
api.PermissionsPolicyViolationReportBody.disposition Yes Yes Needs adding "
svg.elements.use.data_uri Yes Yes Needs removing https://chromestatus.com/feature/5128825141198848
api.Navigator.login Yes Yes Needs adding https://chromestatus.com/feature/5177628008382464
api.NavigatorLogin Yes Yes Needs adding "
api.NavigatorLogin.setStatus Yes Yes Needs adding "
api.Document.startViewTransition (needs subfeature for non-nullable callback?) Yes Yes Needs adding https://chromestatus.com/feature/5194510942601216

Items listed in 120 roadmap that don't appear to be implemented or enabled

Items that seem to be supported, but I'm not sure how to represent in BCD

@foolip
Copy link
Collaborator

foolip commented Nov 16, 2023

I'm taking care of css.selectors.dir in #21245.

@Elchi3
Copy link
Member Author

Elchi3 commented Nov 16, 2023

Thanks Chris! This is amazing and helps us a lot! I'm particularly interested in the "Items in 120 roadmap, not listed in PR" list which has 42 entries for which the collector can't currently add the features automatically for a few reasons:

  • The existing data in BCD is complex (e.g. partial support is used) and we don't want to just override it (css.properties.mask, api.FontFaceSet.check). These will have to be submitted manually for the moment.
  • The collector doesn't know how to test the feature because it is a "behavior sub feature" (api.VideoFrame.VideoFrame.transfer, css.at-rules.property.syntax.transform-list and friends, api.Document.startViewTransition.non-nullable-callback). These will have to be submitted manually for the moment.
  • The collector doesn't know how to test the feature but it should (css.selectors.dir, api.PermissionsPolicyViolationReportBody). I will work on that in the collector.
  • There is no IDL/no specification (api.IdentityCredentialError and friends, api.MediaStreamTrackVideoStats and friends). Here it seems that the standardization process is not yet done, so we don't get the IDL for it via webref. Not sure if you want to add these right now. We also won't have valid spec_urls quite yet.

I had forgotten CloseWatcher and Login API. The collector actually found them! So these are sorted and that means 27 entries can be added to BCD automatically thanks to this PR (and 42 of them can't, sorry, we will improve).

@Elchi3
Copy link
Member Author

Elchi3 commented Nov 16, 2023

That said, this PR proposes 27 features as shipping in Chrome 120 and they are confirmed by the chromestatus entries given above and by the collector tests. Please merge and the rest will have to be sorted separately.

  • api.CloseWatcher
  • api.CloseWatcher.CloseWatcher
  • api.CloseWatcher.cancel_event
  • api.CloseWatcher.close
  • api.CloseWatcher.close_event
  • api.CloseWatcher.destroy
  • api.CloseWatcher.requestClose
  • api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers
  • api.HTMLDetailsElement.name
  • api.IntersectionObserver.scrollMargin
  • api.Navigator.login
  • api.NavigatorLogin
  • api.NavigatorLogin.setStatus
  • api.URL.canParse_static
  • css.at-rules.media.scripting
  • css.properties.mask-clip
  • css.properties.mask-composite
  • css.properties.mask-image
  • css.properties.mask-mode
  • css.properties.mask-origin
  • css.properties.mask-origin.fill-box
  • css.properties.mask-origin.stroke-box
  • css.properties.mask-origin.view-box
  • css.properties.mask-position
  • css.properties.mask-repeat
  • css.properties.mask-size
  • html.elements.details.name

@chrisdavidmills chrisdavidmills merged commit a9e1451 into mdn:main Nov 17, 2023
4 checks passed
@Elchi3 Elchi3 deleted the chrome-120 branch November 17, 2023 11:16
ddbeck added a commit to ddbeck/browser-compat-data that referenced this pull request May 3, 2024
All of the other `mask-` properties were unprefixed at the same time, only this one was left unmodified. I think this was missed in the course of running automatic updates for Chrome 120. See: mdn#21148 (comment)
foolip added a commit to foolip/browser-compat-data that referenced this pull request May 6, 2024
The longhand properties were updated here:
mdn#21148

Because the shorthand was recognized but had no effect, the collector
couldn't detect this change.

Supporting evidence:
https://chromestatus.com/feature/5839739127332864
foolip added a commit that referenced this pull request May 6, 2024
The longhand properties were updated here:
#21148

Because the shorthand was recognized but had no effect, the collector
couldn't detect this change.

Supporting evidence:
https://chromestatus.com/feature/5839739127332864
foolip added a commit to foolip/browser-compat-data that referenced this pull request May 15, 2024
This data can't be mirrored, and so was missed in mdn#21148.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API data:css 🎨 Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants