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

add fixes for wolenetz comments #18225

Merged
merged 6 commits into from Nov 20, 2022
Merged

Conversation

chrisdavidmills
Copy link
Collaborator

Summary

This PR adds fixes in response to the review comments provided by @wolenetz in #18220

I did the following:

  • Removed the separate worker_support items from the top-level interface support items, as the extra rows in the support tables were confusing and unnecessary
  • Marked audioTracks and videoTracks support as experimental, for SourceBuffer and HTMLMediaElement
  • Marked SourceBuffer.textTracks support as false for Chromium
  • Reverted VideoPlaybackQuality changes
  • Verified that MSE-in-workers works in Opera 94, not Opera 93, by testing @wolenetz's demo in beta and developer versions. To fix this, I'm not going to change every Opera support number individually, as that is not maintainable, and the linter complained. Instead, I'm going to fix the mirroring code so that it reports the correct Opera version for Chrome 106/107/108. I've filed an issue for that at Chrome 108 should mirror to Opera 94, but it doesn't #18224, which I'll have a go at fixing next.

Test results and supporting details

Testing was done using the demo available at https://wolenetz.github.io/mse-in-workers-demo/mse-in-workers-demo.html

Related issues

Fixes #18220

@github-actions github-actions bot added the data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API label Nov 16, 2022
@chrisdavidmills chrisdavidmills marked this pull request as draft November 16, 2022 10:34
Copy link

@wolenetz wolenetz left a comment

Choose a reason for hiding this comment

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

Looks pretty good. A few nits/questions. Thanks again for working on this!

{
"version_added": "108",
"partial_implementation": true,
"notes": "Support added for <code>MediaSource</code> objects transferred from dedicated workers via <code>MediaSource.handle</code> (see <a href='https://crbug.com/878133'>bug 878133</a>)."

Choose a reason for hiding this comment

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

Probably best to be precise here: ...Support added for MediaSourceHandle objects transferred from dedicated workers where they were obtained from MediaSource.handle...

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good call, updated!

"standard_track": true,
"deprecated": false
"status": {
"experimental": true,

Choose a reason for hiding this comment

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

I noticed that MSE-in-Workers in MDN in these changes is being marked "experimental". It is shipping on-by-default in Chrome, and is implemented to follow the corresponding changes in the current MSE spec working draft. What does "experimental" mean here, given this information?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is the definition that MDN uses for experimental: https://developer.mozilla.org/en-US/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete#experimental. In the time I've been contributing to MDN, we've gone back and forth on this a lot, and it still isn't perfect, but I think it's OK. MSE-in-workers is marked as experimental because it is still only available in one rendering engine, so the advice to devs would be to think carefully when considering using it. If you want to support Fx and WebKit browsers, then you might need to think about a fallback, alternative, or gracefully degrading experience. If you only need Chromium support, then you are OK. This certainly isn't the same as "don't use it".

Choose a reason for hiding this comment

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

Thanks for the explanation. https://developer.mozilla.org/en-US/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete#experimental could probably use clarification around the meaning of "It is implemented and enabled by default in less than two modern major browsers" -- I understand that it is being applied as if s/major browsers/major distinct underlying rendering engines in browsers/, but on the surface it is confusing.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I've filed this: mdn/content#22391. Please add to it if you have any other thoughts on the subject. I'll try to fix this at some point next week, if no one else grabs it.

@@ -1723,7 +1678,14 @@
"description": "Available in workers",
"support": {
"chrome": {
"version_added": "108"
"version_added": "108",

Choose a reason for hiding this comment

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

Is there a way to note that both SourceBuffer.audioTracks and .videoTracks in a dedicated worker MediaSource's SourceBuffer is not expected to succeed even if the experimental flag is provided (there is further spec work and implementation work required to support those track lists from a worker context, and currently the implementation - if experimental flag is enabled and the app invokes the audioTracks() or videoTracks() getter on a worker SourceBuffer, then Chrome crashes the renderer process to avoid potentially worse behavior. This is known work in both spec and impl (MSE spec, HTML spec, Chrome impl), partially captured by this MSE spec issue: w3c/media-source#280

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I've added a note to audioTracks/videoTracks to hopefully cover this; let me know what you think. I wasn't sure that the spec issue you linked to really explained what the issue was, so I decided not to link to it. IS there a better link available, or do you think I should link here, as that is where explanation will be added?

Choose a reason for hiding this comment

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

Good point - I've reactivated the most closely related Chromium issue to this piece of the spec. Please link to https://bugs.chromium.org/p/chromium/issues/detail?id=487288#c24 (it also links transitively to the MSE spec issue 280 that I mentioned, above).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Perfect, that is a useful explanation. Link added.

Copy link

@wolenetz wolenetz left a comment

Choose a reason for hiding this comment

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

Looks good to me - please add the link to https://bugs.chromium.org/p/chromium/issues/detail?id=487288#c24 as I just commented about a few minutes ago.

@chrisdavidmills chrisdavidmills marked this pull request as ready for review November 18, 2022 08:09
Copy link
Collaborator

@queengooborg queengooborg left a comment

Choose a reason for hiding this comment

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

Thanks for following up on this, LGTM!

@queengooborg queengooborg merged commit 7fedfda into mdn:main Nov 20, 2022
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MSE-in-Workers BCD data update PR #18189 contained a few items needing correction
3 participants