[Pkg-mozext-commits] [requestpolicy] 18/100: get back "more" button on redirect notification

David Prévot taffit at moszumanska.debian.org
Fri Dec 12 22:56:48 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository requestpolicy.

commit 48364cd7583d3539a1550689b014a47d9c624a5b
Author: myrdd <myrdd at users.noreply.github.com>
Date:   Sat Sep 13 16:32:17 2014 +0200

    get back "more" button on redirect notification
    
    fixes #468
---
 src/content/classicmenu.js | 132 +++++++++++++++++++++++++++++++++++++++++++++
 src/content/overlay.js     |  52 +++++++++++-------
 src/content/overlay.xul    |   1 +
 src/skin/requestpolicy.css |  11 ++++
 4 files changed, 177 insertions(+), 19 deletions(-)

diff --git a/src/content/classicmenu.js b/src/content/classicmenu.js
new file mode 100644
index 0000000..4bd25b6
--- /dev/null
+++ b/src/content/classicmenu.js
@@ -0,0 +1,132 @@
+/*
+ * ***** BEGIN LICENSE BLOCK *****
+ *
+ * RequestPolicy - A Firefox extension for control over cross-site requests.
+ * Copyright (c) 2008 Justin Samuel
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * ***** END LICENSE BLOCK *****
+ */
+
+// if (!requestpolicy) {
+//   var requestpolicy = {
+//     mod : {}
+//   };
+// }
+//
+// Components.utils.import("resource://requestpolicy/DomainUtil.jsm",
+//     requestpolicy.mod);
+// Components.utils.import("resource://requestpolicy/Logger.jsm",
+//     requestpolicy.mod);
+// Components.utils.import("resource://requestpolicy/Policy.jsm",
+//     requestpolicy.mod);
+// Components.utils.import("resource://requestpolicy/RequestUtil.jsm",
+//     requestpolicy.mod);
+// Components.utils.import("resource://requestpolicy/PolicyManager.jsm",
+//     requestpolicy.mod);
+
+requestpolicy.classicmenu = {
+
+  /**
+  * Reloads the current document if the user's preferences indicate it should
+  * be reloaded.
+  */
+  _conditionallyReloadDocument : function() {
+//     if (requestpolicy.menu._rpService.prefs.getBoolPref("autoReload")) {
+    content.document.location.reload(false);
+//     }
+  },
+
+
+  addMenuSeparator : function(menu) {
+    var separator = document.createElement("menuseparator");
+    menu.insertBefore(separator, menu.firstChild);
+    return separator;
+  },
+
+  addMenuItem : function(menu, label, oncommand) {
+    var menuItem = document.createElement("menuitem");
+    menuItem.setAttribute("label", label);
+    oncommand = oncommand +
+        " requestpolicy.classicmenu._conditionallyReloadDocument();";
+    menuItem.setAttribute("oncommand", oncommand);
+    // menuItem.setAttribute("tooltiptext", node.getAttribute("tooltiptext"));
+    menu.insertBefore(menuItem, menu.firstChild);
+    return menuItem;
+  },
+
+
+  addMenuItemTemporarilyAllowOrigin : function(menu, originHost) {
+    var label = requestpolicy.menu._strbundle.
+        getFormattedString("allowOriginTemporarily", [originHost]);
+    var command = "requestpolicy.overlay.temporarilyAllowOrigin('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(originHost) + "');";
+    var item = this.addMenuItem(menu, label, command);
+    item.setAttribute("class", "requestpolicyTemporary");
+    return item;
+  },
+
+  addMenuItemAllowOrigin : function(menu, originHost) {
+    var label = requestpolicy.menu._strbundle.
+        getFormattedString("allowOrigin", [originHost]);
+    var command = "requestpolicy.overlay.allowOrigin('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(originHost) + "');";
+    return this.addMenuItem(menu, label, command);
+  },
+
+
+  addMenuItemTemporarilyAllowOriginToDest : function(menu, originHost,
+                                                     destHost) {
+    var label = requestpolicy.menu._strbundle.getFormattedString(
+        "allowOriginToDestinationTemporarily", [originHost, destHost]);
+    var command = "requestpolicy.overlay.temporarilyAllowOriginToDestination('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(originHost) + "', '"
+        + requestpolicy.menu._sanitizeJsFunctionArg(destHost) + "');";
+    var item = this.addMenuItem(menu, label, command);
+    item.setAttribute("class", "requestpolicyTemporary");
+    return item;
+  },
+
+  addMenuItemAllowOriginToDest : function(menu, originHost, destHost) {
+    var label = requestpolicy.menu._strbundle.getFormattedString(
+        "allowOriginToDestination", [originHost, destHost]);
+    var command = "requestpolicy.overlay.allowOriginToDestination('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(originHost) + "', '"
+        + requestpolicy.menu._sanitizeJsFunctionArg(destHost) + "');";
+    var item = this.addMenuItem(menu, label, command);
+    item.setAttribute("class", "requestpolicyAllowOriginToDest");
+    return item;
+  },
+
+
+  addMenuItemTemporarilyAllowDest : function(menu, destHost) {
+    var label = requestpolicy.menu._strbundle.
+        getFormattedString("allowDestinationTemporarily", [destHost]);
+    var command = "requestpolicy.overlay.temporarilyAllowDestination('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(destHost) + "');";
+    var item = this.addMenuItem(menu, label, command);
+    item.setAttribute("class", "requestpolicyTemporary");
+    return item;
+  },
+
+  addMenuItemAllowDest : function(menu, destHost) {
+    var label = requestpolicy.menu._strbundle.
+        getFormattedString("allowDestination", [destHost]);
+    var command = "requestpolicy.overlay.allowDestination('"
+        + requestpolicy.menu._sanitizeJsFunctionArg(destHost) + "');";
+    return this.addMenuItem(menu, label, command);
+  }
+
+}
diff --git a/src/content/overlay.js b/src/content/overlay.js
index d12655f..8ff9805 100644
--- a/src/content/overlay.js
+++ b/src/content/overlay.js
@@ -410,19 +410,33 @@ requestpolicy.overlay = {
     var notificationButtonDenyKey = this._strbundle
         .getString("deny.accesskey");
 
-//    var optionsPopupName = "requestpolicyRedirectNotificationOptions";
-//    var optionsPopup = document.getElementById(optionsPopupName);
-//    while (optionsPopup.firstChild) {
-//      optionsPopup.removeChild(optionsPopup.firstChild);
-//    }
-//    var currentIdent = this._rpService
-//        .getUriIdentifier(targetDocument.location);
-//    var destIdent = this._rpService.getUriIdentifier(redirectTargetUri);
-//
-//    requestpolicy.menu.addMenuItemTemporarilyAllowOriginToDest(optionsPopup,
-//        currentIdent, destIdent);
-//    requestpolicy.menu.addMenuItemAllowOriginToDest(optionsPopup, currentIdent,
-//        destIdent);
+    var optionsPopupName = "requestpolicyRedirectNotificationOptions";
+    var optionsPopup = document.getElementById(optionsPopupName);
+    while (optionsPopup.firstChild) {
+      optionsPopup.removeChild(optionsPopup.firstChild);
+    }
+
+    var origin = requestpolicy.menu._addWildcard(
+        requestpolicy.mod.DomainUtil.getDomain(this.getTopLevelDocumentUri()));
+    var dest = requestpolicy.menu._addWildcard(
+        requestpolicy.mod.DomainUtil.getDomain(redirectTargetUri));
+
+    requestpolicy.classicmenu.
+        addMenuItemTemporarilyAllowDest(optionsPopup, dest);
+    requestpolicy.classicmenu.addMenuItemAllowDest(optionsPopup, dest);
+    requestpolicy.classicmenu.addMenuSeparator(optionsPopup);
+
+    requestpolicy.classicmenu.
+        addMenuItemTemporarilyAllowOrigin(optionsPopup, origin);
+    requestpolicy.classicmenu.addMenuItemAllowOrigin(optionsPopup, origin);
+    requestpolicy.classicmenu.addMenuSeparator(optionsPopup);
+
+    requestpolicy.classicmenu.
+        addMenuItemTemporarilyAllowOriginToDest(optionsPopup, origin, dest);
+    requestpolicy.classicmenu.
+        addMenuItemAllowOriginToDest(optionsPopup, origin, dest);
+
+
 
     const rpServiceObj = this._rpService;
 
@@ -460,12 +474,12 @@ requestpolicy.overlay = {
           callback : function() {
             // Do nothing. The notification closes when this is called.
           }
-//      },
-//      {
-//        label : notificationButtonOptions,
-//        accessKey : notificationButtonOptionsKey,
-//        popup : optionsPopupName,
-//        callback : null
+        },
+        {
+          label : notificationButtonOptions,
+          accessKey : notificationButtonOptionsKey,
+          popup : optionsPopupName,
+          callback : null
         }
       ];
       const priority = notificationBox.PRIORITY_WARNING_MEDIUM;
