File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed
integration-test/test-pages/infra/pages Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -128,6 +128,8 @@ async function initCode() {
128
128
async ( evt ) => {
129
129
// @ts -expect-error https://app.asana.com/0/1201614831475344/1203979574128023/f
130
130
const merged = mergeDeep ( processedConfig , evt . detail ) ;
131
+ // @ts -expect-error https://app.asana.com/0/1201614831475344/1203979574128023/f
132
+ window . __testContentScopeArgs = merged ;
131
133
// init features
132
134
await init ( merged ) ;
133
135
Original file line number Diff line number Diff line change 70
70
event.source.postMessage(navigator.deviceMemory, event.origin);
71
71
}
72
72
});
73
+ // In automation, listen for init args and signal complete
74
+ document.addEventListener('content-scope-init-args', function (evt) {
75
+ // Simulate content-scope init logic, then signal complete
76
+ window.parent.postMessage('content-scope-init-complete', '*');
77
+ });
73
78
</${ scriptTag } >
74
79
</body>
75
80
</html>
76
81
` ;
77
82
document . body . appendChild ( frame ) ;
78
83
await new Promise ( resolve => frame . onload = resolve ) ;
84
+
85
+ // Send content-scope-init-args to the iframe (use parent's args if available)
86
+ const args = window . __testContentScopeArgs || null ;
87
+ // Ensure args isn't blank here
88
+ if ( ! args ) {
89
+ throw new Error ( 'args is blank' ) ;
90
+ }
91
+ frame . contentWindow . document . dispatchEvent (
92
+ new CustomEvent ( 'content-scope-init-args' , { detail : args } )
93
+ ) ;
94
+
95
+ // Wait for the iframe to signal it's ready
96
+ await new Promise ( resolve => {
97
+ window . addEventListener ( 'message' , function handler ( event ) {
98
+ if ( event . data === 'content-scope-init-complete' ) {
99
+ window . removeEventListener ( 'message' , handler ) ;
100
+ resolve ( ) ;
101
+ }
102
+ } ) ;
103
+ } ) ;
104
+
79
105
const deviceMemoryPromise = new Promise ( resolve => {
80
106
window . addEventListener ( 'message' , ( event ) => {
81
107
resolve ( event . data ) ;
You can’t perform that action at this time.
0 commit comments