/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */ // For Javascript markers, the |stack| of a ProfileTimelineMarker // holds an object of this type. It intentionally looks like a // SavedStack object and is a representation of the frame that is // about to be constructed at the entry point. dictionary ProfileTimelineStackFrame { long line; long column = 0; DOMString source; DOMString functionDisplayName; object? parent = null; object? asyncParent = null; DOMString asyncCause; }; dictionary ProfileTimelineLayerRect { long x = 0; long y = 0; long width = 0; long height = 0; }; enum ProfileTimelineMessagePortOperationType { "serializeData", "deserializeData", }; enum ProfileTimelineWorkerOperationType { "serializeDataOffMainThread", "serializeDataOnMainThread", "deserializeDataOffMainThread", "deserializeDataOnMainThread", }; dictionary ProfileTimelineMarker { DOMString name = ""; DOMHighResTimeStamp start = 0; DOMHighResTimeStamp end = 0; object? stack = null; unsigned short processType; boolean isOffMainThread; /* For ConsoleTime, Timestamp and Javascript markers. */ DOMString causeName; /* For ConsoleTime markers. */ object? endStack = null; /* For DOMEvent markers. */ DOMString type; unsigned short eventPhase; /* For document::DOMContentLoaded and document::Load markers. Using this * instead of the `start` and `end` timestamps is strongly discouraged. */ unsigned long long unixTime; // in microseconds /* For Paint markers. */ sequence<ProfileTimelineLayerRect> rectangles; /* For Style markers. */ DOMString restyleHint; /* For MessagePort markers. */ ProfileTimelineMessagePortOperationType messagePortOperation; /* For Worker markers. */ ProfileTimelineWorkerOperationType workerOperation; };