Skip to content

Commit a670668

Browse files
committed
Detect Chrome from Samsung devices. Closes fnando#107.
1 parent 4597730 commit a670668

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

lib/browser.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ class Browser
4242
alias_method :ua=, :user_agent=
4343

4444
NAMES = {
45+
chrome: "Chrome", # Must come before android
4546
android: "Android",
4647
blackberry: "BlackBerry",
47-
chrome: "Chrome",
4848
core_media: "Apple CoreMedia",
4949
firefox: "Firefox",
5050
ie: "Internet Explorer",
@@ -65,7 +65,8 @@ class Browser
6565
}
6666

6767
VERSIONS = {
68-
default: %r[(?:Version|MSIE|Firefox|Chrome|CriOS|QuickTime|BlackBerry[^/]+|CoreMedia v|PhantomJS)[/ ]?([a-z0-9.]+)]i,
68+
chrome: %r[(?:Chrome|CriOS)/([\d.]+)],
69+
default: %r[(?:Version|MSIE|Firefox|QuickTime|BlackBerry[^/]+|CoreMedia v|PhantomJS)[/ ]?([a-z0-9.]+)]i,
6970
opera: %r[(?:Opera/.*? Version/([\d.]+)|Chrome/([\d.]+).*?OPR)],
7071
ie: %r[(?:MSIE |Trident/.*?; rv:)([\d.]+)]
7172
}

test/browser_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,19 @@
308308
assert_equal "19", @browser.version
309309
end
310310

311+
it "detects samsung chrome" do
312+
@browser.ua = $ua["SAMSUNG_CHROME"]
313+
314+
assert_equal "Chrome", @browser.name
315+
assert @browser.chrome?
316+
assert @browser.android?
317+
refute @browser.safari?
318+
assert @browser.webkit?
319+
assert @browser.modern?
320+
assert_equal "28.0.1500.94", @browser.full_version
321+
assert_equal "28", @browser.version
322+
end
323+
311324
it "detects android" do
312325
@browser.ua = $ua["ANDROID"]
313326

test/ua.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ XOOM: "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/
3737
NEXUS_TABLET: "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19"
3838
NOOK: "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; NOOK BNTV250A Build/GINGERBREAD 1.4.3) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1"
3939
SAMSUNG: "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SAMSUNG-SGH-I497 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
40+
SAMSUNG_CHROME: "Mozilla/5.0 (Linux; Android 4.4.2; en-gb; SAMSUNG GT-I9195/I9195XXUCNEA Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36"
4041
OPERA_MINI: "Opera/9.80 (Android; Opera Mini/7.029952/28.2359;u; fr) Presto/2.8.119 Version/11.10"
4142
OPERA_MOBI: "Opera/9.8 (Android 2.3.5; Linux; Opera Mobi/ADR-1205181138; U; en) Presto/2.10.254 Version/12.00"
4243
WINDOWS_PHONE: "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; DELL; Venue Pro)"

0 commit comments

Comments
 (0)