diff --git a/patches/base-path.diff b/patches/base-path.diff index ec25cd591c55..3a8a0eb41f36 100644 --- a/patches/base-path.diff +++ b/patches/base-path.diff @@ -111,7 +111,18 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -285,10 +285,14 @@ export class WebClientServer { +@@ -246,7 +246,9 @@ export class WebClientServer { + }; + + // Prefix routes with basePath for clients +- const basePath = getFirstHeader('x-forwarded-prefix') || this._basePath; ++ const rootBase = relativeRoot(getOriginalUrl(req)) ++ const vscodeBase = relativePath(getOriginalUrl(req)) ++ const basePath = vscodeBase || getFirstHeader('x-forwarded-prefix') || this._basePath; + + const queryConnectionToken = parsedUrl.query[connectionTokenQueryName]; + if (typeof queryConnectionToken === 'string') { +@@ -285,10 +287,14 @@ export class WebClientServer { }; const useTestResolver = (!this._environmentService.isBuilt && this._environmentService.args['use-test-resolver']); @@ -127,43 +138,26 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts ); if (!remoteAuthority) { return serveError(req, res, 400, `Bad request.`); -@@ -333,8 +337,12 @@ export class WebClientServer { - scopes: [['user:email'], ['repo']] - } : undefined; +@@ -335,6 +341,7 @@ export class WebClientServer { -+ const base = relativeRoot(getOriginalUrl(req)) -+ const vscodeBase = relativePath(getOriginalUrl(req)) -+ const productConfiguration = { codeServerVersion: this._productService.codeServerVersion, -+ rootEndpoint: base, ++ rootEndpoint: rootBase, embedderIdentifier: 'server-distro', extensionsGallery: this._webExtensionResourceUrlTemplate && this._productService.extensionsGallery ? { ...this._productService.extensionsGallery, -@@ -363,7 +371,7 @@ export class WebClientServer { - folderUri: resolveWorkspaceURI(this._environmentService.args['default-folder']), - workspaceUri: resolveWorkspaceURI(this._environmentService.args['default-workspace']), - productConfiguration, -- callbackRoute: callbackRoute -+ callbackRoute: vscodeBase + callbackRoute - }; - - const cookies = cookie.parse(req.headers.cookie || ''); -@@ -380,9 +388,11 @@ export class WebClientServer { - const values: { [key: string]: string } = { - WORKBENCH_WEB_CONFIGURATION: asJSON(workbenchWebConfiguration), +@@ -382,7 +389,9 @@ export class WebClientServer { WORKBENCH_AUTH_SESSION: authSessionInfo ? asJSON(authSessionInfo) : '', -- WORKBENCH_WEB_BASE_URL: staticRoute, -+ WORKBENCH_WEB_BASE_URL: vscodeBase + staticRoute, + WORKBENCH_WEB_BASE_URL: staticRoute, WORKBENCH_NLS_URL, - WORKBENCH_NLS_FALLBACK_URL: `${staticRoute}/out/nls.messages.js` -+ WORKBENCH_NLS_FALLBACK_URL: `${vscodeBase}${staticRoute}/out/nls.messages.js`, -+ BASE: base, -+ VS_BASE: vscodeBase, ++ WORKBENCH_NLS_FALLBACK_URL: `${staticRoute}/out/nls.messages.js`, ++ BASE: rootBase, ++ VS_BASE: basePath, }; // DEV --------------------------------------------------------------------------------------- -@@ -419,7 +429,7 @@ export class WebClientServer { +@@ -419,7 +428,7 @@ export class WebClientServer { 'default-src \'self\';', 'img-src \'self\' https: data: blob:;', 'media-src \'self\';', @@ -172,7 +166,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts 'child-src \'self\';', `frame-src 'self' https://*.vscode-cdn.net data:;`, 'worker-src \'self\' data: blob:;', -@@ -492,3 +502,70 @@ export class WebClientServer { +@@ -492,3 +501,70 @@ export class WebClientServer { return void res.end(data); } } diff --git a/patches/display-language.diff b/patches/display-language.diff index f7fe16e46724..3b80e6016649 100644 --- a/patches/display-language.diff +++ b/patches/display-language.diff @@ -161,7 +161,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts import { CharCode } from '../../base/common/charCode.js'; import { IExtensionManifest } from '../../platform/extensions/common/extensions.js'; import { ICSSDevelopmentService } from '../../platform/cssDev/node/cssDevService.js'; -@@ -325,7 +326,6 @@ export class WebClientServer { +@@ -327,7 +328,6 @@ export class WebClientServer { const staticRoute = posix.join(basePath, this._productPath, STATIC_PATH); const callbackRoute = posix.join(basePath, this._productPath, CALLBACK_PATH); @@ -169,7 +169,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts const resolveWorkspaceURI = (defaultLocation?: string) => defaultLocation && URI.file(path.resolve(defaultLocation)).with({ scheme: Schemas.vscodeRemote, authority: remoteAuthority }); -@@ -382,14 +382,22 @@ export class WebClientServer { +@@ -381,14 +381,22 @@ export class WebClientServer { }; const cookies = cookie.parse(req.headers.cookie || ''); diff --git a/patches/external-file-actions.diff b/patches/external-file-actions.diff index 349c87a49367..879e6b6ac178 100644 --- a/patches/external-file-actions.diff +++ b/patches/external-file-actions.diff @@ -112,7 +112,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -366,6 +366,8 @@ export class WebClientServer { +@@ -365,6 +365,8 @@ export class WebClientServer { serverBasePath: basePath, webviewEndpoint: vscodeBase + staticRoute + '/out/vs/workbench/contrib/webview/browser/pre', userDataPath: this._environmentService.userDataPath, diff --git a/patches/getting-started.diff b/patches/getting-started.diff index 4a9c844b5dc5..94b2a1701abb 100644 --- a/patches/getting-started.diff +++ b/patches/getting-started.diff @@ -201,7 +201,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -370,6 +370,7 @@ export class WebClientServer { +@@ -369,6 +369,7 @@ export class WebClientServer { userDataPath: this._environmentService.userDataPath, isEnabledFileDownloads: !this._environmentService.args['disable-file-downloads'], isEnabledFileUploads: !this._environmentService.args['disable-file-uploads'], diff --git a/patches/local-storage.diff b/patches/local-storage.diff index 708ff190a233..621be35c8b32 100644 --- a/patches/local-storage.diff +++ b/patches/local-storage.diff @@ -18,7 +18,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -361,6 +361,7 @@ export class WebClientServer { +@@ -360,6 +360,7 @@ export class WebClientServer { remoteAuthority, serverBasePath: basePath, webviewEndpoint: vscodeBase + staticRoute + '/out/vs/workbench/contrib/webview/browser/pre', diff --git a/patches/logout.diff b/patches/logout.diff index 598b1c963b99..0b23ed44c9e6 100644 --- a/patches/logout.diff +++ b/patches/logout.diff @@ -40,9 +40,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -344,6 +344,7 @@ export class WebClientServer { +@@ -343,6 +343,7 @@ export class WebClientServer { codeServerVersion: this._productService.codeServerVersion, - rootEndpoint: base, + rootEndpoint: rootBase, updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined, + logoutEndpoint: this._environmentService.args['auth'] && this._environmentService.args['auth'] !== "none" ? base + '/logout' : undefined, embedderIdentifier: 'server-distro', diff --git a/patches/marketplace.diff b/patches/marketplace.diff index 944ad0a5c3b5..f50435b8a8cc 100644 --- a/patches/marketplace.diff +++ b/patches/marketplace.diff @@ -40,9 +40,9 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -344,14 +344,7 @@ export class WebClientServer { +@@ -343,14 +343,7 @@ export class WebClientServer { codeServerVersion: this._productService.codeServerVersion, - rootEndpoint: base, + rootEndpoint: rootBase, embedderIdentifier: 'server-distro', - extensionsGallery: this._webExtensionResourceUrlTemplate && this._productService.extensionsGallery ? { - ...this._productService.extensionsGallery, diff --git a/patches/proxy-uri.diff b/patches/proxy-uri.diff index b54ebd171f65..e165714eb93e 100644 --- a/patches/proxy-uri.diff +++ b/patches/proxy-uri.diff @@ -71,8 +71,8 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -345,6 +345,7 @@ export class WebClientServer { - rootEndpoint: base, +@@ -344,6 +344,7 @@ export class WebClientServer { + rootEndpoint: rootBase, updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined, logoutEndpoint: this._environmentService.args['auth'] && this._environmentService.args['auth'] !== "none" ? base + '/logout' : undefined, + proxyEndpointTemplate: process.env.VSCODE_PROXY_URI ?? base + '/proxy/{{port}}/', diff --git a/patches/service-worker.diff b/patches/service-worker.diff index f41d9ce5107f..30e913bb5b27 100644 --- a/patches/service-worker.diff +++ b/patches/service-worker.diff @@ -54,7 +54,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -346,6 +346,10 @@ export class WebClientServer { +@@ -345,6 +345,10 @@ export class WebClientServer { updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined, logoutEndpoint: this._environmentService.args['auth'] && this._environmentService.args['auth'] !== "none" ? base + '/logout' : undefined, proxyEndpointTemplate: process.env.VSCODE_PROXY_URI ?? base + '/proxy/{{port}}/', diff --git a/patches/telemetry.diff b/patches/telemetry.diff index 03503b071fc9..5b6e7648abc5 100644 --- a/patches/telemetry.diff +++ b/patches/telemetry.diff @@ -134,7 +134,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -350,6 +350,8 @@ export class WebClientServer { +@@ -349,6 +349,8 @@ export class WebClientServer { scope: vscodeBase + '/', path: base + '/_static/out/browser/serviceWorker.js', }, diff --git a/patches/update-check.diff b/patches/update-check.diff index d0f1f3c918f8..447cafca8129 100644 --- a/patches/update-check.diff +++ b/patches/update-check.diff @@ -105,10 +105,10 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -343,6 +343,7 @@ export class WebClientServer { +@@ -342,6 +342,7 @@ export class WebClientServer { const productConfiguration = { codeServerVersion: this._productService.codeServerVersion, - rootEndpoint: base, + rootEndpoint: rootBase, + updateEndpoint: !this._environmentService.args['disable-update-check'] ? base + '/update/check' : undefined, embedderIdentifier: 'server-distro', extensionsGallery: this._productService.extensionsGallery, diff --git a/patches/webview.diff b/patches/webview.diff index 6e26610a4947..4f2cd6eba34a 100644 --- a/patches/webview.diff +++ b/patches/webview.diff @@ -54,7 +54,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts +++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts -@@ -357,6 +357,7 @@ export class WebClientServer { +@@ -356,6 +356,7 @@ export class WebClientServer { const workbenchWebConfiguration = { remoteAuthority, serverBasePath: basePath,