Quantum/Stylo: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Bugzilla Queries: Search for crash reports by "stylo" experiment branch instead of by layout.css.servo.enabled pref.)
m (→‎Bugzilla Queries: Update crash report links for Beta 60 and Nightly 61)
 
(34 intermediate revisions by the same user not shown)
Line 1: Line 1:
Stylo (a.k.a. [[Quantum]] [[CSS]]) will integrate Servo's CSS style system into Gecko, such that the style system code can be shared by Gecko and Servo. Stylo V1 will support Firefox on Windows, macOS, and Linux. Android support may ship in a later release. Stylo is a core part of [[Quantum|Project Quantum]].
Stylo (a.k.a. [[Quantum]] [[CSS]]) will integrate Servo's CSS style system into Gecko, such that the style system code can be shared by Gecko and Servo. Stylo V1 will support Firefox on Windows, macOS, and Linux. Android support may ship in a later release. Stylo is a core part of [[Quantum|Project Quantum]].


To help test Stylo, download [https://www.mozilla.org/firefox/channel/desktop/#nightly Firefox Nightly] and set the about:config pref '''layout.css.servo.enabled''' to '''true'''. To confirm that Stylo is enabled, check about:support for "Stylo: true (enabled by default)".
To help test Stylo, download [https://www.mozilla.org/firefox/channel/desktop/#nightly Firefox Nightly]. To confirm that Stylo is enabled, check about:support for "Stylo: true (enabled by default)". If it's not, then set the about:config pref '''layout.css.servo.enabled''' to '''true'''.
 
For a deep dive into Stylo internals, check out [https://code-cartoons.com/ Lin Clark]'s Mozilla Hacks blog post [https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/ ''"Inside a super fast CSS engine: Quantum CSS (aka Stylo)"''].


= Getting Involved =
= Getting Involved =
Line 61: Line 63:
! Win32
! Win32
! Win64
! Win64
! Android
|-
|-
! Build
! Build
Line 68: Line 71:
| style="background-color: PaleGreen;" | {{bug|1384258}}
| style="background-color: PaleGreen;" | {{bug|1384258}}
| style="background-color: PaleGreen;" | {{bug|1384258}}
| style="background-color: PaleGreen;" | {{bug|1384258}}
| style="background-color: PaleGreen;" | {{bug|1366049}}
(enabled 2017-11-23)
|-
|-
! AWSY
! AWSY
| not tested
| not tested
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1480724,1,4&series=autoland,1534468,1,4&series=autoland,1534518,1,4&series=autoland,1549358,1,4 +5%]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1480724,1,4&series=autoland,1534468,1,4&series=autoland,1534518,1,4&series=autoland,1549358,1,4 1% regression]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1514655,1,4&series=autoland,1535109,1,4&series=autoland,1549308,1,4 +6%]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1514655,1,4&series=autoland,1535109,1,4&series=autoland,1549308,1,4 1% regression]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1519077,1,4&series=autoland,1535212,1,4&series=autoland,1549620,1,4 +7%]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1519077,1,4&series=autoland,1535212,1,4&series=autoland,1549620,1,4 2% regression]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1535162,1,4&series=autoland,1519032,1,4&series=autoland,1549566,1,4 +7%]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535162,1,4&series=autoland,1519032,1,4&series=autoland,1549566,1,4 3% regression]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1455599,1,4&series=autoland,1545819,1,4&series=autoland,1543160,1,4 0% change]
|-
|-
! Speedometer
! Speedometer
| not tested
| not tested
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1571040,1,1&series=mozilla-central,1571041,1,1&series=mozilla-central,1651675,1,1 linux64 Perfherder]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1569261,1,1&series=mozilla-central,1569301,1,1&series=mozilla-central,1647998,1,1 macOS Perfherder]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1571694,1,1&series=mozilla-central,1572189,1,1&series=mozilla-central,1652023,1,1 win7-32 Perfherder]
[https://arewefastyet.com/#machine=17&view=single&suite=speedometer-misc&subtest=score win8-32 desktop]
[https://arewefastyet.com/#machine=37&view=single&suite=speedometer-misc&subtest=score win10-32 reference laptop]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1571711,1,1&series=autoland,1652898,1,1&series=autoland,1569047,1,1 win10-64 Perfherder]
[https://arewefastyet.com/#machine=35&view=single&suite=speedometer-misc&subtest=score win8-64 desktop]
[https://arewefastyet.com/#machine=36&view=single&suite=speedometer-misc&subtest=score win10-64 reference laptop]
| not tested
|-
! StyleBench
| not tested
| not tested
| [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1634248,1,1&series=autoland,1647733,1,1 linux64 Perfherder]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1633971,1,1&series=autoland,1646521,1,1 macOS Perfherder]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1634778,1,1&series=autoland,1652806,1,1 win7-32 Perfherder]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1634566,1,1&series=autoland,1653144,1,1 win10-64 Perfherder]
| not tested
| not tested
| style="background-color: LightYellow;" | [https://arewefastyet.com/#machine=37&view=single&suite=speedometer-misc&subtest=score win10-32 reference laptop]
[https://arewefastyet.com/#machine=17&view=single&suite=speedometer-misc&subtest=score win8-32 desktop]
| style="background-color: LightYellow;" | [https://arewefastyet.com/#machine=36&view=single&suite=speedometer-misc&subtest=score win10-64 reference laptop]
[https://arewefastyet.com/#machine=35&view=single&suite=speedometer-misc&subtest=score win8-64 desktop]
|-
|-
! tp5
! tp5
| not tested
| not tested
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1496972,1,1&series=mozilla-central,1324797,1,1&series=mozilla-central,1481782,1,1&series=mozilla-central,1550029,1,1 linux64]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1481782,1,1&series=mozilla-central,1551044,1,1&series=mozilla-central,1353152,1,1&series=mozilla-central,1652392,1,1 linux64]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1339033,1,1&series=mozilla-central,1542424,1,1&series=mozilla-central,1549874,1,1 macOS]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1339033,1,1&series=mozilla-central,1542424,1,1&series=mozilla-central,1549874,1,1 macOS]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1316248,1,1&series=mozilla-central,1538582,1,1&series=mozilla-central,1552822,1,1 win7-32]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1316248,1,1&series=mozilla-central,1538582,1,1&series=mozilla-central,1552822,1,1 win7-32]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1503157,1,1&series=mozilla-central,1538597,1,1&series=mozilla-central,1552369,1,1 win10-64]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1503157,1,1&series=mozilla-central,1538597,1,1&series=mozilla-central,1552369,1,1 win10-64]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=5184000&series=autoland,1543681,1,3&series=autoland,1574400,1,3&series=autoland,1574392,1,3&series=autoland,1567232,1,3 tp4m] (tiny improvement)
|-
|-
! tp6a
! tp6a
| not tested
| not tested
| not tested
| not tested
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1541745,1,1&series=mozilla-central,1542215,1,1&series=mozilla-central,1540857,1,1&series=mozilla-central,1549779,1,1&series=mozilla-central,1549764,1,1 macOS]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1541745,1,1&series=mozilla-central,1540857,1,1&series=mozilla-central,1549764,1,1&series=autoland,1540759,1,1 macOS]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1534926,1,1&series=autoland,1535549,1,1&series=autoland,1535545,1,1&series=autoland,1549662,1,1&series=autoland,1549608,1,1 win7-32]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1552302,1,1&series=autoland,1535549,1,1&series=autoland,1535545,1,1 win7-32]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1534934,1,1&series=autoland,1535525,1,1&series=autoland,1535521,1,1&series=autoland,1549461,1,1&series=autoland,1549460,1,1 win10-64]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535521,1,1&series=autoland,1535525,1,1&series=mozilla-central,1552125,1,1 win10-64]
| not tested
|-
|-
! tp6f
! tp6f
| not tested
| not tested
| not tested
| not tested
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1540858,1,1&series=mozilla-central,1542216,1,1&series=mozilla-central,1541746,1,1&series=mozilla-central,1549780,1,1&series=mozilla-central,1549765,1,1 macOS]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1540858,1,1&series=mozilla-central,1549765,1,1&series=mozilla-central,1541746,1,1&series=autoland,1540760,1,1&series=autoland,1556447,1,1 macOS]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1535546,1,1&series=autoland,1535550,1,1&series=autoland,1534927,1,1&series=autoland,1549663,1,1&series=autoland,1549609,1,1 win7-32]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535550,1,1&series=mozilla-central,1535614,1,1&series=mozilla-central,1552303,1,1 win7-32]
| style="background-color: Tomato;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1534935,1,1&series=autoland,1535522,1,1&series=autoland,1535526,1,1&series=autoland,1549463,1,1&series=autoland,1549462,1,1 win10-64]
| style="background-color: Tomato;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535526,1,1&series=autoland,1535522,1,1&series=mozilla-central,1552126,1,1 win10-64]
| not tested
|-
|-
! tp6g
! tp6g
| not tested
| not tested
| not tested
| not tested
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1542213,1,1&series=mozilla-central,1541743,1,1&series=mozilla-central,1540855,1,1&series=mozilla-central,1549777,1,1&series=mozilla-central,1549762,1,1 macOS]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1540855,1,1&series=mozilla-central,1541743,1,1&series=mozilla-central,1549762,1,1&series=autoland,1540757,1,1&series=autoland,1556444,1,1 macOS]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1534924,1,1&series=autoland,1535547,1,1&series=autoland,1535543,1,1&series=autoland,1549660,1,1&series=autoland,1549606,1,1 win7-32]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535547,1,1&series=autoland,1535543,1,1&series=mozilla-central,1552300,1,1 win7-32]
| style="background-color: Tomato;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1535519,1,1&series=autoland,1535523,1,1&series=autoland,1534932,1,1&series=autoland,1549457,1,1&series=autoland,1549456,1,1 win10-64]
| style="background-color: Tomato;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535523,1,1&series=autoland,1535519,1,1&series=mozilla-central,1552123,1,1 win10-64]
| not tested
|-
|-
! tp6y
! tp6y
| not tested
| not tested
| not tested
| not tested
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=mozilla-central,1542214,1,1&series=mozilla-central,1541744,1,1&series=mozilla-central,1540856,1,1&series=mozilla-central,1549778,1,1&series=mozilla-central,1549763,1,1 macOS]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=mozilla-central,1540856,1,1&series=mozilla-central,1541744,1,1&series=mozilla-central,1549763,1,1&series=autoland,1540758,1,1&series=autoland,1556445,1,1 macOS]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1535544,1,1&series=autoland,1535548,1,1&series=autoland,1534925,1,1&series=autoland,1549661,1,1&series=autoland,1549607,1,1 win7-32]
| style="background-color: PaleGreen;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535548,1,1&series=autoland,1535544,1,1&series=mozilla-central,1552301,1,1 win7-32]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?series=autoland,1535520,1,1&series=autoland,1535524,1,1&series=autoland,1534933,1,1&series=autoland,1549459,1,1&series=autoland,1549458,1,1 win10-64]
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=autoland,1535524,1,1&series=autoland,1535520,1,1&series=mozilla-central,1552124,1,1 win10-64]
| not tested
|-
! Autophone
| not tested
| not tested
| not tested
| not tested
| not tested
| style="background-color: LightYellow;" | [https://treeherder.mozilla.org/perf.html#/graphs?timerange=5184000&series=autoland,1543797,1,3&series=autoland,1544207,1,3&series=autoland,1544451,1,3&series=autoland,1543832,1,3 remote-blank] (tiny improvement)
[https://treeherder.mozilla.org/perf.html#/graphs?timerange=5184000&series=autoland,1543790,1,3&series=autoland,1574418,1,3&series=autoland,1544458,1,3 remote-nytimes] (tiny regression)
 
[https://treeherder.mozilla.org/perf.html#/graphs?timerange=5184000&series=autoland,1574382,1,3&series=autoland,1574408,1,3&series=autoland,1567250,1,3&series=autoland,1567240,1,3 remote-tsvg] (tiny regression {{bug|1420369}})
 
[https://treeherder.mozilla.org/perf.html#/graphs?timerange=5184000&series=autoland,1543762,1,3&series=autoland,1543783,1,3&series=autoland,1574425,1,3 remote-twitter] (tiny regression {{bug|1420369}})
|}
|}


Line 161: Line 198:
   "short_desc": "stylo",
   "short_desc": "stylo",
   "priority": "P1",
   "priority": "P1",
  "resolution": "---",
  "include_fields": "id, priority, summary, keywords, assigned_to",
  "order": "assigned_to"
} </bugzilla>
[stylo:p1] bugs:
<bugzilla> {
  "status_whiteboard": "[stylo:p1]",
   "resolution": "---",
   "resolution": "---",
   "include_fields": "id, priority, summary, keywords, assigned_to",
   "include_fields": "id, priority, summary, keywords, assigned_to",
Line 179: Line 224:
} </bugzilla>
} </bugzilla>


== P3 Bugs ==
[stylo:p2] bugs:
 
<bugzilla> {
<bugzilla> {
   "f2": "status_whiteboard",
   "status_whiteboard": "[stylo:p2]",
  "o2": "nowords",
  "v2": "[stylo",
  "short_desc": "stylo",
  "priority": "P3",
   "resolution": "---",
   "resolution": "---",
   "include_fields": "id, priority, summary, keywords, assigned_to",
   "include_fields": "id, priority, summary, keywords, assigned_to",
Line 192: Line 232:
} </bugzilla>
} </bugzilla>


Other stylo-nightly bugs:
== P3 Bugs ==


<bugzilla> {
<bugzilla> {
  "blocks": "1330412",
   "f2": "status_whiteboard",
   "f2": "priority",
   "o2": "nowords",
   "o2": "nowords",
   "v2": "P1,P2,P3",
   "v2": "[stylo",
  "short_desc": "stylo",
  "priority": "P3",
   "resolution": "---",
   "resolution": "---",
   "include_fields": "id, priority, summary, keywords, assigned_to",
   "include_fields": "id, priority, summary, keywords, assigned_to",
Line 204: Line 245:
} </bugzilla>
} </bugzilla>


Other stylo-release bugs:


[stylo:p3] bugs:
<bugzilla> {
<bugzilla> {
   "blocks": "1374034",
   "status_whiteboard": "[stylo:p3]",
  "f2": "priority",
  "o2": "nowords",
  "v2": "P1,P2,P3",
   "resolution": "---",
   "resolution": "---",
   "include_fields": "id, priority, summary, keywords, assigned_to",
   "include_fields": "id, priority, summary, keywords, assigned_to",
Line 223: Line 261:
* [https://bugzilla.mozilla.org/buglist.cgi?priority=--&j_top=OR&f1=short_desc&order=Importance&list_id=13520154&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&o1=substring&resolution=---&query_format=advanced&f2=status_whiteboard&v1=stylo%3A&product=Core&product=Firefox Unprioritized "stylo:" bugs to be triaged]
* [https://bugzilla.mozilla.org/buglist.cgi?priority=--&j_top=OR&f1=short_desc&order=Importance&list_id=13520154&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&o1=substring&resolution=---&query_format=advanced&f2=status_whiteboard&v1=stylo%3A&product=Core&product=Firefox Unprioritized "stylo:" bugs to be triaged]
* [https://sql.telemetry.mozilla.org/queries/6154#table Stylo experiment client count]
* [https://sql.telemetry.mozilla.org/queries/6154#table Stylo experiment client count]
* [https://bugzilla.mozilla.org/showdependencytree.cgi?hide_resolved=1&id=stylo-crash-reports stylo-crash-reports bugs]
* [https://bugzilla.mozilla.org/showdependencytree.cgi?hide_resolved=1&id=stylo-site-issues stylo-site-issues bugs]


* Stylo milestone bug trees:
* Stylo milestone bug trees:
Line 232: Line 272:


* '''[https://bugzilla.mozilla.org/buglist.cgi?o5=notsubstring&o2=substring&v5=%5Bstylo&v2=stylo&priority=--&f1=OP&order=Importance&o3=anywords&v6=stylo%3A&v3=1243581%2C1289864%2C1289964%2C1321197%2C1324348%2C1324620%2C1330412%2C1330414%2C1337599%2C1341102%2C1343597%2C1345200&resolution=---&o6=notsubstring&f4=CP&query_format=advanced&j1=OR&f3=blocked&f2=short_desc&f5=status_whiteboard&f6=short_desc Unprioritized "stylo" whiteboard bugs to be triaged]''' (Chris's list)
* '''[https://bugzilla.mozilla.org/buglist.cgi?o5=notsubstring&o2=substring&v5=%5Bstylo&v2=stylo&priority=--&f1=OP&order=Importance&o3=anywords&v6=stylo%3A&v3=1243581%2C1289864%2C1289964%2C1321197%2C1324348%2C1324620%2C1330412%2C1330414%2C1337599%2C1341102%2C1343597%2C1345200&resolution=---&o6=notsubstring&f4=CP&query_format=advanced&j1=OR&f3=blocked&f2=short_desc&f5=status_whiteboard&f6=short_desc Unprioritized "stylo" whiteboard bugs to be triaged]''' (Chris's list)
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&o2=substring&v1=stylo&v2=%5Bstylo&priority=P1&priority=P2&priority=P3&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&f2=status_whiteboard All P1-P3 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&o2=substring&v1=stylo&v2=%5Bstylo&priority=P4&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&f2=status_whiteboard All P4 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&o2=substring&v1=stylo&v2=%5Bstylo&priority=P4&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&f2=status_whiteboard All P4 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&o2=substring&v1=stylo&v2=%5Bstylo&priority=P5&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&f2=status_whiteboard All P5 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&o1=anywords&o2=substring&v1=stylo&v2=%5Bstylo&priority=P5&f1=short_desc&columnlist=component%2Cpriority%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords%2Cstatus_whiteboard&resolution=---&query_format=advanced&f2=status_whiteboard All P5 bugs]
* [https://bugzilla.mozilla.org/buglist.cgi?j_top=OR&f1=short_desc&o1=anywords&resolution=---&o2=anywords&query_format=advanced&f2=status_whiteboard&v1=stylo&v2=%5Bstylo All Stylo bugs!]
* [https://wiki.mozilla.org/Quantum/Stylo/Team Bugs by developer]
* [https://wiki.mozilla.org/Quantum/Stylo/Team Bugs by developer]


* Crash queries:
* Crash queries:
** [https://crash-stats.mozilla.com/search/?telemetry_environment=~%22branch%22%3A%22stylo%22&product=Firefox&version=57.0a1&page=1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Nightly 57 crash reports from Stylo experiment]
** [https://crash-stats.mozilla.com/search/?signature=~Gecko_&signature=~Servo_&signature=~geckoservo&signature=~style%3A%3A&signature=~core%3A%3A&proto_signature=%21~webrender&product=Firefox&version=61.0a1&date=%3E%3D2018-03-05T16%3A06%3A35.000Z&date=%3C2018-03-12T17%3A06%3A35.000Z&page=1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Nightly 61 crash reports with Stylo function names]
** [https://crash-stats.mozilla.com/search/?signature=~Gecko_&signature=~Servo_&signature=~geckoservo&signature=~style%3A%3A&signature=~core%3A%3A&proto_signature=%21~webrender&product=Firefox&version=57.0a1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Nightly 57 crash reports with Stylo function names]
** [https://crash-stats.mozilla.com/search/?signature=~Gecko_&signature=~Servo_&signature=~geckoservo&signature=~style%3A%3A&signature=~core%3A%3A&proto_signature=%21~webrender&product=Firefox&version=60.0b&date=%3E%3D2018-03-05T16%3A06%3A39.000Z&date=%3C2018-03-12T17%3A06%3A39.000Z&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Beta 60 crash reports with Stylo function names]
** [https://crash-stats.mozilla.com/search/?telemetry_environment=~%22branch%22%3A%22stylo%22&product=Firefox&version=56.0b&page=1&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Beta 56 crash reports from Stylo experiment]
** [https://crash-stats.mozilla.com/search/?signature=~Gecko_&signature=~Servo_&signature=~geckoservo&signature=~style%3A%3A&signature=~core%3A%3A&proto_signature=%21~webrender&product=Firefox&version=56.0b&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature Beta 56 crash reports with Stylo function names]
** [https://bugzilla.mozilla.org/buglist.cgi?f1=cf_status_firefox56&list_id=13733190&o1=anywords&resolution=---&resolution=FIXED&o2=anywords&query_format=advanced&f2=blocked&v1=---%2C%3F%2Caffected%2Cfix-optional&v2=1388178 Crash bugs not fixed in Beta 56]


* Skipped or asserting tests: (these do not necessarily indicate Stylo bugs!)
* Skipped or asserting tests: (these do not necessarily indicate Stylo bugs!)

Latest revision as of 00:44, 13 March 2018

Stylo (a.k.a. Quantum CSS) will integrate Servo's CSS style system into Gecko, such that the style system code can be shared by Gecko and Servo. Stylo V1 will support Firefox on Windows, macOS, and Linux. Android support may ship in a later release. Stylo is a core part of Project Quantum.

To help test Stylo, download Firefox Nightly. To confirm that Stylo is enabled, check about:support for "Stylo: true (enabled by default)". If it's not, then set the about:config pref layout.css.servo.enabled to true.

For a deep dive into Stylo internals, check out Lin Clark's Mozilla Hacks blog post "Inside a super fast CSS engine: Quantum CSS (aka Stylo)".

Getting Involved

If you're interested in contributing to Stylo or Servo, drop by the #servo IRC channel on Mozilla's IRC server.

One front where you can help out is adding new properties to Servo's CSS parsing crate. This requires familiarity with Rust, but is otherwise a good way to dip your toes into Servo's style system. To get started, see Servo's CSS property hacking guide for more information.

If you do not know Rust, you can help implement keyword properties. See the Stylo hacking guide for more details. The Stylo hacking guide also has instructions for building Stylo if you wish to play with it yourself. If you know C++, Firefox bug 1277133 has information about easy Gecko bugs that will assist Stylo's integration with Gecko.

Some Stylo bugs that are good for new Servo contributors are tagged on GitHub as “easy” bugs and “less-easy” bugs.

Committing stylo changes

The process for committing a Stylo change that involves both Gecko and Servo changes is as follows:

  1. Create a Github PR against https://github.com/servo/servo with the Servo changes in question.
  2. Get that reviewed and checked into Servo's github repository.
  3. Wait for servo-vcs-sync to land the Servo changes on Gecko's autoland.
  4. Land the Gecko changes on autoland.

A more exhaustive / overwhelming description of the workflow is also available.

Try Syntax

For most Stylo changes, it should be sufficient to build on all platforms and test on Linux 64-bit only, which helps save resources in automation. To do this, you can use:

./mach try -b do -p all -u all[x64]

To build and test all Stylo platforms running in automation, you can use:

./mach try -b do -p linux,linux64,linux64-haz,macosx64,win32,win64 -u all

To build all possible platforms to ensure code compiles everywhere, but only test with Stylo enabled, you can use:

./mach try -b do -p all -u all[linux32,linux64,linux64-stylo-sequential,macosx64,windows7-32,windows10-64]

Release Criteria

Stylo should not cause us to regress any CSS feature unless we explicitly decide that regressing that specific feature is acceptable. The existing test suite will be the primary benchmark of this, with cross-validation from an automated analysis and manual QA of the Alexa Top 500 sites.

  • Stylo should be enabled by default on all desktop platforms.
  • Stylo should have zero P1 and P2 bugs.
  • Stylo should pass all (non-disabled) Gecko reftests and mochitests.
  • Stylo should support at least as many CSS properties as than Gecko. Firefox = 375. Stylo = 375. Chrome = 276. DONE!
  • Stylo should pass visual diff testing for the Alexa top sites. (bug 1331552) DONE!
  • Stylo's sequential mode performance on Talos tp5 and tp6 should be at least as fast as Gecko's.
  • Stylo's parallel mode performance on Talos tp5 and tp6 should be faster than Gecko's. Ideally, Stylo should scale linearly with the number of cores.
  • Stylo's performance on Speedometer should be at least as fast as Gecko's.
  • Stylo's memory usage (as measured by AWSY and user telemetry) should not exceed to Gecko's by more than X% (TBD).
  • Stylo's crash rate should be less than or equal to Gecko's.
  • Stylo's user engagement metrics should be greater than or equal to Gecko's.
Linux32 Linux64 macOS Win32 Win64 Android
Build bug 1366050 bug 1374824 bug 1375774 bug 1384258 bug 1384258 bug 1366049

(enabled 2017-11-23)

AWSY not tested 1% regression 1% regression 2% regression 3% regression 0% change
Speedometer not tested linux64 Perfherder macOS Perfherder win7-32 Perfherder

win8-32 desktop

win10-32 reference laptop

win10-64 Perfherder

win8-64 desktop

win10-64 reference laptop

not tested
StyleBench not tested linux64 Perfherder macOS Perfherder win7-32 Perfherder win10-64 Perfherder not tested
tp5 not tested linux64 macOS win7-32 win10-64 tp4m (tiny improvement)
tp6a not tested not tested macOS win7-32 win10-64 not tested
tp6f not tested not tested macOS win7-32 win10-64 not tested
tp6g not tested not tested macOS win7-32 win10-64 not tested
tp6y not tested not tested macOS win7-32 win10-64 not tested
Autophone not tested not tested not tested not tested not tested remote-blank (tiny improvement)

remote-nytimes (tiny regression)

remote-tsvg (tiny regression bug 1420369)

remote-twitter (tiny regression bug 1420369)

Milestones

stylo-central

stylo-nightly

  • Enable Stylo in Nightly (bug 1330412) (dependencies)
    • Implement parsing of all CSS properties supported by Firefox
    • Fix and enable all tests (without skipping or expecting failure)
    • Fix all crashes and assertion failures
      • Fuzz Stylo
      • Pass [Auto-tools/Projects/BugHunter Bughunter]
    • Manual QA sign-off
      • Smoke test Alexa Top N sites
      • Exploratory testing of browser UI and features

stylo-release

  • Stylo meta bug 1243581 (dependencies)
  • Run experiment comparing Stylo vs Gecko on engagement ratio, performance, crash rate, and memory usage.
  • Let Stylo ride the trains
    • Enable Stylo on all platforms (bug stylo-nightly)
      • Pass QA on all platforms (tests, fuzzing, BugHunter)
  • Ship Stylo to Release

Bugs

P1 Bugs

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


[stylo:p1] bugs:

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


P2 Bugs

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


[stylo:p2] bugs:

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


P3 Bugs

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


[stylo:p3] bugs:

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


Bugzilla Queries

Priority Definitions:

  • P1: Blocks shipping, more urgent. We should be working on these now/ASAP.
  • P2: Blocks shipping, less urgent. We can wait a few weeks to start working on these.
  • P3: Might block shipping. Needs re-evaluation, potentially closer to the deadline.
  • P4: Doesn't block shipping, but nice to have.
  • P5: Don't need to track.

Links