diff options
Diffstat (limited to 'devtools/client/responsive/test/browser/doc_with_remote_iframe_and_isolated_cross_origin_capabilities.sjs')
-rw-r--r-- | devtools/client/responsive/test/browser/doc_with_remote_iframe_and_isolated_cross_origin_capabilities.sjs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/responsive/test/browser/doc_with_remote_iframe_and_isolated_cross_origin_capabilities.sjs b/devtools/client/responsive/test/browser/doc_with_remote_iframe_and_isolated_cross_origin_capabilities.sjs new file mode 100644 index 0000000000..cba4772c05 --- /dev/null +++ b/devtools/client/responsive/test/browser/doc_with_remote_iframe_and_isolated_cross_origin_capabilities.sjs @@ -0,0 +1,52 @@ +"use strict"; + +function handleRequest(request, response) { + response.setHeader("Content-Type", "html", false); + + // Check the params and set the cross-origin-opener policy headers if needed + Cu.importGlobalProperties(["URLSearchParams"]); + const query = new URLSearchParams(request.queryString); + if (query.get("crossOriginIsolated") === "true") { + response.setHeader("Cross-Origin-Opener-Policy", "same-origin", false); + } + + // We always want the iframe to have a different host from the top-level document. + const iframeHost = + request.host === "example.com" ? "example.org" : "example.com"; + const iframeOrigin = `${request.scheme}://${iframeHost}`; + + const IFRAME_HTML = ` + <!doctype html> + <html> + <head> + <meta charset=utf8> + <script> + globalThis.initialOrientationAngle = screen.orientation.angle; + globalThis.initialOrientationType = screen.orientation.type; + </script> + </head> + <body> + <h1>Iframe</h1> + </body> + </html>`; + + const HTML = ` + <!doctype html> + <html> + <head> + <script> + globalThis.initialOrientationAngle = screen.orientation.angle; + globalThis.initialOrientationType = screen.orientation.type; + </script> + <meta charset=utf8> + </head> + <body> + <h1>Top-level document</h1> + <iframe src='${iframeOrigin}/document-builder.sjs?html=${encodeURI( + IFRAME_HTML + )}'></iframe> + </body> + </html>`; + + response.write(HTML); +} |