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

iOS Google search app detection #271

Closed
broggeri opened this issue Oct 6, 2017 · 1 comment
Closed

iOS Google search app detection #271

broggeri opened this issue Oct 6, 2017 · 1 comment

Comments

@broggeri
Copy link

broggeri commented Oct 6, 2017

The Google search app on iOS (https://itunes.apple.com/us/app/google/id284815942 ) behaves like a fully fledged browser. It appears its usage volume is comparable to Chrome for iOS, but it's currently being detected as 'Mobile Safari' .

Example user agents :

Google App version 36.0 on iPhone iOS 11.0.2 :
Mozilla/5.0 (iPhone; CPU iPhone OS 11_0_2 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) GSA/36.0.169645775 Mobile/15A421 Safari/604.1

Google App version 35.0 on iPad iOS 10.3.2:
Mozilla/5.0 (iPad; CPU OS 10_3_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) GSA/35.0.167640935 Mobile/14F8089 Safari/602.1

@broggeri
Copy link
Author

Hello,
I finally suffered enough from this to try an provide a patch :) .
It's my first regex contribution I would welcome feedback about where I put the regex in the file, and whether it's too strict, or too lax, ... I tried to keep a similar style to other iOS UA regex I could find in the file.

@elsigh elsigh closed this as completed in dc36598 Oct 18, 2018
elsigh added a commit that referenced this issue Oct 18, 2018
Fix #271: add Google user-agent on iOS
russellwhitaker added a commit to russellwhitaker/uap-core that referenced this issue Jun 19, 2019
* Fix Slack, HipChat, and a few android browsers.

Fix Slack Desktop Client detection on Windows and Mac.
Add support for HipChat on Mac and Windows.
Fix Macthon and Crosswalk support on Android.

* add Qwantify spider

* Modified Catchpoint regex to account for Catchpoint or Catchpoint bot

* Resolve conflicts

