| <!DOCTYPE html> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/common/dispatcher/dispatcher.js"></script> | |
| <script src="/common/utils.js"></script> | |
| <script src="../resources/utils.js"></script> | |
| <script src="resources/utils.sub.js"></script> | |
| <body> | |
| <script> | |
| setup(() => assertSpeculationRulesIsSupported()); | |
| promise_test(async t => { | |
| let urls = getPrefetchUrlList(2); | |
| let a = document.createElement('a'); | |
| a.className = 'prefetch-me'; | |
| a.href = urls[1]; | |
| a.textContent = 'prefetch me!'; | |
| document.body.appendChild(a); | |
| t.add_cleanup(() => a.remove()); | |
| insertSpeculationRules({prefetch: [ | |
| {urls: [urls[0]]}, | |
| {where: {selector_matches: '.prefetch-me'}, eagerness: 'immediate'}, | |
| ]}); | |
| await new Promise(resolve => t.step_timeout(resolve, 2000)); | |
| let wasPrefetched = urls.map(isUrlPrefetched); | |
| assert_true(!!(await wasPrefetched[0]), 'implicit list rule should have worked'); | |
| assert_true(!!(await wasPrefetched[1]), 'implicit document rule should have worked'); | |
| }, 'rules should be accepted without an explicit source'); | |
| </script> | |
| </body> |