The Interop Update
The Chrome Gap
Philip Jägenstedt, Robert Ma, Mike Taylor
April 10, 2019, BlinkOn 10
Interop as measured by web-platform-tests: improving
The WPT Update�since last year
wpt.fyi - more runs
More runs from heterogeneous platforms; new in the past year:
wpt.fyi - more runs
More runs from heterogeneous platforms; new in the past year:
wpt.fyi - new features
Other WPT stuff
Call for action
Call for action
90%
Let’s do it
Long term trends
Data from browser-compat-data (BCD)
What is MDN’s browser-compat-data?
What is MDN’s browser-compat-data?
Data from browser-compat-data (BCD)
Interop as measured by browser-compat-data subset: improving?
1/4 up 171
2/4 up 174
3/4 up 213
4/4 up 498
Data from BCD
CSS Typed OM
Data from BCD
Incomplete data?
Data from BCD
Incomplete data?
Does Confluence agree?
Data from Confluence
Data from Confluence
Does wpt.fyi agree? Yes
Quantifying the gap
Platform Gap Metric
Proposal: Create a measurement—weighted by feature usage (Chrome use counter data)—to track the difference in web platform support between Gecko and Blink.
For each feature that Chrome supports, whether we implement it or not, the absolute gap would be:
∑iIi * Pi
Where Ii is 0 if we support the feature, and 1 if we do not and Pi is the percentage of the feature served to Chrome.
Platform Gap Metric
Sample DOM gap measurement
Feature | Percentage of page loads in Chrome using the feature | Gap score |
MouseEvent.toElement | 42.04% | 0.42049603 |
MouseEvent.fromElement | 37.29% | 0.37290945 |
Navigator.connection | 35.31% | 0 |
Document.all | 22.20% | 0 |
| Total Gap Score: | 0.79340548 |
Is it meaningful?
Can we gauge the impact (in terms of bug counts) and weight it accordingly?
CSS gap (gap_weight)
Note: The sizable decrease in the absolute gap is attributed to shipping support for -webkit-appearance in Firefox 63 (which appears in 53% of Chrome page loads).
Shipped -webkit-appearance
CSS gap (gap_size)
Scroll snapping?
CSS Gap
DOM Gap
Complete coverage for CSS properties is possible today, because Chrome has use counters for all of them.
💣 Problem: there’s no coverage for property values.
💣 Problem: Blink only has use counters for 5.6% of the DOM features that Gecko does not implement. We need to come up with a proxy for features used in sites served to Chrome.
Platform Gap Metric, revised
Proposal: Create a measurement—weighted by feature usage—to track the difference in web platform support between Firefox (Gecko) and Chrome (Blink).
For each feature that Chrome supports, whether we implement it or not, the absolute gap would be:
∑iIi * Pi
Where Ii is 0 if we support the feature, and 1 if we do not and Pi is our estimate of the popularity of the feature.
What’s in the gap?
Chrome-only APIs
No longer Chrome-only!
Edge-only
Safari-only
Firefox-only
So...
4 engines became 3
EdgeHTML
Data from BCD
What to do?
WebKit is key?
Extra slides added after BlinkOn
Data from caniuse
Data from caniuse
Data from caniuse
Data from caniuse
So???
Backup slides
Data from BCD
Data from BCD
Confluence features/quirks
Data from Confluence
Data from Confluence