Chromium may be all the rage nowadays, but other options that aren’t Mozilla continue to be developed.
Originally written as a SVG browser (“because SVG was way faster than HTML,” according to Ekioh CEO Piers Wombwell), everything is rendered entirely on the GPU. The browser, which made use of the 2D blitters found in many STBs, was able to render high-definition user interfaces with animation, and was deployed on tens of millions of STBs.
Development kicked off in 2006 and although the result was a high-performance SVG browser, HTML was very much in demand.
The team began by implementing XHTML support to the SVG browser before going down the full HTML route and also adding multithreading, à la Servo, to the layout code. Thanks in part to the original target of STBs, notable for being cheap enough for vendors to give away rather than their raw horsepower, Flow evolved into a compact, performant browser that supported the latest set of HTML5 features as well taking advantage of multithreading and GPU acceleration.
Wombwell gave us a work-in-progress version, which we ran on Ubuntu 20.04. First impressions were good. The Flow executable weighed in at just under 34MB and was blessedly free of the chaff other browser makers tend to include with their wares. It was also, however, free of such fripperies as a history, navigation buttons, or even somewhere to type in a URL.
This is very much a browser engine.
Still, passing in a URL via the command line wasn’t a hardship, and even in development, performance was snappy. Compatibility was impressive; we took the venerable (and no longer maintained) Acid tests out for a spin with no problems and found the majority of sites we browsed loaded without issue.
There were, however, some notable exceptions. Gmail struggled a bit, as Google insisted “this browser or app may not be secure” on some attempts, but loaded the email client on others. Similarly, Google Maps was also a little unhappy; fine showing satellite and Street View imagery, but less so with displaying an actual map. Web versions of Microsoft Office also struggled to load and Netflix simply ignored the entered password.
To be clear, this is very much a browser in development, and the fact that a small team has been able to produce a rendering engine that not only handles some of the more esoteric CSS out there but also with decent performance is not to be sniffed at.
As for the code, Wombwell told us: “It’s closed source because of the licensing model – our income is from licensing to embedded manufacturers. It’s been funded from the SVG and TV browser income, so no backing from big corporations (or VCs).
“Our roadmap,” he added, “is quite dependent on customer requirements.”
Recent additions have included WebGL support, needed by a partner. Basic Web Audio, CSS Grid and Web Cryptography are in progress. The latter should ease issues with logging into some sites.
One of the main benefits of Flow is a lack of slurpage. Wombwell explained: “There’s no data sent to mothership, no, and I don’t expect we ever will (certainly not without explicit permission). Closest might be auto-updates, which is sort of necessary, but it won’t be collecting usage data or anything.”
Cookies and trackers are, however, all allowed. “This needs to change,” agreed Wombwell, “but isn’t a priority when compared to getting websites going.
“We’re aware of its limitations and working fast to remove them,” he added. Flow has not been publicly available until December “primarily because who’d want a browser that can’t log into their favourite site?”
The first public release (outside of the world of set-top boxes) has targeted the Raspberry Pi-400.
“We always test against Broadcom’s proprietary drivers (on a STB reference board) as that’s what ships on STBs, but the Pi seems a good target now,” said Wombwell. “It seems a good first choice of platform, to me, in that everyone’s is the same – no bizarre graphics card combo.”
Those in possession of a Pi-400 can download a preview of the browser here, and since it’s a work in progress, the developers are seeking feedback on what is a bit wobbly. Progress can be tracked via Twitter. ®