aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/background/actions/operation.js4
-rw-r--r--src/content/actions/setting.js9
-rw-r--r--src/shared/messages.js1
-rw-r--r--src/shared/operations.js3
-rw-r--r--test/background/reducers/setting.test.js1
-rw-r--r--test/content/actions/setting.test.js2
6 files changed, 18 insertions, 2 deletions
diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js
index 1188ea2..56eb168 100644
--- a/src/background/actions/operation.js
+++ b/src/background/actions/operation.js
@@ -73,6 +73,10 @@ const exec = (operation, tab) => {
return browser.tabs.sendMessage(tab.id, {
type: messages.CONSOLE_SHOW_FIND
});
+ case operations.CANCEL:
+ return browser.tabs.sendMessage(tab.id, {
+ type: messages.CONSOLE_HIDE,
+ });
default:
return Promise.resolve();
}
diff --git a/src/content/actions/setting.js b/src/content/actions/setting.js
index 0238c71..4c1e385 100644
--- a/src/content/actions/setting.js
+++ b/src/content/actions/setting.js
@@ -1,10 +1,17 @@
import actions from 'content/actions';
import * as keyUtils from 'shared/utils/keys';
+import operations from 'shared/operations';
+
+const reservedKeymaps = {
+ '<Esc>': { type: operations.CANCEL },
+ '<C-[>': { type: operations.CANCEL },
+};
const set = (value) => {
let entries = [];
if (value.keymaps) {
- entries = Object.entries(value.keymaps).map((entry) => {
+ let keymaps = Object.assign({}, value.keymaps, reservedKeymaps);
+ entries = Object.entries(keymaps).map((entry) => {
return [
keyUtils.fromMapKeys(entry[0]),
entry[1],
diff --git a/src/shared/messages.js b/src/shared/messages.js
index de00a3f..b7a1a7e 100644
--- a/src/shared/messages.js
+++ b/src/shared/messages.js
@@ -32,6 +32,7 @@ export default {
CONSOLE_SHOW_ERROR: 'console.show.error',
CONSOLE_SHOW_INFO: 'console.show.info',
CONSOLE_SHOW_FIND: 'console.show.find',
+ CONSOLE_HIDE: 'console.hide',
FOLLOW_START: 'follow.start',
FOLLOW_REQUEST_COUNT_TARGETS: 'follow.request.count.targets',
diff --git a/src/shared/operations.js b/src/shared/operations.js
index 008e9eb..a2f980f 100644
--- a/src/shared/operations.js
+++ b/src/shared/operations.js
@@ -1,4 +1,7 @@
export default {
+ // Hide console, or cancel some user actions
+ CANCEL: 'cancel',
+
// Addons
ADDON_ENABLE: 'addon.enable',
ADDON_DISABLE: 'addon.disable',
diff --git a/test/background/reducers/setting.test.js b/test/background/reducers/setting.test.js
index 2ef98cb..8df5abe 100644
--- a/test/background/reducers/setting.test.js
+++ b/test/background/reducers/setting.test.js
@@ -30,7 +30,6 @@ describe("setting reducer", () => {
};
state = settingReducer(state, action);
- console.log(state);
expect(state.value.properties).to.have.property('smoothscroll', true);
expect(state.value.properties).to.have.property('encoding', 'utf-8');
});
diff --git a/test/content/actions/setting.test.js b/test/content/actions/setting.test.js
index 1248edf..3112b2d 100644
--- a/test/content/actions/setting.test.js
+++ b/test/content/actions/setting.test.js
@@ -23,6 +23,8 @@ describe("setting actions", () => {
let map = new Map(keymaps);
expect(map).to.have.deep.all.keys(
[
+ [{ key: 'Esc', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }],
+ [{ key: '[', shiftKey: false, ctrlKey: true, altKey: false, metaKey: false }],
[{ key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
{ key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }],
[{ key: 'z', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },