-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Remove compile_flag from the schema #3752
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, @ddbeck! This is really nice clean-up and I totally agree with your points. I've opened mdn/kumascript#1113 to remove the rendering piece from the MDN KumaScript renderer, but that shouldn't block the release of this change. It is just clean-up that we should do on our rendering code.
This change markss navigator.hardwareConcurrency unsupported in Safari. https://trac.webkit.org/changeset/169017/webkit added the support, so per https://trac.webkit.org/browser/webkit/tags/Safari-601.1.56/Source/WebCore/page/Navigator.idl#L40 that puts in the WebKit version which shipped in Safari 9 — because per https://trac.webkit.org/browser/webkit/tags/Safari-538.35/Source/WebCore/page/Navigator.idl#L38 it did not ship in Safari 8. However, it shipped behind a build (compile) flag — and that build flag was apparently never enabled by Apple for Safari releases. https://trac.webkit.org/changeset/219372/webkit and https://trac.webkit.org/changeset/219379/webkit eventually removed the support from WebKit altogether. Per https://trac.webkit.org/browser/webkit/releases/Apple/Safari%2011.0#WebCore/page that means it was removed in Safari 11 — because per https://trac.webkit.org/browser/webkit/releases/Apple/Safari%2010.0/WebCore/page it was still present in the WebKit version that shipped with Safari 10. But per mdn#7393 and mdn#3752 we don’t mark feature as supported if they require the use of a build/compile flag. So this change instead simply marks it as version_added:false.
This change marks navigator.hardwareConcurrency unsupported in Safari. https://trac.webkit.org/changeset/169017/webkit added the support, so per https://trac.webkit.org/browser/webkit/tags/Safari-601.1.56/Source/WebCore/page/Navigator.idl#L40 that puts in the WebKit version which shipped in Safari 9 — because per https://trac.webkit.org/browser/webkit/tags/Safari-538.35/Source/WebCore/page/Navigator.idl#L38 it did not ship in Safari 8. However, it shipped behind a build (compile) flag — and that build flag was apparently never enabled by Apple for Safari releases. https://trac.webkit.org/changeset/219372/webkit and https://trac.webkit.org/changeset/219379/webkit eventually removed the support from WebKit altogether. Per https://trac.webkit.org/browser/webkit/releases/Apple/Safari%2011.0#WebCore/page that means it was removed in Safari 11 — because per https://trac.webkit.org/browser/webkit/releases/Apple/Safari%2010.0/WebCore/page it was still present in the WebKit version that shipped with Safari 10. But per #7393 and #3752 we don’t mark feature as supported if they require the use of a build/compile flag. So this change instead simply marks it as version_added:false.
We hardly use compile flag data and compile flags strain the sense of a "version" of a browser. I say we get rid of 'em.
Background
While reviewing, #3742, I found that a feature was supported in an earlier version of Firefox but behind a compile flag (#3742 (review)). Initially, I intended to suggest adding the compile flag, but I couldn't remember the format for it. I looked and we only have two compile flags in the entire repository. One is for a non-Web platform feature, XUL overlays. The other is for an experimental JavaScript feature, the pipeline operator.
Proposal
Remove
compile_flag
from BCD. My reasoning has two parts. First, we have only one Web platform feature that usescompile_flag
and it seems silly to maintain this part of BCD for a single feature. Second, it strains the sense of a "version" of a browser if, to get access to a feature, you can't actually use the version of the browser you'd download from the vendor—you have to build your own.Changes
This PR removes:
compile_flag
datacompile_flag
in supporting scripts