@theia/workspace 1.68.0-next.7 → 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.
Files changed (59) hide show
  1. package/lib/browser/quick-open-workspace.js +3 -4
  2. package/lib/browser/quick-open-workspace.js.map +1 -1
  3. package/lib/browser/workspace-breadcrumbs-contribution.js +3 -3
  4. package/lib/browser/workspace-breadcrumbs-contribution.js.map +1 -1
  5. package/lib/browser/workspace-commands.d.ts +1 -0
  6. package/lib/browser/workspace-commands.d.ts.map +1 -1
  7. package/lib/browser/workspace-commands.js +6 -2
  8. package/lib/browser/workspace-commands.js.map +1 -1
  9. package/lib/browser/workspace-frontend-contribution.d.ts +5 -1
  10. package/lib/browser/workspace-frontend-contribution.d.ts.map +1 -1
  11. package/lib/browser/workspace-frontend-contribution.js +48 -7
  12. package/lib/browser/workspace-frontend-contribution.js.map +1 -1
  13. package/lib/browser/workspace-frontend-module.d.ts +1 -0
  14. package/lib/browser/workspace-frontend-module.d.ts.map +1 -1
  15. package/lib/browser/workspace-frontend-module.js +2 -0
  16. package/lib/browser/workspace-frontend-module.js.map +1 -1
  17. package/lib/browser/workspace-schema-updater.d.ts.map +1 -1
  18. package/lib/browser/workspace-service.js +3 -5
  19. package/lib/browser/workspace-service.js.map +1 -1
  20. package/lib/browser/workspace-trust-dialog.d.ts +13 -0
  21. package/lib/browser/workspace-trust-dialog.d.ts.map +1 -0
  22. package/lib/browser/workspace-trust-dialog.js +66 -0
  23. package/lib/browser/workspace-trust-dialog.js.map +1 -0
  24. package/lib/browser/workspace-trust-service.d.ts +77 -1
  25. package/lib/browser/workspace-trust-service.d.ts.map +1 -1
  26. package/lib/browser/workspace-trust-service.js +322 -12
  27. package/lib/browser/workspace-trust-service.js.map +1 -1
  28. package/lib/browser/workspace-trust-service.spec.d.ts +2 -0
  29. package/lib/browser/workspace-trust-service.spec.d.ts.map +1 -0
  30. package/lib/browser/workspace-trust-service.spec.js +357 -0
  31. package/lib/browser/workspace-trust-service.spec.js.map +1 -0
  32. package/lib/browser/workspace-uri-contribution.js +1 -2
  33. package/lib/browser/workspace-uri-contribution.js.map +1 -1
  34. package/lib/browser/workspace-user-working-directory-provider.js +6 -5
  35. package/lib/browser/workspace-user-working-directory-provider.js.map +1 -1
  36. package/lib/common/untitled-workspace-service.d.ts +8 -1
  37. package/lib/common/untitled-workspace-service.d.ts.map +1 -1
  38. package/lib/common/untitled-workspace-service.js +22 -3
  39. package/lib/common/untitled-workspace-service.js.map +1 -1
  40. package/lib/common/workspace-preferences.js +3 -3
  41. package/lib/common/workspace-preferences.js.map +1 -1
  42. package/lib/common/workspace-trust-preferences.d.ts +2 -0
  43. package/lib/common/workspace-trust-preferences.d.ts.map +1 -1
  44. package/lib/common/workspace-trust-preferences.js +13 -3
  45. package/lib/common/workspace-trust-preferences.js.map +1 -1
  46. package/lib/node/default-workspace-server.d.ts +0 -1
  47. package/lib/node/default-workspace-server.d.ts.map +1 -1
  48. package/lib/node/default-workspace-server.js +2 -3
  49. package/lib/node/default-workspace-server.js.map +1 -1
  50. package/package.json +5 -5
  51. package/src/browser/style/index.css +75 -0
  52. package/src/browser/workspace-commands.ts +5 -0
  53. package/src/browser/workspace-frontend-contribution.ts +45 -2
  54. package/src/browser/workspace-frontend-module.ts +4 -1
  55. package/src/browser/workspace-trust-dialog.tsx +90 -0
  56. package/src/browser/workspace-trust-service.spec.ts +462 -0
  57. package/src/browser/workspace-trust-service.ts +381 -15
  58. package/src/common/untitled-workspace-service.ts +21 -2
  59. 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.WorkspaceRestrictionContribution = 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 markdown_string_1 = require("@theia/core/lib/common/markdown-rendering/markdown-string");
