diff --git a/patches/disable-downloads.diff b/patches/disable-downloads.diff index e60802b77..e95d1243d 100644 --- a/patches/disable-downloads.diff +++ b/patches/disable-downloads.diff @@ -12,9 +12,9 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/web.api.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/browser/web.api.ts +++ code-server/lib/vscode/src/vs/workbench/browser/web.api.ts -@@ -281,6 +281,11 @@ export interface IWorkbenchConstructionO +@@ -276,6 +276,11 @@ export interface IWorkbenchConstructionO */ - readonly userDataPath?: string + readonly configurationDefaults?: Record; + /** + * Whether the "Download..." option is enabled for files. @@ -40,9 +40,9 @@ Index: code-server/lib/vscode/src/vs/workbench/services/environment/browser/envi * Gets whether a resolver extension is expected for the environment. */ readonly expectsResolverExtension: boolean; -@@ -111,6 +116,13 @@ export class BrowserWorkbenchEnvironment - return this.options.userDataPath; - } +@@ -110,6 +115,13 @@ export class BrowserWorkbenchEnvironment + @memoize + get cacheHome(): URI { return joinPath(this.userRoamingDataHome, 'caches'); } + get isEnabledFileDownloads(): boolean { + if (typeof this.options.isEnabledFileDownloads === "undefined") { @@ -52,7 +52,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/environment/browser/envi + } + @memoize - get argvResource(): URI { return joinPath(this.userRoamingDataHome, 'argv.json'); } + get workspaceStorageHome(): URI { return joinPath(this.userRoamingDataHome, 'workspaceStorage'); } Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts =================================================================== @@ -78,10 +78,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 -@@ -332,6 +332,7 @@ export class WebClientServer { +@@ -331,6 +331,7 @@ export class WebClientServer { + const workbenchWebConfiguration = { remoteAuthority, webviewEndpoint: vscodeBase + this._staticRoute + '/out/vs/workbench/contrib/webview/browser/pre', - userDataPath: this._environmentService.userDataPath, + isEnabledFileDownloads: !this._environmentService.args['disable-file-downloads'], _wrapWebWorkerExtHostInIframe, developmentOptions: { enableSmokeTestDriver: this._environmentService.args['enable-smoke-test-driver'] ? true : undefined, logLevel: this._logService.getLevel() }, diff --git a/patches/display-language.diff b/patches/display-language.diff index 5bade0167..a0c381f34 100644 --- a/patches/display-language.diff +++ b/patches/display-language.diff @@ -220,7 +220,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts import { CharCode } from 'vs/base/common/charCode'; import { getRemoteServerRootPath } from 'vs/platform/remote/common/remoteHosts'; import { IExtensionManifest } from 'vs/platform/extensions/common/extensions'; -@@ -344,6 +345,8 @@ export class WebClientServer { +@@ -343,6 +344,8 @@ export class WebClientServer { callbackRoute: this._callbackRoute }; @@ -229,7 +229,7 @@ Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts const nlsBaseUrl = this._productService.extensionsGallery?.nlsBaseUrl; const values: { [key: string]: string } = { WORKBENCH_WEB_CONFIGURATION: asJSON(workbenchWebConfiguration), -@@ -352,6 +355,7 @@ export class WebClientServer { +@@ -351,6 +354,7 @@ export class WebClientServer { WORKBENCH_NLS_BASE_URL: vscodeBase + (nlsBaseUrl ? `${nlsBaseUrl}${!nlsBaseUrl.endsWith('/') ? '/' : ''}${this._productService.commit}/${this._productService.version}/` : ''), BASE: base, VS_BASE: vscodeBase, diff --git a/patches/getting-started.diff b/patches/getting-started.diff index 31a91d38d..170df73e4 100644 --- a/patches/getting-started.diff +++ b/patches/getting-started.diff @@ -135,7 +135,7 @@ Index: code-server/lib/vscode/src/vs/workbench/browser/web.api.ts =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/browser/web.api.ts +++ code-server/lib/vscode/src/vs/workbench/browser/web.api.ts -@@ -286,6 +286,11 @@ export interface IWorkbenchConstructionO +@@ -281,6 +281,11 @@ export interface IWorkbenchConstructionO */ readonly isEnabledFileDownloads?: boolean @@ -163,7 +163,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/environment/browser/envi * Gets whether a resolver extension is expected for the environment. */ readonly expectsResolverExtension: boolean; -@@ -123,6 +128,13 @@ export class BrowserWorkbenchEnvironment +@@ -122,6 +127,13 @@ export class BrowserWorkbenchEnvironment return this.options.isEnabledFileDownloads; } @@ -175,7 +175,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/environment/browser/envi + } + @memoize - get argvResource(): URI { return joinPath(this.userRoamingDataHome, 'argv.json'); } + get workspaceStorageHome(): URI { return joinPath(this.userRoamingDataHome, 'workspaceStorage'); } Index: code-server/lib/vscode/src/vs/server/node/serverEnvironmentService.ts =================================================================== @@ -201,9 +201,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 -@@ -335,6 +335,7 @@ export class WebClientServer { +@@ -334,6 +334,7 @@ export class WebClientServer { + remoteAuthority, webviewEndpoint: vscodeBase + this._staticRoute + '/out/vs/workbench/contrib/webview/browser/pre', - userDataPath: this._environmentService.userDataPath, isEnabledFileDownloads: !this._environmentService.args['disable-file-downloads'], + isEnabledCoderGettingStarted: !this._environmentService.args['disable-getting-started-override'], _wrapWebWorkerExtHostInIframe, diff --git a/patches/local-storage.diff b/patches/local-storage.diff deleted file mode 100644 index 7b604837d..000000000 --- a/patches/local-storage.diff +++ /dev/null @@ -1,66 +0,0 @@ -Make storage local to the remote server - -This solves two problems: - 1. Extensions running in the browser (like Vim) might use these paths - directly instead of using the file service and most likely can't write - to `/User` on disk. - 2. Settings will be stored in the file system instead of in browser - storage. Using browser storage makes sharing or seeding settings - between browsers difficult. We may want to revisit this once/if we get - settings sync. - -Unfortunately this does not affect state which uses a separate method with -IndexedDB and does not appear nearly as easy to redirect to disk. - -To test install the Vim extension and make sure something that uses file storage -works (history recall for example) and change settings from the UI and on disk -while making sure they appear on the other side. - -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 -@@ -327,6 +327,7 @@ export class WebClientServer { - const workbenchWebConfiguration = { - remoteAuthority, - webviewEndpoint: vscodeBase + this._staticRoute + '/out/vs/workbench/contrib/webview/browser/pre', -+ userDataPath: this._environmentService.userDataPath, - _wrapWebWorkerExtHostInIframe, - developmentOptions: { enableSmokeTestDriver: this._environmentService.args['enable-smoke-test-driver'] ? true : undefined, logLevel: this._logService.getLevel() }, - settingsSyncOptions: !this._environmentService.isBuilt && this._environmentService.args['enable-sync'] ? { enabled: true } : undefined, -Index: code-server/lib/vscode/src/vs/workbench/browser/web.api.ts -=================================================================== ---- code-server.orig/lib/vscode/src/vs/workbench/browser/web.api.ts -+++ code-server/lib/vscode/src/vs/workbench/browser/web.api.ts -@@ -276,6 +276,11 @@ export interface IWorkbenchConstructionO - */ - readonly configurationDefaults?: Record; - -+ /** -+ * Path to the user data directory. -+ */ -+ readonly userDataPath?: string -+ - //#endregion - - //#region Profile options -Index: code-server/lib/vscode/src/vs/workbench/services/environment/browser/environmentService.ts -=================================================================== ---- code-server.orig/lib/vscode/src/vs/workbench/services/environment/browser/environmentService.ts -+++ code-server/lib/vscode/src/vs/workbench/services/environment/browser/environmentService.ts -@@ -102,7 +102,14 @@ export class BrowserWorkbenchEnvironment - get logFile(): URI { return joinPath(this.windowLogsPath, 'window.log'); } - - @memoize -- get userRoamingDataHome(): URI { return URI.file('/User').with({ scheme: Schemas.vscodeUserData }); } -+ get userRoamingDataHome(): URI { return joinPath(URI.file(this.userDataPath).with({ scheme: Schemas.vscodeRemote }), 'User'); } -+ -+ get userDataPath(): string { -+ if (!this.options.userDataPath) { -+ throw new Error('userDataPath was not provided to the browser'); -+ } -+ return this.options.userDataPath; -+ } - - @memoize - get argvResource(): URI { return joinPath(this.userRoamingDataHome, 'argv.json'); } diff --git a/patches/series b/patches/series index 898d2974a..b5b1f13ad 100644 --- a/patches/series +++ b/patches/series @@ -10,7 +10,6 @@ logout.diff store-socket.diff proxy-uri.diff unique-db.diff -local-storage.diff service-worker.diff sourcemaps.diff disable-downloads.diff