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 Safari 14.1 on macOS and Safari on iOS 14.5 #10129

Merged
merged 13 commits into from
Apr 29, 2021

Conversation

jdatapple
Copy link
Contributor

This is a large update of features supported with the release of Safari 14.1 on macOS and Safari on iOS 14.5. The changes have been compiled using mdn-results-collector, a thorough review of changes by the WebKit engineering team at Apple, manual tests to verify results, and engineer submissions.

@jdatapple jdatapple requested a review from ddbeck as a code owner April 27, 2021 18:51
@github-actions github-actions bot added the data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API label Apr 27, 2021
@@ -33,10 +33,10 @@
"version_added": false
},
"safari": {
"version_added": false
"version_added": "14.1"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! Thanks to @svillar for closing the gap in flexbox 🎉

Copy link
Collaborator

@foolip foolip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed some of the trickier bits, I'll come back to review all the other changes after upgrading to macOS 11.3 :)

test/linter/test-versions.js Outdated Show resolved Hide resolved
api/AudioListener.json Outdated Show resolved Hide resolved
api/AudioListener.json Outdated Show resolved Hide resolved
api/AudioContext.json Outdated Show resolved Hide resolved
api/AudioContext.json Outdated Show resolved Hide resolved
api/OfflineAudioContext.json Outdated Show resolved Hide resolved
@@ -173,6 +173,19 @@
"status": "current",
"engine": "WebKit",
"engine_version": "610.1.28"
},
"14.0.2": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #8838 for a previous discussion on how to handle MediaRecorder and iOS 14.3. The conclusion then was to treat it as a minor version and live with a little bit of inaccuracy in the data.

But if the Safari teams considers these versions significant and would like to add them, that's a decision that should be revisited. cc @ddbeck @Elchi3

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that pretty well summarizes it, but I can add some additional detail:

https://github.com/mdn/browser-compat-data/blob/main/docs/data-guidelines.md#release-lines-and-backported-is our best effort to document our thinking with which versions to include. If I were writing it today, I'd probably add some text which speaks to the question: will web developers be making a distinction between version X and version Y version in a year or two?

(I think during a call back in March, it was suggested that that 14.0.3 was a significant release, but there wasn't really a story for testing the difference between it and other 14.0.x versions. This suggested to me that developers won't make the distinction either. I'd expect similar problems for any 14.0.x.)

Copy link
Contributor Author

@jdatapple jdatapple Apr 28, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are opting for fudging this data and using "14" in cases where 14.0.2 appear or safari_ios shows 14.3.

@ddbeck ddbeck added data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. linter 🏡 Issues or pull requests regarding the tests / linter of the JSON files. labels Apr 28, 2021
api/AnalyserNode.json Show resolved Hide resolved
api/AudioParam.json Outdated Show resolved Hide resolved
api/AudioParam.json Outdated Show resolved Hide resolved
api/AudioParam.json Show resolved Hide resolved
api/AudioParamMap.json Show resolved Hide resolved
api/OfflineAudioContext.json Show resolved Hide resolved
api/OscillatorNode.json Outdated Show resolved Hide resolved
api/PannerNode.json Show resolved Hide resolved
api/PannerNode.json Outdated Show resolved Hide resolved
api/PannerNode.json Outdated Show resolved Hide resolved
@foolip
Copy link
Collaborator

foolip commented Apr 28, 2021

Oops, I submitted that review too early by accident. The rest is coming in a second batch :)

Copy link
Collaborator

@foolip foolip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I've gotten through all of api/ now. Taking a break, because this was very time consuming :)

I anyone else wants to review css/ and later in detail, that would be great.

api/PerformanceNavigation.json Outdated Show resolved Hide resolved
api/PerformanceNavigation.json Outdated Show resolved Hide resolved
api/RTCPeerConnection.json Outdated Show resolved Hide resolved
api/RTCPeerConnectionIceErrorEvent.json Outdated Show resolved Hide resolved
api/RTCPeerConnectionIceErrorEvent.json Outdated Show resolved Hide resolved
api/StereoPannerNode.json Outdated Show resolved Hide resolved
api/VTTCue.json Show resolved Hide resolved
api/_mixins/ParentNode__Document.json Outdated Show resolved Hide resolved
api/_mixins/ParentNode__DocumentFragment.json Outdated Show resolved Hide resolved
api/_mixins/ParentNode__Element.json Outdated Show resolved Hide resolved
@foolip
Copy link
Collaborator

foolip commented Apr 28, 2021

OK, with this many review comments I realize it's going to be hard to make sense of. To summarize the state of the API data, there are a bunch of minor errors that I've suggested fixes for, and one interesting decision to be made about whether to have "14.0.2" and "14.3" as their own versions.

