chromium/third_party/blink/web_tests/external/wpt/resource-timing/initiator-type/dynamic-insertion.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing - initiatorType with dynamic insertion</title>
<link rel="author" title="Google" href="http://www.google.com/" />
<link rel="help" href="https://www.w3.org/TR/resource-timing-2/#dom-performanceresourcetiming-initiatortype"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resource-timing/resources/entry-invariants.js"></script>
<script src="/resource-timing/resources/resource-loaders.js"></script>
<script>
  const dynamic_initiator_type_test = (loader, path, expected_type,
      resource_type) => {
    attribute_test(loader, path, entry => {
      assert_equals(entry.initiatorType, expected_type);
    }, `A ${resource_type} should have the '${expected_type}' initiator type.`);
  };

  dynamic_initiator_type_test(load.image, "resources/resource_timing_test0.png",
    "img", "image");
  // Note that, to download a font, 'load.font' uses a <style> element to
  // construct a font-face that is then applied to a <div>. Since it's a <style>
  // element requesting the resource, the initiator type is 'css', not 'font'.
  dynamic_initiator_type_test(load.font, "/fonts/Ahem.ttf", "css", "font");
  dynamic_initiator_type_test(load.stylesheet,
    "resources/resource_timing_test0.css", "link", "stylesheet");
  dynamic_initiator_type_test(load.iframe, "resources/green.html", "iframe",
    "iframe");
  dynamic_initiator_type_test(load.script, "resources/empty.js", "script",
    "script");
  dynamic_initiator_type_test(load.xhr_sync, "resources/empty.py",
    "xmlhttprequest", "XMLHttpRequest");
</script>
</head>
<body>
<h1>Description</h1>
<p>This test validates that the initiatorType field is correct even when an
element is dynamically inserted.</p>
</body>
</html>