| <!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> |