<?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>