@theia/workspace 1.68.0-next.34 → 1.68.0-next.48

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.
Files changed (26) hide show
  1. package/lib/browser/workspace-commands.d.ts +1 -0
  2. package/lib/browser/workspace-commands.d.ts.map +1 -1
  3. package/lib/browser/workspace-commands.js +5 -0
  4. package/lib/browser/workspace-commands.js.map +1 -1
  5. package/lib/browser/workspace-frontend-contribution.d.ts +5 -1
  6. package/lib/browser/workspace-frontend-contribution.d.ts.map +1 -1
  7. package/lib/browser/workspace-frontend-contribution.js +41 -0
  8. package/lib/browser/workspace-frontend-contribution.js.map +1 -1
  9. package/lib/browser/workspace-trust-service.d.ts +21 -1
  10. package/lib/browser/workspace-trust-service.d.ts.map +1 -1
  11. package/lib/browser/workspace-trust-service.js +179 -9
  12. package/lib/browser/workspace-trust-service.js.map +1 -1
  13. package/lib/browser/workspace-trust-service.spec.d.ts +2 -0
  14. package/lib/browser/workspace-trust-service.spec.d.ts.map +1 -0
  15. package/lib/browser/workspace-trust-service.spec.js +204 -0
  16. package/lib/browser/workspace-trust-service.spec.js.map +1 -0
  17. package/lib/common/workspace-trust-preferences.d.ts +2 -0
  18. package/lib/common/workspace-trust-preferences.d.ts.map +1 -1
  19. package/lib/common/workspace-trust-preferences.js +11 -1
  20. package/lib/common/workspace-trust-preferences.js.map +1 -1
  21. package/package.json +5 -5
  22. package/src/browser/workspace-commands.ts +5 -0
  23. package/src/browser/workspace-frontend-contribution.ts +43 -2
  24. package/src/browser/workspace-trust-service.spec.ts +259 -0
  25. package/src/browser/workspace-trust-service.ts +206 -13
  26. package/src/common/workspace-trust-preferences.ts +11 -0
@@ -15,9 +15,14 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.WorkspaceTrustService = void 0;
18
+ exports.WorkspaceTrustService = exports.WORKSPACE_TRUST_STATUS_BAR_ID = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const browser_1 = require("@theia/core/lib/browser");
21
+ const status_bar_1 = require("@theia/core/lib/browser/status-bar/status-bar");
22
+ const core_1 = require("@theia/core");
23
+ const disposable_1 = require("@theia/core/lib/common/disposable");
24
+ const common_1 = require("@theia/core/lib/common");
25
+ const uri_1 = require("@theia/core/lib/common/uri");
21
26
  const preferences_1 = require("@theia/core/lib/common/preferences");
22
27
  const message_service_1 = require("@theia/core/lib/common/message-service");
23
28
  const nls_1 = require("@theia/core/lib/common/nls");