22
+ const status_bar_1 = require("@theia/core/lib/browser/status-bar/status-bar");
23
+ const core_1 = require("@theia/core");
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,48 +32,236 @@ 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");
37
+ const workspace_trust_dialog_1 = require("./workspace-trust-dialog");
38
+ const untitled_workspace_service_1 = require("../common/untitled-workspace-service");
39
+ const env_variables_1 = require("@theia/core/lib/common/env-variables");
31
40
  const STORAGE_TRUSTED = 'trusted';
41
+ exports.WORKSPACE_TRUST_STATUS_BAR_ID = 'workspace-trust-status';
42
+ /**
43
+ * Contribution interface for features that are restricted in untrusted workspaces.
44
+ * Implementations can provide information about what is being restricted.
45
+ */
46
+ exports.WorkspaceRestrictionContribution = Symbol('WorkspaceRestrictionContribution');
32
47
  let WorkspaceTrustService = class WorkspaceTrustService {
33
48
  constructor() {
34
49
  this.workspaceTrust = new promise_util_1.Deferred();
50
+ this.onDidChangeWorkspaceTrustEmitter = new common_1.Emitter();
51
+ this.onDidChangeWorkspaceTrust = this.onDidChangeWorkspaceTrustEmitter.event;
52
+ this.toDispose = new core_1.DisposableCollection(this.onDidChangeWorkspaceTrustEmitter);
35
53
  }
36
54
  init() {
37
55
  this.doInit();
38
56
  }
39
57
  async doInit() {
40
58
  await this.workspaceService.ready;
59
+ await this.workspaceTrustPref.ready;
60
+ await this.preferenceSchemaService.ready;
41
61
  await this.resolveWorkspaceTrust();
42
- this.preferences.onPreferenceChanged(change => this.handlePreferenceChange(change));
62
+ this.toDispose.push(this.preferences.onPreferenceChanged(change => this.handlePreferenceChange(change)));
63
+ this.toDispose.push(this.workspaceService.onWorkspaceChanged(() => this.handleWorkspaceChanged()));
64
+ // Show status bar item if starting in restricted mode
65
+ const initialTrust = await this.getWorkspaceTrust();
66
+ this.updateRestrictedModeIndicator(initialTrust);
67
+ // React to trust changes
68
+ this.toDispose.push(this.onDidChangeWorkspaceTrust(trust => {
69
+ this.updateRestrictedModeIndicator(trust);
70
+ }));
71
+ }
72
+ onStop() {
73
+ this.toDispose.dispose();
43
74
  }
44
75
  getWorkspaceTrust() {
76
+ // Return current trust if already resolved, otherwise wait for initial resolution
77
+ if (this.currentTrust !== undefined) {
78
+ return Promise.resolve(this.currentTrust);
79
+ }
45
80
  return this.workspaceTrust.promise;
46
81
  }
47
82
  async resolveWorkspaceTrust(givenTrust) {
48
83
  if (!this.isWorkspaceTrustResolved()) {
49
- const trust = givenTrust !== null && givenTrust !== void 0 ? givenTrust : await this.calculateWorkspaceTrust();
84
+ const trust = givenTrust ?? await this.calculateWorkspaceTrust();
50
85
  if (trust !== undefined) {
51
86
  await this.storeWorkspaceTrust(trust);
52
87
  this.contextKeyService.setContext('isWorkspaceTrusted', trust);
88
+ this.currentTrust = trust;
53
89
  this.workspaceTrust.resolve(trust);
90
+ this.onDidChangeWorkspaceTrustEmitter.fire(trust);
91
+ if (trust && this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED]) {
92
+ await this.addToTrustedFolders();
93
+ }
54
94
  }
55
95
  }
56
96
  }
97
+ setWorkspaceTrust(trusted) {
98
+ if (this.currentTrust === trusted) {
99
+ return;
100
+ }
101
+ this.currentTrust = trusted;
102
+ this.contextKeyService.setContext('isWorkspaceTrusted', trusted);
103
+ if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
104
+ this.storeWorkspaceTrust(trusted);
105
+ }
106
+ this.onDidChangeWorkspaceTrustEmitter.fire(trusted);
107
+ }
57
108
  isWorkspaceTrustResolved() {
58
109
  return this.workspaceTrust.state !== 'unresolved';
59
110
  }
60
111
  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
112
+ const trustEnabled = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED];
113
+ if (!trustEnabled) {
63
114
  return true;
64
115
  }
65
- if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW] && !this.workspaceService.workspace) {
116
+ // Empty workspace - no folders open
117
+ if (await this.isEmptyWorkspace()) {
118
+ return !!this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW];
119
+ }
120
+ if (await this.areAllWorkspaceUrisTrusted()) {
66
121
  return true;
67
122
  }
68
123
  if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.NEVER) {
69
124
  return false;
70
125
  }
71
- return this.loadWorkspaceTrust();
126
+ // For ONCE mode, check stored trust first
127
+ if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
128
+ const storedTrust = await this.loadWorkspaceTrust();
129
+ if (storedTrust !== undefined) {
130
+ return storedTrust;
131
+ }
132
+ }
133
+ // For ALWAYS mode or ONCE mode with no stored decision, show dialog
134
+ return this.showTrustPromptDialog();
135
+ }
136
+ /**
137
+ * Check if the workspace is empty (no workspace or folder opened, or
138
+ * an untitled workspace with no folders).
139
+ * A saved workspace file with 0 folders is NOT empty - it still needs trust
140
+ * evaluation because it could have tasks defined.
141
+ */
142
+ async isEmptyWorkspace() {
143
+ const workspace = this.workspaceService.workspace;
144
+ if (!workspace) {
145
+ return true;
146
+ }
147
+ const roots = this.workspaceService.tryGetRoots();
148
+ // Only consider it empty if it's an untitled workspace with no folders
149
+ // Use secure check with configDirUri for trust-related decisions
150
+ if (roots.length === 0) {
151
+ const configDirUri = new uri_1.default(await this.envVariablesServer.getConfigDirUri());
152
+ if (this.untitledWorkspaceService.isUntitledWorkspace(workspace.resource, configDirUri)) {
153
+ return true;
154
+ }
155
+ }
156
+ return false;
157
+ }
158
+ /**
159
+ * Get the URIs that need to be trusted for the current workspace.
160
+ * This includes all workspace folder URIs, plus the workspace file URI
161
+ * for saved workspaces (since workspace files can contain tasks/settings).
162
+ */
163
+ getWorkspaceUris() {
164
+ const uris = this.workspaceService.tryGetRoots().map(root => root.resource);
165
+ const workspace = this.workspaceService.workspace;
166
+ // For saved workspaces, include the workspace file itself
167
+ if (workspace && this.workspaceService.saved) {
168
+ uris.push(workspace.resource);
169
+ }
170
+ return uris;
171
+ }
172
+ /**
173
+ * Check if all workspace URIs are trusted.
174
+ * A workspace is trusted only if ALL of its folders (and the workspace
175
+ * file for saved workspaces) are trusted.
176
+ */
177
+ async areAllWorkspaceUrisTrusted() {
178
+ const uris = this.getWorkspaceUris();
179
+ if (uris.length === 0) {
180
+ return false;
181
+ }
182
+ return uris.every(uri => this.isUriTrusted(uri));
183
+ }
184
+ /**
185
+ * Check if a URI is trusted. A URI is trusted if it or any of its
186
+ * parent folders is in the trusted folders list.
187
+ */
188
+ isUriTrusted(uri) {
189
+ const trustedFolders = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] || [];
190
+ const caseSensitive = !core_1.OS.backend.isWindows;
191
+ const normalizedUri = uri.normalizePath();
192
+ return trustedFolders.some(folder => {
193
+ try {
194
+ const folderUri = new uri_1.default(folder).normalizePath();
195
+ // Check if the trusted folder is equal to or a parent of the URI
196
+ return folderUri.isEqualOrParent(normalizedUri, caseSensitive);
197
+ }
198
+ catch {
199
+ return false; // Invalid URI in preferences
200
+ }
201
+ });
202
+ }
203
+ async showTrustPromptDialog() {
204
+ // If dialog is already open, wait for its result
205
+ if (this.pendingTrustDialog) {
206
+ return this.pendingTrustDialog.promise;
207
+ }
208
+ this.pendingTrustDialog = new promise_util_1.Deferred();
209
+ try {
210
+ // Show the workspace folders in the dialog
211
+ const folderUris = this.workspaceService.tryGetRoots().map(root => root.resource);
212
+ const dialog = new workspace_trust_dialog_1.WorkspaceTrustDialog(folderUris);
213
+ const result = await dialog.open();
214
+ const trusted = result === true;
215
+ this.pendingTrustDialog.resolve(trusted);
216
+ return trusted;
217
+ }
218
+ catch (e) {
219
+ this.pendingTrustDialog.resolve(false);
220
+ throw e;
221
+ }
222
+ finally {
223
+ this.pendingTrustDialog = undefined;
224
+ }
225
+ }
226
+ async addToTrustedFolders() {
227
+ const uris = this.getWorkspaceUris();
228
+ if (uris.length === 0) {
229
+ return;
230
+ }
231
+ const currentFolders = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] || [];
232
+ const newFolders = [...currentFolders];
233
+ let changed = false;
234
+ for (const uri of uris) {
235
+ if (!this.isUriTrusted(uri)) {
236
+ newFolders.push(uri.toString());
237
+ changed = true;
238
+ }
239
+ }
240
+ if (changed) {
241
+ await this.preferences.set(workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS, newFolders, preferences_1.PreferenceScope.User);
242
+ }
243
+ }
244
+ async removeFromTrustedFolders() {
245
+ const uris = this.getWorkspaceUris();
246
+ if (uris.length === 0) {
247
+ return;
248
+ }
249
+ const currentFolders = this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS] || [];
250
+ const caseSensitive = !core_1.OS.backend.isWindows;
251
+ const normalizedUris = uris.map(uri => uri.normalizePath());
252
+ const updatedFolders = currentFolders.filter(folder => {
253
+ try {
254
+ const folderUri = new uri_1.default(folder).normalizePath();
255
+ // Remove folder if it exactly matches any workspace URI
256
+ return !normalizedUris.some(wsUri => wsUri.isEqual(folderUri, caseSensitive));
257
+ }
258
+ catch {
259
+ return true; // Keep invalid URIs
260
+ }
261
+ });
262
+ if (updatedFolders.length !== currentFolders.length) {
263
+ await this.preferences.set(workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS, updatedFolders, preferences_1.PreferenceScope.User);
264
+ }
72
265
  }
