-
Notifications
You must be signed in to change notification settings - Fork 30.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tools,doc: add Google Analytics tracking.
Adds Google Analytics tracking script to all doc pages when `DOCS_ANALYTICS` is set when running `make`: ```bash $ DOCS_ANALYTICS=<GOOGLE ANALYTICS ID> make ``` By default (when `DOCS_ANALYTICS` is not set), no tracking scripts are included. It respects "Do Not Track" settings end users might have in their browser. Also changes make target `doc-upload` from depending on the `$(TARBALL)` target, to only depend on `doc` directly. PR-URL: #6601 Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
- Loading branch information
1 parent
7dff6aa
commit d39543e
Showing
6 changed files
with
109 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/** | ||
* http://schalkneethling.github.io/blog/2015/11/06/respect-user-choice-do-not-track/ | ||
* https://github.com/schalkneethling/dnt-helper/blob/master/js/dnt-helper.js | ||
* | ||
* Returns true or false based on whether doNotTack is enabled. It also takes into account the | ||
* anomalies, such as !bugzilla 887703, which effect versions of Fx 31 and lower. It also handles | ||
* IE versions on Windows 7, 8 and 8.1, where the DNT implementation does not honor the spec. | ||
* @see https://bugzilla.mozilla.org/show_bug.cgi?id=1217896 for more details | ||
* @params {string} [dnt] - An optional mock doNotTrack string to ease unit testing. | ||
* @params {string} [userAgent] - An optional mock userAgent string to ease unit testing. | ||
* @returns {boolean} true if enabled else false | ||
*/ | ||
function _dntEnabled(dnt, userAgent) { | ||
|
||
'use strict'; | ||
|
||
// for old version of IE we need to use the msDoNotTrack property of navigator | ||
// on newer versions, and newer platforms, this is doNotTrack but, on the window object | ||
// Safari also exposes the property on the window object. | ||
var dntStatus = dnt || navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack; | ||
var ua = userAgent || navigator.userAgent; | ||
|
||
// List of Windows versions known to not implement DNT according to the standard. | ||
var anomalousWinVersions = ['Windows NT 6.1', 'Windows NT 6.2', 'Windows NT 6.3']; | ||
|
||
var fxMatch = ua.match(/Firefox\/(\d+)/); | ||
var ieRegEx = /MSIE|Trident/i; | ||
var isIE = ieRegEx.test(ua); | ||
// Matches from Windows up to the first occurance of ; un-greedily | ||
// http://www.regexr.com/3c2el | ||
var platform = ua.match(/Windows.+?(?=;)/g); | ||
|
||
// With old versions of IE, DNT did not exist so we simply return false; | ||
if (isIE && typeof Array.prototype.indexOf !== 'function') { | ||
return false; | ||
} else if (fxMatch && parseInt(fxMatch[1], 10) < 32) { | ||
// Can't say for sure if it is 1 or 0, due to Fx bug 887703 | ||
dntStatus = 'Unspecified'; | ||
} else if (isIE && platform && anomalousWinVersions.indexOf(platform.toString()) !== -1) { | ||
// default is on, which does not honor the specification | ||
dntStatus = 'Unspecified'; | ||
} else { | ||
// sets dntStatus to Disabled or Enabled based on the value returned by the browser. | ||
// If dntStatus is undefined, it will be set to Unspecified | ||
dntStatus = { '0': 'Disabled', '1': 'Enabled' }[dntStatus] || 'Unspecified'; | ||
} | ||
|
||
return dntStatus === 'Enabled' ? true : false; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters