Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/vs/workbench/contrib/webview/browser/webviewElement.ts')
-rw-r--r--src/vs/workbench/contrib/webview/browser/webviewElement.ts11
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