Skip to content
This repository was archived by the owner on Feb 17, 2023. It is now read-only.

Commit ea81f1e

Browse files
committed
Added Detection of Chromium Edge on Windows
Moved bingbot and googlebot detection to beginning of AppleWebKit section to avoid false-positive for Chromium Edge from 'Edg' in bingbot. Added case 'Edg' to account for Chromium Edge on Windows. Added test case for Chromium Edge on Windows. Updated Changelong. Signed-off-by: Dan Hammer <[email protected]>
1 parent 48f5012 commit ea81f1e

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- Fix detection of Firefox on iPad.
66
- Fix detection of Linux ARM-based Android.
7+
- Add detection of Chromium Edge on Windows.
78

89
## 0.5.2
910

all_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,14 @@ var uastrings = []struct {
210210
expected: "Mozilla:5.0 Platform:Windows OS:Windows Phone 10.0 Browser:Edge-12.10240 Engine:EdgeHTML Bot:false Mobile:true",
211211
},
212212

213+
// Microsoft Chromium Edge
214+
{
215+
title: "EdgeDesktop",
216+
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37",
217+
expected: "Mozilla:5.0 Platform:Windows OS:Windows 10 Browser:Edge-83.0.478.37 Engine:AppleWebKit-537.36 Bot:false Mobile:false",
218+
expectedOS: &OSInfo{"Windows 10", "Windows", "10"},
219+
},
220+
213221
// Gecko
214222
{
215223
title: "FirefoxMac",

browser.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,26 @@ func (p *UserAgent) detectBrowser(sections []section) {
5959
}
6060
p.browser.Version = sections[sectionIndex].version
6161
if engine.name == "AppleWebKit" {
62+
for _, comment := range engine.comment {
63+
if len(comment) > 5 &&
64+
(strings.HasPrefix(comment, "Googlebot") || strings.HasPrefix(comment, "bingbot")) {
65+
p.undecided = true
66+
break
67+
}
68+
}
6269
switch sections[slen-1].name {
6370
case "Edge":
6471
p.browser.Name = "Edge"
6572
p.browser.Version = sections[slen-1].version
6673
p.browser.Engine = "EdgeHTML"
6774
p.browser.EngineVersion = ""
75+
case "Edg":
76+
if p.undecided != true {
77+
p.browser.Name = "Edge"
78+
p.browser.Version = sections[slen-1].version
79+
p.browser.Engine = "AppleWebKit"
80+
p.browser.EngineVersion = sections[slen-2].version
81+
}
6882
case "OPR":
6983
p.browser.Name = "Opera"
7084
p.browser.Version = sections[slen-1].version

0 commit comments

Comments
 (0)