summaryrefslogtreecommitdiffstats
path: root/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
blob: 95744cf5ffd819a5dc470d0755de2358a5aba879 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?xml version="1.0" encoding="UTF-8"?>
<!--
# 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/.
-->
<!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;
#ifdef XP_MACOSX
  <!ENTITY basePBMenu.label   "&fileMenu.label;">
#else
  <!ENTITY basePBMenu.label   "<span class='appMenuButton'>&brandShortName;</span><span class='fileMenu'>&fileMenu.label;</span>">
#endif
  <!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;
      }
      body.appMenuButtonVisible .fileMenu {
        display: none;
      }
      body.appMenuButtonInvisible .appMenuButton {
        display: none;
      }
    ]]></style>
    <script type="application/javascript;version=1.7"><![CDATA[
      const Cc = Components.classes;
      const Ci = Components.interfaces;

      Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");

      if (!PrivateBrowsingUtils.isWindowPrivate(window)) {
        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 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 (!PrivateBrowsingUtils.isWindowPrivate(window)) {
          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");

        // 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");
      }, false);

      function openPrivateWindow() {
        mainWindow.OpenBrowserWindow({private: true});
      }
    ]]></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.perwindow.issueDesc;</p>
          <p id="errorShortDescTextNormal" class="showNormal">&privatebrowsingpage.perwindow.issueDesc.normal;</p>
        </div>

        <!-- Long Description -->
        <div id="errorLongDesc">
          <p id="errorLongDescText">&privatebrowsingpage.perwindow.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.openPrivateWindow.label;"
                  accesskey="&privatebrowsingpage.openPrivateWindow.accesskey;"
                  oncommand="openPrivateWindow();"/>
        </div>

        <!-- Footer -->
        <div id="footerDesc">
          <p id="footerText" class="showPrivate">&privatebrowsingpage.howToStop3;</p>
          <p id="footerTextNormal" class="showNormal">&privatebrowsingpage.howToStart3;</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>