Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
8c4e2206
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,发现更多精彩内容 >>
提交
8c4e2206
编写于
10月 15, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixing some possible leaks in electron webviews
For #50556
上级
90163547
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
11 deletion
+9
-11
src/vs/workbench/contrib/webview/browser/webviewEditor.ts
src/vs/workbench/contrib/webview/browser/webviewEditor.ts
+1
-0
src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts
...kbench/contrib/webview/electron-browser/webviewElement.ts
+8
-11
未找到文件。
src/vs/workbench/contrib/webview/browser/webviewEditor.ts
浏览文件 @
8c4e2206
...
...
@@ -132,6 +132,7 @@ export class WebviewEditor extends BaseEditor {
public
clearInput
()
{
if
(
this
.
input
&&
this
.
input
instanceof
WebviewInput
)
{
this
.
input
.
webview
.
release
(
this
);
this
.
_webviewFocusTrackerDisposables
.
clear
();
}
super
.
clearInput
();
...
...
src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts
浏览文件 @
8c4e2206
...
...
@@ -7,7 +7,7 @@ import { FindInPageOptions, OnBeforeRequestDetails, OnHeadersReceivedDetails, Re
import
{
addClass
,
addDisposableListener
}
from
'
vs/base/browser/dom
'
;
import
{
Emitter
,
Event
}
from
'
vs/base/common/event
'
;
import
{
once
}
from
'
vs/base/common/functional
'
;
import
{
Disposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
Disposable
,
toDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
isMacintosh
}
from
'
vs/base/common/platform
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
*
as
modes
from
'
vs/editor/common/modes
'
;
...
...
@@ -53,6 +53,9 @@ class WebviewTagHandle extends Disposable {
const
contents
=
this
.
webContents
;
if
(
contents
)
{
this
.
_onFirstLoad
.
fire
(
contents
);
this
.
_register
(
toDisposable
(()
=>
{
contents
.
removeAllListeners
();
}));
}
})));
}
...
...
@@ -70,7 +73,6 @@ class WebviewTagHandle extends Disposable {
this
.
_webContents
=
this
.
webview
.
getWebContents
();
return
this
.
_webContents
;
}
}
type
OnBeforeRequestDelegate
=
(
details
:
OnBeforeRequestDetails
)
=>
Promise
<
Response
|
undefined
>
;
...
...
@@ -143,8 +145,6 @@ class WebviewProtocolProvider extends Disposable {
class
WebviewPortMappingProvider
extends
Disposable
{
private
readonly
_manager
:
WebviewPortMappingManager
;
constructor
(
session
:
WebviewSession
,
getExtensionLocation
:
()
=>
URI
|
undefined
,
...
...
@@ -152,10 +152,10 @@ class WebviewPortMappingProvider extends Disposable {
tunnelService
:
ITunnelService
,
)
{
super
();
this
.
_
manager
=
this
.
_register
(
new
WebviewPortMappingManager
(
getExtensionLocation
,
mappings
,
tunnelService
));
const
manager
=
this
.
_register
(
new
WebviewPortMappingManager
(
getExtensionLocation
,
mappings
,
tunnelService
));
session
.
onBeforeRequest
(
async
details
=>
{
const
redirect
=
await
this
.
_
manager
.
getRedirect
(
details
.
url
);
const
redirect
=
await
manager
.
getRedirect
(
details
.
url
);
return
redirect
?
{
redirectURL
:
redirect
}
:
undefined
;
});
}
...
...
@@ -290,8 +290,7 @@ export class ElectronWebviewBasedWebview extends Disposable implements Webview,
}));
});
const
webviewAndContents
=
new
WebviewTagHandle
(
this
.
_webview
);
const
webviewAndContents
=
this
.
_register
(
new
WebviewTagHandle
(
this
.
_webview
));
const
session
=
this
.
_register
(
new
WebviewSession
(
webviewAndContents
));
this
.
_register
(
new
WebviewProtocolProvider
(
...
...
@@ -421,9 +420,7 @@ export class ElectronWebviewBasedWebview extends Disposable implements Webview,
dispose
():
void
{
if
(
this
.
_webview
)
{
if
(
this
.
_webview
.
parentElement
)
{
this
.
_webview
.
parentElement
.
removeChild
(
this
.
_webview
);
}
this
.
_webview
.
remove
();
this
.
_webview
=
undefined
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录