diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/web-bundle/resources | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/web-bundle/resources')
81 files changed, 907 insertions, 0 deletions
diff --git a/testing/web-platform/tests/web-bundle/resources/check-accept-header-and-return-bundle.py b/testing/web-platform/tests/web-bundle/resources/check-accept-header-and-return-bundle.py new file mode 100644 index 0000000000..1fb63a57cb --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/check-accept-header-and-return-bundle.py @@ -0,0 +1,21 @@ +import os + +# Returns the content of ./wbn/subresource.wbn if the request has an "Accept" +# header including "application/webbundle;v=b2" type, otherwise returns an +# empty body with status code 400. + +def main(request, response): + headers = [ + (b"Content-Type", b"application/webbundle"), + (b"X-Content-Type-Options", b"nosniff"), + ] + + accept_values = request.headers.get(b"accept", b"").split(b",") + if b"application/webbundle;v=b2" in accept_values: + with open( + os.path.join(os.path.dirname(__file__), "./wbn/subresource.wbn"), + "rb", + ) as f: + return (200, headers, f.read()) + else: + return (400, [], "") diff --git a/testing/web-platform/tests/web-bundle/resources/check-cookie-and-return-bundle.py b/testing/web-platform/tests/web-bundle/resources/check-cookie-and-return-bundle.py new file mode 100644 index 0000000000..89a22c432e --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/check-cookie-and-return-bundle.py @@ -0,0 +1,29 @@ +import os + + +def main(request, response): + origin = request.headers.get(b"origin") + + if origin is not None: + response.headers.set(b"Access-Control-Allow-Origin", origin) + response.headers.set(b"Access-Control-Allow-Methods", b"GET") + response.headers.set(b"Access-Control-Allow-Credentials", b"true") + + headers = [ + (b"Content-Type", b"application/webbundle"), + (b"X-Content-Type-Options", b"nosniff"), + ] + + cookie = request.cookies.first(b"milk", None) + if (cookie is not None) and cookie.value == b"1": + if request.GET.get(b"bundle", None) == b"cross-origin": + bundle = "./wbn/simple-cross-origin.wbn" + else: + bundle = "./wbn/subresource.wbn" + with open( + os.path.join(os.path.dirname(__file__), bundle), + "rb", + ) as f: + return (200, headers, f.read()) + else: + return (400, [], "") diff --git a/testing/web-platform/tests/web-bundle/resources/check-sec-fetch-dest-header-and-return-bundle.py b/testing/web-platform/tests/web-bundle/resources/check-sec-fetch-dest-header-and-return-bundle.py new file mode 100644 index 0000000000..da36e49320 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/check-sec-fetch-dest-header-and-return-bundle.py @@ -0,0 +1,21 @@ +import os + + +def main(request, response): + origin = request.headers.get(b"origin") + if origin is not None: + response.headers.set(b"Access-Control-Allow-Origin", origin) + + headers = [ + (b"Content-Type", b"application/webbundle"), + (b"X-Content-Type-Options", b"nosniff"), + ] + + if request.headers.get(b"sec-fetch-dest", None) == b"webbundle": + with open( + os.path.join(os.path.dirname(__file__), "./wbn/subresource.wbn"), + "rb", + ) as f: + return (200, headers, f.read()) + else: + return (400, [], "") diff --git a/testing/web-platform/tests/web-bundle/resources/corp.har b/testing/web-platform/tests/web-bundle/resources/corp.har new file mode 100644 index 0000000000..e1b0393957 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/corp.har @@ -0,0 +1,140 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/cors/no-corp.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('no-corp.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/cors/corp-same-origin.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + }, + { + "name": "Cross-Origin-Resource-Policy", + "value": "same-origin" + } + ], + "content": { + "text": "scriptLoaded('corp-same-origin.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/cors/corp-cross-origin.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + }, + { + "name": "Cross-Origin-Resource-Policy", + "value": "cross-origin" + } + ], + "content": { + "text": "scriptLoaded('corp-cross-origin.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "uuid-in-package:5eafff38-e0a0-4661-bde0-434255aa9d93", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/html" + } + ], + "content": { + "text": "<script>\nwindow.addEventListener('message', (e) =>{e.source.postMessage(eval(e.data), e.origin);});\n</script>" + } + } + }, + { + "request": { + "method": "GET", + "url": "uuid-in-package:7e13b47a-8b91-4a0e-997c-993a5e2f3a34", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/html" + }, + { + "name": "Cross-Origin-Resource-Policy", + "value": "same-origin" + } + ], + "content": { + "text": "<script>\nwindow.addEventListener('message', (e) =>{e.source.postMessage(eval(e.data), e.origin);});\n</script>" + } + } + }, + { + "request": { + "method": "GET", + "url": "uuid-in-package:86d5b696-8867-4454-8b07-51239a0817f7", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/html" + }, + { + "name": "Cross-Origin-Embedder-Policy", + "value": "require-corp" + }, + { + "name": "Cross-Origin-Resource-Policy", + "value": "cross-origin" + } + ], + "content": { + "text": "<script>\nwindow.addEventListener('message', (e) =>{e.source.postMessage(eval(e.data), e.origin);});\n</script>" + } + } + } + ] + } +} diff --git a/testing/web-platform/tests/web-bundle/resources/cross-origin-no-cors.har b/testing/web-platform/tests/web-bundle/resources/cross-origin-no-cors.har new file mode 100644 index 0000000000..c31a0963fd --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/cross-origin-no-cors.har @@ -0,0 +1,48 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/no-cors/resource.cors.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + }, + { + "name": "Access-Control-Allow-Origin", + "value": "*" + } + ], + "content": { + "text": "scriptLoaded('resource.cors.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/no-cors/resource.no-cors.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('resource.no-cors.js');" + } + } + } + ] + } +}
\ No newline at end of file diff --git a/testing/web-platform/tests/web-bundle/resources/cross-origin.har b/testing/web-platform/tests/web-bundle/resources/cross-origin.har new file mode 100644 index 0000000000..2c33449cbe --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/cross-origin.har @@ -0,0 +1,48 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/cors/resource.cors.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + }, + { + "name": "Access-Control-Allow-Origin", + "value": "*" + } + ], + "content": { + "text": "scriptLoaded('resource.cors.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/cors/resource.no-cors.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('resource.no-cors.js');" + } + } + } + ] + } +}
\ No newline at end of file diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic1/classic_script.js b/testing/web-platform/tests/web-bundle/resources/dynamic1/classic_script.js new file mode 100644 index 0000000000..5fcf045906 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic1/classic_script.js @@ -0,0 +1 @@ +window.report_result('classic script from dynamic1.wbn'); diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic1/resource1.js b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource1.js new file mode 100644 index 0000000000..6fd1de600e --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource1.js @@ -0,0 +1 @@ +export const result = 'resource1 from dynamic1.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic1/resource2.js b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource2.js new file mode 100644 index 0000000000..3cf012b21a --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource2.js @@ -0,0 +1 @@ +export const result = 'resource2 from dynamic1.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic1/resource3.js b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource3.js new file mode 100644 index 0000000000..c8a4e258b8 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource3.js @@ -0,0 +1 @@ +export const result = 'resource3 from dynamic1.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic1/resource4.js b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource4.js new file mode 100644 index 0000000000..0b2f7920b0 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic1/resource4.js @@ -0,0 +1 @@ +export const result = 'resource4 from dynamic1.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic2/classic_script.js b/testing/web-platform/tests/web-bundle/resources/dynamic2/classic_script.js new file mode 100644 index 0000000000..546d8a503d --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic2/classic_script.js @@ -0,0 +1 @@ +window.report_result('classic script from dynamic2.wbn'); diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic2/resource1.js b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource1.js new file mode 100644 index 0000000000..c6f751cec4 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource1.js @@ -0,0 +1 @@ +export const result = 'resource1 from dynamic2.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic2/resource2.js b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource2.js new file mode 100644 index 0000000000..b4278ee1c1 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource2.js @@ -0,0 +1 @@ +export const result = 'resource2 from dynamic2.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic2/resource3.js b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource3.js new file mode 100644 index 0000000000..0dad7ea7bf --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource3.js @@ -0,0 +1 @@ +export const result = 'resource3 from dynamic2.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/dynamic2/resource4.js b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource4.js new file mode 100644 index 0000000000..e51cf7f5dc --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/dynamic2/resource4.js @@ -0,0 +1 @@ +export const result = 'resource4 from dynamic2.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/generate-test-wbns.sh b/testing/web-platform/tests/web-bundle/resources/generate-test-wbns.sh new file mode 100755 index 0000000000..418a56e0e7 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/generate-test-wbns.sh @@ -0,0 +1,105 @@ +#!/bin/sh + +set -e + +if ! command -v gen-bundle > /dev/null 2>&1; then + echo "gen-bundle is not installed. Please run:" + echo " go install github.com/WICG/webpackage/go/bundle/cmd/...@latest" + echo ' export PATH=$PATH:$(go env GOPATH)/bin' + exit 1 +fi + +# TODO: Stop hard-coding "web-platform.test" when generating Web Bundles on the +# fly. +wpt_test_origin=https://web-platform.test:8444 +wpt_test_remote_origin=https://www1.web-platform.test:8444 + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/static-element/ \ + -primaryURL $wpt_test_origin/web-bundle/resources/wbn/static-element/resources/style.css \ + -dir static-element/ \ + -o wbn/static-element.wbn + +# Create a bundle, nested-main.wbn, which includes nested-sub.wbn. +cp -a wbn/subresource.wbn nested/nested-sub.wbn +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/ \ + -primaryURL $wpt_test_origin/web-bundle/resources/wbn/resource.js \ + -dir nested/ \ + -o wbn/nested-main.wbn + +gen-bundle \ + -version b2 \ + -har non-utf8-query-encoding.har \ + -primaryURL $wpt_test_origin/web-bundle/resources/wbn/static-element/resources/script.js?x=%A4%A2 \ + -o wbn/non-utf8-query-encoding.wbn + +gen-bundle \ + -version b2 \ + -har corp.har \ + -primaryURL $wpt_test_remote_origin/web-bundle/resources/wbn/cors/no-corp.js \ + -o wbn/cors/corp.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/ \ + -primaryURL $wpt_test_origin/web-bundle/resources/wbn/location.html \ + -dir location/ \ + -o wbn/location.wbn + +gen-bundle \ + -version b2 \ + -har relative-url.har \ + -o wbn/relative-url.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/ \ + -dir subresource/ \ + -o wbn/subresource.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/dynamic/ \ + -dir dynamic1/ \ + -o wbn/dynamic1.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/wbn/dynamic/ \ + -dir dynamic2/ \ + -o wbn/dynamic2.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_remote_origin/web-bundle/resources/wbn/dynamic/ \ + -dir dynamic1/ \ + -o wbn/dynamic1-crossorigin.wbn + +gen-bundle \ + -version b2 \ + -baseURL $wpt_test_origin/web-bundle/resources/ \ + -dir path-restriction/ \ + -o wbn/path-restriction.wbn + +gen-bundle \ + -version b2 \ + -har cross-origin.har \ + -o wbn/cors/cross-origin.wbn + +gen-bundle \ + -version b2 \ + -har cross-origin-no-cors.har \ + -o wbn/no-cors/cross-origin.wbn + +gen-bundle \ + -version b2 \ + -har uuid-in-package.har \ + -o wbn/uuid-in-package.wbn + +gen-bundle \ + -version b2 \ + -har simple-cross-origin.har \ + -o wbn/simple-cross-origin.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/location/location.html b/testing/web-platform/tests/web-bundle/resources/location/location.html new file mode 100644 index 0000000000..e272dad23d --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/location/location.html @@ -0,0 +1,2 @@ +<!DOCTYPE html> +<script src="./location.js"></script> diff --git a/testing/web-platform/tests/web-bundle/resources/location/location.js b/testing/web-platform/tests/web-bundle/resources/location/location.js new file mode 100644 index 0000000000..a1dbba7366 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/location/location.js @@ -0,0 +1,2 @@ + +window.opener.postMessage({location: location.href}, '*'); diff --git a/testing/web-platform/tests/web-bundle/resources/nested/nested-sub.wbn b/testing/web-platform/tests/web-bundle/resources/nested/nested-sub.wbn Binary files differnew file mode 100644 index 0000000000..840773f8db --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/nested/nested-sub.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/nested/resource.js b/testing/web-platform/tests/web-bundle/resources/nested/resource.js new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/nested/resource.js diff --git a/testing/web-platform/tests/web-bundle/resources/non-utf8-query-encoding.har b/testing/web-platform/tests/web-bundle/resources/non-utf8-query-encoding.har new file mode 100644 index 0000000000..c4acfdb227 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/non-utf8-query-encoding.har @@ -0,0 +1,25 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/script.js?x=%A4%A2", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "application/javascript" + } + ], + "content": { + "text": "const resources_script_result = 'loaded from webbundle';" + } + } + } + ] + } +} diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/other/resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/other/resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/other/resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn-resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn-resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn-resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/sub/resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/sub/resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn/sub/resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn1/resource.js b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn1/resource.js new file mode 100644 index 0000000000..a4967d2285 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/path-restriction/wbn1/resource.js @@ -0,0 +1 @@ +export const result = 'resource from path-restriction.wbn'; diff --git a/testing/web-platform/tests/web-bundle/resources/relative-url.har b/testing/web-platform/tests/web-bundle/resources/relative-url.har new file mode 100644 index 0000000000..e42e85fd1f --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/relative-url.har @@ -0,0 +1,139 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "relative-url-file.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('relative-url-file.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "//web-platform.test:8444/web-bundle/resources/wbn/relative-url/start-with-double-slash.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('start-with-double-slash.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "//www1.web-platform.test:8444/web-bundle/resources/wbn/relative-url/start-with-double-slash-cors.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('start-with-double-slash-cors.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "/web-bundle/resources/wbn/relative-url/start-with-slash.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('start-with-slash.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "relative-url/subdirectory-path.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('subdirectory-path.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "../wbn/starts-with-two-dots.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('starts-with-two-dots.js');" + } + } + }, + { + "request": { + "method": "GET", + "url": "../starts-with-two-dots-out-of-scope.js", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/javascript" + } + ], + "content": { + "text": "scriptLoaded('starts-with-two-dots-out-of-scope.js');" + } + } + } + ] + } +}
\ No newline at end of file diff --git a/testing/web-platform/tests/web-bundle/resources/simple-cross-origin.har b/testing/web-platform/tests/web-bundle/resources/simple-cross-origin.har new file mode 100644 index 0000000000..8566a6c6c2 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/simple-cross-origin.har @@ -0,0 +1,29 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "https://www1.web-platform.test:8444/web-bundle/resources/wbn/simple-cross-origin.txt", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/plain" + }, + { + "name": "Access-Control-Allow-Origin", + "value": "*" + } + ], + "content": { + "text": "hello from simple-cross-origin.txt" + } + } + } + ] + } +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/out-of-scope/script.js b/testing/web-platform/tests/web-bundle/resources/static-element/out-of-scope/script.js new file mode 100644 index 0000000000..0f3e0d27c0 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/out-of-scope/script.js @@ -0,0 +1 @@ +const out_of_scope_script_result = 'loaded from webbundle'; diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/resources/script.js b/testing/web-platform/tests/web-bundle/resources/static-element/resources/script.js new file mode 100644 index 0000000000..f5327df7ae --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/resources/script.js @@ -0,0 +1 @@ +const resources_script_result = 'loaded from webbundle'; diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-file.css b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-file.css new file mode 100644 index 0000000000..6b79f6dd8c --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-file.css @@ -0,0 +1,3 @@ +#resources_style_imported_from_file_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-tag.css b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-tag.css new file mode 100644 index 0000000000..38e9fe3133 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style-imported-from-tag.css @@ -0,0 +1,3 @@ +#resources_style_imported_from_tag_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/resources/style.css b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style.css new file mode 100644 index 0000000000..7f98b85eb6 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/resources/style.css @@ -0,0 +1,5 @@ +@import 'style-imported-from-file.css'; + +#resources_style_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/scopes/script.js b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/script.js new file mode 100644 index 0000000000..140698cb5c --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/script.js @@ -0,0 +1 @@ +const scopes_script_result = 'loaded from webbundle'; diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-file.css b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-file.css new file mode 100644 index 0000000000..0162888644 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-file.css @@ -0,0 +1,3 @@ +#scopes_style_imported_from_file_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-tag.css b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-tag.css new file mode 100644 index 0000000000..7055c86ee9 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style-imported-from-tag.css @@ -0,0 +1,3 @@ +#scopes_style_imported_from_tag_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style.css b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style.css new file mode 100644 index 0000000000..f2af82dfd7 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/static-element/scopes/style.css @@ -0,0 +1,5 @@ +@import 'style-imported-from-file.css'; + +#scopes_style_target { + color: blue; +} diff --git a/testing/web-platform/tests/web-bundle/resources/subresource/fail.png b/testing/web-platform/tests/web-bundle/resources/subresource/fail.png Binary files differnew file mode 100644 index 0000000000..b593380333 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/subresource/fail.png diff --git a/testing/web-platform/tests/web-bundle/resources/subresource/pass.png b/testing/web-platform/tests/web-bundle/resources/subresource/pass.png Binary files differnew file mode 100644 index 0000000000..2fa1e0ac06 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/subresource/pass.png diff --git a/testing/web-platform/tests/web-bundle/resources/subresource/root.js b/testing/web-platform/tests/web-bundle/resources/subresource/root.js new file mode 100644 index 0000000000..2c2a465472 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/subresource/root.js @@ -0,0 +1 @@ +export * from './submodule.js'; diff --git a/testing/web-platform/tests/web-bundle/resources/subresource/submodule.js b/testing/web-platform/tests/web-bundle/resources/subresource/submodule.js new file mode 100644 index 0000000000..4561aaf014 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/subresource/submodule.js @@ -0,0 +1 @@ +export const result = 'OK'; diff --git a/testing/web-platform/tests/web-bundle/resources/test-helpers.js b/testing/web-platform/tests/web-bundle/resources/test-helpers.js new file mode 100644 index 0000000000..5c380c88d8 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/test-helpers.js @@ -0,0 +1,169 @@ +// Helper functions used in web-bundle tests. + +function addElementAndWaitForLoad(element) { + return new Promise((resolve, reject) => { + element.onload = () => resolve(element); + element.onerror = () => reject(element); + document.body.appendChild(element); + }); +} + +function addElementAndWaitForError(element) { + return new Promise((resolve, reject) => { + element.onload = () => reject(element); + element.onerror = () => resolve(element); + document.body.appendChild(element); + }); +} + +// Evaluates |code| in |iframe|. The following message event handler must be +// registered on the iframe page: +// window.addEventListener( +// 'message', +// (e) => { e.source.postMessage(eval(e.data), e.origin); }); +function evalInIframe(iframe, code) { + const message_promise = new Promise((resolve) => { + window.addEventListener( + 'message', + (e) => { resolve(e.data); }, + { once : true }); + }); + iframe.contentWindow.postMessage(code,'*'); + return message_promise; +} + +function fetchAndWaitForReject(url) { + return new Promise((resolve, reject) => { + fetch(url) + .then(() => { + reject(); + }) + .catch(() => { + resolve(); + }); + }); +} + +function isValidCrossOriginAttribute(crossorigin) { + if (crossorigin === undefined) + return true; + if ((typeof crossorigin) != 'string') + return false; + const lower_crossorigin = crossorigin.toLowerCase(); + return (lower_crossorigin === 'anonymous') || + (lower_crossorigin === 'use-credentials'); +} + +function addScriptAndWaitForError(url) { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = url; + script.onload = reject; + script.onerror = resolve; + document.body.appendChild(script); + }); +} + +function addScriptAndWaitForExecution(url) { + return new Promise((resolve, reject) => { + window.scriptLoaded = (val) => { + window.scriptLoaded = undefined; + resolve(val); + }; + const script = document.createElement("script"); + script.src = url; + script.onerror = reject; + document.body.appendChild(script); + }); +} + +function createWebBundleElement(url, resources, options) { + const script = document.createElement("script"); + script.type = "webbundle"; + const json_rule = {"source": url, "resources": resources}; + if (options && options.scopes) { + json_rule.scopes = options.scopes; + } + if (options && options.credentials) { + json_rule.credentials = options.credentials; + } + script.textContent = JSON.stringify(json_rule); + return script; +} + +function addWebBundleElementAndWaitForLoad(url, resources, options) { + const element = createWebBundleElement(url, resources, options); + return addElementAndWaitForLoad(element); +} + +function addWebBundleElementAndWaitForError(url, resources, options) { + const element = createWebBundleElement(url, resources, options); + return addElementAndWaitForError(element); +} + +function changeWebBundleUrlInPlace(element, new_url) { + if (window.TEST_WEB_BUNDLE_ELEMENT_TYPE != 'link') { + throw new Error( + 'Changing the URL of web bundle is not supported for : ' + + window.TEST_WEB_BUNDLE_ELEMENT_TYPE); + } + element.href= new_url; +} + +function changeWebBundleScopesInPlace(element, scopes) { + if (window.TEST_WEB_BUNDLE_ELEMENT_TYPE != 'link') { + throw new Error( + 'Changing the scopes of web bundle is not supported for : ' + + window.TEST_WEB_BUNDLE_ELEMENT_TYPE); + } + element.scopes = ''; + for (const scope of scopes) { + element.scopes.add(scope); + } +} + +function changeWebBundleResourcesInPlace(element, resources) { + if (window.TEST_WEB_BUNDLE_ELEMENT_TYPE != 'link') { + throw new Error( + 'Changing the resources of web bundle is not supported for : ' + + window.TEST_WEB_BUNDLE_ELEMENT_TYPE); + } + element.resources = ''; + for (const url of resources) { + element.resources.add(url); + } +} + +// This function creates a new WebBundle element that has a rule +// constructed in accordance with a JSON object |new_rule|: +// 1. Copy over WebBundle rules from an existing element that are +// not present in |new_rule|, in case of <link> API it is all +// relevant attributes: href, resources, scopes and crossOrigin; +// in case of <script> API, it is: source, resources, scopes and +// credentials. +// 2. Then create a new WebBundle element from |new_rule| (that now +// has full information required after 1.) and return it. +function createNewWebBundleElementWithUpdatedRule(element, new_rule) { + if (window.TEST_WEB_BUNDLE_ELEMENT_TYPE == 'link') { + if (element.resources && !new_rule.resources) + new_rule.resources = Array.from(element.resources); + if (element.scopes && !new_rule.scopes) + new_rule.scopes = Array.from(element.scopes); + if (element.crossOrigin && !new_rule.crossOrigin) + new_rule.crossOrigin = element.crossOrigin; + if (!new_rule.url) + new_rule.url = element.href; + } else { + const rule = JSON.parse(element.textContent); + if (rule.resources && !new_rule.resources) + new_rule.resources = rule.resources; + if (rule.scopes && !new_rule.scopes) + new_rule.scopes = rule.scopes; + if (rule.credentials && !new_rule.credentials) + new_rule.credentials = rule.credentials; + if (!new_rule.url) + new_rule.url = rule.source; + } + + return createWebBundleElement(new_rule.url, new_rule.resources, new_rule); +} diff --git a/testing/web-platform/tests/web-bundle/resources/uuid-in-package.har b/testing/web-platform/tests/web-bundle/resources/uuid-in-package.har new file mode 100644 index 0000000000..8dedc951d5 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/uuid-in-package.har @@ -0,0 +1,44 @@ +{ + "log": { + "entries": [ + { + "request": { + "method": "GET", + "url": "uuid-in-package:020111b3-437a-4c5c-ae07-adb6bbffb720", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "application/javascript" + } + ], + "content": { + "text": "window.report_result('OK');" + } + } + }, + { + "request": { + "method": "GET", + "url": "uuid-in-package:429fcc4e-0696-4bad-b099-ee9175f023ae", + "headers": [] + }, + "response": { + "status": 200, + "headers": [ + { + "name": "Content-type", + "value": "text/html" + } + ], + "content": { + "text": "<script>\nwindow.addEventListener('message', (e) =>{e.source.postMessage(eval(e.data), e.origin);});\n</script>" + } + } + } + ] + } +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/__dir__.headers b/testing/web-platform/tests/web-bundle/resources/wbn/__dir__.headers new file mode 100644 index 0000000000..21e57b9cac --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/__dir__.headers @@ -0,0 +1,2 @@ +Content-Type: application/webbundle +X-Content-Type-Options: nosniff diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/cors/__dir__.sub.headers b/testing/web-platform/tests/web-bundle/resources/wbn/cors/__dir__.sub.headers new file mode 100644 index 0000000000..767da13cb2 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/cors/__dir__.sub.headers @@ -0,0 +1,4 @@ +Content-Type: application/webbundle +X-Content-Type-Options: nosniff +Access-Control-Allow-Origin: https://{{domains[]}}:{{ports[https][0]}} +Access-Control-Allow-Credentials: true diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/cors/corp.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/cors/corp.wbn Binary files differnew file mode 100644 index 0000000000..08ee4bc80a --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/cors/corp.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin-b2.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin-b2.wbn Binary files differnew file mode 100644 index 0000000000..03c31a8b5b --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin-b2.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin.wbn Binary files differnew file mode 100644 index 0000000000..03c31a8b5b --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/cors/cross-origin.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/__dir__.headers b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/__dir__.headers new file mode 100644 index 0000000000..cb762eff80 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/__dir__.headers @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/classic_script.js b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/classic_script.js new file mode 100644 index 0000000000..db69b96188 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/classic_script.js @@ -0,0 +1 @@ +window.report_result('classic script from network'); diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource1.js b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource1.js new file mode 100644 index 0000000000..7bd437364a --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource1.js @@ -0,0 +1 @@ +export const result = 'resource1 from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource2.js b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource2.js new file mode 100644 index 0000000000..09a4ee7b70 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource2.js @@ -0,0 +1 @@ +export const result = 'resource2 from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource3.js b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource3.js new file mode 100644 index 0000000000..851168c9da --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource3.js @@ -0,0 +1 @@ +export const result = 'resource3 from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource4.js b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource4.js new file mode 100644 index 0000000000..ea456b8db0 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic/resource4.js @@ -0,0 +1 @@ +export const result = 'resource4 from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1-crossorigin.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1-crossorigin.wbn Binary files differnew file mode 100644 index 0000000000..e003f39481 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1-crossorigin.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1.wbn Binary files differnew file mode 100644 index 0000000000..f9b8e01404 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic1.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/dynamic2.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic2.wbn Binary files differnew file mode 100644 index 0000000000..f23fb4fad4 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/dynamic2.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/location.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/location.wbn Binary files differnew file mode 100644 index 0000000000..54d8f40fce --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/location.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/nested-main.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/nested-main.wbn Binary files differnew file mode 100644 index 0000000000..9c21e73220 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/nested-main.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/__dir__.headers b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/__dir__.headers new file mode 100644 index 0000000000..21e57b9cac --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/__dir__.headers @@ -0,0 +1,2 @@ +Content-Type: application/webbundle +X-Content-Type-Options: nosniff diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin-b2.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin-b2.wbn Binary files differnew file mode 100644 index 0000000000..f6d565a9c3 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin-b2.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin.wbn Binary files differnew file mode 100644 index 0000000000..f6d565a9c3 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/no-cors/cross-origin.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/non-utf8-query-encoding.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/non-utf8-query-encoding.wbn Binary files differnew file mode 100644 index 0000000000..56f76b8f20 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/non-utf8-query-encoding.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/path-restriction.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/path-restriction.wbn Binary files differnew file mode 100644 index 0000000000..73a02a0829 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/path-restriction.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn Binary files differnew file mode 100644 index 0000000000..13924fdb99 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn.sub.headers b/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn.sub.headers new file mode 100644 index 0000000000..ce4780f454 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/relative-url.wbn.sub.headers @@ -0,0 +1,3 @@ +Content-Type: application/webbundle +X-Content-Type-Options: nosniff +Access-Control-Allow-Origin: https://{{domains[]}}:{{ports[https][0]}} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/simple-cross-origin.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/simple-cross-origin.wbn Binary files differnew file mode 100644 index 0000000000..a00cce00f0 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/simple-cross-origin.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/static-element.wbn Binary files differnew file mode 100644 index 0000000000..dd50ef320a --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/out-of-scope/script.js b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/out-of-scope/script.js new file mode 100644 index 0000000000..e761729483 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/out-of-scope/script.js @@ -0,0 +1 @@ +const out_of_scope_script_result = 'loaded from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/script.js b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/script.js new file mode 100644 index 0000000000..08c4d9a2ee --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/script.js @@ -0,0 +1 @@ +const resources_script_result = 'loaded from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css new file mode 100644 index 0000000000..33f0f375da --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css @@ -0,0 +1,3 @@ +#resources_style_imported_from_file_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css new file mode 100644 index 0000000000..85dbf84db3 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css @@ -0,0 +1,3 @@ +#resources_style_imported_from_tag_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style.css new file mode 100644 index 0000000000..41886f41d9 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/resources/style.css @@ -0,0 +1,5 @@ +@import 'style-imported-from-file.css'; + +#resources_style_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/script.js b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/script.js new file mode 100644 index 0000000000..060d8c50a8 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/script.js @@ -0,0 +1 @@ +const scopes_script_result = 'loaded from network'; diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-file.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-file.css new file mode 100644 index 0000000000..d865cebd12 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-file.css @@ -0,0 +1,3 @@ +#scopes_style_imported_from_file_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-tag.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-tag.css new file mode 100644 index 0000000000..ad70df9b39 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style-imported-from-tag.css @@ -0,0 +1,3 @@ +#scopes_style_imported_from_tag_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style.css b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style.css new file mode 100644 index 0000000000..233ecd7113 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/static-element/scopes/style.css @@ -0,0 +1,5 @@ +@import 'style-imported-from-file.css'; + +#scopes_style_target { + color: red; +} diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/subresource.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/subresource.wbn Binary files differnew file mode 100644 index 0000000000..840773f8db --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/subresource.wbn diff --git a/testing/web-platform/tests/web-bundle/resources/wbn/uuid-in-package.wbn b/testing/web-platform/tests/web-bundle/resources/wbn/uuid-in-package.wbn Binary files differnew file mode 100644 index 0000000000..d4d100d121 --- /dev/null +++ b/testing/web-platform/tests/web-bundle/resources/wbn/uuid-in-package.wbn |