@@ -27,19 +32,37 @@ const window_service_1 = require("@theia/core/lib/browser/window/window-service"
27
32
  const workspace_trust_preferences_1 = require("../common/workspace-trust-preferences");
28
33
  const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
29
34
  const workspace_service_1 = require("./workspace-service");
35
+ const workspace_commands_1 = require("./workspace-commands");
30
36
  const context_key_service_1 = require("@theia/core/lib/browser/context-key-service");
31
37
  const STORAGE_TRUSTED = 'trusted';
38
+ exports.WORKSPACE_TRUST_STATUS_BAR_ID = 'workspace-trust-status';
32
39
  let WorkspaceTrustService = class WorkspaceTrustService {
33
40
  constructor() {
34
41
  this.workspaceTrust = new promise_util_1.Deferred();
42
+ this.onDidChangeWorkspaceTrustEmitter = new common_1.Emitter();
43
+ this.onDidChangeWorkspaceTrust = this.onDidChangeWorkspaceTrustEmitter.event;
44
+ this.toDispose = new disposable_1.DisposableCollection(this.onDidChangeWorkspaceTrustEmitter);
35
45
  }
36
46
  init() {
37
47
  this.doInit();
38
48
  }
39
49
  async doInit() {
40
50
  await this.workspaceService.ready;
51
+ await this.workspaceTrustPref.ready;
52
+ await this.preferenceSchemaService.ready;
41
53
  await this.resolveWorkspaceTrust();
42
- this.preferences.onPreferenceChanged(change => this.handlePreferenceChange(change));
54
+ this.toDispose.push(this.preferences.onPreferenceChanged(change => this.handlePreferenceChange(change)));
55
+ this.toDispose.push(this.workspaceService.onWorkspaceChanged(() => this.handleWorkspaceChanged()));
56
+ // Show status bar item if starting in restricted mode
57
+ const initialTrust = await this.getWorkspaceTrust();
58
+ this.updateRestrictedModeIndicator(initialTrust);
59
+ // React to trust changes
60
+ this.toDispose.push(this.onDidChangeWorkspaceTrust(trust => {
61
+ this.updateRestrictedModeIndicator(trust);
62
+ }));
63
+ }
64
+ onStop() {
65
+ this.toDispose.dispose();
43
66
  }
44
67
  getWorkspaceTrust() {
45
68
  return this.workspaceTrust.promise;
@@ -50,25 +73,109 @@ let WorkspaceTrustService = class WorkspaceTrustService {
50
73
  if (trust !== undefined) {
51
74
  await this.storeWorkspaceTrust(trust);
52
75
  this.contextKeyService.setContext('isWorkspaceTrusted', trust);
76
+ this.currentTrust = trust;
53
77
  this.workspaceTrust.resolve(trust);
78
+ this.onDidChangeWorkspaceTrustEmitter.fire(trust);
79
+ if (trust && this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED]) {
80
+ await this.addToTrustedFolders();
81
+ }
54
82
  }
55
83
  }
56
84
  }
85
+ setWorkspaceTrust(trusted) {
86
+ if (this.currentTrust === trusted) {
87
+ return;
88
+ }
89
+ this.currentTrust = trusted;
90
+ this.contextKeyService.setContext('isWorkspaceTrusted', trusted);
91
+ if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
92
+ this.storeWorkspaceTrust(trusted);
93
+ }
94
+ this.onDidChangeWorkspaceTrustEmitter.fire(trusted);
95
+ }
57
96
  isWorkspaceTrustResolved() {
58
97
  return this.workspaceTrust.state !== 'unresolved';
59
98
  }
60
99
  async calculateWorkspaceTrust() {
61
- if (!this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED]) {
62
- // in VS Code if workspace trust is disabled, we implicitly trust the workspace
100
+ const trustEnabled = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED];
101
+ if (!trustEnabled) {
63
102
  return true;
64
103
  }
65
104
  if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] && !this.workspaceService.workspace) {
66
105
  return true;
67
106
  }
107
+ if (this.isWorkspaceInTrustedFolders()) {
108
+ return true;
109
+ }
68
110
  if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.NEVER) {
69
111
  return false;
70
112
  }
71
- return this.loadWorkspaceTrust();
113
+ // For ONCE mode, check stored trust first
114
+ if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
115
+ const storedTrust = await this.loadWorkspaceTrust();
116
+ if (storedTrust !== undefined) {
117
+ return storedTrust;
118
+ }
119
+ }
120
+ // For ALWAYS mode or ONCE mode with no stored decision, show dialog
121
+ return this.showTrustPromptDialog();
122
+ }
123
+ async showTrustPromptDialog() {
124
+ // If dialog is already open, wait for its result
125
+ if (this.pendingTrustDialog) {
126
+ return this.pendingTrustDialog.promise;
127
+ }
128
+ this.pendingTrustDialog = new promise_util_1.Deferred();
129
+ try {
130
+ const trust = nls_1.nls.localizeByDefault('Yes, I trust the authors');
131
+ const dontTrust = nls_1.nls.localizeByDefault("No, I don't trust the authors");
132
+ const folderPath = this.workspaceService.workspace?.resource?.path?.toString() ?? '';
133
+ const dialog = new browser_1.ConfirmDialog({
134
+ title: nls_1.nls.localizeByDefault('Do you trust the authors of the files in this folder?'),
135
+ msg: nls_1.nls.localize('theia/workspace/trustDialogMessage', 'If you trust the authors of this folder, code inside may be executed. Only trust folders that you trust the contents of.') +
136
+ (folderPath ? `\n\n"${folderPath}"` : ''),
137
+ ok: trust,
138
+ cancel: dontTrust,
139
+ });
140
+ const result = await dialog.open();
141
+ const trusted = result === true;
142
+ this.pendingTrustDialog.resolve(trusted);
143
+ return trusted;
144
+ }
145
+ catch (e) {
146
+ this.pendingTrustDialog.resolve(false);
147
+ throw e;
148
+ }
149
+ finally {
150
+ this.pendingTrustDialog = undefined;
151
+ }
152
+ }
153
+ async addToTrustedFolders() {
154
+ const workspaceUri = this.workspaceService.workspace?.resource;
155
+ if (!workspaceUri) {
156
+ return;
157
+ }
158
+ if (!this.isWorkspaceInTrustedFolders()) {
159
+ const currentFolders = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] || [];
160
+ await this.preferences.set(workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS, [...currentFolders, workspaceUri.toString()], preferences_1.PreferenceScope.User);
161
+ }
162
+ }
163
+ isWorkspaceInTrustedFolders() {
164
+ const workspaceUri = this.workspaceService.workspace?.resource;
165
+ if (!workspaceUri) {
166
+ return false;
167
+ }
168
+ const trustedFolders = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] || [];
169
+ const caseSensitive = !core_1.OS.backend.isWindows;
170
+ return trustedFolders.some(folder => {
171
+ try {
172
+ const folderUri = new uri_1.default(folder).normalizePath();
173
+ return workspaceUri.normalizePath().isEqual(folderUri, caseSensitive);
174
+ }
175
+ catch {
176
+ return false; // Invalid URI in preferences
177
+ }
178
+ });
72
179
  }
