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 engines to browsers #3877

Merged
merged 65 commits into from
May 6, 2019
Merged

Add engines to browsers #3877

merged 65 commits into from
May 6, 2019

Conversation

queengooborg
Copy link
Collaborator

@queengooborg queengooborg commented Apr 13, 2019

Fixes #3264. This adds engine name and version fields to browsers, and adds the corresponding data to all main browsers (Chrome, Firefox, Safari, Opera, IE, and Edge, including their mobile counterparts). The data may not be 100% accurate for older versions of Opera, Safari, and Webview Android, due to a lack of credible sources.

This does not add engine versions for other Chromium-based browsers (UC Browser and QQ Browser) due to a) lack of information, and b) the possible answer of #3875.

Depends on #3874, #3876, #3882, and #3884 to be merged first. All have been merged.

Data Sources

General:
https://en.wikipedia.org/wiki/Comparison_of_browser_engines

Chrome:
https://en.wikipedia.org/wiki/Google_Chrome_version_history
https://en.wikipedia.org/wiki/Blink_(browser_engine)

Firefox:
https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Versions

Safari:
https://en.wikipedia.org/wiki/Safari_version_history
https://www.somegeekintn.com/blog/stuff/iosvers/
https://developers.whatismybrowser.com/useragents/explore/software_name/safari/

IE/Edge:
https://en.wikipedia.org/wiki/Internet_Explorer
https://en.wikipedia.org/wiki/Trident_(software)
https://en.wikipedia.org/wiki/Microsoft_Edge
https://en.wikipedia.org/wiki/EdgeHTML

Opera:
https://en.wikipedia.org/wiki/Presto_(browser_engine)
https://en.wikipedia.org/wiki/Blink_(browser_engine)
#1712 (Android)
https://androidapksfree.com/devapk/opera/ (Android)

Node.js:
https://nodejs.org/en/download/releases/

Samsung Internet:
https://gist.github.com/poshaughnessy/5718717a04db20a02e9fdb3fc16e2258
https://medium.com/samsung-internet-dev/hello-samsung-internet-8-2-beta-521e4b215fb3
https://medium.com/samsung-internet-dev/8-2-stable-release-is-out-the-door-122cba80b788

Webview Android:
https://developers.whatismybrowser.com/useragents/explore/software_name/android-browser
https://developer.chrome.com/multidevice/webview/overview

@queengooborg queengooborg added the data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. label Apr 13, 2019
@ddbeck ddbeck added the schema ⚙️ Isses or pull requests regarding the JSON schema files used in this project. label Apr 13, 2019
@queengooborg queengooborg removed the not ready ⛔ This is not yet ready to be merged. It's pending a decision, other PR, or a prerequisite action. label Apr 28, 2019
Copy link
Contributor

@jpmedley jpmedley left a comment

Choose a reason for hiding this comment

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

Everything looks right except that Chrome beta won't be out until later this week. It's expected Thursday afternoon, but could be as late as Friday. No approval for now.

@queengooborg
Copy link
Collaborator Author

This PR doesn’t set a release date for Chrome 75 beta, or really any browser, only adds an obvious engine number (Blink 75). The purpose of this PR is to add engines to the browsers to help with feature parity.

Copy link
Member

@Elchi3 Elchi3 left a comment

Choose a reason for hiding this comment

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

Amazing work! Thank you so much, @vinyldarkscratch 👍

Two observations:
I find it weird that Safari 11 and 11.1 are the same webkit versions. Same for 12 and 12.1. My feeling is that they must be different, but if you have a proof that they used the same, then I will accept this. (would be really strange as there are different features in these, right?)
Similar for Safari iOS. There are several versions with the same engine, but new features were introduced, so it must be a newer engine, too? The Safari/webkit stuff is confusing to me.

Trident had no version numbers before IE8, then it was Trident 4 for IE 8, Trident 5 for IE 9, and so on. See https://en.wikipedia.org/wiki/Trident_(software)#Release_history. We should change this, but no idea what to put for IE1-7. Maybe leave it out or explicitly say "n/a" or so?

I think at least the Trident versions need fixing, and maybe some more thoughts on the Safari/WebKit cases would be cool, but all in all this is close to be merged and it really is great work! Thanks so much for the research time you've invested here!

@Elchi3
Copy link
Member

Elchi3 commented May 6, 2019

Oh, and I think this PR shouldn't yet close #3705.

@queengooborg
Copy link
Collaborator Author

I agree with you on the Safari and WebKit versions, especially with the fact that Safari iOS 11.3 also had the same WebKit version as 12. It's weird, and doesn't follow semantic versioning. But what's weirder is that I have been able to confirm this was actually the case:

https://developers.whatismybrowser.com/useragents/parse/697853-safari-ios-iphone-webkit
https://developers.whatismybrowser.com/useragents/parse/746552-safari-ios-iphone-webkit
https://developers.whatismybrowser.com/useragents/parse/864604-safari-ios-ipad-webkit

Regarding Trident and IE, what I did with Opera before Presto was a thing is just add an engine, simply called "Opera", which matches the same version numbers as the browser. We can probably do that for IE as well, or like you said, leave it blank.

Lastly, I'm no longer closing that issue with this PR!

@Elchi3
Copy link
Member

Elchi3 commented May 6, 2019

Thanks for the links that confirm the Safari/WebKit versions. I can't test this myself due to no Apple devices at hand, but I think we can go with this for now as it seems correct (but weird).

Also thanks for the IE/Trident updates, this was an interesting history lesson. Leaving engines out for prior to IE8 seems like a good approach to me.

Lastly, I'm no longer closing that issue with this PR!

Awesome, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. schema ⚙️ Isses or pull requests regarding the JSON schema files used in this project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add engine version to browser data
5 participants