From af83a0ffc46061477caa1aff9201246bbca8aa17 Mon Sep 17 00:00:00 2001 From: Asher Date: Tue, 14 Dec 2021 20:13:48 +0000 Subject: [PATCH 1/4] Fix images not loading https://github.com/cdr/code-server/issues/3410 --- extensions/image-preview/src/preview.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/image-preview/src/preview.ts b/extensions/image-preview/src/preview.ts index 4c4a331f34b3d..6b0017619cb9d 100644 --- a/extensions/image-preview/src/preview.ts +++ b/extensions/image-preview/src/preview.ts @@ -225,7 +225,7 @@ class Preview extends Disposable { - + From 127379447bac4de952baaad377ffd8778f42d045 Mon Sep 17 00:00:00 2001 From: Asher Date: Tue, 14 Dec 2021 20:37:48 +0000 Subject: [PATCH 2/4] Add note to image fix --- extensions/image-preview/src/preview.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/extensions/image-preview/src/preview.ts b/extensions/image-preview/src/preview.ts index 6b0017619cb9d..8606697666e04 100644 --- a/extensions/image-preview/src/preview.ts +++ b/extensions/image-preview/src/preview.ts @@ -212,6 +212,12 @@ class Preview extends Disposable { const nonce = getNonce(); const cspSource = this.webviewEditor.webview.cspSource; + /** + * Add self to img-src so images can load. In Codespaces when the extension + * is served from a CDN it adds that CDN to the CSP which makes this work + * but for self-hosted instances we need self. + * @author coder + */ return /* html */` From d34eb390763d2aeeef22d629efb7eb840ce9ab7c Mon Sep 17 00:00:00 2001 From: Asher Date: Tue, 14 Dec 2021 20:40:28 +0000 Subject: [PATCH 3/4] Move image fix to more appropriate spot --- extensions/image-preview/src/preview.ts | 8 +------- src/vs/workbench/api/common/extHostWebview.ts | 6 +++++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/extensions/image-preview/src/preview.ts b/extensions/image-preview/src/preview.ts index 8606697666e04..4c4a331f34b3d 100644 --- a/extensions/image-preview/src/preview.ts +++ b/extensions/image-preview/src/preview.ts @@ -212,12 +212,6 @@ class Preview extends Disposable { const nonce = getNonce(); const cspSource = this.webviewEditor.webview.cspSource; - /** - * Add self to img-src so images can load. In Codespaces when the extension - * is served from a CDN it adds that CDN to the CSP which makes this work - * but for self-hosted instances we need self. - * @author coder - */ return /* html */` @@ -231,7 +225,7 @@ class Preview extends Disposable { - + diff --git a/src/vs/workbench/api/common/extHostWebview.ts b/src/vs/workbench/api/common/extHostWebview.ts index 2eb67a7bf10e6..c3556475992ce 100644 --- a/src/vs/workbench/api/common/extHostWebview.ts +++ b/src/vs/workbench/api/common/extHostWebview.ts @@ -85,7 +85,11 @@ export class ExtHostWebview implements vscode.Webview { } return extensionCspRule + ' ' + webviewGenericCspSource; } - return webviewGenericCspSource; + /** + * When not using a CDN the images load from self. + * @author coder + */ + return `'self' ` + webviewGenericCspSource; } public get html(): string { From f2f916470aa5da85184fdb02816f44c1ad571e4e Mon Sep 17 00:00:00 2001 From: Asher Date: Tue, 14 Dec 2021 20:49:02 +0000 Subject: [PATCH 4/4] fixup! Move image fix to more appropriate spot --- src/vs/workbench/api/common/extHostWebview.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/api/common/extHostWebview.ts b/src/vs/workbench/api/common/extHostWebview.ts index c3556475992ce..4d5a5fdd791df 100644 --- a/src/vs/workbench/api/common/extHostWebview.ts +++ b/src/vs/workbench/api/common/extHostWebview.ts @@ -86,7 +86,7 @@ export class ExtHostWebview implements vscode.Webview { return extensionCspRule + ' ' + webviewGenericCspSource; } /** - * When not using a CDN the images load from self. + * When not using a CDN content loads from self. * @author coder */ return `'self' ` + webviewGenericCspSource;