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 [GenerateConversionToJS]
12 dictionary ProfileTimelineStackFrame {
16 DOMString functionDisplayName;
17 object? parent = null;
18 object? asyncParent = null;
22 dictionary ProfileTimelineLayerRect {
29 enum ProfileTimelineMessagePortOperationType {
34 enum ProfileTimelineWorkerOperationType {
35 "serializeDataOffMainThread",
36 "serializeDataOnMainThread",
37 "deserializeDataOffMainThread",
38 "deserializeDataOnMainThread",
41 [GenerateConversionToJS]
42 dictionary ProfileTimelineMarker {
44 DOMHighResTimeStamp start = 0;
45 DOMHighResTimeStamp end = 0;
48 unsigned short processType;
49 boolean isOffMainThread;
51 /* For ConsoleTime, Timestamp and Javascript markers. */
54 /* For ConsoleTime markers. */
55 object? endStack = null;
57 /* For DOMEvent markers. */
59 unsigned short eventPhase;
61 /* For document::DOMContentLoaded and document::Load markers. Using this
62 * instead of the `start` and `end` timestamps is strongly discouraged. */
63 unsigned long long unixTime; // in microseconds
65 /* For Paint markers. */
66 sequence<ProfileTimelineLayerRect> rectangles;
68 /* For Style markers. */
69 boolean isAnimationOnly;
71 /* For MessagePort markers. */
72 ProfileTimelineMessagePortOperationType messagePortOperation;
74 /* For Worker markers. */
75 ProfileTimelineWorkerOperationType workerOperation;