Source code

Revision control

Copy as Markdown

Other Tools

/* 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/>. */
import { getSourceByActorId } from "./sources.js";
const {
TRACER_FIELDS_INDEXES,
} = require("resource://devtools/server/actors/tracer.js");
export function getSelectedTraceIndex(state) {
return state.tracerFrames?.selectedTraceIndex;
}
export function getFilteredTopTraces(state) {
return state.tracerFrames?.mutableFilteredTopTraces || [];
}
export function getAllTraces(state) {
return state.tracerFrames?.mutableTraces || [];
}
export function getTraceChildren(state) {
return state.tracerFrames?.mutableChildren || [];
}
export function getTraceParents(state) {
return state.tracerFrames?.mutableParents || [];
}
export function getTraceFrames(state) {
return state.tracerFrames?.mutableFrames || [];
}
export function getAllMutationTraces(state) {
return state.tracerFrames?.mutableMutationTraces || [];
}
export function getAllTraceCount(state) {
return state.tracerFrames?.mutableTraces.length || 0;
}
export function getRuntimeVersions(state) {
return {
localPlatformVersion: state.tracerFrames?.localPlatformVersion,
remotePlatformVersion: state.tracerFrames?.remotePlatformVersion,
};
}
export function getTracerEventNames(state) {
return state.tracerFrames?.mutableEventNames;
}
export function getTraceDomEvent(state) {
return state.tracerFrames?.domEvents || new Set();
}
export function getTraceHighlightedDomEvents(state) {
return state.tracerFrames?.highlightedDomEvents || [];
}
export function getSelectedTraceSource(state) {
const trace = getAllTraces(state)[getSelectedTraceIndex(state)];
if (!trace) {
return null;
}
const frameIndex = trace[TRACER_FIELDS_INDEXES.FRAME_INDEX];
const frames = getTraceFrames(state);
const frame = frames[frameIndex];
if (!frame) {
return null;
}
return getSourceByActorId(state, frame.sourceId);
}
export function getTraceMatchingSearchTraces(state) {
return state.tracerFrames?.mutableMatchingTraces || [];
}
export function getTraceMatchingSearchException(state) {
return state.tracerFrames?.searchExceptionMessage || null;
}
export function getTraceMatchingSearchValueOrGrip(state) {
return state.tracerFrames?.searchValueOrGrip;
}
export function getIsTracingValues(state) {
return state.tracerFrames?.traceValues || false;
}