Skip to content

Commit

Permalink
Merge pull request #4614 from AnalyticalGraphicsInc/detect-edge
Browse files Browse the repository at this point in the history
Add Edge to FeatureDetection
  • Loading branch information
mramato committed Nov 7, 2016
2 parents ba09d43 + b805b78 commit 4c8a9f1
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
36 changes: 29 additions & 7 deletions Source/Core/FeatureDetection.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ define([
function isChrome() {
if (!defined(isChromeResult)) {
isChromeResult = false;

var fields = (/ Chrome\/([\.0-9]+)/).exec(theNavigator.userAgent);
if (fields !== null) {
isChromeResult = true;
chromeVersionResult = extractVersion(fields[1]);
// Edge contains Chrome in the user agent too
if (!isEdge()) {
var fields = (/ Chrome\/([\.0-9]+)/).exec(theNavigator.userAgent);
if (fields !== null) {
isChromeResult = true;
chromeVersionResult = extractVersion(fields[1]);
}
}
}

Expand All @@ -50,8 +52,8 @@ define([
if (!defined(isSafariResult)) {
isSafariResult = false;

// Chrome contains Safari in the user agent too
if (!isChrome() && (/ Safari\/[\.0-9]+/).test(theNavigator.userAgent)) {
// Chrome and Edge contain Safari in the user agent too
if (!isChrome() && !isEdge() && (/ Safari\/[\.0-9]+/).test(theNavigator.userAgent)) {
var fields = (/ Version\/([\.0-9]+)/).exec(theNavigator.userAgent);
if (fields !== null) {
isSafariResult = true;
Expand Down Expand Up @@ -116,6 +118,24 @@ define([
return isInternetExplorer() && internetExplorerVersionResult;
}

var isEdgeResult;
var edgeVersionResult;
function isEdge() {
if (!defined(isEdgeResult)) {
isEdgeResult = false;
var fields = (/ Edge\/([\.0-9]+)/).exec(theNavigator.userAgent);
if (fields !== null) {
isEdgeResult = true;
edgeVersionResult = extractVersion(fields[1]);
}
}
return isEdgeResult;
}

function edgeVersion() {
return isEdge() && edgeVersionResult;
}

var isFirefoxResult;
var firefoxVersionResult;
function isFirefox() {
Expand Down Expand Up @@ -193,6 +213,8 @@ define([
webkitVersion : webkitVersion,
isInternetExplorer : isInternetExplorer,
internetExplorerVersion : internetExplorerVersion,
isEdge : isEdge,
edgeVersion : edgeVersion,
isFirefox : isFirefox,
firefoxVersion : firefoxVersion,
isWindows : isWindows,
Expand Down
12 changes: 12 additions & 0 deletions Specs/Core/FeatureDetectionSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,18 @@ defineSuite([
}
});

it('detects Edge', function() {
var isEdge = FeatureDetection.isEdge();
expect(typeof isEdge).toEqual('boolean');

if (isEdge) {
var edgeVersion = FeatureDetection.edgeVersion();
checkVersionArray(edgeVersion);

console.log('detected Edge ' + edgeVersion.join('.'));
}
});

it('detects Firefox', function() {
var isFirefox = FeatureDetection.isFirefox();
expect(typeof isFirefox).toEqual('boolean');
Expand Down

0 comments on commit 4c8a9f1

Please sign in to comment.