1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
7 // For Javascript markers, the |stack| of a ProfileTimelineMarker
8 // holds an object of this type. It intentionally looks like a
9 // SavedStack object and is a representation of the frame that is
10 // about to be constructed at the entry point.
11 dictionary ProfileTimelineStackFrame {
15 DOMString functionDisplayName;
16 object? parent = null;
17 object? asyncParent = null;
21 dictionary ProfileTimelineLayerRect {
28 enum ProfileTimelineMessagePortOperationType {
33 enum ProfileTimelineWorkerOperationType {
34 "serializeDataOffMainThread",
35 "serializeDataOnMainThread",
36 "deserializeDataOffMainThread",
37 "deserializeDataOnMainThread",
40 dictionary ProfileTimelineMarker {
42 DOMHighResTimeStamp start = 0;
43 DOMHighResTimeStamp end = 0;
46 unsigned short processType;
47 boolean isOffMainThread;
49 /* For ConsoleTime, Timestamp and Javascript markers. */
52 /* For ConsoleTime markers. */
53 object? endStack = null;
55 /* For DOMEvent markers. */
57 unsigned short eventPhase;
59 /* For document::DOMContentLoaded and document::Load markers. Using this
60 * instead of the `start` and `end` timestamps is strongly discouraged. */
61 unsigned long long unixTime; // in microseconds
63 /* For Paint markers. */
64 sequence<ProfileTimelineLayerRect> rectangles;
66 /* For Style markers. */
67 boolean isAnimationOnly;
69 /* For MessagePort markers. */
70 ProfileTimelineMessagePortOperationType messagePortOperation;
72 /* For Worker markers. */
73 ProfileTimelineWorkerOperationType workerOperation;