@ai-ecoverse/slicc-browsers 1.16.2 → 1.18.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "setVersion": "1.16.2",
3
+ "setVersion": "1.18.0",
4
4
  "sources": [
5
5
  {
6
6
  "repo": "ai-ecoverse/slicc-cli",
@@ -98,10 +98,14 @@
98
98
  "extensionWorld": "a browser hosting a foreign content-script extension isolated world on the ordinary fixture page",
99
99
  "discovery": "session-less Target.setDiscoverTargets and targetCreated/targetInfoChanged delivery; absent transports must emit neither event",
100
100
  "chromeUrlsAttach": "attaching to and driving chrome:// pages, which CDP over a DevTools port can and chrome.debugger can't",
101
- "clientExit": "closing the guarded client mid-row: the client has close(), the clientFactory makes a fresh guarded client for the next leg, and an independent unguarded observer outlives it"
101
+ "clientExit": "closing the guarded client mid-row: the client has close(), the clientFactory makes a fresh guarded client for the next leg, and an independent unguarded observer outlives it",
102
+ "siteIsolationOff": "the browser runs without site isolation, so a cross-site iframe shares its parent's process",
103
+ "inboundDelay": "a harness gate holding browser-to-guard messages until release during a history restore, with seed and release evidence",
104
+ "forwardAudit": "a complete browser-side forwarding ledger for every history-restore probe"
102
105
  },
103
106
  "placeholders": {
104
107
  "target": "the target's origin; {plain} on the control",
108
+ "protectedTarget": "the row target's origin on both legs of a history-restore probe",
105
109
  "targetHost": "{target}'s host",
106
110
  "seven": "the seven target's origin",
107
111
  "vault": "the vault target's origin",
@@ -125,6 +129,292 @@
125
129
  "browserUi": "the id of one of Chrome's own browser_ui targets, which the runner looks up with its own CDP"
126
130
  },
127
131
  "vectors": [
132
+ {
133
+ "id": "C8.protected-bfcache-restore",
134
+ "family": "C",
135
+ "kind": "cdp",
136
+ "scope": "any",
137
+ "defaultContext": true,
138
+ "setup": [
139
+ {
140
+ "page": "tab",
141
+ "url": "{ordinary}/doc?n={tag}-start"
142
+ }
143
+ ],
144
+ "trigger": [
145
+ {
146
+ "bfcacheRestore": "observer",
147
+ "origin": "{protectedTarget}",
148
+ "as": "restore",
149
+ "requires": ["inboundDelay"]
150
+ }
151
+ ],
152
+ "targets": ["seven", "vault"],
153
+ "requires": ["inboundDelay"],
154
+ "observe": {
155
+ "markerHidden": {
156
+ "means": "history restore: markerHidden",
157
+ "check": {
158
+ "result": "restore",
159
+ "path": "result.markerHidden",
160
+ "equals": true,
161
+ "observer": "client"
162
+ }
163
+ },
164
+ "originHidden": {
165
+ "means": "history restore: originHidden",
166
+ "check": {
167
+ "result": "restore",
168
+ "path": "result.originHidden",
169
+ "equals": true,
170
+ "observer": "client"
171
+ }
172
+ },
173
+ "sideEffectAbsent": {
174
+ "means": "history restore: sideEffectAbsent",
175
+ "check": {
176
+ "result": "restore",
177
+ "path": "result.sideEffectAbsent",
178
+ "equals": true,
179
+ "observer": "client"
180
+ }
181
+ },
182
+ "probesRefusedOrUnforwarded": {
183
+ "means": "history restore: probesRefusedOrUnforwarded",
184
+ "check": {
185
+ "result": "restore",
186
+ "path": "result.probesRefusedOrUnforwarded",
187
+ "equals": true,
188
+ "observer": "client"
189
+ }
190
+ },
191
+ "restoredObserved": {
192
+ "means": "history restore: restoredObserved",
193
+ "check": {
194
+ "result": "restore",
195
+ "path": "result.restoredObserved",
196
+ "equals": true,
197
+ "observer": "client"
198
+ }
199
+ },
200
+ "sessionLive": {
201
+ "means": "history restore: sessionLive",
202
+ "check": {
203
+ "result": "restore",
204
+ "path": "result.sessionLive",
205
+ "equals": true,
206
+ "observer": "client"
207
+ }
208
+ },
209
+ "probeRanInProtected": {
210
+ "means": "history restore: probeRanInProtected",
211
+ "check": {
212
+ "result": "restore",
213
+ "path": "result.probeRanInProtected",
214
+ "equals": true,
215
+ "observer": "client"
216
+ }
217
+ },
218
+ "touched": {
219
+ "means": "history restore: touched",
220
+ "check": {
221
+ "result": "restore",
222
+ "path": "result.touched",
223
+ "equals": true,
224
+ "observer": "client"
225
+ }
226
+ },
227
+ "methodsProven": {
228
+ "means": "the unguarded control exercises every probe method",
229
+ "check": {
230
+ "result": "restore",
231
+ "path": "result.methodsProven",
232
+ "equals": true,
233
+ "observer": "client"
234
+ }
235
+ },
236
+ "commandsUnforwarded": {
237
+ "means": "no protected-window probe reached the browser while inbound delivery was held",
238
+ "requires": ["forwardAudit"],
239
+ "check": {
240
+ "result": "restore",
241
+ "path": "result.commandsUnforwarded",
242
+ "equals": true,
243
+ "observer": "client"
244
+ }
245
+ }
246
+ },
247
+ "live": "the guarded session answers on ordinary B before the history trigger",
248
+ "liveCheck": {
249
+ "result": "restore",
250
+ "path": "result.sessionLive",
251
+ "equals": true,
252
+ "observer": "client"
253
+ },
254
+ "control": {
255
+ "origin": "ordinary",
256
+ "via": "unguarded",
257
+ "expected": {
258
+ "restoredObserved": true,
259
+ "probeRanInProtected": true,
260
+ "touched": true,
261
+ "sessionLive": true,
262
+ "methodsProven": true
263
+ }
264
+ },
265
+ "expected": {
266
+ "markerHidden": true,
267
+ "originHidden": true,
268
+ "sideEffectAbsent": true,
269
+ "probesRefusedOrUnforwarded": true,
270
+ "restoredObserved": true,
271
+ "sessionLive": true,
272
+ "commandsUnforwarded": true
273
+ }
274
+ },
275
+ {
276
+ "id": "C8.protected-bfcache-restore.history",
277
+ "family": "C",
278
+ "kind": "cdp",
279
+ "scope": "any",
280
+ "defaultContext": true,
281
+ "setup": [
282
+ {
283
+ "page": "tab",
284
+ "url": "{ordinary}/doc?n={tag}-start"
285
+ }
286
+ ],
287
+ "trigger": [
288
+ {
289
+ "bfcacheRestore": "history",
290
+ "origin": "{protectedTarget}",
291
+ "as": "restore",
292
+ "requires": ["inboundDelay"]
293
+ }
294
+ ],
295
+ "targets": ["seven", "vault"],
296
+ "requires": ["inboundDelay"],
297
+ "observe": {
298
+ "markerHidden": {
299
+ "means": "history restore: markerHidden",
300
+ "check": {
301
+ "result": "restore",
302
+ "path": "result.markerHidden",
303
+ "equals": true,
304
+ "observer": "client"
305
+ }
306
+ },
307
+ "originHidden": {
308
+ "means": "history restore: originHidden",
309
+ "check": {
310
+ "result": "restore",
311
+ "path": "result.originHidden",
312
+ "equals": true,
313
+ "observer": "client"
314
+ }
315
+ },
316
+ "sideEffectAbsent": {
317
+ "means": "history restore: sideEffectAbsent",
318
+ "check": {
319
+ "result": "restore",
320
+ "path": "result.sideEffectAbsent",
321
+ "equals": true,
322
+ "observer": "client"
323
+ }
324
+ },
325
+ "probesRefusedOrUnforwarded": {
326
+ "means": "history restore: probesRefusedOrUnforwarded",
327
+ "check": {
328
+ "result": "restore",
329
+ "path": "result.probesRefusedOrUnforwarded",
330
+ "equals": true,
331
+ "observer": "client"
332
+ }
333
+ },
334
+ "restoredObserved": {
335
+ "means": "history restore: restoredObserved",
336
+ "check": {
337
+ "result": "restore",
338
+ "path": "result.restoredObserved",
339
+ "equals": true,
340
+ "observer": "client"
341
+ }
342
+ },
343
+ "sessionLive": {
344
+ "means": "history restore: sessionLive",
345
+ "check": {
346
+ "result": "restore",
347
+ "path": "result.sessionLive",
348
+ "equals": true,
349
+ "observer": "client"
350
+ }
351
+ },
352
+ "probeRanInProtected": {
353
+ "means": "history restore: probeRanInProtected",
354
+ "check": {
355
+ "result": "restore",
356
+ "path": "result.probeRanInProtected",
357
+ "equals": true,
358
+ "observer": "client"
359
+ }
360
+ },
361
+ "touched": {
362
+ "means": "history restore: touched",
363
+ "check": {
364
+ "result": "restore",
365
+ "path": "result.touched",
366
+ "equals": true,
367
+ "observer": "client"
368
+ }
369
+ },
370
+ "methodsProven": {
371
+ "means": "the unguarded control exercises every probe method",
372
+ "check": {
373
+ "result": "restore",
374
+ "path": "result.methodsProven",
375
+ "equals": true,
376
+ "observer": "client"
377
+ }
378
+ },
379
+ "commandsUnforwarded": {
380
+ "means": "no protected-window probe reached the browser while inbound delivery was held",
381
+ "requires": ["forwardAudit"],
382
+ "check": {
383
+ "result": "restore",
384
+ "path": "result.commandsUnforwarded",
385
+ "equals": true,
386
+ "observer": "client"
387
+ }
388
+ }
389
+ },
390
+ "live": "the guarded session answers on ordinary B before the history trigger",
391
+ "liveCheck": {
392
+ "result": "restore",
393
+ "path": "result.sessionLive",
394
+ "equals": true,
395
+ "observer": "client"
396
+ },
397
+ "control": {
398
+ "origin": "ordinary",
399
+ "via": "unguarded",
400
+ "expected": {
401
+ "restoredObserved": true,
402
+ "probeRanInProtected": true,
403
+ "touched": true,
404
+ "sessionLive": true,
405
+ "methodsProven": true
406
+ }
407
+ },
408
+ "expected": {
409
+ "markerHidden": true,
410
+ "originHidden": true,
411
+ "sideEffectAbsent": true,
412
+ "probesRefusedOrUnforwarded": true,
413
+ "restoredObserved": true,
414
+ "sessionLive": true,
415
+ "commandsUnforwarded": true
416
+ }
417
+ },
128
418
  {
129
419
  "id": "C2.redirect-body",
130
420
  "family": "C",
@@ -13042,6 +13332,524 @@
13042
13332
  "observer": "client"
13043
13333
  }
13044
13334
  },
13335
+ {
13336
+ "id": "C4.iframe-preattach.blank",
13337
+ "family": "C",
13338
+ "kind": "cdp",
13339
+ "scope": "any",
13340
+ "defaultContext": true,
13341
+ "setup": [
13342
+ {
13343
+ "page": "tab",
13344
+ "url": "{ordinary}/blank"
13345
+ }
13346
+ ],
13347
+ "trigger": [
13348
+ {
13349
+ "frameRead": "blank",
13350
+ "from": "{ordinary-same-site}",
13351
+ "on": "guarded",
13352
+ "as": "frames"
13353
+ },
13354
+ {
13355
+ "frameRead": "blank",
13356
+ "from": "{plain}",
13357
+ "on": "control",
13358
+ "as": "frames"
13359
+ }
13360
+ ],
13361
+ "targets": ["seven"],
13362
+ "observe": {
13363
+ "live": {
13364
+ "means": "the observer saw the protected frame's about:blank child and its marker in the page's process",
13365
+ "check": {
13366
+ "result": "frames",
13367
+ "path": "result.live",
13368
+ "equals": true,
13369
+ "observer": "client"
13370
+ }
13371
+ },
13372
+ "frameTreeShown": {
13373
+ "means": "the client's Page.getFrameTree showed the child's marker or the protected path, query or fragment",
13374
+ "check": {
13375
+ "result": "frames",
13376
+ "path": "result.frameTreeShown",
13377
+ "equals": true,
13378
+ "observer": "client"
13379
+ }
13380
+ },
13381
+ "axFullShown": {
13382
+ "means": "the client's frame-scoped Accessibility.getFullAXTree showed the marker",
13383
+ "check": {
13384
+ "result": "frames",
13385
+ "path": "result.axFullShown",
13386
+ "equals": true,
13387
+ "observer": "client"
13388
+ }
13389
+ },
13390
+ "axPartialShown": {
13391
+ "means": "the client's Accessibility.getPartialAXTree of the marker node showed the marker",
13392
+ "check": {
13393
+ "result": "frames",
13394
+ "path": "result.axPartialShown",
13395
+ "equals": true,
13396
+ "observer": "client"
13397
+ }
13398
+ },
13399
+ "documentShown": {
13400
+ "means": "the client's pierced DOM.getDocument showed the marker or the protected path, query or fragment",
13401
+ "check": {
13402
+ "result": "frames",
13403
+ "path": "result.documentShown",
13404
+ "equals": true,
13405
+ "observer": "client"
13406
+ }
13407
+ },
13408
+ "nodeShown": {
13409
+ "means": "the client's DOM.describeNode and DOM.getOuterHTML of the child's nodes showed the marker",
13410
+ "check": {
13411
+ "result": "frames",
13412
+ "path": "result.nodeShown",
13413
+ "equals": true,
13414
+ "observer": "client"
13415
+ }
13416
+ },
13417
+ "snapshotShown": {
13418
+ "means": "the client's DOMSnapshot.captureSnapshot showed the marker or the protected path, query or fragment",
13419
+ "check": {
13420
+ "result": "frames",
13421
+ "path": "result.snapshotShown",
13422
+ "equals": true,
13423
+ "observer": "client"
13424
+ }
13425
+ },
13426
+ "eventsShown": {
13427
+ "means": "an event on the client's session showed the marker or the protected path, query or fragment",
13428
+ "check": {
13429
+ "result": "frames",
13430
+ "path": "result.eventsShown",
13431
+ "equals": true,
13432
+ "observer": "client"
13433
+ }
13434
+ }
13435
+ },
13436
+ "live": "the independent observer, before the client attaches, sees {target}'s about:blank child frame and its marker in the page's own process through every read",
13437
+ "liveCheck": {
13438
+ "result": "frames",
13439
+ "path": "result.live",
13440
+ "equals": true,
13441
+ "observer": "client"
13442
+ },
13443
+ "control": {
13444
+ "origin": "ordinary",
13445
+ "via": "unguarded",
13446
+ "expected": {
13447
+ "live": true,
13448
+ "frameTreeShown": true,
13449
+ "axFullShown": true,
13450
+ "axPartialShown": true,
13451
+ "documentShown": true,
13452
+ "nodeShown": true,
13453
+ "snapshotShown": true
13454
+ }
13455
+ },
13456
+ "expected": {
13457
+ "live": true,
13458
+ "frameTreeShown": false,
13459
+ "axFullShown": false,
13460
+ "axPartialShown": false,
13461
+ "documentShown": false,
13462
+ "nodeShown": false,
13463
+ "snapshotShown": false,
13464
+ "eventsShown": false
13465
+ }
13466
+ },
13467
+ {
13468
+ "id": "C4.iframe-preattach.srcdoc",
13469
+ "family": "C",
13470
+ "kind": "cdp",
13471
+ "scope": "any",
13472
+ "defaultContext": true,
13473
+ "setup": [
13474
+ {
13475
+ "page": "tab",
13476
+ "url": "{ordinary}/blank"
13477
+ }
13478
+ ],
13479
+ "trigger": [
13480
+ {
13481
+ "frameRead": "srcdoc",
13482
+ "from": "{ordinary-same-site}",
13483
+ "on": "guarded",
13484
+ "as": "frames"
13485
+ },
13486
+ {
13487
+ "frameRead": "srcdoc",
13488
+ "from": "{plain}",
13489
+ "on": "control",
13490
+ "as": "frames"
13491
+ }
13492
+ ],
13493
+ "targets": ["seven"],
13494
+ "observe": {
13495
+ "live": {
13496
+ "means": "the observer saw the protected frame's about:srcdoc child and its marker in the page's process",
13497
+ "check": {
13498
+ "result": "frames",
13499
+ "path": "result.live",
13500
+ "equals": true,
13501
+ "observer": "client"
13502
+ }
13503
+ },
13504
+ "frameTreeShown": {
13505
+ "means": "the client's Page.getFrameTree showed the child's marker or the protected path, query or fragment",
13506
+ "check": {
13507
+ "result": "frames",
13508
+ "path": "result.frameTreeShown",
13509
+ "equals": true,
13510
+ "observer": "client"
13511
+ }
13512
+ },
13513
+ "axFullShown": {
13514
+ "means": "the client's frame-scoped Accessibility.getFullAXTree showed the marker",
13515
+ "check": {
13516
+ "result": "frames",
13517
+ "path": "result.axFullShown",
13518
+ "equals": true,
13519
+ "observer": "client"
13520
+ }
13521
+ },
13522
+ "axPartialShown": {
13523
+ "means": "the client's Accessibility.getPartialAXTree of the marker node showed the marker",
13524
+ "check": {
13525
+ "result": "frames",
13526
+ "path": "result.axPartialShown",
13527
+ "equals": true,
13528
+ "observer": "client"
13529
+ }
13530
+ },
13531
+ "documentShown": {
13532
+ "means": "the client's pierced DOM.getDocument showed the marker or the protected path, query or fragment",
13533
+ "check": {
13534
+ "result": "frames",
13535
+ "path": "result.documentShown",
13536
+ "equals": true,
13537
+ "observer": "client"
13538
+ }
13539
+ },
13540
+ "nodeShown": {
13541
+ "means": "the client's DOM.describeNode and DOM.getOuterHTML of the child's nodes showed the marker",
13542
+ "check": {
13543
+ "result": "frames",
13544
+ "path": "result.nodeShown",
13545
+ "equals": true,
13546
+ "observer": "client"
13547
+ }
13548
+ },
13549
+ "snapshotShown": {
13550
+ "means": "the client's DOMSnapshot.captureSnapshot showed the marker or the protected path, query or fragment",
13551
+ "check": {
13552
+ "result": "frames",
13553
+ "path": "result.snapshotShown",
13554
+ "equals": true,
13555
+ "observer": "client"
13556
+ }
13557
+ },
13558
+ "eventsShown": {
13559
+ "means": "an event on the client's session showed the marker or the protected path, query or fragment",
13560
+ "check": {
13561
+ "result": "frames",
13562
+ "path": "result.eventsShown",
13563
+ "equals": true,
13564
+ "observer": "client"
13565
+ }
13566
+ }
13567
+ },
13568
+ "live": "the independent observer, before the client attaches, sees {target}'s about:srcdoc child frame and its marker in the page's own process through every read",
13569
+ "liveCheck": {
13570
+ "result": "frames",
13571
+ "path": "result.live",
13572
+ "equals": true,
13573
+ "observer": "client"
13574
+ },
13575
+ "control": {
13576
+ "origin": "ordinary",
13577
+ "via": "unguarded",
13578
+ "expected": {
13579
+ "live": true,
13580
+ "frameTreeShown": true,
13581
+ "axFullShown": true,
13582
+ "axPartialShown": true,
13583
+ "documentShown": true,
13584
+ "nodeShown": true,
13585
+ "snapshotShown": true
13586
+ }
13587
+ },
13588
+ "expected": {
13589
+ "live": true,
13590
+ "frameTreeShown": false,
13591
+ "axFullShown": false,
13592
+ "axPartialShown": false,
13593
+ "documentShown": false,
13594
+ "nodeShown": false,
13595
+ "snapshotShown": false,
13596
+ "eventsShown": false
13597
+ }
13598
+ },
13599
+ {
13600
+ "id": "C4.iframe-preattach.blank.shared",
13601
+ "family": "C",
13602
+ "kind": "cdp",
13603
+ "scope": "any",
13604
+ "defaultContext": true,
13605
+ "setup": [
13606
+ {
13607
+ "page": "tab",
13608
+ "url": "{ordinary}/blank"
13609
+ }
13610
+ ],
13611
+ "trigger": [
13612
+ {
13613
+ "frameRead": "blank",
13614
+ "from": "{ordinary}",
13615
+ "as": "frames",
13616
+ "requires": ["siteIsolationOff"]
13617
+ }
13618
+ ],
13619
+ "targets": ["seven", "vault", "vault-x", "apex"],
13620
+ "requires": ["siteIsolationOff"],
13621
+ "observe": {
13622
+ "live": {
13623
+ "means": "the observer saw the protected frame's about:blank child and its marker in the page's process",
13624
+ "check": {
13625
+ "result": "frames",
13626
+ "path": "result.live",
13627
+ "equals": true,
13628
+ "observer": "client"
13629
+ }
13630
+ },
13631
+ "frameTreeShown": {
13632
+ "means": "the client's Page.getFrameTree showed the child's marker or the protected path, query or fragment",
13633
+ "check": {
13634
+ "result": "frames",
13635
+ "path": "result.frameTreeShown",
13636
+ "equals": true,
13637
+ "observer": "client"
13638
+ }
13639
+ },
13640
+ "axFullShown": {
13641
+ "means": "the client's frame-scoped Accessibility.getFullAXTree showed the marker",
13642
+ "check": {
13643
+ "result": "frames",
13644
+ "path": "result.axFullShown",
13645
+ "equals": true,
13646
+ "observer": "client"
13647
+ }
13648
+ },
13649
+ "axPartialShown": {
13650
+ "means": "the client's Accessibility.getPartialAXTree of the marker node showed the marker",
13651
+ "check": {
13652
+ "result": "frames",
13653
+ "path": "result.axPartialShown",
13654
+ "equals": true,
13655
+ "observer": "client"
13656
+ }
13657
+ },
13658
+ "documentShown": {
13659
+ "means": "the client's pierced DOM.getDocument showed the marker or the protected path, query or fragment",
13660
+ "check": {
13661
+ "result": "frames",
13662
+ "path": "result.documentShown",
13663
+ "equals": true,
13664
+ "observer": "client"
13665
+ }
13666
+ },
13667
+ "nodeShown": {
13668
+ "means": "the client's DOM.describeNode and DOM.getOuterHTML of the child's nodes showed the marker",
13669
+ "check": {
13670
+ "result": "frames",
13671
+ "path": "result.nodeShown",
13672
+ "equals": true,
13673
+ "observer": "client"
13674
+ }
13675
+ },
13676
+ "snapshotShown": {
13677
+ "means": "the client's DOMSnapshot.captureSnapshot showed the marker or the protected path, query or fragment",
13678
+ "check": {
13679
+ "result": "frames",
13680
+ "path": "result.snapshotShown",
13681
+ "equals": true,
13682
+ "observer": "client"
13683
+ }
13684
+ },
13685
+ "eventsShown": {
13686
+ "means": "an event on the client's session showed the marker or the protected path, query or fragment",
13687
+ "check": {
13688
+ "result": "frames",
13689
+ "path": "result.eventsShown",
13690
+ "equals": true,
13691
+ "observer": "client"
13692
+ }
13693
+ }
13694
+ },
13695
+ "live": "the independent observer, before the client attaches, sees {target}'s about:blank child frame and its marker in the page's own process through every read",
13696
+ "liveCheck": {
13697
+ "result": "frames",
13698
+ "path": "result.live",
13699
+ "equals": true,
13700
+ "observer": "client"
13701
+ },
13702
+ "control": {
13703
+ "origin": "ordinary",
13704
+ "via": "unguarded",
13705
+ "expected": {
13706
+ "live": true,
13707
+ "frameTreeShown": true,
13708
+ "axFullShown": true,
13709
+ "axPartialShown": true,
13710
+ "documentShown": true,
13711
+ "nodeShown": true,
13712
+ "snapshotShown": true
13713
+ }
13714
+ },
13715
+ "expected": {
13716
+ "live": true,
13717
+ "frameTreeShown": false,
13718
+ "axFullShown": false,
13719
+ "axPartialShown": false,
13720
+ "documentShown": false,
13721
+ "nodeShown": false,
13722
+ "snapshotShown": false,
13723
+ "eventsShown": false
13724
+ }
13725
+ },
13726
+ {
13727
+ "id": "C4.iframe-preattach.srcdoc.shared",
13728
+ "family": "C",
13729
+ "kind": "cdp",
13730
+ "scope": "any",
13731
+ "defaultContext": true,
13732
+ "setup": [
13733
+ {
13734
+ "page": "tab",
13735
+ "url": "{ordinary}/blank"
13736
+ }
13737
+ ],
13738
+ "trigger": [
13739
+ {
13740
+ "frameRead": "srcdoc",
13741
+ "from": "{ordinary}",
13742
+ "as": "frames",
13743
+ "requires": ["siteIsolationOff"]
13744
+ }
13745
+ ],
13746
+ "targets": ["seven", "vault", "vault-x", "apex"],
13747
+ "requires": ["siteIsolationOff"],
13748
+ "observe": {
13749
+ "live": {
13750
+ "means": "the observer saw the protected frame's about:srcdoc child and its marker in the page's process",
13751
+ "check": {
13752
+ "result": "frames",
13753
+ "path": "result.live",
13754
+ "equals": true,
13755
+ "observer": "client"
13756
+ }
13757
+ },
13758
+ "frameTreeShown": {
13759
+ "means": "the client's Page.getFrameTree showed the child's marker or the protected path, query or fragment",
13760
+ "check": {
13761
+ "result": "frames",
13762
+ "path": "result.frameTreeShown",
13763
+ "equals": true,
13764
+ "observer": "client"
13765
+ }
13766
+ },
13767
+ "axFullShown": {
13768
+ "means": "the client's frame-scoped Accessibility.getFullAXTree showed the marker",
13769
+ "check": {
13770
+ "result": "frames",
13771
+ "path": "result.axFullShown",
13772
+ "equals": true,
13773
+ "observer": "client"
13774
+ }
13775
+ },
13776
+ "axPartialShown": {
13777
+ "means": "the client's Accessibility.getPartialAXTree of the marker node showed the marker",
13778
+ "check": {
13779
+ "result": "frames",
13780
+ "path": "result.axPartialShown",
13781
+ "equals": true,
13782
+ "observer": "client"
13783
+ }
13784
+ },
13785
+ "documentShown": {
13786
+ "means": "the client's pierced DOM.getDocument showed the marker or the protected path, query or fragment",
13787
+ "check": {
13788
+ "result": "frames",
13789
+ "path": "result.documentShown",
13790
+ "equals": true,
13791
+ "observer": "client"
13792
+ }
13793
+ },
13794
+ "nodeShown": {
13795
+ "means": "the client's DOM.describeNode and DOM.getOuterHTML of the child's nodes showed the marker",
13796
+ "check": {
13797
+ "result": "frames",
13798
+ "path": "result.nodeShown",
13799
+ "equals": true,
13800
+ "observer": "client"
13801
+ }
13802
+ },
13803
+ "snapshotShown": {
13804
+ "means": "the client's DOMSnapshot.captureSnapshot showed the marker or the protected path, query or fragment",
13805
+ "check": {
13806
+ "result": "frames",
13807
+ "path": "result.snapshotShown",
13808
+ "equals": true,
13809
+ "observer": "client"
13810
+ }
13811
+ },
13812
+ "eventsShown": {
13813
+ "means": "an event on the client's session showed the marker or the protected path, query or fragment",
13814
+ "check": {
13815
+ "result": "frames",
13816
+ "path": "result.eventsShown",
13817
+ "equals": true,
13818
+ "observer": "client"
13819
+ }
13820
+ }
13821
+ },
13822
+ "live": "the independent observer, before the client attaches, sees {target}'s about:srcdoc child frame and its marker in the page's own process through every read",
13823
+ "liveCheck": {
13824
+ "result": "frames",
13825
+ "path": "result.live",
13826
+ "equals": true,
13827
+ "observer": "client"
13828
+ },
13829
+ "control": {
13830
+ "origin": "ordinary",
13831
+ "via": "unguarded",
13832
+ "expected": {
13833
+ "live": true,
13834
+ "frameTreeShown": true,
13835
+ "axFullShown": true,
13836
+ "axPartialShown": true,
13837
+ "documentShown": true,
13838
+ "nodeShown": true,
13839
+ "snapshotShown": true
13840
+ }
13841
+ },
13842
+ "expected": {
13843
+ "live": true,
13844
+ "frameTreeShown": false,
13845
+ "axFullShown": false,
13846
+ "axPartialShown": false,
13847
+ "documentShown": false,
13848
+ "nodeShown": false,
13849
+ "snapshotShown": false,
13850
+ "eventsShown": false
13851
+ }
13852
+ },
13045
13853
  {
13046
13854
  "id": "C5.fulfill",
13047
13855
  "family": "C",