1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const protocol = require("devtools/shared/protocol");
const { Arg, RetVal, Option, generateActorSpec } = protocol;
/**
* Type describing a single function call in a stack trace.
*/
protocol.types.addDictType("call-stack-item", {
name: "string",
file: "string",
line: "number"
});
/**
* Type describing an overview of a function call.
*/
protocol.types.addDictType("call-details", {
type: "number",
name: "string",
stack: "array:call-stack-item"
});
const functionCallSpec = generateActorSpec({
typeName: "function-call",
methods: {
getDetails: {
response: { info: RetVal("call-details") }
},
},
});
exports.functionCallSpec = functionCallSpec;
const callWatcherSpec = generateActorSpec({
typeName: "call-watcher",
events: {
/**
* Events emitted when the `onCall` function isn't provided.
*/
"call": {
type: "call",
function: Arg(0, "function-call")
}
},
methods: {
setup: {
request: {
tracedGlobals: Option(0, "nullable:array:string"),
tracedFunctions: Option(0, "nullable:array:string"),
startRecording: Option(0, "boolean"),
performReload: Option(0, "boolean"),
holdWeak: Option(0, "boolean"),
storeCalls: Option(0, "boolean")
},
oneway: true
},
finalize: {
oneway: true
},
isRecording: {
response: RetVal("boolean")
},
initTimestampEpoch: {},
resumeRecording: {},
pauseRecording: {
response: { calls: RetVal("array:function-call") }
},
eraseRecording: {},
}
});
exports.callWatcherSpec = callWatcherSpec;
|