forked from ZenBrowserMirrors/zen-desktop
Add support for default DevTools keyboard shortcuts and update versioning
This commit is contained in:
parent
cd2df06a10
commit
766c16dc3c
3 changed files with 82 additions and 4 deletions
|
@ -12,3 +12,4 @@
|
||||||
- Overall UX
|
- Overall UX
|
||||||
- Themes Page
|
- Themes Page
|
||||||
- Settings Page
|
- Settings Page
|
||||||
|
- Keyboard shortcuts, check if there are any missing or not working
|
||||||
|
|
2
l10n
2
l10n
|
@ -1 +1 @@
|
||||||
Subproject commit c350a101d97a2d0bfbf052479bd061ce9538b792
|
Subproject commit 8ef008fb65093e7f5b604725bd6960e1a07b17eb
|
|
@ -103,6 +103,7 @@ const defaultKeyboardGroups = {
|
||||||
'zen-bidi-switch-direction-shortcut',
|
'zen-bidi-switch-direction-shortcut',
|
||||||
'zen-screenshot-shortcut',
|
'zen-screenshot-shortcut',
|
||||||
],
|
],
|
||||||
|
devTools: [/*Filled automatically*/],
|
||||||
};
|
};
|
||||||
|
|
||||||
const fixedL10nIds = {
|
const fixedL10nIds = {
|
||||||
|
@ -110,9 +111,25 @@ const fixedL10nIds = {
|
||||||
'Browser:ReloadSkipCache': 'zen-nav-reload-shortcut-skip-cache',
|
'Browser:ReloadSkipCache': 'zen-nav-reload-shortcut-skip-cache',
|
||||||
cmd_close: 'zen-close-tab-shortcut',
|
cmd_close: 'zen-close-tab-shortcut',
|
||||||
'History:RestoreLastClosedTabOrWindowOrSession': 'zen-restore-last-closed-tab-shortcut',
|
'History:RestoreLastClosedTabOrWindowOrSession': 'zen-restore-last-closed-tab-shortcut',
|
||||||
|
|
||||||
|
// Devtools
|
||||||
|
key_toggleToolbox: 'zen-devtools-toggle-shortcut',
|
||||||
|
key_browserToolbox: 'zen-devtools-toggle-browser-toolbox-shortcut',
|
||||||
|
key_browserConsole: 'zen-devtools-toggle-browser-console-shortcut',
|
||||||
|
key_responsiveDesignMode: 'zen-devtools-toggle-responsive-design-mode-shortcut',
|
||||||
|
key_inspector: 'zen-devtools-toggle-inspector-shortcut',
|
||||||
|
key_webconsole: 'zen-devtools-toggle-web-console-shortcut',
|
||||||
|
key_jsdebugger: 'zen-devtools-toggle-js-debugger-shortcut',
|
||||||
|
key_netmonitor: 'zen-devtools-toggle-net-monitor-shortcut',
|
||||||
|
key_styleeditor: 'zen-devtools-toggle-style-editor-shortcut',
|
||||||
|
key_performance: 'zen-devtools-toggle-performance-shortcut',
|
||||||
|
key_storage: 'zen-devtools-toggle-storage-shortcut',
|
||||||
|
key_dom: 'zen-devtools-toggle-dom-shortcut',
|
||||||
|
key_accessibility: 'zen-devtools-toggle-accessibility-shortcut',
|
||||||
};
|
};
|
||||||
|
|
||||||
const ZEN_MAIN_KEYSET_ID = 'mainKeyset';
|
const ZEN_MAIN_KEYSET_ID = 'mainKeyset';
|
||||||
|
const ZEN_DEVTOOLS_KEYSET_ID = 'devtoolsKeyset';
|
||||||
const ZEN_KEYSET_ID = 'zenKeyset';
|
const ZEN_KEYSET_ID = 'zenKeyset';
|
||||||
|
|
||||||
const ZEN_COMPACT_MODE_SHORTCUTS_GROUP = 'zen-compact-mode';
|
const ZEN_COMPACT_MODE_SHORTCUTS_GROUP = 'zen-compact-mode';
|
||||||
|
@ -355,12 +372,12 @@ class KeyShortcut {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static parseFromXHTML(key) {
|
static parseFromXHTML(key, { group = undefined } = {}) {
|
||||||
return new KeyShortcut(
|
return new KeyShortcut(
|
||||||
key.getAttribute('id'),
|
key.getAttribute('id'),
|
||||||
key.getAttribute('key'),
|
key.getAttribute('key'),
|
||||||
key.getAttribute('keycode'),
|
key.getAttribute('keycode'),
|
||||||
KeyShortcut.getGroupFromL10nId(KeyShortcut.sanitizeL10nId(key.getAttribute('data-l10n-id')), key.getAttribute('id')),
|
group ?? KeyShortcut.getGroupFromL10nId(KeyShortcut.sanitizeL10nId(key.getAttribute('data-l10n-id')), key.getAttribute('id')),
|
||||||
KeyShortcutModifiers.parseFromXHTMLAttribute(key.getAttribute('modifiers')),
|
KeyShortcutModifiers.parseFromXHTMLAttribute(key.getAttribute('modifiers')),
|
||||||
key.getAttribute('command'),
|
key.getAttribute('command'),
|
||||||
key.getAttribute('data-l10n-id'),
|
key.getAttribute('data-l10n-id'),
|
||||||
|
@ -727,10 +744,26 @@ class ZenKeyboardShortcutsLoader {
|
||||||
|
|
||||||
return newShortcutList;
|
return newShortcutList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static IGNORED_DEVTOOLS_SHORTCUTS = ['key_toggleToolboxF12'];
|
||||||
|
|
||||||
|
static zenGetDefaultDevToolsShortcuts() {
|
||||||
|
let keySet = document.getElementById(ZEN_DEVTOOLS_KEYSET_ID);
|
||||||
|
let newShortcutList = [];
|
||||||
|
|
||||||
|
for (let i = keySet.children.length - 1; i >= 0; i--) {
|
||||||
|
let key = keySet.children[i];
|
||||||
|
if (this.IGNORED_DEVTOOLS_SHORTCUTS.includes(key.id)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let parsed = KeyShortcut.parseFromXHTML(key, { group: 'devTools' });
|
||||||
|
newShortcutList.push(parsed);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ZenKeyboardShortcutsVersioner {
|
class ZenKeyboardShortcutsVersioner {
|
||||||
static LATEST_KBS_VERSION = 6;
|
static LATEST_KBS_VERSION = 7;
|
||||||
|
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
|
@ -865,6 +898,12 @@ class ZenKeyboardShortcutsVersioner {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (version < 7) {
|
||||||
|
// Migrate from 6 to 7
|
||||||
|
// In this new version, we add the devtools shortcuts
|
||||||
|
const devToolsShortcuts = ZenKeyboardShortcutsLoader.zenGetDefaultDevToolsShortcuts();
|
||||||
|
data.push(...devToolsShortcuts);
|
||||||
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -948,6 +987,18 @@ var gZenKeyboardShortcutsManager = {
|
||||||
return browser.gZenKeyboardShortcutsManager._zenKeyset;
|
return browser.gZenKeyboardShortcutsManager._zenKeyset;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getZenDevtoolsKeyset(browser = window) {
|
||||||
|
if (!browser.gZenKeyboardShortcutsManager._zenDevtoolsKeyset) {
|
||||||
|
const existingKeyset = browser.document.getElementById(ZEN_DEVTOOLS_KEYSET_ID);
|
||||||
|
if (existingKeyset) {
|
||||||
|
browser.gZenKeyboardShortcutsManager._zenDevtoolsKeyset = existingKeyset;
|
||||||
|
return browser.gZenKeyboardShortcutsManager._zenDevtoolsKeyset;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error('[zen CKS]: Devtools keyset not found!');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
clearMainKeyset(element) {
|
clearMainKeyset(element) {
|
||||||
if (this._hasCleared) {
|
if (this._hasCleared) {
|
||||||
return;
|
return;
|
||||||
|
@ -993,6 +1044,32 @@ var gZenKeyboardShortcutsManager = {
|
||||||
}
|
}
|
||||||
|
|
||||||
mainKeyset.after(keyset);
|
mainKeyset.after(keyset);
|
||||||
|
|
||||||
|
this._applyDevtoolsShortcuts(browser);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_applyDevtoolsShortcuts(browser) {
|
||||||
|
let devtoolsKeyset = browser.gZenKeyboardShortcutsManager.getZenDevtoolsKeyset(browser);
|
||||||
|
const remainingChildren = [];
|
||||||
|
for (let i = devtoolsKeyset.children.length - 1; i >= 0; i--) {
|
||||||
|
const key = devtoolsKeyset.children[i];
|
||||||
|
if (ZenKeyboardShortcutsLoader.IGNORED_DEVTOOLS_SHORTCUTS.includes(key.id)) {
|
||||||
|
remainingChildren.push(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
devtoolsKeyset.innerHTML = '';
|
||||||
|
for (let key of this._currentShortcutList) {
|
||||||
|
if (key.getGroup() != 'devTools') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let child = key.toXHTMLElement(browser);
|
||||||
|
devtoolsKeyset.appendChild(child);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let key of remainingChildren) {
|
||||||
|
devtoolsKeyset.appendChild(key);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue