@codingame/monaco-vscode-workspace-trust-service-override 34.1.3 → 35.0.1
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/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspace.contribution.js +64 -64
- package/vscode/src/vs/workbench/contrib/workspace/browser/workspaceTrustEditor.js +62 -81
- package/vscode/src/vs/workbench/services/workspaces/browser/workspaceTrustEditorInput.js +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-workspace-trust-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "35.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - workspace-trust service-override",
|
|
6
6
|
"keywords": [],
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"type": "module",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@codingame/monaco-vscode-api": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "35.0.1"
|
|
19
19
|
},
|
|
20
20
|
"main": "index.js",
|
|
21
21
|
"module": "index.js",
|
|
@@ -64,13 +64,13 @@ function getSessionsWindowTrustNote(environmentService, productService, isWorksp
|
|
|
64
64
|
}
|
|
65
65
|
if (isWorkspace) {
|
|
66
66
|
return localize(
|
|
67
|
-
|
|
67
|
+
17075,
|
|
68
68
|
"Trusting this workspace will also mark it as trusted in {0}.",
|
|
69
69
|
productService.nameLong
|
|
70
70
|
);
|
|
71
71
|
}
|
|
72
72
|
return localize(
|
|
73
|
-
|
|
73
|
+
17076,
|
|
74
74
|
"Trusting this folder will also mark it as trusted in {0}.",
|
|
75
75
|
productService.nameLong
|
|
76
76
|
);
|
|
@@ -127,29 +127,29 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
127
127
|
await this.workspaceTrustManagementService.workspaceResolved;
|
|
128
128
|
const markdownDetails = [
|
|
129
129
|
this.workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY ? ( localize(
|
|
130
|
-
|
|
130
|
+
17077,
|
|
131
131
|
"You are trying to open untrusted files in a workspace which is trusted."
|
|
132
132
|
)) : ( localize(
|
|
133
|
-
|
|
133
|
+
17078,
|
|
134
134
|
"You are trying to open untrusted files in a window which is trusted."
|
|
135
135
|
)),
|
|
136
136
|
( localize(
|
|
137
|
-
|
|
137
|
+
17079,
|
|
138
138
|
"If you don't want to open untrusted files, we recommend to open them in Restricted Mode in a new window as the files may be malicious. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more."
|
|
139
139
|
))
|
|
140
140
|
];
|
|
141
141
|
await this.dialogService.prompt({
|
|
142
142
|
type: Severity.Info,
|
|
143
|
-
message: this.workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY ? ( localize(
|
|
143
|
+
message: this.workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY ? ( localize(17080, "Do you want to allow untrusted files in this workspace?")) : ( localize(17081, "Do you want to allow untrusted files in this window?")),
|
|
144
144
|
buttons: [{
|
|
145
|
-
label: ( localize(
|
|
145
|
+
label: ( localize(17082, "&&Open")),
|
|
146
146
|
run: (
|
|
147
147
|
{
|
|
148
148
|
checkboxChecked
|
|
149
149
|
}
|
|
150
150
|
) => this.workspaceTrustRequestService.completeOpenFilesTrustRequest(WorkspaceTrustUriResponse.Open, !!checkboxChecked)
|
|
151
151
|
}, {
|
|
152
|
-
label: ( localize(
|
|
152
|
+
label: ( localize(17083, "Open in &&Restricted Mode")),
|
|
153
153
|
run: (
|
|
154
154
|
{
|
|
155
155
|
checkboxChecked
|
|
@@ -160,7 +160,7 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
160
160
|
run: () => this.workspaceTrustRequestService.completeOpenFilesTrustRequest(WorkspaceTrustUriResponse.Cancel)
|
|
161
161
|
},
|
|
162
162
|
checkbox: {
|
|
163
|
-
label: ( localize(
|
|
163
|
+
label: ( localize(17084, "Remember my decision for all workspaces")),
|
|
164
164
|
checked: false
|
|
165
165
|
},
|
|
166
166
|
custom: {
|
|
@@ -178,10 +178,10 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
178
178
|
this.workspaceTrustRequestService.onDidInitiateResourcesTrustRequest(async options => {
|
|
179
179
|
await this.workspaceTrustManagementService.workspaceResolved;
|
|
180
180
|
const markdownDetails = [options?.message ?? ( localize(
|
|
181
|
-
|
|
181
|
+
17085,
|
|
182
182
|
"You are trying to open an untrusted folder. Do you trust the authors of this content?"
|
|
183
183
|
)), ( localize(
|
|
184
|
-
|
|
184
|
+
17086,
|
|
185
185
|
"If you don't trust the authors of these files, we recommend not continuing as the files may be malicious. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more."
|
|
186
186
|
)), `\`${this.labelService.getUriLabel(options.uri)}\``];
|
|
187
187
|
const sessionsTrustNote = getSessionsWindowTrustNote(this.environmentService, this.productService, false);
|
|
@@ -190,9 +190,9 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
190
190
|
}
|
|
191
191
|
await this.dialogService.prompt({
|
|
192
192
|
type: Severity.Info,
|
|
193
|
-
message: ( localize(
|
|
193
|
+
message: ( localize(17087, "Do you trust the authors of the files in this folder?")),
|
|
194
194
|
buttons: [{
|
|
195
|
-
label: ( localize(
|
|
195
|
+
label: ( localize(17088, "&&Trust Folder & Continue")),
|
|
196
196
|
run: () => this.workspaceTrustRequestService.completeResourcesTrustRequest(options.uri, WorkspaceTrustUriResponse.Open)
|
|
197
197
|
}],
|
|
198
198
|
cancelButton: {
|
|
@@ -212,22 +212,22 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
212
212
|
this._register(
|
|
213
213
|
this.workspaceTrustRequestService.onDidInitiateWorkspaceTrustRequest(async requestOptions => {
|
|
214
214
|
await this.workspaceTrustManagementService.workspaceResolved;
|
|
215
|
-
const message = this.useWorkspaceLanguage ? ( localize(
|
|
215
|
+
const message = this.useWorkspaceLanguage ? ( localize(17089, "Do you trust the authors of the files in this workspace?")) : ( localize(17090, "Do you trust the authors of the files in this folder?"));
|
|
216
216
|
const defaultDetails = ( localize(
|
|
217
|
-
|
|
217
|
+
17091,
|
|
218
218
|
"A feature you are trying to use may be a security risk if you do not trust the source of the files or folders you currently have open."
|
|
219
219
|
));
|
|
220
220
|
const details = requestOptions?.message ?? defaultDetails;
|
|
221
221
|
const buttons = requestOptions?.buttons ?? [{
|
|
222
|
-
label: this.useWorkspaceLanguage ? ( localize(
|
|
222
|
+
label: this.useWorkspaceLanguage ? ( localize(17092, "&&Trust Workspace & Continue")) : ( localize(17093, "&&Trust Folder & Continue")),
|
|
223
223
|
type: "ContinueWithTrust"
|
|
224
224
|
}, {
|
|
225
|
-
label: ( localize(
|
|
225
|
+
label: ( localize(17094, "&&Manage")),
|
|
226
226
|
type: "Manage"
|
|
227
227
|
}];
|
|
228
228
|
if (!( buttons.some(b => b.type === "Cancel"))) {
|
|
229
229
|
buttons.push({
|
|
230
|
-
label: ( localize(
|
|
230
|
+
label: ( localize(17095, "Cancel")),
|
|
231
231
|
type: "Cancel"
|
|
232
232
|
});
|
|
233
233
|
}
|
|
@@ -235,7 +235,7 @@ let WorkspaceTrustRequestHandler = class WorkspaceTrustRequestHandler extends Di
|
|
|
235
235
|
markdown: ( new MarkdownString(details))
|
|
236
236
|
}, {
|
|
237
237
|
markdown: ( new MarkdownString(( localize(
|
|
238
|
-
|
|
238
|
+
17096,
|
|
239
239
|
"If you don't trust the authors of these files, we do not recommend continuing as the files may be malicious. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more."
|
|
240
240
|
))))
|
|
241
241
|
}];
|
|
@@ -359,7 +359,7 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
359
359
|
const addedFoldersTrustInfo = await Promise.all(( e.changes.added.map(folder => this.workspaceTrustManagementService.getUriTrustInfo(folder.uri))));
|
|
360
360
|
if (!( addedFoldersTrustInfo.map(info => info.trusted)).every(trusted => trusted)) {
|
|
361
361
|
let detail = ( localize(
|
|
362
|
-
|
|
362
|
+
17097,
|
|
363
363
|
"You are adding files that are not currently trusted to a trusted workspace. Do you trust the authors of these new files?"
|
|
364
364
|
));
|
|
365
365
|
const sessionsTrustNote = getSessionsWindowTrustNote(this.environmentService, this.productService, false);
|
|
@@ -370,9 +370,9 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
370
370
|
confirmed
|
|
371
371
|
} = await this.dialogService.confirm({
|
|
372
372
|
type: Severity.Info,
|
|
373
|
-
message: ( localize(
|
|
373
|
+
message: ( localize(17098, "Do you trust the authors of the files in this folder?")),
|
|
374
374
|
detail,
|
|
375
|
-
cancelButton: ( localize(
|
|
375
|
+
cancelButton: ( localize(17099, "No")),
|
|
376
376
|
custom: {
|
|
377
377
|
icon: Codicon.shield
|
|
378
378
|
}
|
|
@@ -401,25 +401,25 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
401
401
|
} else {
|
|
402
402
|
console.warn("AI generated workspace trust dialog contents not available.");
|
|
403
403
|
}
|
|
404
|
-
const title = titleString ?? (this.useWorkspaceLanguage ? ( localize(
|
|
404
|
+
const title = titleString ?? (this.useWorkspaceLanguage ? ( localize(17089, "Do you trust the authors of the files in this workspace?")) : ( localize(17090, "Do you trust the authors of the files in this folder?")));
|
|
405
405
|
let checkboxText;
|
|
406
406
|
const workspaceIdentifier = toWorkspaceIdentifier(this.workspaceContextService.getWorkspace());
|
|
407
407
|
const isSingleFolderWorkspace = isSingleFolderWorkspaceIdentifier(workspaceIdentifier);
|
|
408
408
|
const isEmptyWindow = isEmptyWorkspaceIdentifier(workspaceIdentifier);
|
|
409
409
|
if (!isAiGeneratedWorkspace && this.workspaceTrustManagementService.canSetParentFolderTrust()) {
|
|
410
410
|
const name = basename(dirname(workspaceIdentifier.uri));
|
|
411
|
-
checkboxText = ( localize(
|
|
411
|
+
checkboxText = ( localize(17100, "Trust the authors of all files in the parent folder '{0}'", name));
|
|
412
412
|
}
|
|
413
413
|
const markdownStrings = [!isSingleFolderWorkspace ? ( localize(
|
|
414
|
-
|
|
414
|
+
17101,
|
|
415
415
|
"{0} provides features that may automatically execute files in this workspace.",
|
|
416
416
|
this.productService.nameShort
|
|
417
417
|
)) : ( localize(
|
|
418
|
-
|
|
418
|
+
17102,
|
|
419
419
|
"{0} provides features that may automatically execute files in this folder.",
|
|
420
420
|
this.productService.nameShort
|
|
421
421
|
)), learnMoreString ?? ( localize(
|
|
422
|
-
|
|
422
|
+
17103,
|
|
423
423
|
"If you don't trust the authors of these files, we recommend to continue in restricted mode as the files may be malicious. See [our docs](https://aka.ms/vscode-workspace-trust) to learn more."
|
|
424
424
|
)), !isEmptyWindow ? `\`${this.labelService.getWorkspaceLabel(workspaceIdentifier, {
|
|
425
425
|
verbose: Verbosity.LONG
|
|
@@ -429,11 +429,11 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
429
429
|
markdownStrings.push(sessionsTrustNote);
|
|
430
430
|
}
|
|
431
431
|
this.doShowModal(title, {
|
|
432
|
-
label: trustOption ?? ( localize(
|
|
433
|
-
sublabel: isSingleFolderWorkspace ? ( localize(
|
|
432
|
+
label: trustOption ?? ( localize(17104, "&&Yes, I trust the authors")),
|
|
433
|
+
sublabel: isSingleFolderWorkspace ? ( localize(17105, "Trust folder and enable all features")) : ( localize(17106, "Trust workspace and enable all features"))
|
|
434
434
|
}, {
|
|
435
|
-
label: dontTrustOption ?? ( localize(
|
|
436
|
-
sublabel: isSingleFolderWorkspace ? ( localize(
|
|
435
|
+
label: dontTrustOption ?? ( localize(17107, "&&No, I don't trust the authors")),
|
|
436
|
+
sublabel: isSingleFolderWorkspace ? ( localize(17108, "Open folder in restricted mode")) : ( localize(17109, "Open workspace in restricted mode"))
|
|
437
437
|
}, markdownStrings, checkboxText);
|
|
438
438
|
})
|
|
439
439
|
);
|
|
@@ -556,10 +556,10 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
556
556
|
return undefined;
|
|
557
557
|
}
|
|
558
558
|
const actions = [{
|
|
559
|
-
label: ( localize(
|
|
559
|
+
label: ( localize(17110, "Manage")),
|
|
560
560
|
href: "command:" + MANAGE_TRUST_COMMAND_ID
|
|
561
561
|
}, {
|
|
562
|
-
label: ( localize(
|
|
562
|
+
label: ( localize(17111, "Learn More")),
|
|
563
563
|
href: "https://aka.ms/vscode-workspace-trust"
|
|
564
564
|
}];
|
|
565
565
|
return {
|
|
@@ -584,17 +584,17 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
584
584
|
switch (this.workspaceContextService.getWorkbenchState()) {
|
|
585
585
|
case WorkbenchState.EMPTY:
|
|
586
586
|
return localize(
|
|
587
|
-
|
|
587
|
+
17112,
|
|
588
588
|
"Restricted Mode is intended for safe code browsing. Trust this window to enable all features. Use navigation keys to access banner actions."
|
|
589
589
|
);
|
|
590
590
|
case WorkbenchState.FOLDER:
|
|
591
591
|
return localize(
|
|
592
|
-
|
|
592
|
+
17113,
|
|
593
593
|
"Restricted Mode is intended for safe code browsing. Trust this folder to enable all features. Use navigation keys to access banner actions."
|
|
594
594
|
);
|
|
595
595
|
case WorkbenchState.WORKSPACE:
|
|
596
596
|
return localize(
|
|
597
|
-
|
|
597
|
+
17114,
|
|
598
598
|
"Restricted Mode is intended for safe code browsing. Trust this workspace to enable all features. Use navigation keys to access banner actions."
|
|
599
599
|
);
|
|
600
600
|
}
|
|
@@ -603,17 +603,17 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
603
603
|
switch (this.workspaceContextService.getWorkbenchState()) {
|
|
604
604
|
case WorkbenchState.EMPTY:
|
|
605
605
|
return localize(
|
|
606
|
-
|
|
606
|
+
17115,
|
|
607
607
|
"Restricted Mode is intended for safe code browsing. Trust this window to enable all features."
|
|
608
608
|
);
|
|
609
609
|
case WorkbenchState.FOLDER:
|
|
610
610
|
return localize(
|
|
611
|
-
|
|
611
|
+
17116,
|
|
612
612
|
"Restricted Mode is intended for safe code browsing. Trust this folder to enable all features."
|
|
613
613
|
);
|
|
614
614
|
case WorkbenchState.WORKSPACE:
|
|
615
615
|
return localize(
|
|
616
|
-
|
|
616
|
+
17117,
|
|
617
617
|
"Restricted Mode is intended for safe code browsing. Trust this workspace to enable all features."
|
|
618
618
|
);
|
|
619
619
|
}
|
|
@@ -632,12 +632,12 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
632
632
|
case WorkbenchState.EMPTY:
|
|
633
633
|
{
|
|
634
634
|
ariaLabel = ( localize(
|
|
635
|
-
|
|
635
|
+
17118,
|
|
636
636
|
"Restricted Mode: Some features are disabled because this window is not trusted."
|
|
637
637
|
));
|
|
638
638
|
toolTip = {
|
|
639
639
|
value: ( localize(
|
|
640
|
-
|
|
640
|
+
17119,
|
|
641
641
|
"Running in Restricted Mode\n\nSome [features are disabled]({0}) because this [window is not trusted]({1}).",
|
|
642
642
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`,
|
|
643
643
|
`command:${MANAGE_TRUST_COMMAND_ID}`
|
|
@@ -650,12 +650,12 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
650
650
|
case WorkbenchState.FOLDER:
|
|
651
651
|
{
|
|
652
652
|
ariaLabel = ( localize(
|
|
653
|
-
|
|
653
|
+
17120,
|
|
654
654
|
"Restricted Mode: Some features are disabled because this folder is not trusted."
|
|
655
655
|
));
|
|
656
656
|
toolTip = {
|
|
657
657
|
value: ( localize(
|
|
658
|
-
|
|
658
|
+
17121,
|
|
659
659
|
"Running in Restricted Mode\n\nSome [features are disabled]({0}) because this [folder is not trusted]({1}).",
|
|
660
660
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`,
|
|
661
661
|
`command:${MANAGE_TRUST_COMMAND_ID}`
|
|
@@ -668,12 +668,12 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
668
668
|
case WorkbenchState.WORKSPACE:
|
|
669
669
|
{
|
|
670
670
|
ariaLabel = ( localize(
|
|
671
|
-
|
|
671
|
+
17122,
|
|
672
672
|
"Restricted Mode: Some features are disabled because this workspace is not trusted."
|
|
673
673
|
));
|
|
674
674
|
toolTip = {
|
|
675
675
|
value: ( localize(
|
|
676
|
-
|
|
676
|
+
17123,
|
|
677
677
|
"Running in Restricted Mode\n\nSome [features are disabled]({0}) because this [workspace is not trusted]({1}).",
|
|
678
678
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`,
|
|
679
679
|
`command:${MANAGE_TRUST_COMMAND_ID}`
|
|
@@ -685,8 +685,8 @@ let WorkspaceTrustUXHandler = class WorkspaceTrustUXHandler extends Disposable {
|
|
|
685
685
|
}
|
|
686
686
|
}
|
|
687
687
|
return {
|
|
688
|
-
name: ( localize(
|
|
689
|
-
text: `$(shield) ${( localize(
|
|
688
|
+
name: ( localize(17124, "Workspace Trust")),
|
|
689
|
+
text: `$(shield) ${( localize(17125, "Restricted Mode"))}`,
|
|
690
690
|
ariaLabel: ariaLabel,
|
|
691
691
|
tooltip: toolTip,
|
|
692
692
|
command: MANAGE_TRUST_COMMAND_ID,
|
|
@@ -730,16 +730,16 @@ class WorkspaceTrustEditorInputSerializer {
|
|
|
730
730
|
}
|
|
731
731
|
( Registry.as(EditorExtensions.EditorFactory)).registerEditorSerializer(WorkspaceTrustEditorInput.ID, WorkspaceTrustEditorInputSerializer);
|
|
732
732
|
( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(
|
|
733
|
-
EditorPaneDescriptor.create(WorkspaceTrustEditor, WorkspaceTrustEditor.ID, ( localize(
|
|
733
|
+
EditorPaneDescriptor.create(WorkspaceTrustEditor, WorkspaceTrustEditor.ID, ( localize(17126, "Workspace Trust Editor"))),
|
|
734
734
|
[( new SyncDescriptor(WorkspaceTrustEditorInput))]
|
|
735
735
|
);
|
|
736
736
|
const CONFIGURE_TRUST_COMMAND_ID = "workbench.trust.configure";
|
|
737
|
-
const WORKSPACES_CATEGORY = ( localize2(
|
|
737
|
+
const WORKSPACES_CATEGORY = ( localize2(17127, "Workspaces"));
|
|
738
738
|
registerAction2(class extends Action2 {
|
|
739
739
|
constructor() {
|
|
740
740
|
super({
|
|
741
741
|
id: CONFIGURE_TRUST_COMMAND_ID,
|
|
742
|
-
title: ( localize2(
|
|
742
|
+
title: ( localize2(17128, "Configure Workspace Trust Settings")),
|
|
743
743
|
precondition: ( ContextKeyExpr.and(WorkspaceTrustContext.IsEnabled, ( ContextKeyExpr.equals(`config.${WORKSPACE_TRUST_ENABLED}`, true)))),
|
|
744
744
|
category: WORKSPACES_CATEGORY,
|
|
745
745
|
f1: true
|
|
@@ -756,7 +756,7 @@ registerAction2(class extends Action2 {
|
|
|
756
756
|
constructor() {
|
|
757
757
|
super({
|
|
758
758
|
id: MANAGE_TRUST_COMMAND_ID,
|
|
759
|
-
title: ( localize2(
|
|
759
|
+
title: ( localize2(17129, "Manage Workspace Trust")),
|
|
760
760
|
precondition: ( ContextKeyExpr.and(WorkspaceTrustContext.IsEnabled, ( ContextKeyExpr.equals(`config.${WORKSPACE_TRUST_ENABLED}`, true)))),
|
|
761
761
|
category: WORKSPACES_CATEGORY,
|
|
762
762
|
f1: true
|
|
@@ -779,7 +779,7 @@ registerAction2(class extends Action2 {
|
|
|
779
779
|
type: "boolean",
|
|
780
780
|
default: true,
|
|
781
781
|
description: ( localize(
|
|
782
|
-
|
|
782
|
+
17130,
|
|
783
783
|
"Controls whether or not Workspace Trust is enabled within VS Code."
|
|
784
784
|
)),
|
|
785
785
|
tags: [WORKSPACE_TRUST_SETTING_TAG],
|
|
@@ -787,30 +787,30 @@ registerAction2(class extends Action2 {
|
|
|
787
787
|
},
|
|
788
788
|
[WORKSPACE_TRUST_STARTUP_PROMPT]: {
|
|
789
789
|
type: "string",
|
|
790
|
-
default: "
|
|
791
|
-
description: ( localize(
|
|
790
|
+
default: "never",
|
|
791
|
+
description: ( localize(17131, "Controls when the startup prompt to trust a workspace is shown.")),
|
|
792
792
|
tags: [WORKSPACE_TRUST_SETTING_TAG],
|
|
793
793
|
scope: ConfigurationScope.APPLICATION,
|
|
794
794
|
enum: ["always", "once", "never"],
|
|
795
|
-
enumDescriptions: [( localize(
|
|
795
|
+
enumDescriptions: [( localize(17132, "Ask for trust every time an untrusted workspace is opened.")), ( localize(17133, "Ask for trust the first time an untrusted workspace is opened.")), ( localize(17134, "Do not ask for trust when an untrusted workspace is opened."))]
|
|
796
796
|
},
|
|
797
797
|
[WORKSPACE_TRUST_BANNER]: {
|
|
798
798
|
type: "string",
|
|
799
799
|
default: "untilDismissed",
|
|
800
|
-
description: ( localize(
|
|
800
|
+
description: ( localize(17135, "Controls when the restricted mode banner is shown.")),
|
|
801
801
|
tags: [WORKSPACE_TRUST_SETTING_TAG],
|
|
802
802
|
scope: ConfigurationScope.APPLICATION,
|
|
803
803
|
enum: ["always", "untilDismissed", "never"],
|
|
804
|
-
enumDescriptions: [( localize(
|
|
805
|
-
|
|
804
|
+
enumDescriptions: [( localize(17136, "Show the banner every time an untrusted workspace is open.")), ( localize(
|
|
805
|
+
17137,
|
|
806
806
|
"Show the banner when an untrusted workspace is opened until dismissed."
|
|
807
|
-
)), ( localize(
|
|
807
|
+
)), ( localize(17138, "Do not show the banner when an untrusted workspace is open."))]
|
|
808
808
|
},
|
|
809
809
|
[WORKSPACE_TRUST_UNTRUSTED_FILES]: {
|
|
810
810
|
type: "string",
|
|
811
811
|
default: "prompt",
|
|
812
812
|
markdownDescription: ( localize(
|
|
813
|
-
|
|
813
|
+
17139,
|
|
814
814
|
"Controls how to handle opening untrusted files in a trusted workspace. This setting also applies to opening files in an empty window which is trusted via `#{0}#`.",
|
|
815
815
|
WORKSPACE_TRUST_EMPTY_WINDOW
|
|
816
816
|
)),
|
|
@@ -818,13 +818,13 @@ registerAction2(class extends Action2 {
|
|
|
818
818
|
scope: ConfigurationScope.APPLICATION,
|
|
819
819
|
enum: ["prompt", "open", "newWindow"],
|
|
820
820
|
enumDescriptions: [( localize(
|
|
821
|
-
|
|
821
|
+
17140,
|
|
822
822
|
"Ask how to handle untrusted files for each workspace. Once untrusted files are introduced to a trusted workspace, you will not be prompted again."
|
|
823
823
|
)), ( localize(
|
|
824
|
-
|
|
824
|
+
17141,
|
|
825
825
|
"Always allow untrusted files to be introduced to a trusted workspace without prompting."
|
|
826
826
|
)), ( localize(
|
|
827
|
-
|
|
827
|
+
17142,
|
|
828
828
|
"Always open untrusted files in a separate window in restricted mode without prompting."
|
|
829
829
|
))]
|
|
830
830
|
},
|
|
@@ -832,7 +832,7 @@ registerAction2(class extends Action2 {
|
|
|
832
832
|
type: "boolean",
|
|
833
833
|
default: true,
|
|
834
834
|
markdownDescription: ( localize(
|
|
835
|
-
|
|
835
|
+
17143,
|
|
836
836
|
"Controls whether or not the empty window is trusted by default within VS Code. When used with `#{0}#`, you can enable the full functionality of VS Code without prompting in an empty window.",
|
|
837
837
|
WORKSPACE_TRUST_UNTRUSTED_FILES
|
|
838
838
|
)),
|
|
@@ -39,7 +39,7 @@ import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/mini
|
|
|
39
39
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/miscColors';
|
|
40
40
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
41
41
|
import '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/colors/searchColors';
|
|
42
|
-
import { WorkbenchState
|
|
42
|
+
import { WorkbenchState } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace';
|
|
43
43
|
import { IWorkspaceContextService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspace/common/workspace.service';
|
|
44
44
|
import { IThemeService } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/common/themeService.service';
|
|
45
45
|
import { ThemeIcon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/themables';
|
|
@@ -63,15 +63,14 @@ import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/th
|
|
|
63
63
|
import { defaultButtonStyles, defaultInputBoxStyles } from '@codingame/monaco-vscode-api/vscode/vs/platform/theme/browser/defaultStyles';
|
|
64
64
|
import { isMacintosh } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
|
|
65
65
|
import { IKeybindingService } from '@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
66
|
-
import { basename, dirname } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
|
|
67
66
|
|
|
68
67
|
var TrustedUriActionsColumnRenderer_1, TrustedUriPathColumnRenderer_1, TrustedUriHostColumnRenderer_1, WorkspaceTrustEditor_1;
|
|
69
|
-
const shieldIcon = registerIcon("workspace-trust-banner", Codicon.shield, ( localize(
|
|
70
|
-
const checkListIcon = registerIcon("workspace-trust-editor-check", Codicon.check, ( localize(
|
|
71
|
-
const xListIcon = registerIcon("workspace-trust-editor-cross", Codicon.x, ( localize(
|
|
72
|
-
const folderPickerIcon = registerIcon("workspace-trust-editor-folder-picker", Codicon.folder, ( localize(
|
|
73
|
-
const editIcon = registerIcon("workspace-trust-editor-edit-folder", Codicon.edit, ( localize(
|
|
74
|
-
const removeIcon = registerIcon("workspace-trust-editor-remove-folder", Codicon.close, ( localize(
|
|
68
|
+
const shieldIcon = registerIcon("workspace-trust-banner", Codicon.shield, ( localize(17144, "Icon for workspace trust ion the banner.")));
|
|
69
|
+
const checkListIcon = registerIcon("workspace-trust-editor-check", Codicon.check, ( localize(17145, "Icon for the checkmark in the workspace trust editor.")));
|
|
70
|
+
const xListIcon = registerIcon("workspace-trust-editor-cross", Codicon.x, ( localize(17146, "Icon for the cross in the workspace trust editor.")));
|
|
71
|
+
const folderPickerIcon = registerIcon("workspace-trust-editor-folder-picker", Codicon.folder, ( localize(17147, "Icon for the pick folder icon in the workspace trust editor.")));
|
|
72
|
+
const editIcon = registerIcon("workspace-trust-editor-edit-folder", Codicon.edit, ( localize(17148, "Icon for the edit folder icon in the workspace trust editor.")));
|
|
73
|
+
const removeIcon = registerIcon("workspace-trust-editor-remove-folder", Codicon.close, ( localize(17149, "Icon for the remove folder icon in the workspace trust editor.")));
|
|
75
74
|
let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposable {
|
|
76
75
|
constructor(
|
|
77
76
|
container,
|
|
@@ -102,7 +101,7 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
102
101
|
const tableElement = container.appendChild($(".trusted-uris-table"));
|
|
103
102
|
const addButtonBarElement = container.appendChild($(".trusted-uris-button-bar"));
|
|
104
103
|
this.table = this.instantiationService.createInstance(WorkbenchTable, "WorkspaceTrust", tableElement, ( new TrustedUriTableVirtualDelegate()), [{
|
|
105
|
-
label: ( localize(
|
|
104
|
+
label: ( localize(17150, "Host")),
|
|
106
105
|
tooltip: "",
|
|
107
106
|
weight: 1,
|
|
108
107
|
templateId: TrustedUriHostColumnRenderer.TEMPLATE_ID,
|
|
@@ -110,7 +109,7 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
110
109
|
return row;
|
|
111
110
|
}
|
|
112
111
|
}, {
|
|
113
|
-
label: ( localize(
|
|
112
|
+
label: ( localize(17151, "Path")),
|
|
114
113
|
tooltip: "",
|
|
115
114
|
weight: 8,
|
|
116
115
|
templateId: TrustedUriPathColumnRenderer.TEMPLATE_ID,
|
|
@@ -140,16 +139,16 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
140
139
|
getAriaLabel: item => {
|
|
141
140
|
const hostLabel = getHostLabel(this.labelService, item);
|
|
142
141
|
if (hostLabel === undefined || hostLabel.length === 0) {
|
|
143
|
-
return localize(
|
|
142
|
+
return localize(17152, "{0}, trusted", this.labelService.getUriLabel(item.uri));
|
|
144
143
|
}
|
|
145
144
|
return localize(
|
|
146
|
-
|
|
145
|
+
17153,
|
|
147
146
|
"{0} on {1}, trusted",
|
|
148
147
|
this.labelService.getUriLabel(item.uri),
|
|
149
148
|
hostLabel
|
|
150
149
|
);
|
|
151
150
|
},
|
|
152
|
-
getWidgetAriaLabel: () => ( localize(
|
|
151
|
+
getWidgetAriaLabel: () => ( localize(17154, "Trusted Folders & Workspaces"))
|
|
153
152
|
},
|
|
154
153
|
identityProvider: {
|
|
155
154
|
getId(element) {
|
|
@@ -164,18 +163,18 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
164
163
|
}));
|
|
165
164
|
const buttonBar = this._register(( new ButtonBar(addButtonBarElement)));
|
|
166
165
|
const addButton = this._register(buttonBar.addButton({
|
|
167
|
-
title: ( localize(
|
|
166
|
+
title: ( localize(17155, "Add Folder")),
|
|
168
167
|
...defaultButtonStyles
|
|
169
168
|
}));
|
|
170
|
-
addButton.label = ( localize(
|
|
169
|
+
addButton.label = ( localize(17155, "Add Folder"));
|
|
171
170
|
this._register(addButton.onDidClick(async () => {
|
|
172
171
|
const uri = await this.fileDialogService.showOpenDialog({
|
|
173
172
|
canSelectFiles: false,
|
|
174
173
|
canSelectFolders: true,
|
|
175
174
|
canSelectMany: false,
|
|
176
175
|
defaultUri: this.currentWorkspaceUri,
|
|
177
|
-
openLabel: ( localize(
|
|
178
|
-
title: ( localize(
|
|
176
|
+
openLabel: ( localize(17156, "Trust Folder")),
|
|
177
|
+
title: ( localize(17157, "Select Folder To Trust"))
|
|
179
178
|
});
|
|
180
179
|
if (uri) {
|
|
181
180
|
this.workspaceTrustManagementService.setUrisTrust(uri, true);
|
|
@@ -258,9 +257,9 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
258
257
|
const entries = this.trustedUriEntries;
|
|
259
258
|
this.container.classList.toggle("empty", entries.length === 0);
|
|
260
259
|
this.descriptionElement.innerText = entries.length ? ( localize(
|
|
261
|
-
|
|
260
|
+
17158,
|
|
262
261
|
"You trust the following folders, their subfolders, and workspace files."
|
|
263
|
-
)) : ( localize(
|
|
262
|
+
)) : ( localize(17159, "You haven't trusted any folders or workspace files yet."));
|
|
264
263
|
this.table.splice(0, Number.POSITIVE_INFINITY, this.trustedUriEntries);
|
|
265
264
|
this.layout();
|
|
266
265
|
}
|
|
@@ -274,7 +273,7 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
274
273
|
return {
|
|
275
274
|
type: MessageType.WARNING,
|
|
276
275
|
content: ( localize(
|
|
277
|
-
|
|
276
|
+
17160,
|
|
278
277
|
"You will trust all repositories on {0}.",
|
|
279
278
|
getHostLabel(this.labelService, item)
|
|
280
279
|
))
|
|
@@ -284,7 +283,7 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
284
283
|
return {
|
|
285
284
|
type: MessageType.WARNING,
|
|
286
285
|
content: ( localize(
|
|
287
|
-
|
|
286
|
+
17161,
|
|
288
287
|
"You will trust all repositories and forks under '{0}' on {1}.",
|
|
289
288
|
segments[0],
|
|
290
289
|
getHostLabel(this.labelService, item)
|
|
@@ -294,7 +293,7 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
294
293
|
if (segments.length > 2) {
|
|
295
294
|
return {
|
|
296
295
|
type: MessageType.ERROR,
|
|
297
|
-
content: ( localize(
|
|
296
|
+
content: ( localize(17162, "You cannot trust individual folders within a repository.", path))
|
|
298
297
|
};
|
|
299
298
|
}
|
|
300
299
|
}
|
|
@@ -331,8 +330,8 @@ let WorkspaceTrustedUrisTable = class WorkspaceTrustedUrisTable extends Disposab
|
|
|
331
330
|
canSelectFolders: true,
|
|
332
331
|
canSelectMany: false,
|
|
333
332
|
defaultUri: item.uri,
|
|
334
|
-
openLabel: ( localize(
|
|
335
|
-
title: ( localize(
|
|
333
|
+
openLabel: ( localize(17156, "Trust Folder")),
|
|
334
|
+
title: ( localize(17157, "Select Folder To Trust"))
|
|
336
335
|
});
|
|
337
336
|
if (uri) {
|
|
338
337
|
this.acceptEdit(item, uri[0]);
|
|
@@ -399,7 +398,7 @@ let TrustedUriActionsColumnRenderer = class TrustedUriActionsColumnRenderer {
|
|
|
399
398
|
class: ThemeIcon.asClassName(editIcon),
|
|
400
399
|
enabled: true,
|
|
401
400
|
id: "editTrustedUri",
|
|
402
|
-
tooltip: ( localize(
|
|
401
|
+
tooltip: ( localize(17163, "Edit Path")),
|
|
403
402
|
run: () => {
|
|
404
403
|
this.table.edit(item, false);
|
|
405
404
|
}
|
|
@@ -411,7 +410,7 @@ let TrustedUriActionsColumnRenderer = class TrustedUriActionsColumnRenderer {
|
|
|
411
410
|
class: ThemeIcon.asClassName(folderPickerIcon),
|
|
412
411
|
enabled: true,
|
|
413
412
|
id: "pickerTrustedUri",
|
|
414
|
-
tooltip: ( localize(
|
|
413
|
+
tooltip: ( localize(17164, "Open File Picker")),
|
|
415
414
|
run: () => {
|
|
416
415
|
this.table.edit(item, true);
|
|
417
416
|
}
|
|
@@ -423,7 +422,7 @@ let TrustedUriActionsColumnRenderer = class TrustedUriActionsColumnRenderer {
|
|
|
423
422
|
class: ThemeIcon.asClassName(removeIcon),
|
|
424
423
|
enabled: true,
|
|
425
424
|
id: "deleteTrustedUri",
|
|
426
|
-
tooltip: ( localize(
|
|
425
|
+
tooltip: ( localize(17165, "Delete Path")),
|
|
427
426
|
run: async () => {
|
|
428
427
|
await this.table.delete(item);
|
|
429
428
|
}
|
|
@@ -549,7 +548,7 @@ let TrustedUriPathColumnRenderer = class TrustedUriPathColumnRenderer {
|
|
|
549
548
|
};
|
|
550
549
|
TrustedUriPathColumnRenderer = TrustedUriPathColumnRenderer_1 = ( __decorate([( __param(1, IContextViewService))], TrustedUriPathColumnRenderer));
|
|
551
550
|
function getHostLabel(labelService, item) {
|
|
552
|
-
return item.uri.authority ? labelService.getHostLabel(item.uri.scheme, item.uri.authority) : ( localize(
|
|
551
|
+
return item.uri.authority ? labelService.getHostLabel(item.uri.scheme, item.uri.authority) : ( localize(17166, "Local"));
|
|
553
552
|
}
|
|
554
553
|
let TrustedUriHostColumnRenderer = class TrustedUriHostColumnRenderer {
|
|
555
554
|
static {
|
|
@@ -683,10 +682,6 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
683
682
|
if (this.workspaceTrustManagementService.canSetWorkspaceTrust()) {
|
|
684
683
|
this.workspaceTrustManagementService.setWorkspaceTrust(!this.workspaceTrustManagementService.isWorkspaceTrusted());
|
|
685
684
|
}
|
|
686
|
-
} else if (event.equals(KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Enter)) {
|
|
687
|
-
if (this.workspaceTrustManagementService.canSetParentFolderTrust()) {
|
|
688
|
-
this.workspaceTrustManagementService.setParentFolderTrust(true);
|
|
689
|
-
}
|
|
690
685
|
}
|
|
691
686
|
}));
|
|
692
687
|
}
|
|
@@ -722,18 +717,18 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
722
717
|
getHeaderTitleText(trusted) {
|
|
723
718
|
if (trusted) {
|
|
724
719
|
if (this.workspaceTrustManagementService.isWorkspaceTrustForced()) {
|
|
725
|
-
return localize(
|
|
720
|
+
return localize(17167, "This window is trusted");
|
|
726
721
|
}
|
|
727
722
|
switch (this.workspaceService.getWorkbenchState()) {
|
|
728
723
|
case WorkbenchState.EMPTY:
|
|
729
|
-
return localize(
|
|
724
|
+
return localize(17168, "You trust this window");
|
|
730
725
|
case WorkbenchState.FOLDER:
|
|
731
|
-
return localize(
|
|
726
|
+
return localize(17169, "You trust this folder");
|
|
732
727
|
case WorkbenchState.WORKSPACE:
|
|
733
|
-
return localize(
|
|
728
|
+
return localize(17170, "You trust this workspace");
|
|
734
729
|
}
|
|
735
730
|
}
|
|
736
|
-
return localize(
|
|
731
|
+
return localize(17171, "You are in Restricted Mode");
|
|
737
732
|
}
|
|
738
733
|
getHeaderTitleIconClassNames(trusted) {
|
|
739
734
|
return ThemeIcon.asClassNameArray(shieldIcon);
|
|
@@ -744,36 +739,36 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
744
739
|
switch (this.workspaceService.getWorkbenchState()) {
|
|
745
740
|
case WorkbenchState.EMPTY:
|
|
746
741
|
{
|
|
747
|
-
title = trusted ? ( localize(
|
|
742
|
+
title = trusted ? ( localize(17172, "In a Trusted Window")) : ( localize(17173, "In Restricted Mode"));
|
|
748
743
|
subTitle = trusted ? ( localize(
|
|
749
|
-
|
|
744
|
+
17174,
|
|
750
745
|
"You trust the authors of the files in the current window. All features are enabled:"
|
|
751
746
|
)) : ( localize(
|
|
752
|
-
|
|
747
|
+
17175,
|
|
753
748
|
"You do not trust the authors of the files in the current window. The following features are disabled:"
|
|
754
749
|
));
|
|
755
750
|
break;
|
|
756
751
|
}
|
|
757
752
|
case WorkbenchState.FOLDER:
|
|
758
753
|
{
|
|
759
|
-
title = trusted ? ( localize(
|
|
754
|
+
title = trusted ? ( localize(17176, "In a Trusted Folder")) : ( localize(17173, "In Restricted Mode"));
|
|
760
755
|
subTitle = trusted ? ( localize(
|
|
761
|
-
|
|
756
|
+
17177,
|
|
762
757
|
"You trust the authors of the files in the current folder. All features are enabled:"
|
|
763
758
|
)) : ( localize(
|
|
764
|
-
|
|
759
|
+
17178,
|
|
765
760
|
"You do not trust the authors of the files in the current folder. The following features are disabled:"
|
|
766
761
|
));
|
|
767
762
|
break;
|
|
768
763
|
}
|
|
769
764
|
case WorkbenchState.WORKSPACE:
|
|
770
765
|
{
|
|
771
|
-
title = trusted ? ( localize(
|
|
766
|
+
title = trusted ? ( localize(17179, "In a Trusted Workspace")) : ( localize(17173, "In Restricted Mode"));
|
|
772
767
|
subTitle = trusted ? ( localize(
|
|
773
|
-
|
|
768
|
+
17180,
|
|
774
769
|
"You trust the authors of the files in the current workspace. All features are enabled:"
|
|
775
770
|
)) : ( localize(
|
|
776
|
-
|
|
771
|
+
17181,
|
|
777
772
|
"You do not trust the authors of the files in the current workspace. The following features are disabled:"
|
|
778
773
|
));
|
|
779
774
|
break;
|
|
@@ -782,6 +777,9 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
782
777
|
return [title, subTitle];
|
|
783
778
|
}
|
|
784
779
|
async render() {
|
|
780
|
+
if (this._store.isDisposed) {
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
785
783
|
if (this.rendering) {
|
|
786
784
|
return;
|
|
787
785
|
}
|
|
@@ -796,16 +794,16 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
796
794
|
this.headerDescription.innerText = "";
|
|
797
795
|
const headerDescriptionText = append(this.headerDescription, $("div"));
|
|
798
796
|
headerDescriptionText.innerText = isWorkspaceTrusted ? ( localize(
|
|
799
|
-
|
|
797
|
+
17182,
|
|
800
798
|
"All features are enabled because trust has been granted to the workspace."
|
|
801
799
|
)) : ( localize(
|
|
802
|
-
|
|
800
|
+
17183,
|
|
803
801
|
"{0} is in a restricted mode intended for safe code browsing.",
|
|
804
802
|
this.productService.nameShort
|
|
805
803
|
));
|
|
806
804
|
const headerDescriptionActions = append(this.headerDescription, $("div"));
|
|
807
805
|
const headerDescriptionActionsText = ( localize(
|
|
808
|
-
|
|
806
|
+
17184,
|
|
809
807
|
"[Configure your settings]({0}) or [learn more](https://aka.ms/vscode-workspace-trust).",
|
|
810
808
|
`command:workbench.trust.configure`
|
|
811
809
|
));
|
|
@@ -820,7 +818,7 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
820
818
|
}
|
|
821
819
|
}
|
|
822
820
|
this.headerContainer.className = this.getHeaderContainerClass(isWorkspaceTrusted);
|
|
823
|
-
this.rootElement.setAttribute("aria-label", `${( localize(
|
|
821
|
+
this.rootElement.setAttribute("aria-label", `${( localize(17185, "Manage Workspace Trust"))}: ${this.headerContainer.innerText}`);
|
|
824
822
|
const restrictedSettings = this.configurationService.restrictedSettings;
|
|
825
823
|
const configurationRegistry = ( Registry.as(Extensions.Configuration));
|
|
826
824
|
const settingsRequiringTrustedWorkspaceCount = restrictedSettings.default.filter(key => {
|
|
@@ -888,7 +886,7 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
888
886
|
tabIndex: "0"
|
|
889
887
|
}));
|
|
890
888
|
const configurationTitle = append(this.configurationContainer, $(".workspace-trusted-folders-title"));
|
|
891
|
-
configurationTitle.innerText = ( localize(
|
|
889
|
+
configurationTitle.innerText = ( localize(17154, "Trusted Folders & Workspaces"));
|
|
892
890
|
this.workspaceTrustedUrisTable = this._register(
|
|
893
891
|
this.instantiationService.createInstance(WorkspaceTrustedUrisTable, this.configurationContainer)
|
|
894
892
|
);
|
|
@@ -913,7 +911,7 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
913
911
|
clearNode(this.untrustedContainer);
|
|
914
912
|
const [trustedTitle, trustedSubTitle] = this.getFeaturesHeaderText(true);
|
|
915
913
|
this.renderLimitationsHeaderElement(this.trustedContainer, trustedTitle, trustedSubTitle);
|
|
916
|
-
const trustedContainerItems = this.workspaceService.getWorkbenchState() === WorkbenchState.EMPTY ? [( localize(
|
|
914
|
+
const trustedContainerItems = this.workspaceService.getWorkbenchState() === WorkbenchState.EMPTY ? [( localize(17186, "Tasks are allowed to run")), ( localize(17187, "Debugging is enabled")), ( localize(17188, "All enabled extensions are activated"))] : [( localize(17186, "Tasks are allowed to run")), ( localize(17187, "Debugging is enabled")), ( localize(17189, "All workspace settings are applied")), ( localize(17188, "All enabled extensions are activated"))];
|
|
917
915
|
this.renderLimitationsListElement(
|
|
918
916
|
this.trustedContainer,
|
|
919
917
|
trustedContainerItems,
|
|
@@ -921,18 +919,18 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
921
919
|
);
|
|
922
920
|
const [untrustedTitle, untrustedSubTitle] = this.getFeaturesHeaderText(false);
|
|
923
921
|
this.renderLimitationsHeaderElement(this.untrustedContainer, untrustedTitle, untrustedSubTitle);
|
|
924
|
-
const untrustedContainerItems = this.workspaceService.getWorkbenchState() === WorkbenchState.EMPTY ? [( localize(
|
|
925
|
-
|
|
922
|
+
const untrustedContainerItems = this.workspaceService.getWorkbenchState() === WorkbenchState.EMPTY ? [( localize(17190, "Tasks are not allowed to run")), ( localize(17191, "Debugging is disabled")), fixBadLocalizedLinks(( localize(
|
|
923
|
+
17192,
|
|
926
924
|
"[{0} extensions]({1}) are disabled or have limited functionality",
|
|
927
925
|
numExtensions,
|
|
928
926
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
929
|
-
)))] : [( localize(
|
|
930
|
-
|
|
927
|
+
)))] : [( localize(17190, "Tasks are not allowed to run")), ( localize(17191, "Debugging is disabled")), fixBadLocalizedLinks(numSettings ? ( localize(
|
|
928
|
+
17193,
|
|
931
929
|
"[{0} workspace settings]({1}) are not applied",
|
|
932
930
|
numSettings,
|
|
933
931
|
"command:settings.filterUntrusted"
|
|
934
|
-
)) : ( localize(
|
|
935
|
-
|
|
932
|
+
)) : ( localize(17194, "Workspace settings requiring trust are not applied"))), fixBadLocalizedLinks(( localize(
|
|
933
|
+
17192,
|
|
936
934
|
"[{0} extensions]({1}) are disabled or have limited functionality",
|
|
937
935
|
numExtensions,
|
|
938
936
|
`command:${LIST_WORKSPACE_UNSUPPORTED_EXTENSIONS_COMMAND_ID}`
|
|
@@ -966,7 +964,7 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
966
964
|
button.label = action.label;
|
|
967
965
|
button.enabled = enabled !== undefined ? enabled : action.enabled;
|
|
968
966
|
button.description = keybinding.getLabel();
|
|
969
|
-
button.element.ariaLabel = action.label + ", " + ( localize(
|
|
967
|
+
button.element.ariaLabel = action.label + ", " + ( localize(17195, "Keyboard Shortcut: {0}", keybinding.getAriaLabel()));
|
|
970
968
|
this.rerenderDisposables.add(button.onDidClick(e => {
|
|
971
969
|
if (e) {
|
|
972
970
|
EventHelper.stop(e, true);
|
|
@@ -976,35 +974,18 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
976
974
|
}
|
|
977
975
|
}
|
|
978
976
|
addTrustButtonToElement(parent) {
|
|
979
|
-
const trustAction = this.rerenderDisposables.add(( new Action("workspace.trust.button.action.grant", ( localize(
|
|
977
|
+
const trustAction = this.rerenderDisposables.add(( new Action("workspace.trust.button.action.grant", ( localize(17196, "Trust")), undefined, true, async () => {
|
|
980
978
|
await this.workspaceTrustManagementService.setWorkspaceTrust(true);
|
|
981
979
|
})));
|
|
982
980
|
const trustActions = [{
|
|
983
981
|
action: trustAction,
|
|
984
982
|
keybinding: this.keybindingService.resolveUserBinding(isMacintosh ? "Cmd+Enter" : "Ctrl+Enter")[0]
|
|
985
983
|
}];
|
|
986
|
-
if (this.workspaceTrustManagementService.canSetParentFolderTrust()) {
|
|
987
|
-
const workspaceIdentifier = toWorkspaceIdentifier(this.workspaceService.getWorkspace());
|
|
988
|
-
const name = basename(dirname(workspaceIdentifier.uri));
|
|
989
|
-
const trustMessageElement = append(parent, $(".trust-message-box"));
|
|
990
|
-
trustMessageElement.innerText = ( localize(
|
|
991
|
-
16532,
|
|
992
|
-
"Trust the authors of all files in the current folder or its parent '{0}'.",
|
|
993
|
-
name
|
|
994
|
-
));
|
|
995
|
-
const trustParentAction = this.rerenderDisposables.add(( new Action("workspace.trust.button.action.grantParent", ( localize(16533, "Trust Parent")), undefined, true, async () => {
|
|
996
|
-
await this.workspaceTrustManagementService.setParentFolderTrust(true);
|
|
997
|
-
})));
|
|
998
|
-
trustActions.push({
|
|
999
|
-
action: trustParentAction,
|
|
1000
|
-
keybinding: this.keybindingService.resolveUserBinding(isMacintosh ? "Cmd+Shift+Enter" : "Ctrl+Shift+Enter")[0]
|
|
1001
|
-
});
|
|
1002
|
-
}
|
|
1003
984
|
this.createButtonRow(parent, trustActions);
|
|
1004
985
|
}
|
|
1005
986
|
addDontTrustButtonToElement(parent) {
|
|
1006
987
|
this.createButtonRow(parent, [{
|
|
1007
|
-
action: this.rerenderDisposables.add(( new Action("workspace.trust.button.action.deny", ( localize(
|
|
988
|
+
action: this.rerenderDisposables.add(( new Action("workspace.trust.button.action.deny", ( localize(17197, "Don't Trust")), undefined, true, async () => {
|
|
1008
989
|
await this.workspaceTrustManagementService.setWorkspaceTrust(false);
|
|
1009
990
|
}))),
|
|
1010
991
|
keybinding: this.keybindingService.resolveUserBinding(isMacintosh ? "Cmd+Enter" : "Ctrl+Enter")[0]
|
|
@@ -1017,14 +998,14 @@ let WorkspaceTrustEditor = class WorkspaceTrustEditor extends EditorPane {
|
|
|
1017
998
|
const textElement = append(parent, $(".workspace-trust-untrusted-description"));
|
|
1018
999
|
if (!this.workspaceTrustManagementService.isWorkspaceTrustForced()) {
|
|
1019
1000
|
textElement.innerText = this.workspaceService.getWorkbenchState() === WorkbenchState.WORKSPACE ? ( localize(
|
|
1020
|
-
|
|
1001
|
+
17198,
|
|
1021
1002
|
"This workspace is trusted via the bolded entries in the trusted folders below."
|
|
1022
1003
|
)) : ( localize(
|
|
1023
|
-
|
|
1004
|
+
17199,
|
|
1024
1005
|
"This folder is trusted via the bolded entries in the trusted folders below."
|
|
1025
1006
|
));
|
|
1026
1007
|
} else {
|
|
1027
|
-
textElement.innerText = ( localize(
|
|
1008
|
+
textElement.innerText = ( localize(17200, "This window is trusted by nature of the workspace that is opened."));
|
|
1028
1009
|
}
|
|
1029
1010
|
}
|
|
1030
1011
|
renderLimitationsHeaderElement(parent, headerText, subtitleText) {
|
|
@@ -7,7 +7,7 @@ import { registerIcon } from '@codingame/monaco-vscode-api/vscode/vs/platform/th
|
|
|
7
7
|
import { EditorInputCapabilities } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor';
|
|
8
8
|
import { EditorInput } from '@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor/editorInput';
|
|
9
9
|
|
|
10
|
-
const WorkspaceTrustEditorIcon = registerIcon("workspace-trust-editor-label-icon", Codicon.shield, ( localize(
|
|
10
|
+
const WorkspaceTrustEditorIcon = registerIcon("workspace-trust-editor-label-icon", Codicon.shield, ( localize(18325, "Icon of the workspace trust editor label.")));
|
|
11
11
|
class WorkspaceTrustEditorInput extends EditorInput {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
@@ -29,7 +29,7 @@ class WorkspaceTrustEditorInput extends EditorInput {
|
|
|
29
29
|
return super.matches(otherInput) || otherInput instanceof WorkspaceTrustEditorInput;
|
|
30
30
|
}
|
|
31
31
|
getName() {
|
|
32
|
-
return localize(
|
|
32
|
+
return localize(18326, "Workspace Trust");
|
|
33
33
|
}
|
|
34
34
|
getIcon() {
|
|
35
35
|
return WorkspaceTrustEditorIcon;
|