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

Remove Safari iOS 3.1 #11173

Merged
merged 4 commits into from
Jul 20, 2021
Merged

Remove Safari iOS 3.1 #11173

merged 4 commits into from
Jul 20, 2021

Conversation

queengooborg
Copy link
Contributor

@queengooborg queengooborg commented Jun 21, 2021

This PR removes Safari iOS 3.1 from the browser data, and changes everything set to Safari iOS 3.1 to mirrored data from Safari Desktop. Safari iOS 3.1's WebKit version is the exact same as iOS 3.0's, as confirmed by querying WhatIsMyBrowser.

Using the Safari 3 emulator in BrowserStack, I've spot-checked a few entries to ensure this methodology is correct. I have also found that all of the data for Safari iOS 3.1 came from the initial wiki tables, and most entries are accompanied by Safari Desktop set to 3.1, which further leads me to believe that Safari iOS 3.1 was mistakenly added.

Blocked by #11188.

@github-actions github-actions bot added 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. data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS data:html Compat data for HTML elements. https://developer.mozilla.org/docs/Web/HTML data:svg Compat data for SVG features. https://developer.mozilla.org/docs/Web/SVG labels Jun 21, 2021
@foolip
Copy link
Contributor

foolip commented Jun 21, 2021

confirmed by querying WhatIsMyBrowser

How can I do this? Did you visit https://www.whatismybrowser.com/ with iOS 3.0 and 3.1, or is there a way to query their database?

mirrored data from Safari Desktop

Did you use the mirroring script? Since the mapping before Safari / iOS 9 is not as trivial, I'm skeptical of any existing code for this :)

@foolip
Copy link
Contributor

foolip commented Jun 21, 2021

I've looked for UA strings and came up with this:

https://developers.whatismybrowser.com/useragents/parse/841safari-ios-iphone-webkit has:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16

https://user-agents.net/s/o05iLj has:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16; Ipad

https://thadafinser.github.io/UserAgentParserComparison/v5/user-agent-detail/fb/5e/fb5ef5de-9363-45a6-b364-585feccd2cab.html has:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1 like Mac OS X; HW iPhone1,1; de_de) AppleWebKit/525.18.1 (KHTML, like Gecko) (AdMob-iSDK-20090617)

https://user-agents.net/s/rxAjIRSBrt has:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1 like Mac OS X; ru-ru) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7C144 Safari/528.16

There's some weird tokens in some of those strings, but 528.18 is in all of them.

And it seems reasonable to say that Safari 4 ≈ iOS 3. But only as an approximation, the WebKit versions don't match.

@foolip
Copy link
Contributor

foolip commented Jun 21, 2021

Let's also consider the UA string of iOS 3.2 from https://stackoverflow.com/a/5255476:

Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

That 4.0.4 probably means Safari 4, and 531.21.10 also appears in https://en.wikipedia.org/wiki/Safari_version_history#Safari_4 so it all makes sense. It does however make me question whether we should consider iOS 3.2 significant.

@foolip
Copy link
Contributor

foolip commented Jun 21, 2021

If we trust our safari.json and safari_ios.json the sequence of releases around this time was:

  • 2009-06-08: Safari 4 using WebKit 530.17
  • 2009-06-17: iOS 3 using WebKit 528.18
  • 2010-04-03: iOS 3.2 using WebKit 531.21

If we throw Wikipedia into the mix we could add:

  • 2009-11-11: Safari 4.0.4 using WebKit 531.21.10
  • 2010-03-11: Safari 4.0.5 using WebKit 531.22.7

I don't know how the branching was done, but if we just consider the WebKit version numbers and the UA strings (above) it seems like Safari 4 maps to either iOS 3 or 3.2. It seems unlikely to me that there's much difference between the two since the same differences on desktop were just treated as patch versions.

@foolip
Copy link
Contributor

foolip commented Jun 21, 2021

To review this, it's also necessary to understand (believe) the Safari 3.1 → iOS 2 mapping. Wikipedia supports the 525.13 WebKit version we have in safari.json and the UA string for iOS 2 seems to be:

https://www.w3.org/2007/03/mth/9e573d0661a52f38282af0a625fd32fc.html has:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20

https://developers.whatismybrowser.com/useragents/parse/829764safari-ios-ipod-webkit has:

Mozilla/5.0 (iPod; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20

Note the 3.1.1 there, which is the Safari version. So that all supports the mapping Safari 3.1 → iOS 2.

Copy link
Contributor

@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 trust the cases that are now 4+3 or 3.1+2 and have commented on all cases that aren't either pair. With those checked I think this change is good to go.

css/at-rules/media.json Outdated Show resolved Hide resolved
css/properties/empty-cells.json Show resolved Hide resolved
css/properties/outline.json Show resolved Hide resolved
css/properties/unicode-bidi.json Show resolved Hide resolved
html/elements/input/email.json Outdated Show resolved Hide resolved
@foolip foolip mentioned this pull request Jun 21, 2021
@queengooborg queengooborg added the not ready This is not yet ready to be merged. It's pending a decision, other PR, or a prerequisite action. label Jun 22, 2021
@queengooborg queengooborg removed data:svg Compat data for SVG features. https://developer.mozilla.org/docs/Web/SVG not ready This is not yet ready to be merged. It's pending a decision, other PR, or a prerequisite action. labels Jun 24, 2021
foolip added a commit to foolip/browser-compat-data that referenced this pull request Jun 29, 2021
@foolip
Copy link
Contributor

foolip commented Jul 19, 2021

@vinyldarkscratch what's this blocked on now? Do I just need to review again?

@queengooborg
Copy link
Contributor Author

It just needs a re-review now, yep!

Copy link
Contributor

@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 top-to-bottom again without finding any irregularities to poke at.

@foolip foolip merged commit 957a9ac into mdn:main Jul 20, 2021
@queengooborg queengooborg deleted the browsers/safari-ios/3.1 branch July 20, 2021 12:53
ddbeck added a commit to ddbeck/browser-compat-data that referenced this pull request Jul 22, 2021
ddbeck added a commit to ddbeck/browser-compat-data that referenced this pull request Jul 22, 2021
ddbeck added a commit that referenced this pull request Jul 22, 2021
* Bump version to v3.3.12

* Add release note for #11661

* Add release notes for
#11173 and #11175

* Add release note for #11534

* Add release note for #11544

* Add release note for #11551

* Add release note for #11555

* Add release note for #11556

* Add release note for #11557

* Add release note for #11633

* Add release note for #11636

* Add release note for #11637

* Add release note for #11530

* Add release stats and date

* Consolidate Safari for iOS version consolidation notes

* Format PR URL
foolip added a commit to foolip/browser-compat-data that referenced this pull request Jan 3, 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 data:browsers Data about browsers (versions, release dates, etc). This data is used for validation. data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS data:html Compat data for HTML elements. https://developer.mozilla.org/docs/Web/HTML
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants