Skip to content

1.0.0-beta.31 — one reveal duration per element; the gate survives a browser that crashes starting

Choose a tag to compare

@iOSDevSK iOSDevSK released this 23 Sep 17:56
· 27 commits to main since this release

Two fixes that let a Gutenberg conversion pass on the first try, instead of failing for reasons that have nothing to do with the theme.

One reveal duration per element, on every page. prerender-spa.py measures each reveal animation on the live page. When a page's first frames arrive late under load, the animation is already partly played and measures short. On the acceptance site, the shared header measured 400 ms on nine pages and 350 ms on the FAQ. That one number gave the FAQ a header of its own: an extra template part and template. The editor then drew that part half a pixel off, and the Gutenberg gate failed it.

The duration now belongs to the element, the same way close-on-link already does:

  • Once every route is captured, an element that appears on several routes gets the duration most of them measured. On a tie, it gets the longest.
  • An element counts as the same when its position, tag, classes and starting look all match.
  • The written pages are rewritten to that duration, and the prerender report lists each element in revealDurations.
  • Where a reveal starts (data-spa-reveal-at) stays per page. A footer that is already on screen on a short page still starts at once.

The Gutenberg gate retries a browser that crashes while starting. Chromium in the runtime container occasionally dies with SIGSEGV before it opens a page ("Target page, context or browser has been closed"). Since beta.29 the gate starts one browser per worker, three at once by default. So a single crashed start could fail a whole full run and send the conversion into a repair round for nothing. Every browser start in the gate and the editor visual gate now gets three attempts. A browser that still cannot start fails the run as before.

Checked end to end before release on the train-swim-win acceptance site: the header is a single variant again, gverify passes (30 frontend and 57 editor rows), and packaging and export complete.