tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

viewport-units-invalidation.html (2456B)


      1 <!DOCTYPE html>
      2 <title>Invalidation of viewport units</title>
      3 <link rel="help" href="https://drafts.csswg.org/css-values-4/#viewport-relative-lengths">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 
      7 <style>
      8  iframe {
      9    width: 200px;
     10    height: 100px;
     11  }
     12 
     13  iframe.resize {
     14    width: 400px;
     15    height: 300px;
     16  }
     17 </style>
     18 
     19 <main id=main></main>
     20 
     21 <script>
     22 
     23 function test_invalidation_value(value, expected_pre, expected_post) {
     24  test((t) => {
     25    let iframe = document.createElement('iframe');
     26    main.append(iframe);
     27    const doc = iframe.contentDocument;
     28    const win = iframe.contentWindow;
     29    t.add_cleanup(() => {
     30      doc.body.innerHTML = '';
     31      iframe.remove();
     32    });
     33    doc.body.innerHTML = `<div style="height: ${value};"></div>`;
     34    let div = doc.querySelector('div');
     35    assert_equals(win.getComputedStyle(div).height, expected_pre);
     36 
     37    t.add_cleanup(() => { iframe.classList.remove('resize'); })
     38    iframe.classList.add('resize');
     39    assert_equals(win.getComputedStyle(div).height, expected_post);
     40  }, `${value} computes to ${expected_post} after frame resize`);
     41 }
     42 
     43 test_invalidation_value('100vw', '200px', '400px');
     44 test_invalidation_value('100vi', '200px', '400px');
     45 test_invalidation_value('100vmax', '200px', '400px');
     46 test_invalidation_value('100svw', '200px', '400px');
     47 test_invalidation_value('100svi', '200px', '400px');
     48 test_invalidation_value('100svmax', '200px', '400px');
     49 test_invalidation_value('100lvw', '200px', '400px');
     50 test_invalidation_value('100lvi', '200px', '400px');
     51 test_invalidation_value('100lvmax', '200px', '400px');
     52 test_invalidation_value('100dvw', '200px', '400px');
     53 test_invalidation_value('100dvi', '200px', '400px');
     54 test_invalidation_value('100dvmax', '200px', '400px');
     55 
     56 test_invalidation_value('100vh', '100px', '300px');
     57 test_invalidation_value('100vb', '100px', '300px');
     58 test_invalidation_value('100vmin', '100px', '300px');
     59 test_invalidation_value('100svh', '100px', '300px');
     60 test_invalidation_value('100svb', '100px', '300px');
     61 test_invalidation_value('100svmin', '100px', '300px');
     62 test_invalidation_value('100lvh', '100px', '300px');
     63 test_invalidation_value('100lvb', '100px', '300px');
     64 test_invalidation_value('100lvmin', '100px', '300px');
     65 test_invalidation_value('100dvh', '100px', '300px');
     66 test_invalidation_value('100dvb', '100px', '300px');
     67 test_invalidation_value('100dvmin', '100px', '300px');
     68 
     69 </script>