in media/js/base/stub-attribution/stub-attribution.js [155:224]
StubAttribution.updateBouncerLinks = function (data) {
/**
* If data is missing or the browser does not meet requirements for
* stub attribution, then do nothing.
*/
if (
!data.attribution_code ||
!data.attribution_sig ||
!StubAttribution.meetsRequirements()
) {
return;
}
// target download buttons and other-platforms modal links.
var downloadLinks = document.querySelectorAll('.download-link');
for (var i = 0; i < downloadLinks.length; i++) {
var link = downloadLinks[i];
var version;
var directLink;
// Append stub attribution data to direct download links.
if (
(link.href &&
(link.href.indexOf('https://download.mozilla.org') !== -1 ||
link.href.indexOf(
'https://bouncer-bouncer.stage.mozaws.net/'
) !== -1)) ||
link.href.indexOf(
'https://dev.bouncer.nonprod.webservices.mozgcp.net'
) !== -1
) {
version = link.getAttribute('data-download-version');
// Append attribution params to Windows links.
if (version && /win/.test(version)) {
link.href = Mozilla.StubAttribution.appendToDownloadURL(
link.href,
data
);
}
// Append attribution params to macOS links (excluding ESR for now).
if (
version &&
/osx/.test(version) &&
!/product=firefox-esr/.test(link.href)
) {
link.href = Mozilla.StubAttribution.appendToDownloadURL(
link.href,
data
);
}
} else if (
link.href &&
link.href.indexOf('/firefox/download/thanks/') !== -1
) {
// Append stub data to direct-link data attributes on transitional links for old IE browsers (Issue #9350)
directLink = link.getAttribute('data-direct-link');
if (directLink) {
link.setAttribute(
'data-direct-link',
Mozilla.StubAttribution.appendToDownloadURL(
directLink,
data
)
);
}
}
}
};