browser/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
author Jonas Sicking <jonas@sicking.cc>
Sat, 21 Aug 2010 18:49:27 +0200
changeset 51165 1fb7b57d30266d96ee0da3b9934531dafc5d3fa3
parent 51157 ee6fb954cbc3de0f76e84cad6bdff452116e1b03
child 53739 4e868145aa6bac0f9e7d0a09cbdae870671d7dd3
permissions -rw-r--r--
Bug 546857 Part 4b: Fix some errors in previous patch to not use XUL on error pages. r=dao a=blocker

<?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;
  <!ENTITY % netErrorDTD SYSTEM "chrome://global/locale/netError.dtd">
  %netErrorDTD;
  <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
  %globalDTD;
  <!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
  %browserDTD;
  <!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"/>
    <style type="text/css"><![CDATA[
      body.normal .showPrivate,
      body.private .showNormal {
        display: none;
      }
    ]]></style>
    <script type="application/javascript;version=1.7"><![CDATA[
      const Cc = Components.classes;
      const Ci = Components.interfaces;

      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();

      function openSanitizeDialog() {
        let browserGlue = Cc["@mozilla.org/browser/browserglue;1"].
                          getService(Ci.nsIBrowserGlue);
        browserGlue.sanitize(mainWindow);
      }

      function setFavIcon(url) {
        var icon = document.createElement("link");
        icon.setAttribute("rel", "icon");
        icon.setAttribute("type", "image/png");
        icon.setAttribute("href", url);
        var head = document.getElementsByTagName("head")[0];
        head.insertBefore(icon, head.firstChild);
      }

      document.addEventListener("DOMContentLoaded", function () {
        if (!pb.privateBrowsingEnabled) {
          document.body.setAttribute("class", "normal");
        }

        // 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");
      }, false);
      
      function togglePrivateBrowsing() {
        mainWindow.gPrivateBrowsingUI.toggleMode();
      }
    ]]></script>
  </head>

  <body dir="&locale.dir;"
        class="private">

    <!-- PAGE CONTAINER (for styling purposes only) -->
    <div id="errorPageContainer">

      <!-- Error Title -->
      <div id="errorTitle">
        <h1 id="errorTitleText" class="showPrivate">&privatebrowsingpage.title;</h1>
        <h1 id="errorTitleTextNormal" class="showNormal">&privatebrowsingpage.title.normal;</h1>
      </div>

      <!-- LONG CONTENT (the section most likely to require scrolling) -->
      <div id="errorLongContent">

        <!-- Short Description -->
        <div id="errorShortDesc">
          <p id="errorShortDescText" class="showPrivate">&privatebrowsingpage.issueDesc;</p>
          <p id="errorShortDescTextNormal" class="showNormal">&privatebrowsingpage.issueDesc.normal;</p>
        </div>

        <!-- Long Description -->
        <div id="errorLongDesc">
          <p id="errorLongDescText">&privatebrowsingpage.description;</p>
        </div>

        <!-- Start Private Browsing -->
        <div id="startPrivateBrowsingDesc" class="showNormal">
          <button xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
                  id="startPrivateBrowsing" label="&privatebrowsingpage.startPrivateBrowsing.label;"
                  accesskey="&privatebrowsingpage.startPrivateBrowsing.accesskey;"
                  oncommand="togglePrivateBrowsing();"/>
        </div>

        <!-- Footer -->
        <div id="footerDesc">
          <p id="footerText" class="showPrivate">&privatebrowsingpage.howToStop;</p>
          <p id="footerTextNormal" class="showNormal">&privatebrowsingpage.howToStart;</p>
        </div>

        <!-- More Info -->
        <div id="moreInfo" class="showPrivate">
          <p id="moreInfoText">
            &privatebrowsingpage.moreInfo;
          </p>
          <p id="moreInfoLinkContainer">
            <a id="moreInfoLink" target="_blank">&privatebrowsingpage.learnMore;</a>
          </p>
        </div>
      </div>
    </div>

  </body>
</html>