[Pkg-mozext-commits] [requestpolicy] 58/280: add a RegEx filter to the RequestLog, resolves #537
David Prévot
taffit at moszumanska.debian.org
Sat May 2 20:29:59 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository requestpolicy.
commit e2592bfb45ae4ae5080896c1221ccef9393d8c53
Author: Martin Kimmerle <dev at 256k.de>
Date: Sat Dec 13 18:22:31 2014 +0100
add a RegEx filter to the RequestLog, resolves #537
---
src/content/lib/utils.jsm | 26 ++++++++
src/content/ui/request-log.filtering.js | 109 ++++++++++++++++++++++++++++++++
src/content/ui/request-log.interface.js | 42 ++++++------
src/content/ui/request-log.js | 47 +++++++-------
src/content/ui/request-log.tree-view.js | 77 +++++++++++-----------
src/content/ui/request-log.xul | 13 ++++
src/locale/de/requestpolicy.dtd | 4 ++
src/locale/en-US/requestpolicy.dtd | 4 ++
src/locale/eo/requestpolicy.dtd | 4 ++
src/locale/es-MX/requestpolicy.dtd | 4 ++
src/locale/eu/requestpolicy.dtd | 4 ++
src/locale/fr/requestpolicy.dtd | 4 ++
src/locale/it/requestpolicy.dtd | 4 ++
src/locale/ja/requestpolicy.dtd | 4 ++
src/locale/ko-KR/requestpolicy.dtd | 4 ++
src/locale/lv-LV/requestpolicy.dtd | 4 ++
src/locale/nl/requestpolicy.dtd | 4 ++
src/locale/pt-BR/requestpolicy.dtd | 4 ++
src/locale/ru-RU/requestpolicy.dtd | 4 ++
src/locale/sk-SK/requestpolicy.dtd | 4 ++
src/locale/sv-SE/requestpolicy.dtd | 4 ++
src/locale/tr/requestpolicy.dtd | 4 ++
src/locale/uk-UA/requestpolicy.dtd | 4 ++
src/locale/zh-CN/requestpolicy.dtd | 4 ++
src/locale/zh-TW/requestpolicy.dtd | 4 ++
25 files changed, 310 insertions(+), 80 deletions(-)
diff --git a/src/content/lib/utils.jsm b/src/content/lib/utils.jsm
index 15f42b7..5e54182 100644
--- a/src/content/lib/utils.jsm
+++ b/src/content/lib/utils.jsm
@@ -123,5 +123,31 @@ let Utils = (function() {
.getInterface(Ci.nsIDOMWindow);
};
+
+ //
+ // DOM utilities
+ //
+
+ /**
+ * Wait for a window to be loaded and then add a list of Elements „by ID“ to
+ * a scope. The scope is optional, but in any case will be returned.
+ *
+ * @returns {Object} the scope of the elements
+ */
+ self.getElementsByIdOnLoad = function(aWindow, aElementIDs, aScope,
+ aCallback) {
+ let scope = aScope || {};
+ let document = aWindow.document;
+ aWindow.addEventListener("load", function() {
+ for (let elementName in aElementIDs) {
+ scope[elementName] = document.getElementById(aElementIDs[elementName]);
+ }
+ if (aCallback) {
+ aCallback();
+ }
+ });
+ return scope;
+ };
+
return self;
}());
diff --git a/src/content/ui/request-log.filtering.js b/src/content/ui/request-log.filtering.js
new file mode 100644
index 0000000..4aab9d8
--- /dev/null
+++ b/src/content/ui/request-log.filtering.js
@@ -0,0 +1,109 @@
+/*
+ * ***** BEGIN LICENSE BLOCK *****
+ *
+ * RequestPolicy - A Firefox extension for control over cross-site requests.
+ * Copyright (c) 2008-2012 Justin Samuel
+ * Copyright (c) 2014 Martin Kimmerle
+ *
+ * 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 *****
+ */
+
+
+window.requestpolicy.requestLog = (function (self) {
+
+ const Ci = Components.interfaces;
+ const Cc = Components.classes;
+ const Cu = Components.utils;
+
+ let mod = {};
+ Cu.import("chrome://requestpolicy/content/lib/script-loader.jsm", mod);
+ Cu.import("resource://gre/modules/Services.jsm", mod);
+ mod.ScriptLoader.importModules([
+ "utils"
+ ], mod);
+ let Utils = mod.Utils;
+
+ let filterText = null;
+
+ let elements = Utils.getElementsByIdOnLoad(window, {
+ filterTextbox: "requestpolicy-requestLog-requestFilter",
+ clearFilterButton: "requestpolicy-requestLog-clearFilter"
+ });
+
+ self.filterChanged = function() {
+ let filterValue = elements.filterTextbox.value;
+
+ // create a new regular expression
+ filterText = filterValue.length === 0 ? null : new RegExp(filterValue, 'i');
+ // enable/disable the "Clear Filter" button
+ elements.clearFilterButton.disabled = filterValue.length === 0;
+
+ loadTable();
+ };
+
+ self.clearFilter = function() {
+ elements.filterTextbox.value = "";
+ elements.filterTextbox.focus();
+ self.filterChanged();
+ }
+
+
+
+
+ /**
+ * Check if the row should be displayed or filtered out.
+ *
+ * This function searches the first two columns for the filterText.
+ *
+ * @param {Array} aRow
+ */
+ self.isRowFilteredOut = function(aRow) {
+ if (filterText === null) {
+ return false;
+ }
+ // The row is filtered out in case *all* searches in the columns *failed*.
+ return aRow[0].search(filterText) === -1 &&
+ aRow[1].search(filterText) === -1;
+ };
+
+ function addRowOrFilterOut(aRow) {
+ if (self.isRowFilteredOut(aRow)) {
+ return;
+ }
+ self.visibleRows.push(aRow);
+ }
+
+ // This function is called every time the tree is sorted, filtered or reloaded
+ function loadTable() {
+ let oldRowCount = self.treeView.rowCount;
+
+ if (!filterText) {
+ // there's no filter ==> show all rows
+ self.visibleRows = self.rows;
+ } else {
+ // filter out the rows we want to display
+ self.visibleRows = [];
+ self.rows.forEach(addRowOrFilterOut);
+ }
+
+ // notify that the table rows has changed
+ let newRowCount = self.treeView.rowCount;
+ self.treebox.rowCountChanged(0, newRowCount-oldRowCount);
+ }
+
+
+ return self;
+}(window.requestpolicy.requestLog || {}));
diff --git a/src/content/ui/request-log.interface.js b/src/content/ui/request-log.interface.js
index 180bb39..72af12e 100644
--- a/src/content/ui/request-log.interface.js
+++ b/src/content/ui/request-log.interface.js
@@ -43,12 +43,13 @@ window.requestpolicy.requestLog = (function (self) {
- self.clear = function(e) {
- var count = self.rowCount;
+ self.clear = function() {
+ var count = self.treeView.rowCount;
if (count == 0) {
return;
}
- self.visibleData = [];
+ self.rows = [];
+ self.visibleRows = [];
if (!self.treebox) {
return;
}
@@ -99,29 +100,34 @@ window.requestpolicy.requestLog = (function (self) {
- function addRequest(request) {
- if (self.isEmptyMessageDisplayed) {
- // If this were to be called in a multithreaded manner, there's probably
- // a race condition here.
- self.visibleData.shift();
- self.isEmptyMessageDisplayed = false;
- self.treebox.rowCountChanged(0, -1);
- }
- self.visibleData.push(request);
+ function addRow(aRow) {
+ self.rows.push(aRow);
- if (!self.treebox) {
- return;
- }
+ if (!self.isRowFilteredOut(aRow)) {
+ if (self.isEmptyMessageDisplayed) {
+ // If this were to be called in a multithreaded manner, there's probably
+ // a race condition here.
+ self.visibleRows.shift();
+ self.isEmptyMessageDisplayed = false;
+ self.treebox.rowCountChanged(0, -1);
+ }
- self.treebox.rowCountChanged(0, 1);
+ self.visibleRows.push(aRow);
+
+ if (!self.treebox) {
+ return;
+ }
+
+ self.treebox.rowCountChanged(0, 1);
+ }
}
self.addAllowedRequest = function(originURI, destURI) {
- addRequest([originURI, destURI, false, (new Date()).toLocaleTimeString()]);
+ addRow([originURI, destURI, false, (new Date()).toLocaleTimeString()]);
};
self.addBlockedRequest = function(originURI, destURI) {
- addRequest([originURI, destURI, true, (new Date()).toLocaleTimeString()]);
+ addRow([originURI, destURI, true, (new Date()).toLocaleTimeString()]);
};
diff --git a/src/content/ui/request-log.js b/src/content/ui/request-log.js
index fe59c64..e076289 100644
--- a/src/content/ui/request-log.js
+++ b/src/content/ui/request-log.js
@@ -32,45 +32,42 @@ window.requestpolicy.requestLog = (function (self) {
let mod = {};
Cu.import("chrome://requestpolicy/content/lib/script-loader.jsm", mod);
mod.ScriptLoader.importModules([
- "string-utils"
+ "string-utils",
+ "utils"
], mod);
- let StringUtils = mod.StringUtils;
+ let StringUtils = mod.StringUtils, Utils = mod.Utils;
- let initialized = false;
self.isEmptyMessageDisplayed = true;
+ self.rows = [];
+ self.visibleRows = [];
- self.tree = null;
- self.visibleData = [];
+ let init = function() {
+ // callback function – gets called when the tree is available.
+ self.tree.view = self.treeView;
- function showLogIsEmptyMessage() {
- var message = StringUtils.strbundle.GetStringFromName("requestLogIsEmpty");
- var directions = StringUtils.strbundle
- .GetStringFromName("requestLogDirections");
- self.visibleData.push([message, directions, false, ""]);
- };
+ showLogIsEmptyMessage();
+ // Give the requestpolicy overlay direct access to the the request log.
+ window.parent.requestpolicy.overlay.requestLog = self;
+ }
- function init() {
- if (initialized) {
- return;
- }
- initialized = true;
+ Utils.getElementsByIdOnLoad(window, {
+ tree: "requestpolicy-requestLog-tree"
+ }, self, init);
- self.tree = document.getElementById("requestpolicy-requestLog-tree");
- self.tree.view = self.treeView;
- // Give the requestpolicy overlay direct access to the the request log.
- window.parent.requestpolicy.overlay.requestLog = self;
- showLogIsEmptyMessage();
- };
- window.addEventListener("load", function(event) {
- init(event);
- }, false);
+ function showLogIsEmptyMessage() {
+ var message = StringUtils.strbundle.GetStringFromName("requestLogIsEmpty");
+ var directions = StringUtils.strbundle
+ .GetStringFromName("requestLogDirections");
+ self.visibleRows.push([message, directions, false, ""]);
+ self.treebox.rowCountChanged(0, 1);
+ };
diff --git a/src/content/ui/request-log.tree-view.js b/src/content/ui/request-log.tree-view.js
index 7369554..a9afefd 100644
--- a/src/content/ui/request-log.tree-view.js
+++ b/src/content/ui/request-log.tree-view.js
@@ -49,57 +49,61 @@ window.requestpolicy.requestLog = (function (self) {
let aserv = Cc["@mozilla.org/atom-service;1"].getService(Ci.nsIAtomService);
- function getVisibleItemAtIndex(index) {
- return self.visibleData[self.visibleData.length - index - 1];
+ function getVisibleRowAtIndex(index) {
+ return self.visibleRows[self.visibleRows.length - index - 1];
};
+
+
+ //
// the interface.
// see https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Tutorial/Custom_Tree_Views
+ //
self.treeView = {
/**
* "This property should be set to the total number of rows in the tree."
* (getter function)
*/
- get: function() {
- return self.visibleData.length;
+ get rowCount () {
+ return self.visibleRows.length;
},
/**
* "This method should return the text contents at the specified row and
* column."
*/
- setTree: function(_treebox) {
- self.treebox = _treebox;
+ setTree: function(aTreebox) {
+ self.treebox = aTreebox;
},
/**
* This method is called once to set the tree element on the view.
*/
- getCellText: function(index, column) {
+ getCellText: function(aIndex, aColumn) {
// Row 0 is actually the last element in the array so that we don't have to
// unshift() the array and can just push().
// TODO: Do an actual speed test with push vs. unshift to see if it matters
// with this javascript array implementation, though I'm assuming it does.
- var columnIndex = self.columnNameToIndexMap[column.id];
+ var columnIndex = self.columnNameToIndexMap[aColumn.id];
if (columnIndex != 2) {
- return getVisibleItemAtIndex(index)[self.columnNameToIndexMap[column.id]];
+ return getVisibleRowAtIndex(aIndex)[self.columnNameToIndexMap[aColumn.id]];
}
},
- isContainer: function(index) {
+ isContainer: function(aIndex) {
return false;
},
- isContainerOpen: function(index) {
+ isContainerOpen: function(aIndex) {
return false;
},
- isContainerEmpty: function(index) {
+ isContainerEmpty: function(aIndex) {
return false;
},
- isSeparator: function(index) {
+ isSeparator: function(aIndex) {
return false;
},
@@ -107,58 +111,58 @@ window.requestpolicy.requestLog = (function (self) {
return false;
},
- isEditable: function(index, column) {
+ isEditable: function(aIndex, aColumn) {
return false;
},
- getParentIndex: function(index) {
+ getParentIndex: function(aIndex) {
return -1;
},
- getLevel: function(index) {
+ getLevel: function(aIndex) {
return 0;
},
- hasNextSibling: function(index, after) {
+ hasNextSibling: function(aIndex, aAfter) {
return false;
},
- toggleOpenState: function(index) {},
+ toggleOpenState: function(aIndex) {},
- getImageSrc: function(index, column) {
- if (self.columnNameToIndexMap[column.id] == 2) {
- if (getVisibleItemAtIndex(index)[2]) {
+ getImageSrc: function(aIndex, aColumn) {
+ if (self.columnNameToIndexMap[aColumn.id] == 2) {
+ if (getVisibleRowAtIndex(aIndex)[2]) {
return "chrome://requestpolicy/skin/dot.png";
}
}
},
- getProgressMode: function(index, column) {},
- getCellValue: function(index, column) {},
+ getProgressMode: function(aIndex, aColumn) {},
+ getCellValue: function(aIndex, aColumn) {},
cycleHeader: function(col, elem) {},
selectionChanged: function() {},
- cycleCell: function(index, column) {},
+ cycleCell: function(aIndex, aColumn) {},
performAction: function(action) {},
- performActionOnCell: function(action, index, column) {},
+ performActionOnCell: function(action, aIndex, aColumn) {},
- getRowProperties: function(index, props) {
- var returnValue = (getVisibleItemAtIndex(index)[2]) ? "blocked" : "allowed";
+ getRowProperties: function(aIndex, aProps) {
+ var returnValue = (getVisibleRowAtIndex(aIndex)[2]) ? "blocked" : "allowed";
- if (props) {
+ if (aProps) {
// Gecko version < 22
- props.AppendElement(aserv.getAtom(returnValue));
+ aProps.AppendElement(aserv.getAtom(returnValue));
} else {
// Gecko version >= 22
return returnValue;
}
},
- getCellProperties: function(index, column, props) {
- if (self.columnNameToIndexMap[column.id] == 2) {
- if (getVisibleItemAtIndex(index)[2]) {
- if (props) {
+ getCellProperties: function(aIndex, aColumn, aProps) {
+ if (self.columnNameToIndexMap[aColumn.id] == 2) {
+ if (getVisibleRowAtIndex(aIndex)[2]) {
+ if (aProps) {
// Gecko version < 22
- props.AppendElement(aserv.getAtom("blocked"));
+ aProps.AppendElement(aserv.getAtom("blocked"));
} else {
// Gecko version >= 22
return "blocked";
@@ -167,8 +171,8 @@ window.requestpolicy.requestLog = (function (self) {
}
},
- getColumnProperties: function(column, props) {
- if (!props) {
+ getColumnProperties: function(aColumn, aProps) {
+ if (!aProps) {
return "";
}
}
@@ -176,4 +180,3 @@ window.requestpolicy.requestLog = (function (self) {
return self;
}(window.requestpolicy.requestLog || {}));
-
diff --git a/src/content/ui/request-log.xul b/src/content/ui/request-log.xul
index 95f42aa..f64c751 100644
--- a/src/content/ui/request-log.xul
+++ b/src/content/ui/request-log.xul
@@ -31,6 +31,7 @@
<script type="application/x-javascript" src="request-log.js" />
<script type="application/x-javascript" src="request-log.interface.js" />
<script type="application/x-javascript" src="request-log.tree-view.js" />
+ <script type="application/x-javascript" src="request-log.filtering.js" />
<popupset>
<menupopup id="requestpolicyRequestLogContext">
@@ -74,4 +75,16 @@
<treechildren/>
</tree>
+
+ <hbox align="center" id="search-box">
+ <label accesskey="&rp.requestLog.filterRequests.accesskey;"
+ control="requestpolicy-requestLog-requestFilter"
+ value="&rp.requestLog.filterRequests;"/>
+ <textbox id="requestpolicy-requestLog-requestFilter"
+ oninput="requestpolicy.requestLog.filterChanged(event)" flex="1"/>
+ <button id="requestpolicy-requestLog-clearFilter"
+ oncommand="requestpolicy.requestLog.clearFilter()"
+ label="&rp.requestLog.clearFilter;"
+ accesskey="&rp.requestLog.clearFilter.accesskey;" disabled="true"/>
+ </hbox>
</page>
diff --git a/src/locale/de/requestpolicy.dtd b/src/locale/de/requestpolicy.dtd
index c2c372a..7b6e8bf 100644
--- a/src/locale/de/requestpolicy.dtd
+++ b/src/locale/de/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Ziel in die Zwischenablage kopieren">
<!ENTITY rp.requestLog.openOriginInNewTab "Quelle in neuem Tab öffnen">
<!ENTITY rp.requestLog.openDestinationInNewTab "Ziel in neuem Tab öffnen">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/en-US/requestpolicy.dtd b/src/locale/en-US/requestpolicy.dtd
index 3f63d36..547de3e 100644
--- a/src/locale/en-US/requestpolicy.dtd
+++ b/src/locale/en-US/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copy Destination to Clipboard">
<!ENTITY rp.requestLog.openOriginInNewTab "Open Origin in New Tab">
<!ENTITY rp.requestLog.openDestinationInNewTab "Open Destination in New Tab">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/eo/requestpolicy.dtd b/src/locale/eo/requestpolicy.dtd
index fe563e8..13c6291 100644
--- a/src/locale/eo/requestpolicy.dtd
+++ b/src/locale/eo/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Kopii la celadreson en la tondujon">
<!ENTITY rp.requestLog.openOriginInNewTab "Malfermi la fonton en nova folio">
<!ENTITY rp.requestLog.openDestinationInNewTab "Malfermi la celon en nova folio">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/es-MX/requestpolicy.dtd b/src/locale/es-MX/requestpolicy.dtd
index 22169cb..1c406c2 100644
--- a/src/locale/es-MX/requestpolicy.dtd
+++ b/src/locale/es-MX/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copiar el destino al portapapeles">
<!ENTITY rp.requestLog.openOriginInNewTab "Abrir el origen en un nueva pestaña">
<!ENTITY rp.requestLog.openDestinationInNewTab "Abrir el destino en una nueva pestaña">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/eu/requestpolicy.dtd b/src/locale/eu/requestpolicy.dtd
index d8fd355..1649291 100644
--- a/src/locale/eu/requestpolicy.dtd
+++ b/src/locale/eu/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Kopiatu Helmuga Arbelera">
<!ENTITY rp.requestLog.openOriginInNewTab "Ireki Jatorria Fitxa berri batean">
<!ENTITY rp.requestLog.openDestinationInNewTab "ireki Helmuga Fitxa berri batean">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/fr/requestpolicy.dtd b/src/locale/fr/requestpolicy.dtd
index 0f1e86f..408f3b3 100644
--- a/src/locale/fr/requestpolicy.dtd
+++ b/src/locale/fr/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copier la destination dans le presse-papiers">
<!ENTITY rp.requestLog.openOriginInNewTab "Ouvrir l'original dans un nouvel onglet">
<!ENTITY rp.requestLog.openDestinationInNewTab "Ouvrir la destination dans un nouvel onglet">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/it/requestpolicy.dtd b/src/locale/it/requestpolicy.dtd
index 0a9fabb..989ee26 100644
--- a/src/locale/it/requestpolicy.dtd
+++ b/src/locale/it/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copia Destinazione negli Appunti">
<!ENTITY rp.requestLog.openOriginInNewTab "Apri Origine in una Nuova Scheda">
<!ENTITY rp.requestLog.openDestinationInNewTab "Apri Destinazione in una Nuova Scheda">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/ja/requestpolicy.dtd b/src/locale/ja/requestpolicy.dtd
index acab08d..6e069cc 100644
--- a/src/locale/ja/requestpolicy.dtd
+++ b/src/locale/ja/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copy Destination to Clipboard">
<!ENTITY rp.requestLog.openOriginInNewTab "Open Origin in New Tab">
<!ENTITY rp.requestLog.openDestinationInNewTab "Open Destination in New Tab">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/ko-KR/requestpolicy.dtd b/src/locale/ko-KR/requestpolicy.dtd
index 4a7024e..5e305dc 100644
--- a/src/locale/ko-KR/requestpolicy.dtd
+++ b/src/locale/ko-KR/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copy Destination to Clipboard">
<!ENTITY rp.requestLog.openOriginInNewTab "Open Origin in New Tab">
<!ENTITY rp.requestLog.openDestinationInNewTab "Open Destination in New Tab">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/lv-LV/requestpolicy.dtd b/src/locale/lv-LV/requestpolicy.dtd
index 64e6748..fb2e6c0 100644
--- a/src/locale/lv-LV/requestpolicy.dtd
+++ b/src/locale/lv-LV/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Kopēt mērķi starpliktuvē">
<!ENTITY rp.requestLog.openOriginInNewTab "Atvērt pirmavotu jaunā cilnē">
<!ENTITY rp.requestLog.openDestinationInNewTab "Atvērt mērķi jaunā cilnē">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/nl/requestpolicy.dtd b/src/locale/nl/requestpolicy.dtd
index 028d56c..7f226c7 100644
--- a/src/locale/nl/requestpolicy.dtd
+++ b/src/locale/nl/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Doel naar Klembord kopiëren">
<!ENTITY rp.requestLog.openOriginInNewTab "Oorsprong in nieuw tabblad openen">
<!ENTITY rp.requestLog.openDestinationInNewTab "Doel in nieuw tabblad openen">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/pt-BR/requestpolicy.dtd b/src/locale/pt-BR/requestpolicy.dtd
index 1b33a8b..b12563e 100644
--- a/src/locale/pt-BR/requestpolicy.dtd
+++ b/src/locale/pt-BR/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copiar destino">
<!ENTITY rp.requestLog.openOriginInNewTab "Abrir origem em nova aba">
<!ENTITY rp.requestLog.openDestinationInNewTab "Abrir destino em nova aba">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/ru-RU/requestpolicy.dtd b/src/locale/ru-RU/requestpolicy.dtd
index fdaae32..c37616a 100644
--- a/src/locale/ru-RU/requestpolicy.dtd
+++ b/src/locale/ru-RU/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Скопировать цель в буфер обмена">
<!ENTITY rp.requestLog.openOriginInNewTab "Открыть источник в новой вкладке">
<!ENTITY rp.requestLog.openDestinationInNewTab "Открыть цель в новой вкладке">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/sk-SK/requestpolicy.dtd b/src/locale/sk-SK/requestpolicy.dtd
index fded431..2531d8d 100644
--- a/src/locale/sk-SK/requestpolicy.dtd
+++ b/src/locale/sk-SK/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Kopírovať ciele do schránky">
<!ENTITY rp.requestLog.openOriginInNewTab "Otvoriť zdroj na novej karte">
<!ENTITY rp.requestLog.openDestinationInNewTab "Otvoriť cieľ na novej karte">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/sv-SE/requestpolicy.dtd b/src/locale/sv-SE/requestpolicy.dtd
index 2d2b866..12538bf 100644
--- a/src/locale/sv-SE/requestpolicy.dtd
+++ b/src/locale/sv-SE/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Kopiera mål till urklipp">
<!ENTITY rp.requestLog.openOriginInNewTab "Öppna källa i ny flik">
<!ENTITY rp.requestLog.openDestinationInNewTab "Öppna mål i ny flik">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/tr/requestpolicy.dtd b/src/locale/tr/requestpolicy.dtd
index 13d6b8b..5e04879 100644
--- a/src/locale/tr/requestpolicy.dtd
+++ b/src/locale/tr/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Hedef adresi hafızaya kopyala">
<!ENTITY rp.requestLog.openOriginInNewTab "Ana adresi Yeni sekmede aç">
<!ENTITY rp.requestLog.openDestinationInNewTab "Hedef adresi Yeni sekmede aç">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/uk-UA/requestpolicy.dtd b/src/locale/uk-UA/requestpolicy.dtd
index cc9c8fd..1dd6ad3 100644
--- a/src/locale/uk-UA/requestpolicy.dtd
+++ b/src/locale/uk-UA/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copy Destination to Clipboard">
<!ENTITY rp.requestLog.openOriginInNewTab "Open Origin in New Tab">
<!ENTITY rp.requestLog.openDestinationInNewTab "Open Destination in New Tab">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/zh-CN/requestpolicy.dtd b/src/locale/zh-CN/requestpolicy.dtd
index c800fbe..6be29ff 100644
--- a/src/locale/zh-CN/requestpolicy.dtd
+++ b/src/locale/zh-CN/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "复制“目标”到剪贴板">
<!ENTITY rp.requestLog.openOriginInNewTab "在新标签页打开“来源”">
<!ENTITY rp.requestLog.openDestinationInNewTab "在新标签页打开“目标”">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
diff --git a/src/locale/zh-TW/requestpolicy.dtd b/src/locale/zh-TW/requestpolicy.dtd
index e8f0eae..2ff4e42 100644
--- a/src/locale/zh-TW/requestpolicy.dtd
+++ b/src/locale/zh-TW/requestpolicy.dtd
@@ -6,3 +6,7 @@
<!ENTITY rp.requestLog.copyDestinationToClipboard "Copy Destination to Clipboard">
<!ENTITY rp.requestLog.openOriginInNewTab "Open Origin in New Tab">
<!ENTITY rp.requestLog.openDestinationInNewTab "Open Destination in New Tab">
+<!ENTITY rp.requestLog.filterRequests "Filter Requests (RegEx)">
+<!ENTITY rp.requestLog.filterRequests.accesskey "F">
+<!ENTITY rp.requestLog.clearFilter "Clear Filter">
+<!ENTITY rp.requestLog.clearFilter.accesskey "C">
--
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