mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 00:35:44 +00:00
9679cb9dce
Stylo doesn't have a good equivalent for restyle hints to expose in markers and the ones exposed for Gecko aren't very accurate either, so we don't want to expose the restyle hint anymore. At the same time, several animation restyle tests currently use the hint inside the marker to check when animation-only restyles have happened. We can preserve this by changing the data inside the marker to be a flag for whether the restyle is animation only, which we know for both Gecko and Stylo. MozReview-Commit-ID: 8L8KU8Ush7P --HG-- extra : rebase_source : 4eef80653c1ef79ee1539d27fe6a70fbfaf441ad
75 lines
2.0 KiB
Plaintext
75 lines
2.0 KiB
Plaintext
/* -*- 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. */
|
|
boolean isAnimationOnly;
|
|
|
|
/* For MessagePort markers. */
|
|
ProfileTimelineMessagePortOperationType messagePortOperation;
|
|
|
|
/* For Worker markers. */
|
|
ProfileTimelineWorkerOperationType workerOperation;
|
|
};
|