+ All Categories
Home > Documents > Rich Layout from First Principles

Rich Layout from First Principles

Date post: 12-Jan-2016
Category:
Upload: corine
View: 41 times
Download: 0 times
Share this document with a friend
Description:
Rich Layout from First Principles. Specification, Generation, and Parallelization. Adam Jiang, Leo Meyerovich w ith Seth Fowler, John Ng, and RasBodik. Hot Par 2009, WWW 2010. Why Layout?. parser. 21%. parser. 43% in IE8. DOM. CSS rules. selector engine. 29%. selector engine. - PowerPoint PPT Presentation
Popular Tags:
12
Rich Layout from First Principles Specification, Generation, and Parallelization Adam Jiang, Leo Meyerovich with Seth Fowler, John Ng, and RasBodik Hot Par 2009, WWW 2010
Transcript
Page 1: Rich Layout from First Principles

Rich Layout from First Principles

Specification, Generation, and Parallelization

Adam Jiang, Leo Meyerovichwith Seth Fowler, John Ng, and RasBodik Hot Par 2009, WWW 2010

Page 2: Rich Layout from First Principles

2

Why Layout?parser

DOM CSS rules

selector engine

rendering

21%

23%

12%

29%

9%

JavaScript interpreter

layout engine

parser

selector engine

rendering

JavaScript interpreter

2.4 GHz Macbook Pro, Safari 4.0.3Slashdot, Netflix, MSNBC, Gmail, Facebook, deviantART

WWW2010

our group

43% in IE8

laptop: … 2smobile: … 15s

this talk

Page 3: Rich Layout from First Principles

3

The Layout Problem

width=shrinkToFit

width=50% of parent

width=200px…

constraints satisfied

… but strange

unspecified decision to drop constraint

… rest followed

Standard and implementation strategy are unclear

width=shrinkToFit

width=50% of parent

Page 4: Rich Layout from First Principles

4

Towards a Mechanized Layout Engine

renderer

CSS DOM

(parallel, incremental, …)layout engine

layout specification(attribute grammar) grammar analyzer

CSS, JavaScript, …(LL1 grammar) grammar analyzer (parallel, incremental, …)

parser

Page 5: Rich Layout from First Principles

5

Attribute Grammars

• Knuth ‘67: executable language semantics

• Automation: parallel, incremental, …• Good for IDEs, compiling Pascal-like languages

+

* *

1 2 3 4

<ADD>

<E0> <E1>

this.val = E0.val + E1.val

val, … val, …

val, …

Page 6: Rich Layout from First Principles

6

Is Layout Inherently Sequential?

<body>

<p> <p>

<img>hello <b> ok ok ok ok

world

ok

w:100, fs:12

w:50, float:left

w=100, fs=12x=0, y=0

w=100, fs=6x=0, y=0

w=40, fs=6x=0, y=0h=10

h=10w=100, fs=12x=0, y=10

w=50x=0, y=10h=20

w=30, fs=12x=50, y=10h=10

h=10

w=100, fs=12x=0, y=10

h=40

h=40

fs:50%

fs, Δ, w

fs, Δ, w Δ fs,Δ,w

Δ

Δ fs, Δ, w

fs, Δ, w

fs, Δ, w

Page 7: Rich Layout from First Principles

7

Dependencies prevent parallelism

<body>

<p> <p>

<img>hello <b> ok ok ok ok

world

ok

w:100, fs:12

w:50, float:left

w=100, fs=12x=0, y=0

w=100, fs=6x=0, y=0

w=40, fs=6x=0, y=0h=10

h=10w=100, fs=12x=0, y=10

w=50x=0, y=10h=20

w=30, fs=12x=50, y=10h=10

h=10

w=100, fs=12x=0, y=10

h=40

h=40

fs:50%

fs, Δ, w

fs, Δ, w Δ fs, Δ,w

Δ

Δ fs, Δ, w

fs, Δ, w

fs, Δ, w

w=40, fs=6x=0, y=0h=10

w=100, fs=12x=0, y=10

Δ

Δ fs, Δ, w

Page 8: Rich Layout from First Principles

8

Parallelism from isolating dependencies

<body>

<p> <p>

<img>hello <b> ok ok ok ok

world

ok

w:100, fs:12

w:50, float:left

w=100, fs=12x=0, y=0

w=100, fs=6x=0, y=0

w=40, fs=6x=0, y=0h=10

h=10w=100, fs=12x=0, y=10

w=50x=0, y=10h=20

w=30, fs=12x=50, y=10h=10

h=10

w=100, fs=12x=0, y=10

h=40

h=40

fs:50%

fs, Δ, w

fs, Δ, w Δ fs, Δ,w

Δ

Δ fs, Δ, w

fs, Δ, w

fs, Δ, ww=30,fs=12x=50, y=10h=10

fs, Δ, w

fs, Δ, w

fs, Δ, w

Page 9: Rich Layout from First Principles

x w h hx w

innerNode leafNode

fa d

topNode

self

child1 : Node x w h x w h

1. Compute local dependencies

2. Compute transitive dependenciesfor all layouts in this grammar, if dep(a, b, … z), then E(a, b), E(b, c), …

3. Schedule by stitching together (topological sort)

( child1.x := self.x + 23 )

Page 10: Rich Layout from First Principles

Automatic Incrementalization of Rendering

Render img1

Render img2

Render img-n

Move display list

Render img1… Render img-n

Move display list 2

Render img z… Render img m(John)

Page 11: Rich Layout from First Principles

• Attribute grammar specification promising

• New attribute grammar language• Big benefits

Users: fast and conformant browserDesigners: analysis toolsBrowser developers: separate feature from optimizationStandards: verification (well-defined, backwards compat..)

Takeaway

C++ visitor(ANTLR, …)

declarative grammar

box layoutfloatstables

speculative parallelism?DAGs?

Page 12: Rich Layout from First Principles

Questions?


Recommended