2008-11-03 15:22:23 -08:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
|
|
# ***** BEGIN LICENSE BLOCK *****
|
|
|
|
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
|
|
#
|
|
|
|
# The contents of this file are subject to the Mozilla Public License Version
|
|
|
|
# 1.1 (the "License"); you may not use this file except in compliance with
|
|
|
|
# the License. You may obtain a copy of the License at
|
|
|
|
# http://www.mozilla.org/MPL/
|
|
|
|
#
|
|
|
|
# Software distributed under the License is distributed on an "AS IS" basis,
|
|
|
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
|
|
# for the specific language governing rights and limitations under the
|
|
|
|
# License.
|
|
|
|
#
|
|
|
|
# The Original Code is Private Browsing.
|
|
|
|
#
|
|
|
|
# The Initial Developer of the Original Code is
|
|
|
|
# Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
|
|
|
# Portions created by the Initial Developer are Copyright (C) 2008
|
|
|
|
# the Initial Developer. All Rights Reserved.
|
|
|
|
#
|
|
|
|
# Contributor(s):
|
|
|
|
#
|
|
|
|
# Alternatively, the contents of this file may be used under the terms of
|
|
|
|
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
|
|
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
|
|
# in which case the provisions of the GPL or the LGPL are applicable instead
|
|
|
|
# of those above. If you wish to allow use of your version of this file only
|
|
|
|
# under the terms of either the GPL or the LGPL, and not to allow others to
|
|
|
|
# use your version of this file under the terms of the MPL, indicate your
|
|
|
|
# decision by deleting the provisions above and replace them with the notice
|
|
|
|
# and other provisions required by the GPL or the LGPL. If you do not delete
|
|
|
|
# the provisions above, a recipient may use your version of this file under
|
|
|
|
# the terms of any one of the MPL, the GPL or the LGPL.
|
|
|
|
#
|
|
|
|
# ***** END LICENSE BLOCK *****
|
|
|
|
-->
|
|
|
|
<!DOCTYPE html [
|
|
|
|
<!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
|
|
|
|
%htmlDTD;
|
2010-04-21 13:15:13 -07:00
|
|
|
<!ENTITY % netErrorDTD SYSTEM "chrome://global/locale/netError.dtd">
|
|
|
|
%netErrorDTD;
|
2008-11-03 15:22:23 -08:00
|
|
|
<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
|
|
|
|
%globalDTD;
|
2010-04-21 13:15:13 -07:00
|
|
|
<!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
|
|
|
|
%browserDTD;
|
2010-09-10 12:55:32 -07:00
|
|
|
#ifdef XP_WIN
|
|
|
|
<!ENTITY basePBMenu.label "<span class='appMenuButton'>&brandShortName;</span><span class='toolsMenu'>&toolsMenu.label;</span>">
|
|
|
|
#elifdef XP_MACOSX
|
|
|
|
<!ENTITY basePBMenu.label "&toolsMenu.label;">
|
|
|
|
#else
|
|
|
|
<!ENTITY basePBMenu.label "<span class='appMenuButton'>&appMenuButton.label;</span><span class='toolsMenu'>&toolsMenu.label;</span>">
|
|
|
|
#endif
|
2008-11-03 15:22:23 -08:00
|
|
|
<!ENTITY % privatebrowsingpageDTD SYSTEM "chrome://browser/locale/aboutPrivateBrowsing.dtd">
|
|
|
|
%privatebrowsingpageDTD;
|
|
|
|
]>
|
|
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
|
|
<link rel="stylesheet" href="chrome://global/skin/netError.css" type="text/css" media="all"/>
|
|
|
|
<link rel="stylesheet" href="chrome://browser/skin/aboutPrivateBrowsing.css" type="text/css" media="all"/>
|
2010-05-27 17:34:06 -07:00
|
|
|
<style type="text/css"><![CDATA[
|
|
|
|
body.normal .showPrivate,
|
|
|
|
body.private .showNormal {
|
|
|
|
display: none;
|
|
|
|
}
|
2010-09-10 12:55:32 -07:00
|
|
|
body.appMenuButtonVisible .toolsMenu {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
body.appMenuButtonInvisible .appMenuButton {
|
|
|
|
display: none;
|
|
|
|
}
|
2010-05-27 17:34:06 -07:00
|
|
|
]]></style>
|
2009-11-05 05:53:26 -08:00
|
|
|
<script type="application/javascript;version=1.7"><![CDATA[
|
2008-11-06 22:41:28 -08:00
|
|
|
const Cc = Components.classes;
|
|
|
|
const Ci = Components.interfaces;
|
|
|
|
|
2009-10-16 23:36:37 -07:00
|
|
|
var pb = Cc["@mozilla.org/privatebrowsing;1"].
|
|
|
|
getService(Ci.nsIPrivateBrowsingService);
|
|
|
|
|
|
|
|
if (!pb.privateBrowsingEnabled) {
|
|
|
|
document.title = "]]>&privatebrowsingpage.title.normal;<![CDATA[";
|
|
|
|
setFavIcon("chrome://global/skin/icons/question-16.png");
|
|
|
|
} else {
|
|
|
|
#ifndef XP_MACOSX
|
|
|
|
document.title = "]]>&privatebrowsingpage.title;<![CDATA[";
|
|
|
|
#endif
|
|
|
|
setFavIcon("chrome://browser/skin/Privacy-16.png");
|
|
|
|
}
|
|
|
|
|
|
|
|
var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor)
|
|
|
|
.getInterface(Ci.nsIWebNavigation)
|
|
|
|
.QueryInterface(Ci.nsIDocShellTreeItem)
|
|
|
|
.rootTreeItem
|
|
|
|
.QueryInterface(Ci.nsIInterfaceRequestor)
|
|
|
|
.getInterface(Ci.nsIDOMWindow);
|
|
|
|
|
|
|
|
// Focus the location bar
|
|
|
|
mainWindow.focusAndSelectUrlBar();
|
2009-03-03 00:20:14 -08:00
|
|
|
|
2008-11-06 22:41:28 -08:00
|
|
|
function openSanitizeDialog() {
|
|
|
|
let browserGlue = Cc["@mozilla.org/browser/browserglue;1"].
|
|
|
|
getService(Ci.nsIBrowserGlue);
|
2009-08-04 11:10:23 -07:00
|
|
|
browserGlue.sanitize(mainWindow);
|
2008-11-06 22:41:28 -08:00
|
|
|
}
|
2009-01-01 22:37:04 -08:00
|
|
|
|
|
|
|
function setFavIcon(url) {
|
|
|
|
var icon = document.createElement("link");
|
|
|
|
icon.setAttribute("rel", "icon");
|
|
|
|
icon.setAttribute("type", "image/png");
|
|
|
|
icon.setAttribute("href", url);
|
2009-10-16 23:36:37 -07:00
|
|
|
var head = document.getElementsByTagName("head")[0];
|
|
|
|
head.insertBefore(icon, head.firstChild);
|
2009-01-01 22:37:04 -08:00
|
|
|
}
|
|
|
|
|
2009-10-16 23:36:37 -07:00
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
2009-01-01 22:37:04 -08:00
|
|
|
if (!pb.privateBrowsingEnabled) {
|
|
|
|
document.body.setAttribute("class", "normal");
|
2009-01-13 10:00:06 -08:00
|
|
|
}
|
|
|
|
|
2009-03-21 01:38:06 -07:00
|
|
|
// Set up the help link
|
|
|
|
let moreInfoURL = Cc["@mozilla.org/toolkit/URLFormatterService;1"].
|
|
|
|
getService(Ci.nsIURLFormatter).
|
|
|
|
formatURLPref("app.support.baseURL");
|
|
|
|
let moreInfoLink = document.getElementById("moreInfoLink");
|
|
|
|
if (moreInfoLink)
|
|
|
|
moreInfoLink.setAttribute("href", moreInfoURL + "private-browsing");
|
2010-09-10 12:55:32 -07:00
|
|
|
|
|
|
|
// Show the correct menu structure based on whether the App Menu button is
|
|
|
|
// shown or not.
|
|
|
|
var menuBar = mainWindow.document.getElementById("toolbar-menubar");
|
|
|
|
var appMenuButtonIsVisible = menuBar.getAttribute("autohide") == "true";
|
|
|
|
document.body.classList.add(appMenuButtonIsVisible ? "appMenuButtonVisible" :
|
|
|
|
"appMenuButtonInvisible");
|
2009-10-16 23:36:37 -07:00
|
|
|
}, false);
|
2010-08-21 09:49:27 -07:00
|
|
|
|
|
|
|
function togglePrivateBrowsing() {
|
|
|
|
mainWindow.gPrivateBrowsingUI.toggleMode();
|
|
|
|
}
|
2008-11-06 22:41:28 -08:00
|
|
|
]]></script>
|
2008-11-03 15:22:23 -08:00
|
|
|
</head>
|
|
|
|
|
2009-01-01 22:37:04 -08:00
|
|
|
<body dir="&locale.dir;"
|
2009-10-16 23:36:37 -07:00
|
|
|
class="private">
|
2008-11-03 15:22:23 -08:00
|
|
|
|
|
|
|
<!-- PAGE CONTAINER (for styling purposes only) -->
|
|
|
|
<div id="errorPageContainer">
|
2009-01-01 15:59:48 -08:00
|
|
|
|
2008-11-03 15:22:23 -08:00
|
|
|
<!-- Error Title -->
|
|
|
|
<div id="errorTitle">
|
2009-01-01 22:37:04 -08:00
|
|
|
<h1 id="errorTitleText" class="showPrivate">&privatebrowsingpage.title;</h1>
|
|
|
|
<h1 id="errorTitleTextNormal" class="showNormal">&privatebrowsingpage.title.normal;</h1>
|
2008-11-03 15:22:23 -08:00
|
|
|
</div>
|
2009-01-01 15:59:48 -08:00
|
|
|
|
2008-11-03 15:22:23 -08:00
|
|
|
<!-- LONG CONTENT (the section most likely to require scrolling) -->
|
|
|
|
<div id="errorLongContent">
|
2009-01-01 15:59:48 -08:00
|
|
|
|
2008-11-03 15:22:23 -08:00
|
|
|
<!-- Short Description -->
|
|
|
|
<div id="errorShortDesc">
|
2009-01-01 22:37:04 -08:00
|
|
|
<p id="errorShortDescText" class="showPrivate">&privatebrowsingpage.issueDesc;</p>
|
|
|
|
<p id="errorShortDescTextNormal" class="showNormal">&privatebrowsingpage.issueDesc.normal;</p>
|
2008-11-03 15:22:23 -08:00
|
|
|
</div>
|
|
|
|
|
2009-01-01 15:59:48 -08:00
|
|
|
<!-- Long Description -->
|
2008-11-03 15:22:23 -08:00
|
|
|
<div id="errorLongDesc">
|
2009-01-01 22:37:04 -08:00
|
|
|
<p id="errorLongDescText">&privatebrowsingpage.description;</p>
|
2008-11-03 15:22:23 -08:00
|
|
|
</div>
|
|
|
|
|
2009-01-01 22:37:04 -08:00
|
|
|
<!-- Start Private Browsing -->
|
|
|
|
<div id="startPrivateBrowsingDesc" class="showNormal">
|
2010-08-21 09:49:27 -07:00
|
|
|
<button xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
|
|
id="startPrivateBrowsing" label="&privatebrowsingpage.startPrivateBrowsing.label;"
|
2010-08-19 16:06:07 -07:00
|
|
|
accesskey="&privatebrowsingpage.startPrivateBrowsing.accesskey;"
|
2010-08-21 09:49:27 -07:00
|
|
|
oncommand="togglePrivateBrowsing();"/>
|
2009-01-01 22:37:04 -08:00
|
|
|
</div>
|
|
|
|
|
2008-11-03 15:22:23 -08:00
|
|
|
<!-- Footer -->
|
|
|
|
<div id="footerDesc">
|
2010-09-10 12:55:32 -07:00
|
|
|
<p id="footerText" class="showPrivate">&privatebrowsingpage.howToStop2;</p>
|
|
|
|
<p id="footerTextNormal" class="showNormal">&privatebrowsingpage.howToStart2;</p>
|
2008-11-03 15:22:23 -08:00
|
|
|
</div>
|
2009-03-21 01:38:06 -07:00
|
|
|
|
|
|
|
<!-- More Info -->
|
|
|
|
<div id="moreInfo" class="showPrivate">
|
|
|
|
<p id="moreInfoText">
|
|
|
|
&privatebrowsingpage.moreInfo;
|
2009-03-28 00:50:36 -07:00
|
|
|
</p>
|
|
|
|
<p id="moreInfoLinkContainer">
|
2009-03-21 01:38:06 -07:00
|
|
|
<a id="moreInfoLink" target="_blank">&privatebrowsingpage.learnMore;</a>
|
|
|
|
</p>
|
|
|
|
</div>
|
2008-11-03 15:22:23 -08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|