Compilation of tech articles, videos and links

For internal development purposes.


Curated content about WR

FirefoxGraphics github org

There are standup notes with links to some tech documents, and other interesting stuff related to webrender & firefox.

The whole web at maximum FPS: How WebRender gets rid of jank

Amazing intro to Webrenderer by Lin Clark.

Entering the Quantum Era—How Firefox got fast again and where it’s going to get faster

How Webrenderer fits into Firefox by Lin Clark

Nicolas Silva — WebRender: a sneak peek into Firefox Quantum's future (Rust Hungary #2, 2017-10-24)

Useful for understanding WR architecture.

Meeting notes from Mozlando 2018.

Quote from WR API roadmap:

Rewrite WR API to accept 3 trees instead of a single display list:

  • spatial tree (reference, scroll and sticky frames)
  • clip tree (tree of clip nodes, with a clip chain defined by a path to the tree root)
  • item tree (with nodes being the stacking contexts only, and leafs being items)

Which can be relevant for the project

Meeting notes from Toronto 2019

clipping & positioning (design)


There is an effort within the react native community that aims to achieve several goals:

  1. Make react-native core smaller in terms of number of components
  2. move to import {View} from 'react-native'. Which can potentially be used with other bundlers.
  3. Simplify architecture 3 threads -> 2 threads model with sync interactions. aka React Fabric
  4. Make other platforms 1st class citizens (windows + macOS + web?). That involves rewriting a lot of native code in c++

A combination of all of these ideas might make react-native a potentially appealing direction to explore once all these pieces are in place. Or alternatively use this project as a basis for a react-native platform implementation.

NOTE: currently there is no plans to implement react-native backend within this project.

Relevant links:

Make the RN core lean

Cross plat strategy for react-primitives

discussion about the future of react-primitives

Supporting Third-party Platforms in RNPM + Metro Bundler

discussion about supporting 3rd party platforms as 1st class

Unify RN platforms issue

discussion about the way to handle 3rd party platforms like windows. Also handling API extensions (like adding the mouse support)