The first web browser meets the newest browser.

Because of the great efforts of the Cern WorldWideWeb Rebuild team, I thought I’d try the original browser layout engine inside Flow, the newest browser layout engine.

It didn’t quite work first time – I had to add support for Console.groupCollapsed() to get anything other than a grey screen. The toolbar then appeared, as did a document window, though nothing actually appeared inside. It turns out the Javascript uses Fetch rather than XMLHttpRequest to fetch the website data. As we don’t support Fetch yet, I ended up injecting a Fetch polyfill. Then it all worked, surprisingly well.

There were a few problems, however. The windows were way too wide, which turns out to be a bug in the calculation of column widths in our flex layout algorithm, but in the last couple of days the CSS has been reworked so the windows no longer use that feature. Unfortunately, that update has caused the title bar icons to disappear! We leave space for them and load the images, but they’re not displayed.

Finally, we don’t support a handful of features that you’d expect in a browser because we have, so far, focused on features used by STB UIs:

  • Indentation around <dd>. While we support the various list tags, UIs and websites almost always apply extra styling making the original, default, behaviour largely redundant. We’ll add it, but it’s just not a priority.
  • Underlines. These are never used on STBs, historically because they caused flicker on interlaced displays.
  • Scrollbar pseudos. An experimental feature I’d not actually come across before. We don’t yet support any scrollbars, so will ponder this once we add support for them.

The rebuild of WorldWideWeb uses deceptively modern techniques to achieve the precise look of the original so it’s very pleasing to see Flow doing a good job of running it. On the 30th anniversary of the web, it’s fun to introduce where it all started with where the future is heading.


If you’d like to automatically receive our posts by email please join our mailing list.

BACK TO BLOG