119 lines
2.5 KiB
JavaScript
119 lines
2.5 KiB
JavaScript
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = void 0;
|
||
|
function _chromeTraceEvent() {
|
||
|
const data = require("chrome-trace-event");
|
||
|
_chromeTraceEvent = function () {
|
||
|
return data;
|
||
|
};
|
||
|
return data;
|
||
|
}
|
||
|
class Trace {
|
||
|
constructor() {
|
||
|
this.tracer = new (_chromeTraceEvent().Tracer)();
|
||
|
this.tid = 0;
|
||
|
this.eventId = 0;
|
||
|
}
|
||
|
getEventId() {
|
||
|
return this.eventId++;
|
||
|
}
|
||
|
init(ts) {
|
||
|
this.tracer.instantEvent({
|
||
|
name: 'TracingStartedInPage',
|
||
|
id: this.getEventId(),
|
||
|
ts,
|
||
|
cat: ['disabled-by-default-devtools.timeline'],
|
||
|
args: {
|
||
|
data: {
|
||
|
sessionId: '-1',
|
||
|
page: '0xfff',
|
||
|
frames: [{
|
||
|
frame: '0xfff',
|
||
|
url: 'parcel',
|
||
|
name: ''
|
||
|
}]
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
this.tracer.instantEvent({
|
||
|
name: 'TracingStartedInBrowser',
|
||
|
id: this.getEventId(),
|
||
|
ts,
|
||
|
cat: ['disabled-by-default-devtools.timeline'],
|
||
|
args: {
|
||
|
data: {
|
||
|
sessionId: '-1'
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
addCPUProfile(name, profile) {
|
||
|
if (this.eventId === 0) {
|
||
|
this.init(profile.startTime);
|
||
|
}
|
||
|
const trace = this.tracer;
|
||
|
const tid = this.tid;
|
||
|
this.tid++;
|
||
|
const cpuStartTime = profile.startTime;
|
||
|
const cpuEndTime = profile.endTime;
|
||
|
trace.instantEvent({
|
||
|
tid,
|
||
|
id: this.getEventId(),
|
||
|
cat: ['toplevel'],
|
||
|
name: 'TaskQueueManager::ProcessTaskFromWorkQueue',
|
||
|
args: {
|
||
|
src_file: '../../ipc/ipc_moji_bootstrap.cc',
|
||
|
src_func: 'Accept'
|
||
|
},
|
||
|
ts: cpuStartTime
|
||
|
});
|
||
|
trace.completeEvent({
|
||
|
tid,
|
||
|
name: 'EvaluateScript',
|
||
|
id: this.getEventId(),
|
||
|
cat: ['devtools.timeline'],
|
||
|
ts: cpuStartTime,
|
||
|
dur: cpuEndTime - cpuStartTime,
|
||
|
args: {
|
||
|
data: {
|
||
|
url: 'parcel',
|
||
|
lineNumber: 1,
|
||
|
columnNumber: 1,
|
||
|
frame: '0xFFF'
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
trace.instantEvent({
|
||
|
tid,
|
||
|
ts: 0,
|
||
|
ph: 'M',
|
||
|
cat: ['__metadata'],
|
||
|
name: 'thread_name',
|
||
|
args: {
|
||
|
name
|
||
|
}
|
||
|
});
|
||
|
trace.instantEvent({
|
||
|
tid,
|
||
|
name: 'CpuProfile',
|
||
|
id: this.getEventId(),
|
||
|
cat: ['disabled-by-default-devtools.timeline'],
|
||
|
ts: cpuEndTime,
|
||
|
args: {
|
||
|
data: {
|
||
|
cpuProfile: profile
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
pipe(writable) {
|
||
|
return this.tracer.pipe(writable);
|
||
|
}
|
||
|
flush() {
|
||
|
this.tracer.push(null);
|
||
|
}
|
||
|
}
|
||
|
exports.default = Trace;
|