<html>
<head>
<script src="test.js"></script>
<link rel="stylesheet"  href="/test.css">
<link rel="icon" href="/test.ico" type="image/x-icon"/>
<link rel="manifest" href="/manifest">
<iframe src="/iframe.html"></iframe>
<iframe src="/accept-header-iframe.html"></iframe>
<img src="/image.gif">
</head>
<style>
@font-face {
  font-family: "TestFontFamily";
  src: url("/font.otf");
}
p.customfont {
    font-family: "TestFontFamily";
}
</style>
<video src="/media.mp4" autoplay controls></video>
<body>Hello World</body>
<a ping="/ping" href="javascript:void(0)" id="ping">
<p class="customfont">font</p>
<link rel="prefetch" href="/prefetch">

<script>
var request = new XMLHttpRequest();
request.open('GET', '/xhr', true);
request.send(null);

request = new XMLHttpRequest();
request.open('GET', '/xhr_with_accept_header', true);
request.setRequestHeader('Accept', 'custom/type');
request.send(null);

document.getElementById('ping').click();

var worker = new Worker('/worker.js');
if ("SharedWorker" in window)
  var shared_worker = new SharedWorker('/shared_worker.js');

navigator.serviceWorker.register('/service_worker.js')
.catch(function(error) {});

import("/test-css-module", { with: { type: "css" } })
.catch(function(error) {});

import("/test-json-module", { with: { type: "json" } })
.catch(function(error) {});
</script>
</html>
