Bug 1407847 - Enable stylo for XUL document without system principal and annotate failures accordingly. r?heycam draft
authorXidorn Quan <me@upsuper.org>
Thu, 12 Oct 2017 10:43:38 +1100
changeset 680808 84c73fbb58f7ce518fdd36113475f6d3e9f1db22
parent 680723 66cdb2c29d29e4d556077f17fe80b64b477d7374
child 735975 4a2989ba3b1ab87121e8924eedc1dd3f84aa9538
push id84636
push userxquan@mozilla.com
push dateMon, 16 Oct 2017 10:47:09 +0000
reviewersheycam
bugs1407847
milestone58.0a1
Bug 1407847 - Enable stylo for XUL document without system principal and annotate failures accordingly. r?heycam MozReview-Commit-ID: KcJxloT2rR8
dom/base/nsDocument.cpp
dom/xul/crashtests/crashtests.list
editor/reftests/reftest.list
layout/base/crashtests/crashtests.list
layout/reftests/bidi/reftest.list
layout/reftests/box-ordinal/reftest.list
layout/reftests/box-shadow/reftest.list
layout/reftests/bugs/reftest.list
layout/reftests/css-display/reftest.list
layout/reftests/forms/input/text/reftest.list
layout/reftests/forms/placeholder/reftest.list
layout/reftests/forms/textbox/reftest.list
layout/reftests/invalidation/reftest.list
layout/reftests/native-theme/reftest.list
layout/reftests/reftest-sanity/reftest.list
layout/reftests/reftest.list
layout/reftests/text-shadow/reftest.list
layout/reftests/xul/reftest.list
layout/xul/crashtests/crashtests.list
layout/xul/grid/reftests/reftest.list
layout/xul/reftest/reftest.list
layout/xul/test/mochitest.ini
layout/xul/tree/crashtests/crashtests.list
toolkit/content/tests/reftests/reftest.list
view/crashtests/crashtests.list
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -13689,20 +13689,18 @@ nsIDocument::UpdateStyleBackendType()
   mStyleBackendType = StyleBackendType::Gecko;
 
 #ifdef MOZ_STYLO
   if (nsLayoutUtils::StyloEnabled()) {
     // Disable stylo only for system principal. Other principals aren't
     // able to use XUL by default, and the back door to enable XUL is
     // mostly just for testing, which means they don't matter, and we
     // shouldn't respect them at the same time.
-    // Note that, since tests can have XUL support, we still need to
-    // explicitly exclude XUL documents here.
     if (!nsContentUtils::IsSystemPrincipal(NodePrincipal()) &&
-        !IsXULDocument() && !ShouldUseGeckoBackend(mDocumentURI) &&
+        !ShouldUseGeckoBackend(mDocumentURI) &&
         !nsLayoutUtils::IsInStyloBlocklist(NodePrincipal())) {
       mStyleBackendType = StyleBackendType::Servo;
     }
   }
 #endif
 }
 
 /**
--- a/dom/xul/crashtests/crashtests.list
+++ b/dom/xul/crashtests/crashtests.list
@@ -8,17 +8,17 @@ load 326644-2.html
 load 326864-1.xul
 load 326875-1.xul
 load 326881-1.xul
 load 329982-1.xhtml
 load 336096-1.xhtml
 load 344215-1.xul
 load 354611-1.html
 load 360078-1.xhtml
-load 363791-1.xul
+asserts-if(stylo,16) load 363791-1.xul # bug 1397644
 load 384740-1.xul
 load 384877-1.html
 load 386914-1.html
 load 386947-1.xul
 load 425821-1.xul
 load 428951-1.xul
 load 429085-1.xhtml
 load 431906-1.html
--- a/editor/reftests/reftest.list
+++ b/editor/reftests/reftest.list
@@ -1,10 +1,12 @@
 # include the XUL reftests
-include xul/reftest.list
+# All tests in this dir are affected by bug 1408811 on Stylo.
+# Some of them are != which pass on stylo but fails on styloVsGecko.
+skip-if(stylo) fails-if(styloVsGecko) include xul/reftest.list
 
 != newline-1.html newline-ref.html
 == newline-2.html newline-ref.html
 == newline-3.html newline-ref.html
 == newline-4.html newline-ref.html
 == dynamic-1.html dynamic-ref.html
 == dynamic-type-1.html dynamic-ref.html
 == dynamic-type-2.html dynamic-ref.html
--- a/layout/base/crashtests/crashtests.list
+++ b/layout/base/crashtests/crashtests.list
@@ -65,18 +65,18 @@ load 310638-2.html
 load 311661-1.xul
 load 311661-2.xul
 load 313086-1.xml
 load 317285-1.html
 load 317934-1.html
 load 320459-1.html
 load 321058-1.xul
 load 321058-2.xul
-load 321077-1.xul
-load 321077-2.xul
+asserts-if(stylo,3) load 321077-1.xul # bug 1397644
+asserts-if(stylo,3) load 321077-2.xul # bug 1397644
 load 322436-1.html
 load 325967-1.html
 load 325984-1.xhtml
 load 325984-2.html
 load 328944-1.xul
 load 329900-1.html
 load 330015-1.html
 load 331204-1.html
--- a/layout/reftests/bidi/reftest.list
+++ b/layout/reftests/bidi/reftest.list
@@ -138,23 +138,23 @@ fuzzy-if(skiaContent,1,3) == 698291-1.ht
 == 746987-4.html 746987-4-ref.html
 == 779003-1.html 779003-1-ref.html
 == 779003-1-dynamic.html 779003-1-ref.html
 == 817406-1.html 817406-1-ref.html
 == 817406-2.html 817406-2-ref.html
 == 817406-3.html 817406-1-ref.html
 == 817406-4.html 817406-4-ref.html
 == 847242-1.html 847242-1-ref.html
-fuzzy-if(xulRuntime.widgetToolkit=="gtk3",1,11) == 869833-1.xul 869833-1-ref.xul
+fuzzy-if(xulRuntime.widgetToolkit=="gtk3",1,11) fails-if(stylo||styloVsGecko) asserts-if(stylo,25-26) == 869833-1.xul 869833-1-ref.xul # stylo: bug 1397644
 == 922530-1.html 922530-1-ref.html
 == 922550-1.html 922550-1-ref.html
 == 1067268-1.html 1067268-1-ref.html
 == 1069941-inline-bidi-border-1.html 1069941-inline-bidi-border-1-ref.html
 == 1069941-inline-bidi-margin-1.html 1069941-inline-bidi-margin-1-ref.html
-!= 1155359-1.xul 1155359-1-ref.xul
+fails-if(stylo||styloVsGecko) != 1155359-1.xul 1155359-1-ref.xul # bug 1408235
 == 1157726-1.html 1157726-1-ref.html
 == 1161752.html 1161752-ref.html
 == 1161752-5-embed.html 1161752-5-embed-ref.html
 == brackets-1a-ltr.html brackets-1a-ltr-ref.html
 == brackets-1a-rtl.html brackets-1a-rtl-ref.html
 == brackets-1b-ltr.html brackets-1b-ltr-ref.html
 == brackets-1b-rtl.html brackets-1b-rtl-ref.html
 == brackets-1c-ltr.html brackets-1c-ltr-ref.html
--- a/layout/reftests/box-ordinal/reftest.list
+++ b/layout/reftests/box-ordinal/reftest.list
@@ -1,7 +1,7 @@
 == box-ordinal-with-out-of-flow-1.html box-ordinal-with-out-of-flow-1-ref.html
 == dynamic-1-remove-to-none-grouped.xul dynamic-1-ref.xul
 == dynamic-1-add-to-one-grouped.xul dynamic-1-ref.xul
-== dynamic-1-remove-to-one-grouped-1.xul dynamic-1-ref.xul
+fails-if(stylo||styloVsGecko) == dynamic-1-remove-to-one-grouped-1.xul dynamic-1-ref.xul # bug 1408235
 fails == dynamic-1-remove-to-one-grouped-2.xul dynamic-1-ref.xul # bug 575500
-== dynamic-1-add-to-two-grouped-1.xul dynamic-1-ref.xul
-== dynamic-1-add-to-two-grouped-2.xul dynamic-1-ref.xul
+fails-if(stylo||styloVsGecko) == dynamic-1-add-to-two-grouped-1.xul dynamic-1-ref.xul # bug 1408235
+fails-if(stylo||styloVsGecko) == dynamic-1-add-to-two-grouped-2.xul dynamic-1-ref.xul # bug 1408235
--- a/layout/reftests/box-shadow/reftest.list
+++ b/layout/reftests/box-shadow/reftest.list
@@ -13,17 +13,17 @@ random != boxshadow-blur-2.html boxshado
 fails-if(Android) fuzzy-if(webrender,50,3310) == boxshadow-button.html boxshadow-button-ref.html
 fuzzy-if(OSX==1010,1,24) fuzzy-if(d2d,16,908) fuzzy-if(webrender,18,2160) == boxshadow-large-border-radius.html boxshadow-large-border-radius-ref.html # Bug 1209649
 
 fails-if(Android) == boxshadow-fileupload.html boxshadow-fileupload-ref.html
 fuzzy-if(skiaContent,13,28) fuzzy-if(webrender,29-29,453-453) == boxshadow-inner-basic.html boxshadow-inner-basic-ref.svg
 random-if(layersGPUAccelerated) == boxshadow-mixed.html boxshadow-mixed-ref.html
 == boxshadow-mixed-2.html boxshadow-mixed-2-ref.html
 random-if(d2d) fuzzy-if(skiaContent,1,100) fuzzy-if(webrender,127,3528) == boxshadow-rounded-spread.html boxshadow-rounded-spread-ref.html
-fuzzy-if(skiaContent,1,50) HTTP(..) == boxshadow-dynamic.xul boxshadow-dynamic-ref.xul
+fuzzy-if(skiaContent,1,50) fails-if(stylo) HTTP(..) == boxshadow-dynamic.xul boxshadow-dynamic-ref.xul # bug 1408235
 random-if(d2d) fails-if(webrender) == boxshadow-onecorner.html boxshadow-onecorner-ref.html
 random-if(d2d) fails-if(webrender) == boxshadow-twocorners.html boxshadow-twocorners-ref.html
 random-if(d2d) fails-if(webrender) == boxshadow-threecorners.html boxshadow-threecorners-ref.html
 fuzzy(2,440) fuzzy-if(webrender,25,1300) == boxshadow-skiprect.html boxshadow-skiprect-ref.html
 == boxshadow-opacity.html boxshadow-opacity-ref.html
 == boxshadow-color-rounding.html boxshadow-color-rounding-ref.html
 == boxshadow-color-rounding-middle.html boxshadow-color-rounding-middle-ref.html
 fuzzy(3,500) fuzzy-if(d2d,2,1080) fuzzy-if(webrender,13-13,1000-1000) == boxshadow-border-radius-int.html boxshadow-border-radius-int-ref.html
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -160,36 +160,36 @@ random == 99850-1b.html 99850-1-ref.html
 == 192767-01.xul 192767-11.xul
 == 192767-02.xul 192767-12.xul
 == 192767-03.xul 192767-13.xul
 == 192767-04.xul 192767-14.xul
 == 192767-05.xul 192767-15.xul
 == 192767-06.xul 192767-16.xul
 == 192767-07.xul 192767-17.xul
 == 192767-21.xul 192767-31.xul
-== 192767-22.xul 192767-32.xul
-== 192767-23.xul 192767-33.xul
-== 192767-24.xul 192767-34.xul
-== 192767-25.xul 192767-35.xul
-== 192767-26.xul 192767-36.xul
-== 192767-27.xul 192767-37.xul
+fails-if(styloVsGecko) == 192767-22.xul 192767-32.xul # bug 1408235
+fails-if(styloVsGecko) == 192767-23.xul 192767-33.xul # bug 1408235
+fails-if(styloVsGecko) == 192767-24.xul 192767-34.xul # bug 1408235
+fails-if(styloVsGecko) == 192767-25.xul 192767-35.xul # bug 1408235
+fails-if(styloVsGecko) == 192767-26.xul 192767-36.xul # bug 1408235
+fails-if(styloVsGecko) == 192767-27.xul 192767-37.xul # bug 1408235
 != 192767-01.xul 192767-21.xul
-!= 192767-02.xul 192767-22.xul
-fails-if(Android&&!asyncPan) != 192767-03.xul 192767-23.xul
-!= 192767-04.xul 192767-24.xul
-!= 192767-05.xul 192767-25.xul
-fails-if(Android&&!asyncPan) != 192767-06.xul 192767-26.xul
-fails-if(Android&&!asyncPan) != 192767-07.xul 192767-27.xul
+fails-if(stylo) != 192767-02.xul 192767-22.xul # bug 1408235
+fails-if(stylo||(Android&&!asyncPan)) != 192767-03.xul 192767-23.xul # bug 1408235 for stylo
+fails-if(stylo) != 192767-04.xul 192767-24.xul # bug 1408235
+fails-if(stylo) != 192767-05.xul 192767-25.xul # bug 1408235
+fails-if(stylo||(Android&&!asyncPan)) != 192767-06.xul 192767-26.xul # bug 1408235 for stylo
+fails-if(stylo||(Android&&!asyncPan)) != 192767-07.xul 192767-27.xul # bug 1408235 for stylo
 != 192767-11.xul 192767-31.xul
-!= 192767-12.xul 192767-32.xul
-fails-if(Android&&!asyncPan) != 192767-13.xul 192767-33.xul
-!= 192767-14.xul 192767-34.xul
-!= 192767-15.xul 192767-35.xul
-fails-if(Android&&!asyncPan) != 192767-16.xul 192767-36.xul
-fails-if(Android&&!asyncPan) != 192767-17.xul 192767-37.xul
+fails-if(stylo) != 192767-12.xul 192767-32.xul # bug 1408235
+fails-if(stylo||(Android&&!asyncPan)) != 192767-13.xul 192767-33.xul # bug 1408235 for stylo
+fails-if(stylo) != 192767-14.xul 192767-34.xul # bug 1408235
+fails-if(stylo) != 192767-15.xul 192767-35.xul # bug 1408235
+fails-if(stylo||(Android&&!asyncPan)) != 192767-16.xul 192767-36.xul # bug 1408235 for stylo
+fails-if(stylo||(Android&&!asyncPan)) != 192767-17.xul 192767-37.xul # bug 1408235 for stylo
 != 200774-1.html about:blank
 == 201215-1.html 201215-1-ref.html
 == 201293-1a.html 201293-1-ref.html
 == 201293-1b.html 201293-1-ref.html
 == 201293-1c.html 201293-1-ref.html
 == 201293-1d.html 201293-1-ref.html
 == 203727.html 203727-ref.html
 == 206516-1.html 206516-1-ref.html
@@ -268,37 +268,37 @@ skip-if(Android&&asyncPan) == 243519-1.h
 == 243519-9c.html 243519-9-ref.html
 == 243519-9d.html 243519-9-ref.html
 == 243519-9e.html 243519-9-ref.html
 == 243519-9f.html 243519-9-ref.html
 == 244135-1.html 244135-1-ref.html
 == 244135-2.html 244135-2-ref.html
 == 244932-1.html 244932-1-ref.html
 == 246669-1.html 246669-1-ref.html
-== 249141.xul 249141-ref.xul
+fails-if(stylo||styloVsGecko) == 249141.xul 249141-ref.xul # bug 1408235
 == 249982-1.html 249982-1-ref.html
 == 252920-1.html 252920-1-ref.html
 == 253701-1.html 253701-1-ref.html
 fuzzy-if(skiaContent,1,5) == 255820-1.html 255820-1-ref.html
 == 260406-1.html 260406-1-ref.html
-== 261826-1.xul 261826-1-ref.xul
+fails-if(styloVsGecko) == 261826-1.xul 261826-1-ref.xul # bug 1408824
 == 262151-1.html 262151-1-ref.html
 fuzzy-if(skiaContent,1,5) == 262998-1.html 262998-1-ref.html
 == 267353-1.html 267353-1-ref.html
 == 269908-1.html 269908-1-ref.html
 == 269908-2.html 269908-2-ref.html
 == 269908-3.html 269908-3-ref.html
 == 269908-4.html 269908-4-ref.html
 == 269908-5.html 269908-5-ref.html
 == 271747-1a.html 271747-1-ref.html
 == 271747-1b.html 271747-1-ref.html
 == 272646-1.xul 272646-1-ref.xul
-== 272646-2a.xul 272646-2-ref.xul
-== 272646-2b.xul 272646-2-ref.xul
-== 272646-2c.xul 272646-2-ref.xul
+fails-if(styloVsGecko) == 272646-2a.xul 272646-2-ref.xul # bug 1408824
+fails-if(styloVsGecko) == 272646-2b.xul 272646-2-ref.xul # bug 1408824
+fails-if(styloVsGecko) == 272646-2c.xul 272646-2-ref.xul # bug 1408824
 fuzzy-if(Android,3,50) fuzzy-if(skiaContent,1,133) == 273681-1.html 273681-1-ref.html
 == 278266-1a.html 278266-1-ref.html
 == 278266-1b.html 278266-1-ref.html
 == 280708-1a.html 280708-1-ref.html
 == 280708-1b.html 280708-1-ref.html
 == 281241-1.html 281241-1-ref.html
 == 281241-2.xhtml 281241-1-ref.html
 == 283686-1.html about:blank
@@ -311,18 +311,18 @@ random-if(d2d) fuzzy-if(Android,8,1439) 
 == 291078-2.html 291078-2-ref.html
 == 291262-1.html 291262-1-ref.html
 == 294306-1.html 294306-1a-ref.html
 != 294306-1.html 294306-1b-ref.html
 == 296361-1.html 296361-ref.html
 == 296904-1.html 296904-1-ref.html
 == 299136-1.html 299136-1-ref.html
 == 299837-1.html 299837-1-ref.html
-== 299837-2.xul 299837-2-ref.xul
-random-if(d2d) == 299837-3.xul 299837-3-ref.xul # bug 587631
+fails-if(styloVsGecko) == 299837-2.xul 299837-2-ref.xul # bug 1408235
+random-if(d2d) asserts-if(stylo,24-48) == 299837-3.xul 299837-3-ref.xul # bug 587631, stylo: bug 1397644
 == 300691-1a.html 300691-1-ref.html
 == 300691-1b.html 300691-1-ref.html
 == 300691-1c.html 300691-1-ref.html
 == 300691-1d.html 300691-1-ref.html
 == 300691-1e.html 300691-1-ref.html
 == 300691-1f.html 300691-1-ref.html
 == 301726-1.html 301726-1-ref.html
 fails-if(Android) != 301726-2.html 301726-2-ref.html
@@ -334,17 +334,17 @@ fails-if(Android) != 301726-2.html 30172
 == 307076-1.html 307076-1-ref.html
 == 307102-1.html 307102-1-ref.html
 == 307102-2.html 307102-2-ref.html
 == 307102-3.html 307102-3-ref.html
 == 307102-4.html 307102-4-ref.html
 == 308406-1.html 308406-1-ref.html
 == 308406-2.html 308406-2-ref.html
 == 309550-1.html 309550-1-ref.html
-== 309914-1.xul 309914-1-ref.xul
+fails-if(stylo||styloVsGecko) == 309914-1.xul 309914-1-ref.xul # bug 1408235
 == 311366-unknown-inline-1.html 311366-unknown-inline-1-ref.html
 == 311366-unknown-block-1.html 311366-unknown-block-1-ref.html
 == 311366-unknown-block-3.html 311366-unknown-block-3-ref.html
 == 311366-unknown-block-2.html 311366-unknown-block-2-ref.html
 == 311366-unknown-inline-2.html 311366-unknown-inline-2-ref.html
 == 311822-1.html 311822-1-ref-a.html
 == 311822-1.html 311822-1-ref-b.html
 == 315620-1a.html 315620-1-ref.html
@@ -437,18 +437,18 @@ random == 328829-1.xhtml 328829-1-ref.xh
 == 332360-width.html 332360-ref.html
 == 332360-width-ltr.html 332360-ltr-ref.html
 == 332557-1.html 332557-1-ref.html
 == 332975-1.html 332975-1-ref.html
 == 333970-1.html 333970-1-ref.html
 == 334829-1a.xhtml 334829-1-ref.xhtml
 == 334829-1b.xhtml 334829-1-ref.xhtml
 == 335628-1.html 335628-1-ref.html
-!= 335628-2.xul 335628-2-ref.xul
-== 336096-1.xul 336096-1-ref.xul
+fails-if(stylo||styloVsGecko) != 335628-2.xul 335628-2-ref.xul # bug 1408235
+fails-if(stylo) == 336096-1.xul 336096-1-ref.xul # bug 1408235
 == 336147-1.html 336147-1-ref.html
 == 336153-1.html 336153-1-ref.html
 != 338251-p.html about:blank
 == 338251-p-oh.html 338251-p-oh-ref.html
 != 338251-pre.html about:blank
 == 338251-pre-oh.html 338251-pre-oh-ref.html
 fuzzy-if(skiaContent,2,3) == 339289-1.html 339289-1-ref.html
 == 341043-1a.html 341043-1-ref.html
@@ -562,21 +562,21 @@ fuzzy-if(OSX,45,2) fuzzy-if(winWidget,11
 == 363858-6b.html 363858-6-ref.html
 == 363874.html 363874-ref.html
 == 363874-max-width.html 363874-max-width-ref.html
 == 364066-1.html 364066-1-ref.html
 == 364079-1.html 364079-1-ref.html
 == 364318-1.xhtml 364318-1-ref.xhtml
 == 364861-1.html 364861-1-ref.html
 == 364862-1.html 364862-1-ref.html
-== 364968-1.xul 364968-1-ref.html
+fails-if(stylo||styloVsGecko) == 364968-1.xul 364968-1-ref.html # bug 1408235
 == 364989-1.html 364989-1-ref.html
 == 365173-1.html 365173-1-ref.html
-== 366207-1.xul 366207-1-ref.xul
-== 366616-1.xul 366616-1-ref.xul
+fails-if(stylo||styloVsGecko) == 366207-1.xul 366207-1-ref.xul # bug 1408235
+fails-if(stylo) == 366616-1.xul 366616-1-ref.xul # bug 1408235
 == 367220-1.html 367220-1-ref.html
 == 367247-s-visible.html 367247-s-hidden.html
 == 367247-s-hidden.html 367247-s-auto.html
 fails-if(Android) != 367247-s-auto.html 367247-s-scroll.html
 != 367247-l-visible.html 367247-l-hidden.html
 fails-if(Android&&!asyncPan) != 367247-l-hidden.html 367247-l-scroll.html
 == 367247-l-scroll.html 367247-l-auto.html
 == 367332-1a.html 367332-1-ref.html
@@ -662,17 +662,17 @@ random-if(d2d) == 373381-3.html 373381-3
 == 373381-4.html 373381-4-ref.html
 == 373383-1.html 373383-1-ref.html
 == 373433-1.html 373433-1-ref.html
 == 373533-1.xhtml about:blank
 == 373533-2.xhtml about:blank
 == 373533-3.xhtml about:blank
 == 374038-1.xul 374038-1-ref.xul
 == 374038-2.xul 374038-2-ref.xul
-random-if(d2d) == 374719-1.xul 374719-1-ref.xul
+random-if(d2d) fails-if(styloVsGecko) == 374719-1.xul 374719-1-ref.xul # bug 1408824
 fails == 374927-1.html 374927-1-ref.html # Was broken by patch for bug 368600; fails until bug 400776 is fixed
 == 375508-1.html 375508-1-ref.html
 == 375716-1.html 375716-1-ref.html
 == 375827-1.html 375827-1-ref.html
 == 376375-1.html 376375-1-ref.html
 == 376484-1.html 376484-1-ref.html
 == 376532-1.html 376532-1-ref.html
 fails-if(Android) != 376532-2.html 376532-2-ref.html
@@ -1228,40 +1228,40 @@ fuzzy-if(skiaContent,1,5) == 459443-1.ht
 == 460012-1.html 460012-1-ref.html
 == 461266-1.html 461266-1-ref.html
 fuzzy-if(skiaContent,1,12000) fails-if(webrender) == 461512-1.html 461512-1-ref.html # bug 1382896 for webrender
 == 462844-1.html 462844-ref.html
 == 462844-2.html 462844-ref.html
 == 462844-3.html 462844-ref.html
 == 462844-4.html 462844-ref.html
 == 463204-1.html 463204-1-ref.html
-fuzzy-if(webrender,16-16,3425-3425) == 463217-1.xul 463217-1-ref.xul
+fuzzy-if(webrender&&!stylo,16-16,3425-3425) fails-if(styloVsGecko) == 463217-1.xul 463217-1-ref.xul # bug 1408235
 == 463952-1.html 463952-1-ref.html
 == 464811-1.html 464811-1-ref.html
 == 465574-1.html 465574-1-ref.html # bug 421436
 == 466258-1.html 466258-1-ref.html
 == 466395-1.html 466395-1-ref.html
 == 466395-2.html 466395-2-ref.html
 == 467084-1.html 467084-1-ref.html
 == 467084-2.html 467084-2-ref.html
 == 467444-1.html 467444-1-ref.html
 == 467460-1.html 467460-1-ref.html
-== 468473-1.xul 468473-1-ref.xul
+fails-if(styloVsGecko) == 468473-1.xul 468473-1-ref.xul # bug 1408235
 == 468546-1.xhtml 468546-1-ref.xhtml
 == 471356-1.html 471356-1-ref.html
 == 471594-1.xhtml 471594-1-ref.html
 fuzzy(255,15) == 472020-1a.xul 472020-1-ref.xul
 fails == 472020-1b.xul 472020-1-ref.xul
 fails == 472020-2.xul 472020-2-ref.xul
 == 472500-1.xul 472500-1-ref.xul
 == 472769-1a.html 472769-1-ref.html
 == 472769-1b.html 472769-1-ref.html
 == 472769-2.html 472769-2-ref.html
 == 472769-3.html 472769-3-ref.html
-== 473847-1.xul 473847-1-ref.xul
+fails-if(styloVsGecko) == 473847-1.xul 473847-1-ref.xul # bug 1408235
 fuzzy-if(skiaContent,1,16) == 474336-1.xul 474336-1-ref.xul
 == 474417-1.html 474417-1-ref.html
 fuzzy-if(skiaContent,1,5) skip-if((stylo||styloVsGecko)&&isDebugBuild&&winWidget) == 474472-1.html 474472-1-ref.html # Bug 1383845
 == 475986-1a.html 475986-1-ref.html
 == 475986-1b.html 475986-1-ref.html
 == 475986-1c.html 475986-1-ref.html
 == 475986-1d.html 475986-1-ref.html
 == 475986-1e.html 475986-1-ref.html
@@ -1284,17 +1284,17 @@ fuzzy-if(skiaContent,1,5) skip-if((stylo
 == 476063-4.xhtml 476063-4-ref.xhtml
 == 476357-1.html 476357-1-ref.html
 == 476598-1a.html 476598-1-ref.html
 == 476598-1a.html 476598-1-ref2.html
 == 476598-1b.html 476598-1-ref.html
 == 476598-1b.html 476598-1-ref2.html
 != 476598-1-ref.html about:blank
 == 476856-1.html 476856-1-ref.html
-random-if(d2d) == 478377-1.xul 478377-1-ref.xul
+random-if(d2d) fails-if(styloVsGecko) asserts-if(stylo,16-18) == 478377-1.xul 478377-1-ref.xul # bug 1397644
 == 478614-1.html 478614-1-ref.html
 == 478614-2.html 478614-1-ref.html
 == 478614-3.html 478614-3-ref.html
 == 478614-4.html 478614-4-ref.html
 == 478614-5.html 478614-5-ref.html
 == 478614-6.html 478614-6-ref.html
 == 478614-7.html 478614-7-ref.html
 == 478811-1.html 478811-1-ref.html
@@ -1322,48 +1322,48 @@ fails-if(Android) == 481024-1c.html 4810
 fails-if(Android||gtkWidget) random-if(winWidget) == 481948-3.html 481948-3-ref.html # questionable test, see bug 488364
 == 482398-1.html 482398-1-ref.html
 random-if(d2d) == 482592-1a.xhtml 482592-1-ref.html # bug 586771
 random-if(d2d) == 482592-1b.xhtml 482592-1-ref.html # bug 586771
 random-if(winWidget) fuzzy-if(skiaContent,1,5) == 482659-1a.html 482659-1-ref.html
 fuzzy-if(skiaContent,1,5) == 482659-1b.html 482659-1-ref.html
 fuzzy-if(skiaContent,1,5) == 482659-1c.html 482659-1-ref.html
 fuzzy-if(skiaContent,1,5) == 482659-1d.html 482659-1-ref.html
-== 483565.xul 483565-ref.xul
+fails-if(styloVsGecko) == 483565.xul 483565-ref.xul # bug 1408235
 == 484256-1.html 484256-1-ref.html
 == 484256-2.html 484256-1-ref.html
 == 485012-1.html 485012-1-ref.html
 == 485275-1.html 485275-1-ref.html
 == 485275-1.svg 485275-1-ref.html
 == 486052-1.html 486052-1-ref.html
 == 486052-2a.html 486052-2-ref.html
 == 486052-2b.html 486052-2-ref.html
 == 486052-2c.html 486052-2-ref.html
 == 486052-2d.html 486052-2-ref.html
 == 486052-2e.html 486052-2-ref.html
 == 486052-2f.html 486052-2-ref.html
 == 486052-2g.html 486052-2-ref.html
 == 486065-1.html 486065-1-ref.html
-== 486848-1.xul 486848-1-ref.xul
+skip-if(stylo||styloVsGecko) == 486848-1.xul 486848-1-ref.xul # bug 1408293
 == 487539-1.html about:blank
 == 488390-1.html 488390-1-ref.html
 == 488649-1.html 488649-1-ref.html
 == 488685-1.html 488685-1-ref.html
 == 488692-1.html 488692-1-ref.html
 == 489868-1.svg 489868-1-ref.svg
 == 490173-1.html 490173-1-ref.html
 == 490173-2.html 490173-2-ref.html
 == 490176-1.html 490176-1-ref.html
 == 490177-1.svg 490177-1-ref.svg
 == 490182-1a.html 490182-1-ref.html
 == 490182-1b.html 490182-1-ref.html
 pref(browser.display.focus_ring_width,1) == 491180-1.html 491180-1-ref.html
 pref(browser.display.focus_ring_width,1) == 491180-2.html 491180-2-ref.html
 == 491323-1.xul 491323-1-ref.xul
-== 492239-1.xul 492239-1-ref.xul
+fails-if(styloVsGecko) == 492239-1.xul 492239-1-ref.xul # bug 1408235
 == 492661-1.html 492661-1-ref.html
 == 493968-1.html 493968-1-ref.html
 == 494667-1.html 494667-1-ref.html
 == 494667-2.html 494667-2-ref.html
 == 495274-1.html 495274-1-ref.html
 == 495354-1a.xhtml 495354-1-ref.xhtml
 == 495354-1b.xhtml 495354-1-ref.xhtml
 == 495385-1a.html 495385-1-ref.html
@@ -1406,29 +1406,29 @@ needs-focus fails == 503531-1.html 50353
 fuzzy-if(Android,5,2800) == 506481-1.html 506481-1-ref.html
 == 507187-1.html 507187-1-ref.html
 == 507487-1.html 507487-1-ref.html
 == 507487-2.xhtml 507487-2-ref.xhtml
 == 507762-1.html 507762-1-ref.html
 == 507762-2.html 507762-2-ref.html
 == 507762-3.html 507762-1-ref.html
 == 507762-4.html 507762-2-ref.html
-random-if(cocoaWidget||winWidget) == 508816-1.xul 508816-1-ref.xul # Bug 631982 and bug 1375012
+random-if(cocoaWidget||winWidget) fails-if(styloVsGecko) == 508816-1.xul 508816-1-ref.xul # Bug 631982 and bug 1375012, stylo: bug 1408235
 == 508816-2.html 508816-2-ref.html
 skip-if(isDebugBuild) == 508908-1.xul 508908-1-ref.xul
 == 508919-1.xhtml 508919-1-ref.xhtml
 == 509155-1.xhtml 509155-1-ref.xhtml
 fuzzy-if(Android,5,1656) fuzzy-if(skiaContent,1,1200) == 512410.html 512410-ref.html
 == 512631-1.html 512631-1-ref.html
 == 513153-1a.html 513153-1-ref.html
 == 513153-1b.html 513153-1-ref.html
 == 513153-2a.html 513153-2-ref.html
 == 513153-2b.html 513153-2-ref.html
-== 513318-1.xul 513318-1-ref.xul
-fails-if(Android&&(!asyncPan)) != 513318-2.xul 513318-2-ref.xul
+fails-if(stylo||styloVsGecko) == 513318-1.xul 513318-1-ref.xul # bug 1408235
+fails-if(Android&&(!asyncPan)) fails-if(styloVsGecko) != 513318-2.xul 513318-2-ref.xul # stylo: bug 1408235
 == 514917-1.html 514917-1-ref.html
 HTTP(..) == 518172-1a.html 518172-a-ref.html
 fuzzy-if(winWidget,73,133) fuzzy-if(cocoaWidget,103,133) HTTP(..) == 518172-1b.html 518172-b-ref.html
 HTTP(..) == 518172-2a.html 518172-a-ref.html
 fuzzy-if(winWidget,73,133) fuzzy-if(cocoaWidget,103,133) HTTP(..) == 518172-2b.html 518172-b-ref.html
 == 520421-1.html 520421-1-ref.html
 == 520563-1.xhtml 520563-1-ref.xhtml
 fuzzy-if(skiaContent,1,3) == 521525-1.html 521525-1-ref.html
@@ -1499,19 +1499,19 @@ fuzzy-if(Android,12,300) == 551463-1.htm
 # Marked "random" rather than "fails" because it may (spuriously) appear to pass
 # on Android devices that completely lack any Sinhala font support.
 random != 553571-1.html 553571-1-notref.html # expect dotted circle in test, not in ref: "fails" under harfbuzz, which doesn't consider the sequence invalid
 fuzzy-if(!contentSameGfxBackendAsCanvas,128,91) random-if(d2d) skip-if(azureSkiaGL) fuzzy-if(skiaContent,32,150) == 555388-1.html 555388-1-ref.html
 == 556661-1.html 556661-1-ref.html
 fuzzy-if(skiaContent,4,5) == 557087-1.html 557087-ref.html
 fuzzy-if(skiaContent&&!Android,2,5) == 557087-2.html 557087-ref.html
 == 557736-1.html 557736-1-ref.html
-!= 558011-1.xul 558011-1-ref.xul
+fails-if(stylo||styloVsGecko) != 558011-1.xul 558011-1-ref.xul # bug 1408235
 == 559284-1.html 559284-1-ref.html
-fails-if(Android) == 560455-1.xul 560455-1-ref.xul
+fails-if(stylo||styloVsGecko||Android) == 560455-1.xul 560455-1-ref.xul # bug 1408235 for stylo
 fuzzy-if(skiaContent,2,5) == 561981-1.html 561981-1-ref.html
 == 561981-2.html 561981-2-ref.html
 fuzzy-if(skiaContent,1,5) == 561981-3.html 561981-3-ref.html
 == 561981-4.html 561981-4-ref.html
 fuzzy-if(skiaContent,1,5) == 561981-5.html 561981-5-ref.html
 == 561981-6.html 561981-6-ref.html
 fuzzy-if(skiaContent,1,5) == 561981-7.html 561981-7-ref.html
 == 561981-8.html 561981-8-ref.html
@@ -1683,22 +1683,22 @@ HTTP == 652991-4.html 652991-4-ref.html
 fuzzy-if(skiaContent,1,5) == 653930-1.html 653930-1-ref.html
 HTTP(..) == 654057-1.html 654057-1-ref.html
 fuzzy-if(skiaContent,1,4500) == 654950-1.html 654950-1-ref.html # Quartz alpha blending doesn't match GL alpha blending
 == 655549-1.html 655549-1-ref.html
 == 655836-1.html 655836-1-ref.html
 != 656875.html about:blank
 == 658952.html 658952-ref.html
 fuzzy-if(skiaContent,1,3500) == 660682-1.html 660682-1-ref.html
-fuzzy-if(d2d,1,256) skip-if(Android) fuzzy-if(skiaContent,1,68000) == 664127-1.xul 664127-1-ref.xul # Android: Intermittent failures - bug 1019131
+fuzzy-if(d2d,1,256) skip-if(Android) fuzzy-if(skiaContent,1,68000) fails-if(styloVsGecko) asserts-if(stylo,17-18) == 664127-1.xul 664127-1-ref.xul # Android: Intermittent failures - bug 1019131, stylo: bug 1397644
 == 665597-1.html 665597-1-ref.html
 == 665597-2.html 665597-2-ref.html
 == 667079-1.html 667079-1-ref.html
-== 668319-1.xul about:blank
-!= 669015-1.xul 669015-1-notref.xul
+fails-if(stylo||styloVsGecko) asserts-if(stylo,8-9) == 668319-1.xul about:blank # bug 1397644
+fails-if(stylo||styloVsGecko) != 669015-1.xul 669015-1-notref.xul # bug 1408235
 skip-if(azureSkiaGL) == 670442-1.html 670442-1-ref.html
 == 670467-1.html 670467-1-ref.html
 == 670467-2.html 670467-2-ref.html
 == 690164-1.html 690164-1-ref.html
 == 690643-1.html 690643-1-ref.html
 != 691087-1.html 691087-1-ref.html
 == 691571-1.html 691571-1-ref.html
 fuzzy-if(skiaContent,1,200) == 696307-1.html 696307-1-ref.html
--- a/layout/reftests/css-display/reftest.list
+++ b/layout/reftests/css-display/reftest.list
@@ -13,21 +13,21 @@ fuzzy-if(winWidget,12,100) skip-if(stylo
 == display-contents-tables.xhtml display-contents-tables-ref.xhtml
 == display-contents-tables-2.xhtml display-contents-tables-ref.xhtml
 == display-contents-tables-3.xhtml display-contents-tables-3-ref.xhtml
 == display-contents-visibility-hidden.html display-contents-visibility-hidden-ref.html
 == display-contents-visibility-hidden-2.html display-contents-visibility-hidden-ref.html
 == display-contents-495385-2d.html display-contents-495385-2d-ref.html
 fuzzy-if(Android,7,3935) == display-contents-xbl.xhtml display-contents-xbl-ref.html
 fuzzy-if(Android,7,1186) fails-if(stylo||styloVsGecko) pref(dom.webcomponents.enabled,true) pref(layout.css.scoped-style.enabled,true) == display-contents-shadow-dom-1.html display-contents-shadow-dom-1-ref.html
-== display-contents-xbl-2.xul display-contents-xbl-2-ref.xul
-== display-contents-xbl-3.xul display-contents-xbl-3-ref.xul
+fails-if(styloVsGecko) == display-contents-xbl-2.xul display-contents-xbl-2-ref.xul # bug 1408235
+fails-if(styloVsGecko) == display-contents-xbl-3.xul display-contents-xbl-3-ref.xul # bug 1408235
 skip == display-contents-xbl-4.xul display-contents-xbl-4-ref.xul # fails (not just asserts) due to bug 1089223
 asserts(0-1) fuzzy-if(Android,8,3216) == display-contents-fieldset.html display-contents-fieldset-ref.html # bug 1089223
-== display-contents-xbl-5.xul display-contents-xbl-3-ref.xul
+fails-if(styloVsGecko) == display-contents-xbl-5.xul display-contents-xbl-3-ref.xul # bug 1408235
 fails-if(!stylo) == display-contents-xbl-6.xhtml display-contents-xbl-6-ref.html # bug 1345809
 == display-contents-xbl-7.xhtml display-contents-xbl-7-ref.html
 == display-contents-list-item-child.html display-contents-list-item-child-ref.html
 == display-contents-dyn-insert-text.html display-contents-dyn-insert-text-ref.html
 == display-contents-writing-mode-1.html display-contents-writing-mode-1-ref.html
 == display-contents-writing-mode-2.html display-contents-writing-mode-2-ref.html
 needs-focus == display-contents-state-change.html display-contents-state-change-ref.html
 == display-flow-root-001.html display-flow-root-001-ref.html
--- a/layout/reftests/forms/input/text/reftest.list
+++ b/layout/reftests/forms/input/text/reftest.list
@@ -1,10 +1,10 @@
 == bounds-1.html bounds-1-ref.html
 fuzzy-if(asyncPan&&!layersGPUAccelerated,151,111) == size-1.html size-1-ref.html
 == size-2.html size-2-ref.html
 HTTP(..) == baseline-1.html baseline-1-ref.html
 HTTP(..) == centering-1.xul centering-1-ref.xul
-== dynamic-height-1.xul dynamic-height-1-ref.xul
+fails-if(stylo) == dynamic-height-1.xul dynamic-height-1-ref.xul # bug 1408235
 fuzzy-if(skiaContent,1,500) needs-focus == select.html select-ref.html
 == intrinsic-size.html intrinsic-size-ref.html
 == line-height-0.5.html line-height-1.0.html
 != line-height-1.5.html line-height-1.0.html
--- a/layout/reftests/forms/placeholder/reftest.list
+++ b/layout/reftests/forms/placeholder/reftest.list
@@ -22,14 +22,14 @@ skip-if(Android&&asyncPan) == placeholde
 # needs-focus == placeholder-8.html placeholder-focus-ref.html
 # needs-focus == placeholder-9.html placeholder-focus-ref.html
 needs-focus == placeholder-10.html placeholder-visible-ref.html
 == placeholder-11.html placeholder-visible-ref.html
 == placeholder-12.html placeholder-visible-ref.html
 == placeholder-13.html placeholder-visible-ref.html
 == placeholder-14.html placeholder-visible-ref.html
 == placeholder-18.html placeholder-overridden-ref.html
-random-if(winWidget) == placeholder-19.xul  placeholder-overridden-ref.xul
+random-if(winWidget) fails-if(styloVsGecko) == placeholder-19.xul  placeholder-overridden-ref.xul # bug 1408811
 # needs-focus == placeholder-20.html placeholder-focus-ref.html
 needs-focus == placeholder-21.html placeholder-blank-ref.html
 needs-focus == placeholder-22.html placeholder-blank-ref.html
 == placeholder-rtl.html placeholder-rtl-ref.html
 pref(dom.placeholder.show_on_focus,false) needs-focus == placeholder-focus-pref.html placeholder-blank-ref.html
--- a/layout/reftests/forms/textbox/reftest.list
+++ b/layout/reftests/forms/textbox/reftest.list
@@ -1,11 +1,11 @@
 # access-key tests are no use on OS X because access keys are not indicated visually
 # no real XUL theme on Android so we just skip
-skip-if(cocoaWidget||Android) != accesskey-1.xul accesskey-1-notref.xul
-skip-if(cocoaWidget||Android) fails-if(webrender) == accesskey-2.xul accesskey-2-ref.xul
+skip-if(cocoaWidget||Android) fails-if(styloVsGecko) != accesskey-1.xul accesskey-1-notref.xul # stylo: bug 1408811
+skip-if(cocoaWidget||Android) fails-if(webrender) fails-if(stylo||styloVsGecko) == accesskey-2.xul accesskey-2-ref.xul # stylo: bug 1408811
 # accesskey-3 fails because of defects in XUL bidi support
-fails-if(!cocoaWidget) skip-if(cocoaWidget||Android) == accesskey-3.xul accesskey-3-ref.xul
-skip-if(cocoaWidget||Android) != accesskey-3.xul accesskey-3-notref.xul
-skip-if(cocoaWidget||Android) fails-if(webrender) == accesskey-4.xul accesskey-4-ref.xul
-skip-if(cocoaWidget||Android) != accesskey-4.xul accesskey-4-notref.xul
-skip-if(Android) == align-baseline-1.xul align-baseline-1-ref.xul # test for bug 494901
-skip-if(Android) == setsize.xul setsize-ref.xul
+fails-if(!cocoaWidget) skip-if(cocoaWidget||Android) fails-if(styloVsGecko) == accesskey-3.xul accesskey-3-ref.xul # stylo: bug 1408811
+skip-if(cocoaWidget||Android) fails-if(styloVsGecko) != accesskey-3.xul accesskey-3-notref.xul # stylo: bug 1408811
+skip-if(cocoaWidget||Android) fails-if(webrender) fails-if(stylo||styloVsGecko) == accesskey-4.xul accesskey-4-ref.xul # stylo: bug 1408811
+skip-if(cocoaWidget||Android) fails-if(styloVsGecko) != accesskey-4.xul accesskey-4-notref.xul # stylo: bug 1408811
+skip-if(Android) fails-if(styloVsGecko) == align-baseline-1.xul align-baseline-1-ref.xul # test for bug 494901, stylo: bug 1408811
+skip-if(Android) fails-if(stylo||styloVsGecko) == setsize.xul setsize-ref.xul # bug 1408235 for stylo
--- a/layout/reftests/invalidation/reftest.list
+++ b/layout/reftests/invalidation/reftest.list
@@ -1,15 +1,15 @@
 == table-repaint-a.html table-repaint-a-ref.html
 == table-repaint-b.html table-repaint-b-ref.html
 == table-repaint-border-collapse.html table-repaint-border-collapse-ref.html
 == table-repaint-c.html table-repaint-c-ref.html
 == table-repaint-d.html table-repaint-d-ref.html
 == table-repaint-non-border-collapse.html table-repaint-non-border-collapse-ref.html
-== 540247-1.xul 540247-1-ref.xul
+fails-if(styloVsGecko) == 540247-1.xul 540247-1-ref.xul # bug 1408235
 == 543681-1.html 543681-1-ref.html
 == 1243409-1.html 1243409-1-ref.html
 skip == test-image-layers.html test-image-layers-ref.html # Bug 1067360
 skip == test-image-layers-multiple-displayitem.html test-image-layers-ref.html # Bug 1067360
 pref(layout.animated-image-layers.enabled,true) skip-if(Android||gtkWidget) == test-animated-image-layers.html test-animated-image-layers-ref.html
 pref(layout.animated-image-layers.enabled,true) skip-if(Android||gtkWidget) == test-animated-image-layers-background.html test-animated-image-layers-ref.html
 == box-shadow-border-radius.html box-shadow-border-radius-ref.html
 == filter-userspace-offset.svg?offsetContainer=rect filter-userspace-offset.svg
--- a/layout/reftests/native-theme/reftest.list
+++ b/layout/reftests/native-theme/reftest.list
@@ -27,19 +27,19 @@ fails-if(!nativeThemePref) != checkbox-n
 == checkbox-still-native-when-styled.html checkbox-still-native-when-styled-ref.html
 == native-theme-disabled-cascade-levels.html native-theme-disabled-cascade-levels-ref.html
 
 != 427122-1.html 427122-1-ref.html
 
 # 403458 is a Windows-only bug
 skip-if(!winWidget) != 403458-winmenu-ltr.xul 403458-winmenu-rtl.xul
 
-== 470711-1.xul 470711-1-ref.xul
+fails-if(stylo||styloVsGecko) == 470711-1.xul 470711-1-ref.xul # bug 1408235
 
-== 482955-1.xul 482955-1-ref.xul
+fails-if(styloVsGecko) == 482955-1.xul 482955-1-ref.xul # bug 1408235
 
 == 492155-1.html about:blank
 == 492155-2.html about:blank
 == 492155-3.html about:blank
 fails-if(Android&&!asyncPan) fuzzy-if(styloVsGecko,0-1,0-1) != 492155-4.html about:blank
 
 != box-shadow-input.html box-shadow-input-ref.html
 != box-shadow-button.html box-shadow-button-ref.html
@@ -49,24 +49,24 @@ fails-if(Android&&!asyncPan) fuzzy-if(st
 # RTL mirroring tests
 == checkbox-not-mirrored-when-rtl.html checkbox-not-mirrored-when-rtl-ref.html
 skip-if(!cocoaWidget) == menulist-mirrored-when-rtl.xul menulist-mirrored-when-rtl-ref.xul
 skip-if(!cocoaWidget) == searchfield-mirrored-when-rtl.xul searchfield-mirrored-when-rtl-ref.xul
 skip-if(!cocoaWidget) == select-mirrored-when-rtl.html select-mirrored-when-rtl-ref.html
 
 != resizer-bottomend.xul blank-window.xul
 random-if(d2d) == resizer-bottomend.xul resizer-bottomright.xul # bug 581086 
-!= resizer-bottomend.xul resizer-bottomend-rtl.xul
+fails-if(stylo) != resizer-bottomend.xul resizer-bottomend-rtl.xul # bug 1408235
 skip-if(gtkWidget) != resizer-bottomend-rtl.xul blank-window.xul
 skip-if(gtkWidget) random-if(d2d) == resizer-bottomend-rtl.xul resizer-bottomend-flipped.xul # bug 581086
 
 != resizer-bottomstart.xul blank-window.xul
 random-if(d2d) == resizer-bottomstart.xul resizer-bottomleft.xul
 random-if(d2d) == resizer-bottomstart.xul resizer-left.xul
-!= resizer-bottomstart.xul resizer-bottomstart-rtl.xul
+fails-if(stylo) != resizer-bottomstart.xul resizer-bottomstart-rtl.xul # bug 1408235
 skip-if(gtkWidget) != resizer-bottomstart-rtl.xul blank-window.xul
 skip-if(gtkWidget) random-if(d2d) == resizer-bottomstart-rtl.xul resizer-bottomend.xul
 
 # Windows-only, depends on native scrollbar metrics
 skip-if(!winWidget) == scroll-thumb-minimum-size-notheme.html scroll-thumb-minimum-size-notheme-ref.html
 # skip-if(!winWidget) == scroll-thumb-minimum-size-theme.html scroll-thumb-minimum-size-theme-ref.html # Bug 512206
 
 == border-radius.html border-radius-ref.html
@@ -76,9 +76,9 @@ skip-if(!winWidget) == scroll-thumb-mini
 # These tests have been written to test the overflow of the window widget
 # (bug 568825) but we can't test it on Windows and Cocoa because they have
 # animated progress bars.
 # Nothing shows up on Android, presumably because that appearance type is
 # not implemented.
 skip-if(cocoaWidget) skip-if(winWidget) == progress-overflow.html progress-overflow-ref.html
 fails-if(Android) skip-if(cocoaWidget) skip-if(winWidget) != progress-overflow-small.html progress-nobar.html
 
-== 676387-1.xul 676387-1-ref.xul
+fails-if(styloVsGecko) == 676387-1.xul 676387-1-ref.xul # bug 1408824
--- a/layout/reftests/reftest-sanity/reftest.list
+++ b/layout/reftests/reftest-sanity/reftest.list
@@ -1,14 +1,14 @@
 == data:text/html,<body> about:blank
 == data:text/plain, about:blank
 != data:text/plain,HELLO about:blank
 
 # these tests make sure async reftests work:
-== test-async.xul test-async-ref.xul
+fails-if(styloVsGecko) == test-async.xul test-async-ref.xul # bug 1408235
 == test-async.html test-async-ref.html
 
 # test that zoom works (and really zooms, not just scales)
 == test-zoom.html test-zoom-ref.html
 
 # make sure we don't fall over if the root is missing
 == no-root.html about:blank
 
--- a/layout/reftests/reftest.list
+++ b/layout/reftests/reftest.list
@@ -397,17 +397,20 @@ include webcomponents/reftest.list
 
 # widget/
 include ../../widget/reftests/reftest.list
 
 # xml-stylesheet/
 include ../../dom/tests/reftest/xml-stylesheet/reftest.list
 
 # xul-document-load/ (no XUL theme on Android)
-skip-if(Android) include xul-document-load/reftest.list
+# skip for stylo because the reference page is wrong due to bug 1408235.
+# There are some pages rendered incorrectly in the same way, so this
+# test set is basically broken and not worth further annotating.
+skip-if(Android||stylo||styloVsGecko) include xul-document-load/reftest.list
 
 # xul/ (no XUL theme on Android)
 skip-if(Android) include xul/reftest.list
 
 # xul (no XUL theme on Android)
 skip-if(Android) include ../xul/reftest/reftest.list
 
 # xul grid (no XUL theme on Android)
--- a/layout/reftests/text-shadow/reftest.list
+++ b/layout/reftests/text-shadow/reftest.list
@@ -1,15 +1,15 @@
 == 723669.html 723669-ref.html
 
-== basic.xul basic-ref.xul
-random-if(Android) == basic-negcoord.xul basic-negcoord-ref.xul
-!= blur.xul blur-notref.xul
-== color-inherit.xul color-inherit-ref.xul
-== multiple-noblur.xul multiple-noblur-ref.xul
+fails-if(stylo||styloVsGecko) == basic.xul basic-ref.xul # bug 1408235
+fails-if(stylo||styloVsGecko) random-if(Android) == basic-negcoord.xul basic-negcoord-ref.xul # bug 1408235
+fails-if(stylo||styloVsGecko) != blur.xul blur-notref.xul # bug 1408235
+fails-if(stylo||styloVsGecko) == color-inherit.xul color-inherit-ref.xul # bug 1408235
+fails-if(stylo||styloVsGecko) == multiple-noblur.xul multiple-noblur-ref.xul # bug 1408235
 HTTP(..) == blur-opacity.html blur-opacity-ref.html
 
 == basic.html basic-ref.html
 == basic-negcoord.html basic-negcoord-ref.html
 fuzzy-if(webrender,24-24,80-80) == basic-opacity.html basic-opacity-ref.html
 != blur.html blur-notref.html
 == color-inherit.html color-inherit-ref.html
 == color-parserorder.html color-parserorder-ref.html
--- a/layout/reftests/xul/reftest.list
+++ b/layout/reftests/xul/reftest.list
@@ -1,22 +1,22 @@
 == css-flex-1.xul css-flex-1-ref.html
 
-== menuitem-key.xul menuitem-key-ref.xul
+fails-if(styloVsGecko) == menuitem-key.xul menuitem-key-ref.xul # bug 1408831
 # these random-if(Android) are due to differences between Android Native & Xul, see bug 732569
-random-if(Android) == menulist-shrinkwrap-1.xul menulist-shrinkwrap-1-ref.xul
-random-if(Android) fails-if(winWidget) == menulist-shrinkwrap-2.xul menulist-shrinkwrap-2-ref.xul
-== textbox-overflow-1.xul textbox-overflow-1-ref.xul # for bug 749658
+random-if(Android) fails-if(stylo||styloVsGecko) == menulist-shrinkwrap-1.xul menulist-shrinkwrap-1-ref.xul # stylo: bug 1408235
+random-if(Android) fails-if(winWidget||stylo||styloVsGecko) == menulist-shrinkwrap-2.xul menulist-shrinkwrap-2-ref.xul # stylo: bug 1408235
+fails-if(styloVsGecko) == textbox-overflow-1.xul textbox-overflow-1-ref.xul # for bug 749658, stylo: bug 1408235
 # accesskeys are not normally displayed on Mac, so skip this test
-skip-if(cocoaWidget) == accesskey.xul accesskey-ref.xul
-fails-if(cocoaWidget) fuzzy-if(xulRuntime.widgetToolkit=="gtk3",1,11) == tree-row-outline-1.xul tree-row-outline-1-ref.xul # win8: bug 1254832
+skip-if(cocoaWidget) fails-if(styloVsGecko) == accesskey.xul accesskey-ref.xul # stylo: bug 1408811
+fails-if(cocoaWidget) fuzzy-if(xulRuntime.widgetToolkit=="gtk3",1,11) asserts-if(stylo,13-26) fails-if(styloVsGecko) == tree-row-outline-1.xul tree-row-outline-1-ref.xul # win8: bug 1254832, stylo: bug 1397644
 skip-if(!cocoaWidget) == mac-tab-toolbar.xul mac-tab-toolbar-ref.xul
-!= tree-row-outline-1.xul tree-row-outline-1-notref.xul
+asserts-if(stylo,13-26) fails-if(stylo||styloVsGecko) != tree-row-outline-1.xul tree-row-outline-1-notref.xul # stylo: bug 1397644
 == text-crop.xul text-crop-ref.xul
-== text-small-caps-1.xul text-small-caps-1-ref.xul
+fails-if(stylo||styloVsGecko) == text-small-caps-1.xul text-small-caps-1-ref.xul # stylo: bug 1408235
 fuzzy-if(skiaContent,1,60) fuzzy-if(cocoaWidget&&browserIsRemote&&!skiaContent,1,31) fuzzy-if(winWidget&&browserIsRemote&&layersGPUAccelerated,1,50) == inactive-fixed-bg-bug1205630.xul inactive-fixed-bg-bug1205630-ref.html
 fuzzy-if(skiaContent,1,60) fuzzy-if(cocoaWidget&&browserIsRemote&&!skiaContent,1,31) fuzzy-if(winWidget&&browserIsRemote&&layersGPUAccelerated,1,50) == inactive-fixed-bg-bug1272525.xul inactive-fixed-bg-bug1272525-ref.html
 
 # Tests for XUL <image> with 'object-fit' & 'object-position':
 # These tests should be very similar to tests in our w3c-css/submitted/images3
 # reftest directory. They live here because they use XUL, and it
 # wouldn't be fair of us to make a W3C testsuite implicitly depend on XUL.
 == object-fit-contain-png-001.xul object-fit-contain-png-001-ref.html
@@ -57,19 +57,19 @@ fails == object-fit-fill-svg-006.xul obj
 == object-fit-scale-down-svg-002.xul object-fit-scale-down-svg-002-ref.html
 == object-fit-scale-down-svg-003.xul object-fit-scale-down-svg-003-ref.html
 == object-fit-scale-down-svg-004.xul object-fit-scale-down-svg-004-ref.html
 == object-fit-scale-down-svg-005.xul object-fit-scale-down-svg-005-ref.html
 == object-fit-scale-down-svg-006.xul object-fit-scale-down-svg-006-ref.html
 == object-position-png-001.xul object-position-png-001-ref.html
 == object-position-png-002.xul object-position-png-002-ref.html
 
-== stack-sizing-1.xul stack-sizing-1-ref.xul
-== stack-sizing-2.xul stack-sizing-2-ref.xul
+fails-if(styloVsGecko) == stack-sizing-1.xul stack-sizing-1-ref.xul # bug 1408235
+fails-if(styloVsGecko) == stack-sizing-2.xul stack-sizing-2-ref.xul # bug 1408235
 
 # Tests for rendering SVG images in a XUL <treecell>:
 # XXXdholbert: These are marked as "random" right now, since they might not
 # render the images they trying to test in time for the reftest snapshot, per
 # bug 1218954.
 skip == treecell-image-svg-1a.xul treecell-image-svg-1-ref.xul # bug 1218954
 skip == treecell-image-svg-1b.xul treecell-image-svg-1-ref.xul # bug 1218954
 
-== treechildren-padding-percent-1.xul treechildren-padding-percent-1-ref.xul
+asserts-if(stylo,16-18) fails-if(styloVsGecko) == treechildren-padding-percent-1.xul treechildren-padding-percent-1-ref.xul # bug 1397644
--- a/layout/xul/crashtests/crashtests.list
+++ b/layout/xul/crashtests/crashtests.list
@@ -1,17 +1,17 @@
 load 131008-1.xul
 load 137216-1.xul
-asserts-if(stylo,3) load 140218-1.xml
+asserts-if(stylo,3) load 140218-1.xml # bug 1397644
 load 151826-1.xul
 load 168724-1.xul
 load 189814-1.xul
 load 237787-1.xul
 load 265161-1.xul
-load 289410-1.xul
+asserts-if(stylo,3) load 289410-1.xul # bug 1397644
 load 290743.html
 load 291702-1.xul
 load 291702-2.xul
 load 291702-3.xul
 load 294371-1.xul
 load 311457-1.html
 load 321056-1.xhtml
 load 322786-1.xul
@@ -19,22 +19,22 @@ load 325377.xul
 load 326834-1.html
 load 326879-1.xul
 load 327776-1.xul
 load 328135-1.xul
 load 329327-1.xul
 load 329407-1.xml
 load 329477-1.xhtml
 load 336962-1.xul
-load 344228-1.xul
+asserts-if(stylo,3) load 344228-1.xul # bug 1397644
 load 346083-1.xul
 load 346281-1.xul
 load 350460.xul
 load 360642-1.xul
-load 365151.xul
+asserts-if(stylo,4) load 365151.xul # bug 1397644
 load 366112-1.xul
 asserts(0-50) load 366203-1.xul # bug 1217984
 load 367185-1.xhtml
 load 369942-1.xhtml
 load 374102-1.xul
 load 376137-1.html
 load 376137-2.html
 load 377592-1.svg
@@ -65,17 +65,17 @@ load 408904-1.xul
 load 412479-1.xhtml
 load 415394-1.xhtml
 load 417509.xul
 load 420424-1.xul
 load 430356-1.xhtml
 load 431738.xhtml
 load 432058-1.xul
 load 432068-1.xul
-load 432068-2.xul
+skip-if(stylo) load 432068-2.xul # bug 1407865
 load 433296-1.xul
 load 433429.xul
 load 434458-1.xul
 load 452185.html
 load 460900-1.xul
 load 464149-1.xul
 asserts-if(winWidget,1) asserts-if(Android,0-1) asserts-if(stylo,0-1) load 464407-1.xhtml # Bug 450974 on win, Bug 1267054 on Android, bug 718883 for stylo
 load 467080.xul
@@ -85,15 +85,15 @@ load 470272.html
 load 472189.xul
 load 475133.html
 load 488210-1.xhtml
 load 495728-1.xul
 load 508927-1.xul
 load 508927-2.xul
 load 514300-1.xul
 load 536931-1.xhtml
-load 538308-1.xul
+asserts-if(stylo,4) load 538308-1.xul # bug 1397644
 load 557174-1.xml
 load 564705-1.xul
 load 583957-1.html
 load 617089.html
 load menulist-focused.xhtml
 load 716503.html
--- a/layout/xul/grid/reftests/reftest.list
+++ b/layout/xul/grid/reftests/reftest.list
@@ -1,18 +1,19 @@
-== row-sizing-1.xul row-sizing-1-ref.xul
-== column-sizing-1.xul column-sizing-1-ref.xul
-== row-or-column-sizing-1.xul row-or-column-sizing-2.xul
-== row-or-column-sizing-1.xul row-or-column-sizing-3.xul
-== row-or-column-sizing-1.xul row-or-column-sizing-4.xul
-fuzzy-if(skiaContent,1,60000) == z-order-1.xul z-order-1-ref.xul
-fuzzy-if(skiaContent,1,60000) == z-order-2.xul z-order-2-ref.xul
-fuzzy-if(skiaContent,1,60000) == not-full-basic.xul not-full-basic-ref.xhtml
-fuzzy-if(skiaContent,1,110000) == not-full-grid-pack-align.xul not-full-basic-ref.xhtml
-fuzzy-if(skiaContent,1,30000) == not-full-row-group-align.xul not-full-row-group-align-ref.xhtml # does anyone want/need this behavior?
-fuzzy-if(skiaContent,1,10000) == not-full-row-group-pack.xul not-full-row-group-pack-ref.xhtml
-fuzzy-if(skiaContent,1,50000) == not-full-row-group-direction.xul not-full-row-group-direction-ref.xhtml
-fuzzy-if(skiaContent,1,60000) == not-full-row-leaf-align.xul not-full-basic-ref.xhtml
-fuzzy-if(skiaContent,1,50000) == not-full-row-leaf-pack.xul not-full-row-leaf-pack-ref.xhtml
-fuzzy-if(skiaContent,1,80000) == not-full-row-leaf-direction.xul not-full-row-leaf-pack-ref.xhtml
+fails-if(styloVsGecko) == row-sizing-1.xul row-sizing-1-ref.xul # bug 1408235 & bug 1408811
+fails-if(styloVsGecko) == column-sizing-1.xul column-sizing-1-ref.xul # bug 1408235 & bug 1408811
+fails-if(styloVsGecko) == row-or-column-sizing-1.xul row-or-column-sizing-2.xul # bug 1408811
+fails-if(styloVsGecko) == row-or-column-sizing-1.xul row-or-column-sizing-3.xul # bug 1408811
+fails-if(styloVsGecko) == row-or-column-sizing-1.xul row-or-column-sizing-4.xul # bug 1408811
+fuzzy-if(skiaContent,1,60000) fails-if(styloVsGecko) == z-order-1.xul z-order-1-ref.xul # bug 1408235
+fuzzy-if(skiaContent,1,60000) fails-if(styloVsGecko) == z-order-2.xul z-order-2-ref.xul # bug 1408235
+# stylo failures on the 8 tests below are all from bug 1408235
+fuzzy-if(skiaContent,1,60000) fails-if(stylo||styloVsGecko) == not-full-basic.xul not-full-basic-ref.xhtml
+fuzzy-if(skiaContent,1,110000) fails-if(stylo||styloVsGecko) == not-full-grid-pack-align.xul not-full-basic-ref.xhtml
+fuzzy-if(skiaContent,1,30000) fails-if(stylo||styloVsGecko) == not-full-row-group-align.xul not-full-row-group-align-ref.xhtml # does anyone want/need this behavior?
+fuzzy-if(skiaContent,1,10000) fails-if(stylo||styloVsGecko) == not-full-row-group-pack.xul not-full-row-group-pack-ref.xhtml
+fuzzy-if(skiaContent,1,50000) fails-if(stylo||styloVsGecko) == not-full-row-group-direction.xul not-full-row-group-direction-ref.xhtml
+fuzzy-if(skiaContent,1,60000) fails-if(stylo||styloVsGecko) == not-full-row-leaf-align.xul not-full-basic-ref.xhtml
+fuzzy-if(skiaContent,1,50000) fails-if(stylo||styloVsGecko) == not-full-row-leaf-pack.xul not-full-row-leaf-pack-ref.xhtml
+fuzzy-if(skiaContent,1,80000) fails-if(stylo||styloVsGecko) == not-full-row-leaf-direction.xul not-full-row-leaf-pack-ref.xhtml
 random-if(transparentScrollbars) fuzzy-if(OSX==1010,1,565) == scrollable-columns.xul scrollable-columns-ref.xhtml # bug 650597
 fails == scrollable-rows.xul scrollable-rows-ref.xhtml
-== sizing-2d.xul sizing-2d-ref.xul
+fails-if(styloVsGecko) == sizing-2d.xul sizing-2d-ref.xul # bug 1408235
--- a/layout/xul/reftest/reftest.list
+++ b/layout/xul/reftest/reftest.list
@@ -1,6 +1,6 @@
-fails-if(Android) == textbox-multiline-noresize.xul textbox-multiline-ref.xul # reference is blank on Android (due to no native theme support?)
-!= textbox-multiline-resize.xul textbox-multiline-ref.xul
+fails-if(Android) fails-if(stylo||styloVsGecko) == textbox-multiline-noresize.xul textbox-multiline-ref.xul # reference is blank on Android (due to no native theme support?), stylo: bug 1408235 & bug 1408811
+fails-if(styloVsGecko) != textbox-multiline-resize.xul textbox-multiline-ref.xul # bug 1408235 & bug 1408811
 == popup-explicit-size.xul popup-explicit-size-ref.xul
-random-if(Android) fuzzy-if(webrender,128-128,168-168) == image-size.xul image-size-ref.xul
+random-if(Android) fuzzy-if(webrender,128-128,168-168) fails-if(stylo||styloVsGecko) == image-size.xul image-size-ref.xul # stylo: bug 1408235
 == image-scaling-min-height-1.xul image-scaling-min-height-1-ref.xul
-== textbox-text-transform.xul textbox-text-transform-ref.xul
+fails-if(stylo||styloVsGecko) == textbox-text-transform.xul textbox-text-transform-ref.xul # stylo: bug 1408235
--- a/layout/xul/test/mochitest.ini
+++ b/layout/xul/test/mochitest.ini
@@ -6,8 +6,9 @@ support-files =
 [test_bug511075.html]
 skip-if = toolkit == 'android' #bug 798806
 [test_bug563416.html]
 [test_bug1197913.xul]
 skip-if = toolkit == 'android'
 [test_resizer_incontent.xul]
 [test_splitter.xul]
 skip-if = toolkit == 'android' # no XUL theme
+fail-if = stylo # bug 1407863
--- a/layout/xul/tree/crashtests/crashtests.list
+++ b/layout/xul/tree/crashtests/crashtests.list
@@ -1,24 +1,25 @@
-load 307298-1.xul
-load 309732-1.xul
-load 309732-2.xul
-load 366583-1.xul
-load 380217-1.xul
+# All stylo assertions below are bug 1397644
+asserts-if(stylo,4) load 307298-1.xul
+asserts-if(stylo,8) load 309732-1.xul
+asserts-if(stylo,8) load 309732-2.xul
+asserts-if(stylo,23) load 366583-1.xul
+asserts-if(stylo,6) load 380217-1.xul
 load 382444-1.html
 load 391178-1.xhtml
 load 391178-2.xul
 load 393665-1.xul
-load 399227-1.xul
-load 399227-2.xul
-asserts-if(stylo,3) load 399692-1.xhtml # bug 1324698
+asserts-if(stylo,12) load 399227-1.xul
+asserts-if(stylo,13) load 399227-2.xul
+asserts-if(stylo,3) load 399692-1.xhtml
 load 399715-1.xhtml
-load 409807-1.xul
-load 414170-1.xul
+asserts-if(stylo,3) load 409807-1.xul
+asserts-if(stylo,3) load 414170-1.xul
 load 430394-1.xul
-load 454186-1.xul
-asserts-if(stylo,3) load 479931-1.xhtml # bug 1324698
-load 509602-1.xul
-load 585815.html
+asserts-if(stylo,12) load 454186-1.xul
+asserts-if(stylo,3) load 479931-1.xhtml
+asserts-if(stylo,3) load 509602-1.xul
+asserts-if(stylo,27) load 585815.html
 load 601427.html
-load 730441-1.xul
-load 730441-2.xul
-load 730441-3.xul
+asserts-if(stylo,3) load 730441-1.xul
+asserts-if(stylo,3) load 730441-2.xul
+asserts-if(stylo,3) load 730441-3.xul
--- a/toolkit/content/tests/reftests/reftest.list
+++ b/toolkit/content/tests/reftests/reftest.list
@@ -1,6 +1,6 @@
 random-if(cocoaWidget||(/^Windows\x20NT\x206\.2/.test(http.oscpu)&&isDebugBuild)) == bug-442419-progressmeter-max.xul bug-442419-progressmeter-max-ref.xul # fails most of the time on Mac because progress meter animates
-!= textbox-multiline-default-value.xul textbox-multiline-empty.xul
+fails-if(styloVsGecko) != textbox-multiline-default-value.xul textbox-multiline-empty.xul # bug 1408811
 == videocontrols-dynamically-add-cc.html videocontrols-dynamically-add-cc-ref.html
 == audio-with-bogus-url.html audio-with-bogus-url-ref.html
 == audio-dynamically-change-small-width.html audio-dynamically-change-small-width-ref.html
 == audio-with-padding.html audio-with-padding-ref.html
--- a/view/crashtests/crashtests.list
+++ b/view/crashtests/crashtests.list
@@ -1,9 +1,9 @@
 load 38589-1.xul
 load 64049-1.html
 load 281743-1.html
 load 323497-1.html
-load 382756-1.xul
+asserts-if(stylo,3) load 382756-1.xul # bug 1397644
 load 387745-1.svg
 load 399852.html
 load 429315-1.html
 load 507563-1.html