tracer.js (2683B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */ 4 5 import { getSourceByActorId } from "./sources.js"; 6 const { 7 TRACER_FIELDS_INDEXES, 8 } = require("resource://devtools/server/actors/tracer.js"); 9 10 export function getSelectedTraceIndex(state) { 11 return state.tracerFrames?.selectedTraceIndex; 12 } 13 export function getSelectedTraceLocation(state) { 14 return state.tracerFrames?.selectedTraceLocation; 15 } 16 export function getFilteredTopTraces(state) { 17 return state.tracerFrames?.mutableFilteredTopTraces || []; 18 } 19 export function getAllTraces(state) { 20 return state.tracerFrames?.mutableTraces || []; 21 } 22 export function getTraceChildren(state) { 23 return state.tracerFrames?.mutableChildren || []; 24 } 25 export function getTraceParents(state) { 26 return state.tracerFrames?.mutableParents || []; 27 } 28 export function getTraceFrames(state) { 29 return state.tracerFrames?.mutableFrames || []; 30 } 31 export function getAllMutationTraces(state) { 32 return state.tracerFrames?.mutableMutationTraces || []; 33 } 34 export function getAllTraceCount(state) { 35 return state.tracerFrames?.mutableTraces.length || 0; 36 } 37 export function getRuntimeVersions(state) { 38 return { 39 localPlatformVersion: state.tracerFrames?.localPlatformVersion, 40 remotePlatformVersion: state.tracerFrames?.remotePlatformVersion, 41 }; 42 } 43 export function getTracerEventNames(state) { 44 return state.tracerFrames?.mutableEventNames; 45 } 46 export function getTraceDomEvent(state) { 47 return state.tracerFrames?.domEvents || new Set(); 48 } 49 export function getTraceHighlightedDomEvents(state) { 50 return state.tracerFrames?.highlightedDomEvents || []; 51 } 52 export function getSelectedTraceSource(state) { 53 const trace = getAllTraces(state)[getSelectedTraceIndex(state)]; 54 if (!trace) { 55 return null; 56 } 57 const frameIndex = trace[TRACER_FIELDS_INDEXES.FRAME_INDEX]; 58 const frames = getTraceFrames(state); 59 const frame = frames[frameIndex]; 60 if (!frame) { 61 return null; 62 } 63 return getSourceByActorId(state, frame.sourceId); 64 } 65 export function getTraceMatchingSearchTraces(state) { 66 return state.tracerFrames?.mutableMatchingTraces || []; 67 } 68 export function getTraceMatchingSearchException(state) { 69 return state.tracerFrames?.searchExceptionMessage || null; 70 } 71 export function getTraceMatchingSearchValueOrGrip(state) { 72 return state.tracerFrames?.searchValueOrGrip; 73 } 74 export function getIsTracingValues(state) { 75 return state.tracerFrames?.traceValues || false; 76 } 77 export function getSelectedLocationTraces(state) { 78 return state.tracerFrames?.selectedLocationTraces || null; 79 }