From 90f69027f0043579628551a0f2f80d8c47e49902 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Wed, 22 Mar 2023 11:26:52 -0400 Subject: [PATCH] Caches webroot to avoid repeated creation --- src/webviews/webviewController.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/webviews/webviewController.ts b/src/webviews/webviewController.ts index ba513e8..373441a 100644 --- a/src/webviews/webviewController.ts +++ b/src/webviews/webviewController.ts @@ -353,12 +353,20 @@ export class WebviewController implements Dispos this.provider.onWindowFocusChanged?.(e.focused); } + private _webRoot: string | undefined; getWebRoot() { - return this.asWebviewUri(this.getWebRootUri()).toString(); + if (this._webRoot == null) { + this._webRoot = this.asWebviewUri(this.getWebRootUri()).toString(); + } + return this._webRoot; } + private _webRootUri: Uri | undefined; private getWebRootUri() { - return Uri.joinPath(this.container.context.extensionUri, 'dist', 'webviews'); + if (this._webRootUri == null) { + this._webRootUri = Uri.joinPath(this.container.context.extensionUri, 'dist', 'webviews'); + } + return this._webRootUri; } private async getHtml(webview: Webview): Promise { @@ -375,8 +383,8 @@ export class WebviewController implements Dispos const cspSource = webview.cspSource; - const root = webview.asWebviewUri(this.container.context.extensionUri).toString(); - const webRoot = webview.asWebviewUri(webRootUri).toString(); + const root = this.asWebviewUri(this.container.context.extensionUri).toString(); + const webRoot = this.getWebRoot(); const html = content.replace( /#{(head|body|endOfBody|placement|cspSource|cspNonce|root|webroot)}/g,