| <!DOCTYPE html> |
| <title>WebBundle subresource loading for static elements</title> |
| <link |
| rel="help" |
| href="https://github.com/WICG/webpackage/blob/master/explainers/subresource-loading.md" |
| /> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <link |
| rel="webbundle" |
| href="../resources/wbn/static-element.wbn" |
| resources=" |
| https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/script.js |
| https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style.css |
| https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css |
| https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css" |
| scopes="https://web-platform.test:8444/web-bundle/resources/wbn/static-element/scopes/" |
| /> |
| <style type="text/css"> |
| @import '../resources/wbn/static-element/resources/style-imported-from-tag.css'; |
| @import '../resources/wbn/static-element/scopes/style-imported-from-tag.css'; |
| </style> |
| <link href="../resources/wbn/static-element/resources/style.css" rel=stylesheet> |
| <link href="../resources/wbn/static-element/scopes/style.css" rel=stylesheet> |
| <script src="../resources/wbn/static-element/resources/script.js"></script> |
| <script src="../resources/wbn/static-element/scopes/script.js"></script> |
| <script src="../resources/wbn/static-element/out-of-scope/script.js"></script> |
| |
| <script> |
| const onLoadPromise = new Promise((resolve) => { |
| window.addEventListener('load', resolve, false); |
| }); |
| promise_test(async () => { |
| await onLoadPromise; |
| |
| assert_equals(resources_script_result, 'loaded from webbundle'); |
| assert_equals(scopes_script_result, 'loaded from webbundle'); |
| assert_equals(out_of_scope_script_result, 'loaded from network'); |
| |
| ['resources_', 'scopes_'].forEach((type) => { |
| ['style_target', |
| 'style_imported_from_file_target', |
| 'style_imported_from_tag_target'].forEach((target) => { |
| const element = document.createElement('div'); |
| element.id = type + target; |
| document.body.appendChild(element); |
| assert_equals(window.getComputedStyle(element).color, |
| 'rgb(0, 0, 255)', |
| element.id + ' color must be blue'); |
| }); |
| }); |
| }, "Subresources from static elements should be loaded from web bundle."); |
| </script> |
| </body> |