summaryrefslogtreecommitdiffstats
path: root/application/basilisk/components/privatebrowsing
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-02 03:32:58 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-02 03:32:58 -0500
commite72ef92b5bdc43cd2584198e2e54e951b70299e8 (patch)
tree01ceb4a897c33eca9e7ccf2bc3aefbe530169fe5 /application/basilisk/components/privatebrowsing
parent0d19b77d3eaa5b8d837bf52c19759e68e42a1c4c (diff)
downloadUXP-e72ef92b5bdc43cd2584198e2e54e951b70299e8.tar
UXP-e72ef92b5bdc43cd2584198e2e54e951b70299e8.tar.gz
UXP-e72ef92b5bdc43cd2584198e2e54e951b70299e8.tar.lz
UXP-e72ef92b5bdc43cd2584198e2e54e951b70299e8.tar.xz
UXP-e72ef92b5bdc43cd2584198e2e54e951b70299e8.zip
Add Basilisk
Diffstat (limited to 'application/basilisk/components/privatebrowsing')
-rw-r--r--application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.css10
-rw-r--r--application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.js98
-rw-r--r--application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml79
-rw-r--r--application/basilisk/components/privatebrowsing/jar.mn8
-rw-r--r--application/basilisk/components/privatebrowsing/moz.build7
5 files changed, 202 insertions, 0 deletions
diff --git a/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.css b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.css
new file mode 100644
index 000000000..29d7a843d
--- /dev/null
+++ b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.css
@@ -0,0 +1,10 @@
+html.private .showNormal,
+html.normal .showPrivate,
+body[tpEnabled] .showTpDisabled,
+body:not([tpEnabled]) .showTpEnabled {
+ display: none !important;
+}
+
+.hide {
+ display: none;
+}
diff --git a/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.js b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.js
new file mode 100644
index 000000000..4a95efbd5
--- /dev/null
+++ b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.js
@@ -0,0 +1,98 @@
+/* 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/. */
+
+var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+
+const FAVICON_QUESTION = "chrome://global/skin/icons/question-32.png";
+const FAVICON_PRIVACY = "chrome://browser/skin/privatebrowsing/favicon.svg";
+
+var stringBundle = Services.strings.createBundle(
+ "chrome://browser/locale/aboutPrivateBrowsing.properties");
+
+var prefBranch = Services.prefs.getBranch("privacy.trackingprotection.");
+var prefObserver = {
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver,
+ Ci.nsISupportsWeakReference]),
+ observe: function () {
+ let tpSubHeader = document.getElementById("tpSubHeader");
+ let tpToggle = document.getElementById("tpToggle");
+ let tpButton = document.getElementById("tpButton");
+ let title = document.getElementById("title");
+ let titleTracking = document.getElementById("titleTracking");
+ let globalTrackingEnabled = prefBranch.getBoolPref("enabled");
+ let trackingEnabled = globalTrackingEnabled ||
+ prefBranch.getBoolPref("pbmode.enabled");
+
+ tpButton.classList.toggle("hide", globalTrackingEnabled);
+ tpToggle.checked = trackingEnabled;
+ title.classList.toggle("hide", trackingEnabled);
+ titleTracking.classList.toggle("hide", !trackingEnabled);
+ tpSubHeader.classList.toggle("tp-off", !trackingEnabled);
+ }
+};
+prefBranch.addObserver("pbmode.enabled", prefObserver, true);
+prefBranch.addObserver("enabled", prefObserver, true);
+
+function setFavIcon(url) {
+ document.getElementById("favicon").setAttribute("href", url);
+}
+
+document.addEventListener("DOMContentLoaded", function () {
+ if (!PrivateBrowsingUtils.isContentWindowPrivate(window)) {
+ document.documentElement.classList.remove("private");
+ document.documentElement.classList.add("normal");
+ document.title = stringBundle.GetStringFromName("title.normal");
+ document.getElementById("favicon")
+ .setAttribute("href", FAVICON_QUESTION);
+ document.getElementById("startPrivateBrowsing")
+ .addEventListener("command", openPrivateWindow);
+ return;
+ }
+
+ let tpToggle = document.getElementById("tpToggle");
+ document.getElementById("tpButton").addEventListener('click', () => {
+ tpToggle.click();
+ });
+
+ document.title = stringBundle.GetStringFromName("title.head");
+ document.getElementById("favicon")
+ .setAttribute("href", FAVICON_PRIVACY);
+ tpToggle.addEventListener("change", toggleTrackingProtection);
+ document.getElementById("startTour")
+ .addEventListener("click", dontShowIntroPanelAgain);
+
+ let formatURLPref = Cc["@mozilla.org/toolkit/URLFormatterService;1"]
+ .getService(Ci.nsIURLFormatter).formatURLPref;
+ document.getElementById("startTour").setAttribute("href",
+ formatURLPref("privacy.trackingprotection.introURL"));
+ document.getElementById("learnMore").setAttribute("href",
+ formatURLPref("app.support.baseURL") + "private-browsing");
+
+ // Update state that depends on preferences.
+ prefObserver.observe();
+});
+
+function openPrivateWindow() {
+ // Ask chrome to open a private window
+ document.dispatchEvent(
+ new CustomEvent("AboutPrivateBrowsingOpenWindow", {bubbles:true}));
+}
+
+function toggleTrackingProtection() {
+ // Ask chrome to enable tracking protection
+ document.dispatchEvent(
+ new CustomEvent("AboutPrivateBrowsingToggleTrackingProtection",
+ {bubbles: true}));
+}
+
+function dontShowIntroPanelAgain() {
+ // Ask chrome to disable the doorhanger
+ document.dispatchEvent(
+ new CustomEvent("AboutPrivateBrowsingDontShowIntroPanelAgain",
+ {bubbles: true}));
+}
diff --git a/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
new file mode 100644
index 000000000..466207734
--- /dev/null
+++ b/application/basilisk/components/privatebrowsing/content/aboutPrivateBrowsing.xhtml
@@ -0,0 +1,79 @@
+<?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 % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+ <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+ <!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd">
+ %browserDTD;
+ <!ENTITY % aboutPrivateBrowsingDTD SYSTEM "chrome://browser/locale/aboutPrivateBrowsing.dtd">
+ %aboutPrivateBrowsingDTD;
+]>
+
+<html xmlns="http://www.w3.org/1999/xhtml" class="private">
+ <head>
+ <link id="favicon" rel="icon" type="image/png"/>
+ <link rel="stylesheet" href="chrome://browser/content/aboutPrivateBrowsing.css" type="text/css" media="all"/>
+ <link rel="stylesheet" href="chrome://browser/skin/privatebrowsing/aboutPrivateBrowsing.css" type="text/css" media="all"/>
+ <script type="application/javascript;version=1.7" src="chrome://browser/content/aboutPrivateBrowsing.js"></script>
+ </head>
+
+ <body dir="&locale.dir;">
+ <p class="showNormal">&aboutPrivateBrowsing.notPrivate;</p>
+ <button xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ id="startPrivateBrowsing"
+ class="showNormal"
+ label="&privatebrowsingpage.openPrivateWindow.label;"
+ accesskey="&privatebrowsingpage.openPrivateWindow.accesskey;"/>
+ <div class="showPrivate about-content-container">
+ <h1 class="title">
+ <span id="title">&privateBrowsing.title;</span>
+ <span id="titleTracking">&privateBrowsing.title.tracking;</span>
+ </h1>
+ <section class="section-main">
+ <p>&aboutPrivateBrowsing.info.notsaved.before;<strong>&aboutPrivateBrowsing.info.notsaved.emphasize;</strong>&aboutPrivateBrowsing.info.notsaved.after;</p>
+ <div class="list-row">
+ <ul>
+ <li>&aboutPrivateBrowsing.info.visited;</li>
+ <li>&aboutPrivateBrowsing.info.cookies;</li>
+ <li>&aboutPrivateBrowsing.info.searches;</li>
+ <li>&aboutPrivateBrowsing.info.temporaryFiles;</li>
+ </ul>
+ </div>
+ <p>&aboutPrivateBrowsing.info.saved.before;<strong>&aboutPrivateBrowsing.info.saved.emphasize;</strong>&aboutPrivateBrowsing.info.saved.after2;</p>
+ <div class="list-row">
+ <ul>
+ <li>&aboutPrivateBrowsing.info.bookmarks;</li>
+ <li>&aboutPrivateBrowsing.info.downloads;</li>
+ </ul>
+ </div>
+ <p>&aboutPrivateBrowsing.note.before;<strong>&aboutPrivateBrowsing.note.emphasize;</strong>&aboutPrivateBrowsing.note.after;</p>
+ </section>
+
+ <h2 id="tpSubHeader" class="about-subheader">
+ <span class="tpTitle">&trackingProtection.title;</span>
+ <input id="tpToggle" class="toggle toggle-input" type="checkbox"/>
+ <span id="tpButton" class="toggle-btn"></span>
+ </h2>
+
+ <section class="section-main">
+ <p>&trackingProtection.description2;</p>
+ <p>
+ <a id="startTour" class="button">&trackingProtection.startTour1;</a>
+ </p>
+ </section>
+
+ <section class="section-main">
+ <p class="about-info">&aboutPrivateBrowsing.learnMore3.before;<a id="learnMore" target="_blank">&aboutPrivateBrowsing.learnMore3.title;</a>&aboutPrivateBrowsing.learnMore3.after;</p>
+ </section>
+
+ </div>
+ </body>
+</html>
diff --git a/application/basilisk/components/privatebrowsing/jar.mn b/application/basilisk/components/privatebrowsing/jar.mn
new file mode 100644
index 000000000..a98d65163
--- /dev/null
+++ b/application/basilisk/components/privatebrowsing/jar.mn
@@ -0,0 +1,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/.
+
+browser.jar:
+ content/browser/aboutPrivateBrowsing.css (content/aboutPrivateBrowsing.css)
+ content/browser/aboutPrivateBrowsing.xhtml (content/aboutPrivateBrowsing.xhtml)
+ content/browser/aboutPrivateBrowsing.js (content/aboutPrivateBrowsing.js)
diff --git a/application/basilisk/components/privatebrowsing/moz.build b/application/basilisk/components/privatebrowsing/moz.build
new file mode 100644
index 000000000..aac3a838c
--- /dev/null
+++ b/application/basilisk/components/privatebrowsing/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ['jar.mn']