diff --git a/src/content/overlay.xul b/src/content/overlay.xul
index 2639a77..5030c84 100644
--- a/src/content/overlay.xul
+++ b/src/content/overlay.xul
@@ -33,6 +33,7 @@
 
   <script type="application/x-javascript" src="overlay.js" />
   <script type="application/x-javascript" src="menu.js" />
+  <script type="application/x-javascript" src="classicmenu.js" />
   <script type="application/x-javascript" src="test.js" />
 
   <menupopup id="menu_ToolsPopup">
diff --git a/src/skin/requestpolicy.css b/src/skin/requestpolicy.css
index 14cd4d6..3701b2d 100644
--- a/src/skin/requestpolicy.css
+++ b/src/skin/requestpolicy.css
@@ -324,6 +324,17 @@ toolbar[iconsize="small"] #requestpolicyToolbarButton[requestpolicyPermissive="t
 }
 
 /*********************************************
+* ClassicMenu contents
+*********************************************/
+.requestpolicyTemporary {
+  font-style: italic;
+}
+
+.requestpolicyAllowOriginToDest {
+  font-weight: bold;
+}
+
+/*********************************************
  * Request Log
  *********************************************/
 #requestpolicy-requestLog-close {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/requestpolicy.git



More information about the Pkg-mozext-commits mailing list