File: image-TAO.sub.html

package info (click to toggle)
firefox-esr 91.13.0esr-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,375,652 kB
  • sloc: cpp: 5,762,054; javascript: 5,481,714; ansic: 3,121,191; python: 851,492; asm: 331,172; xml: 178,949; java: 155,554; sh: 63,704; makefile: 20,127; perl: 12,825; yacc: 4,583; cs: 3,846; objc: 3,026; lex: 1,720; exp: 762; pascal: 635; php: 436; lisp: 260; awk: 231; ruby: 103; sed: 53; sql: 46; csh: 45
file content (54 lines) | stat: -rw-r--r-- 2,276 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Element Timing: observe cross origin images with various Timing-Allow-Origin headers</title>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/element-timing-helpers.js"></script>
<script>
  async_test(t => {
    assert_implements(window.PerformanceElementTiming, "PerformanceElementTiming is not implemented");
    const beforeRender = performance.now();
    const remote_img = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/resources/TAOImage.py?'
        + 'origin=' + window.location.origin +'&tao=';
    const valid_tao = ['wildcard', 'origin', 'multi', 'multi_wildcard', 'match_origin', 'match_wildcard'];
    function addImage(tao) {
      const img = document.createElement('img');
      img.src = remote_img + tao;
      img.setAttribute('elementtiming', tao);
      img.id = 'id_' + tao;
      document.body.appendChild(img);
    }
    valid_tao.forEach(tao => {
      addImage(tao);
    });
    const invalid_tao = ['null', 'space', 'uppercase'];
    invalid_tao.forEach(tao => {
      addImage(tao);
    });
    let img_count = 0;
    const total_images = valid_tao.length + invalid_tao.length;
    new PerformanceObserver(
      t.step_func(entryList => {
        entryList.getEntries().forEach(entry => {
          img_count++;
          const tao = entry.identifier;
          const img = document.getElementById('id_' + tao);
          if (valid_tao.includes(tao)) {
            checkElement(entry, remote_img + tao, tao, 'id_' + tao, beforeRender, img);
          } else if (invalid_tao.includes(tao)) {
            assert_equals(entry.renderTime, 0, 'Entry with tao=' + tao + ' must have a renderTime of 0');
            checkElement(entry, remote_img + tao, tao, 'id_' + tao, 0, img);
          }
          else {
            assert_unreached('Should be in one of valid_tao OR invalid_tao');
          }
          checkNaturalSize(entry, 100, 100);
          if (img_count == total_images)
            t.done();
        });
      })
    ).observe({type: 'element', buffered: true});
  }, 'Cross-origin elements with valid TAO have correct renderTime, with invalid TAO have renderTime set to 0.');
</script>
</body>