@xnng/browser-relay 1.6.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.
Files changed (79) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +445 -0
  3. package/docs/README.zh-CN.md +421 -0
  4. package/docs/benchmarks/browser-gaps-codex-ax.json +418 -0
  5. package/docs/benchmarks/browser-gaps-relay-after.json +655 -0
  6. package/docs/benchmarks/browser-gaps-relay-baseline.json +679 -0
  7. package/docs/benchmarks/browser-readiness-cost.json +106 -0
  8. package/docs/benchmarks/browser-runtime-balanced-headed.json +412 -0
  9. package/docs/benchmarks/browser-runtime-balanced-rtt50.json +412 -0
  10. package/docs/benchmarks/browser-runtime-balanced.json +412 -0
  11. package/docs/benchmarks/browser-runtime-rtt50.json +194 -0
  12. package/docs/benchmarks/browser-runtime.json +254 -0
  13. package/docs/benchmarks/browser-use-parity.json +54 -0
  14. package/docs/benchmarks/codex-extension-audit.json +131 -0
  15. package/docs/benchmarks/codex-native-protocol.md +69 -0
  16. package/docs/benchmarks/codex-native-replay.js +116 -0
  17. package/docs/benchmarks/codex-native-status.json +81 -0
  18. package/docs/benchmarks/codex-native.json +1003 -0
  19. package/docs/benchmarks/extension-sessions.png +0 -0
  20. package/docs/benchmarks/extension-tasks.png +0 -0
  21. package/docs/benchmarks/iframe-routing-regression.json +37 -0
  22. package/docs/browser-use-comparison.md +331 -0
  23. package/docs/browser-use-gap-audit.md +141 -0
  24. package/docs/browser-use-parity.md +105 -0
  25. package/docs/demo/intranet.html +103 -0
  26. package/docs/releases/v1.5.0.md +59 -0
  27. package/docs/releases/v1.5.1.md +16 -0
  28. package/docs/releases/v1.5.2.md +42 -0
  29. package/docs/releases/v1.5.3.md +33 -0
  30. package/docs/releases/v1.5.4.md +42 -0
  31. package/docs/releases/v1.6.0.md +16 -0
  32. package/docs/remote-control-hub.md +523 -0
  33. package/extension/activity.js +328 -0
  34. package/extension/automation.js +1839 -0
  35. package/extension/background.js +1854 -0
  36. package/extension/i18n.js +149 -0
  37. package/extension/icons/icon128.png +0 -0
  38. package/extension/icons/icon16.png +0 -0
  39. package/extension/icons/icon32.png +0 -0
  40. package/extension/icons/icon48.png +0 -0
  41. package/extension/manifest.json +47 -0
  42. package/extension/observations.js +109 -0
  43. package/extension/options.html +289 -0
  44. package/extension/options.js +269 -0
  45. package/extension/popup.html +74 -0
  46. package/extension/popup.js +105 -0
  47. package/extension/protocol.js +45 -0
  48. package/extension/remote-auth.js +18 -0
  49. package/extension/sessions.js +134 -0
  50. package/extension/snapshot.js +161 -0
  51. package/extension/task-groups.js +108 -0
  52. package/extension/tasks.js +186 -0
  53. package/extension/wait.js +89 -0
  54. package/hub/README.md +42 -0
  55. package/hub/package-lock.json +1544 -0
  56. package/hub/package.json +13 -0
  57. package/hub/src/rpc.js +41 -0
  58. package/hub/src/worker.js +322 -0
  59. package/hub/wrangler.example.toml +19 -0
  60. package/package.json +83 -0
  61. package/server/cdp-bridge.js +200 -0
  62. package/server/cli.js +1798 -0
  63. package/server/hub-server.js +258 -0
  64. package/server/install.js +250 -0
  65. package/server/mcp-server.js +504 -0
  66. package/server/npx-runner.js +96 -0
  67. package/server/relay-server.js +1356 -0
  68. package/server/remote-protocol.js +76 -0
  69. package/server/runtime-worker.js +166 -0
  70. package/server/script-runtime.js +189 -0
  71. package/server/sdk.js +307 -0
  72. package/server/service-state.js +103 -0
  73. package/server/snapshot.js +161 -0
  74. package/server/uninstall.js +61 -0
  75. package/server/windows-service-entry.js +58 -0
  76. package/server/windows-service.js +360 -0
  77. package/skills/browser-relay/SKILL.md +192 -0
  78. package/skills/browser-relay/references/legacy-api.md +163 -0
  79. package/skills/browser-relay/references/runtime.md +240 -0
