Prompt web users when they try using ctrl+w/cmd+w when focused on a webview
Fixes #109521
This commit is contained in:
parent
04ec120e2c
commit
d2965c18bf
1 changed files with 26 additions and 0 deletions
|
@ -105,6 +105,31 @@
|
|||
}
|
||||
}
|
||||
|
||||
/** @type {undefined | ((iframe: HTMLIFrameElement) => void)} */
|
||||
let onIframeLoaded;
|
||||
|
||||
if (!onElectron) {
|
||||
let isModifierDown = false;
|
||||
|
||||
onIframeLoaded = (frame) => {
|
||||
frame.contentWindow.addEventListener('keydown', e => {
|
||||
isModifierDown = e.metaKey || e.ctrlKey || e.altKey;
|
||||
});
|
||||
|
||||
frame.contentWindow.addEventListener('keyup', () => {
|
||||
isModifierDown = false;
|
||||
});
|
||||
};
|
||||
|
||||
window.addEventListener('beforeunload', (event) => {
|
||||
if (isModifierDown) {
|
||||
event.preventDefault();
|
||||
event.returnValue = '';
|
||||
return '';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** @type {import('./main').WebviewHost} */
|
||||
const host = {
|
||||
postMessage: hostMessaging.postMessage.bind(hostMessaging),
|
||||
|
@ -112,6 +137,7 @@
|
|||
ready: workerReady,
|
||||
fakeLoad: !onElectron,
|
||||
onElectron: onElectron,
|
||||
onIframeLoaded,
|
||||
rewriteCSP: onElectron
|
||||
? (csp) => {
|
||||
return csp.replace(/vscode-resource:(?=(\s|;|$))/g, 'vscode-webview-resource:');
|
||||
|
|
Loading…
Reference in a new issue