diff options
Diffstat (limited to 'src/vs/workbench/contrib/webview/browser/webviewElement.ts')
-rw-r--r-- | src/vs/workbench/contrib/webview/browser/webviewElement.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/vs/workbench/contrib/webview/browser/webviewElement.ts b/src/vs/workbench/contrib/webview/browser/webviewElement.ts index 77aaf6683f9..fcc0777e76a 100644 --- a/src/vs/workbench/contrib/webview/browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/browser/webviewElement.ts @@ -474,9 +474,14 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD element.name = this.id; element.className = `webview ${options.customClasses || ''}`; element.sandbox.add('allow-scripts', 'allow-same-origin', 'allow-forms', 'allow-pointer-lock', 'allow-downloads'); + + const allowRules = ['cross-origin-isolated;']; if (!isFirefox) { - element.setAttribute('allow', 'clipboard-read; clipboard-write;'); + allowRules.push('clipboard-read;', 'clipboard-write;'); + element.setAttribute('allow', 'clipboard-read; clipboard-write; cross-origin-isolated;'); } + element.setAttribute('allow', allowRules.join(' ')); + element.style.border = 'none'; element.style.width = '100%'; element.style.height = '100%'; @@ -508,6 +513,10 @@ export class WebviewElement extends Disposable implements IWebview, WebviewFindD params.purpose = options.purpose; } + if (globalThis.crossOriginIsolated) { + params['vscode-coi'] = '3'; /*COOP+COEP*/ + } + const queryString = new URLSearchParams(params).toString(); // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1754872 |