73
266
  async loadWorkspaceTrust() {
74
267
  if (this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] === workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
@@ -81,19 +274,49 @@ let WorkspaceTrustService = class WorkspaceTrustService {
81
274
  }
82
275
  }
83
276
  async handlePreferenceChange(change) {
277
+ // Handle trustedFolders changes regardless of scope
278
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_TRUSTED_FOLDERS) {
279
+ // For empty windows with emptyWindow setting enabled, trust should remain true
280
+ if (await this.isEmptyWorkspace() && this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW]) {
281
+ return;
282
+ }
283
+ const areAllUrisTrusted = await this.areAllWorkspaceUrisTrusted();
284
+ if (areAllUrisTrusted !== this.currentTrust) {
285
+ this.setWorkspaceTrust(areAllUrisTrusted);
286
+ }
287
+ return;
288
+ }
84
289
  if (change.scope === preferences_1.PreferenceScope.User) {
85
- if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT && change.newValue !== workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
290
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT && this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_STARTUP_PROMPT] !== workspace_trust_preferences_1.WorkspaceTrustPrompt.ONCE) {
86
291
  this.storage.setData(STORAGE_TRUSTED, undefined);
87
292
  }
88
293
  if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED && this.isWorkspaceTrustResolved() && await this.confirmRestart()) {
89
294
  this.windowService.setSafeToShutDown();
90
295
  this.windowService.reload();
91
296
  }
