[Pkg-mozext-commits] [requestpolicy] 21/50: [imp] keyboard shortcut: open request log
David Prévot
taffit at moszumanska.debian.org
Mon Jun 27 12:50:31 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 5124b508ad6cd498a5674fa24256b0e9eee0a0f1
Author: Martin Kimmerle <dev at 256k.de>
Date: Wed Apr 20 22:32:05 2016 +0200
[imp] keyboard shortcut: open request log
Add a new preference to define a keyboard shortcut for opening
the RequestLog. It defaults to none.
Resolves #778
---
ChangeLog.md | 3 +++
src/content/controllers/keyboard-shortcuts.jsm | 6 +++++
src/content/lib/classes/keyboard-shortcut.jsm | 4 ++++
src/content/lib/default-preferences.js | 2 ++
src/content/models/prefs.jsm | 2 ++
.../rp_puppeteer/tests/test_request_log.py | 21 +++++++++++++++++
tests/marionette/rp_puppeteer/ui/request_log.py | 26 +++++++++++++++-------
7 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/ChangeLog.md b/ChangeLog.md
index ab48672..790808d 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -4,6 +4,9 @@ Note: ChangeLogs for the source code and unit tests, both not relevant for
users, you can find in the dedicated subdirectories.
#### Version 1.0.beta12
+* improvements
+ * New preference to define a keyboard shortcut for opening the RequestLog,
+ defaults to none. (#778)
* new translations
* es-ES: #771, #772
* updated translations
diff --git a/src/content/controllers/keyboard-shortcuts.jsm b/src/content/controllers/keyboard-shortcuts.jsm
index f03221f..493869f 100644
--- a/src/content/controllers/keyboard-shortcuts.jsm
+++ b/src/content/controllers/keyboard-shortcuts.jsm
@@ -46,6 +46,12 @@ var KeyboardShortcuts = (function() {
},
"keyboardShortcuts.openMenu.enabled",
"keyboardShortcuts.openMenu.combo"));
+ keyboardShortcuts.push(new KeyboardShortcut("openRequestLog", "none",
+ function(window) {
+ window.rpcontinued.overlay.toggleRequestLog();
+ },
+ "keyboardShortcuts.openRequestLog.enabled",
+ "keyboardShortcuts.openRequestLog.combo"));
};
self.shutdown = function() {
diff --git a/src/content/lib/classes/keyboard-shortcut.jsm b/src/content/lib/classes/keyboard-shortcut.jsm
index 4b793a6..e82b931 100644
--- a/src/content/lib/classes/keyboard-shortcut.jsm
+++ b/src/content/lib/classes/keyboard-shortcut.jsm
@@ -196,6 +196,10 @@ KeyboardShortcut.prototype._determineElementAttributes = function() {
if (combo === "default") {
combo = this._defaultCombo;
}
+ if (combo === "none") {
+ this._elementAttributes = ELEMENT_ATTRIBUTES_WHEN_DISABLED;
+ return;
+ }
let rv = XULUtils.keyboardShortcuts.getKeyAttributesFromCombo(combo);
if (false === rv.success) {
diff --git a/src/content/lib/default-preferences.js b/src/content/lib/default-preferences.js
index 315b0e0..3ca7881 100644
--- a/src/content/lib/default-preferences.js
+++ b/src/content/lib/default-preferences.js
@@ -32,6 +32,8 @@ pref("extensions.requestpolicy.confirmSiteInfo", true);
pref("extensions.requestpolicy.keyboardShortcuts.openMenu.enabled", true);
pref("extensions.requestpolicy.keyboardShortcuts.openMenu.combo", "default");
+pref("extensions.requestpolicy.keyboardShortcuts.openRequestLog.enabled", true);
+pref("extensions.requestpolicy.keyboardShortcuts.openRequestLog.combo", "default");
pref("extensions.requestpolicy.lastVersion", "0.0");
pref("extensions.requestpolicy.lastAppVersion", "0.0");
diff --git a/src/content/models/prefs.jsm b/src/content/models/prefs.jsm
index 09cc477..35d6fa7 100644
--- a/src/content/models/prefs.jsm
+++ b/src/content/models/prefs.jsm
@@ -55,6 +55,8 @@ var Prefs = (function() {
"indicateBlockedObjects": "BoolPref",
"keyboardShortcuts.openMenu.enabled": "BoolPref",
"keyboardShortcuts.openMenu.combo": "CharPref",
+ "keyboardShortcuts.openRequestLog.enabled": "BoolPref",
+ "keyboardShortcuts.openRequestLog.combo": "CharPref",
"lastAppVersion": "CharPref",
"lastVersion": "CharPref",
"log": "BoolPref",
diff --git a/tests/marionette/rp_puppeteer/tests/test_request_log.py b/tests/marionette/rp_puppeteer/tests/test_request_log.py
index 6fc4abc..cc11770 100644
--- a/tests/marionette/rp_puppeteer/tests/test_request_log.py
+++ b/tests/marionette/rp_puppeteer/tests/test_request_log.py
@@ -3,6 +3,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from rp_ui_harness import RequestPolicyTestCase
+import time
PREF_DEFAULT_ALLOW = "extensions.requestpolicy.defaultPolicy.allow"
@@ -31,6 +32,26 @@ class TestRequestLog(RequestLogTestCase):
self.request_log.close()
self.assertFalse(self.request_log.is_open())
+ def test_open_close_by_keyboard_shortcut(self):
+ pref_prefix = ("extensions.requestpolicy."
+ "keyboardShortcuts.openRequestLog")
+ self.prefs.set_pref(pref_prefix + ".combo", "control alt shift x")
+ self.prefs.set_pref(pref_prefix + ".enabled", True)
+ time.sleep(0.001)
+
+ def press_shortcut():
+ self.browser.send_shortcut("x", ctrl=True, alt=True, shift=True)
+
+ self.assertFalse(self.request_log.is_open())
+ self.request_log.open(trigger=press_shortcut)
+ self.assertTrue(self.request_log.is_open())
+ self.request_log.close(trigger=press_shortcut)
+ self.assertFalse(self.request_log.is_open())
+
+ self.prefs.reset_pref(pref_prefix + ".enabled")
+ self.prefs.reset_pref(pref_prefix + ".combo")
+ time.sleep(0.001)
+
def test_clear(self):
self.request_log.open()
diff --git a/tests/marionette/rp_puppeteer/ui/request_log.py b/tests/marionette/rp_puppeteer/ui/request_log.py
index e4efff3..e70a0f9 100644
--- a/tests/marionette/rp_puppeteer/ui/request_log.py
+++ b/tests/marionette/rp_puppeteer/ui/request_log.py
@@ -56,9 +56,9 @@ class RequestLog(BaseLib):
return rows;
""", [self._tree])
- def open(self):
+ def open(self, trigger="api"):
if not self.is_open():
- self._toggle()
+ self._toggle(trigger=trigger)
# Briefly enter the iframe to make sure the it's loaded.
with self.in_iframe():
@@ -68,8 +68,13 @@ class RequestLog(BaseLib):
request_log_uri = "chrome://rpcontinued/content/ui/request-log.xul"
return self._iframe.get_attribute("src") == request_log_uri
- def close(self):
- self._close_button.click()
+ def close(self, trigger="button"):
+ if not self.is_open():
+ return
+ if trigger == "button":
+ self._close_button.click()
+ else:
+ self._toggle(trigger=trigger)
def clear(self):
self._clear_button.click()
@@ -112,7 +117,12 @@ class RequestLog(BaseLib):
return self.marionette.find_element("id",
"rpcontinued-requestLog-tree")
- def _toggle(self):
- self.marionette.execute_script("""
- window.rpcontinued.overlay.toggleRequestLog();
- """)
+ def _toggle(self, trigger="api"):
+ if callable(trigger):
+ trigger()
+ elif trigger == "api":
+ self.marionette.execute_script("""
+ window.rpcontinued.overlay.toggleRequestLog();
+ """)
+ else:
+ raise ValueError("Unknown trigger method: \"{}\"".format(trigger))
--
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