Fix broken iOS UA sniff that identified iOS as macOS #1365
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
UA sniffing stops at the first match when trying to determine the client's OS. Since the macOS sniff always ran before the iOS sniff and matched the string "mac os x", which is also present in iOS Safari's user agent string,
IS_MAC
was alwaystrue
for iOS Safari andIS_IOS
was alwaysfalse
.The iOS sniff now runs before the macOS sniff, which prevents false positives. Existing uses of
IS_MAC
that should also apply to iOS have been updated to check forIS_MAC || IS_IOS
.This also re-fixes #1176 and #1177, which regressed when a recent change added
IS_IOS
checks that inadvertently prevented code from running on iOS.