forked from firefox-devtools/debugger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevents.js
More file actions
123 lines (100 loc) · 2.37 KB
/
events.js
File metadata and controls
123 lines (100 loc) · 2.37 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* 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/>. */
// @flow
import { createFrame, createLoadedObject } from "./create";
import sourceQueue from "../../utils/source-queue";
let actions;
let pageAgent;
let clientType;
let runtimeAgent;
function setupEvents(dependencies: any) {
actions = dependencies.actions;
pageAgent = dependencies.Page;
clientType = dependencies.clientType;
runtimeAgent = dependencies.Runtime;
sourceQueue.initialize(actions);
}
// Debugger Events
function scriptParsed({
scriptId,
url,
startLine,
startColumn,
endLine,
endColumn,
executionContextId,
hash,
isContentScript,
isInternalScript,
isLiveEdit,
sourceMapURL,
hasSourceURL,
deprecatedCommentWasUsed
}: any) {
if (isContentScript) {
return;
}
if (clientType == "node") {
sourceMapURL = undefined;
}
actions.newSource({
id: scriptId,
url,
sourceMapURL,
isPrettyPrinted: false
});
}
function scriptFailedToParse() {}
async function paused({
callFrames,
reason,
data,
hitBreakpoints,
asyncStackTrace
}: any) {
const frames = callFrames.map(createFrame);
const frame = frames[0];
const why = { type: reason, ...data };
const objectId = frame.scopeChain[0].object.objectId;
const { result } = await runtimeAgent.getProperties({
objectId
});
const loadedObjects = result.map(createLoadedObject);
if (clientType == "chrome") {
pageAgent.configureOverlay({ message: "Paused in debugger.html" });
}
await actions.paused({ thread: "root", frame, why, frames, loadedObjects });
}
function resumed() {
if (clientType == "chrome") {
pageAgent.configureOverlay({ suspended: false });
}
actions.resumed();
}
function globalObjectCleared() {}
// Page Events
function frameNavigated(frame: any) {
actions.navigated();
}
function frameStartedLoading() {
actions.willNavigate();
}
function domContentEventFired() {}
function loadEventFired() {}
function frameStoppedLoading() {}
const clientEvents = {
scriptParsed,
scriptFailedToParse,
paused,
resumed,
globalObjectCleared
};
const pageEvents = {
frameNavigated,
frameStartedLoading,
domContentEventFired,
loadEventFired,
frameStoppedLoading
};
export { setupEvents, pageEvents, clientEvents };