@theia/workspace 1.68.0-next.48 → 1.68.0-next.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/workspace-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/workspace-frontend-contribution.js +3 -0
- package/lib/browser/workspace-frontend-contribution.js.map +1 -1
- package/lib/browser/workspace-frontend-module.d.ts +1 -0
- package/lib/browser/workspace-frontend-module.d.ts.map +1 -1
- package/lib/browser/workspace-frontend-module.js +2 -0
- package/lib/browser/workspace-frontend-module.js.map +1 -1
- package/lib/browser/workspace-trust-dialog.d.ts +13 -0
- package/lib/browser/workspace-trust-dialog.d.ts.map +1 -0
- package/lib/browser/workspace-trust-dialog.js +66 -0
- package/lib/browser/workspace-trust-dialog.js.map +1 -0
- package/lib/browser/workspace-trust-service.d.ts +58 -2
- package/lib/browser/workspace-trust-service.d.ts.map +1 -1
- package/lib/browser/workspace-trust-service.js +177 -37
- package/lib/browser/workspace-trust-service.js.map +1 -1
- package/lib/browser/workspace-trust-service.spec.js +192 -39
- package/lib/browser/workspace-trust-service.spec.js.map +1 -1
- package/lib/common/untitled-workspace-service.d.ts +8 -1
- package/lib/common/untitled-workspace-service.d.ts.map +1 -1
- package/lib/common/untitled-workspace-service.js +21 -2
- package/lib/common/untitled-workspace-service.js.map +1 -1
- package/package.json +5 -5
- package/src/browser/style/index.css +75 -0
- package/src/browser/workspace-frontend-contribution.ts +2 -0
- package/src/browser/workspace-frontend-module.ts +4 -1
- package/src/browser/workspace-trust-dialog.tsx +90 -0
- package/src/browser/workspace-trust-service.spec.ts +246 -43
- package/src/browser/workspace-trust-service.ts +213 -40
- package/src/common/untitled-workspace-service.ts +21 -2
|
@@ -20,6 +20,7 @@ const sinon = require("sinon");
|
|
|
20
20
|
const preferences_1 = require("@theia/core/lib/common/preferences");
|
|
21
21
|
const workspace_trust_service_1 = require("./workspace-trust-service");
|
|
22
22
|
const workspace_trust_preferences_1 = require("../common/workspace-trust-preferences");
|
|
23
|
+
const uri_1 = require("@theia/core/lib/common/uri");
|
|
23
24
|
class TestableWorkspaceTrustService extends workspace_trust_service_1.WorkspaceTrustService {
|
|
24
25
|
async testHandlePreferenceChange(change) {
|
|
25
26
|
return this.handlePreferenceChange(change);
|
|
@@ -36,12 +37,168 @@ class TestableWorkspaceTrustService extends workspace_trust_service_1.WorkspaceT
|
|
|
36
37
|
isWorkspaceTrustResolved() {
|
|
37
38
|
return super.isWorkspaceTrustResolved();
|
|
38
39
|
}
|
|
40
|
+
async testCalculateWorkspaceTrust() {
|
|
41
|
+
return this.calculateWorkspaceTrust();
|
|
42
|
+
}
|
|
39
43
|
}
|
|
40
44
|
describe('WorkspaceTrustService', () => {
|
|
41
45
|
let service;
|
|
42
46
|
beforeEach(() => {
|
|
43
47
|
service = new TestableWorkspaceTrustService();
|
|
44
48
|
});
|
|
49
|
+
afterEach(() => {
|
|
50
|
+
sinon.restore();
|
|
51
|
+
});
|
|
52
|
+
describe('calculateWorkspaceTrust', () => {
|
|
53
|
+
let workspaceTrustPrefStub;
|
|
54
|
+
let workspaceServiceStub;
|
|
55
|
+
let untitledWorkspaceServiceStub;
|
|
56
|
+
let envVariablesServerStub;
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
workspaceTrustPrefStub = {
|
|
59
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED]: true,
|
|
60
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]: false,
|
|
61
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT]: workspace_trust_preferences_1.WorkspaceTrustPrompt.NEVER,
|
|
62
|
+
[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS]: []
|
|
63
|
+
};
|
|
64
|
+
workspaceServiceStub = {
|
|
65
|
+
tryGetRoots: () => [],
|
|
66
|
+
workspace: undefined,
|
|
67
|
+
saved: false
|
|
68
|
+
};
|
|
69
|
+
untitledWorkspaceServiceStub = {
|
|
70
|
+
isUntitledWorkspace: () => false
|
|
71
|
+
};
|
|
72
|
+
envVariablesServerStub = {
|
|
73
|
+
getConfigDirUri: async () => 'file:///home/user/.theia'
|
|
74
|
+
};
|
|
75
|
+
service.workspaceTrustPref = workspaceTrustPrefStub;
|
|
76
|
+
service.workspaceService = workspaceServiceStub;
|
|
77
|
+
service.untitledWorkspaceService = untitledWorkspaceServiceStub;
|
|
78
|
+
service.envVariablesServer = envVariablesServerStub;
|
|
79
|
+
});
|
|
80
|
+
it('should return true when trust is disabled', async () => {
|
|
81
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED] = false;
|
|
82
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
83
|
+
});
|
|
84
|
+
describe('empty workspace', () => {
|
|
85
|
+
it('should return emptyWindow setting when no workspace is open', async () => {
|
|
86
|
+
workspaceServiceStub.workspace = undefined;
|
|
87
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
88
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
89
|
+
});
|
|
90
|
+
it('should return false when emptyWindow is false and no workspace', async () => {
|
|
91
|
+
workspaceServiceStub.workspace = undefined;
|
|
92
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = false;
|
|
93
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
94
|
+
});
|
|
95
|
+
it('should return emptyWindow setting for untitled workspace with no folders', async () => {
|
|
96
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/.theia/workspaces/Untitled-123.theia-workspace') };
|
|
97
|
+
workspaceServiceStub.tryGetRoots = () => [];
|
|
98
|
+
untitledWorkspaceServiceStub.isUntitledWorkspace = () => true;
|
|
99
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
100
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
101
|
+
});
|
|
102
|
+
it('should not treat saved workspace with no folders as empty', async () => {
|
|
103
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
104
|
+
workspaceServiceStub.tryGetRoots = () => [];
|
|
105
|
+
workspaceServiceStub.saved = true;
|
|
106
|
+
untitledWorkspaceServiceStub.isUntitledWorkspace = () => false;
|
|
107
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
108
|
+
// Should return false because saved workspace with 0 folders is not "empty"
|
|
109
|
+
// and the workspace file is not trusted
|
|
110
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe('single-root workspace', () => {
|
|
114
|
+
it('should return true when folder is in trusted folders', async () => {
|
|
115
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
116
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
117
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
118
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
119
|
+
];
|
|
120
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
121
|
+
});
|
|
122
|
+
it('should return true when parent folder is trusted', async () => {
|
|
123
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
124
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
125
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
126
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
127
|
+
];
|
|
128
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
129
|
+
});
|
|
130
|
+
it('should return false when folder is not trusted', async () => {
|
|
131
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/other'];
|
|
132
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/project') };
|
|
133
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
134
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
135
|
+
];
|
|
136
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe('multi-root workspace', () => {
|
|
140
|
+
it('should return true when all folders are trusted', async () => {
|
|
141
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = [
|
|
142
|
+
'file:///home/user/project1',
|
|
143
|
+
'file:///home/user/project2'
|
|
144
|
+
];
|
|
145
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
146
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
147
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
148
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
149
|
+
];
|
|
150
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
151
|
+
});
|
|
152
|
+
it('should return false when one folder is not trusted', async () => {
|
|
153
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project1'];
|
|
154
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
155
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
156
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
157
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
158
|
+
];
|
|
159
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
160
|
+
});
|
|
161
|
+
it('should return true when parent folder covers all roots', async () => {
|
|
162
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
163
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
164
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
165
|
+
{ resource: new uri_1.default('file:///home/user/project1') },
|
|
166
|
+
{ resource: new uri_1.default('file:///home/user/project2') }
|
|
167
|
+
];
|
|
168
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('saved workspace file trust', () => {
|
|
172
|
+
it('should require workspace file to be trusted for saved workspaces', async () => {
|
|
173
|
+
// Folder is trusted but workspace file location is not
|
|
174
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
175
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///other/location/my.theia-workspace') };
|
|
176
|
+
workspaceServiceStub.saved = true;
|
|
177
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
178
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
179
|
+
];
|
|
180
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.false;
|
|
181
|
+
});
|
|
182
|
+
it('should return true when both folder and workspace file are trusted', async () => {
|
|
183
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user'];
|
|
184
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///home/user/my.theia-workspace') };
|
|
185
|
+
workspaceServiceStub.saved = true;
|
|
186
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
187
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
188
|
+
];
|
|
189
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
190
|
+
});
|
|
191
|
+
it('should not require workspace file trust for unsaved workspaces', async () => {
|
|
192
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] = ['file:///home/user/project'];
|
|
193
|
+
workspaceServiceStub.workspace = { resource: new uri_1.default('file:///tmp/untitled.theia-workspace') };
|
|
194
|
+
workspaceServiceStub.saved = false;
|
|
195
|
+
workspaceServiceStub.tryGetRoots = () => [
|
|
196
|
+
{ resource: new uri_1.default('file:///home/user/project') }
|
|
197
|
+
];
|
|
198
|
+
(0, chai_1.expect)(await service.testCalculateWorkspaceTrust()).to.be.true;
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
});
|
|
45
202
|
describe('handleWorkspaceChanged', () => {
|
|
46
203
|
let resolveWorkspaceTrustStub;
|
|
47
204
|
let getWorkspaceTrustStub;
|
|
@@ -51,9 +208,6 @@ describe('WorkspaceTrustService', () => {
|
|
|
51
208
|
getWorkspaceTrustStub = sinon.stub(service, 'getWorkspaceTrust').resolves(true);
|
|
52
209
|
updateRestrictedModeIndicatorStub = sinon.stub(service, 'updateRestrictedModeIndicator');
|
|
53
210
|
});
|
|
54
|
-
afterEach(() => {
|
|
55
|
-
sinon.restore();
|
|
56
|
-
});
|
|
57
211
|
it('should reset trust state when workspace changes', async () => {
|
|
58
212
|
service.setCurrentTrust(true);
|
|
59
213
|
await service.testHandleWorkspaceChanged();
|
|
@@ -78,60 +232,51 @@ describe('WorkspaceTrustService', () => {
|
|
|
78
232
|
});
|
|
79
233
|
});
|
|
80
234
|
describe('handlePreferenceChange', () => {
|
|
81
|
-
let
|
|
235
|
+
let areAllWorkspaceUrisTrustedStub;
|
|
82
236
|
let setWorkspaceTrustStub;
|
|
237
|
+
let isEmptyWorkspaceStub;
|
|
83
238
|
let workspaceTrustPrefStub;
|
|
84
|
-
let workspaceServiceStub;
|
|
85
239
|
beforeEach(() => {
|
|
86
|
-
|
|
240
|
+
areAllWorkspaceUrisTrustedStub = sinon.stub(service, 'areAllWorkspaceUrisTrusted');
|
|
87
241
|
setWorkspaceTrustStub = sinon.stub(service, 'setWorkspaceTrust');
|
|
242
|
+
isEmptyWorkspaceStub = sinon.stub(service, 'isEmptyWorkspace');
|
|
88
243
|
// Mock workspaceTrustPref - default emptyWindow to false so trusted folders logic runs
|
|
89
244
|
workspaceTrustPrefStub = { [workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]: false };
|
|
90
245
|
service.workspaceTrustPref = workspaceTrustPrefStub;
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
service.workspaceService = workspaceServiceStub;
|
|
94
|
-
});
|
|
95
|
-
afterEach(() => {
|
|
96
|
-
sinon.restore();
|
|
246
|
+
// Default to non-empty workspace
|
|
247
|
+
isEmptyWorkspaceStub.resolves(false);
|
|
97
248
|
});
|
|
98
|
-
it('should update trust to true when
|
|
249
|
+
it('should update trust to true when all workspace URIs become trusted', async () => {
|
|
99
250
|
service.setCurrentTrust(false);
|
|
100
|
-
|
|
251
|
+
areAllWorkspaceUrisTrustedStub.resolves(true);
|
|
101
252
|
const change = {
|
|
102
253
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
103
254
|
scope: preferences_1.PreferenceScope.User,
|
|
104
255
|
domain: [],
|
|
105
|
-
newValue: ['/some/path'],
|
|
106
|
-
oldValue: [],
|
|
107
256
|
affects: () => true
|
|
108
257
|
};
|
|
109
258
|
await service.testHandlePreferenceChange(change);
|
|
110
259
|
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(true)).to.be.true;
|
|
111
260
|
});
|
|
112
|
-
it('should update trust to false when
|
|
261
|
+
it('should update trust to false when not all workspace URIs are trusted', async () => {
|
|
113
262
|
service.setCurrentTrust(true);
|
|
114
|
-
|
|
263
|
+
areAllWorkspaceUrisTrustedStub.resolves(false);
|
|
115
264
|
const change = {
|
|
116
265
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
117
266
|
scope: preferences_1.PreferenceScope.User,
|
|
118
267
|
domain: [],
|
|
119
|
-
newValue: [],
|
|
120
|
-
oldValue: ['/some/path'],
|
|
121
268
|
affects: () => true
|
|
122
269
|
};
|
|
123
270
|
await service.testHandlePreferenceChange(change);
|
|
124
271
|
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
|
|
125
272
|
});
|
|
126
|
-
it('should not update trust when trustedFolders change does not affect
|
|
273
|
+
it('should not update trust when trustedFolders change does not affect trust status', async () => {
|
|
127
274
|
service.setCurrentTrust(false);
|
|
128
|
-
|
|
275
|
+
areAllWorkspaceUrisTrustedStub.resolves(false);
|
|
129
276
|
const change = {
|
|
130
277
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
131
278
|
scope: preferences_1.PreferenceScope.User,
|
|
132
279
|
domain: [],
|
|
133
|
-
newValue: ['/other/path'],
|
|
134
|
-
oldValue: [],
|
|
135
280
|
affects: () => true
|
|
136
281
|
};
|
|
137
282
|
await service.testHandlePreferenceChange(change);
|
|
@@ -139,18 +284,16 @@ describe('WorkspaceTrustService', () => {
|
|
|
139
284
|
});
|
|
140
285
|
describe('emptyWindow setting changes', () => {
|
|
141
286
|
beforeEach(() => {
|
|
142
|
-
// Reset
|
|
143
|
-
|
|
287
|
+
// Reset to empty workspace for empty window tests
|
|
288
|
+
isEmptyWorkspaceStub.resolves(true);
|
|
144
289
|
});
|
|
145
290
|
it('should update trust to true when emptyWindow setting changes to true for empty window', async () => {
|
|
146
291
|
service.setCurrentTrust(false);
|
|
147
|
-
|
|
292
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
148
293
|
const change = {
|
|
149
294
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
150
295
|
scope: preferences_1.PreferenceScope.User,
|
|
151
296
|
domain: [],
|
|
152
|
-
newValue: true,
|
|
153
|
-
oldValue: false,
|
|
154
297
|
affects: () => true
|
|
155
298
|
};
|
|
156
299
|
await service.testHandlePreferenceChange(change);
|
|
@@ -158,27 +301,22 @@ describe('WorkspaceTrustService', () => {
|
|
|
158
301
|
});
|
|
159
302
|
it('should update trust to false when emptyWindow setting changes to false for empty window', async () => {
|
|
160
303
|
service.setCurrentTrust(true);
|
|
161
|
-
workspaceServiceStub.workspace = undefined;
|
|
162
304
|
const change = {
|
|
163
305
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
164
306
|
scope: preferences_1.PreferenceScope.User,
|
|
165
307
|
domain: [],
|
|
166
|
-
newValue: false,
|
|
167
|
-
oldValue: true,
|
|
168
308
|
affects: () => true
|
|
169
309
|
};
|
|
170
310
|
await service.testHandlePreferenceChange(change);
|
|
171
311
|
(0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
|
|
172
312
|
});
|
|
173
|
-
it('should not update trust when emptyWindow setting changes but workspace
|
|
313
|
+
it('should not update trust when emptyWindow setting changes but workspace has roots', async () => {
|
|
174
314
|
service.setCurrentTrust(false);
|
|
175
|
-
|
|
315
|
+
isEmptyWorkspaceStub.resolves(false);
|
|
176
316
|
const change = {
|
|
177
317
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
178
318
|
scope: preferences_1.PreferenceScope.User,
|
|
179
319
|
domain: [],
|
|
180
|
-
newValue: true,
|
|
181
|
-
oldValue: false,
|
|
182
320
|
affects: () => true
|
|
183
321
|
};
|
|
184
322
|
await service.testHandlePreferenceChange(change);
|
|
@@ -186,13 +324,28 @@ describe('WorkspaceTrustService', () => {
|
|
|
186
324
|
});
|
|
187
325
|
it('should not update trust when emptyWindow setting changes but trust already matches', async () => {
|
|
188
326
|
service.setCurrentTrust(true);
|
|
189
|
-
|
|
327
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
190
328
|
const change = {
|
|
191
329
|
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
|
|
192
330
|
scope: preferences_1.PreferenceScope.User,
|
|
193
331
|
domain: [],
|
|
194
|
-
|
|
195
|
-
|
|
332
|
+
affects: () => true
|
|
333
|
+
};
|
|
334
|
+
await service.testHandlePreferenceChange(change);
|
|
335
|
+
(0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
describe('trustedFolders change for empty window with emptyWindow enabled', () => {
|
|
339
|
+
beforeEach(() => {
|
|
340
|
+
isEmptyWorkspaceStub.resolves(true);
|
|
341
|
+
workspaceTrustPrefStub[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] = true;
|
|
342
|
+
});
|
|
343
|
+
it('should not change trust when trustedFolders change for empty window with emptyWindow enabled', async () => {
|
|
344
|
+
service.setCurrentTrust(true);
|
|
345
|
+
const change = {
|
|
346
|
+
preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
|
|
347
|
+
scope: preferences_1.PreferenceScope.User,
|
|
348
|
+
domain: [],
|
|
196
349
|
affects: () => true
|
|
197
350
|
};
|
|
198
351
|
await service.testHandlePreferenceChange(change);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-trust-service.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-trust-service.spec.js","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,14 @@ import { MaybePromise } from '@theia/core';
|
|
|
3
3
|
import { WorkspaceFileService } from './workspace-file-service';
|
|
4
4
|
export declare class UntitledWorkspaceService {
|
|
5
5
|
protected readonly workspaceFileService: WorkspaceFileService;
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Check if a URI is an untitled workspace.
|
|
8
|
+
* @param candidate The URI to check
|
|
9
|
+
* @param configDirUri Optional config directory URI. If provided, also verifies
|
|
10
|
+
* that the candidate is under the expected workspaces directory.
|
|
11
|
+
* This is the secure check and should be used when possible.
|
|
12
|
+
*/
|
|
13
|
+
isUntitledWorkspace(candidate?: URI, configDirUri?: URI): boolean;
|
|
7
14
|
getUntitledWorkspaceUri(configDirUri: URI, isAcceptable: (candidate: URI) => MaybePromise<boolean>, warnOnHits?: () => unknown): Promise<URI>;
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=untitled-workspace-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untitled-workspace-service.d.ts","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,wBAAwB;IAGjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"untitled-workspace-service.d.ts","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,wBAAwB;IAGjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAE9D;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO;IAgB3D,uBAAuB,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CAkBtJ"}
|
|
@@ -20,8 +20,27 @@ const tslib_1 = require("tslib");
|
|
|
20
20
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
21
|
const workspace_file_service_1 = require("./workspace-file-service");
|
|
22
22
|
let UntitledWorkspaceService = class UntitledWorkspaceService {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Check if a URI is an untitled workspace.
|
|
25
|
+
* @param candidate The URI to check
|
|
26
|
+
* @param configDirUri Optional config directory URI. If provided, also verifies
|
|
27
|
+
* that the candidate is under the expected workspaces directory.
|
|
28
|
+
* This is the secure check and should be used when possible.
|
|
29
|
+
*/
|
|
30
|
+
isUntitledWorkspace(candidate, configDirUri) {
|
|
31
|
+
if (!candidate || !this.workspaceFileService.isWorkspaceFile(candidate)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (!candidate.path.base.startsWith('Untitled')) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// If configDirUri is provided, verify the candidate is in the expected location
|
|
38
|
+
if (configDirUri) {
|
|
39
|
+
const expectedParentDir = configDirUri.resolve('workspaces');
|
|
40
|
+
return expectedParentDir.isEqualOrParent(candidate);
|
|
41
|
+
}
|
|
42
|
+
// Without configDirUri, fall back to name-only check (less secure)
|
|
43
|
+
return true;
|
|
25
44
|
}
|
|
26
45
|
async getUntitledWorkspaceUri(configDirUri, isAcceptable, warnOnHits) {
|
|
27
46
|
const parentDir = configDirUri.resolve('workspaces');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"untitled-workspace-service.js","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAAkE;AAElE,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKjC,mBAAmB,CAAC,SAAe;
|
|
1
|
+
{"version":3,"file":"untitled-workspace-service.js","sourceRoot":"","sources":["../../src/common/untitled-workspace-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAAkE;AAElE,qEAAgE;AAGzD,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAKjC;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAe,EAAE,YAAkB;QACnD,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,gFAAgF;QAChF,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,mEAAmE;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,YAAiB,EAAE,YAAuD,EAAE,UAA0B;QAChI,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,CAAC;QACnF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QACjG,IAAI,GAAG,CAAC;QACR,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,GAAG,CAAC;YACA,QAAQ,EAAE,CAAC;YACX,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;YAChG,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAClB,UAAU,EAAE,EAAE,CAAC;YACnB,CAAC;YACD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,QAAQ,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE;QACrC,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAA;AA9CY,4DAAwB;AAGd;IADlB,IAAA,kBAAM,EAAC,6CAAoB,CAAC;sCACY,6CAAoB;sEAAC;mCAHrD,wBAAwB;IADpC,IAAA,sBAAU,GAAE;GACA,wBAAwB,CA8CpC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/workspace",
|
|
3
|
-
"version": "1.68.0-next.
|
|
3
|
+
"version": "1.68.0-next.79+c38f18ec72c",
|
|
4
4
|
"description": "Theia - Workspace Extension",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.68.0-next.
|
|
7
|
-
"@theia/filesystem": "1.68.0-next.
|
|
8
|
-
"@theia/variable-resolver": "1.68.0-next.
|
|
6
|
+
"@theia/core": "1.68.0-next.79+c38f18ec72c",
|
|
7
|
+
"@theia/filesystem": "1.68.0-next.79+c38f18ec72c",
|
|
8
|
+
"@theia/variable-resolver": "1.68.0-next.79+c38f18ec72c",
|
|
9
9
|
"jsonc-parser": "^2.2.0",
|
|
10
10
|
"tslib": "^2.6.2",
|
|
11
11
|
"valid-filename": "^2.0.1"
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"nyc": {
|
|
53
53
|
"extends": "../../configs/nyc.json"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "c38f18ec72c0cb454100658a01331bd9fb7bd8cc"
|
|
56
56
|
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
/* Workspace Trust Dialog Styles */
|
|
18
|
+
|
|
19
|
+
.workspace-trust-content {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
gap: calc(var(--theia-ui-padding) * 3);
|
|
23
|
+
padding: calc(var(--theia-ui-padding) * 2);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.workspace-trust-header {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: calc(var(--theia-ui-padding) * 2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.workspace-trust-header i {
|
|
33
|
+
font-size: calc(var(--theia-ui-font-size3) * 2.5) !important;
|
|
34
|
+
color: var(--theia-button-background);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.workspace-trust-title {
|
|
38
|
+
font-size: var(--theia-ui-font-size2);
|
|
39
|
+
font-weight: 600;
|
|
40
|
+
line-height: var(--theia-content-line-height);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.workspace-trust-description,
|
|
44
|
+
.workspace-trust-folder {
|
|
45
|
+
margin-left: calc(var(--theia-ui-font-size3) * 2.5 + var(--theia-ui-padding) * 2);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.workspace-trust-dialog .dialogControl {
|
|
49
|
+
margin-left: calc(var(--theia-ui-font-size3) * 2.5 + var(--theia-ui-padding) * 4);
|
|
50
|
+
padding-bottom: calc(var(--theia-ui-padding) * 4) !important;
|
|
51
|
+
justify-content: flex-start !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.workspace-trust-description {
|
|
55
|
+
color: var(--theia-descriptionForeground);
|
|
56
|
+
line-height: var(--theia-content-line-height);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.workspace-trust-folder-list {
|
|
60
|
+
padding-inline-start: 15px;
|
|
61
|
+
margin-block: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.workspace-trust-folder {
|
|
65
|
+
font-family: var(--theia-code-font-family);
|
|
66
|
+
font-size: var(--theia-code-font-size);
|
|
67
|
+
color: var(--theia-foreground);
|
|
68
|
+
background-color: var(--theia-editor-background);
|
|
69
|
+
padding: var(--theia-ui-padding) calc(var(--theia-ui-padding) * 1.5);
|
|
70
|
+
border-radius: 4px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.workspace-trust-dialog .dialogControl .theia-button.secondary {
|
|
74
|
+
margin-left: 0;
|
|
75
|
+
}
|
|
@@ -531,6 +531,8 @@ export class WorkspaceFrontendContribution implements CommandContribution, Keybi
|
|
|
531
531
|
this.workspaceTrustService.setWorkspaceTrust(newTrust);
|
|
532
532
|
if (newTrust) {
|
|
533
533
|
await this.workspaceTrustService.addToTrustedFolders();
|
|
534
|
+
} else {
|
|
535
|
+
await this.workspaceTrustService.removeFromTrustedFolders();
|
|
534
536
|
}
|
|
535
537
|
}
|
|
536
538
|
}
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import '../../src/browser/style/index.css';
|
|
18
|
+
|
|
17
19
|
import { ContainerModule, interfaces } from '@theia/core/shared/inversify';
|
|
18
20
|
import { CommandContribution, MenuContribution, bindContributionProvider } from '@theia/core/lib/common';
|
|
19
21
|
import { WebSocketConnectionProvider, FrontendApplicationContribution, KeybindingContribution } from '@theia/core/lib/browser';
|
|
@@ -48,7 +50,7 @@ import { JsonSchemaContribution } from '@theia/core/lib/browser/json-schema-stor
|
|
|
48
50
|
import { WorkspaceSchemaUpdater } from './workspace-schema-updater';
|
|
49
51
|
import { WorkspaceBreadcrumbsContribution } from './workspace-breadcrumbs-contribution';
|
|
50
52
|
import { FilepathBreadcrumbsContribution } from '@theia/filesystem/lib/browser/breadcrumbs/filepath-breadcrumbs-contribution';
|
|
51
|
-
import { WorkspaceTrustService } from './workspace-trust-service';
|
|
53
|
+
import { WorkspaceTrustService, WorkspaceRestrictionContribution } from './workspace-trust-service';
|
|
52
54
|
import { bindWorkspaceTrustPreferences } from '../common/workspace-trust-preferences';
|
|
53
55
|
import { UserWorkingDirectoryProvider } from '@theia/core/lib/browser/user-working-directory-provider';
|
|
54
56
|
import { WorkspaceUserWorkingDirectoryProvider } from './workspace-user-working-directory-provider';
|
|
@@ -113,6 +115,7 @@ export default new ContainerModule((bind: interfaces.Bind, unbind: interfaces.Un
|
|
|
113
115
|
bind(JsonSchemaContribution).toService(WorkspaceSchemaUpdater);
|
|
114
116
|
rebind(FilepathBreadcrumbsContribution).to(WorkspaceBreadcrumbsContribution).inSingletonScope();
|
|
115
117
|
|
|
118
|
+
bindContributionProvider(bind, WorkspaceRestrictionContribution);
|
|
116
119
|
bind(WorkspaceTrustService).toSelf().inSingletonScope();
|
|
117
120
|
rebind(UserWorkingDirectoryProvider).to(WorkspaceUserWorkingDirectoryProvider).inSingletonScope();
|
|
118
121
|
|