Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2977047e
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2977047e
编写于
3月 27, 2020
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use private fields for most webview properties
#93608
上级
b8295c1a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
47 addition
and
29 deletion
+47
-29
src/vs/workbench/api/common/extHostWebview.ts
src/vs/workbench/api/common/extHostWebview.ts
+47
-29
未找到文件。
src/vs/workbench/api/common/extHostWebview.ts
浏览文件 @
2977047e
...
...
@@ -24,73 +24,91 @@ import * as extHostTypes from './extHostTypes';
type
IconPath
=
URI
|
{
light
:
URI
,
dark
:
URI
};
export
class
ExtHostWebview
implements
vscode
.
Webview
{
private
_html
:
string
=
''
;
private
_isDisposed
:
boolean
=
false
;
private
_hasCalledAsWebviewUri
=
false
;
public
readonly
_onMessageEmitter
=
new
Emitter
<
any
>
();
public
readonly
onDidReceiveMessage
:
Event
<
any
>
=
this
.
_onMessageEmitter
.
event
;
readonly
#
handle
:
extHostProtocol
.
WebviewPanelHandle
;
readonly
#
proxy
:
extHostProtocol
.
MainThreadWebviewsShape
;
readonly
#
deprecationService
:
IExtHostApiDeprecationService
;
readonly
#
initData
:
WebviewInitData
;
readonly
#
workspace
:
IExtHostWorkspace
|
undefined
;
readonly
#
extension
:
IExtensionDescription
;
#
html
:
string
=
''
;
#
options
:
vscode
.
WebviewOptions
;
#
isDisposed
:
boolean
=
false
;
#
hasCalledAsWebviewUri
=
false
;
constructor
(
private
readonly
_handle
:
extHostProtocol
.
WebviewPanelHandle
,
private
readonly
_proxy
:
extHostProtocol
.
MainThreadWebviewsShape
,
private
_options
:
vscode
.
WebviewOptions
,
private
readonly
_initData
:
WebviewInitData
,
private
readonly
_workspace
:
IExtHostWorkspace
|
undefined
,
private
readonly
_extension
:
IExtensionDescription
,
private
readonly
_deprecationService
:
IExtHostApiDeprecationService
,
)
{
}
handle
:
extHostProtocol
.
WebviewPanelHandle
,
proxy
:
extHostProtocol
.
MainThreadWebviewsShape
,
options
:
vscode
.
WebviewOptions
,
initData
:
WebviewInitData
,
workspace
:
IExtHostWorkspace
|
undefined
,
extension
:
IExtensionDescription
,
deprecationService
:
IExtHostApiDeprecationService
,
)
{
this
.
#
handle
=
handle
;
this
.
#
proxy
=
proxy
;
this
.
#
options
=
options
;
this
.
#
initData
=
initData
;
this
.
#
workspace
=
workspace
;
this
.
#
extension
=
extension
;
this
.
#
deprecationService
=
deprecationService
;
}
/* internal */
readonly
_onMessageEmitter
=
new
Emitter
<
any
>
();
public
readonly
onDidReceiveMessage
:
Event
<
any
>
=
this
.
_onMessageEmitter
.
event
;
public
dispose
()
{
this
.
_onMessageEmitter
.
dispose
();
}
public
asWebviewUri
(
resource
:
vscode
.
Uri
):
vscode
.
Uri
{
this
.
_
hasCalledAsWebviewUri
=
true
;
return
asWebviewUri
(
this
.
_initData
,
this
.
_
handle
,
resource
);
this
.
#
hasCalledAsWebviewUri
=
true
;
return
asWebviewUri
(
this
.
#
initData
,
this
.
#
handle
,
resource
);
}
public
get
cspSource
():
string
{
return
this
.
_
initData
.
webviewCspSource
.
replace
(
'
{{uuid}}
'
,
this
.
_
handle
);
return
this
.
#
initData
.
webviewCspSource
.
replace
(
'
{{uuid}}
'
,
this
.
#
handle
);
}
public
get
html
():
string
{
this
.
assertNotDisposed
();
return
this
.
_
html
;
return
this
.
#
html
;
}
public
set
html
(
value
:
string
)
{
this
.
assertNotDisposed
();
if
(
this
.
_
html
!==
value
)
{
this
.
_
html
=
value
;
if
(
!
this
.
_
hasCalledAsWebviewUri
&&
/
([
"'
])
vscode-resource:
([^\s
'"
]
+
?)([
"'
])
/i
.
test
(
value
))
{
this
.
_
hasCalledAsWebviewUri
=
true
;
this
.
_deprecationService
.
report
(
'
Webview vscode-resource: uris
'
,
this
.
_
extension
,
if
(
this
.
#
html
!==
value
)
{
this
.
#
html
=
value
;
if
(
!
this
.
#
hasCalledAsWebviewUri
&&
/
([
"'
])
vscode-resource:
([^\s
'"
]
+
?)([
"'
])
/i
.
test
(
value
))
{
this
.
#
hasCalledAsWebviewUri
=
true
;
this
.
#
deprecationService
.
report
(
'
Webview vscode-resource: uris
'
,
this
.
#
extension
,
`Please migrate to use the 'webview.asWebviewUri' api instead: https://aka.ms/vscode-webview-use-aswebviewuri`
);
}
this
.
_proxy
.
$setHtml
(
this
.
_
handle
,
value
);
this
.
#
proxy
.
$setHtml
(
this
.
#
handle
,
value
);
}
}
public
get
options
():
vscode
.
WebviewOptions
{
this
.
assertNotDisposed
();
return
this
.
_
options
;
return
this
.
#
options
;
}
public
set
options
(
newOptions
:
vscode
.
WebviewOptions
)
{
this
.
assertNotDisposed
();
this
.
_proxy
.
$setOptions
(
this
.
_handle
,
convertWebviewOptions
(
this
.
_extension
,
this
.
_
workspace
,
newOptions
));
this
.
_
options
=
newOptions
;
this
.
#
proxy
.
$setOptions
(
this
.
#
handle
,
convertWebviewOptions
(
this
.
#
extension
,
this
.
#
workspace
,
newOptions
));
this
.
#
options
=
newOptions
;
}
public
postMessage
(
message
:
any
):
Promise
<
boolean
>
{
this
.
assertNotDisposed
();
return
this
.
_proxy
.
$postMessage
(
this
.
_
handle
,
message
);
return
this
.
#
proxy
.
$postMessage
(
this
.
#
handle
,
message
);
}
private
assertNotDisposed
()
{
if
(
this
.
_
isDisposed
)
{
if
(
this
.
#
isDisposed
)
{
throw
new
Error
(
'
Webview is disposed
'
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录