<script src="common.js"></script>
<script>
  const url = new URL('../../resources/square.png', location);
  observeAndReportResourceLoadPriority(url);

  const image = new Image();
  image.src = url;

  image.onload = reportLoaded;
  image.onerror = reportFailure;
</script>
