Skip to content

Commit a018e30

Browse files
authored
Merge pull request #2348 from cdr/userdata
Use file system for user data
2 parents 96170de + fb83583 commit a018e30

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

ci/dev/vscode.patch

+13-6
Original file line numberDiff line numberDiff line change
@@ -3797,18 +3797,25 @@ index 85d83f37da179a1e39266cf72a02e971f590308e..0659738b36df1747c9afcabf8d9abf26
37973797
};
37983798

37993799
diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts
3800-
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac882396b26fb4 100644
3800+
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..8e122c761ac7ddfee11f9dda2ac5e845b893cc28 100644
38013801
--- a/src/vs/workbench/services/environment/browser/environmentService.ts
38023802
+++ b/src/vs/workbench/services/environment/browser/environmentService.ts
3803-
@@ -119,8 +119,18 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
3803+
@@ -119,8 +119,25 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
38043804
@memoize
38053805
get logFile(): URI { return joinPath(this.options.logsPath, 'window.log'); }
38063806

3807-
+ // NOTE@coder: Use the regular path for extensions that write directly to disk
3808-
+ // instead of using the VS Code API.
3807+
+ // NOTE@coder: Use the same path in // ../../../../platform/environment/node/environmentService.ts
3808+
+ // and don't use the user data scheme. This solves two problems:
3809+
+ // 1. Extensions running in the browser (like Vim) might use these paths
3810+
+ // directly instead of using the file service and most likely can't write
3811+
+ // to `/User` on disk.
3812+
+ // 2. Settings will be stored in the file system instead of in browser
3813+
+ // storage. Using browser storage makes sharing or seeding settings
3814+
+ // between browsers difficult. We may want to revisit this once/if we get
3815+
+ // settings sync.
38093816
@memoize
38103817
- get userRoamingDataHome(): URI { return URI.file('/User').with({ scheme: Schemas.userData }); }
3811-
+ get userRoamingDataHome(): URI { return URI.file(this.userDataPath).with({ scheme: Schemas.userData }); }
3818+
+ get userRoamingDataHome(): URI { return joinPath(URI.file(this.userDataPath).with({ scheme: Schemas.vscodeRemote }), 'User'); }
38123819
+ @memoize
38133820
+ get userDataPath(): string {
38143821
+ const dataPath = this.payload?.get("userDataPath");
@@ -3820,7 +3827,7 @@ index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac8823
38203827

38213828
@memoize
38223829
get settingsResource(): URI { return joinPath(this.userRoamingDataHome, 'settings.json'); }
3823-
@@ -301,7 +311,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
3830+
@@ -301,7 +318,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
38243831
extensionHostDebugEnvironment.params.port = parseInt(value);
38253832
break;
38263833
case 'enableProposedApi':

src/browser/pages/vscode.html

-5
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@
3232
<link rel="apple-touch-icon" href="{{CS_STATIC_BASE}}/src/browser/media/pwa-icon-384.png" />
3333
<meta name="apple-mobile-web-app-capable" content="yes" />
3434

35-
<!-- Prefetch to avoid waterfall -->
36-
<!-- PROD_ONLY
37-
<link rel="prefetch" href="{{CS_STATIC_BASE}}/lib/vscode/node_modules/semver-umd/lib/semver-umd.js">
38-
END_PROD_ONLY -->
39-
4035
<meta id="coder-options" data-settings="{{OPTIONS}}" />
4136
</head>
4237

src/browser/pages/vscode.ts

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ try {
4141
"xterm-addon-search": `../node_modules/xterm-addon-search/lib/xterm-addon-search.js`,
4242
"xterm-addon-unicode11": `../node_modules/xterm-addon-unicode11/lib/xterm-addon-unicode11.js`,
4343
"xterm-addon-webgl": `../node_modules/xterm-addon-webgl/lib/xterm-addon-webgl.js`,
44-
"semver-umd": `../node_modules/semver-umd/lib/semver-umd.js`,
4544
"tas-client-umd": `../node_modules/tas-client-umd/lib/tas-client-umd.js`,
4645
"iconv-lite-umd": `../node_modules/iconv-lite-umd/lib/iconv-lite-umd.js`,
4746
jschardet: `../node_modules/jschardet/dist/jschardet.min.js`,

0 commit comments

Comments
 (0)