@apple-web-evangelist some of my comments are just confirming support or noting something interesting. Feel free to resolve those when you've read them to get them out of the way. Also note that GitHub will unhelpfully hide comments when there are lots of them, so somewhere in the middle there will be "Load more..." links to click.

@ddbeck
Copy link
Collaborator

ddbeck commented Apr 28, 2021

I anyone else wants to review css/ and later in detail, that would be great.

@foolip Thank you so much for taking on a big chunk of the work here. Makes this PR feel a lot smaller. 😄 I'll take a look at the CSS (and the interesting decision stuff) more closely later today. 👍

@json-derulo
Copy link
Contributor

Intl.DisplayNames was also added with Safari 14.1. I've created a separate PR for this (#10130), but maybe it makes sense to add it to this PR instead.

@jonathandavis
Copy link

This is all great feedback. I'm working through incorporating the suggested changes based on your findings @foolip. Thanks for the additional verification.

@json-derulo Also a good catch! I will incorporate that change as part of this PR as well.

@robpalme
Copy link
Contributor

This looks good. I had earlier created a PR for JavaScript classes which also included updates to "static" and "static fields" sub-features which are currently missing from this PR.

@jdatapple
Copy link
Contributor Author

This is all great feedback. I'm working through incorporating the suggested changes based on your findings @foolip. Thanks for the additional verification.

@json-derulo Also a good catch! I will incorporate that change as part of this PR as well.

In addition, there is also data missing for Intl.DateTimeFormat and Intl.NumberFormat updates. Support for Intl.ListFormat and Intl.Segmenter are also available in these releases.

In the case of Intl.Segmenter there is a page, but currently no data file. Is there existing/formal process for requesting or generating a new file?

api/MediaMetadata.json Outdated Show resolved Hide resolved
api/MediaRecorder.json Outdated Show resolved Hide resolved
@@ -173,6 +173,19 @@
"status": "current",
"engine": "WebKit",
"engine_version": "610.1.28"
},
"14.0.2": {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that pretty well summarizes it, but I can add some additional detail:

https://github.com/mdn/browser-compat-data/blob/main/docs/data-guidelines.md#release-lines-and-backported-is our best effort to document our thinking with which versions to include. If I were writing it today, I'd probably add some text which speaks to the question: will web developers be making a distinction between version X and version Y version in a year or two?

(I think during a call back in March, it was suggested that that 14.0.3 was a significant release, but there wasn't really a story for testing the difference between it and other 14.0.x versions. This suggested to me that developers won't make the distinction either. I'd expect similar problems for any 14.0.x.)

api/WEBGL_compressed_texture_pvrtc.json Outdated Show resolved Hide resolved
api/WebGLRenderingContext.json Outdated Show resolved Hide resolved
css/properties/aspect-ratio.json Outdated Show resolved Hide resolved
css/properties/scroll-margin-bottom.json Outdated Show resolved Hide resolved
javascript/classes.json Show resolved Hide resolved
javascript/classes.json Show resolved Hide resolved
webextensions/manifest/background.json Outdated Show resolved Hide resolved
@jdatapple
Copy link
Contributor Author

Performing another pass to address @ddbeck's comments.

@lukewarlow
Copy link
Contributor

With regards to the new date/time input support. You don't appear to have changed the time input to show it's supported as of Safari 14.1.

@jdatapple
Copy link
Contributor Author

A follow-up commit will include it. Thank you for pointing it out that it didn't make it into our the data.

@@ -69,7 +69,7 @@
"version_added": false
},
"safari_ios": {
"version_added": false
"version_added": "14.5"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The aspect ratio experimental feature is disabled for me on both macOS and iOS. Is this not the case for others?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://mdn-bcd-collector.appspot.com/tests/css/properties/aspect-ratio shows support for me on iOS 14.5, but feature detection can be broken.

Some of the basic test cases in https://wpt.live/css/css-sizing/aspect-ratio/ aren't passing, so I think most likely the property is recognized but the actual behavior is gated by a flag.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I verified that this is just wrong.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 90183cb.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And I've updated mdn-bcd-collector in a way to avoid the WebKit bug leading to this false positive in foolip/mdn-bcd-collector#1132.

@ddbeck ddbeck merged commit 0b36b4a into mdn:main Apr 29, 2021
@jdatapple jdatapple deleted the safari-14.1-pr branch April 29, 2021 18:57
foolip added a commit that referenced this pull request May 5, 2021
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:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. linter 🏡 Issues or pull requests regarding the tests / linter of the JSON files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants