Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
c55aff63
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c55aff63
编写于
3月 24, 2021
作者:
L
Ladislau Szomoru
提交者:
GitHub
3月 24, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
API feedback (WorkspaceTrustRequest -> WorkspaceTrustRequestOptions) (#119658)
上级
3eb6fec8
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
35 addition
and
35 deletion
+35
-35
src/vs/platform/workspace/common/workspaceTrust.ts
src/vs/platform/workspace/common/workspaceTrust.ts
+4
-4
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+3
-3
src/vs/workbench/api/browser/mainThreadWorkspace.ts
src/vs/workbench/api/browser/mainThreadWorkspace.ts
+3
-3
src/vs/workbench/api/common/extHost.api.impl.ts
src/vs/workbench/api/common/extHost.api.impl.ts
+2
-2
src/vs/workbench/api/common/extHost.protocol.ts
src/vs/workbench/api/common/extHost.protocol.ts
+2
-2
src/vs/workbench/api/common/extHostWorkspace.ts
src/vs/workbench/api/common/extHostWorkspace.ts
+2
-2
src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts
...bench/contrib/workspace/browser/workspace.contribution.ts
+5
-5
src/vs/workbench/services/workspaces/common/workspaceTrust.ts
...vs/workbench/services/workspaces/common/workspaceTrust.ts
+12
-12
src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts
...vices/workspaces/test/common/testWorkspaceTrustService.ts
+2
-2
未找到文件。
src/vs/platform/workspace/common/workspaceTrust.ts
浏览文件 @
c55aff63
...
...
@@ -49,20 +49,20 @@ export interface WorkspaceTrustRequestButton {
type
:
'
ContinueWithTrust
'
|
'
ContinueWithoutTrust
'
|
'
Manage
'
|
'
Cancel
'
}
export
interface
WorkspaceTrustRequest
{
export
interface
WorkspaceTrustRequest
Options
{
buttons
?:
WorkspaceTrustRequestButton
[];
message
?:
string
;
modal
:
boolean
;
}
export
interface
IWorkspaceTrustRequestModel
{
readonly
trustRequest
:
WorkspaceTrustRequest
|
undefined
;
readonly
trustRequest
Options
:
WorkspaceTrustRequestOptions
|
undefined
;
readonly
onDidInitiateRequest
:
Event
<
void
>
;
readonly
onDidCompleteRequest
:
Event
<
WorkspaceTrustState
|
undefined
>
;
readonly
onDidCancelRequest
:
Event
<
void
>
;
initiateRequest
(
request
?:
WorkspaceTrustRequest
):
void
;
initiateRequest
(
options
?:
WorkspaceTrustRequestOptions
):
void
;
completeRequest
(
trustState
?:
WorkspaceTrustState
):
void
;
cancelRequest
():
void
;
}
...
...
@@ -84,7 +84,7 @@ export interface IWorkspaceTrustService {
onDidChangeTrustState
:
WorkspaceTrustChangeEvent
;
getWorkspaceTrustState
():
WorkspaceTrustState
;
isWorkspaceTrustEnabled
():
boolean
;
requireWorkspaceTrust
(
request
?:
WorkspaceTrustRequest
):
Promise
<
WorkspaceTrustState
>
;
requireWorkspaceTrust
(
options
?:
WorkspaceTrustRequestOptions
):
Promise
<
WorkspaceTrustState
>
;
}
export
interface
IWorkspaceTrustFolderInfo
{
...
...
src/vs/vscode.proposed.d.ts
浏览文件 @
c55aff63
...
...
@@ -2792,7 +2792,7 @@ declare module 'vscode' {
/**
* The object describing the properties of the workspace trust request
*/
export
interface
WorkspaceTrustRequest
{
export
interface
WorkspaceTrustRequest
Options
{
/**
* When true, a modal dialog will be used to request workspace trust.
* When false, a badge will be displayed on the Setting activity bar item
...
...
@@ -2808,10 +2808,10 @@ declare module 'vscode' {
/**
* Prompt the user to chose whether to trust the current workspace
* @param
request
Optional object describing the properties of the
* @param
options
Optional object describing the properties of the
* workspace trust request
*/
export
function
requireWorkspaceTrust
(
request
?:
WorkspaceTrustRequest
):
Thenable
<
WorkspaceTrustState
>
;
export
function
requireWorkspaceTrust
(
options
?:
WorkspaceTrustRequestOptions
):
Thenable
<
WorkspaceTrustState
>
;
/**
* Event that fires when the trust state of the current workspace changes
...
...
src/vs/workbench/api/browser/mainThreadWorkspace.ts
浏览文件 @
c55aff63
...
...
@@ -16,7 +16,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import
{
ILabelService
}
from
'
vs/platform/label/common/label
'
;
import
{
INotificationService
}
from
'
vs/platform/notification/common/notification
'
;
import
{
IRequestService
}
from
'
vs/platform/request/common/request
'
;
import
{
WorkspaceTrustStateChangeEvent
,
IWorkspaceTrustService
,
WorkspaceTrustRequest
,
WorkspaceTrustState
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
WorkspaceTrustStateChangeEvent
,
IWorkspaceTrustService
,
WorkspaceTrustRequest
Options
,
WorkspaceTrustState
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
IWorkspace
,
IWorkspaceContextService
,
WorkbenchState
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
isUntitledWorkspace
}
from
'
vs/platform/workspaces/common/workspaces
'
;
import
{
extHostNamedCustomer
}
from
'
vs/workbench/api/common/extHostCustomers
'
;
...
...
@@ -208,8 +208,8 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape {
// --- trust ---
$requireWorkspaceTrust
(
request
?:
WorkspaceTrustRequest
):
Promise
<
WorkspaceTrustState
>
{
return
this
.
_workspaceTrustService
.
requireWorkspaceTrust
(
request
);
$requireWorkspaceTrust
(
options
?:
WorkspaceTrustRequestOptions
):
Promise
<
WorkspaceTrustState
>
{
return
this
.
_workspaceTrustService
.
requireWorkspaceTrust
(
options
);
}
private
getWorkspaceTrustState
():
WorkspaceTrustState
{
...
...
src/vs/workbench/api/common/extHost.api.impl.ts
浏览文件 @
c55aff63
...
...
@@ -913,10 +913,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkRequiresWorkspaceTrust
(
extension
);
return
extHostWorkspace
.
trustState
;
},
requireWorkspaceTrust
:
(
request
?:
vscode
.
WorkspaceTrustRequest
)
=>
{
requireWorkspaceTrust
:
(
options
?:
vscode
.
WorkspaceTrustRequestOptions
)
=>
{
checkProposedApiEnabled
(
extension
);
checkRequiresWorkspaceTrust
(
extension
);
return
extHostWorkspace
.
requireWorkspaceTrust
(
request
);
return
extHostWorkspace
.
requireWorkspaceTrust
(
options
);
},
onDidChangeWorkspaceTrustState
:
(
listener
,
thisArgs
?,
disposables
?)
=>
{
return
extHostWorkspace
.
onDidChangeWorkspaceTrustState
(
listener
,
thisArgs
,
disposables
);
...
...
src/vs/workbench/api/common/extHost.protocol.ts
浏览文件 @
c55aff63
...
...
@@ -58,7 +58,7 @@ import { IAccessibilityInformation } from 'vs/platform/accessibility/common/acce
import
{
IExtensionIdWithVersion
}
from
'
vs/platform/userDataSync/common/extensionsStorageSync
'
;
import
{
InternalTestItem
,
ITestState
,
RunTestForProviderRequest
,
RunTestsRequest
,
TestIdWithSrc
,
TestsDiff
,
ISerializedTestResults
}
from
'
vs/workbench/contrib/testing/common/testCollection
'
;
import
{
CandidatePort
}
from
'
vs/workbench/services/remote/common/remoteExplorerService
'
;
import
{
WorkspaceTrustRequest
,
WorkspaceTrustStateChangeEvent
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
WorkspaceTrustRequest
Options
,
WorkspaceTrustStateChangeEvent
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
ISerializableEnvironmentVariableCollection
}
from
'
vs/workbench/contrib/terminal/common/environmentVariable
'
;
import
{
IShellLaunchConfig
,
ITerminalDimensions
,
ITerminalLaunchError
}
from
'
vs/platform/terminal/common/terminal
'
;
import
{
ITerminalProfile
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
...
...
@@ -891,7 +891,7 @@ export interface MainThreadWorkspaceShape extends IDisposable {
$saveAll
(
includeUntitled
?:
boolean
):
Promise
<
boolean
>
;
$updateWorkspaceFolders
(
extensionName
:
string
,
index
:
number
,
deleteCount
:
number
,
workspaceFoldersToAdd
:
{
uri
:
UriComponents
,
name
?:
string
;
}[]):
Promise
<
void
>
;
$resolveProxy
(
url
:
string
):
Promise
<
string
|
undefined
>
;
$requireWorkspaceTrust
(
request
?:
WorkspaceTrustRequest
):
Promise
<
WorkspaceTrustState
>
;
$requireWorkspaceTrust
(
options
?:
WorkspaceTrustRequestOptions
):
Promise
<
WorkspaceTrustState
>
;
}
export
interface
IFileChangeDto
{
...
...
src/vs/workbench/api/common/extHostWorkspace.ts
浏览文件 @
c55aff63
...
...
@@ -563,8 +563,8 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape, IExtHostWorkspac
return
this
.
_workspaceTrustState
;
}
requireWorkspaceTrust
(
request
?:
vscode
.
WorkspaceTrustRequest
):
Promise
<
WorkspaceTrustState
>
{
return
this
.
_proxy
.
$requireWorkspaceTrust
(
request
);
requireWorkspaceTrust
(
options
?:
vscode
.
WorkspaceTrustRequestOptions
):
Promise
<
WorkspaceTrustState
>
{
return
this
.
_proxy
.
$requireWorkspaceTrust
(
options
);
}
$onDidChangeWorkspaceTrustState
(
state
:
WorkspaceTrustStateChangeEvent
):
void
{
...
...
src/vs/workbench/contrib/workspace/browser/workspace.contribution.ts
浏览文件 @
c55aff63
...
...
@@ -72,7 +72,7 @@ export class WorkspaceTrustRequestHandler extends Disposable implements IWorkben
private
registerListeners
():
void
{
this
.
_register
(
this
.
requestModel
.
onDidInitiateRequest
(
async
()
=>
{
if
(
this
.
requestModel
.
trustRequest
)
{
if
(
this
.
requestModel
.
trustRequest
Options
)
{
this
.
toggleRequestBadge
(
true
);
type
WorkspaceTrustRequestedEventClassification
=
{
...
...
@@ -88,18 +88,18 @@ export class WorkspaceTrustRequestHandler extends Disposable implements IWorkben
};
this
.
telemetryService
.
publicLog2
<
WorkspaceTrustRequestedEvent
,
WorkspaceTrustRequestedEventClassification
>
(
'
workspaceTrustRequested
'
,
{
modal
:
this
.
requestModel
.
trustRequest
.
modal
,
modal
:
this
.
requestModel
.
trustRequest
Options
.
modal
,
workspaceId
:
this
.
workspaceContextService
.
getWorkspace
().
id
,
extensions
:
(
await
this
.
extensionService
.
getExtensions
()).
filter
(
ext
=>
!!
ext
.
workspaceTrust
).
map
(
ext
=>
ext
.
identifier
.
value
)
});
if
(
this
.
requestModel
.
trustRequest
.
modal
)
{
if
(
this
.
requestModel
.
trustRequest
Options
.
modal
)
{
// Message
const
defaultMessage
=
localize
(
'
immediateTrustRequestMessage
'
,
"
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.
"
);
const
message
=
this
.
requestModel
.
trustRequest
.
message
??
defaultMessage
;
const
message
=
this
.
requestModel
.
trustRequest
Options
.
message
??
defaultMessage
;
// Buttons
const
buttons
=
this
.
requestModel
.
trustRequest
.
buttons
??
[
const
buttons
=
this
.
requestModel
.
trustRequest
Options
.
buttons
??
[
{
label
:
localize
(
'
grantWorkspaceTrustButton
'
,
"
Continue
"
),
type
:
'
ContinueWithTrust
'
},
{
label
:
localize
(
'
manageWorkspaceTrustButton
'
,
"
Learn More
"
),
type
:
'
Manage
'
}
];
...
...
src/vs/workbench/services/workspaces/common/workspaceTrust.ts
浏览文件 @
c55aff63
...
...
@@ -11,7 +11,7 @@ import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/cont
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
import
{
IStorageService
,
StorageScope
,
StorageTarget
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IWorkspace
,
IWorkspaceContextService
,
WorkbenchState
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceTrustModel
,
WorkspaceTrustRequest
,
IWorkspaceTrustRequestModel
,
IWorkspaceTrustService
,
IWorkspaceTrustStateInfo
,
WorkspaceTrustState
,
WorkspaceTrustStateChangeEvent
,
IWorkspaceTrustFolderInfo
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
IWorkspaceTrustModel
,
WorkspaceTrustRequest
Options
,
IWorkspaceTrustRequestModel
,
IWorkspaceTrustService
,
IWorkspaceTrustStateInfo
,
WorkspaceTrustState
,
WorkspaceTrustStateChangeEvent
,
IWorkspaceTrustFolderInfo
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
isEqual
,
isEqualOrParent
}
from
'
vs/base/common/extpath
'
;
import
{
EditorModel
}
from
'
vs/workbench/common/editor
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
...
...
@@ -184,7 +184,7 @@ export class WorkspaceTrustModel extends Disposable implements IWorkspaceTrustMo
}
export
class
WorkspaceTrustRequestModel
extends
Disposable
implements
IWorkspaceTrustRequestModel
{
trustRequest
:
WorkspaceTrustRequest
|
undefined
;
trustRequest
Options
:
WorkspaceTrustRequestOptions
|
undefined
;
private
readonly
_onDidInitiateRequest
=
this
.
_register
(
new
Emitter
<
void
>
());
readonly
onDidInitiateRequest
:
Event
<
void
>
=
this
.
_onDidInitiateRequest
.
event
;
...
...
@@ -195,22 +195,22 @@ export class WorkspaceTrustRequestModel extends Disposable implements IWorkspace
private
readonly
_onDidCancelRequest
=
this
.
_register
(
new
Emitter
<
void
>
());
readonly
onDidCancelRequest
=
this
.
_onDidCancelRequest
.
event
;
initiateRequest
(
request
:
WorkspaceTrustRequest
):
void
{
if
(
this
.
trustRequest
&&
(
!
request
.
modal
||
this
.
trustRequest
.
modal
))
{
initiateRequest
(
options
:
WorkspaceTrustRequestOptions
):
void
{
if
(
this
.
trustRequest
Options
&&
(
!
options
.
modal
||
this
.
trustRequestOptions
.
modal
))
{
return
;
}
this
.
trustRequest
=
request
;
this
.
trustRequest
Options
=
options
;
this
.
_onDidInitiateRequest
.
fire
();
}
completeRequest
(
trustState
?:
WorkspaceTrustState
):
void
{
this
.
trustRequest
=
undefined
;
this
.
trustRequest
Options
=
undefined
;
this
.
_onDidCompleteRequest
.
fire
(
trustState
);
}
cancelRequest
():
void
{
this
.
trustRequest
=
undefined
;
this
.
trustRequest
Options
=
undefined
;
this
.
_onDidCancelRequest
.
fire
();
}
}
...
...
@@ -416,17 +416,17 @@ export class WorkspaceTrustService extends Disposable implements IWorkspaceTrust
return
this
.
configurationService
.
getValue
<
boolean
>
(
WORKSPACE_TRUST_ENABLED
)
??
false
;
}
async
requireWorkspaceTrust
(
request
:
WorkspaceTrustRequest
=
{
modal
:
true
}):
Promise
<
WorkspaceTrustState
>
{
async
requireWorkspaceTrust
(
options
:
WorkspaceTrustRequestOptions
=
{
modal
:
true
}):
Promise
<
WorkspaceTrustState
>
{
// Trusted workspace
if
(
this
.
currentTrustState
===
WorkspaceTrustState
.
Trusted
)
{
return
this
.
currentTrustState
;
}
// Untrusted workspace - soft request
if
(
this
.
currentTrustState
===
WorkspaceTrustState
.
Untrusted
&&
!
request
.
modal
)
{
if
(
this
.
currentTrustState
===
WorkspaceTrustState
.
Untrusted
&&
!
options
.
modal
)
{
return
this
.
currentTrustState
;
}
if
(
request
.
modal
)
{
if
(
options
.
modal
)
{
// Modal request
if
(
!
this
.
_modalTrustRequestPromise
)
{
// Create promise
...
...
@@ -449,10 +449,10 @@ export class WorkspaceTrustService extends Disposable implements IWorkspaceTrust
}
}
this
.
requestModel
.
initiateRequest
(
request
);
this
.
requestModel
.
initiateRequest
(
options
);
this
.
_ctxWorkspaceTrustPendingRequest
.
set
(
true
);
return
request
.
modal
?
this
.
_modalTrustRequestPromise
!
:
this
.
_trustRequestPromise
!
;
return
options
.
modal
?
this
.
_modalTrustRequestPromise
!
:
this
.
_trustRequestPromise
!
;
}
}
...
...
src/vs/workbench/services/workspaces/test/common/testWorkspaceTrustService.ts
浏览文件 @
c55aff63
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
{
Event
}
from
'
vs/base/common/event
'
;
import
{
WorkspaceTrustRequest
,
IWorkspaceTrustRequestModel
,
IWorkspaceTrustService
,
WorkspaceTrustChangeEvent
,
WorkspaceTrustState
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
WorkspaceTrustRequest
Options
,
IWorkspaceTrustRequestModel
,
IWorkspaceTrustService
,
WorkspaceTrustChangeEvent
,
WorkspaceTrustState
}
from
'
vs/platform/workspace/common/workspaceTrust
'
;
import
{
WorkspaceTrustRequestModel
}
from
'
vs/workbench/services/workspaces/common/workspaceTrust
'
;
export
class
TestWorkspaceTrustService
implements
IWorkspaceTrustService
{
...
...
@@ -22,7 +22,7 @@ export class TestWorkspaceTrustService implements IWorkspaceTrustService {
return
true
;
}
requireWorkspaceTrust
(
request
:
WorkspaceTrustRequest
):
Promise
<
WorkspaceTrustState
>
{
requireWorkspaceTrust
(
options
?:
WorkspaceTrustRequestOptions
):
Promise
<
WorkspaceTrustState
>
{
return
Promise
.
resolve
(
WorkspaceTrustState
.
Trusted
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录