[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