1
0
Fork 1
mirror of https://github.com/zen-browser/desktop.git synced 2025-07-07 21:49:58 +02:00

Add support for default DevTools keyboard shortcuts and update versioning

This commit is contained in:
mr. M 2025-01-03 01:20:30 +01:00
parent cd2df06a10
commit 766c16dc3c
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB
3 changed files with 82 additions and 4 deletions

View file

@ -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

@ -1 +1 @@
Subproject commit c350a101d97a2d0bfbf052479bd061ce9538b792 Subproject commit 8ef008fb65093e7f5b604725bd6960e1a07b17eb

View file

@ -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);
} }
}, },