@dyno-cloud/schema 0.0.0-stage → 0.1.2
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 +1984 -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 +724 -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 +1907 -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/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 +30 -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/MessageDirection.ts +6 -0
- package/ts/Method.ts +6 -0
- package/ts/OsName.ts +6 -0
- package/ts/ProbeEvent.ts +48 -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 +50 -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/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 +89 -0
- package/README.md +0 -3
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "LinkFile",
|
|
4
|
+
"description": "A link file: one `[[game]]` table per build folder.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"build": {
|
|
8
|
+
"description": "How CI makes the build folders. dyno does not run it.",
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"$ref": "#/$defs/BuildCommand"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "null"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"game": {
|
|
19
|
+
"description": "One `[[game]]` table per build folder.",
|
|
20
|
+
"type": "array",
|
|
21
|
+
"default": [],
|
|
22
|
+
"items": {
|
|
23
|
+
"$ref": "#/$defs/LinkedGame"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"schema_version": {
|
|
27
|
+
"description": "The file format version. Must equal the schema version this dyno reads.",
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"format": "uint32",
|
|
30
|
+
"minimum": 0
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"required": [
|
|
35
|
+
"schema_version"
|
|
36
|
+
],
|
|
37
|
+
"$defs": {
|
|
38
|
+
"BuildCommand": {
|
|
39
|
+
"description": "How CI makes the build folders, such as the workflow that the dyno site's setup pull request\nwrites. dyno does not run it.",
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"command": {
|
|
43
|
+
"description": "The shell command that makes every build folder from a fresh checkout, run in this file's\nfolder.",
|
|
44
|
+
"type": "string"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": [
|
|
49
|
+
"command"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"LinkedGame": {
|
|
53
|
+
"description": "One build folder and the game it belongs to.",
|
|
54
|
+
"type": "object",
|
|
55
|
+
"properties": {
|
|
56
|
+
"build": {
|
|
57
|
+
"description": "The build folder or .zip, relative to this file. Unique in the file.",
|
|
58
|
+
"type": "string"
|
|
59
|
+
},
|
|
60
|
+
"id": {
|
|
61
|
+
"description": "The game's id on the dyno site, a UUID.",
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"name": {
|
|
65
|
+
"description": "The game's name: the `--game` label when none is given.",
|
|
66
|
+
"type": [
|
|
67
|
+
"string",
|
|
68
|
+
"null"
|
|
69
|
+
],
|
|
70
|
+
"default": null
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": [
|
|
75
|
+
"id",
|
|
76
|
+
"build"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "ExposureCheckpoint",
|
|
4
|
+
"description": "Sampled exposure, written to storage every 30 s or so and sent on the next load. A page\nthat dies loses only the time since its last checkpoint.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"host_profile": {
|
|
8
|
+
"$ref": "#/$defs/ProfileRef"
|
|
9
|
+
},
|
|
10
|
+
"samples": {
|
|
11
|
+
"type": "array",
|
|
12
|
+
"items": {
|
|
13
|
+
"$ref": "#/$defs/ExposureSample"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"schema_version": {
|
|
17
|
+
"type": "integer",
|
|
18
|
+
"format": "uint32",
|
|
19
|
+
"minimum": 0
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": [
|
|
23
|
+
"schema_version",
|
|
24
|
+
"host_profile",
|
|
25
|
+
"samples"
|
|
26
|
+
],
|
|
27
|
+
"$defs": {
|
|
28
|
+
"ExposureSample": {
|
|
29
|
+
"description": "Live time for one game frame in one state.",
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"build_version": {
|
|
33
|
+
"type": [
|
|
34
|
+
"string",
|
|
35
|
+
"null"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"frame_state": {
|
|
39
|
+
"$ref": "#/$defs/FrameState"
|
|
40
|
+
},
|
|
41
|
+
"game_id": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"live_ms": {
|
|
45
|
+
"description": "Time the frame was live in this state.",
|
|
46
|
+
"type": "integer",
|
|
47
|
+
"format": "uint64",
|
|
48
|
+
"minimum": 0
|
|
49
|
+
},
|
|
50
|
+
"sampled_share": {
|
|
51
|
+
"description": "The share of sessions that log exposure, from above 0 to 1.",
|
|
52
|
+
"type": "number",
|
|
53
|
+
"format": "double"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": [
|
|
57
|
+
"game_id",
|
|
58
|
+
"frame_state",
|
|
59
|
+
"live_ms",
|
|
60
|
+
"sampled_share"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"FrameState": {
|
|
64
|
+
"description": "Whether a game frame is the one on screen. Reels calls an inactive frame preloaded.",
|
|
65
|
+
"oneOf": [
|
|
66
|
+
{
|
|
67
|
+
"description": "On screen, after the host's active message.",
|
|
68
|
+
"type": "string",
|
|
69
|
+
"const": "active"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"description": "Mounted but not on screen.",
|
|
73
|
+
"type": "string",
|
|
74
|
+
"const": "inactive"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"ProfileRef": {
|
|
79
|
+
"description": "Which host profile, and which version of it, a result used.",
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"name": {
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
85
|
+
"version": {
|
|
86
|
+
"type": "integer",
|
|
87
|
+
"format": "uint32",
|
|
88
|
+
"minimum": 0
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"required": [
|
|
92
|
+
"name",
|
|
93
|
+
"version"
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "GamesFile",
|
|
4
|
+
"description": "A games file: the games a catalogue run checks.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"game": {
|
|
8
|
+
"description": "One `[[game]]` table per game.",
|
|
9
|
+
"type": "array",
|
|
10
|
+
"items": {
|
|
11
|
+
"$ref": "#/$defs/GameEntry"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"schema_version": {
|
|
15
|
+
"description": "The file format version. Must equal the schema version this dyno reads.",
|
|
16
|
+
"type": "integer",
|
|
17
|
+
"format": "uint32",
|
|
18
|
+
"minimum": 0
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"required": [
|
|
23
|
+
"schema_version",
|
|
24
|
+
"game"
|
|
25
|
+
],
|
|
26
|
+
"$defs": {
|
|
27
|
+
"GameEntry": {
|
|
28
|
+
"description": "One game in a games file. It needs a build, a launch URL or both.",
|
|
29
|
+
"type": "object",
|
|
30
|
+
"properties": {
|
|
31
|
+
"build": {
|
|
32
|
+
"description": "The build folder or .zip, relative to the games file.",
|
|
33
|
+
"type": [
|
|
34
|
+
"string",
|
|
35
|
+
"null"
|
|
36
|
+
],
|
|
37
|
+
"default": null
|
|
38
|
+
},
|
|
39
|
+
"id": {
|
|
40
|
+
"description": "Unique in the file. Shards split the games in id order.",
|
|
41
|
+
"type": "string"
|
|
42
|
+
},
|
|
43
|
+
"launch_url": {
|
|
44
|
+
"description": "An http or https URL, checked when the file loads.",
|
|
45
|
+
"type": [
|
|
46
|
+
"string",
|
|
47
|
+
"null"
|
|
48
|
+
],
|
|
49
|
+
"default": null
|
|
50
|
+
},
|
|
51
|
+
"release": {
|
|
52
|
+
"description": "The release version label for the result.",
|
|
53
|
+
"type": [
|
|
54
|
+
"string",
|
|
55
|
+
"null"
|
|
56
|
+
],
|
|
57
|
+
"default": null
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": [
|
|
62
|
+
"id"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "LibraryBucket",
|
|
4
|
+
"description": "What a library does. Only the rendering bucket says how the game draws.",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"description": "Draws the game, such as Pixi.",
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "rendering"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"description": "Plays sound, such as Howler.",
|
|
13
|
+
"type": "string",
|
|
14
|
+
"const": "audio"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"description": "Anything else, such as an SDK or a utility.",
|
|
18
|
+
"type": "string",
|
|
19
|
+
"const": "other"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Library",
|
|
4
|
+
"description": "A library the static scan can detect.",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{
|
|
7
|
+
"type": "string",
|
|
8
|
+
"enum": [
|
|
9
|
+
"pixi",
|
|
10
|
+
"howler"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"description": "StakeEngine's web-sdk. It bundles its own Pixi, which the scan detects as Pixi.",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"const": "web_sdk"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "static.inventory.files",
|
|
4
|
+
"source": "static",
|
|
5
|
+
"phase": 1,
|
|
6
|
+
"unit": "count",
|
|
7
|
+
"covers": "supplied_files",
|
|
8
|
+
"quantity": "files",
|
|
9
|
+
"statistic": "all_files"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "static.bytes.by_type",
|
|
13
|
+
"source": "static",
|
|
14
|
+
"phase": 1,
|
|
15
|
+
"unit": "bytes",
|
|
16
|
+
"covers": "supplied_files",
|
|
17
|
+
"quantity": "download_bytes",
|
|
18
|
+
"statistic": "all_files"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "static.bytes.compressed",
|
|
22
|
+
"source": "static",
|
|
23
|
+
"phase": 1,
|
|
24
|
+
"unit": "bytes",
|
|
25
|
+
"covers": "supplied_files",
|
|
26
|
+
"quantity": "compressed_bytes",
|
|
27
|
+
"statistic": "all_files"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "static.bytes.duplicates",
|
|
31
|
+
"source": "static",
|
|
32
|
+
"phase": 1,
|
|
33
|
+
"unit": "bytes",
|
|
34
|
+
"covers": "supplied_files",
|
|
35
|
+
"quantity": "duplicate_bytes",
|
|
36
|
+
"statistic": "all_files"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "static.textures.decoded",
|
|
40
|
+
"source": "static",
|
|
41
|
+
"phase": 1,
|
|
42
|
+
"unit": "bytes",
|
|
43
|
+
"covers": "supplied_files",
|
|
44
|
+
"quantity": "textures",
|
|
45
|
+
"statistic": "all_files"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "static.audio.decoded_48k",
|
|
49
|
+
"source": "static",
|
|
50
|
+
"phase": 1,
|
|
51
|
+
"unit": "bytes",
|
|
52
|
+
"covers": "supplied_files",
|
|
53
|
+
"quantity": "audio",
|
|
54
|
+
"statistic": "all_files_at48k"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "static.audio.decoded_24k",
|
|
58
|
+
"source": "static",
|
|
59
|
+
"phase": 1,
|
|
60
|
+
"unit": "bytes",
|
|
61
|
+
"covers": "supplied_files",
|
|
62
|
+
"quantity": "audio",
|
|
63
|
+
"statistic": "all_files_at24k"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "static.audio.stereo_files",
|
|
67
|
+
"source": "static",
|
|
68
|
+
"phase": 1,
|
|
69
|
+
"unit": "count",
|
|
70
|
+
"covers": "supplied_files",
|
|
71
|
+
"quantity": "stereo_sounds",
|
|
72
|
+
"statistic": "all_files"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "static.audio.stereo_mono_safe",
|
|
76
|
+
"source": "static",
|
|
77
|
+
"phase": 1,
|
|
78
|
+
"unit": "count",
|
|
79
|
+
"covers": "supplied_files",
|
|
80
|
+
"quantity": "mono_safe_stereo_sounds",
|
|
81
|
+
"statistic": "all_files"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "static.audio.sprite_silence",
|
|
85
|
+
"source": "static",
|
|
86
|
+
"phase": 1,
|
|
87
|
+
"unit": "basis_points",
|
|
88
|
+
"covers": "supplied_files",
|
|
89
|
+
"quantity": "sprite_silence",
|
|
90
|
+
"statistic": "largest"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "static.audio.silence_by_decode",
|
|
94
|
+
"source": "static",
|
|
95
|
+
"phase": 1,
|
|
96
|
+
"unit": "basis_points",
|
|
97
|
+
"covers": "supplied_files",
|
|
98
|
+
"quantity": "audio_silence",
|
|
99
|
+
"statistic": "all_files"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "static.render.antialias",
|
|
103
|
+
"source": "static",
|
|
104
|
+
"phase": 1,
|
|
105
|
+
"unit": "flag",
|
|
106
|
+
"covers": "supplied_files",
|
|
107
|
+
"quantity": "antialias",
|
|
108
|
+
"statistic": "all_files"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "static.render.resolution_uncapped",
|
|
112
|
+
"source": "static",
|
|
113
|
+
"phase": 1,
|
|
114
|
+
"unit": "flag",
|
|
115
|
+
"covers": "supplied_files",
|
|
116
|
+
"quantity": "resolution_uncapped",
|
|
117
|
+
"statistic": "all_files"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "static.render.backend",
|
|
121
|
+
"source": "static",
|
|
122
|
+
"phase": 1,
|
|
123
|
+
"unit": "text",
|
|
124
|
+
"covers": "supplied_files",
|
|
125
|
+
"quantity": "render_backend",
|
|
126
|
+
"statistic": "all_files"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "static.render.canvas",
|
|
130
|
+
"source": "static",
|
|
131
|
+
"phase": 1,
|
|
132
|
+
"unit": "bytes",
|
|
133
|
+
"covers": "supplied_files",
|
|
134
|
+
"quantity": "canvas",
|
|
135
|
+
"statistic": "all_files"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "static.bundle.engines",
|
|
139
|
+
"source": "static",
|
|
140
|
+
"phase": 1,
|
|
141
|
+
"unit": "count",
|
|
142
|
+
"covers": "supplied_files",
|
|
143
|
+
"quantity": "libraries",
|
|
144
|
+
"statistic": "all_files"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "static.bundle.external_urls",
|
|
148
|
+
"source": "static",
|
|
149
|
+
"phase": 1,
|
|
150
|
+
"unit": "count",
|
|
151
|
+
"covers": "supplied_files",
|
|
152
|
+
"quantity": "external_urls",
|
|
153
|
+
"statistic": "all_files"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "static.bundle.source_map",
|
|
157
|
+
"source": "static",
|
|
158
|
+
"phase": 2,
|
|
159
|
+
"unit": "bytes",
|
|
160
|
+
"covers": "supplied_files",
|
|
161
|
+
"quantity": "script_bytes",
|
|
162
|
+
"statistic": "all_files"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "lab.time.first_frame",
|
|
166
|
+
"source": "lab",
|
|
167
|
+
"phase": 1,
|
|
168
|
+
"unit": "ms",
|
|
169
|
+
"covers": "load_to_idle",
|
|
170
|
+
"quantity": "first_frame_time",
|
|
171
|
+
"statistic": "since_navigation"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "lab.time.ready",
|
|
175
|
+
"source": "lab",
|
|
176
|
+
"phase": 1,
|
|
177
|
+
"unit": "ms",
|
|
178
|
+
"covers": "load_to_idle",
|
|
179
|
+
"quantity": "ready_time",
|
|
180
|
+
"statistic": "since_navigation"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "lab.bytes.loaded_by_idle",
|
|
184
|
+
"source": "lab",
|
|
185
|
+
"phase": 1,
|
|
186
|
+
"unit": "bytes",
|
|
187
|
+
"covers": "load_to_idle",
|
|
188
|
+
"quantity": "download_bytes",
|
|
189
|
+
"statistic": "by_idle"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "lab.bytes.to_playable",
|
|
193
|
+
"source": "lab",
|
|
194
|
+
"phase": 1,
|
|
195
|
+
"unit": "bytes",
|
|
196
|
+
"covers": "load_to_idle",
|
|
197
|
+
"quantity": "download_bytes",
|
|
198
|
+
"statistic": "to_playable"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"id": "lab.audio.decoded",
|
|
202
|
+
"source": "lab",
|
|
203
|
+
"phase": 1,
|
|
204
|
+
"unit": "bytes",
|
|
205
|
+
"covers": "load_to_idle",
|
|
206
|
+
"quantity": "audio",
|
|
207
|
+
"statistic": "by_idle"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "lab.audio.context_rate",
|
|
211
|
+
"source": "lab",
|
|
212
|
+
"phase": 1,
|
|
213
|
+
"unit": "hertz",
|
|
214
|
+
"covers": "load_to_idle",
|
|
215
|
+
"quantity": "audio_rate",
|
|
216
|
+
"statistic": "at_idle"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"id": "lab.textures.uploaded",
|
|
220
|
+
"source": "lab",
|
|
221
|
+
"phase": 1,
|
|
222
|
+
"unit": "bytes",
|
|
223
|
+
"covers": "load_to_idle",
|
|
224
|
+
"quantity": "textures",
|
|
225
|
+
"statistic": "by_idle"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "lab.textures.resident",
|
|
229
|
+
"source": "lab",
|
|
230
|
+
"phase": 1,
|
|
231
|
+
"unit": "bytes",
|
|
232
|
+
"covers": "load_to_idle",
|
|
233
|
+
"quantity": "textures",
|
|
234
|
+
"statistic": "at_idle"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "lab.canvas.contexts",
|
|
238
|
+
"source": "lab",
|
|
239
|
+
"phase": 1,
|
|
240
|
+
"unit": "count",
|
|
241
|
+
"covers": "load_to_idle",
|
|
242
|
+
"quantity": "canvas_contexts",
|
|
243
|
+
"statistic": "by_idle"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"id": "lab.canvas.bytes",
|
|
247
|
+
"source": "lab",
|
|
248
|
+
"phase": 1,
|
|
249
|
+
"unit": "bytes",
|
|
250
|
+
"covers": "load_to_idle",
|
|
251
|
+
"quantity": "canvas",
|
|
252
|
+
"statistic": "at_idle"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "lab.js_heap",
|
|
256
|
+
"source": "lab",
|
|
257
|
+
"phase": 1,
|
|
258
|
+
"unit": "bytes",
|
|
259
|
+
"covers": "load_to_idle",
|
|
260
|
+
"quantity": "js_heap",
|
|
261
|
+
"statistic": "at_idle"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"id": "lab.inactive.audio_running",
|
|
265
|
+
"source": "lab",
|
|
266
|
+
"phase": 1,
|
|
267
|
+
"unit": "flag",
|
|
268
|
+
"covers": "load_to_idle",
|
|
269
|
+
"quantity": "audio_running",
|
|
270
|
+
"statistic": "while_inactive"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "lab.inactive.frame_rate",
|
|
274
|
+
"source": "lab",
|
|
275
|
+
"phase": 1,
|
|
276
|
+
"unit": "hertz",
|
|
277
|
+
"covers": "load_to_idle",
|
|
278
|
+
"quantity": "frame_rate",
|
|
279
|
+
"statistic": "while_inactive"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "lab.inactive.allocated",
|
|
283
|
+
"source": "lab",
|
|
284
|
+
"phase": 1,
|
|
285
|
+
"unit": "bytes",
|
|
286
|
+
"covers": "load_to_idle",
|
|
287
|
+
"quantity": "allocated_bytes",
|
|
288
|
+
"statistic": "while_inactive"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"id": "lab.self_check.frame_dpr",
|
|
292
|
+
"source": "lab",
|
|
293
|
+
"phase": 1,
|
|
294
|
+
"unit": "milli",
|
|
295
|
+
"covers": "load_to_idle",
|
|
296
|
+
"quantity": "frame_dpr",
|
|
297
|
+
"statistic": "at_idle"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"id": "lab.self_check.frame_requests",
|
|
301
|
+
"source": "lab",
|
|
302
|
+
"phase": 1,
|
|
303
|
+
"unit": "count",
|
|
304
|
+
"covers": "load_to_idle",
|
|
305
|
+
"quantity": "frame_requests",
|
|
306
|
+
"statistic": "by_idle"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "lab.self_check.webgl_renderer",
|
|
310
|
+
"source": "lab",
|
|
311
|
+
"phase": 1,
|
|
312
|
+
"unit": "text",
|
|
313
|
+
"covers": "load_to_idle",
|
|
314
|
+
"quantity": "webgl_renderer",
|
|
315
|
+
"statistic": "at_idle"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "model.footprint",
|
|
319
|
+
"source": "model",
|
|
320
|
+
"phase": 1,
|
|
321
|
+
"unit": "bytes",
|
|
322
|
+
"covers": "model_inputs",
|
|
323
|
+
"quantity": "footprint",
|
|
324
|
+
"statistic": "modelled_active"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"id": "model.footprint_inactive",
|
|
328
|
+
"source": "model",
|
|
329
|
+
"phase": 2,
|
|
330
|
+
"unit": "bytes",
|
|
331
|
+
"covers": "model_inputs",
|
|
332
|
+
"quantity": "footprint",
|
|
333
|
+
"statistic": "modelled_inactive"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"id": "play.spins",
|
|
337
|
+
"source": "lab",
|
|
338
|
+
"phase": 2,
|
|
339
|
+
"unit": "count",
|
|
340
|
+
"covers": "demo_spins",
|
|
341
|
+
"quantity": "spins",
|
|
342
|
+
"statistic": "during_spins"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"id": "play.peak",
|
|
346
|
+
"source": "lab",
|
|
347
|
+
"phase": 2,
|
|
348
|
+
"unit": "bytes",
|
|
349
|
+
"covers": "demo_spins",
|
|
350
|
+
"quantity": "memory",
|
|
351
|
+
"statistic": "peak_during_spins"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"id": "play.growth_per_100_spins",
|
|
355
|
+
"source": "lab",
|
|
356
|
+
"phase": 2,
|
|
357
|
+
"unit": "bytes_change",
|
|
358
|
+
"covers": "demo_spins",
|
|
359
|
+
"quantity": "memory",
|
|
360
|
+
"statistic": "growth_per100_spins"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"id": "play.bonus_peak",
|
|
364
|
+
"source": "lab",
|
|
365
|
+
"phase": 2,
|
|
366
|
+
"unit": "bytes",
|
|
367
|
+
"covers": "demo_spins",
|
|
368
|
+
"quantity": "memory",
|
|
369
|
+
"statistic": "peak_during_bonus"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"id": "device.phys_footprint",
|
|
373
|
+
"source": "device",
|
|
374
|
+
"phase": 2,
|
|
375
|
+
"unit": "bytes",
|
|
376
|
+
"covers": "fresh_device_runs",
|
|
377
|
+
"quantity": "footprint",
|
|
378
|
+
"statistic": "at_idle"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "device.phys_footprint_peak",
|
|
382
|
+
"source": "device",
|
|
383
|
+
"phase": 2,
|
|
384
|
+
"unit": "bytes",
|
|
385
|
+
"covers": "fresh_device_runs",
|
|
386
|
+
"quantity": "footprint",
|
|
387
|
+
"statistic": "peak"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"id": "device.footprint_over_baseline",
|
|
391
|
+
"source": "device",
|
|
392
|
+
"phase": 2,
|
|
393
|
+
"unit": "bytes_change",
|
|
394
|
+
"covers": "fresh_device_runs",
|
|
395
|
+
"quantity": "footprint",
|
|
396
|
+
"statistic": "median_peak_over_baseline"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"id": "device.kills",
|
|
400
|
+
"source": "device",
|
|
401
|
+
"phase": 2,
|
|
402
|
+
"unit": "count",
|
|
403
|
+
"covers": "fresh_device_runs",
|
|
404
|
+
"quantity": "kills",
|
|
405
|
+
"statistic": "of_runs"
|
|
406
|
+
}
|
|
407
|
+
]
|