73
180
  async loadWorkspaceTrust() {
74
181
  if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
@@ -81,6 +188,18 @@ let WorkspaceTrustService = class WorkspaceTrustService {
81
188
  }
82
189
  }
83
190
  async handlePreferenceChange(change) {
191
+ // Handle trustedFolders changes regardless of scope
192
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS) {
193
+ // For empty windows with emptyWindow setting enabled, trust should remain true
194
+ if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] && !this.workspaceService.workspace) {
195
+ return;
196
+ }
197
+ const isNowInTrustedFolders = this.isWorkspaceInTrustedFolders();
198
+ if (isNowInTrustedFolders !== this.currentTrust) {
199
+ this.setWorkspaceTrust(isNowInTrustedFolders);
200
+ }
201
+ return;
202
+ }
84
203
  if (change.scope === preferences_1.PreferenceScope.User) {
85
204
  if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT && change.newValue !== workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
86
205
  this.storage.setData(STORAGE_TRUSTED, undefined);
@@ -89,11 +208,29 @@ let WorkspaceTrustService = class WorkspaceTrustService {
89
208
  this.windowService.setSafeToShutDown();
90
209
  this.windowService.reload();
91
210
  }
92
- if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED || change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW) {
211
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED) {
93
212
  this.resolveWorkspaceTrust();
94
213
  }
214
+ // Handle emptyWindow setting change for empty windows
215
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW && !this.workspaceService.workspace) {
216
+ // For empty windows, directly update trust based on the new setting value
217
+ const shouldTrust = !!change.newValue;
218
+ if (this.currentTrust !== shouldTrust) {
219
+ this.setWorkspaceTrust(shouldTrust);
220
+ }
221
+ }
95
222
  }
96
223
  }
