Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM ProfileTimelineMarker.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_ProfileTimelineMarkerBinding_h
4 : #define mozilla_dom_ProfileTimelineMarkerBinding_h
5 :
6 : #include "js/RootingAPI.h"
7 : #include "jspubtd.h"
8 : #include "mozilla/ErrorResult.h"
9 : #include "mozilla/dom/BindingDeclarations.h"
10 : #include "mozilla/dom/Nullable.h"
11 :
12 : namespace mozilla {
13 : namespace dom {
14 :
15 : struct NativePropertyHooks;
16 : struct ProfileTimelineLayerRect;
17 : struct ProfileTimelineLayerRectAtoms;
18 : struct ProfileTimelineMarkerAtoms;
19 : struct ProfileTimelineStackFrameAtoms;
20 : class ProtoAndIfaceCache;
21 :
22 : } // namespace dom
23 : } // namespace mozilla
24 :
25 : namespace mozilla {
26 : namespace dom {
27 :
28 : enum class ProfileTimelineMessagePortOperationType : uint8_t {
29 : SerializeData,
30 : DeserializeData,
31 : EndGuard_
32 : };
33 :
34 : namespace ProfileTimelineMessagePortOperationTypeValues {
35 : extern const EnumEntry strings[3];
36 : } // namespace ProfileTimelineMessagePortOperationTypeValues
37 :
38 : bool
39 : ToJSValue(JSContext* aCx, ProfileTimelineMessagePortOperationType aArgument, JS::MutableHandle<JS::Value> aValue);
40 :
41 :
42 : enum class ProfileTimelineWorkerOperationType : uint8_t {
43 : SerializeDataOffMainThread,
44 : SerializeDataOnMainThread,
45 : DeserializeDataOffMainThread,
46 : DeserializeDataOnMainThread,
47 : EndGuard_
48 : };
49 :
50 : namespace ProfileTimelineWorkerOperationTypeValues {
51 : extern const EnumEntry strings[5];
52 : } // namespace ProfileTimelineWorkerOperationTypeValues
53 :
54 : bool
55 : ToJSValue(JSContext* aCx, ProfileTimelineWorkerOperationType aArgument, JS::MutableHandle<JS::Value> aValue);
56 :
57 :
58 : struct ProfileTimelineLayerRect : public DictionaryBase
59 : {
60 : MOZ_INIT_OUTSIDE_CTOR int32_t mHeight;
61 : MOZ_INIT_OUTSIDE_CTOR int32_t mWidth;
62 : MOZ_INIT_OUTSIDE_CTOR int32_t mX;
63 : MOZ_INIT_OUTSIDE_CTOR int32_t mY;
64 :
65 : ProfileTimelineLayerRect();
66 :
67 : explicit inline ProfileTimelineLayerRect(const FastDictionaryInitializer& )
68 : {
69 : // Do nothing here; this is used by our "Fast" subclass
70 : }
71 :
72 0 : explicit inline ProfileTimelineLayerRect(const ProfileTimelineLayerRect& aOther)
73 0 : {
74 0 : *this = aOther;
75 0 : }
76 :
77 : bool
78 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
79 :
80 : bool
81 : Init(const nsAString& aJSON);
82 :
83 : bool
84 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
85 :
86 : bool
87 : ToJSON(nsAString& aJSON) const;
88 :
89 : void
90 : TraceDictionary(JSTracer* trc);
91 :
92 : ProfileTimelineLayerRect&
93 : operator=(const ProfileTimelineLayerRect& aOther);
94 :
95 : private:
96 : static bool
97 : InitIds(JSContext* cx, ProfileTimelineLayerRectAtoms* atomsCache);
98 : };
99 :
100 : namespace binding_detail {
101 : struct FastProfileTimelineLayerRect : public ProfileTimelineLayerRect
102 : {
103 : inline FastProfileTimelineLayerRect()
104 : : ProfileTimelineLayerRect(FastDictionaryInitializer())
105 : {
106 : // Doesn't matter what int we pass to the parent constructor
107 : }
108 : };
109 : } // namespace binding_detail
110 :
111 :
112 0 : struct ProfileTimelineStackFrame : public DictionaryBase
113 : {
114 : MOZ_INIT_OUTSIDE_CTOR Optional<nsString> mAsyncCause;
115 : MOZ_INIT_OUTSIDE_CTOR JSObject* mAsyncParent;
116 : MOZ_INIT_OUTSIDE_CTOR int32_t mColumn;
117 : MOZ_INIT_OUTSIDE_CTOR Optional<nsString> mFunctionDisplayName;
118 : MOZ_INIT_OUTSIDE_CTOR Optional<int32_t> mLine;
119 : MOZ_INIT_OUTSIDE_CTOR JSObject* mParent;
120 : MOZ_INIT_OUTSIDE_CTOR Optional<nsString> mSource;
121 :
122 : ProfileTimelineStackFrame();
123 :
124 : explicit inline ProfileTimelineStackFrame(const FastDictionaryInitializer& )
125 : : mAsyncParent(nullptr),
126 : mParent(nullptr)
127 : {
128 : // Do nothing here; this is used by our "Fast" subclass
129 : }
130 :
131 : private:
132 : ProfileTimelineStackFrame(const ProfileTimelineStackFrame&) = delete;
133 : ProfileTimelineStackFrame& operator=(const ProfileTimelineStackFrame&) = delete;
134 :
135 : static bool
136 : InitIds(JSContext* cx, ProfileTimelineStackFrameAtoms* atomsCache);
137 :
138 : public:
139 : bool
140 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
141 :
142 : bool
143 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
144 :
145 : void
146 : TraceDictionary(JSTracer* trc);
147 : };
148 :
149 : namespace binding_detail {
150 : struct FastProfileTimelineStackFrame : public ProfileTimelineStackFrame
151 : {
152 : inline FastProfileTimelineStackFrame()
153 : : ProfileTimelineStackFrame(FastDictionaryInitializer())
154 : {
155 : // Doesn't matter what int we pass to the parent constructor
156 : }
157 : };
158 : } // namespace binding_detail
159 :
160 :
161 0 : struct ProfileTimelineMarker : public DictionaryBase
162 : {
163 : MOZ_INIT_OUTSIDE_CTOR Optional<nsString> mCauseName;
164 : MOZ_INIT_OUTSIDE_CTOR double mEnd;
165 : MOZ_INIT_OUTSIDE_CTOR JSObject* mEndStack;
166 : MOZ_INIT_OUTSIDE_CTOR Optional<uint16_t> mEventPhase;
167 : MOZ_INIT_OUTSIDE_CTOR Optional<bool> mIsAnimationOnly;
168 : MOZ_INIT_OUTSIDE_CTOR Optional<bool> mIsOffMainThread;
169 : MOZ_INIT_OUTSIDE_CTOR Optional<ProfileTimelineMessagePortOperationType> mMessagePortOperation;
170 : MOZ_INIT_OUTSIDE_CTOR nsString mName;
171 : MOZ_INIT_OUTSIDE_CTOR Optional<uint16_t> mProcessType;
172 : MOZ_INIT_OUTSIDE_CTOR Optional<Sequence<ProfileTimelineLayerRect>> mRectangles;
173 : MOZ_INIT_OUTSIDE_CTOR JSObject* mStack;
174 : MOZ_INIT_OUTSIDE_CTOR double mStart;
175 : MOZ_INIT_OUTSIDE_CTOR Optional<nsString> mType;
176 : MOZ_INIT_OUTSIDE_CTOR Optional<uint64_t> mUnixTime;
177 : MOZ_INIT_OUTSIDE_CTOR Optional<ProfileTimelineWorkerOperationType> mWorkerOperation;
178 :
179 : ProfileTimelineMarker();
180 :
181 : explicit inline ProfileTimelineMarker(const FastDictionaryInitializer& )
182 : : mEndStack(nullptr),
183 : mStack(nullptr)
184 : {
185 : // Do nothing here; this is used by our "Fast" subclass
186 : }
187 :
188 : private:
189 : ProfileTimelineMarker(const ProfileTimelineMarker&) = delete;
190 : ProfileTimelineMarker& operator=(const ProfileTimelineMarker&) = delete;
191 :
192 : static bool
193 : InitIds(JSContext* cx, ProfileTimelineMarkerAtoms* atomsCache);
194 :
195 : public:
196 : bool
197 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
198 :
199 : bool
200 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
201 :
202 : void
203 : TraceDictionary(JSTracer* trc);
204 : };
205 :
206 : namespace binding_detail {
207 : struct FastProfileTimelineMarker : public ProfileTimelineMarker
208 : {
209 : inline FastProfileTimelineMarker()
210 : : ProfileTimelineMarker(FastDictionaryInitializer())
211 : {
212 : // Doesn't matter what int we pass to the parent constructor
213 : }
214 : };
215 : } // namespace binding_detail
216 :
217 :
218 : } // namespace dom
219 : } // namespace mozilla
220 :
221 : #endif // mozilla_dom_ProfileTimelineMarkerBinding_h
|