| <!DOCTYPE html> | |
| <html> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| let log = []; | |
| </script> | |
| <script type="importmap"> | |
| { | |
| "imports": { | |
| "./resources/log.js?pipe=sub&name=A": "./resources/log.js?pipe=sub&name=B", | |
| "./resources/log.js?pipe=sub&name=C": "./resources/log.js?pipe=sub&name=D" | |
| }, | |
| "integrity": { | |
| "./resources/log.js?pipe=sub&name=B": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7", | |
| "./resources/log.js?pipe=sub&name=D": "sha384-rxZqznFuOnvObm6JJKVmwzBXrsRG25IepqKDFHGhtitRu9YPjxPpRPMIu2hzvtxF", | |
| "./resources/log.js?pipe=sub&name=X": "sha384-mCon9M46vUfNK2Wb3yjvBmpBw/3hwB+wMYS8IzDBng+7//R5Qao35E1azo4gFVzx", | |
| "./resources/log.js?pipe=sub&name=Y": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn", | |
| "./resources/log.js?pipe=sub&name=Z": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn" | |
| } | |
| } | |
| </script> | |
| <script type="module"> | |
| import './resources/log.js?pipe=sub&name=A'; | |
| </script> | |
| <script type="module"> | |
| test(t => { | |
| assert_array_equals(log, []); | |
| }, 'Static script did not load as it failed its integrity check'); | |
| log = []; | |
| </script> | |
| <script type="module"> | |
| import './resources/log.js?pipe=sub&name=C'; | |
| </script> | |
| <script type="module"> | |
| test(t => { | |
| assert_array_equals(log, ["log:D"]); | |
| }, 'Static script loaded as its integrity check passed'); | |
| log = []; | |
| </script> | |
| <script type="module"> | |
| import './resources/log.js?pipe=sub&name=X'; | |
| </script> | |
| <script type="module"> | |
| test(t => { | |
| assert_array_equals(log, []); | |
| }, 'Static script did not load as it failed its integrity check, even' + | |
| ' without an import defined'); | |
| log = []; | |
| </script> | |
| <script type="module"> | |
| import './resources/log.js?pipe=sub&name=Y'; | |
| </script> | |
| <script type="module"> | |
| test(t => { | |
| assert_array_equals(log, ["log:Y"]); | |
| }, 'Static script loaded as its integrity check passed without an import' + | |
| ' defined'); | |
| log = []; | |
| </script> | |
| <script type="module" src="./resources/log.js?pipe=sub&name=Z">; | |
| </script> | |
| <script type="module"> | |
| test(t => { | |
| assert_array_equals(log, []); | |
| }, 'HTML-based module script did not load as its integrity check failed.'); | |
| log = []; | |
| </script> |