224
+ async handleWorkspaceChanged() {
225
+ // Reset trust state for the new workspace
226
+ this.workspaceTrust = new promise_util_1.Deferred();
227
+ this.currentTrust = undefined;
228
+ // Re-evaluate trust for the new workspace
229
+ await this.resolveWorkspaceTrust();
230
+ // Update status bar indicator
231
+ const trust = await this.getWorkspaceTrust();
232
+ this.updateRestrictedModeIndicator(trust);
233
+ }
97
234
  async confirmRestart() {
98
235
  const shouldRestart = await new browser_1.ConfirmDialog({
99
236
  title: nls_1.nls.localizeByDefault('A setting has changed that requires a restart to take effect.'),
@@ -103,11 +240,30 @@ let WorkspaceTrustService = class WorkspaceTrustService {
103
240
  }).open();
104
241
  return shouldRestart === true;
105
242
  }
243
+ updateRestrictedModeIndicator(trusted) {
244
+ if (trusted) {
245
+ this.hideRestrictedModeStatusBarItem();
246
+ }
247
+ else {
248
+ this.showRestrictedModeStatusBarItem();
249
+ }
250
+ }
251
+ showRestrictedModeStatusBarItem() {
252
+ this.statusBar.setElement(exports.WORKSPACE_TRUST_STATUS_BAR_ID, {
253
+ text: '$(shield) ' + nls_1.nls.localizeByDefault('Restricted Mode'),
254
+ alignment: status_bar_1.StatusBarAlignment.LEFT,
255
+ priority: 5000,
256
+ tooltip: nls_1.nls.localize('theia/workspace/restrictedModeTooltip', 'Running in Restricted Mode. Some features are disabled because this folder is not trusted. Click to manage trust settings.'),
257
+ command: workspace_commands_1.WorkspaceCommands.MANAGE_WORKSPACE_TRUST.id
258
+ });
259
+ }
260
+ hideRestrictedModeStatusBarItem() {
261
+ this.statusBar.removeElement(exports.WORKSPACE_TRUST_STATUS_BAR_ID);
262
+ }
106
263
  async requestWorkspaceTrust() {
107
264
  if (!this.isWorkspaceTrustResolved()) {
108
- const isTrusted = await this.messageService.info(nls_1.nls.localize('theia/workspace/trustRequest', 'An extension requests workspace trust but the corresponding API is not yet fully supported. Do you want to trust this workspace?'), browser_1.Dialog.YES, browser_1.Dialog.NO);
109
- const trusted = isTrusted === browser_1.Dialog.YES;
110
- this.resolveWorkspaceTrust(trusted);
265
+ const trusted = await this.showTrustPromptDialog();
266
+ await this.resolveWorkspaceTrust(trusted);
111
267
  }
112
268
  return this.workspaceTrust.promise;
113
269
  }
@@ -133,6 +289,10 @@ tslib_1.__decorate([
133
289
  (0, inversify_1.inject)(workspace_trust_preferences_1.WorkspaceTrustPreferences),
134
290
  tslib_1.__metadata("design:type", Object)
135
291
  ], WorkspaceTrustService.prototype, "workspaceTrustPref", void 0);
292
+ tslib_1.__decorate([
293
+ (0, inversify_1.inject)(preferences_1.PreferenceSchemaService),
294
+ tslib_1.__metadata("design:type", Object)
295
+ ], WorkspaceTrustService.prototype, "preferenceSchemaService", void 0);
136
296
  tslib_1.__decorate([
137
297
  (0, inversify_1.inject)(window_service_1.WindowService),
138
298
  tslib_1.__metadata("design:type", Object)
@@ -141,12 +301,22 @@ tslib_1.__decorate([
141
301
  (0, inversify_1.inject)(context_key_service_1.ContextKeyService),
142
302
  tslib_1.__metadata("design:type", Object)
143
303
  ], WorkspaceTrustService.prototype, "contextKeyService", void 0);
304
+ tslib_1.__decorate([
305
+ (0, inversify_1.inject)(status_bar_1.StatusBar),
306
+ tslib_1.__metadata("design:type", Object)
307
+ ], WorkspaceTrustService.prototype, "statusBar", void 0);
144
308
  tslib_1.__decorate([
145
309
  (0, inversify_1.postConstruct)(),
146
310
  tslib_1.__metadata("design:type", Function),
147
311
  tslib_1.__metadata("design:paramtypes", []),
148
312
  tslib_1.__metadata("design:returntype", void 0)
149
313
  ], WorkspaceTrustService.prototype, "init", null);
314
+ tslib_1.__decorate([
315
+ (0, inversify_1.preDestroy)(),
316
+ tslib_1.__metadata("design:type", Function),
317
+ tslib_1.__metadata("design:paramtypes", []),
318
+ tslib_1.__metadata("design:returntype", void 0)
319
+ ], WorkspaceTrustService.prototype, "onStop", null);
150
320
  exports.WorkspaceTrustService = WorkspaceTrustService = tslib_1.__decorate([
151
321
  (0, inversify_1.injectable)()
152
322
  ], WorkspaceTrustService);
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-trust-service.js","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-trust-service.js","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspace-trust-service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-trust-service.spec.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-trust-service.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const sinon = require("sinon");
20
+ const preferences_1 = require("@theia/core/lib/common/preferences");
21
+ const workspace_trust_service_1 = require("./workspace-trust-service");
22
+ const workspace_trust_preferences_1 = require("../common/workspace-trust-preferences");
23
+ class TestableWorkspaceTrustService extends workspace_trust_service_1.WorkspaceTrustService {
24
+ async testHandlePreferenceChange(change) {
25
+ return this.handlePreferenceChange(change);
26
+ }
27
+ async testHandleWorkspaceChanged() {
28
+ return this.handleWorkspaceChanged();
29
+ }
30
+ setCurrentTrust(trust) {
31
+ this.currentTrust = trust;
32
+ }
33
+ getCurrentTrust() {
34
+ return this.currentTrust;
35
+ }
36
+ isWorkspaceTrustResolved() {
37
+ return super.isWorkspaceTrustResolved();
38
+ }
39
+ }
40
+ describe('WorkspaceTrustService', () => {
41
+ let service;
42
+ beforeEach(() => {
43
+ service = new TestableWorkspaceTrustService();
44
+ });
45
+ describe('handleWorkspaceChanged', () => {
46
+ let resolveWorkspaceTrustStub;
47
+ let getWorkspaceTrustStub;
48
+ let updateRestrictedModeIndicatorStub;
49
+ beforeEach(() => {
50
+ resolveWorkspaceTrustStub = sinon.stub(service, 'resolveWorkspaceTrust').resolves();
51
+ getWorkspaceTrustStub = sinon.stub(service, 'getWorkspaceTrust').resolves(true);
52
+ updateRestrictedModeIndicatorStub = sinon.stub(service, 'updateRestrictedModeIndicator');
53
+ });
54
+ afterEach(() => {
55
+ sinon.restore();
56
+ });
57
+ it('should reset trust state when workspace changes', async () => {
58
+ service.setCurrentTrust(true);
59
+ await service.testHandleWorkspaceChanged();
60
+ (0, chai_1.expect)(service.getCurrentTrust()).to.be.undefined;
61
+ });
62
+ it('should re-evaluate trust when workspace changes', async () => {
63
+ service.setCurrentTrust(true);
64
+ await service.testHandleWorkspaceChanged();
65
+ (0, chai_1.expect)(resolveWorkspaceTrustStub.calledOnce).to.be.true;
66
+ });
67
+ it('should update restricted mode indicator after workspace change if not trusted', async () => {
68
+ getWorkspaceTrustStub.resolves(false);
69
+ await service.testHandleWorkspaceChanged();
70
+ (0, chai_1.expect)(updateRestrictedModeIndicatorStub.calledOnceWith(false)).to.be.true;
71
+ });
72
+ it('should reset workspaceTrust deferred to unresolved state', async () => {
73
+ // First resolve the trust
74
+ service.setCurrentTrust(true);
75
+ await service.testHandleWorkspaceChanged();
76
+ // After workspace change, it should be reset and resolved again via resolveWorkspaceTrust
77
+ (0, chai_1.expect)(resolveWorkspaceTrustStub.calledOnce).to.be.true;
78
+ });
79
+ });
80
+ describe('handlePreferenceChange', () => {
81
+ let isWorkspaceInTrustedFoldersStub;
82
+ let setWorkspaceTrustStub;
83
+ let workspaceTrustPrefStub;
84
+ let workspaceServiceStub;
85
+ beforeEach(() => {
86
+ isWorkspaceInTrustedFoldersStub = sinon.stub(service, 'isWorkspaceInTrustedFolders');
87
+ setWorkspaceTrustStub = sinon.stub(service, 'setWorkspaceTrust');
88
+ // Mock workspaceTrustPref - default emptyWindow to false so trusted folders logic runs
89
+ workspaceTrustPrefStub = { [workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]: false };
90
+ service.workspaceTrustPref = workspaceTrustPrefStub;
91
+ // Mock workspaceService with a workspace (non-empty)
92
+ workspaceServiceStub = { workspace: { resource: { toString: () => 'file:///some/workspace' } } };
93
+ service.workspaceService = workspaceServiceStub;
94
+ });
95
+ afterEach(() => {
96
+ sinon.restore();
97
+ });
98
+ it('should update trust to true when folder is added to trustedFolders', async () => {
99
+ service.setCurrentTrust(false);
100
+ isWorkspaceInTrustedFoldersStub.returns(true);
101
+ const change = {
102
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
103
+ scope: preferences_1.PreferenceScope.User,
104
+ domain: [],
105
+ newValue: ['/some/path'],
106
+ oldValue: [],
107
+ affects: () => true
108
+ };
109
+ await service.testHandlePreferenceChange(change);
110
+ (0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(true)).to.be.true;
111
+ });
112
+ it('should update trust to false when folder is removed from trustedFolders', async () => {
113
+ service.setCurrentTrust(true);
114
+ isWorkspaceInTrustedFoldersStub.returns(false);
115
+ const change = {
116
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
117
+ scope: preferences_1.PreferenceScope.User,
118
+ domain: [],
119
+ newValue: [],
120
+ oldValue: ['/some/path'],
121
+ affects: () => true
122
+ };
123
+ await service.testHandlePreferenceChange(change);
124
+ (0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
125
+ });
126
+ it('should not update trust when trustedFolders change does not affect current workspace', async () => {
127
+ service.setCurrentTrust(false);
128
+ isWorkspaceInTrustedFoldersStub.returns(false);
129
+ const change = {
130
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS,
131
+ scope: preferences_1.PreferenceScope.User,
132
+ domain: [],
133
+ newValue: ['/other/path'],
134
+ oldValue: [],
135
+ affects: () => true
136
+ };
137
+ await service.testHandlePreferenceChange(change);
138
+ (0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
139
+ });
140
+ describe('emptyWindow setting changes', () => {
141
+ beforeEach(() => {
142
+ // Reset workspace to undefined for empty window tests
143
+ workspaceServiceStub.workspace = undefined;
144
+ });
145
+ it('should update trust to true when emptyWindow setting changes to true for empty window', async () => {
146
+ service.setCurrentTrust(false);
147
+ workspaceServiceStub.workspace = undefined;
148
+ const change = {
149
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
150
+ scope: preferences_1.PreferenceScope.User,
151
+ domain: [],
152
+ newValue: true,
153
+ oldValue: false,
154
+ affects: () => true
155
+ };
156
+ await service.testHandlePreferenceChange(change);
157
+ (0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(true)).to.be.true;
158
+ });
159
+ it('should update trust to false when emptyWindow setting changes to false for empty window', async () => {
160
+ service.setCurrentTrust(true);
161
+ workspaceServiceStub.workspace = undefined;
162
+ const change = {
163
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
164
+ scope: preferences_1.PreferenceScope.User,
165
+ domain: [],
166
+ newValue: false,
167
+ oldValue: true,
168
+ affects: () => true
169
+ };
170
+ await service.testHandlePreferenceChange(change);
171
+ (0, chai_1.expect)(setWorkspaceTrustStub.calledOnceWith(false)).to.be.true;
172
+ });
173
+ it('should not update trust when emptyWindow setting changes but workspace is open', async () => {
174
+ service.setCurrentTrust(false);
175
+ workspaceServiceStub.workspace = { resource: { toString: () => 'file:///some/path' } };
176
+ const change = {
177
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
178
+ scope: preferences_1.PreferenceScope.User,
179
+ domain: [],
180
+ newValue: true,
181
+ oldValue: false,
182
+ affects: () => true
183
+ };
184
+ await service.testHandlePreferenceChange(change);
185
+ (0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
186
+ });
187
+ it('should not update trust when emptyWindow setting changes but trust already matches', async () => {
188
+ service.setCurrentTrust(true);
189
+ workspaceServiceStub.workspace = undefined;
190
+ const change = {
191
+ preferenceName: workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW,
192
+ scope: preferences_1.PreferenceScope.User,
193
+ domain: [],
194
+ newValue: true,
195
+ oldValue: false,
196
+ affects: () => true
197
+ };
198
+ await service.testHandlePreferenceChange(change);
199
+ (0, chai_1.expect)(setWorkspaceTrustStub.called).to.be.false;
200
+ });
201
+ });
202
+ });
203
+ });
204
+ //# sourceMappingURL=workspace-trust-service.spec.js.map
@@ -0,0 +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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"}
@@ -3,6 +3,7 @@ import { interfaces } from '@theia/core/shared/inversify';
3
3
  export declare const WORKSPACE_TRUST_ENABLED = "security.workspace.trust.enabled";
4
4
  export declare const WORKSPACE_TRUST_STARTUP_PROMPT = "security.workspace.trust.startupPrompt";
5
5
  export declare const WORKSPACE_TRUST_EMPTY_WINDOW = "security.workspace.trust.emptyWindow";
6
+ export declare const WORKSPACE_TRUST_TRUSTED_FOLDERS = "security.workspace.trust.trustedFolders";
6
7
  export declare enum WorkspaceTrustPrompt {
7
8
  ALWAYS = "always",
8
9
  ONCE = "once",
@@ -13,6 +14,7 @@ export interface WorkspaceTrustConfiguration {
13
14
  [WORKSPACE_TRUST_ENABLED]: boolean;
14
15
  [WORKSPACE_TRUST_STARTUP_PROMPT]: WorkspaceTrustPrompt;
15
16
  [WORKSPACE_TRUST_EMPTY_WINDOW]: boolean;
17
+ [WORKSPACE_TRUST_TRUSTED_FOLDERS]: string[];
16
18
  }
17
19
  export declare const WorkspaceTrustPreferenceContribution: unique symbol;
18
20
  export declare const WorkspaceTrustPreferences: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-trust-preferences.d.ts","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyB,eAAe,EAAmB,iBAAiB,EAA0B,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE1K,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAC1E,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AAEnF,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,eAAO,MAAM,8BAA8B,EAAE,gBAmB5C,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IACnC,CAAC,8BAA8B,CAAC,EAAE,oBAAoB,CAAC;IACvD,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,eAAO,MAAM,oCAAoC,eAAiD,CAAC;AACnG,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAErF,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAiD,GAAG,yBAAyB,CAEpK;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQzE"}
1
+ {"version":3,"file":"workspace-trust-preferences.d.ts","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAyB,eAAe,EAAmB,iBAAiB,EAA0B,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE1K,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAC1E,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AACnF,eAAO,MAAM,+BAA+B,4CAA4C,CAAC;AAEzF,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,eAAO,MAAM,8BAA8B,EAAE,gBA4B5C,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IACnC,CAAC,8BAA8B,CAAC,EAAE,oBAAoB,CAAC;IACvD,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC,+BAA+B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/C;AAED,eAAO,MAAM,oCAAoC,eAAiD,CAAC;AACnG,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAC7E,MAAM,MAAM,yBAAyB,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;AAErF,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAiD,GAAG,yBAAyB,CAEpK;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQzE"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.WorkspaceTrustPreferences = exports.WorkspaceTrustPreferenceContribution = exports.workspaceTrustPreferenceSchema = exports.WorkspaceTrustPrompt = exports.WORKSPACE_TRUST_EMPTY_WINDOW = exports.WORKSPACE_TRUST_STARTUP_PROMPT = exports.WORKSPACE_TRUST_ENABLED = void 0;
18
+ exports.WorkspaceTrustPreferences = exports.WorkspaceTrustPreferenceContribution = exports.workspaceTrustPreferenceSchema = exports.WorkspaceTrustPrompt = exports.WORKSPACE_TRUST_TRUSTED_FOLDERS = exports.WORKSPACE_TRUST_EMPTY_WINDOW = exports.WORKSPACE_TRUST_STARTUP_PROMPT = exports.WORKSPACE_TRUST_ENABLED = void 0;
19
19
  exports.createWorkspaceTrustPreferences = createWorkspaceTrustPreferences;
20
20
  exports.bindWorkspaceTrustPreferences = bindWorkspaceTrustPreferences;
21
21
  const preferences_1 = require("@theia/core/lib/common/preferences");
@@ -23,6 +23,7 @@ const nls_1 = require("@theia/core/lib/common/nls");
23
23
  exports.WORKSPACE_TRUST_ENABLED = 'security.workspace.trust.enabled';
24
24
  exports.WORKSPACE_TRUST_STARTUP_PROMPT = 'security.workspace.trust.startupPrompt';
25
25
  exports.WORKSPACE_TRUST_EMPTY_WINDOW = 'security.workspace.trust.emptyWindow';
26
+ exports.WORKSPACE_TRUST_TRUSTED_FOLDERS = 'security.workspace.trust.trustedFolders';
26
27
  var WorkspaceTrustPrompt;
27
28
  (function (WorkspaceTrustPrompt) {
28
29
  WorkspaceTrustPrompt["ALWAYS"] = "always";
@@ -46,6 +47,15 @@ exports.workspaceTrustPreferenceSchema = {
46
47
  description: nls_1.nls.localize('theia/workspace/trustEmptyWindow', 'Controls whether or not the empty workspace is trusted by default.'),
47
48
  type: 'boolean',
48
49
  default: true
50
+ },
51
+ [exports.WORKSPACE_TRUST_TRUSTED_FOLDERS]: {
52
+ description: nls_1.nls.localize('theia/workspace/trustTrustedFolders', 'List of folder URIs that are trusted without prompting.'),
53
+ type: 'array',
54
+ items: {
55
+ type: 'string'
56
+ },
57
+ default: [],
58
+ scope: preferences_1.PreferenceScope.User
49
59
  }
50
60
  }
51
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-trust-preferences.js","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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;;;AA+ChF,0EAEC;AAED,sEAQC;AAzDD,oEAA0K;AAC1K,oDAAiD;AAGpC,QAAA,uBAAuB,GAAG,kCAAkC,CAAC;AAC7D,QAAA,8BAA8B,GAAG,wCAAwC,CAAC;AAC1E,QAAA,4BAA4B,GAAG,sCAAsC,CAAC;AAEnF,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,qCAAa,CAAA;IACb,uCAAe,CAAA;AACnB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B;AAEY,QAAA,8BAA8B,GAAqB;IAC5D,KAAK,EAAE,6BAAe,CAAC,IAAI;IAC3B,UAAU,EAAE;QACR,CAAC,+BAAuB,CAAC,EAAE;YACvB,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,8BAA8B,EAAE,8FAA8F,CAAC;YACzJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,CAAC,sCAA8B,CAAC,EAAE;YAC9B,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,iEAAiE,CAAC;YACrG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACzC,OAAO,EAAE,oBAAoB,CAAC,MAAM;SACvC;QACD,CAAC,oCAA4B,CAAC,EAAE;YAC5B,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oEAAoE,CAAC;YACnI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;KACJ;CACJ,CAAC;AAQW,QAAA,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACtF,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAG7E,SAAgB,+BAA+B,CAAC,WAA8B,EAAE,SAA2B,sCAA8B;IACrI,OAAO,IAAA,mCAAqB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAqB;IAC/D,IAAI,CAAC,iCAAyB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACjD,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAoB,+BAAiB,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,4CAAoC,CAAC,CAAC;QACrG,OAAO,+BAA+B,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,4CAAoC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,sCAA8B,EAAE,CAAC,CAAC;IACvG,IAAI,CAAC,oCAAsB,CAAC,CAAC,SAAS,CAAC,4CAAoC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"workspace-trust-preferences.js","sourceRoot":"","sources":["../../src/common/workspace-trust-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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;;;AA0DhF,0EAEC;AAED,sEAQC;AApED,oEAA0K;AAC1K,oDAAiD;AAGpC,QAAA,uBAAuB,GAAG,kCAAkC,CAAC;AAC7D,QAAA,8BAA8B,GAAG,wCAAwC,CAAC;AAC1E,QAAA,4BAA4B,GAAG,sCAAsC,CAAC;AACtE,QAAA,+BAA+B,GAAG,yCAAyC,CAAC;AAEzF,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,qCAAa,CAAA;IACb,uCAAe,CAAA;AACnB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B;AAEY,QAAA,8BAA8B,GAAqB;IAC5D,KAAK,EAAE,6BAAe,CAAC,IAAI;IAC3B,UAAU,EAAE;QACR,CAAC,+BAAuB,CAAC,EAAE;YACvB,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,8BAA8B,EAAE,8FAA8F,CAAC;YACzJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,CAAC,sCAA8B,CAAC,EAAE;YAC9B,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,iEAAiE,CAAC;YACrG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACzC,OAAO,EAAE,oBAAoB,CAAC,MAAM;SACvC;QACD,CAAC,oCAA4B,CAAC,EAAE;YAC5B,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,kCAAkC,EAAE,oEAAoE,CAAC;YACnI,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SAChB;QACD,CAAC,uCAA+B,CAAC,EAAE;YAC/B,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,qCAAqC,EAAE,yDAAyD,CAAC;YAC3H,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,6BAAe,CAAC,IAAI;SAC9B;KACJ;CACJ,CAAC;AASW,QAAA,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACtF,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAG7E,SAAgB,+BAA+B,CAAC,WAA8B,EAAE,SAA2B,sCAA8B;IACrI,OAAO,IAAA,mCAAqB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,6BAA6B,CAAC,IAAqB;IAC/D,IAAI,CAAC,iCAAyB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QACjD,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAoB,+BAAiB,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,4CAAoC,CAAC,CAAC;QACrG,OAAO,+BAA+B,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,4CAAoC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,sCAA8B,EAAE,CAAC,CAAC;IACvG,IAAI,CAAC,oCAAsB,CAAC,CAAC,SAAS,CAAC,4CAAoC,CAAC,CAAC;AACjF,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@theia/workspace",
3
- "version": "1.68.0-next.34+e43ded916",
3
+ "version": "1.68.0-next.48+c13611b3f",
4
4
  "description": "Theia - Workspace Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.68.0-next.34+e43ded916",
7
- "@theia/filesystem": "1.68.0-next.34+e43ded916",
8
- "@theia/variable-resolver": "1.68.0-next.34+e43ded916",
6
+ "@theia/core": "1.68.0-next.48+c13611b3f",
7
+ "@theia/filesystem": "1.68.0-next.48+c13611b3f",
8
+ "@theia/variable-resolver": "1.68.0-next.48+c13611b3f",
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": "e43ded916743be7826bc3acad9d66241c94a2c52"
55
+ "gitHead": "c13611b3f07bfc3d2c7525d8488283ff3e575422"
56
56
  }