tor-browser

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

pagereveal-finished-promise.html (1532B)


      1 <!DOCTYPE html>
      2 <html class="reftest-wait">
      3 <title>
      4  View transitions: Test pagereveal.finished and skipTransition
      5 </title>
      6 <link rel="help" href="https://drafts.csswg.org/css-view-transitions-2/">
      7 <link rel="author" href="mailto:bokan@chromium.org">
      8 <link rel="match" href="pagereveal-finished-promise-ref.html">
      9 <script src="/common/reftest-wait.js"></script>
     10 <script>
     11 const params = new URLSearchParams(location.search);
     12 const is_new_page = params.has('new');
     13 
     14 if (is_new_page) {
     15  document.documentElement.classList.add('newPage');
     16 
     17  addEventListener('pagereveal', e => {
     18    e.viewTransition.finished.then(() => {
     19      // Animations are finished so the screenshot should contain live DOM.
     20      takeScreenshot();
     21    });
     22    e.viewTransition.skipTransition();
     23  });
     24 } else {
     25  onload = () => {
     26    requestAnimationFrame(() => requestAnimationFrame(() => {
     27      location.replace(window.location.href + '?new');
     28    }));
     29  };
     30 }
     31 </script>
     32 <style>
     33 @view-transition {
     34  navigation: auto;
     35 }
     36 #target {
     37  width: 100px;
     38  height: 100px;
     39  background-color: limegreen;
     40  position: absolute;
     41  left: 20px;
     42  top: 100px;
     43  view-transition-name: target;
     44 }
     45 .newPage #target {
     46  left: 300px;
     47 }
     48 
     49 /* Long duration to ensure skipTransition aborts the transition */
     50 ::view-transition-group(target) {
     51  animation-duration: 300s;
     52 }
     53 
     54 /* Ensure view-transition snapshots are easily distinguished from live DOM */
     55 :root {
     56  view-transition-name: unset;
     57 }
     58 ::view-transition {
     59  background-color: thistle;
     60 }
     61 </style>
     62 <div id="target"></div>
     63 </html>