diff options
Diffstat (limited to 'browser/base/content/blockedSite.xhtml')
-rw-r--r-- | browser/base/content/blockedSite.xhtml | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/browser/base/content/blockedSite.xhtml b/browser/base/content/blockedSite.xhtml new file mode 100644 index 000000000..10a4b33e8 --- /dev/null +++ b/browser/base/content/blockedSite.xhtml @@ -0,0 +1,196 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE html [ + <!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> + %htmlDTD; + <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> + %globalDTD; + <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" > + %brandDTD; + <!ENTITY % blockedSiteDTD SYSTEM "chrome://browser/locale/safebrowsing/phishing-afterload-warning-message.dtd"> + %blockedSiteDTD; +]> + +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<html xmlns="http://www.w3.org/1999/xhtml" class="blacklist"> + <head> + <link rel="stylesheet" href="chrome://browser/skin/blockedSite.css" type="text/css" media="all" /> + <link rel="icon" type="image/png" id="favicon" href="chrome://global/skin/icons/blacklist_favicon.png"/> + + <script type="application/javascript"><![CDATA[ + // Error url MUST be formatted like this: + // about:blocked?e=error_code&u=url(&o=1)? + // (o=1 when user overrides are allowed) + + // Note that this file uses document.documentURI to get + // the URL (with the format from above). This is because + // document.location.href gets the current URI off the docshell, + // which is the URL displayed in the location bar, i.e. + // the URI that the user attempted to load. + + function getErrorCode() + { + var url = document.documentURI; + var error = url.search(/e\=/); + var duffUrl = url.search(/\&u\=/); + return decodeURIComponent(url.slice(error + 2, duffUrl)); + } + + function getURL() + { + var url = document.documentURI; + var match = url.match(/&u=([^&]+)&/); + + // match == null if not found; if so, return an empty string + // instead of what would turn out to be portions of the URI + if (!match) + return ""; + + url = decodeURIComponent(match[1]); + + // If this is a view-source page, then get then real URI of the page + if (url.startsWith("view-source:")) + url = url.slice(12); + return url; + } + + /** + * Check whether this warning page should be overridable or whether + * the "ignore warning" button should be hidden. + */ + function getOverride() + { + var url = document.documentURI; + var match = url.match(/&o=1&/); + return !!match; + } + + /** + * Attempt to get the hostname via document.location. Fail back + * to getURL so that we always return something meaningful. + */ + function getHostString() + { + try { + return document.location.hostname; + } catch (e) { + return getURL(); + } + } + + function initPage() + { + var error = ""; + switch (getErrorCode()) { + case "malwareBlocked" : + error = "malware"; + break; + case "deceptiveBlocked" : + error = "phishing"; + break; + case "unwantedBlocked" : + error = "unwanted"; + break; + default: + return; + } + + var el; + + if (error !== "malware") { + el = document.getElementById("errorTitleText_malware"); + el.parentNode.removeChild(el); + el = document.getElementById("errorShortDescText_malware"); + el.parentNode.removeChild(el); + el = document.getElementById("errorLongDescText_malware"); + el.parentNode.removeChild(el); + } + + if (error !== "phishing") { + el = document.getElementById("errorTitleText_phishing"); + el.parentNode.removeChild(el); + el = document.getElementById("errorShortDescText_phishing"); + el.parentNode.removeChild(el); + el = document.getElementById("errorLongDescText_phishing"); + el.parentNode.removeChild(el); + } + + if (error !== "unwanted") { + el = document.getElementById("errorTitleText_unwanted"); + el.parentNode.removeChild(el); + el = document.getElementById("errorShortDescText_unwanted"); + el.parentNode.removeChild(el); + el = document.getElementById("errorLongDescText_unwanted"); + el.parentNode.removeChild(el); + } + + // Set sitename + document.getElementById(error + "_sitename").textContent = getHostString(); + document.title = document.getElementById("errorTitleText_" + error) + .innerHTML; + + if (!getOverride()) { + var btn = document.getElementById("ignoreWarningButton"); + if (btn) { + btn.parentNode.removeChild(btn); + } + } + + // Inform the test harness that we're done loading the page + var event = new CustomEvent("AboutBlockedLoaded"); + document.dispatchEvent(event); + } + ]]></script> + </head> + + <body dir="&locale.dir;"> + <div id="errorPageContainer" class="container"> + + <!-- Error Title --> + <div id="errorTitle" class="title"> + <h1 class="title-text" id="errorTitleText_phishing">&safeb.blocked.phishingPage.title2;</h1> + <h1 class="title-text" id="errorTitleText_malware">&safeb.blocked.malwarePage.title;</h1> + <h1 class="title-text" id="errorTitleText_unwanted">&safeb.blocked.unwantedPage.title;</h1> + </div> + + <div id="errorLongContent"> + + <!-- Short Description --> + <div id="errorShortDesc"> + <p id="errorShortDescText_phishing">&safeb.blocked.phishingPage.shortDesc2;</p> + <p id="errorShortDescText_malware">&safeb.blocked.malwarePage.shortDesc;</p> + <p id="errorShortDescText_unwanted">&safeb.blocked.unwantedPage.shortDesc;</p> + </div> + + <!-- Long Description --> + <div id="errorLongDesc"> + <p id="errorLongDescText_phishing">&safeb.blocked.phishingPage.longDesc2;</p> + <p id="errorLongDescText_malware">&safeb.blocked.malwarePage.longDesc;</p> + <p id="errorLongDescText_unwanted">&safeb.blocked.unwantedPage.longDesc;</p> + </div> + + <!-- Action buttons --> + <div id="buttons" class="button-container"> + <!-- Commands handled in browser.js --> + <button id="getMeOutButton" class="primary">&safeb.palm.accept.label;</button> + <div class="button-spacer"></div> + <button id="reportButton">&safeb.palm.reportPage.label;</button> + </div> + </div> + <div id="ignoreWarning"> + <button id="ignoreWarningButton">&safeb.palm.decline.label;</button> + </div> + </div> + <!-- + - Note: It is important to run the script this way, instead of using + - an onload handler. This is because error pages are loaded as + - LOAD_BACKGROUND, which means that onload handlers will not be executed. + --> + <script type="application/javascript"> + initPage(); + </script> + </body> +</html> |