* [ua-parser#136] Fixing detection error for Lumia

* [ua-parser#233] fix for Edge 12

* Add support for Chrome Mobile WebView detection

* Missed a property during merge, added back now

* Add several popular RSS bots to regexes.yaml

* Added new relic pinger bot

* fixed some case on gionee device

* Fix version parsing for Facebook and Pinterest app

The patch number was wrongly captured.

* Added Pinterestbot to differentiate between the app and the bot

* Podcast catcher applications

* Add support for Box Drive, Sync, and Notes

* - removing node 0.12 as mocha discontinued support
- adding node v6.x and v8.x

* Parse Headless Chrome versions

The initial implementation of the Headless Chrome detection (ua-parser#228) didn't detect
versions of the headless version. This has been fixed.

A test for Ubuntu Chromium in headless mode was also added. I haven't made it
recognized as HeadlessChromium as it has HeadlessChrome in the user agent. It
might be worthwhile to check how a pure compiled from source Chromium behaves.
Nevertheless, this commit is still an improvement.

Ref ua-parser#228
Ref karma-runner/karma#2762

* Add a test for a bare Chrome 60 instance

* Add Evolution CardDav/CalDav user agent

* Add Roundcube CardDav plugin user agent

* Add DAVdroid

* Add DAVdroid F-Droid variant

* Add Nextcloud desktop sync client

* Add Nextcloud android app

* add test for applenews browser

* Add regex to detect AppleNews as WKWebView

* Fix test and add new case for iPhone

* Fix regexps and tests for recognizing windows majors better

* Point to reference implementation where there is replacements supported with minor

* Update package.json to point public repo

* Update patterns for IE compatibility mode

* iOS 10.3.x and 11.x recognition

* Update package.json

* Update package.json

* Add default regex to detect iOS for unknown versions

* Fixing yaml syntax in podcasting_user_agent_strings.yaml

Symfony's yaml parser choked on these three lines since they're missing the colon.

* Update regexes.yaml to include Tableau

* add test case for Tableau

* Update regexes.yaml

Add support for CFNetwork macOS Apps on macOS v. 10.13

* Update test_os.yaml

Added test

* Add support for OktaMobile

* add some more matching for RCA phones

* little fix

* Fix merge conflict

* Added support for Outlook >= 2.62.0 running on iOS

* Should account for Trident/8.0 - "Compatibility view of Win10 with Internet Explorer 11"

* Fix ESPN Radio podcast catcher regex

Make it more precise and compatible with Boost.Regex syntax as well.

* Add "Instagram" app

* Add "Flipboard" (iOS,Android) and "Onefootball" (Android) apps

* updated test cases for SznProhlizec; new family name

* Replace empty alternations by optional group

A popular regexp implementation of Rust does not allow empty
alternations.

* Add "Flipboard-Briefing" and tests

* Add ESPN Radio podcast tests to test_ua.yaml

* Add Waterfox/Basilisk Firefox variants

* Removed .project from .gitignore

* fix invalid indentation in yaml

* Add HTTP clients for Go, Scala, Rust (reqwest)

* Add clients to access AWS S3 (Simple Storage Service)

* Add cloud storage clients: https://cyberduck.io/,
https://rclone.org/ and http://s3browser.com/

* Add download clients lftp (https://lftp.yar.ru/),
Axel (https://github.com/axel-download-accelerator/axel),
aria2 (https://aria2.github.io/) and PycURL (http://pycurl.io/)

* Add variants of Linux OS sent via Wget

* Add Naver Yeti and Daum to Spiders regex

* Added OS and UserAgent parser for Salesforce UA on Android

* Add support for patch_minor when detecting Chrome.

* Replace empty alternations by optional group

A popular regexp implementation of Rust does not allow empty
alternations.

* Add Naver Yeti and Daum to Spiders regex

* add support for mac os detection when agent is macoutlook

* Add patch_minor to other Chrome test cases

* Update Android Regex to allow for single digit OS versions

The current Android 9 user agent is as follows
Mozilla/5.0 (Linux; Android 9; Pixel Build/PPP3.180510.008) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.81 Mobile Safari/537.36
This commit allows the code to parse 9 as a valid OS version.

* Added Apple Watch and HomePod devices

* Added tests for Apple Watch & HomePod

* Fixed test

* Fix ua-parser#326: add insomnia user-agent

* iOS CFNetwork recognition update

- 9.3.x
- 10.2.1
- 11.2.6
- 11.3
- 11.4.x
- 12

Signed-off-by: Vitaliy Khamin <[email protected]>

* Support WebView detection in Android KitKat to Lollipop

* Fix to identify MI devices

Dalvik/2.1.0 (Linux; U; Android 8.0.0; Mi A1 MIUI/V9.5.13.0.ODHMIFA)
Dalvik/2.1.0 (Linux; U; Android 5.0.2; Mi 4i MIUI/V8.1.7.0.LXIMIDI)

* Added Yahoo Mail Proxy to regexes.yaml

* Add test.

* Fix ua string in test

* Fix actual UA. Happy Monday

* Add support for Whale browser

* Fixed Google Pixel detection

Added tests

* Fix indenting in regexes.yaml

The additional spaces may cause IDEs (specifically IntelliJ in my case) to transform this into a tab character. As a result of this, Java can not properly parse the YAML file, and every look up throws the following exception `org.yaml.snakeyaml.scanner.ScannerException`.

By placing the comment on the expected level, parsing works as intended

* Add parser for Citrix Chrome app on Chrome OS

* Fix tests formatting and regex formatting

* Fix ua-parser#271: add Google user-agent on iOS

* Handle useragents that present Windows 10

* Added Snapchat detection

* Detect Facebook without FBAV version

Added test

* Fixed typo

* Added support for Facebook Messenger

* update salesforce regex

handle single digit android versions

* update salesforce tests

test single digit android versions

* split windows 8.1 version

* Add @commenthol to maintainers

* Update regexes.yaml

Lots of missing escapes on `.`s; I only did a few of them.

* safe regexes

* Ask users to test for ReDoS in CONTRIBUTING.md

* Safeify FB_IAB

* fix os for salesforce agent

* add regexes tests to npm test

* uap-ref-impl needs a new version published on npm

* remove unnecessary group

* remove node v4+v6, adding v10

incompatible module dependencies

* npmignore

* 0.6.0

* Adding tests and rules for PTST Webpagetest.org spiders

* Add LINE Browser

* User agent detection: ViaFree app

* OS detection: tvOS in apps

* Test cases

* Fix ReDoS vulnerability

* 0.6.1

* Fix tvOS regex

* 0.6.2

* fix: prevent backtracking in crawler, bot regexes

* 0.6.3

* Formatting regex for proper extraction and tests

* Setting expected value for device model properly

* Parse iPhone, iPad, and iPod as iOS devices

There is already a parser that uses this same regex for detecting
Mobile Safari Webviews, which we should also identify as iOS devices.

* Fixed regexes matching some user agent on windows in order avoid embedding the version number into the family string

* 0.6.4

* Add UA for GSA ("Google Search App") on Android, plus tests

* Fixes as per
ua-parser#372 (comment)

Also removed the example UA strings as they are in the tests

* Added Skype for Business detection

* Adding Datanyze UA and tests

* Removing device_replacement from UA parser

* Tidying up UA parser and adding test for OS

* Fixing user_agent_parsers replacements

* add MiuiBrowser and Mint Browser regexes

* 0.6.5

* Add Microsoft Office

* Add Ghost User-Agent String and tests

* Handling of cases where PTST doesn't have minor version

* device regexp simplification

* Add Sailfish OS and Sailfish Browser (ua-parser#391)

* Fixes case where Palo Alto identifies with multiple versions of Windows.

* 0.6.6

* 0.6.7

* Added backers and sponsors on the README

* Add Sumsung SC-01F

* New browser versions remove OS build info from user agent
https://www.chromestatus.com/feature/4558585463832576

* added Edge with Chromium UA and test

* fix test

* support Apple Watch devices

* Add regex for Xiaomi MIX, MIX 2 and MIX 2S.

http://www.fynas.com/ua/search?d=&b=MIUI%E6%B5%8F%E8%A7%88%E5%99%A8&k=MIX&page=1

* adding patch and minor patch to edge. instead of adding a regex for edge with crome modifued the existing one

* fixing tests

* formatting

* Add regex for chrome browser in Samsung Android phones.

native browser in Samsung device is always ok.
Mozilla/5.0 (Linux; Android 8.0.0; SAMSUNG SM-G9500 Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.3 Chrome/67.0.3396.87 Mobile Safari/537.36

But chrome browser was parsed to Generic SmartPhone, here's the UA:
Mozilla/5.0 (Linux; Android 8.0.0; SM-G9500) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36

* Moved Facebook rules before "Bot general matcher"

We noticed UAs from Orange that contained OrangeBotswana that were caught
by the bot filter.

* remove prepended 'User agent:' from User-Agent in test_ua.yaml

* 0.6.8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants