@dyno-cloud/schema 0.0.0-stage → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/json/budget.schema.json +239 -0
- package/json/catalogue.schema.json +2217 -0
- package/json/compare.schema.json +823 -0
- package/json/devices.json +399 -0
- package/json/doctor.schema.json +144 -0
- package/json/driver-message.schema.json +912 -0
- package/json/dyno-toml.schema.json +80 -0
- package/json/exposure-checkpoint.schema.json +97 -0
- package/json/games.schema.json +66 -0
- package/json/library-bucket.schema.json +22 -0
- package/json/library.schema.json +19 -0
- package/json/measures.json +407 -0
- package/json/probe-event.schema.json +465 -0
- package/json/result.schema.json +2140 -0
- package/json/run-request.schema.json +161 -0
- package/json/unclean-exit.schema.json +99 -0
- package/package.json +22 -4
- package/ts/AssetChange.ts +8 -0
- package/ts/AssetChangeKind.ts +6 -0
- package/ts/AssignedRole.ts +7 -0
- package/ts/AudioState.ts +6 -0
- package/ts/BrowserEngine.ts +6 -0
- package/ts/BudgetId.ts +6 -0
- package/ts/BudgetLimit.ts +8 -0
- package/ts/BudgetRef.ts +15 -0
- package/ts/BudgetVerdict.ts +22 -0
- package/ts/BuildLink.ts +6 -0
- package/ts/BuildManifest.ts +17 -0
- package/ts/CatalogueEntry.ts +7 -0
- package/ts/CatalogueResult.ts +22 -0
- package/ts/CheckResult.ts +16 -0
- package/ts/CompareDeterministic.ts +42 -0
- package/ts/CompareResult.ts +12 -0
- package/ts/CompareRun.ts +17 -0
- package/ts/ContextKind.ts +6 -0
- package/ts/Covers.ts +6 -0
- package/ts/Deterministic.ts +35 -0
- package/ts/DeviceClass.ts +6 -0
- package/ts/DeviceEntry.ts +25 -0
- package/ts/DeviceKind.ts +6 -0
- package/ts/DoctorCheck.ts +16 -0
- package/ts/DoctorCheckId.ts +6 -0
- package/ts/DoctorReport.ts +20 -0
- package/ts/DriverInfo.ts +10 -0
- package/ts/DriverMessage.ts +37 -0
- package/ts/Environment.ts +13 -0
- package/ts/EnvironmentBrowser.ts +23 -0
- package/ts/EnvironmentDevice.ts +27 -0
- package/ts/EnvironmentOs.ts +12 -0
- package/ts/Evidence.ts +11 -0
- package/ts/ExposureCheckpoint.ts +9 -0
- package/ts/ExposureSample.ts +15 -0
- package/ts/FileKind.ts +6 -0
- package/ts/Finding.ts +29 -0
- package/ts/Fix.ts +22 -0
- package/ts/FixAction.ts +7 -0
- package/ts/FrameState.ts +6 -0
- package/ts/GameHookKind.ts +6 -0
- package/ts/HostProfile.ts +47 -0
- package/ts/Inputs.ts +34 -0
- package/ts/Library.ts +6 -0
- package/ts/LibraryBucket.ts +6 -0
- package/ts/LiveFrame.ts +19 -0
- package/ts/Machine.ts +14 -0
- package/ts/ManifestFile.ts +12 -0
- package/ts/Measure.ts +50 -0
- package/ts/MeasureChange.ts +14 -0
- package/ts/MeasureEntry.ts +13 -0
- package/ts/MeasureId.ts +6 -0
- package/ts/MeasureItem.ts +15 -0
- package/ts/MeasureStatus.ts +6 -0
- package/ts/MeasureValue.ts +7 -0
- package/ts/MemorySample.ts +24 -0
- package/ts/MessageDirection.ts +6 -0
- package/ts/Method.ts +6 -0
- package/ts/OsName.ts +6 -0
- package/ts/ProbeEvent.ts +48 -0
- package/ts/ProcessMemory.ts +22 -0
- package/ts/ProcessRole.ts +6 -0
- package/ts/ProfileRef.ts +6 -0
- package/ts/Quantity.ts +7 -0
- package/ts/RelPath.ts +9 -0
- package/ts/Release.ts +12 -0
- package/ts/ResultRef.ts +15 -0
- package/ts/RuleId.ts +6 -0
- package/ts/RunCoverage.ts +8 -0
- package/ts/RunInfo.ts +56 -0
- package/ts/RunMark.ts +6 -0
- package/ts/RunRequest.ts +24 -0
- package/ts/Scenario.ts +6 -0
- package/ts/Scope.ts +12 -0
- package/ts/Severity.ts +6 -0
- package/ts/Shard.ts +17 -0
- package/ts/Source.ts +6 -0
- package/ts/SourceKind.ts +7 -0
- package/ts/Statistic.ts +7 -0
- package/ts/Status.ts +9 -0
- package/ts/Target.ts +15 -0
- package/ts/Tier.ts +9 -0
- package/ts/TierReport.ts +26 -0
- package/ts/Timeline.ts +21 -0
- package/ts/TimelineMark.ts +11 -0
- package/ts/TimelineMethod.ts +6 -0
- package/ts/TimelineProcess.ts +22 -0
- package/ts/ToolBuild.ts +14 -0
- package/ts/Uncertainty.ts +19 -0
- package/ts/UncertaintyKind.ts +6 -0
- package/ts/UncleanExit.ts +16 -0
- package/ts/Unit.ts +6 -0
- package/ts/Verdict.ts +6 -0
- package/ts/VerdictChange.ts +12 -0
- package/ts/Versions.ts +22 -0
- package/ts/Viewport.ts +6 -0
- package/ts/index.ts +97 -0
- package/README.md +0 -3
|
@@ -0,0 +1,912 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "DriverMessage",
|
|
4
|
+
"description": "One line from a driver. `t_ms` is the time since the driver started the navigation.\n\nThere are two clocks. A driver message's `t_ms` is on the driver's clock. A probe event's\n`t_ms` is `performance.now()` in the game frame, which starts at a different moment.",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"description": "The first line: the driver and the protocol version it speaks.",
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"driver": {
|
|
11
|
+
"$ref": "#/$defs/DriverInfo"
|
|
12
|
+
},
|
|
13
|
+
"protocol_version": {
|
|
14
|
+
"type": "integer",
|
|
15
|
+
"format": "uint32",
|
|
16
|
+
"minimum": 0
|
|
17
|
+
},
|
|
18
|
+
"type": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"const": "hello"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"required": [
|
|
24
|
+
"type",
|
|
25
|
+
"protocol_version",
|
|
26
|
+
"driver"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"description": "One event from the probe in the game frame. The event keeps the frame's own clock.",
|
|
31
|
+
"type": "object",
|
|
32
|
+
"properties": {
|
|
33
|
+
"event": {
|
|
34
|
+
"$ref": "#/$defs/ProbeEvent"
|
|
35
|
+
},
|
|
36
|
+
"type": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"const": "probe"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": [
|
|
42
|
+
"type",
|
|
43
|
+
"event"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"description": "One finished request on the game frame's own session.",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"bytes": {
|
|
51
|
+
"description": "Bytes received over the network for this request.",
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"format": "uint64",
|
|
54
|
+
"minimum": 0
|
|
55
|
+
},
|
|
56
|
+
"mime_type": {
|
|
57
|
+
"description": "The response's MIME type. Null when it had none.",
|
|
58
|
+
"type": [
|
|
59
|
+
"string",
|
|
60
|
+
"null"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"t_ms": {
|
|
64
|
+
"type": "number",
|
|
65
|
+
"format": "double"
|
|
66
|
+
},
|
|
67
|
+
"type": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"const": "request"
|
|
70
|
+
},
|
|
71
|
+
"url": {
|
|
72
|
+
"type": "string"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"type",
|
|
77
|
+
"url",
|
|
78
|
+
"bytes",
|
|
79
|
+
"t_ms"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"description": "The game frame's JS heap in use.",
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"t_ms": {
|
|
87
|
+
"type": "number",
|
|
88
|
+
"format": "double"
|
|
89
|
+
},
|
|
90
|
+
"type": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"const": "heap"
|
|
93
|
+
},
|
|
94
|
+
"used_bytes": {
|
|
95
|
+
"type": "integer",
|
|
96
|
+
"format": "uint64",
|
|
97
|
+
"minimum": 0
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"required": [
|
|
101
|
+
"type",
|
|
102
|
+
"used_bytes",
|
|
103
|
+
"t_ms"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"description": "Self-check readings from inside the game frame.",
|
|
108
|
+
"type": "object",
|
|
109
|
+
"properties": {
|
|
110
|
+
"device_pixel_ratio": {
|
|
111
|
+
"type": "number",
|
|
112
|
+
"format": "double"
|
|
113
|
+
},
|
|
114
|
+
"frame_clock_at_ms": {
|
|
115
|
+
"description": "When the game frame's document clock started, on the driver's clock: a probe event\nat frame time `t` happened at `t + frame_clock_at_ms` after the navigation. Null from\na driver that does not read it.",
|
|
116
|
+
"type": [
|
|
117
|
+
"number",
|
|
118
|
+
"null"
|
|
119
|
+
],
|
|
120
|
+
"format": "double",
|
|
121
|
+
"default": null
|
|
122
|
+
},
|
|
123
|
+
"t_ms": {
|
|
124
|
+
"type": "number",
|
|
125
|
+
"format": "double"
|
|
126
|
+
},
|
|
127
|
+
"type": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"const": "self_check"
|
|
130
|
+
},
|
|
131
|
+
"webgl_renderer": {
|
|
132
|
+
"description": "The unmasked WebGL renderer. Null when WebGL is off.",
|
|
133
|
+
"type": [
|
|
134
|
+
"string",
|
|
135
|
+
"null"
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"required": [
|
|
140
|
+
"type",
|
|
141
|
+
"device_pixel_ratio",
|
|
142
|
+
"t_ms"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"description": "A step in the run.",
|
|
147
|
+
"type": "object",
|
|
148
|
+
"properties": {
|
|
149
|
+
"mark": {
|
|
150
|
+
"$ref": "#/$defs/RunMark"
|
|
151
|
+
},
|
|
152
|
+
"t_ms": {
|
|
153
|
+
"type": "number",
|
|
154
|
+
"format": "double"
|
|
155
|
+
},
|
|
156
|
+
"type": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"const": "mark"
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"required": [
|
|
162
|
+
"type",
|
|
163
|
+
"mark",
|
|
164
|
+
"t_ms"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"description": "The memory of every browser process at one moment, read from the OS. A driver that cannot\nread it sends none.",
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {
|
|
171
|
+
"every_ms": {
|
|
172
|
+
"description": "The time between samples that the driver asked for.",
|
|
173
|
+
"type": "integer",
|
|
174
|
+
"format": "uint32",
|
|
175
|
+
"minimum": 0
|
|
176
|
+
},
|
|
177
|
+
"method": {
|
|
178
|
+
"$ref": "#/$defs/TimelineMethod"
|
|
179
|
+
},
|
|
180
|
+
"processes": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": {
|
|
183
|
+
"$ref": "#/$defs/ProcessMemory"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"t_ms": {
|
|
187
|
+
"type": "number",
|
|
188
|
+
"format": "double"
|
|
189
|
+
},
|
|
190
|
+
"type": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"const": "memory"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"required": [
|
|
196
|
+
"type",
|
|
197
|
+
"method",
|
|
198
|
+
"every_ms",
|
|
199
|
+
"processes",
|
|
200
|
+
"t_ms"
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"description": "The part that each named process plays in the run, as far as the driver knows. A later\n`roles` message overrides an earlier one for the same process. A process that no message\nnames is `other`.",
|
|
205
|
+
"type": "object",
|
|
206
|
+
"properties": {
|
|
207
|
+
"roles": {
|
|
208
|
+
"type": "array",
|
|
209
|
+
"items": {
|
|
210
|
+
"$ref": "#/$defs/AssignedRole"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"t_ms": {
|
|
214
|
+
"type": "number",
|
|
215
|
+
"format": "double"
|
|
216
|
+
},
|
|
217
|
+
"type": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"const": "roles"
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"required": [
|
|
223
|
+
"type",
|
|
224
|
+
"roles",
|
|
225
|
+
"t_ms"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"description": "The last line of a run that finished.",
|
|
230
|
+
"type": "object",
|
|
231
|
+
"properties": {
|
|
232
|
+
"t_ms": {
|
|
233
|
+
"type": "number",
|
|
234
|
+
"format": "double"
|
|
235
|
+
},
|
|
236
|
+
"type": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"const": "done"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"required": [
|
|
242
|
+
"type",
|
|
243
|
+
"t_ms"
|
|
244
|
+
]
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"description": "The last line of a run that failed.",
|
|
248
|
+
"type": "object",
|
|
249
|
+
"properties": {
|
|
250
|
+
"message": {
|
|
251
|
+
"type": "string"
|
|
252
|
+
},
|
|
253
|
+
"t_ms": {
|
|
254
|
+
"type": "number",
|
|
255
|
+
"format": "double"
|
|
256
|
+
},
|
|
257
|
+
"type": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"const": "error"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": [
|
|
263
|
+
"type",
|
|
264
|
+
"message",
|
|
265
|
+
"t_ms"
|
|
266
|
+
]
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
"$defs": {
|
|
270
|
+
"AssignedRole": {
|
|
271
|
+
"description": "One process's part in a `roles` message.",
|
|
272
|
+
"type": "object",
|
|
273
|
+
"properties": {
|
|
274
|
+
"pid": {
|
|
275
|
+
"type": "integer",
|
|
276
|
+
"format": "uint32",
|
|
277
|
+
"minimum": 0
|
|
278
|
+
},
|
|
279
|
+
"role": {
|
|
280
|
+
"$ref": "#/$defs/ProcessRole"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"required": [
|
|
284
|
+
"pid",
|
|
285
|
+
"role"
|
|
286
|
+
]
|
|
287
|
+
},
|
|
288
|
+
"AudioState": {
|
|
289
|
+
"description": "An audio context's state.",
|
|
290
|
+
"type": "string",
|
|
291
|
+
"enum": [
|
|
292
|
+
"running",
|
|
293
|
+
"suspended",
|
|
294
|
+
"closed"
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
"ContextKind": {
|
|
298
|
+
"description": "A canvas rendering context's kind.",
|
|
299
|
+
"type": "string",
|
|
300
|
+
"enum": [
|
|
301
|
+
"webgl",
|
|
302
|
+
"webgl2",
|
|
303
|
+
"webgpu",
|
|
304
|
+
"canvas2d"
|
|
305
|
+
]
|
|
306
|
+
},
|
|
307
|
+
"DriverInfo": {
|
|
308
|
+
"description": "The browser driver behind a run: the Rust CDP driver, or a fallback subprocess.",
|
|
309
|
+
"type": "object",
|
|
310
|
+
"properties": {
|
|
311
|
+
"browser": {
|
|
312
|
+
"description": "The browser and its version, such as \"Chromium 140.0.7339.0\".",
|
|
313
|
+
"type": [
|
|
314
|
+
"string",
|
|
315
|
+
"null"
|
|
316
|
+
]
|
|
317
|
+
},
|
|
318
|
+
"name": {
|
|
319
|
+
"type": "string"
|
|
320
|
+
},
|
|
321
|
+
"version": {
|
|
322
|
+
"type": "string"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"name",
|
|
327
|
+
"version"
|
|
328
|
+
]
|
|
329
|
+
},
|
|
330
|
+
"GameHookKind": {
|
|
331
|
+
"description": "An optional game hook.",
|
|
332
|
+
"oneOf": [
|
|
333
|
+
{
|
|
334
|
+
"type": "string",
|
|
335
|
+
"enum": [
|
|
336
|
+
"spin_start",
|
|
337
|
+
"round_settled"
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"description": "The game can take a spin. Bytes to playable stop here.",
|
|
342
|
+
"type": "string",
|
|
343
|
+
"const": "playable"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"description": "The game moved to a new phase, named in `detail`.",
|
|
347
|
+
"type": "string",
|
|
348
|
+
"const": "game_phase"
|
|
349
|
+
}
|
|
350
|
+
]
|
|
351
|
+
},
|
|
352
|
+
"MessageDirection": {
|
|
353
|
+
"description": "Which way a host message went.",
|
|
354
|
+
"type": "string",
|
|
355
|
+
"enum": [
|
|
356
|
+
"to_host",
|
|
357
|
+
"from_host"
|
|
358
|
+
]
|
|
359
|
+
},
|
|
360
|
+
"ProbeEvent": {
|
|
361
|
+
"description": "One probe event. `t_ms` is `performance.now()` in the game frame.",
|
|
362
|
+
"oneOf": [
|
|
363
|
+
{
|
|
364
|
+
"description": "The first `requestAnimationFrame` callback ran.",
|
|
365
|
+
"type": "object",
|
|
366
|
+
"properties": {
|
|
367
|
+
"t_ms": {
|
|
368
|
+
"type": "number",
|
|
369
|
+
"format": "double"
|
|
370
|
+
},
|
|
371
|
+
"type": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"const": "first_frame"
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"required": [
|
|
377
|
+
"type",
|
|
378
|
+
"t_ms"
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"description": "A message crossed between the game frame and the host page, such as `reels:ready`.",
|
|
383
|
+
"type": "object",
|
|
384
|
+
"properties": {
|
|
385
|
+
"direction": {
|
|
386
|
+
"$ref": "#/$defs/MessageDirection"
|
|
387
|
+
},
|
|
388
|
+
"name": {
|
|
389
|
+
"type": "string"
|
|
390
|
+
},
|
|
391
|
+
"t_ms": {
|
|
392
|
+
"type": "number",
|
|
393
|
+
"format": "double"
|
|
394
|
+
},
|
|
395
|
+
"type": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"const": "host_message"
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
"required": [
|
|
401
|
+
"type",
|
|
402
|
+
"direction",
|
|
403
|
+
"name",
|
|
404
|
+
"t_ms"
|
|
405
|
+
]
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"description": "`decodeAudioData` finished. Decoded bytes are length x channels x 4.",
|
|
409
|
+
"type": "object",
|
|
410
|
+
"properties": {
|
|
411
|
+
"channels": {
|
|
412
|
+
"type": "integer",
|
|
413
|
+
"format": "uint32",
|
|
414
|
+
"minimum": 0
|
|
415
|
+
},
|
|
416
|
+
"length": {
|
|
417
|
+
"type": "integer",
|
|
418
|
+
"format": "uint64",
|
|
419
|
+
"minimum": 0
|
|
420
|
+
},
|
|
421
|
+
"sample_rate": {
|
|
422
|
+
"type": "integer",
|
|
423
|
+
"format": "uint32",
|
|
424
|
+
"minimum": 0
|
|
425
|
+
},
|
|
426
|
+
"t_ms": {
|
|
427
|
+
"type": "number",
|
|
428
|
+
"format": "double"
|
|
429
|
+
},
|
|
430
|
+
"type": {
|
|
431
|
+
"type": "string",
|
|
432
|
+
"const": "audio_decoded"
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"required": [
|
|
436
|
+
"type",
|
|
437
|
+
"length",
|
|
438
|
+
"channels",
|
|
439
|
+
"sample_rate",
|
|
440
|
+
"t_ms"
|
|
441
|
+
]
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"description": "An audio context changed state.",
|
|
445
|
+
"type": "object",
|
|
446
|
+
"properties": {
|
|
447
|
+
"sample_rate": {
|
|
448
|
+
"type": "integer",
|
|
449
|
+
"format": "uint32",
|
|
450
|
+
"minimum": 0
|
|
451
|
+
},
|
|
452
|
+
"state": {
|
|
453
|
+
"$ref": "#/$defs/AudioState"
|
|
454
|
+
},
|
|
455
|
+
"t_ms": {
|
|
456
|
+
"type": "number",
|
|
457
|
+
"format": "double"
|
|
458
|
+
},
|
|
459
|
+
"type": {
|
|
460
|
+
"type": "string",
|
|
461
|
+
"const": "audio_context_state"
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
"required": [
|
|
465
|
+
"type",
|
|
466
|
+
"state",
|
|
467
|
+
"sample_rate",
|
|
468
|
+
"t_ms"
|
|
469
|
+
]
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"description": "A texture upload, such as `texImage2D` or `compressedTexImage2D`.",
|
|
473
|
+
"type": "object",
|
|
474
|
+
"properties": {
|
|
475
|
+
"bytes": {
|
|
476
|
+
"type": "integer",
|
|
477
|
+
"format": "uint64",
|
|
478
|
+
"minimum": 0
|
|
479
|
+
},
|
|
480
|
+
"face": {
|
|
481
|
+
"description": "The cube map face, 0 to 5; 0 for a 2D texture. None for `texStorage2D` on a cube\nmap, which allocates every face at once.",
|
|
482
|
+
"type": [
|
|
483
|
+
"integer",
|
|
484
|
+
"null"
|
|
485
|
+
],
|
|
486
|
+
"format": "uint32",
|
|
487
|
+
"default": null,
|
|
488
|
+
"minimum": 0
|
|
489
|
+
},
|
|
490
|
+
"height": {
|
|
491
|
+
"type": "integer",
|
|
492
|
+
"format": "uint32",
|
|
493
|
+
"minimum": 0
|
|
494
|
+
},
|
|
495
|
+
"level": {
|
|
496
|
+
"description": "The mip level. None for `texStorage2D`, which allocates every level at once.",
|
|
497
|
+
"type": [
|
|
498
|
+
"integer",
|
|
499
|
+
"null"
|
|
500
|
+
],
|
|
501
|
+
"format": "uint32",
|
|
502
|
+
"default": null,
|
|
503
|
+
"minimum": 0
|
|
504
|
+
},
|
|
505
|
+
"source": {
|
|
506
|
+
"description": "The path of the http image or video it came from, without host, query or fragment.\nThe lab probe follows a fetched file to an ImageBitmap, a `blob:` object URL or a\nresponse made from it (also through Pixi 8's worker). None for data, a render target,\na canvas, or a `data:` URL. An upload by `texSubImage2D` into `texStorage2D` storage is\nnot seen, so its source is not either.",
|
|
507
|
+
"type": [
|
|
508
|
+
"string",
|
|
509
|
+
"null"
|
|
510
|
+
],
|
|
511
|
+
"default": null
|
|
512
|
+
},
|
|
513
|
+
"source_kind": {
|
|
514
|
+
"description": "What an upload with no source held, when the lab probe can tell: `empty` for an\nallocation with no pixels, `canvas` for a canvas the game drew. None otherwise, and\nalways from the field probe.",
|
|
515
|
+
"anyOf": [
|
|
516
|
+
{
|
|
517
|
+
"$ref": "#/$defs/SourceKind"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"type": "null"
|
|
521
|
+
}
|
|
522
|
+
],
|
|
523
|
+
"default": null
|
|
524
|
+
},
|
|
525
|
+
"t_ms": {
|
|
526
|
+
"type": "number",
|
|
527
|
+
"format": "double"
|
|
528
|
+
},
|
|
529
|
+
"texture": {
|
|
530
|
+
"description": "The probe's number for the texture, which a later upload or `texture_deleted`\nrepeats. None from a probe that does not number textures.",
|
|
531
|
+
"type": [
|
|
532
|
+
"integer",
|
|
533
|
+
"null"
|
|
534
|
+
],
|
|
535
|
+
"format": "uint32",
|
|
536
|
+
"default": null,
|
|
537
|
+
"minimum": 0
|
|
538
|
+
},
|
|
539
|
+
"type": {
|
|
540
|
+
"type": "string",
|
|
541
|
+
"const": "texture_uploaded"
|
|
542
|
+
},
|
|
543
|
+
"width": {
|
|
544
|
+
"type": "integer",
|
|
545
|
+
"format": "uint32",
|
|
546
|
+
"minimum": 0
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
"required": [
|
|
550
|
+
"type",
|
|
551
|
+
"width",
|
|
552
|
+
"height",
|
|
553
|
+
"bytes",
|
|
554
|
+
"t_ms"
|
|
555
|
+
]
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"description": "The game deleted a texture.",
|
|
559
|
+
"type": "object",
|
|
560
|
+
"properties": {
|
|
561
|
+
"t_ms": {
|
|
562
|
+
"type": "number",
|
|
563
|
+
"format": "double"
|
|
564
|
+
},
|
|
565
|
+
"texture": {
|
|
566
|
+
"type": "integer",
|
|
567
|
+
"format": "uint32",
|
|
568
|
+
"minimum": 0
|
|
569
|
+
},
|
|
570
|
+
"type": {
|
|
571
|
+
"type": "string",
|
|
572
|
+
"const": "texture_deleted"
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
"required": [
|
|
576
|
+
"type",
|
|
577
|
+
"texture",
|
|
578
|
+
"t_ms"
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"description": "A canvas got a rendering context.",
|
|
583
|
+
"type": "object",
|
|
584
|
+
"properties": {
|
|
585
|
+
"antialias": {
|
|
586
|
+
"type": [
|
|
587
|
+
"boolean",
|
|
588
|
+
"null"
|
|
589
|
+
]
|
|
590
|
+
},
|
|
591
|
+
"canvas": {
|
|
592
|
+
"description": "The probe's number for the canvas, which its `canvas_resized` events repeat. None from\na probe that does not number canvases.",
|
|
593
|
+
"type": [
|
|
594
|
+
"integer",
|
|
595
|
+
"null"
|
|
596
|
+
],
|
|
597
|
+
"format": "uint32",
|
|
598
|
+
"default": null,
|
|
599
|
+
"minimum": 0
|
|
600
|
+
},
|
|
601
|
+
"device_pixel_ratio": {
|
|
602
|
+
"type": "number",
|
|
603
|
+
"format": "double"
|
|
604
|
+
},
|
|
605
|
+
"height": {
|
|
606
|
+
"type": "integer",
|
|
607
|
+
"format": "uint32",
|
|
608
|
+
"minimum": 0
|
|
609
|
+
},
|
|
610
|
+
"kind": {
|
|
611
|
+
"$ref": "#/$defs/ContextKind"
|
|
612
|
+
},
|
|
613
|
+
"t_ms": {
|
|
614
|
+
"type": "number",
|
|
615
|
+
"format": "double"
|
|
616
|
+
},
|
|
617
|
+
"type": {
|
|
618
|
+
"type": "string",
|
|
619
|
+
"const": "context_created"
|
|
620
|
+
},
|
|
621
|
+
"width": {
|
|
622
|
+
"description": "The canvas's backing size in pixels when it got its context.",
|
|
623
|
+
"type": "integer",
|
|
624
|
+
"format": "uint32",
|
|
625
|
+
"minimum": 0
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
"required": [
|
|
629
|
+
"type",
|
|
630
|
+
"kind",
|
|
631
|
+
"width",
|
|
632
|
+
"height",
|
|
633
|
+
"device_pixel_ratio",
|
|
634
|
+
"t_ms"
|
|
635
|
+
]
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"description": "A canvas with a rendering context got a new backing size, as when Pixi sizes its canvas\nto the screen after it starts.",
|
|
639
|
+
"type": "object",
|
|
640
|
+
"properties": {
|
|
641
|
+
"canvas": {
|
|
642
|
+
"type": "integer",
|
|
643
|
+
"format": "uint32",
|
|
644
|
+
"minimum": 0
|
|
645
|
+
},
|
|
646
|
+
"height": {
|
|
647
|
+
"type": "integer",
|
|
648
|
+
"format": "uint32",
|
|
649
|
+
"minimum": 0
|
|
650
|
+
},
|
|
651
|
+
"t_ms": {
|
|
652
|
+
"type": "number",
|
|
653
|
+
"format": "double"
|
|
654
|
+
},
|
|
655
|
+
"type": {
|
|
656
|
+
"type": "string",
|
|
657
|
+
"const": "canvas_resized"
|
|
658
|
+
},
|
|
659
|
+
"width": {
|
|
660
|
+
"type": "integer",
|
|
661
|
+
"format": "uint32",
|
|
662
|
+
"minimum": 0
|
|
663
|
+
}
|
|
664
|
+
},
|
|
665
|
+
"required": [
|
|
666
|
+
"type",
|
|
667
|
+
"canvas",
|
|
668
|
+
"width",
|
|
669
|
+
"height",
|
|
670
|
+
"t_ms"
|
|
671
|
+
]
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"description": "A WebGL context was lost.",
|
|
675
|
+
"type": "object",
|
|
676
|
+
"properties": {
|
|
677
|
+
"t_ms": {
|
|
678
|
+
"type": "number",
|
|
679
|
+
"format": "double"
|
|
680
|
+
},
|
|
681
|
+
"type": {
|
|
682
|
+
"type": "string",
|
|
683
|
+
"const": "context_lost"
|
|
684
|
+
}
|
|
685
|
+
},
|
|
686
|
+
"required": [
|
|
687
|
+
"type",
|
|
688
|
+
"t_ms"
|
|
689
|
+
]
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"description": "Frame times since the last histogram, sent every `FRAME_TIMES_EVERY_MS`. `counts[i]`\ncounts frames that took at most `bucket_upper_ms[i]`, and more than the bucket before it.\nThe edges are `FRAME_TIME_BUCKETS_MS`.",
|
|
693
|
+
"type": "object",
|
|
694
|
+
"properties": {
|
|
695
|
+
"bucket_upper_ms": {
|
|
696
|
+
"type": "array",
|
|
697
|
+
"items": {
|
|
698
|
+
"type": "integer",
|
|
699
|
+
"format": "uint32",
|
|
700
|
+
"minimum": 0
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
"counts": {
|
|
704
|
+
"type": "array",
|
|
705
|
+
"items": {
|
|
706
|
+
"type": "integer",
|
|
707
|
+
"format": "uint32",
|
|
708
|
+
"minimum": 0
|
|
709
|
+
}
|
|
710
|
+
},
|
|
711
|
+
"t_ms": {
|
|
712
|
+
"type": "number",
|
|
713
|
+
"format": "double"
|
|
714
|
+
},
|
|
715
|
+
"type": {
|
|
716
|
+
"type": "string",
|
|
717
|
+
"const": "frame_times"
|
|
718
|
+
}
|
|
719
|
+
},
|
|
720
|
+
"required": [
|
|
721
|
+
"type",
|
|
722
|
+
"bucket_upper_ms",
|
|
723
|
+
"counts",
|
|
724
|
+
"t_ms"
|
|
725
|
+
]
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"description": "An optional game hook (Phase 2). Only the game knows these events.",
|
|
729
|
+
"type": "object",
|
|
730
|
+
"properties": {
|
|
731
|
+
"detail": {
|
|
732
|
+
"type": [
|
|
733
|
+
"string",
|
|
734
|
+
"null"
|
|
735
|
+
]
|
|
736
|
+
},
|
|
737
|
+
"hook": {
|
|
738
|
+
"$ref": "#/$defs/GameHookKind"
|
|
739
|
+
},
|
|
740
|
+
"t_ms": {
|
|
741
|
+
"type": "number",
|
|
742
|
+
"format": "double"
|
|
743
|
+
},
|
|
744
|
+
"type": {
|
|
745
|
+
"type": "string",
|
|
746
|
+
"const": "game_hook"
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
"required": [
|
|
750
|
+
"type",
|
|
751
|
+
"hook",
|
|
752
|
+
"t_ms"
|
|
753
|
+
]
|
|
754
|
+
}
|
|
755
|
+
]
|
|
756
|
+
},
|
|
757
|
+
"ProcessMemory": {
|
|
758
|
+
"description": "One process's memory in a `memory` message.",
|
|
759
|
+
"type": "object",
|
|
760
|
+
"properties": {
|
|
761
|
+
"kind": {
|
|
762
|
+
"description": "What the browser calls the process, such as \"renderer\" or \"gpu-process\".",
|
|
763
|
+
"type": "string"
|
|
764
|
+
},
|
|
765
|
+
"pid": {
|
|
766
|
+
"type": "integer",
|
|
767
|
+
"format": "uint32",
|
|
768
|
+
"minimum": 0
|
|
769
|
+
},
|
|
770
|
+
"private_bytes": {
|
|
771
|
+
"description": "The memory that only this process holds (see `TimelineMethod`).",
|
|
772
|
+
"type": "integer",
|
|
773
|
+
"format": "uint64",
|
|
774
|
+
"minimum": 0
|
|
775
|
+
},
|
|
776
|
+
"resident_bytes": {
|
|
777
|
+
"description": "Resident memory, shared pages included. Null when not read.",
|
|
778
|
+
"type": [
|
|
779
|
+
"integer",
|
|
780
|
+
"null"
|
|
781
|
+
],
|
|
782
|
+
"format": "uint64",
|
|
783
|
+
"minimum": 0
|
|
784
|
+
},
|
|
785
|
+
"shared_bytes": {
|
|
786
|
+
"description": "Resident shared memory. Null when not read.",
|
|
787
|
+
"type": [
|
|
788
|
+
"integer",
|
|
789
|
+
"null"
|
|
790
|
+
],
|
|
791
|
+
"format": "uint64",
|
|
792
|
+
"minimum": 0
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
"required": [
|
|
796
|
+
"pid",
|
|
797
|
+
"kind",
|
|
798
|
+
"private_bytes"
|
|
799
|
+
]
|
|
800
|
+
},
|
|
801
|
+
"ProcessRole": {
|
|
802
|
+
"description": "The part a process plays in the run, as far as the driver can tell.",
|
|
803
|
+
"oneOf": [
|
|
804
|
+
{
|
|
805
|
+
"description": "It runs the game frame.",
|
|
806
|
+
"type": "string",
|
|
807
|
+
"const": "game"
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"description": "It runs the harness page.",
|
|
811
|
+
"type": "string",
|
|
812
|
+
"const": "page"
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"description": "The GPU process.",
|
|
816
|
+
"type": "string",
|
|
817
|
+
"const": "gpu"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"description": "The browser's main process.",
|
|
821
|
+
"type": "string",
|
|
822
|
+
"const": "browser"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"description": "Any other process, such as a spare renderer or the network service.",
|
|
826
|
+
"type": "string",
|
|
827
|
+
"const": "other"
|
|
828
|
+
}
|
|
829
|
+
]
|
|
830
|
+
},
|
|
831
|
+
"RunMark": {
|
|
832
|
+
"description": "The steps of a run. They sort in the order they are declared.",
|
|
833
|
+
"oneOf": [
|
|
834
|
+
{
|
|
835
|
+
"description": "The harness page started loading the game frame.",
|
|
836
|
+
"type": "string",
|
|
837
|
+
"const": "navigated"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"description": "The game frame went idle.",
|
|
841
|
+
"type": "string",
|
|
842
|
+
"const": "idle"
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"description": "The harness made the game active, such as by sending `reels:active` `true`.",
|
|
846
|
+
"type": "string",
|
|
847
|
+
"const": "activated"
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
"description": "The harness made the game inactive.",
|
|
851
|
+
"type": "string",
|
|
852
|
+
"const": "deactivated"
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
"description": "The game frame committed a new document, as a script redirect does. Probe events after\nit are on the new document's clock.",
|
|
856
|
+
"type": "string",
|
|
857
|
+
"const": "frame_document"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"description": "The driver forced a garbage collection and sent a critical memory pressure signal, after\nthe active watch. The memory after it is what the game holds once garbage and caches go.",
|
|
861
|
+
"type": "string",
|
|
862
|
+
"const": "purged"
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"description": "The phone's kernel killed the game's process: jetsam did, or it went over a fatal memory\nlimit.",
|
|
866
|
+
"type": "string",
|
|
867
|
+
"const": "killed"
|
|
868
|
+
},
|
|
869
|
+
{
|
|
870
|
+
"description": "The game's process went over a memory limit that does not kill it, such as iOS's soft\nlimit.",
|
|
871
|
+
"type": "string",
|
|
872
|
+
"const": "over_memory_limit"
|
|
873
|
+
}
|
|
874
|
+
]
|
|
875
|
+
},
|
|
876
|
+
"SourceKind": {
|
|
877
|
+
"description": "What a texture upload with no source path held. Facts only: an allocation\nwith no pixels is often a render target, but the probe does not see what fills it.",
|
|
878
|
+
"oneOf": [
|
|
879
|
+
{
|
|
880
|
+
"description": "No pixels: `texStorage2D`, or `texImage2D` with null pixels.",
|
|
881
|
+
"type": "string",
|
|
882
|
+
"const": "empty"
|
|
883
|
+
},
|
|
884
|
+
{
|
|
885
|
+
"description": "A canvas the game drew, such as text.",
|
|
886
|
+
"type": "string",
|
|
887
|
+
"const": "canvas"
|
|
888
|
+
}
|
|
889
|
+
]
|
|
890
|
+
},
|
|
891
|
+
"TimelineMethod": {
|
|
892
|
+
"description": "How a timeline's samples were read.",
|
|
893
|
+
"oneOf": [
|
|
894
|
+
{
|
|
895
|
+
"description": "Linux's `/proc/<pid>/status`: `private_bytes` is `RssAnon` plus `VmSwap`, the private\nmemory footprint that Chromium reports on Linux.",
|
|
896
|
+
"type": "string",
|
|
897
|
+
"const": "proc"
|
|
898
|
+
},
|
|
899
|
+
{
|
|
900
|
+
"description": "An Activity Monitor trace that xctrace exported, such as a device cloud's: `private_bytes`\nis the physical footprint that jetsam reads.",
|
|
901
|
+
"type": "string",
|
|
902
|
+
"const": "xctrace"
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
"description": "The iPhone's sysmontap service, which `--device` reads: `private_bytes` is the physical\nfootprint that jetsam reads.",
|
|
906
|
+
"type": "string",
|
|
907
|
+
"const": "sysmontap"
|
|
908
|
+
}
|
|
909
|
+
]
|
|
910
|
+
}
|
|
911
|
+
}
|
|
912
|
+
}
|