Skip to content

Commit b030dca

Browse files
committed
Detect Safari when running in web app mode. Closes fnando#118.
1 parent 48e8cff commit b030dca

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

lib/browser.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ def phantom_js?
157157

158158
# Detect if browser is Safari.
159159
def safari?
160-
ua =~ /Safari/ && ua !~ /Android|Chrome|CriOS|PhantomJS/
160+
(ua =~ /Safari/ || safari_webapp_mode?) && ua !~ /Android|Chrome|CriOS|PhantomJS/
161+
end
162+
163+
def safari_webapp_mode?
164+
(ipad? || iphone?) && ua =~ /AppleWebKit/
161165
end
162166

163167
# Detect if browser is Firefox.

test/browser_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@
6666
assert_equal "5", @browser.version
6767
end
6868

69+
it "detects safari in webapp mode" do
70+
@browser.ua = $ua["SAFARI_IPAD_WEBAPP_MODE"]
71+
assert @browser.safari?
72+
73+
@browser.ua = $ua["SAFARI_IPHONE_WEBAPP_MODE"]
74+
assert @browser.safari?
75+
end
76+
6977
it "detects ipod" do
7078
@browser.ua = $ua["IPOD"]
7179

test/ua.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ PSP: 'Mozilla/4.0 (PSP (PlayStation Portable); 2.00)'
6363
PSP_VITA: 'Mozilla/5.0 (Playstation Vita 1.61) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2'
6464
QUICKTIME: 'QuickTime/7.6.8 (qtver=7.6.8;os=Windows NT 5.1Service Pack 3)'
6565
SAFARI: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-us) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8'
66+
SAFARI_IPAD_WEBAPP_MODE: 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405'
67+
SAFARI_IPHONE_WEBAPP_MODE: 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.20 (KHTML, like Gecko) Mobile/7B298g'
6668
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'
6769
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'
6870
SCRAPY: 'Scrapy/0.18.4 (+http://scrapy.org)'

0 commit comments

Comments
 (0)