1(function (window, document) { 2 function isLocalStorageAvailable() { 3 var test = 'test'; 4 try { 5 localStorage.setItem(test, test); 6 localStorage.removeItem(test); 7 return true; 8 } catch (e) { 9 return false; 10 } 11 } 12 13 var supportedBrowserRegex = 14 /Edge?\/(10[89]|1[1-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Firefox\/(10[89]|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(10[89]|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Maci.+ Version\/(16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( Mobile\/\w+|) Safari\/|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](109|1[1-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Chrom(ium|e)\/(1{2}\d|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/(1[89]|[2-9]\d|\d{3,})\.\d+/; 15 16 var htmlWrapper = document.getElementById('browserCheck'); 17 18 var dismissUnsupportedBrowserMessage = function () { 19 htmlWrapper.innerHTML = ''; 20 21 if (isLocalStorageAvailable()) localStorage.setItem('hideMessage', 'true'); 22 }; 23 24 // If not supported 25 if (!supportedBrowserRegex.test(navigator.userAgent)) { 26 // If localStorage supported and has been hidden, do nothing 27 if (isLocalStorageAvailable() && localStorage.getItem('hideMessage') === 'true') return; 28 29 htmlWrapper.innerHTML = 30 '<div class="unsupportedBrowser"><div class="inner"><div><img src="/warning.svg" class="warning" /><span>We have detected that your web browser may not be supported or is out of date. <a href="/supported-browsers/">Find out more</a></span></div><button id="clearUnsupportedBrowserMessageButton">Dismiss <img src="/close.svg" alt="dismiss browser warning" /></button></div>'; 31 32 document 33 .getElementById('clearUnsupportedBrowserMessageButton') 34 .addEventListener('click', dismissUnsupportedBrowserMessage); 35 } 36})(window, document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.