diff options
Diffstat (limited to 'mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js')
-rw-r--r-- | mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js | 158 |
1 files changed, 86 insertions, 72 deletions
diff --git a/mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js b/mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js index 7836e30ac0..09804908f7 100644 --- a/mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js +++ b/mobile/android/android-components/components/browser/errorpages/src/main/assets/errorPageScripts.js @@ -6,50 +6,54 @@ * Handles the parsing of the ErrorPages URI and then passes them to injectValues */ function parseQuery(queryString) { - if (queryString[0] === '?') { - queryString = queryString.substr(1); - } - const query = Object.fromEntries(new URLSearchParams(queryString).entries()); - injectValues(query) - updateShowSSL(query) - updateShowHSTS(query) -}; + if (queryString[0] === "?") { + queryString = queryString.substr(1); + } + const query = Object.fromEntries(new URLSearchParams(queryString).entries()); + injectValues(query); + updateShowSSL(query); + updateShowHSTS(query); +} /** * Updates the HTML elements based on the queryMap */ function injectValues(queryMap) { - const tryAgainButton = document.getElementById('errorTryAgain') - const continueHttpButton = document.getElementById("continueHttp") - + const tryAgainButton = document.getElementById("errorTryAgain"); + const continueHttpButton = document.getElementById("continueHttp"); - // Go through each element and inject the values - document.title = queryMap.title - tryAgainButton.innerHTML = queryMap.button - continueHttpButton.innerHTML = queryMap.continueHttpButton - document.getElementById('errorTitleText').innerHTML = queryMap.title - document.getElementById('errorShortDesc').innerHTML = queryMap.description - document.getElementById('advancedButton').innerHTML = queryMap.badCertAdvanced - document.getElementById('badCertTechnicalInfo').innerHTML = queryMap.badCertTechInfo - document.getElementById('advancedPanelBackButton').innerHTML = queryMap.badCertGoBack - document.getElementById('advancedPanelAcceptButton').innerHTML = queryMap.badCertAcceptTemporary - document.getElementById('advancedPanelAcceptButton').s = queryMap.badCertAcceptTemporary + // Go through each element and inject the values + document.title = queryMap.title; + tryAgainButton.innerHTML = queryMap.button; + continueHttpButton.innerHTML = queryMap.continueHttpButton; + document.getElementById("errorTitleText").innerHTML = queryMap.title; + document.getElementById("errorShortDesc").innerHTML = queryMap.description; + document.getElementById("advancedButton").innerHTML = + queryMap.badCertAdvanced; + document.getElementById("badCertTechnicalInfo").innerHTML = + queryMap.badCertTechInfo; + document.getElementById("advancedPanelBackButton").innerHTML = + queryMap.badCertGoBack; + document.getElementById("advancedPanelAcceptButton").innerHTML = + queryMap.badCertAcceptTemporary; + document.getElementById("advancedPanelAcceptButton").s = + queryMap.badCertAcceptTemporary; - // If no image is passed in, remove the element so as not to leave an empty iframe - const errorImage = document.getElementById('errorImage'); - if (!queryMap.image) { - errorImage.remove(); - } else { - errorImage.src = "resource://android/assets/" + queryMap.image; - } + // If no image is passed in, remove the element so as not to leave an empty iframe + const errorImage = document.getElementById("errorImage"); + if (!queryMap.image) { + errorImage.remove(); + } else { + errorImage.src = "resource://android/assets/" + queryMap.image; + } - if (queryMap.showContinueHttp === "true") { - // On the "HTTPS-Only" error page "Try again" doesn't make sense since reloading the page - // will just show an error page again. - tryAgainButton.style.display = 'none'; - } else { - continueHttpButton.style.display = 'none'; - } + if (queryMap.showContinueHttp === "true") { + // On the "HTTPS-Only" error page "Try again" doesn't make sense since reloading the page + // will just show an error page again. + tryAgainButton.style.display = "none"; + } else { + continueHttpButton.style.display = "none"; + } } var advancedVisible = false; @@ -58,65 +62,75 @@ var advancedVisible = false; * Used to show or hide the "advanced" button based on the validity of the SSL certificate */ function updateShowSSL(queryMap) { - /** @type {'true' | 'false'} */ - const showSSL = queryMap.showSSL; - if (typeof document.addCertException === "undefined") { - document.getElementById('advancedButton').style.display='none'; + /** @type {'true' | 'false'} */ + const showSSL = queryMap.showSSL; + if (typeof document.addCertException === "undefined") { + document.getElementById("advancedButton").style.display = "none"; + } else { + if (showSSL === "true") { + document.getElementById("advancedButton").style.display = "block"; } else { - if (showSSL === 'true') { - document.getElementById('advancedButton').style.display='block'; - } else { - document.getElementById('advancedButton').style.display='none'; - } + document.getElementById("advancedButton").style.display = "none"; } + } } /** * Used to show or hide the "accept" button based for the HSTS error page */ function updateShowHSTS(queryMap) { - const showHSTS = queryMap.showHSTS; - if (showHSTS === 'true') { - document.getElementById('advancedButton').style.display='block'; - document.getElementById('advancedPanelAcceptButton').style.display='none'; - } + const showHSTS = queryMap.showHSTS; + if (showHSTS === "true") { + document.getElementById("advancedButton").style.display = "block"; + document.getElementById("advancedPanelAcceptButton").style.display = "none"; + } } /** * Used to display information about the SSL certificate in `error_pages.html` */ function toggleAdvanced() { - if (advancedVisible) { - document.getElementById('badCertAdvancedPanel').style.display='none'; - } else { - document.getElementById('badCertAdvancedPanel').style.display='block'; - } - advancedVisible = !advancedVisible; + if (advancedVisible) { + document.getElementById("badCertAdvancedPanel").style.display = "none"; + } else { + document.getElementById("badCertAdvancedPanel").style.display = "block"; + } + advancedVisible = !advancedVisible; } /** * Used to bypass an SSL pages in `error_pages.html` */ async function acceptAndContinue(temporary) { - try { - await document.addCertException(temporary); - location.reload(); - } catch (error) { - console.error("Unexpected error: " + error) - } + try { + await document.addCertException(temporary); + location.reload(); + } catch (error) { + console.error("Unexpected error: " + error); + } } -document.addEventListener('DOMContentLoaded', function () { - if (window.history.length == 1) { - document.getElementById('advancedPanelBackButton').style.display = 'none'; - } else { - document.getElementById('advancedPanelBackButton').addEventListener('click', () => window.history.back()); - } +document.addEventListener("DOMContentLoaded", function () { + if (window.history.length == 1) { + document.getElementById("advancedPanelBackButton").style.display = "none"; + } else { + document + .getElementById("advancedPanelBackButton") + .addEventListener("click", () => window.history.back()); + } - document.getElementById('errorTryAgain').addEventListener('click', () => window.location.reload()); - document.getElementById('advancedButton').addEventListener('click', toggleAdvanced); - document.getElementById('advancedPanelAcceptButton').addEventListener('click', () => acceptAndContinue(true)); - document.getElementById('continueHttp').addEventListener('click', () => document.reloadWithHttpsOnlyException()); + document + .getElementById("errorTryAgain") + .addEventListener("click", () => window.location.reload()); + document + .getElementById("advancedButton") + .addEventListener("click", toggleAdvanced); + document + .getElementById("advancedPanelAcceptButton") + .addEventListener("click", () => acceptAndContinue(true)); + document + .getElementById("continueHttp") + .addEventListener("click", () => document.reloadWithHttpsOnlyException()); }); parseQuery(document.documentURI); |