
UserAgents.GoogleChromeFrozen.yaml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yauaa Show documentation
Show all versions of yauaa Show documentation
A parsing an analyzing library to get information from a useragent string.
#
# Yet Another UserAgent Analyzer
# Copyright (C) 2013-2024 Niels Basjes
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
config:
# Chrome is working on freezing the User Agent string
# https://www.chromestatus.com/feature/5704553745874944
# https://wicg.github.io/ua-client-hints/
# https://github.com/WICG/ua-client-hints
# This commit shows what it will probably look like
# https://chromium.googlesource.com/chromium/src.git/+/ac24e578a3694c8f4c6c35ee3b7a8d046d686e67%5E%21/
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '10.0'
OperatingSystemVersionMajor : '10'
OperatingSystemNameVersion : 'Windows 10.0'
OperatingSystemNameVersionMajor : 'Windows 10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '75.0'
LayoutEngineVersionMajor : '75'
LayoutEngineNameVersion : 'Blink 75.0'
LayoutEngineNameVersionMajor : 'Blink 75'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '75.0.3764.0'
AgentVersionMajor : '75'
AgentNameVersion : 'Chrome 75.0.3764.0'
AgentNameVersionMajor : 'Chrome 75'
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '75.0'
LayoutEngineVersionMajor : '75'
LayoutEngineNameVersion : 'Blink 75.0'
LayoutEngineNameVersionMajor : 'Blink 75'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '75.0.3764.0'
AgentVersionMajor : '75'
AgentNameVersion : 'Chrome 75.0.3764.0'
AgentNameVersionMajor : 'Chrome 75'
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3764.0 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '75.0'
LayoutEngineVersionMajor : '75'
LayoutEngineNameVersion : 'Blink 75.0'
LayoutEngineNameVersionMajor : 'Blink 75'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '75.0.3764.0'
AgentVersionMajor : '75'
AgentNameVersion : 'Chrome 75.0.3764.0'
AgentNameVersionMajor : 'Chrome 75'
# Starting with Chrome 83 a special feature can be enabled
# chrome://flags/#freeze-user-agent ( Edge has the same under edge://flags/#freeze-user-agent )
# Freeze User-Agent request header
# Set the User-Agent request header to a static string that conforms to
# the current User-Agent string format but only reveals desktop vs Android
# and if the 'mobile' flag is set
# – Mac, Windows, Linux, Chrome OS, Android
# The actual code was found here:
# https://github.com/chromium/chromium/blob/master/content/public/common/user_agent.h#L17
# namespace frozen_user_agent_strings {
#
# const char kDesktop[] =
# "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, "
# "like Gecko) Chrome/%s.0.0.0 Safari/537.36";
# const char kAndroid[] =
# "Mozilla/5.0 (Linux; Android 9; Unspecified Device) "
# "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 "
# "Safari/537.36";
# const char kAndroidMobile[] =
# "Mozilla/5.0 (Linux; Android 9; Unspecified Device) "
# "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 Mobile "
# "Safari/537.36";
#
# } // namespace frozen_user_agent_strings
# The list of major Chrome versions where "Windows" in the frozen context really meant "Desktop".
# Based upon the Chromium sources and related tags
# https://github.com/chromium/chromium/blob/master/content/public/common/user_agent.h
# Introduced:
# commit ac24e578a3694c8f4c6c35ee3b7a8d046d686e67
# CommitDate: Tue Apr 30 19:47:02 2019 +0000
# Add feature to freeze user agent string
# $ git name-rev --tags --name-only ac24e578a3694c8f4c6c35ee3b7a8d046d686e67
# 76.0.3783.0~468
# Removed:
# commit cf2393773c33440f01f45693944aa18c1510c2e7
# CommitDate: Tue May 25 16:35:41 2021 +0000
# Update frozen UA strings.
# $ git name-rev --tags --name-only cf2393773c33440f01f45693944aa18c1510c2e7
# 93.0.4523.0~207
- set:
name: 'ChromeFrozenMajorVersionsToWindows'
values:
- '76'
- '77'
- '78'
- '79'
- '80'
- '81'
- '82'
- '83'
- '84'
- '85'
- '86'
- '87'
- '88'
- '89'
- '90'
- '91'
- '92'
# The first few tags of Chrome 93 still had the bad one, but most did not.
# Between the first '93' and the fix was 1 day difference.
# Desktop Chrome/Edge: If the frozen agent is detected the Operating system is nonsense
- matcher:
variable:
- 'ChromeVersion :agent.(3)product.version'
- 'ChromeMajorVersion :@ChromeVersion[1]'
require:
- 'agent.(3)product.name="Chrome"'
- '@ChromeMajorVersion?ChromeFrozenMajorVersionsToWindows'
- 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
- '@ChromeVersion[2-]="0.0.0"'
extract:
- 'OperatingSystemName : 200 : "<<>>"'
- 'OperatingSystemVersion : 200 : "<<>>"'
- 'LayoutEngineClass : 3000 : "Browser"'
- 'LayoutEngineName : 3000 : "Blink"'
- 'LayoutEngineVersion : 3000 : @ChromeMajorVersion' # No decimals here as it is useless.
- 'AgentVersion : 2050 : @ChromeMajorVersion'
- matcher:
variable:
- 'ChromeVersion :agent.(3)product.version'
- 'ChromeMajorVersion :@ChromeVersion[1]'
require:
- 'agent.(3)product.name="Chrome"'
- '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
- 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
- '@ChromeVersion[2-]="0.0.0"'
extract:
# IF NOT A MIX VERSION, WE DO NOT OVERRIDE THE OS NAME
- 'LayoutEngineClass : 3000 : "Browser"'
- 'LayoutEngineName : 3000 : "Blink"'
- 'LayoutEngineVersion : 3000 : @ChromeMajorVersion' # No decimals here as it is useless.
- 'AgentVersion : 2050 : @ChromeMajorVersion'
# Android: If the frozen agent is detected the Operating system Version is nonsense
- matcher:
require:
- 'agent.(1)product="Mozilla/5.0 (Linux; Android 9; Unspecified Device)"'
extract:
- 'OperatingSystemVersion : 1000 : "<<>>"'
# https://www.chromium.org/updates/ua-reduction
# Quote: Also note that the macOS platform version was already capped to 10_15_7 in Chrome 90 for site compatibility reasons.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1175225
# So between 90 and the completion of the rollout we must override the MacOs version with 'Unknown'.
# So that starts with 90 and the rollout to desktop is now indicated for 107, so we do 90 - 119.
- set:
name: 'ChromeFrozenMacOsVersion'
values:
- '90'
- '91'
- '92'
- '93'
- '94'
- '95'
- '96'
- '97'
- '98'
- '99'
- '100'
- '101'
- '102'
- '103'
- '104'
- '105'
- '106'
- '107'
- '108'
- '109'
- '110'
- '111'
- '112'
- '113'
- '114'
- '115'
- '116'
- '117'
- '118'
- '119'
- matcher:
require:
- 'agent.(1)product.(1)comments="(Macintosh; Intel Mac OS X 10_15_7)"'
- 'agent.(3)product.name="Chrome"'
- 'agent.(3)product.version[1]?ChromeFrozenMacOsVersion'
extract:
- 'OperatingSystemName : 500 : "Mac OS"'
- 'OperatingSystemVersion : 500 : ">=10.15.7"'
- 'OperatingSystemVersionMajor : 500 : ">=10.15"'
# ======================================
# Chrome 83 on Windows 10
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '10.0'
OperatingSystemVersionMajor : '10'
OperatingSystemNameVersion : 'Windows 10.0'
OperatingSystemNameVersionMajor : 'Windows 10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.97'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.97'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Chrome 83 on Ubuntu Linux
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Linux Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Linux'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Linux ??'
OperatingSystemNameVersionMajor : 'Linux ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.97'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.97'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Chrome 83 on Mac OS X
- test:
input:
user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Apple Macintosh'
DeviceBrand : 'Apple'
DeviceCpu : 'Intel'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Mac OS'
OperatingSystemVersion : '10.15.5'
OperatingSystemVersionMajor : '10.15'
OperatingSystemNameVersion : 'Mac OS 10.15.5'
OperatingSystemNameVersionMajor : 'Mac OS 10.15'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.97'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.97'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# On Windows 10, Ubuntu Linux and Mac the FROZEN UserAgent is on all those systems identical
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Unknown' # We do NOT know it is Windows 10!
OperatingSystemVersion : '??' # We do NOT know it is Windows 10!
OperatingSystemVersionMajor : '??' # We do NOT know it is Windows 10!
OperatingSystemNameVersion : 'Unknown ??' # We do NOT know it is Windows 10!
OperatingSystemNameVersionMajor : 'Unknown ??' # We do NOT know it is Windows 10!
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83'
AgentNameVersionMajor : 'Chrome 83'
# Same but now on Chrome 84.0.4147.89
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Unknown'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Unknown ??'
OperatingSystemNameVersionMajor : 'Unknown ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '84'
LayoutEngineVersionMajor : '84'
LayoutEngineNameVersion : 'Blink 84'
LayoutEngineNameVersionMajor : 'Blink 84'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '84'
AgentVersionMajor : '84'
AgentNameVersion : 'Chrome 84'
AgentNameVersionMajor : 'Chrome 84'
# ======================================
# Chrome 83 on Motorola/Google Nexus 6, Android 7.1.1
# Phone, Android 7.1.1, Chrome 83, Default UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Google Nexus 6'
DeviceBrand : 'Google'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '7.1.1'
OperatingSystemVersionMajor : '7'
OperatingSystemNameVersion : 'Android 7.1.1'
OperatingSystemNameVersionMajor : 'Android 7'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.106'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.106'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Chrome 83 on Samsung Galaxy S8 Android 9
# Phone, Android 9, Chrome 83, Default UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-G950F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Samsung SM-G950F'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.101'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.101'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Chrome 83 on Nokia 7.2 Android 10
# Phone, Android 10, Chrome 83, Default UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 10; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Nokia 7.2'
DeviceBrand : 'Nokia'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '10'
OperatingSystemVersionMajor : '10'
OperatingSystemNameVersion : 'Android 10'
OperatingSystemNameVersionMajor : 'Android 10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.106'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.106'
AgentNameVersionMajor : 'Chrome 83'
# Phone, Android 7.1.1, Chrome 83, FROZEN UserAgent
# Phone, Android 9, Chrome 83, FROZEN UserAgent
# Phone, Android 10, Chrome 83, FROZEN UserAgent
# --
# Notable changes
# - Chrome version loses minor versions
# - Device: Unspecified Device
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Chrome 83 on Samsung Galaxy Tab S2 Tablet, Android 7.0
# Tablet, Android 7.0, Chrome 83, Default UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 7.0; SM-T710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Samsung SM-T710'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '7.0'
OperatingSystemVersionMajor : '7'
OperatingSystemNameVersion : 'Android 7.0'
OperatingSystemNameVersionMajor : 'Android 7'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.101'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.101'
AgentNameVersionMajor : 'Chrome 83'
# Tablet, Android 7.0, Chrome 83, FROZEN UserAgent
# Tablet, Android 11, Chrome 83, FROZEN UserAgent (Android Studio Emulator)
# Notable changes
# - Chrome version loses minor versions
# - Incorrect Android version
# - Device: Unspecified Device
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83'
AgentNameVersionMajor : 'Chrome 83'
# ======================================
# Edge 83 on Windows 10
# Desktop, Windows 10, Edge 83, Default UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36 Edg/83.0.478.45'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '10.0'
OperatingSystemVersionMajor : '10'
OperatingSystemNameVersion : 'Windows 10.0'
OperatingSystemNameVersionMajor : 'Windows 10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '83.0.478.45'
AgentVersionMajor : '83'
AgentNameVersion : 'Edge 83.0.478.45'
AgentNameVersionMajor : 'Edge 83'
# Desktop, Windows 10, Edge 83, FROZEN UserAgent
# --
# Notable changes
# - Chrome version loses minor versions
# - Edge 83 --> 75 -- Actually the version in the Chrome part becomes more reliable
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.0.0 Safari/537.36 Edg/75.0.131.0'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Unknown' # We do NOT know it is Windows 10!
OperatingSystemVersion : '??' # We do NOT know it is Windows 10!
OperatingSystemVersionMajor : '??' # We do NOT know it is Windows 10!
OperatingSystemNameVersion : 'Unknown ??' # We do NOT know it is Windows 10!
OperatingSystemNameVersionMajor : 'Unknown ??' # We do NOT know it is Windows 10!
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '83'
AgentVersionMajor : '83'
AgentNameVersion : 'Edge 83'
AgentNameVersionMajor : 'Edge 83'
# Desktop, Linux, Edge 88, FROZEN UserAgent
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.0.0 Safari/537.36 Edg/75.0.131.0'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Unknown' # We do NOT know it is Windows 10!
OperatingSystemVersion : '??' # We do NOT know it is Windows 10!
OperatingSystemVersionMajor : '??' # We do NOT know it is Windows 10!
OperatingSystemNameVersion : 'Unknown ??' # We do NOT know it is Windows 10!
OperatingSystemNameVersionMajor : 'Unknown ??' # We do NOT know it is Windows 10!
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '88'
LayoutEngineVersionMajor : '88'
LayoutEngineNameVersion : 'Blink 88'
LayoutEngineNameVersionMajor : 'Blink 88'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '88'
AgentVersionMajor : '88'
AgentNameVersion : 'Edge 88'
AgentNameVersionMajor : 'Edge 88'
# Tablet, Android 11, Chrome 83, Default UserAgent (Android Studio Emulator)
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 11; sdk_gphone_x86_arm) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.44 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Google SDK Gphone X86 ARM'
DeviceBrand : 'Google'
DeviceCpu : 'x86'
DeviceCpuBits : '32'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '11'
OperatingSystemVersionMajor : '11'
OperatingSystemNameVersion : 'Android 11'
OperatingSystemNameVersionMajor : 'Android 11'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.44'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.44'
AgentNameVersionMajor : 'Chrome 83'
# Tablet, Android 9, Chrome 83, Default UserAgent (Samsung Galaxy Tab S5e)
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T720) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.101 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Samsung SM-T720'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '83.0'
LayoutEngineVersionMajor : '83'
LayoutEngineNameVersion : 'Blink 83.0'
LayoutEngineNameVersionMajor : 'Blink 83'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '83.0.4103.101'
AgentVersionMajor : '83'
AgentNameVersion : 'Chrome 83.0.4103.101'
AgentNameVersionMajor : 'Chrome 83'
# ===============================================================
# 2021-10-21 https://www.chromium.org/updates/ua-reduction
# Reduced User Agent String Reference
# ---------------------------------------------------------------
# Unified Format
# The unified format that covers all platforms post-UA Reduction looks like so:
# Mozilla/5.0 () AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0 Safari/537.36
# Desktop
# Mozilla/5.0 () AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0 Safari/537.36
# Mobile and Tablet
# Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/.0.0.0 Safari/537.36
# -> “Mobile” / “” (empty string, used by Tablets and Desktop)
#
#The possible desktop values* are:
# Windows NT 10.0; Win64; x64
# Macintosh; Intel Mac OS X 10_15_7
# X11; Linux x86_64
# X11; CrOS x86_64
#
#The possible mobile values* are:
# Linux; Android 10; K
#
#
#*Note that these strings are literal values; they will not update even if a user is on an updated operating system or device.
# ---------------------------------------------------------------------
# From: https://github.com/chromium/chromium/blob/117.0.5911.1/content/common/user_agent.cc#L63
# const char kFrozenUserAgentTemplate[] =
# "Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 "
##if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
# "%s"
##endif
# "Safari/537.36";
#
# std::string GetUnifiedPlatform() {
# #if BUILDFLAG(IS_ANDROID)
# return "Linux; Android 10; K";
# #elif BUILDFLAG(IS_CHROMEOS)
# return "X11; CrOS x86_64 14541.0.0";
# #elif BUILDFLAG(IS_MAC)
# return "Macintosh; Intel Mac OS X 10_15_7";
# #elif BUILDFLAG(IS_WIN)
# return "Windows NT 10.0; Win64; x64";
# #elif BUILDFLAG(IS_FUCHSIA)
# return "Fuchsia";
# #elif BUILDFLAG(IS_LINUX)
# return "X11; Linux x86_64";
# #elif BUILDFLAG(IS_IOS)
# if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET) {
# return "iPad; CPU iPad OS 14_0 like Mac OS X";
# }
# return "iPhone; CPU iPhone OS 14_0 like Mac OS X";
# #else
# #error Unsupported platform
# #endif
# }
# ---------------------------------------------------------------------
# In Phase 4 we change the token to “0.0.0”.
# In Phase 5 we change the and tokens from their platform-defined values to the relevant token value (which will never change).
# In Phase 6, we change the token to “K” and change the token to a static “10” string.
- lookup:
name: 'ChromeReducedUnifiedPlatform'
map:
# https://chromium.googlesource.com/chromium/src/+/refs/heads/main/content/public/common/user_agent.h#18
# namespace frozen_user_agent_strings {
# const char kDesktop[] =
# "Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, "
# "like Gecko) Chrome/%s.0.0.0 Safari/537.36";
# const char kAndroid[] =
# "Mozilla/5.0 (%s) "
# "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 %s"
# "Safari/537.36";
# const char kUnifiedPlatformAndroid[] = "Linux; Android 10; K";
# const char kUnifiedPlatformCrOS[] = "X11; CrOS x86_64 14541.0.0";
# const char kUnifiedPlatformLinux[] = "X11; Linux x86_64";
# const char kUnifiedPlatformMacOS[] = "Macintosh; Intel Mac OS X 10_15_7";
# const char kUnifiedPlatformWindows[] = "Windows NT 10.0; Win64; x64";
# } // namespace frozen_user_agent_strings
# Output = DeviceClass | DeviceName | DeviceBrand | OperatingSystemClass | OperatingSystemName | OSVersion | OSMajorVersion| OSNameVersion | OSNameMajorVersion
'Mozilla/5.0 (Linux; Android 10; K)' : 'Mobile|Android Mobile|<<>>|Mobile|Android|<<>>|<<>>|Android ??|Android ??'
# 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0)' : 'Desktop|Chromebook|<<>>|Desktop|Chrome OS|<<>>|<<>>|Chrome OS ??|Chrome OS ??'
'Mozilla/5.0 (Windows NT 10.0; Win64; x64)' : 'Desktop|Desktop|<<>>|Desktop|Windows NT|<<>>|<<>>|Windows NT ??|Windows NT ??'
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)' : 'Desktop|Macintosh|Apple|Desktop|Mac OS|>=10.15.7|>=10.15|Mac OS >=10.15.7|Mac OS >=10.15'
'Mozilla/5.0 (Fuchsia)' : 'Mobile|Fuchsia Mobile|<<>>|Mobile|Fuchsia|<<>>|<<>>|Fuchsia ??|Fuchsia ??'
'Mozilla/5.0 (X11; Linux x86_64)' : 'Desktop|Linux Desktop|<<>>|Desktop|Linux|<<>>|<<>>|Linux ??|Linux ??'
'Mozilla/5.0 (iPad; CPU iPad OS 14_0 like Mac OS X)' : 'Tablet|iPad|Apple|Mobile|iOS|<<>>|<<>>|iOS ??|iOS ??'
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)' : 'Phone|iPhone|Apple|Mobile|iOS|<<>>|<<>>|iOS ??|iOS ??'
- set:
name: 'ChromeReducedDeviceCompat'
values:
- 'Safari'
- 'Mobile Safari'
- matcher:
variable:
- 'UnifiedPlatform :LookUp[ChromeReducedUnifiedPlatform;agent.(1)product]'
- 'ChromeProduct :agent.(3-4)product.name="Chrome"^'
- 'ChromeVersion :@ChromeProduct.version'
- 'ChromeMajorVersion :@ChromeVersion[1]'
require:
- 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
- '@ChromeVersion[2-]="0.0.0"'
- '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
- '@ChromeProduct>.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
- 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
- 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
extract:
- 'DeviceClass : 500 :@UnifiedPlatform[[1]]'
- 'DeviceName : 400001 :@UnifiedPlatform[[2]]'
- 'DeviceBrand : 50 :@UnifiedPlatform[[3]]'
- 'OperatingSystemClass : 400001 :@UnifiedPlatform[[4]]'
- 'OperatingSystemName : 400001 :@UnifiedPlatform[[5]]'
- 'OperatingSystemVersion : 400001 :@UnifiedPlatform[[6]]'
- 'OperatingSystemVersionMajor : 400001 :@UnifiedPlatform[[7]]'
- 'OperatingSystemNameVersion : 400001 :@UnifiedPlatform[[8]]'
- 'OperatingSystemNameVersionMajor : 400001 :@UnifiedPlatform[[9]]'
- 'OperatingSystemVersionBuild : 400001 :"<<>>"'
# Chrome OS specific:
- matcher:
variable:
- 'ChromeVersion :agent.(3)product.version'
- 'ChromeMajorVersion :@ChromeVersion[1]'
require:
- 'agent.(1)product="Mozilla/5.0 (X11; CrOS x86_64 14541.0.0)"'
- 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
- 'agent.(3)product.name="Chrome"'
- '@ChromeVersion[2-]="0.0.0"'
- '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
- 'agent.(4)product.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
- 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
- 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
extract:
- 'DeviceClass : 500 :"Desktop"'
- 'DeviceName : 400002 :"Chromebook"'
- 'DeviceBrand : 400002 :"<<>>"'
- 'OperatingSystemClass : 400002 :"Desktop"'
- 'OperatingSystemName : 400002 :"Chrome OS"'
- 'OperatingSystemVersion : 400002 :@ChromeMajorVersion' # Only the major version is valid
- 'OperatingSystemVersionBuild : 400002 :"<<>>"'
- 'OperatingSystemVersionMajor : 400002 :@ChromeMajorVersion'
- 'OperatingSystemNameVersion : 400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
- 'OperatingSystemNameVersionMajor : 400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
- matcher:
variable:
- 'ChromeVersion :agent.(3)product.version'
- 'ChromeMajorVersion :@ChromeVersion[1]'
require:
- 'agent.(1)product="Mozilla/5.0 (X11; CrOS x86_64)"'
- 'agent.(2)product="AppleWebKit/537.36 (KHTML, like Gecko)"'
- 'agent.(3)product.name="Chrome"'
- '@ChromeVersion[2-]="0.0.0"'
- '@ChromeMajorVersion!?ChromeFrozenMajorVersionsToWindows'
- 'agent.(4)product.name?ChromeReducedDeviceCompat' # -> Safari or Mobile Safari
- 'IsNull[agent.product.name="Version"]' # Ignore WebViews which can contain Chrome/??.0.0.0
- 'IsNull[agent.product.name="Edg"]' # Edge still used 6.1 on Windows 7
extract:
- 'DeviceClass : 500 :"Desktop"'
- 'DeviceName : 400002 :"Chromebook"'
- 'DeviceBrand : 400002 :"<<>>"'
- 'OperatingSystemClass : 400002 :"Desktop"'
- 'OperatingSystemName : 400002 :"Chrome OS"'
- 'OperatingSystemVersion : 400002 :@ChromeMajorVersion' # Only the major version is valid
- 'OperatingSystemVersionBuild : 400002 :"<<>>"'
- 'OperatingSystemVersionMajor : 400002 :@ChromeMajorVersion'
- 'OperatingSystemNameVersion : 400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
- 'OperatingSystemNameVersionMajor : 400002 :Concat["Chrome OS ";@ChromeMajorVersion]'
# ============================================
# Desktop (user on Windows 8.1, for example)
# Phase 3 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '8.1'
OperatingSystemVersionMajor : '8'
OperatingSystemNameVersion : 'Windows 8.1'
OperatingSystemNameVersionMajor : 'Windows 8'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93.0'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93.0'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93.0.1234.56'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93.0.1234.56'
AgentNameVersionMajor : 'Chrome 93'
# Phase 4 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '8.1'
OperatingSystemVersionMajor : '8'
OperatingSystemNameVersion : 'Windows 8.1'
OperatingSystemNameVersionMajor : 'Windows 8'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# Phase 5 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Windows NT ??'
OperatingSystemNameVersionMajor : 'Windows NT ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# Phase 6 UA
# (No changes for Desktop UAs from Phase 5)
# ============================================
# Mobile (user on Samsung Galaxy, for example)
# Phase 3 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Samsung SM-A205U'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93.0'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93.0'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93.0.1234.56'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93.0.1234.56'
AgentNameVersionMajor : 'Chrome 93'
# Phase 4 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Samsung SM-A205U'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# Phase 5 UA
# (No changes for Mobile UAs in Phase 5)
# Phase 6 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# ============================================
# Tablet (user on Samsung Galaxy, for example)
# Phase 3 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T810) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.1234.56 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Samsung SM-T810'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93.0'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93.0'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93.0.1234.56'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93.0.1234.56'
AgentNameVersionMajor : 'Chrome 93'
# Phase 4 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 9; SM-T810) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Samsung SM-T810'
DeviceBrand : 'Samsung'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '9'
OperatingSystemVersionMajor : '9'
OperatingSystemNameVersion : 'Android 9'
OperatingSystemNameVersionMajor : 'Android 9'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# Phase 5 UA
# (No changes for Tablet UAs in Phase 5)
# Phase 6 UA
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Tablet'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Chrome 93'
AgentNameVersionMajor : 'Chrome 93'
# =============================================================================
# Ubuntu, Chrome 94, Normal
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Linux Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Linux'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Linux ??'
OperatingSystemNameVersionMajor : 'Linux ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '94.0'
LayoutEngineVersionMajor : '94'
LayoutEngineNameVersion : 'Blink 94.0'
LayoutEngineNameVersionMajor : 'Blink 94'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '94.0.4606.81'
AgentVersionMajor : '94'
AgentNameVersion : 'Chrome 94.0.4606.81'
AgentNameVersionMajor : 'Chrome 94'
# Ubuntu, Chrome 94, FROZEN
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Linux Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Linux'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Linux ??'
OperatingSystemNameVersionMajor : 'Linux ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '94'
LayoutEngineVersionMajor : '94'
LayoutEngineNameVersion : 'Blink 94'
LayoutEngineNameVersionMajor : 'Blink 94'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '94'
AgentVersionMajor : '94'
AgentNameVersion : 'Chrome 94'
AgentNameVersionMajor : 'Chrome 94'
# Linux (Ubuntu), Edge 95, Normal
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Linux Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Linux'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Linux ??'
OperatingSystemNameVersionMajor : 'Linux ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '95.0'
LayoutEngineVersionMajor : '95'
LayoutEngineNameVersion : 'Blink 95.0'
LayoutEngineNameVersionMajor : 'Blink 95'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '95.0.1020.30'
AgentVersionMajor : '95'
AgentNameVersion : 'Edge 95.0.1020.30'
AgentNameVersionMajor : 'Edge 95'
# NOTE: TODO: Apparently Edge 94 and 95 (tried one Windows, Linux and Android) does NOT have this Freeze/Reduce option anymore ?!?!
# This next one is an educated guess.
# __GUESSED__ Windows 10, Edge FROZEN
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36 Edg/93.0.0.0'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '>=10'
OperatingSystemVersionMajor : '>=10'
OperatingSystemNameVersion : 'Windows >=10'
OperatingSystemNameVersionMajor : 'Windows >=10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '93'
LayoutEngineVersionMajor : '93'
LayoutEngineNameVersion : 'Blink 93'
LayoutEngineNameVersionMajor : 'Blink 93'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '93'
AgentVersionMajor : '93'
AgentNameVersion : 'Edge 93'
AgentNameVersionMajor : 'Edge 93'
# Test case 10_15_7 before 90: should report version 10.15.7.
- test:
input:
user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Apple Macintosh'
DeviceBrand : 'Apple'
DeviceCpu : 'Intel'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Mac OS'
OperatingSystemVersion : '10.15.7'
OperatingSystemVersionMajor : '10.15'
OperatingSystemNameVersion : 'Mac OS 10.15.7'
OperatingSystemNameVersionMajor : 'Mac OS 10.15'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '86.0'
LayoutEngineVersionMajor : '86'
LayoutEngineNameVersion : 'Blink 86.0'
LayoutEngineNameVersionMajor : 'Blink 86'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '86.0.4240.111'
AgentVersionMajor : '86'
AgentNameVersion : 'Chrome 86.0.4240.111'
AgentNameVersionMajor : 'Chrome 86'
# Normal MacOs Chrome 95 --> MacOS version is frozen : should report unknown version
- test:
input:
user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Apple Macintosh'
DeviceBrand : 'Apple'
DeviceCpu : 'Intel'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Mac OS'
OperatingSystemVersion : '>=10.15.7'
OperatingSystemVersionMajor : '>=10.15'
OperatingSystemNameVersion : 'Mac OS >=10.15.7'
OperatingSystemNameVersionMajor : 'Mac OS >=10.15'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '95.0'
LayoutEngineVersionMajor : '95'
LayoutEngineNameVersion : 'Blink 95.0'
LayoutEngineNameVersionMajor : 'Blink 95'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '95.0.4638.69'
AgentVersionMajor : '95'
AgentNameVersion : 'Chrome 95.0.4638.69'
AgentNameVersionMajor : 'Chrome 95'
# Reduced MacOs Chrome 95
- test:
input:
user_agent_string: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Apple Macintosh'
DeviceBrand : 'Apple'
DeviceCpu : 'Intel'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Mac OS'
OperatingSystemVersion : '>=10.15.7'
OperatingSystemVersionMajor : '>=10.15'
OperatingSystemNameVersion : 'Mac OS >=10.15.7'
OperatingSystemNameVersionMajor : 'Mac OS >=10.15'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '95'
LayoutEngineVersionMajor : '95'
LayoutEngineNameVersion : 'Blink 95'
LayoutEngineNameVersionMajor : 'Blink 95'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '95'
AgentVersionMajor : '95'
AgentNameVersion : 'Chrome 95'
AgentNameVersionMajor : 'Chrome 95'
# Real example: A Nokia 7.2 phone running Android 11
# Full:
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Nokia 7.2'
DeviceBrand : 'Nokia'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '11'
OperatingSystemVersionMajor : '11'
OperatingSystemNameVersion : 'Android 11'
OperatingSystemNameVersionMajor : 'Android 11'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '97.0'
LayoutEngineVersionMajor : '97'
LayoutEngineNameVersion : 'Blink 97.0'
LayoutEngineNameVersionMajor : 'Blink 97'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '97.0.4692.98'
AgentVersionMajor : '97'
AgentNameVersion : 'Chrome 97.0.4692.98'
AgentNameVersionMajor : 'Chrome 97'
# Reduced:
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Android Mobile'
DeviceBrand : 'Unknown'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Android ??'
OperatingSystemNameVersionMajor : 'Android ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '97'
LayoutEngineVersionMajor : '97'
LayoutEngineNameVersion : 'Blink 97'
LayoutEngineNameVersionMajor : 'Blink 97'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '97'
AgentVersionMajor : '97'
AgentNameVersion : 'Chrome 97'
AgentNameVersionMajor : 'Chrome 97'
# https://docs.microsoft.com/en-us/microsoft-edge/web-platform/how-to-detect-win11
# User-Agent strings won't be updated to differentiate between Windows 11 and Windows 10.
# We don't recommend using User-Agent strings to retrieve user agent data.
# Browsers that don't support User-Agent Client Hints won't be able to differentiate between Windows 11 and Windows 10.
# Windows 10 was released in 2015 ~ Chrome 40
# Windows 11 was announced June 2021 (~ Chrome 91) and released Oktober 2021 (~ Chrome 94)
- set:
name: 'ChromeWindows10Reliable'
values:
- '30'
- '31'
- '32'
- '33'
- '34'
- '35'
- '36'
- '37'
- '38'
- '39'
- '40'
- '41'
- '42'
- '43'
- '44'
- '45'
- '46'
- '47'
- '48'
- '49'
- '50'
- '51'
- '52'
- '53'
- '54'
- '55'
- '56'
- '57'
- '58'
- '59'
- '60'
- '61'
- '62'
- '63'
- '64'
- '65'
- '66'
- '67'
- '68'
- '69'
- '70'
- '71'
- '72'
- '73'
- '74'
- '75'
- '76'
- '77'
- '78'
- '79'
- '80'
- '81'
- '82'
- '83'
- '84'
- '85'
- '86'
- '87'
- '88'
- '89'
- '90'
- '91'
# Chrome
- matcher:
variable:
- 'Chrome :agent.product.name="Chrome"^'
require:
- 'IsNull[@Chrome>>]'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Headless Chrome
- matcher:
variable:
- 'Chrome :agent.product.name="HeadlessChrome"^'
require:
- 'IsNull[@Chrome>>]'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Edge
- matcher:
variable:
- 'Chrome :agent.product.name="Chrome"^'
require:
- 'agent.product.name="Edg"' # Performance trick
- '@Chrome>>.name="Edg"'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Headless Edge
- matcher:
variable:
- 'Chrome :agent.product.name="HeadlessChrome"^'
require:
- 'agent.product.name="Edg"' # Performance trick
- '@Chrome>>.name="Edg"'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Chrome with noise appended
- matcher:
variable:
- 'Chrome :agent.product.name="Chrome"^'
require:
- '@Chrome>>.name.keyvalue'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Headless Chrome with noise appended
- matcher:
variable:
- 'Chrome :agent.product.name="HeadlessChrome"^'
require:
- '@Chrome>>.name.keyvalue'
- 'agent.(1)product.(1)comments.entry="Windows NT 10.0"'
- '@Chrome.version[1]!?ChromeWindows10Reliable'
extract:
- 'OperatingSystemName : 102 : "Windows NT"'
- 'OperatingSystemVersion : 102 : ">=10"'
- 'OperatingSystemVersionMajor : 102 : ">=10"'
- 'OperatingSystemNameVersion : 102 : "Windows >=10"'
- 'OperatingSystemNameVersionMajor : 102 : "Windows >=10"'
# Chrome 99 on Windows 11
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '>=10'
OperatingSystemVersionMajor : '>=10'
OperatingSystemNameVersion : 'Windows >=10'
OperatingSystemNameVersionMajor : 'Windows >=10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '99.0'
LayoutEngineVersionMajor : '99'
LayoutEngineNameVersion : 'Blink 99.0'
LayoutEngineNameVersionMajor : 'Blink 99'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '99.0.4844.51'
AgentVersionMajor : '99'
AgentNameVersion : 'Chrome 99.0.4844.51'
AgentNameVersionMajor : 'Chrome 99'
# Chrome 99 on Windows 11 Reduced
- test:
input:
user_agent_string: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Windows NT ??'
OperatingSystemNameVersionMajor : 'Windows NT ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '99'
LayoutEngineVersionMajor : '99'
LayoutEngineNameVersion : 'Blink 99'
LayoutEngineNameVersionMajor : 'Blink 99'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '99'
AgentVersionMajor : '99'
AgentNameVersion : 'Chrome 99'
AgentNameVersionMajor : 'Chrome 99'
- matcher:
variable:
- 'Chrome :agent.product.name="Chrome"^'
- 'ChromeVersion :@Chrome.version'
require:
- '@ChromeVersion[1]="99"'
- '@ChromeVersion[2]!="0"'
extract:
- 'LayoutEngineVersion : 3000 : Concat[@ChromeVersion[2];".0"]'
- 'AgentVersion : 3000 : Concat[@ChromeVersion[2];".0"]' # Losing the last two version parts.
# Chrome 100 on Android 11
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.18 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Nokia 7.2'
DeviceBrand : 'Nokia'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '11'
OperatingSystemVersionMajor : '11'
OperatingSystemNameVersion : 'Android 11'
OperatingSystemNameVersionMajor : 'Android 11'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '100.0'
LayoutEngineVersionMajor : '100'
LayoutEngineNameVersion : 'Blink 100.0'
LayoutEngineNameVersionMajor : 'Blink 100'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '100.0.4896.18'
AgentVersionMajor : '100'
AgentNameVersion : 'Chrome 100.0.4896.18'
AgentNameVersionMajor : 'Chrome 100'
# Chrome 100 on Android 11 with chrome://flags/#force-major-version-to-minor enabled
- test:
input:
user_agent_string: 'Mozilla/5.0 (Linux; Android 11; Nokia 7.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.100.4896.18 Mobile Safari/537.36'
expected:
DeviceClass : 'Phone'
DeviceName : 'Nokia 7.2'
DeviceBrand : 'Nokia'
OperatingSystemClass : 'Mobile'
OperatingSystemName : 'Android'
OperatingSystemVersion : '11'
OperatingSystemVersionMajor : '11'
OperatingSystemNameVersion : 'Android 11'
OperatingSystemNameVersionMajor : 'Android 11'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '100.0'
LayoutEngineVersionMajor : '100'
LayoutEngineNameVersion : 'Blink 100.0'
LayoutEngineNameVersionMajor : 'Blink 100'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '100.0'
AgentVersionMajor : '100'
AgentNameVersion : 'Chrome 100.0'
AgentNameVersionMajor : 'Chrome 100'
# Normal Chrome OS
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14150.57.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.97 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Chromebook'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Chrome OS'
OperatingSystemVersion : '94.0.4606.97'
OperatingSystemVersionMajor : '94'
OperatingSystemNameVersion : 'Chrome OS 94.0.4606.97'
OperatingSystemNameVersionMajor : 'Chrome OS 94'
OperatingSystemVersionBuild : '14150.57.0'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '94.0'
LayoutEngineVersionMajor : '94'
LayoutEngineNameVersion : 'Blink 94.0'
LayoutEngineNameVersionMajor : 'Blink 94'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '94.0.4606.97'
AgentVersionMajor : '94'
AgentNameVersion : 'Chrome 94.0.4606.97'
AgentNameVersionMajor : 'Chrome 94'
# Chrome 101 on Reduced ChromeOS without client hints (Manually constructed from the Chromium Source code) OLD version
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Chromebook'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Chrome OS'
OperatingSystemVersion : '101'
OperatingSystemVersionMajor : '101'
OperatingSystemNameVersion : 'Chrome OS 101'
OperatingSystemNameVersionMajor : 'Chrome OS 101'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '101'
LayoutEngineVersionMajor : '101'
LayoutEngineNameVersion : 'Blink 101'
LayoutEngineNameVersionMajor : 'Blink 101'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '101'
AgentVersionMajor : '101'
AgentNameVersion : 'Chrome 101'
AgentNameVersionMajor : 'Chrome 101'
# Chrome 101 on Reduced ChromeOS without client hints (Manually constructed from the Chromium Source code) NEW version
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Chromebook'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Chrome OS'
OperatingSystemVersion : '101'
OperatingSystemVersionMajor : '101'
OperatingSystemNameVersion : 'Chrome OS 101'
OperatingSystemNameVersionMajor : 'Chrome OS 101'
# OperatingSystemVersionBuild : '14541.0.0' # This build tag is nonsense as it is hardcoded.
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '101'
LayoutEngineVersionMajor : '101'
LayoutEngineNameVersion : 'Blink 101'
LayoutEngineNameVersionMajor : 'Blink 101'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '101'
AgentVersionMajor : '101'
AgentNameVersion : 'Chrome 101'
AgentNameVersionMajor : 'Chrome 101'
# Chrome 101 on Normal ChromeOS without client hints (Manually constructed from the Chromium Source code) NEW version
- test:
input:
user_agent_string: 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.123.456 Safari/537.36'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Chromebook'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Chrome OS'
OperatingSystemVersion : '101.0.123.456'
OperatingSystemVersionMajor : '101'
OperatingSystemNameVersion : 'Chrome OS 101.0.123.456'
OperatingSystemNameVersionMajor : 'Chrome OS 101'
OperatingSystemVersionBuild : '14541.0.0'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '101.0'
LayoutEngineVersionMajor : '101'
LayoutEngineNameVersion : 'Blink 101.0'
LayoutEngineNameVersionMajor : 'Blink 101'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '101.0.123.456'
AgentVersionMajor : '101'
AgentNameVersion : 'Chrome 101.0.123.456'
AgentNameVersionMajor : 'Chrome 101'
# TODO: What is SECSSOBrowserChrome ?
- test:
input:
User-Agent : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 SECSSOBrowserChrome'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '??'
OperatingSystemVersionMajor : '??'
OperatingSystemNameVersion : 'Windows NT ??'
OperatingSystemNameVersionMajor : 'Windows NT ??'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '102'
LayoutEngineVersionMajor : '102'
LayoutEngineNameVersion : 'Blink 102'
LayoutEngineNameVersionMajor : 'Blink 102'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '102'
AgentVersionMajor : '102'
AgentNameVersion : 'Chrome 102'
AgentNameVersionMajor : 'Chrome 102'
- test:
input:
User-Agent : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
Sec-Ch-Ua : '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
Sec-Ch-Ua-Arch : '"arm"'
Sec-Ch-Ua-Bitness : '"64"'
Sec-Ch-Ua-Full-Version : '"107.0.5304.121"'
Sec-Ch-Ua-Full-Version-List : '"Google Chrome";v="107.0.5304.121", "Chromium";v="107.0.5304.121", "Not=A?Brand";v="24.0.0.0"'
Sec-Ch-Ua-Mobile : '?0'
Sec-Ch-Ua-Model : '""'
Sec-Ch-Ua-Platform : '"macOS"'
Sec-Ch-Ua-Platform-Version : '"12.6.0"'
Sec-Ch-Ua-Wow64 : '?0'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Apple Macintosh'
DeviceBrand : 'Apple'
DeviceCpu : 'ARM'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Mac OS'
OperatingSystemVersion : '12.6.0'
OperatingSystemVersionMajor : '12'
OperatingSystemNameVersion : 'Mac OS 12.6.0'
OperatingSystemNameVersionMajor : 'Mac OS 12'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '107.0'
LayoutEngineVersionMajor : '107'
LayoutEngineNameVersion : 'Blink 107.0'
LayoutEngineNameVersionMajor : 'Blink 107'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '107.0.5304.121'
AgentVersionMajor : '107'
AgentNameVersion : 'Chrome 107.0.5304.121'
AgentNameVersionMajor : 'Chrome 107'
UAClientHintArchitecture : 'arm'
UAClientHintBitness : '64'
UAClientHintBrands_0_Brand : 'Google Chrome'
UAClientHintBrands_0_Version : '107'
UAClientHintBrands_1_Brand : 'Chromium'
UAClientHintBrands_1_Version : '107'
UAClientHintFullVersion : '107.0.5304.121'
UAClientHintFullVersionList_0_Brand : 'Google Chrome'
UAClientHintFullVersionList_0_Version : '107.0.5304.121'
UAClientHintFullVersionList_1_Brand : 'Chromium'
UAClientHintFullVersionList_1_Version : '107.0.5304.121'
UAClientHintMobile : 'false'
UAClientHintPlatform : 'macOS'
UAClientHintPlatformVersion : '12.6.0'
UAClientHintWow64 : 'false'
# Edge on Windows 7
- test:
input:
User-Agent : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '7'
OperatingSystemVersionMajor : '7'
OperatingSystemNameVersion : 'Windows 7'
OperatingSystemNameVersionMajor : 'Windows 7'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '107'
LayoutEngineVersionMajor : '107'
LayoutEngineNameVersion : 'Blink 107'
LayoutEngineNameVersionMajor : 'Blink 107'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '107'
AgentVersionMajor : '107'
AgentNameVersion : 'Edge 107'
AgentNameVersionMajor : 'Edge 107'
# Edge on Windows 10/11
- test:
input:
User-Agent : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52'
Sec-Ch-Ua : '"Microsoft Edge";v="107", "Chromium";v="107", "Not=A?Brand";v="24"'
Sec-Ch-Ua-Mobile : '?0'
Sec-Ch-Ua-Platform : '"Windows"'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '>=10'
OperatingSystemVersionMajor : '>=10'
OperatingSystemNameVersion : 'Windows >=10'
OperatingSystemNameVersionMajor : 'Windows >=10'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '107'
LayoutEngineVersionMajor : '107'
LayoutEngineNameVersion : 'Blink 107'
LayoutEngineNameVersionMajor : 'Blink 107'
AgentClass : 'Browser'
AgentName : 'Edge'
AgentVersion : '107'
AgentVersionMajor : '107'
AgentNameVersion : 'Edge 107'
AgentNameVersionMajor : 'Edge 107'
UAClientHintBrands_0_Brand : 'Microsoft Edge'
UAClientHintBrands_0_Version : '107'
UAClientHintBrands_1_Brand : 'Chromium'
UAClientHintBrands_1_Version : '107'
UAClientHintMobile : 'false'
UAClientHintPlatform : 'Windows'
- test:
input:
User-Agent : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
Sec-Ch-Ua : '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"'
Sec-Ch-Ua-Arch : '"x86"'
Sec-Ch-Ua-Bitness : '"64"'
Sec-Ch-Ua-Full-Version : '"108.0.5359.72"'
Sec-Ch-Ua-Full-Version-List : '"Not?A_Brand";v="8.0.0.0", "Chromium";v="108.0.5359.72", "Google Chrome";v="108.0.5359.72"'
Sec-Ch-Ua-Mobile : '?0'
Sec-Ch-Ua-Model : '""'
Sec-Ch-Ua-Platform : '"Windows"'
Sec-Ch-Ua-Platform-Version : '"0.1.0"'
Sec-Ch-Ua-Wow64 : '?0'
expected:
DeviceClass : 'Desktop'
DeviceName : 'Desktop'
DeviceBrand : 'Unknown'
DeviceCpu : 'Intel x86_64'
DeviceCpuBits : '64'
OperatingSystemClass : 'Desktop'
OperatingSystemName : 'Windows NT'
OperatingSystemVersion : '7'
OperatingSystemVersionMajor : '7'
OperatingSystemNameVersion : 'Windows 7'
OperatingSystemNameVersionMajor : 'Windows 7'
LayoutEngineClass : 'Browser'
LayoutEngineName : 'Blink'
LayoutEngineVersion : '108.0'
LayoutEngineVersionMajor : '108'
LayoutEngineNameVersion : 'Blink 108.0'
LayoutEngineNameVersionMajor : 'Blink 108'
AgentClass : 'Browser'
AgentName : 'Chrome'
AgentVersion : '108.0.5359.72'
AgentVersionMajor : '108'
AgentNameVersion : 'Chrome 108.0.5359.72'
AgentNameVersionMajor : 'Chrome 108'
UAClientHintArchitecture : 'x86'
UAClientHintBitness : '64'
UAClientHintBrands_0_Brand : 'Chromium'
UAClientHintBrands_0_Version : '108'
UAClientHintBrands_1_Brand : 'Google Chrome'
UAClientHintBrands_1_Version : '108'
UAClientHintFullVersion : '108.0.5359.72'
UAClientHintFullVersionList_0_Brand : 'Chromium'
UAClientHintFullVersionList_0_Version : '108.0.5359.72'
UAClientHintFullVersionList_1_Brand : 'Google Chrome'
UAClientHintFullVersionList_1_Version : '108.0.5359.72'
UAClientHintMobile : 'false'
UAClientHintPlatform : 'Windows'
UAClientHintPlatformVersion : '0.1.0'
UAClientHintWow64 : 'false'
© 2015 - 2025 Weber Informatics LLC | Privacy Policy