Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
52648449
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,发现更多精彩内容 >>
提交
52648449
编写于
4月 09, 2018
作者:
R
Ramya Achutha Rao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update GDPR annotations for error telemetry
上级
2aa30865
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
26 deletion
+34
-26
src/vs/platform/telemetry/browser/errorTelemetry.ts
src/vs/platform/telemetry/browser/errorTelemetry.ts
+34
-26
未找到文件。
src/vs/platform/telemetry/browser/errorTelemetry.ts
浏览文件 @
52648449
...
@@ -12,22 +12,35 @@ import { IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle';
...
@@ -12,22 +12,35 @@ import { IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle';
import
*
as
Errors
from
'
vs/base/common/errors
'
;
import
*
as
Errors
from
'
vs/base/common/errors
'
;
import
{
safeStringify
}
from
'
vs/base/common/objects
'
;
import
{
safeStringify
}
from
'
vs/base/common/objects
'
;
/* __GDPR__FRAGMENT__
"ErrorEvent" : {
"stack": { "classification": "CustomerContent", "purpose": "PerformanceAndHealth" },
"message" : { "classification": "CustomerContent", "purpose": "PerformanceAndHealth" },
"filename" : { "classification": "CustomerContent", "purpose": "PerformanceAndHealth" },
"callstack": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"msg" : { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"file" : { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"line": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"column": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"name": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"count": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true }
}
*/
interface
ErrorEvent
{
interface
ErrorEvent
{
stack
:
string
;
call
stack
:
string
;
m
essage
?:
string
;
m
sg
?:
string
;
file
name
?:
string
;
file
?:
string
;
line
?:
number
;
line
?:
number
;
column
?:
number
;
column
?:
number
;
error
?:
{
name
:
string
;
message
:
string
;
};
name
?:
string
;
count
?:
number
;
count
?:
number
;
}
}
namespace
ErrorEvent
{
namespace
ErrorEvent
{
export
function
compare
(
a
:
ErrorEvent
,
b
:
ErrorEvent
)
{
export
function
compare
(
a
:
ErrorEvent
,
b
:
ErrorEvent
)
{
if
(
a
.
stack
<
b
.
stack
)
{
if
(
a
.
callstack
<
b
.
call
stack
)
{
return
-
1
;
return
-
1
;
}
else
if
(
a
.
stack
>
b
.
stack
)
{
}
else
if
(
a
.
callstack
>
b
.
call
stack
)
{
return
1
;
return
1
;
}
}
return
0
;
return
0
;
...
@@ -89,32 +102,35 @@ export default class ErrorTelemetry {
...
@@ -89,32 +102,35 @@ export default class ErrorTelemetry {
}
}
// work around behavior in workerServer.ts that breaks up Error.stack
// work around behavior in workerServer.ts that breaks up Error.stack
let
stack
=
Array
.
isArray
(
err
.
stack
)
?
err
.
stack
.
join
(
'
\n
'
)
:
err
.
stack
;
let
call
stack
=
Array
.
isArray
(
err
.
stack
)
?
err
.
stack
.
join
(
'
\n
'
)
:
err
.
stack
;
let
m
essage
=
err
.
message
?
err
.
message
:
safeStringify
(
err
);
let
m
sg
=
err
.
message
?
err
.
message
:
safeStringify
(
err
);
// errors without a stack are not useful telemetry
// errors without a stack are not useful telemetry
if
(
!
stack
)
{
if
(
!
call
stack
)
{
return
;
return
;
}
}
this
.
_enqueue
({
m
essage
,
stack
});
this
.
_enqueue
({
m
sg
,
call
stack
});
}
}
private
_onUncaughtError
(
m
essage
:
string
,
filenam
e
:
string
,
line
:
number
,
column
?:
number
,
err
?:
any
):
void
{
private
_onUncaughtError
(
m
sg
:
string
,
fil
e
:
string
,
line
:
number
,
column
?:
number
,
err
?:
any
):
void
{
let
data
:
ErrorEvent
=
{
let
data
:
ErrorEvent
=
{
stack
:
message
,
callstack
:
msg
,
m
essage
,
m
sg
,
file
name
,
file
,
line
,
line
,
column
column
};
};
if
(
err
)
{
if
(
err
)
{
let
{
name
,
message
,
stack
}
=
err
;
let
{
name
,
message
,
stack
}
=
err
;
data
.
error
=
{
name
,
message
};
data
.
name
=
name
;
if
(
message
)
{
data
.
msg
=
message
;
}
if
(
stack
)
{
if
(
stack
)
{
data
.
stack
=
Array
.
isArray
(
err
.
stack
)
data
.
call
stack
=
Array
.
isArray
(
err
.
stack
)
?
err
.
stack
=
err
.
stack
.
join
(
'
\n
'
)
?
err
.
stack
=
err
.
stack
.
join
(
'
\n
'
)
:
err
.
stack
;
:
err
.
stack
;
}
}
...
@@ -145,17 +161,9 @@ export default class ErrorTelemetry {
...
@@ -145,17 +161,9 @@ export default class ErrorTelemetry {
for
(
let
error
of
this
.
_buffer
)
{
for
(
let
error
of
this
.
_buffer
)
{
/* __GDPR__
/* __GDPR__
"UnhandledError" : {
"UnhandledError" : {
"filename" : { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"${include}": [ "${ErrorEvent}" ]
"message" : { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"name": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"stack": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"id": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth" },
"line": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"column": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true },
"count": { "classification": "CallstackOrException", "purpose": "PerformanceAndHealth", "isMeasurement": true }
}
}
*/
*/
// __GDPR__TODO__ what's the complete set of properties?
this
.
_telemetryService
.
publicLog
(
'
UnhandledError
'
,
error
);
this
.
_telemetryService
.
publicLog
(
'
UnhandledError
'
,
error
);
}
}
this
.
_buffer
.
length
=
0
;
this
.
_buffer
.
length
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录