What I Talk About When I Talk About Running on the Web
One: Space Jam is forever
“Describing why the Web is horrible is like describing why it’s horrible to drown in an ocean composed of pufferfish that are pregnant with tiny Freddy Kruegers”
James Mickens, “To Wash It All Away”
Omnipresence
Low barrier to entry
most technology
the web
Most developers are web developers
Web developers want to make apps
Web developers are ambitious
Two: We were not tall enough
1994 Pentium
2002 Pentium IV
2008 Nehalem
Web pages are fractal
Let’s rewrite C++ from scratch so that we can rewrite a browser from scratch.
Rust triforce
Fast, reliable, productive: pick three.
A safer web with Rust
How do we make Servo fast?
Parallel layout visualized
Monolithic engine
Multi-process engine
Servo pipeline
Servo constellation
cross-domain iframe from as.jivox.com
2008 Nehalem
2016 Skylake
WebRender Key Ideas
pub enum SpecificDisplayItem {
Rectangle(...),
Text(...),
Image(...),
YuvImage(...),
WebGL(...),
Border(...),
BoxShadow(...),
Gradient(...),
Iframe(...),
PushStackingContext(...),
PopStackingContext,
PushScrollLayer(...),
PopScrollLayer,
}
Three: Problems of many sizes and shapes
Browser
Browser.html
Webviews
Apps
More apps
Other craziness
Existing options
What do we need?
Four: Never stop never stopping
Browser.html
Runtime design
Runtime engine
Added APIs
Servo engine
Starling
Atom with Markdown preview
Starling ideas
How to get involved