in media/js/firefox/new/desktop/download.js [32:105]
(function () {
'use strict';
var cells = {
all: document.querySelectorAll('#compare-table tr > *:nth-child(1n+3)'),
chrome: document.querySelectorAll('#compare-table tr *:nth-child(3)'),
edge: document.querySelectorAll('#compare-table tr *:nth-child(4)'),
safari: document.querySelectorAll('#compare-table tr *:nth-child(5)')
};
var buttons = document.querySelectorAll('.c-compare-button');
var ua = navigator.userAgent;
var compareTo = (function () {
if (/MSIE|Trident/i.test(ua)) {
return 'edge';
}
if (/Edg|Edge/i.test(ua)) {
return 'edge';
}
if (/Chrome/.test(ua)) {
return 'chrome';
}
// got this far without picking, now choose based on OS
// could be Firefox/Safari/Brave/Opera/Android Browser/etc.
if (/osx/.test(window.site.platform)) {
return 'safari';
}
if (/windows/.test(window.site.platform)) {
return 'edge';
}
if (/android/.test(window.site.platform)) {
return 'chrome';
}
return 'chrome';
})();
// display chosen browser
function show(browser) {
// hide all comparisons
for (var i = 0; i < cells['all'].length; ++i) {
cells['all'][i].style.display = 'none';
}
// show the chosen comparison
for (var j = 0; j < cells[browser].length; ++j) {
cells[browser][j].style.display = 'table-cell';
}
// add active state to button
for (var k = 0; k < buttons.length; ++k) {
if (buttons[k].value === browser) {
buttons[k].setAttribute('aria-pressed', true);
} else {
buttons[k].setAttribute('aria-pressed', false);
}
}
}
// match user's browser to start
show(compareTo);
// listen to buttons
for (var l = 0; l < buttons.length; ++l) {
buttons[l].addEventListener('click', function (event) {
show(event.target.value);
});
}
})();