92
- if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED || change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW) {
297
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_ENABLED) {
93
298
  this.resolveWorkspaceTrust();
94
299
  }
300
+ // Handle emptyWindow setting change for empty windows
301
+ if (change.preferenceName === workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW && await this.isEmptyWorkspace()) {
302
+ // For empty windows, directly update trust based on the new setting value
303
+ const shouldTrust = !!this.workspaceTrustPref[workspace_trust_preferences_1.WORKSPACE_TRUST_EMPTY_WINDOW];
304
+ if (this.currentTrust !== shouldTrust) {
305
+ this.setWorkspaceTrust(shouldTrust);
306
+ }
307
+ }
95
308
  }
96
309
  }
310
+ async handleWorkspaceChanged() {
311
+ // Reset trust state for the new workspace
312
+ this.workspaceTrust = new promise_util_1.Deferred();
313
+ this.currentTrust = undefined;
314
+ // Re-evaluate trust for the new workspace
315
+ await this.resolveWorkspaceTrust();
316
+ // Update status bar indicator
317
+ const trust = await this.getWorkspaceTrust();
318
+ this.updateRestrictedModeIndicator(trust);
319
+ }
97
320
  async confirmRestart() {
98
321
  const shouldRestart = await new browser_1.ConfirmDialog({
99
322
  title: nls_1.nls.localizeByDefault('A setting has changed that requires a restart to take effect.'),
@@ -103,11 +326,71 @@ let WorkspaceTrustService = class WorkspaceTrustService {
103
326
  }).open();
104
327
  return shouldRestart === true;
105
328
  }
329
+ updateRestrictedModeIndicator(trusted) {
330
+ if (trusted) {
331
+ this.hideRestrictedModeStatusBarItem();
332
+ }
333
+ else {
334
+ this.showRestrictedModeStatusBarItem();
335
+ }
336
+ }
337
+ showRestrictedModeStatusBarItem() {
338
+ this.statusBar.setElement(exports.WORKSPACE_TRUST_STATUS_BAR_ID, {
339
+ text: '$(shield) ' + nls_1.nls.localizeByDefault('Restricted Mode'),
340
+ alignment: status_bar_1.StatusBarAlignment.LEFT,
341
+ backgroundColor: 'var(--theia-statusBarItem-prominentBackground)',
342
+ color: 'var(--theia-statusBarItem-prominentForeground)',
343
+ priority: 5000,
344
+ tooltip: this.createRestrictedModeTooltip(),
345
+ command: workspace_commands_1.WorkspaceCommands.MANAGE_WORKSPACE_TRUST.id
346
+ });
347
+ }
348
+ createRestrictedModeTooltip() {
349
+ const md = new markdown_string_1.MarkdownStringImpl('', { supportThemeIcons: true });
350
+ md.appendMarkdown(`**${nls_1.nls.localizeByDefault('Restricted Mode')}**\n\n`);
351
+ md.appendMarkdown(nls_1.nls.localize('theia/workspace/restrictedModeDescription', 'Some features are disabled because this workspace is not trusted.'));
352
+ md.appendMarkdown('\n\n');
353
+ md.appendMarkdown(nls_1.nls.localize('theia/workspace/restrictedModeNote', '*Please note: The workspace trust feature is currently under development in Theia; not all features are integrated with workspace trust yet*'));
354
+ const restrictions = this.collectRestrictions();
355
+ if (restrictions.length > 0) {
356
+ md.appendMarkdown('\n\n---\n\n');
357
+ for (const restriction of restrictions) {
358
+ md.appendMarkdown(`**${restriction.label}**\n\n`);
359
+ if (restriction.details && restriction.details.length > 0) {
360
+ for (const detail of restriction.details) {
361
+ md.appendMarkdown(`- ${detail}\n`);
362
+ }
363
+ md.appendMarkdown('\n');
364
+ }
365
+ }
366
+ }
367
+ md.appendMarkdown('\n\n---\n\n');
368
+ md.appendMarkdown(nls_1.nls.localize('theia/workspace/clickToManageTrust', 'Click to manage trust settings.'));
369
+ return md;
370
+ }
371
+ collectRestrictions() {
372
+ const restrictions = [];
373
+ for (const contribution of this.restrictionContributions.getContributions()) {
374
+ restrictions.push(...contribution.getRestrictions());
375
+ }
376
+ return restrictions;
377
+ }
378
+ hideRestrictedModeStatusBarItem() {
379
+ this.statusBar.removeElement(exports.WORKSPACE_TRUST_STATUS_BAR_ID);
380
+ }
381
+ /**
382
+ * Refreshes the restricted mode status bar item.
383
+ * Call this when restriction contributions change.
384
+ */
385
+ refreshRestrictedModeIndicator() {
386
+ if (this.currentTrust === false) {
387
+ this.showRestrictedModeStatusBarItem();
388
+ }
389
+ }
106
390
  async requestWorkspaceTrust() {
107
391
  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);
392
+ const trusted = await this.showTrustPromptDialog();
393
+ await this.resolveWorkspaceTrust(trusted);
111
394
  }
