Skip to content

Commit

Permalink
Add the ability to detect Chrome for iOS as Chrome, not Safari
Browse files Browse the repository at this point in the history
  • Loading branch information
Sean McBride committed Jul 17, 2012
1 parent bcc16e4 commit 0ffeeaf
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
32 changes: 32 additions & 0 deletions src-test/core/useragenttest.js
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,22 @@ UserAgentTest.prototype.testBrowserIsIPadWithoutIPhone = function() {
assertTrue(userAgent.isSupportingWebFont());
};

UserAgentTest.prototype.testBrowserIsIPadChrome = function() {
var userAgentParser = new webfont.UserAgentParser(
"Mozilla/5.0 (iPad; U; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3",
this.defaultDocument_);
var userAgent = userAgentParser.parse();

assertEquals("Chrome", userAgent.getName());
assertEquals("19.0.1084.60", userAgent.getVersion());
assertEquals("iPad", userAgent.getPlatform());
assertEquals("5_1_1", userAgent.getPlatformVersion());
assertEquals("AppleWebKit", userAgent.getEngine());
assertEquals("534.46.0", userAgent.getEngineVersion());
assertEquals(undefined, userAgent.getDocumentMode());
assertTrue(userAgent.isSupportingWebFont());
}

UserAgentTest.prototype.testBrowserIsIPod = function() {
var userAgentParser = new webfont.UserAgentParser(
"Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Mobile/5H11a",
Expand Down Expand Up @@ -389,6 +405,22 @@ UserAgentTest.prototype.testBrowserIsIPodSafari = function() {
assertTrue(userAgent.isSupportingWebFont());
};

UserAgentTest.prototype.testBrowserIsIPodChrome = function() {
var userAgentParser = new webfont.UserAgentParser(
"Mozilla/5.0 (iPod; U; CPU iPhone OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3",
this.defaultDocument_);
var userAgent = userAgentParser.parse();

assertEquals("Chrome", userAgent.getName());
assertEquals("19.0.1084.60", userAgent.getVersion());
assertEquals("iPod", userAgent.getPlatform());
assertEquals("5_1_1", userAgent.getPlatformVersion());
assertEquals("AppleWebKit", userAgent.getEngine());
assertEquals("534.46.0", userAgent.getEngineVersion());
assertEquals(undefined, userAgent.getDocumentMode());
assertTrue(userAgent.isSupportingWebFont());
}

UserAgentTest.prototype.testBrowserIsSafariWithPlusVersion = function() {
var userAgentParser = new webfont.UserAgentParser(
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; tr) AppleWebKit/528.4+ (KHTML, like Gecko) Version/4.0dp1 Safari/526.11.2",
Expand Down
4 changes: 2 additions & 2 deletions src/core/useragentparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ webfont.UserAgentParser.prototype.parseWebKitUserAgentString_ = function() {
}
var name = webfont.UserAgentParser.UNKNOWN;

if (this.userAgent_.indexOf("Chrome") != -1 || this.userAgent_.indexOf("CrMo") != -1) {
if (this.userAgent_.indexOf("Chrome") != -1 || this.userAgent_.indexOf("CrMo") != -1 || this.userAgent_.indexOf("CriOS") != -1) {
name = "Chrome";
} else if (this.userAgent_.indexOf("Safari") != -1) {
name = "Safari";
Expand All @@ -209,7 +209,7 @@ webfont.UserAgentParser.prototype.parseWebKitUserAgentString_ = function() {
/Version\/([\d\.\w]+)/, 1);
} else if (name == "Chrome") {
version = this.getMatchingGroup_(this.userAgent_,
/(Chrome|CrMo)\/([\d\.]+)/, 2);
/(Chrome|CrMo|CriOS)\/([\d\.]+)/, 2);
} else if (name == "AdobeAIR") {
version = this.getMatchingGroup_(this.userAgent_,
/AdobeAIR\/([\d\.]+)/, 1);
Expand Down

0 comments on commit 0ffeeaf

Please sign in to comment.