[Pkg-mozext-commits] [requestpolicy] 26/257: [ref] classicmenu: use `addEventListener`
David Prévot
taffit at moszumanska.debian.org
Thu Jan 28 03:19:53 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository requestpolicy.
commit fe32ec5c9c541042e9589be605f1abed29d1e1b4
Author: Martin Kimmerle <dev at 256k.de>
Date: Sun Aug 9 13:08:22 2015 +0200
[ref] classicmenu: use `addEventListener`
---
src/content/ui/classicmenu.js | 78 +++++++++++++++++++++++++++++--------------
src/content/ui/menu.js | 5 ---
src/content/ui/overlay.js | 6 ++--
3 files changed, 55 insertions(+), 34 deletions(-)
diff --git a/src/content/ui/classicmenu.js b/src/content/ui/classicmenu.js
index a03ca79..3dfb9a5 100644
--- a/src/content/ui/classicmenu.js
+++ b/src/content/ui/classicmenu.js
@@ -39,16 +39,36 @@ rpcontinued.classicmenu = (function() {
}());
let {rpPrefBranch} = ScriptLoader.importModule("lib/prefs");
let {StringUtils} = ScriptLoader.importModule("lib/utils/strings");
+ let {DOMUtils} = ScriptLoader.importModule("lib/utils/dom");
/**
* Reloads the current document if the user's preferences indicate it should
* be reloaded.
*/
- self._conditionallyReloadDocument = function() {
+ function conditionallyReloadDocument() {
if (rpPrefBranch.getBoolPref("autoReload")) {
content.document.location.reload(false);
}
+ }
+
+
+ /**
+ * Removes all menu items and removes all event listeners.
+ */
+ self.emptyMenu = function (menu) {
+ var menuitems = menu.getElementsByTagName("menuitem");
+ for (let item of menuitems) {
+ if (!item.hasOwnProperty("rpListener")) {
+ Logger.warning(Logger.TYPE_ERROR, "There's a menuitem without " +
+ "listener!");
+ continue;
+ }
+
+ item.removeEventListener("command", item.rpListener, false);
+ delete item.rpListener;
+ }
+ DOMUtils.removeChildren(menu);
};
@@ -58,12 +78,15 @@ rpcontinued.classicmenu = (function() {
return separator;
};
- self.addMenuItem = function(menu, label, oncommand) {
+ self.addMenuItem = function(menu, label, aCallback) {
var menuItem = document.createElement("menuitem");
menuItem.setAttribute("label", label);
- oncommand = oncommand +
- " rpcontinued.classicmenu._conditionallyReloadDocument();";
- menuItem.setAttribute("oncommand", oncommand);
+ var listener = function () {
+ aCallback();
+ conditionallyReloadDocument();
+ };
+ menuItem.addEventListener("command", listener, false);
+ menuItem.rpListener = listener;
// menuItem.setAttribute("tooltiptext", node.getAttribute("tooltiptext"));
menu.insertBefore(menuItem, menu.firstChild);
return menuItem;
@@ -72,18 +95,20 @@ rpcontinued.classicmenu = (function() {
self.addMenuItemTemporarilyAllowOrigin = function(menu, originHost) {
var label = StringUtils.$str("allowOriginTemporarily", [originHost]);
- var command = "rpcontinued.overlay.temporarilyAllowOrigin('"
- + rpcontinued.menu._sanitizeJsFunctionArg(originHost) + "');";
- var item = self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.temporarilyAllowOrigin(originHost);
+ };
+ var item = self.addMenuItem(menu, label, callback);
item.setAttribute("class", "rpcontinuedTemporary");
return item;
};
self.addMenuItemAllowOrigin = function(menu, originHost) {
var label = StringUtils.$str("allowOrigin", [originHost]);
- var command = "rpcontinued.overlay.allowOrigin('"
- + rpcontinued.menu._sanitizeJsFunctionArg(originHost) + "');";
- return self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.allowOrigin(originHost);
+ };
+ return self.addMenuItem(menu, label, callback);
};
@@ -91,10 +116,11 @@ rpcontinued.classicmenu = (function() {
destHost) {
var label = StringUtils.$str("allowOriginToDestinationTemporarily",
[originHost, destHost]);
- var command = "rpcontinued.overlay.temporarilyAllowOriginToDestination('"
- + rpcontinued.menu._sanitizeJsFunctionArg(originHost) + "', '"
- + rpcontinued.menu._sanitizeJsFunctionArg(destHost) + "');";
- var item = self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.temporarilyAllowOriginToDestination(originHost,
+ destHost);
+ };
+ var item = self.addMenuItem(menu, label, callback);
item.setAttribute("class", "rpcontinuedTemporary");
return item;
};
@@ -102,10 +128,10 @@ rpcontinued.classicmenu = (function() {
self.addMenuItemAllowOriginToDest = function(menu, originHost, destHost) {
var label = StringUtils.$str("allowOriginToDestination",
[originHost, destHost]);
- var command = "rpcontinued.overlay.allowOriginToDestination('"
- + rpcontinued.menu._sanitizeJsFunctionArg(originHost) + "', '"
- + rpcontinued.menu._sanitizeJsFunctionArg(destHost) + "');";
- var item = self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.allowOriginToDestination(originHost, destHost);
+ };
+ var item = self.addMenuItem(menu, label, callback);
item.setAttribute("class", "rpcontinuedAllowOriginToDest");
return item;
};
@@ -113,18 +139,20 @@ rpcontinued.classicmenu = (function() {
self.addMenuItemTemporarilyAllowDest = function(menu, destHost) {
var label = StringUtils.$str("allowDestinationTemporarily", [destHost]);
- var command = "rpcontinued.overlay.temporarilyAllowDestination('"
- + rpcontinued.menu._sanitizeJsFunctionArg(destHost) + "');";
- var item = self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.temporarilyAllowDestination(destHost);
+ };
+ var item = self.addMenuItem(menu, label, callback);
item.setAttribute("class", "rpcontinuedTemporary");
return item;
};
self.addMenuItemAllowDest = function(menu, destHost) {
var label = StringUtils.$str("allowDestination", [destHost]);
- var command = "rpcontinued.overlay.allowDestination('"
- + rpcontinued.menu._sanitizeJsFunctionArg(destHost) + "');";
- return self.addMenuItem(menu, label, command);
+ var callback = function () {
+ rpcontinued.overlay.allowDestination(destHost);
+ };
+ return self.addMenuItem(menu, label, callback);
};
return self;
diff --git a/src/content/ui/menu.js b/src/content/ui/menu.js
index bb58cd6..c53eb99 100644
--- a/src/content/ui/menu.js
+++ b/src/content/ui/menu.js
@@ -824,11 +824,6 @@ rpcontinued.menu = (function() {
return guiOrigins;
};
- self._sanitizeJsFunctionArg = function(str) {
- // strip single quotes and backslashes
- return str.replace(/['\\]/g, "");
- };
-
self._isIPAddressOrSingleName = function(hostname) {
return DomainUtil.isIPAddress(hostname) ||
hostname.indexOf(".") == -1;
diff --git a/src/content/ui/overlay.js b/src/content/ui/overlay.js
index d5e1785..08b4ee1 100644
--- a/src/content/ui/overlay.js
+++ b/src/content/ui/overlay.js
@@ -49,7 +49,6 @@ rpcontinued.overlay = (function() {
let {PolicyManager} = iMod("lib/policy-manager");
let {DomainUtil} = iMod("lib/utils/domains");
let {StringUtils} = iMod("lib/utils/strings");
- let {DOMUtils} = iMod("lib/utils/dom");
let {WindowUtils} = iMod("lib/utils/windows");
let {Utils} = iMod("lib/utils");
let {C} = iMod("lib/utils/constants");
@@ -474,7 +473,8 @@ rpcontinued.overlay = (function() {
var addRuleMenuName = "rpcontinuedRedirectAddRuleMenu";
var addRulePopup = $id(addRuleMenuName);
- DOMUtils.removeChildren(addRulePopup);
+ var cm = rpcontinued.classicmenu;
+ cm.emptyMenu(addRulePopup);
let m = rpcontinued.menu;
var originBaseDomain = DomainUtil.getBaseDomain(redirectOriginUri);
@@ -490,8 +490,6 @@ rpcontinued.overlay = (function() {
let mayPermRulesBeAdded = WindowUtils.mayPermanentRulesBeAdded(window);
- let cm = rpcontinued.classicmenu;
-
if (destBaseDomain !== null) {
cm.addMenuItemTemporarilyAllowDest(addRulePopup, dest);
if (mayPermRulesBeAdded) {
--
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