112
395
  return this.workspaceTrust.promise;
113
396
  }
@@ -133,6 +416,10 @@ tslib_1.__decorate([
133
416
  (0, inversify_1.inject)(workspace_trust_preferences_1.WorkspaceTrustPreferences),
134
417
  tslib_1.__metadata("design:type", Object)
135
418
  ], WorkspaceTrustService.prototype, "workspaceTrustPref", void 0);
419
+ tslib_1.__decorate([
420
+ (0, inversify_1.inject)(preferences_1.PreferenceSchemaService),
421
+ tslib_1.__metadata("design:type", Object)
422
+ ], WorkspaceTrustService.prototype, "preferenceSchemaService", void 0);
136
423
  tslib_1.__decorate([
137
424
  (0, inversify_1.inject)(window_service_1.WindowService),
138
425
  tslib_1.__metadata("design:type", Object)
@@ -141,12 +428,35 @@ tslib_1.__decorate([
141
428
  (0, inversify_1.inject)(context_key_service_1.ContextKeyService),
142
429
  tslib_1.__metadata("design:type", Object)
143
430
  ], WorkspaceTrustService.prototype, "contextKeyService", void 0);
431
+ tslib_1.__decorate([
432
+ (0, inversify_1.inject)(status_bar_1.StatusBar),
433
+ tslib_1.__metadata("design:type", Object)
434
+ ], WorkspaceTrustService.prototype, "statusBar", void 0);
435
+ tslib_1.__decorate([
436
+ (0, inversify_1.inject)(core_1.ContributionProvider),
437
+ (0, inversify_1.named)(exports.WorkspaceRestrictionContribution),
438
+ tslib_1.__metadata("design:type", Object)
439
+ ], WorkspaceTrustService.prototype, "restrictionContributions", void 0);
440
+ tslib_1.__decorate([
441
+ (0, inversify_1.inject)(untitled_workspace_service_1.UntitledWorkspaceService),
442
+ tslib_1.__metadata("design:type", untitled_workspace_service_1.UntitledWorkspaceService)
443
+ ], WorkspaceTrustService.prototype, "untitledWorkspaceService", void 0);
444
+ tslib_1.__decorate([
445
+ (0, inversify_1.inject)(env_variables_1.EnvVariablesServer),
446
+ tslib_1.__metadata("design:type", Object)
447
+ ], WorkspaceTrustService.prototype, "envVariablesServer", void 0);
144
448
  tslib_1.__decorate([
145
449
  (0, inversify_1.postConstruct)(),
146
450
  tslib_1.__metadata("design:type", Function),
147
451
  tslib_1.__metadata("design:paramtypes", []),
148
452
  tslib_1.__metadata("design:returntype", void 0)
149
453
  ], WorkspaceTrustService.prototype, "init", null);
454
+ tslib_1.__decorate([
455
+ (0, inversify_1.preDestroy)(),
456
+ tslib_1.__metadata("design:type", Function),
457
+ tslib_1.__metadata("design:paramtypes", []),
458
+ tslib_1.__metadata("design:returntype", void 0)
459
+ ], WorkspaceTrustService.prototype, "onStop", null);
150
460
  exports.WorkspaceTrustService = WorkspaceTrustService = tslib_1.__decorate([
151
461
  (0, inversify_1.injectable)()
152
462
  ], 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":""}