@@ -0,0 +1,655 @@
1
+ {
2
+ "measuredAt": "2026-09-09T06:44:14.939Z",
3
+ "label": "after",
4
+ "browser": "153.0.8010.12",
5
+ "viewport": {
6
+ "width": 1466,
7
+ "height": 925
8
+ },
9
+ "headless": false,
10
+ "scope": "UI outcome probes, not a general model success benchmark. Refusal probes additionally require a surfaced error. Disabled option is an explicit UI-faithfulness criterion, not an assertion about the Playwright API contract.",
11
+ "summary": {
12
+ "delayed-enabled": {
13
+ "runs": 3,
14
+ "successes": 3
15
+ },
16
+ "appearance": {
17
+ "runs": 3,
18
+ "successes": 3
19
+ },
20
+ "temporary-cover": {
21
+ "runs": 3,
22
+ "successes": 3
23
+ },
24
+ "moving": {
25
+ "runs": 3,
26
+ "successes": 3
27
+ },
28
+ "scoped": {
29
+ "runs": 3,
30
+ "successes": 3
31
+ },
32
+ "rerender": {
33
+ "runs": 3,
34
+ "successes": 3
35
+ },
36
+ "trusted-checkbox": {
37
+ "runs": 3,
38
+ "successes": 3
39
+ },
40
+ "custom-checkbox": {
41
+ "runs": 3,
42
+ "successes": 3
43
+ },
44
+ "disabled-option": {
45
+ "runs": 3,
46
+ "successes": 3
47
+ },
48
+ "readonly": {
49
+ "runs": 3,
50
+ "successes": 3
51
+ },
52
+ "richtext": {
53
+ "runs": 3,
54
+ "successes": 3
55
+ },
56
+ "shadow-cover": {
57
+ "runs": 3,
58
+ "successes": 3
59
+ },
60
+ "frame-cover": {
61
+ "runs": 3,
62
+ "successes": 3
63
+ }
64
+ },
65
+ "samples": [
66
+ {
67
+ "case": "delayed-enabled",
68
+ "iteration": 0,
69
+ "expectedResult": "Enabled done",
70
+ "expectRefusal": false,
71
+ "success": true,
72
+ "elapsedMs": 844.2,
73
+ "error": null,
74
+ "visibleResult": "Enabled done",
75
+ "controlValue": null,
76
+ "coveredFrameText": null,
77
+ "initialState": "[e08b0359a_1] RootWebArea \"Browser reliability probes\" focused=true\n[e08b0359a_2] heading \"Browser reliability probes\" level=1\n[e08b0359a_3] status\n[e08b0359a_5] StaticText \"Case: delayed-enabled\"\n[e08b0359a_6] button \"Start enabling\"\n[e08b0359a_7] button \"Delayed action\" disabled=true\n[e08b0359a_8] StaticText \"Ready\"\n[e08b0359a_11] RootWebArea \"Frame\" frame=946549C4088FDB0D87C488CB7EC58733",
78
+ "finalState": "- [e08b0359a_8] StaticText \"Ready\"\n~ [e08b0359a_7] button \"Delayed action\" focused=true\n+ [e08b0359a_13] StaticText \"Enabled done\""
79
+ },
80
+ {
81
+ "case": "appearance",
82
+ "iteration": 0,
83
+ "expectedResult": "Appeared done",
84
+ "expectRefusal": false,
85
+ "success": true,
86
+ "elapsedMs": 854,
87
+ "error": null,
88
+ "visibleResult": "Appeared done",
89
+ "controlValue": null,
90
+ "coveredFrameText": null,
91
+ "initialState": "[e646723b9_1] RootWebArea \"Browser reliability probes\" focused=true\n[e646723b9_2] heading \"Browser reliability probes\" level=1\n[e646723b9_3] status\n[e646723b9_5] StaticText \"Case: appearance\"\n[e646723b9_6] button \"Start appearance\"\n[e646723b9_7] StaticText \"Ready\"\n[e646723b9_8] StaticText \"Expected target: Appeared action\"\n[e646723b9_10] RootWebArea \"Frame\" frame=3426F50056AED9D213C5D57EF05F7DA3",
92
+ "finalState": "- [e646723b9_7] StaticText \"Ready\"\n+ [e646723b9_14] StaticText \"Appeared done\"\n+ [e646723b9_12] button \"Appeared action\" focused=true"
93
+ },
94
+ {
95
+ "case": "temporary-cover",
96
+ "iteration": 0,
97
+ "expectedResult": "Covered done",
98
+ "expectRefusal": false,
99
+ "success": true,
100
+ "elapsedMs": 878.9,
101
+ "error": null,
102
+ "visibleResult": "Covered done",
103
+ "controlValue": null,
104
+ "coveredFrameText": null,
105
+ "initialState": "[ed0b6be69_1] RootWebArea \"Browser reliability probes\" focused=true\n[ed0b6be69_2] heading \"Browser reliability probes\" level=1\n[ed0b6be69_3] status\n[ed0b6be69_5] StaticText \"Case: temporary-cover\"\n[ed0b6be69_6] button \"Start temporary cover\"\n[ed0b6be69_7] StaticText \"Ready\"\n[ed0b6be69_9] button \"Covered action\"\n[ed0b6be69_11] RootWebArea \"Frame\" frame=8C35A48B7976782B382793938367164C",
106
+ "finalState": "- [ed0b6be69_7] StaticText \"Ready\"\n+ [ed0b6be69_14] StaticText \"Covered done\"\n~ [ed0b6be69_9] button \"Covered action\" focused=true"
107
+ },
108
+ {
109
+ "case": "moving",
110
+ "iteration": 0,
111
+ "expectedResult": "Moving done",
112
+ "expectRefusal": false,
113
+ "success": true,
114
+ "elapsedMs": 859.9,
115
+ "error": null,
116
+ "visibleResult": "Moving done",
117
+ "controlValue": null,
118
+ "coveredFrameText": null,
119
+ "initialState": "[ec46c867e_1] RootWebArea \"Browser reliability probes\" focused=true\n[ec46c867e_2] heading \"Browser reliability probes\" level=1\n[ec46c867e_3] status\n[ec46c867e_5] StaticText \"Case: moving\"\n[ec46c867e_6] button \"Start movement\"\n[ec46c867e_7] StaticText \"Ready\"\n[ec46c867e_9] button \"Moving action\"\n[ec46c867e_10] StaticText \"Go\"\n[ec46c867e_11] RootWebArea \"Frame\" frame=86CA818310E22670ED2A068BF43FB9CC",
120
+ "finalState": "- [ec46c867e_7] StaticText \"Ready\"\n+ [ec46c867e_13] StaticText \"Moving done\"\n~ [ec46c867e_9] button \"Moving action\" focused=true"
121
+ },
122
+ {
123
+ "case": "scoped",
124
+ "iteration": 0,
125
+ "expectedResult": "South saved",
126
+ "expectRefusal": false,
127
+ "success": true,
128
+ "elapsedMs": 81.1,
129
+ "error": null,
130
+ "visibleResult": "South saved",
131
+ "controlValue": null,
132
+ "coveredFrameText": null,
133
+ "initialState": "[e7c089a02_1] RootWebArea \"Browser reliability probes\" focused=true\n[e7c089a02_2] heading \"Browser reliability probes\" level=1\n[e7c089a02_3] status\n[e7c089a02_5] StaticText \"Case: scoped\"\n[e7c089a02_6] group \"North\"\n[e7c089a02_7] group \"South\"\n[e7c089a02_8] StaticText \"Ready\"\n[e7c089a02_9] button \"Save\" within=\"e7c089a02_6\"\n[e7c089a02_10] button \"Save\" within=\"e7c089a02_7\"\n[e7c089a02_11] StaticText \"North\" within=\"e7c089a02_6\"\n[e7c089a02_13] StaticText \"South\" within=\"e7c089a02_7\"\n[e7c089a02_15] RootWebArea \"Frame\" frame=8D0CCC4729859AE2DC1C3E7D25CD05A5",
134
+ "finalState": "- [e7c089a02_8] StaticText \"Ready\"\n+ [e7c089a02_16] StaticText \"South saved\"\n~ [e7c089a02_10] button \"Save\" focused=true within=\"e7c089a02_7\""
135
+ },
136
+ {
137
+ "case": "rerender",
138
+ "iteration": 0,
139
+ "expectedResult": "Replacement done",
140
+ "expectRefusal": false,
141
+ "success": true,
142
+ "elapsedMs": 142.7,
143
+ "error": null,
144
+ "visibleResult": "Replacement done",
145
+ "controlValue": null,
146
+ "coveredFrameText": null,
147
+ "initialState": "[eb88d4695_1] RootWebArea \"Browser reliability probes\" focused=true\n[eb88d4695_2] heading \"Browser reliability probes\" level=1\n[eb88d4695_3] status\n[eb88d4695_5] StaticText \"Case: rerender\"\n[eb88d4695_6] button \"Replace target\"\n[eb88d4695_7] button \"Replaceable action\"\n[eb88d4695_8] StaticText \"Ready\"\n[eb88d4695_11] RootWebArea \"Frame\" frame=E7864069DC03C0C2ED18529E5C31BB83",
148
+ "finalState": "- [eb88d4695_7] button \"Replaceable action\"\n- [eb88d4695_8] StaticText \"Ready\"\n+ [eb88d4695_12] button \"Replaceable action\" focused=true\n+ [eb88d4695_15] StaticText \"Replacement done\""
149
+ },
150
+ {
151
+ "case": "trusted-checkbox",
152
+ "iteration": 0,
153
+ "expectedResult": "Checked=true; trusted=true",
154
+ "expectRefusal": false,
155
+ "success": true,
156
+ "elapsedMs": 24.4,
157
+ "error": null,
158
+ "visibleResult": "Checked=true; trusted=true",
159
+ "controlValue": null,
160
+ "coveredFrameText": null,
161
+ "initialState": "[e30e453de_1] RootWebArea \"Browser reliability probes\" focused=true\n[e30e453de_2] heading \"Browser reliability probes\" level=1\n[e30e453de_3] status\n[e30e453de_5] StaticText \"Case: trusted-checkbox\"\n[e30e453de_6] checkbox \"Trusted choice\" checked=\"false\"\n[e30e453de_7] StaticText \"Ready\"\n[e30e453de_8] RootWebArea \"Frame\" frame=293B728A0881E2DF4CF92EB218D7550B",
162
+ "finalState": "- [e30e453de_7] StaticText \"Ready\"\n~ [e30e453de_6] checkbox \"Trusted choice\" focused=true checked=\"true\"\n+ [e30e453de_9] StaticText \"Checked=true; trusted=true\""
163
+ },
164
+ {
165
+ "case": "custom-checkbox",
166
+ "iteration": 0,
167
+ "expectedResult": "Custom checked=true",
168
+ "expectRefusal": false,
169
+ "success": true,
170
+ "elapsedMs": 25.4,
171
+ "error": null,
172
+ "visibleResult": "Custom checked=true",
173
+ "controlValue": null,
174
+ "coveredFrameText": null,
175
+ "initialState": "[e8c926f10_1] RootWebArea \"Browser reliability probes\" focused=true\n[e8c926f10_2] heading \"Browser reliability probes\" level=1\n[e8c926f10_3] status\n[e8c926f10_5] StaticText \"Case: custom-checkbox\"\n[e8c926f10_6] checkbox \"Custom choice\" checked=\"false\"\n[e8c926f10_7] StaticText \"Ready\"\n[e8c926f10_8] StaticText \"Custom choice\"\n[e8c926f10_9] RootWebArea \"Frame\" frame=F68A625FD069CE7D8B1A9A38277C5D0A",
176
+ "finalState": "- [e8c926f10_7] StaticText \"Ready\"\n~ [e8c926f10_6] checkbox \"Custom choice\" focused=true checked=\"true\"\n+ [e8c926f10_10] StaticText \"Custom checked=true\""
177
+ },
178
+ {
179
+ "case": "disabled-option",
180
+ "iteration": 0,
181
+ "expectedResult": "Ready",
182
+ "expectRefusal": true,
183
+ "success": true,
184
+ "elapsedMs": 7.4,
185
+ "error": {
186
+ "code": "option_disabled",
187
+ "message": "option_disabled"
188
+ },
189
+ "visibleResult": "Ready",
190
+ "controlValue": "open",
191
+ "coveredFrameText": null,
192
+ "initialState": "[ea76b044b_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea76b044b_2] heading \"Browser reliability probes\" level=1\n[ea76b044b_3] status\n[ea76b044b_5] StaticText \"Case: disabled-option\"\n[ea76b044b_6] StaticText \"Ready\"\n[ea76b044b_7] StaticText \"Availability\"\n[ea76b044b_8] combobox \"Availability\" value=\"Open\" expanded=false\n[ea76b044b_9] option \"Open\" selected=true\n[ea76b044b_10] option \"Closed\" disabled=true\n[ea76b044b_11] RootWebArea \"Frame\" frame=65FF8FF780F55DF148C51B15A02D3815",
193
+ "finalState": null
194
+ },
195
+ {
196
+ "case": "readonly",
197
+ "iteration": 0,
198
+ "expectedResult": "Ready",
199
+ "expectRefusal": true,
200
+ "success": true,
201
+ "elapsedMs": 5.9,
202
+ "error": {
203
+ "code": "not_editable",
204
+ "message": "not_editable"
205
+ },
206
+ "visibleResult": "Ready",
207
+ "controlValue": "unchanged",
208
+ "coveredFrameText": null,
209
+ "initialState": "[e57a28580_1] RootWebArea \"Browser reliability probes\" focused=true\n[e57a28580_2] heading \"Browser reliability probes\" level=1\n[e57a28580_3] status\n[e57a28580_5] StaticText \"Case: readonly\"\n[e57a28580_6] StaticText \"Ready\"\n[e57a28580_7] StaticText \"Read only\"\n[e57a28580_8] textbox \"Read only\" required=false\n[e57a28580_9] StaticText \"unchanged\"\n[e57a28580_10] RootWebArea \"Frame\" frame=7DA548B36A8CBB1D68A7284CF0493EDE",
210
+ "finalState": null
211
+ },
212
+ {
213
+ "case": "richtext",
214
+ "iteration": 0,
215
+ "expectedResult": "Rich=New note",
216
+ "expectRefusal": false,
217
+ "success": true,
218
+ "elapsedMs": 30,
219
+ "error": null,
220
+ "visibleResult": "Rich=New note",
221
+ "controlValue": null,
222
+ "coveredFrameText": null,
223
+ "initialState": "[e24aa96bd_1] RootWebArea \"Browser reliability probes\" focused=true\n[e24aa96bd_2] heading \"Browser reliability probes\" level=1\n[e24aa96bd_3] status\n[e24aa96bd_5] StaticText \"Case: richtext\"\n[e24aa96bd_6] textbox \"Rich note\" required=false\n[e24aa96bd_7] StaticText \"Ready\"\n[e24aa96bd_8] StaticText \"Old note\"\n[e24aa96bd_9] RootWebArea \"Frame\" frame=BBE3CE4CD050CD1BBC1395157F3BA52E",
224
+ "finalState": "- [e24aa96bd_7] StaticText \"Ready\"\n- [e24aa96bd_8] StaticText \"Old note\"\n~ [e24aa96bd_6] textbox \"Rich note\" focused=true required=false\n+ [e24aa96bd_10] StaticText \"Rich=New note\"\n+ [e24aa96bd_11] StaticText \"New note\""
225
+ },
226
+ {
227
+ "case": "shadow-cover",
228
+ "iteration": 0,
229
+ "expectedResult": "Ready",
230
+ "expectRefusal": true,
231
+ "success": true,
232
+ "elapsedMs": 358.4,
233
+ "error": {
234
+ "code": "element_obscured",
235
+ "message": "Target is covered by another element"
236
+ },
237
+ "visibleResult": "Ready",
238
+ "controlValue": null,
239
+ "coveredFrameText": null,
240
+ "initialState": "[e46b8c721_1] RootWebArea \"Browser reliability probes\" focused=true\n[e46b8c721_2] heading \"Browser reliability probes\" level=1\n[e46b8c721_3] status\n[e46b8c721_5] StaticText \"Case: shadow-cover\"\n[e46b8c721_6] StaticText \"Ready\"\n[e46b8c721_7] button \"Shadow covered action\"\n[e46b8c721_8] StaticText \"Permanent cover\"\n[e46b8c721_10] RootWebArea \"Frame\" frame=EC69DFFAC776D541A471B122891E428C",
241
+ "finalState": null
242
+ },
243
+ {
244
+ "case": "frame-cover",
245
+ "iteration": 0,
246
+ "expectedResult": "Ready",
247
+ "expectRefusal": true,
248
+ "success": true,
249
+ "elapsedMs": 356.7,
250
+ "error": {
251
+ "code": "element_obscured",
252
+ "message": "Target iframe is clipped or covered at the action point"
253
+ },
254
+ "visibleResult": "Ready",
255
+ "controlValue": null,
256
+ "coveredFrameText": "Frame action",
257
+ "initialState": "[e8b5149f9_1] RootWebArea \"Browser reliability probes\" focused=true\n[e8b5149f9_2] heading \"Browser reliability probes\" level=1\n[e8b5149f9_3] status\n[e8b5149f9_5] StaticText \"Case: frame-cover\"\n[e8b5149f9_6] StaticText \"Ready\"\n[e8b5149f9_7] Iframe \"Covered frame\"\n[e8b5149f9_8] StaticText \"Permanent cover\"\n[e8b5149f9_9] RootWebArea \"Frame\" frame=A5A492F5D9225A0808BFA1B1F93E1E8F\n[e8b5149f9_10] button \"Frame action\" frame=A5A492F5D9225A0808BFA1B1F93E1E8F",
258
+ "finalState": null
259
+ },
260
+ {
261
+ "case": "delayed-enabled",
262
+ "iteration": 1,
263
+ "expectedResult": "Enabled done",
264
+ "expectRefusal": false,
265
+ "success": true,
266
+ "elapsedMs": 866.6,
267
+ "error": null,
268
+ "visibleResult": "Enabled done",
269
+ "controlValue": null,
270
+ "coveredFrameText": null,
271
+ "initialState": "[ed68cfb5e_1] RootWebArea \"Browser reliability probes\" focused=true\n[ed68cfb5e_2] heading \"Browser reliability probes\" level=1\n[ed68cfb5e_3] status\n[ed68cfb5e_5] StaticText \"Case: delayed-enabled\"\n[ed68cfb5e_6] button \"Start enabling\"\n[ed68cfb5e_7] button \"Delayed action\" disabled=true\n[ed68cfb5e_8] StaticText \"Ready\"\n[ed68cfb5e_11] RootWebArea \"Frame\" frame=C6CCD616CC6B3C47D08465FBBAB4C391",
272
+ "finalState": "- [ed68cfb5e_8] StaticText \"Ready\"\n~ [ed68cfb5e_7] button \"Delayed action\" focused=true\n+ [ed68cfb5e_13] StaticText \"Enabled done\""
273
+ },
274
+ {
275
+ "case": "appearance",
276
+ "iteration": 1,
277
+ "expectedResult": "Appeared done",
278
+ "expectRefusal": false,
279
+ "success": true,
280
+ "elapsedMs": 848.5,
281
+ "error": null,
282
+ "visibleResult": "Appeared done",
283
+ "controlValue": null,
284
+ "coveredFrameText": null,
285
+ "initialState": "[e56f5309c_1] RootWebArea \"Browser reliability probes\" focused=true\n[e56f5309c_2] heading \"Browser reliability probes\" level=1\n[e56f5309c_3] status\n[e56f5309c_5] StaticText \"Case: appearance\"\n[e56f5309c_6] button \"Start appearance\"\n[e56f5309c_7] StaticText \"Ready\"\n[e56f5309c_8] StaticText \"Expected target: Appeared action\"\n[e56f5309c_10] RootWebArea \"Frame\" frame=CCF07822ABE9FC1DCC33C47CD81EE41C",
286
+ "finalState": "- [e56f5309c_7] StaticText \"Ready\"\n+ [e56f5309c_14] StaticText \"Appeared done\"\n+ [e56f5309c_12] button \"Appeared action\" focused=true"
287
+ },
288
+ {
289
+ "case": "temporary-cover",
290
+ "iteration": 1,
291
+ "expectedResult": "Covered done",
292
+ "expectRefusal": false,
293
+ "success": true,
294
+ "elapsedMs": 873.5,
295
+ "error": null,
296
+ "visibleResult": "Covered done",
297
+ "controlValue": null,
298
+ "coveredFrameText": null,
299
+ "initialState": "[e14e3a034_1] RootWebArea \"Browser reliability probes\" focused=true\n[e14e3a034_2] heading \"Browser reliability probes\" level=1\n[e14e3a034_3] status\n[e14e3a034_5] StaticText \"Case: temporary-cover\"\n[e14e3a034_6] button \"Start temporary cover\"\n[e14e3a034_7] StaticText \"Ready\"\n[e14e3a034_9] button \"Covered action\"\n[e14e3a034_11] RootWebArea \"Frame\" frame=DA96CD68287D768D59FB91BC70D6CE8B",
300
+ "finalState": "- [e14e3a034_7] StaticText \"Ready\"\n+ [e14e3a034_14] StaticText \"Covered done\"\n~ [e14e3a034_9] button \"Covered action\" focused=true"
301
+ },
302
+ {
303
+ "case": "moving",
304
+ "iteration": 1,
305
+ "expectedResult": "Moving done",
306
+ "expectRefusal": false,
307
+ "success": true,
308
+ "elapsedMs": 866.5,
309
+ "error": null,
310
+ "visibleResult": "Moving done",
311
+ "controlValue": null,
312
+ "coveredFrameText": null,
313
+ "initialState": "[e4996030c_1] RootWebArea \"Browser reliability probes\" focused=true\n[e4996030c_2] heading \"Browser reliability probes\" level=1\n[e4996030c_3] status\n[e4996030c_5] StaticText \"Case: moving\"\n[e4996030c_6] button \"Start movement\"\n[e4996030c_7] StaticText \"Ready\"\n[e4996030c_9] button \"Moving action\"\n[e4996030c_10] StaticText \"Go\"\n[e4996030c_11] RootWebArea \"Frame\" frame=793BB750D580A6416CD0736BD8D5B011",
314
+ "finalState": "- [e4996030c_7] StaticText \"Ready\"\n+ [e4996030c_13] StaticText \"Moving done\"\n~ [e4996030c_9] button \"Moving action\" focused=true"
315
+ },
316
+ {
317
+ "case": "scoped",
318
+ "iteration": 1,
319
+ "expectedResult": "South saved",
320
+ "expectRefusal": false,
321
+ "success": true,
322
+ "elapsedMs": 87,
323
+ "error": null,
324
+ "visibleResult": "South saved",
325
+ "controlValue": null,
326
+ "coveredFrameText": null,
327
+ "initialState": "[e7393afb8_1] RootWebArea \"Browser reliability probes\" focused=true\n[e7393afb8_2] heading \"Browser reliability probes\" level=1\n[e7393afb8_3] status\n[e7393afb8_5] StaticText \"Case: scoped\"\n[e7393afb8_6] group \"North\"\n[e7393afb8_7] group \"South\"\n[e7393afb8_8] StaticText \"Ready\"\n[e7393afb8_9] button \"Save\" within=\"e7393afb8_6\"\n[e7393afb8_10] button \"Save\" within=\"e7393afb8_7\"\n[e7393afb8_11] StaticText \"North\" within=\"e7393afb8_6\"\n[e7393afb8_13] StaticText \"South\" within=\"e7393afb8_7\"\n[e7393afb8_15] RootWebArea \"Frame\" frame=40E361F697FEE5925079E5B98B35DFC1",
328
+ "finalState": "- [e7393afb8_8] StaticText \"Ready\"\n+ [e7393afb8_16] StaticText \"South saved\"\n~ [e7393afb8_10] button \"Save\" focused=true within=\"e7393afb8_7\""
329
+ },
330
+ {
331
+ "case": "rerender",
332
+ "iteration": 1,
333
+ "expectedResult": "Replacement done",
334
+ "expectRefusal": false,
335
+ "success": true,
336
+ "elapsedMs": 135.4,
337
+ "error": null,
338
+ "visibleResult": "Replacement done",
339
+ "controlValue": null,
340
+ "coveredFrameText": null,
341
+ "initialState": "[ef02614a5_1] RootWebArea \"Browser reliability probes\" focused=true\n[ef02614a5_2] heading \"Browser reliability probes\" level=1\n[ef02614a5_3] status\n[ef02614a5_5] StaticText \"Case: rerender\"\n[ef02614a5_6] button \"Replace target\"\n[ef02614a5_7] button \"Replaceable action\"\n[ef02614a5_8] StaticText \"Ready\"\n[ef02614a5_11] RootWebArea \"Frame\" frame=813839846C6177F80166BDC3444DDBAE",
342
+ "finalState": "- [ef02614a5_7] button \"Replaceable action\"\n- [ef02614a5_8] StaticText \"Ready\"\n+ [ef02614a5_12] button \"Replaceable action\" focused=true\n+ [ef02614a5_15] StaticText \"Replacement done\""
343
+ },
344
+ {
345
+ "case": "trusted-checkbox",
346
+ "iteration": 1,
347
+ "expectedResult": "Checked=true; trusted=true",
348
+ "expectRefusal": false,
349
+ "success": true,
350
+ "elapsedMs": 25.9,
351
+ "error": null,
352
+ "visibleResult": "Checked=true; trusted=true",
353
+ "controlValue": null,
354
+ "coveredFrameText": null,
355
+ "initialState": "[e6bc49a0e_1] RootWebArea \"Browser reliability probes\" focused=true\n[e6bc49a0e_2] heading \"Browser reliability probes\" level=1\n[e6bc49a0e_3] status\n[e6bc49a0e_5] StaticText \"Case: trusted-checkbox\"\n[e6bc49a0e_6] checkbox \"Trusted choice\" checked=\"false\"\n[e6bc49a0e_7] StaticText \"Ready\"\n[e6bc49a0e_8] RootWebArea \"Frame\" frame=F54FF992652B4BF1D96A1644DDC7636F",
356
+ "finalState": "- [e6bc49a0e_7] StaticText \"Ready\"\n~ [e6bc49a0e_6] checkbox \"Trusted choice\" focused=true checked=\"true\"\n+ [e6bc49a0e_9] StaticText \"Checked=true; trusted=true\""
357
+ },
358
+ {
359
+ "case": "custom-checkbox",
360
+ "iteration": 1,
361
+ "expectedResult": "Custom checked=true",
362
+ "expectRefusal": false,
363
+ "success": true,
364
+ "elapsedMs": 24.5,
365
+ "error": null,
366
+ "visibleResult": "Custom checked=true",
367
+ "controlValue": null,
368
+ "coveredFrameText": null,
369
+ "initialState": "[e7ce9082e_1] RootWebArea \"Browser reliability probes\" focused=true\n[e7ce9082e_2] heading \"Browser reliability probes\" level=1\n[e7ce9082e_3] status\n[e7ce9082e_5] StaticText \"Case: custom-checkbox\"\n[e7ce9082e_6] checkbox \"Custom choice\" checked=\"false\"\n[e7ce9082e_7] StaticText \"Ready\"\n[e7ce9082e_8] StaticText \"Custom choice\"\n[e7ce9082e_9] RootWebArea \"Frame\" frame=5DD3DE797A992FB8441D541F58F2B09B",
370
+ "finalState": "- [e7ce9082e_7] StaticText \"Ready\"\n~ [e7ce9082e_6] checkbox \"Custom choice\" focused=true checked=\"true\"\n+ [e7ce9082e_10] StaticText \"Custom checked=true\""
371
+ },
372
+ {
373
+ "case": "disabled-option",
374
+ "iteration": 1,
375
+ "expectedResult": "Ready",
376
+ "expectRefusal": true,
377
+ "success": true,
378
+ "elapsedMs": 7.3,
379
+ "error": {
380
+ "code": "option_disabled",
381
+ "message": "option_disabled"
382
+ },
383
+ "visibleResult": "Ready",
384
+ "controlValue": "open",
385
+ "coveredFrameText": null,
386
+ "initialState": "[e61f2df37_1] RootWebArea \"Browser reliability probes\" focused=true\n[e61f2df37_2] heading \"Browser reliability probes\" level=1\n[e61f2df37_3] status\n[e61f2df37_5] StaticText \"Case: disabled-option\"\n[e61f2df37_6] StaticText \"Ready\"\n[e61f2df37_7] StaticText \"Availability\"\n[e61f2df37_8] combobox \"Availability\" value=\"Open\" expanded=false\n[e61f2df37_9] option \"Open\" selected=true\n[e61f2df37_10] option \"Closed\" disabled=true\n[e61f2df37_11] RootWebArea \"Frame\" frame=4600F524D808A4A52EB8D638FABA233C",
387
+ "finalState": null
388
+ },
389
+ {
390
+ "case": "readonly",
391
+ "iteration": 1,
392
+ "expectedResult": "Ready",
393
+ "expectRefusal": true,
394
+ "success": true,
395
+ "elapsedMs": 6.6,
396
+ "error": {
397
+ "code": "not_editable",
398
+ "message": "not_editable"
399
+ },
400
+ "visibleResult": "Ready",
401
+ "controlValue": "unchanged",
402
+ "coveredFrameText": null,
403
+ "initialState": "[e0be9f439_1] RootWebArea \"Browser reliability probes\" focused=true\n[e0be9f439_2] heading \"Browser reliability probes\" level=1\n[e0be9f439_3] status\n[e0be9f439_5] StaticText \"Case: readonly\"\n[e0be9f439_6] StaticText \"Ready\"\n[e0be9f439_7] StaticText \"Read only\"\n[e0be9f439_8] textbox \"Read only\" required=false\n[e0be9f439_9] StaticText \"unchanged\"\n[e0be9f439_10] RootWebArea \"Frame\" frame=EF1105B2F0B2BDFD3D723D359D8C571C",
404
+ "finalState": null
405
+ },
406
+ {
407
+ "case": "richtext",
408
+ "iteration": 1,
409
+ "expectedResult": "Rich=New note",
410
+ "expectRefusal": false,
411
+ "success": true,
412
+ "elapsedMs": 25.4,
413
+ "error": null,
414
+ "visibleResult": "Rich=New note",
415
+ "controlValue": null,
416
+ "coveredFrameText": null,
417
+ "initialState": "[efef8de87_1] RootWebArea \"Browser reliability probes\" focused=true\n[efef8de87_2] heading \"Browser reliability probes\" level=1\n[efef8de87_3] status\n[efef8de87_5] StaticText \"Case: richtext\"\n[efef8de87_6] textbox \"Rich note\" required=false\n[efef8de87_7] StaticText \"Ready\"\n[efef8de87_8] StaticText \"Old note\"\n[efef8de87_9] RootWebArea \"Frame\" frame=FC52C965C01A0D1CE7A772B29B137384",
418
+ "finalState": "- [efef8de87_7] StaticText \"Ready\"\n- [efef8de87_8] StaticText \"Old note\"\n~ [efef8de87_6] textbox \"Rich note\" focused=true required=false\n+ [efef8de87_10] StaticText \"Rich=New note\"\n+ [efef8de87_11] StaticText \"New note\""
419
+ },
420
+ {
421
+ "case": "shadow-cover",
422
+ "iteration": 1,
423
+ "expectedResult": "Ready",
424
+ "expectRefusal": true,
425
+ "success": true,
426
+ "elapsedMs": 355.8,
427
+ "error": {
428
+ "code": "element_obscured",
429
+ "message": "Target is covered by another element"
430
+ },
431
+ "visibleResult": "Ready",
432
+ "controlValue": null,
433
+ "coveredFrameText": null,
434
+ "initialState": "[e54ec4777_1] RootWebArea \"Browser reliability probes\" focused=true\n[e54ec4777_2] heading \"Browser reliability probes\" level=1\n[e54ec4777_3] status\n[e54ec4777_5] StaticText \"Case: shadow-cover\"\n[e54ec4777_6] StaticText \"Ready\"\n[e54ec4777_7] button \"Shadow covered action\"\n[e54ec4777_8] StaticText \"Permanent cover\"\n[e54ec4777_10] RootWebArea \"Frame\" frame=0A561E6B38083819CF9186FCC9C64FE4",
435
+ "finalState": null
436
+ },
437
+ {
438
+ "case": "frame-cover",
439
+ "iteration": 1,
440
+ "expectedResult": "Ready",
441
+ "expectRefusal": true,
442
+ "success": true,
443
+ "elapsedMs": 356.9,
444
+ "error": {
445
+ "code": "element_obscured",
446
+ "message": "Target iframe is clipped or covered at the action point"
447
+ },
448
+ "visibleResult": "Ready",
449
+ "controlValue": null,
450
+ "coveredFrameText": "Frame action",
451
+ "initialState": "[ed053d490_1] RootWebArea \"Browser reliability probes\" focused=true\n[ed053d490_2] heading \"Browser reliability probes\" level=1\n[ed053d490_3] status\n[ed053d490_5] StaticText \"Case: frame-cover\"\n[ed053d490_6] StaticText \"Ready\"\n[ed053d490_7] Iframe \"Covered frame\"\n[ed053d490_8] StaticText \"Permanent cover\"\n[ed053d490_9] RootWebArea \"Frame\" frame=3995F9361F498749DDA5690B5B964B17\n[ed053d490_10] button \"Frame action\" frame=3995F9361F498749DDA5690B5B964B17",
452
+ "finalState": null
453
+ },
454
+ {
455
+ "case": "delayed-enabled",
456
+ "iteration": 2,
457
+ "expectedResult": "Enabled done",
458
+ "expectRefusal": false,
459
+ "success": true,
460
+ "elapsedMs": 860.3,
461
+ "error": null,
462
+ "visibleResult": "Enabled done",
463
+ "controlValue": null,
464
+ "coveredFrameText": null,
465
+ "initialState": "[e5e247319_1] RootWebArea \"Browser reliability probes\" focused=true\n[e5e247319_2] heading \"Browser reliability probes\" level=1\n[e5e247319_3] status\n[e5e247319_5] StaticText \"Case: delayed-enabled\"\n[e5e247319_6] button \"Start enabling\"\n[e5e247319_7] button \"Delayed action\" disabled=true\n[e5e247319_8] StaticText \"Ready\"\n[e5e247319_11] RootWebArea \"Frame\" frame=D76FE5D40AEEDCE1F73C6536400B0411",
466
+ "finalState": "- [e5e247319_8] StaticText \"Ready\"\n~ [e5e247319_7] button \"Delayed action\" focused=true\n+ [e5e247319_13] StaticText \"Enabled done\""
467
+ },
468
+ {
469
+ "case": "appearance",
470
+ "iteration": 2,
471
+ "expectedResult": "Appeared done",
472
+ "expectRefusal": false,
473
+ "success": true,
474
+ "elapsedMs": 871.8,
475
+ "error": null,
476
+ "visibleResult": "Appeared done",
477
+ "controlValue": null,
478
+ "coveredFrameText": null,
479
+ "initialState": "[e45a529b3_1] RootWebArea \"Browser reliability probes\" focused=true\n[e45a529b3_2] heading \"Browser reliability probes\" level=1\n[e45a529b3_3] status\n[e45a529b3_5] StaticText \"Case: appearance\"\n[e45a529b3_6] button \"Start appearance\"\n[e45a529b3_7] StaticText \"Ready\"\n[e45a529b3_8] StaticText \"Expected target: Appeared action\"\n[e45a529b3_10] RootWebArea \"Frame\" frame=8E08EC05DDF490D37C7C15EF487E2A11",
480
+ "finalState": "- [e45a529b3_7] StaticText \"Ready\"\n+ [e45a529b3_14] StaticText \"Appeared done\"\n+ [e45a529b3_12] button \"Appeared action\" focused=true"
481
+ },
482
+ {
483
+ "case": "temporary-cover",
484
+ "iteration": 2,
485
+ "expectedResult": "Covered done",
486
+ "expectRefusal": false,
487
+ "success": true,
488
+ "elapsedMs": 879.8,
489
+ "error": null,
490
+ "visibleResult": "Covered done",
491
+ "controlValue": null,
492
+ "coveredFrameText": null,
493
+ "initialState": "[e72516ab6_1] RootWebArea \"Browser reliability probes\" focused=true\n[e72516ab6_2] heading \"Browser reliability probes\" level=1\n[e72516ab6_3] status\n[e72516ab6_5] StaticText \"Case: temporary-cover\"\n[e72516ab6_6] button \"Start temporary cover\"\n[e72516ab6_7] StaticText \"Ready\"\n[e72516ab6_9] button \"Covered action\"\n[e72516ab6_11] RootWebArea \"Frame\" frame=C0656DCD74C76990BE12576DE7ACA38E",
494
+ "finalState": "- [e72516ab6_7] StaticText \"Ready\"\n+ [e72516ab6_14] StaticText \"Covered done\"\n~ [e72516ab6_9] button \"Covered action\" focused=true"
495
+ },
496
+ {
497
+ "case": "moving",
498
+ "iteration": 2,
499
+ "expectedResult": "Moving done",
500
+ "expectRefusal": false,
501
+ "success": true,
502
+ "elapsedMs": 873.7,
503
+ "error": null,
504
+ "visibleResult": "Moving done",
505
+ "controlValue": null,
506
+ "coveredFrameText": null,
507
+ "initialState": "[e36a0c692_1] RootWebArea \"Browser reliability probes\" focused=true\n[e36a0c692_2] heading \"Browser reliability probes\" level=1\n[e36a0c692_3] status\n[e36a0c692_5] StaticText \"Case: moving\"\n[e36a0c692_6] button \"Start movement\"\n[e36a0c692_7] StaticText \"Ready\"\n[e36a0c692_9] button \"Moving action\"\n[e36a0c692_10] StaticText \"Go\"\n[e36a0c692_11] RootWebArea \"Frame\" frame=34A68CD49745BB885B28E9A7D6E952CE",
508
+ "finalState": "- [e36a0c692_7] StaticText \"Ready\"\n+ [e36a0c692_13] StaticText \"Moving done\"\n~ [e36a0c692_9] button \"Moving action\" focused=true"
509
+ },
510
+ {
511
+ "case": "scoped",
512
+ "iteration": 2,
513
+ "expectedResult": "South saved",
514
+ "expectRefusal": false,
515
+ "success": true,
516
+ "elapsedMs": 80.7,
517
+ "error": null,
518
+ "visibleResult": "South saved",
519
+ "controlValue": null,
520
+ "coveredFrameText": null,
521
+ "initialState": "[e62816eac_1] RootWebArea \"Browser reliability probes\" focused=true\n[e62816eac_2] heading \"Browser reliability probes\" level=1\n[e62816eac_3] status\n[e62816eac_5] StaticText \"Case: scoped\"\n[e62816eac_6] group \"North\"\n[e62816eac_7] group \"South\"\n[e62816eac_8] StaticText \"Ready\"\n[e62816eac_9] button \"Save\" within=\"e62816eac_6\"\n[e62816eac_10] button \"Save\" within=\"e62816eac_7\"\n[e62816eac_11] StaticText \"North\" within=\"e62816eac_6\"\n[e62816eac_13] StaticText \"South\" within=\"e62816eac_7\"\n[e62816eac_15] RootWebArea \"Frame\" frame=FAF3F11215098D458AADC3389A7D1C05",
522
+ "finalState": "- [e62816eac_8] StaticText \"Ready\"\n+ [e62816eac_16] StaticText \"South saved\"\n~ [e62816eac_10] button \"Save\" focused=true within=\"e62816eac_7\""
523
+ },
524
+ {
525
+ "case": "rerender",
526
+ "iteration": 2,
527
+ "expectedResult": "Replacement done",
528
+ "expectRefusal": false,
529
+ "success": true,
530
+ "elapsedMs": 141.9,
531
+ "error": null,
532
+ "visibleResult": "Replacement done",
533
+ "controlValue": null,
534
+ "coveredFrameText": null,
535
+ "initialState": "[e98f2f16f_1] RootWebArea \"Browser reliability probes\" focused=true\n[e98f2f16f_2] heading \"Browser reliability probes\" level=1\n[e98f2f16f_3] status\n[e98f2f16f_5] StaticText \"Case: rerender\"\n[e98f2f16f_6] button \"Replace target\"\n[e98f2f16f_7] button \"Replaceable action\"\n[e98f2f16f_8] StaticText \"Ready\"\n[e98f2f16f_11] RootWebArea \"Frame\" frame=9057D79A22CE7E20BC7D30268251943B",
536
+ "finalState": "- [e98f2f16f_7] button \"Replaceable action\"\n- [e98f2f16f_8] StaticText \"Ready\"\n+ [e98f2f16f_12] button \"Replaceable action\" focused=true\n+ [e98f2f16f_15] StaticText \"Replacement done\""
537
+ },
538
+ {
539
+ "case": "trusted-checkbox",
540
+ "iteration": 2,
541
+ "expectedResult": "Checked=true; trusted=true",
542
+ "expectRefusal": false,
543
+ "success": true,
544
+ "elapsedMs": 24.1,
545
+ "error": null,
546
+ "visibleResult": "Checked=true; trusted=true",
547
+ "controlValue": null,
548
+ "coveredFrameText": null,
549
+ "initialState": "[eee3f9c6f_1] RootWebArea \"Browser reliability probes\" focused=true\n[eee3f9c6f_2] heading \"Browser reliability probes\" level=1\n[eee3f9c6f_3] status\n[eee3f9c6f_5] StaticText \"Case: trusted-checkbox\"\n[eee3f9c6f_6] checkbox \"Trusted choice\" checked=\"false\"\n[eee3f9c6f_7] StaticText \"Ready\"\n[eee3f9c6f_8] RootWebArea \"Frame\" frame=D820851E7022C4BEB91AC4850D8687B6",
550
+ "finalState": "- [eee3f9c6f_7] StaticText \"Ready\"\n~ [eee3f9c6f_6] checkbox \"Trusted choice\" focused=true checked=\"true\"\n+ [eee3f9c6f_9] StaticText \"Checked=true; trusted=true\""
551
+ },
552
+ {
553
+ "case": "custom-checkbox",
554
+ "iteration": 2,
555
+ "expectedResult": "Custom checked=true",
556
+ "expectRefusal": false,
557
+ "success": true,
558
+ "elapsedMs": 24.4,
559
+ "error": null,
560
+ "visibleResult": "Custom checked=true",
561
+ "controlValue": null,
562
+ "coveredFrameText": null,
563
+ "initialState": "[e46d8a3ab_1] RootWebArea \"Browser reliability probes\" focused=true\n[e46d8a3ab_2] heading \"Browser reliability probes\" level=1\n[e46d8a3ab_3] status\n[e46d8a3ab_5] StaticText \"Case: custom-checkbox\"\n[e46d8a3ab_6] checkbox \"Custom choice\" checked=\"false\"\n[e46d8a3ab_7] StaticText \"Ready\"\n[e46d8a3ab_8] StaticText \"Custom choice\"\n[e46d8a3ab_9] RootWebArea \"Frame\" frame=F0D60E91EF7443A18DCAE1BF5AFA7FD6",
564
+ "finalState": "- [e46d8a3ab_7] StaticText \"Ready\"\n~ [e46d8a3ab_6] checkbox \"Custom choice\" focused=true checked=\"true\"\n+ [e46d8a3ab_10] StaticText \"Custom checked=true\""
565
+ },
566
+ {
567
+ "case": "disabled-option",
568
+ "iteration": 2,
569
+ "expectedResult": "Ready",
570
+ "expectRefusal": true,
571
+ "success": true,
572
+ "elapsedMs": 7,
573
+ "error": {
574
+ "code": "option_disabled",
575
+ "message": "option_disabled"
576
+ },
577
+ "visibleResult": "Ready",
578
+ "controlValue": "open",
579
+ "coveredFrameText": null,
580
+ "initialState": "[e382e2332_1] RootWebArea \"Browser reliability probes\" focused=true\n[e382e2332_2] heading \"Browser reliability probes\" level=1\n[e382e2332_3] status\n[e382e2332_5] StaticText \"Case: disabled-option\"\n[e382e2332_6] StaticText \"Ready\"\n[e382e2332_7] StaticText \"Availability\"\n[e382e2332_8] combobox \"Availability\" value=\"Open\" expanded=false\n[e382e2332_9] option \"Open\" selected=true\n[e382e2332_10] option \"Closed\" disabled=true\n[e382e2332_11] RootWebArea \"Frame\" frame=0D2F6C7709432C2F73CEF8066E4F9F01",
581
+ "finalState": null
582
+ },
583
+ {
584
+ "case": "readonly",
585
+ "iteration": 2,
586
+ "expectedResult": "Ready",
587
+ "expectRefusal": true,
588
+ "success": true,
589
+ "elapsedMs": 6,
590
+ "error": {
591
+ "code": "not_editable",
592
+ "message": "not_editable"
593
+ },
594
+ "visibleResult": "Ready",
595
+ "controlValue": "unchanged",
596
+ "coveredFrameText": null,
597
+ "initialState": "[e2df4b315_1] RootWebArea \"Browser reliability probes\" focused=true\n[e2df4b315_2] heading \"Browser reliability probes\" level=1\n[e2df4b315_3] status\n[e2df4b315_5] StaticText \"Case: readonly\"\n[e2df4b315_6] StaticText \"Ready\"\n[e2df4b315_7] StaticText \"Read only\"\n[e2df4b315_8] textbox \"Read only\" required=false\n[e2df4b315_9] StaticText \"unchanged\"\n[e2df4b315_10] RootWebArea \"Frame\" frame=17A4F7B72D82B61701FA254CD9DEB1C8",
598
+ "finalState": null
599
+ },
600
+ {
601
+ "case": "richtext",
602
+ "iteration": 2,
603
+ "expectedResult": "Rich=New note",
604
+ "expectRefusal": false,
605
+ "success": true,
606
+ "elapsedMs": 19.1,
607
+ "error": null,
608
+ "visibleResult": "Rich=New note",
609
+ "controlValue": null,
610
+ "coveredFrameText": null,
611
+ "initialState": "[e0ba358c6_1] RootWebArea \"Browser reliability probes\" focused=true\n[e0ba358c6_2] heading \"Browser reliability probes\" level=1\n[e0ba358c6_3] status\n[e0ba358c6_5] StaticText \"Case: richtext\"\n[e0ba358c6_6] textbox \"Rich note\" required=false\n[e0ba358c6_7] StaticText \"Ready\"\n[e0ba358c6_8] StaticText \"Old note\"\n[e0ba358c6_9] RootWebArea \"Frame\" frame=FB235A960CC21D221A13B4E09214E277",
612
+ "finalState": "- [e0ba358c6_7] StaticText \"Ready\"\n- [e0ba358c6_8] StaticText \"Old note\"\n~ [e0ba358c6_6] textbox \"Rich note\" focused=true required=false\n+ [e0ba358c6_10] StaticText \"Rich=New note\"\n+ [e0ba358c6_11] StaticText \"New note\""
613
+ },
614
+ {
615
+ "case": "shadow-cover",
616
+ "iteration": 2,
617
+ "expectedResult": "Ready",
618
+ "expectRefusal": true,
619
+ "success": true,
620
+ "elapsedMs": 357.4,
621
+ "error": {
622
+ "code": "element_obscured",
623
+ "message": "Target is covered by another element"
624
+ },
625
+ "visibleResult": "Ready",
626
+ "controlValue": null,
627
+ "coveredFrameText": null,
628
+ "initialState": "[ea404f539_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea404f539_2] heading \"Browser reliability probes\" level=1\n[ea404f539_3] status\n[ea404f539_5] StaticText \"Case: shadow-cover\"\n[ea404f539_6] StaticText \"Ready\"\n[ea404f539_7] button \"Shadow covered action\"\n[ea404f539_8] StaticText \"Permanent cover\"\n[ea404f539_10] RootWebArea \"Frame\" frame=D8FD15093E7917807D2EFE307D2D85D1",
629
+ "finalState": null
630
+ },
631
+ {
632
+ "case": "frame-cover",
633
+ "iteration": 2,
634
+ "expectedResult": "Ready",
635
+ "expectRefusal": true,
636
+ "success": true,
637
+ "elapsedMs": 357.1,
638
+ "error": {
639
+ "code": "element_obscured",
640
+ "message": "Target iframe is clipped or covered at the action point"
641
+ },
642
+ "visibleResult": "Ready",
643
+ "controlValue": null,
644
+ "coveredFrameText": "Frame action",
645
+ "initialState": "[e8e5edefe_1] RootWebArea \"Browser reliability probes\" focused=true\n[e8e5edefe_2] heading \"Browser reliability probes\" level=1\n[e8e5edefe_3] status\n[e8e5edefe_5] StaticText \"Case: frame-cover\"\n[e8e5edefe_6] StaticText \"Ready\"\n[e8e5edefe_7] Iframe \"Covered frame\"\n[e8e5edefe_8] StaticText \"Permanent cover\"\n[e8e5edefe_9] RootWebArea \"Frame\" frame=9AAA2114A193BC39F21396FDDED17C3F\n[e8e5edefe_10] button \"Frame action\" frame=9AAA2114A193BC39F21396FDDED17C3F",
646
+ "finalState": null
647
+ }
648
+ ],
649
+ "fixtureSha256": "fef08bbcad5a90096bac6f5e7c538757835b7cff4951933af199bd38d6e2fc66",
650
+ "implementationBaseCommit": "1f1d80c",
651
+ "implementationSha256": {
652
+ "extension/automation.js": "3ffb4c97877cfc2e47af8eb263ebdf7b279276d1ec66eeb03ee5f65e144cf642",
653
+ "server/sdk.js": "fe789fd087eeb847cdb1145399015481b743d5e7e93c63127f6d80c0e90dca1c"
654
+ }
655
+ }