Bug 1349651 - stylo: Implement HasAuthorSpecifiedRules. r=bholley
authorMatt Brubeck <mbrubeck@mozilla.com>
Wed, 10 May 2017 13:11:36 -0700
changeset 575871 d5b141b9583e2755381c48ea2d7b218e1e442f6d
parent 575870 9919aa12372d6bf62f3c6c15837b6610ff690c23
child 575872 e204f93b4a39bc67d612198c5f92566e68b2adbb
push id58179
push userbmo:emilio+bugs@crisal.io
push dateWed, 10 May 2017 22:04:58 +0000
reviewersbholley
bugs1349651
milestone55.0a1
Bug 1349651 - stylo: Implement HasAuthorSpecifiedRules. r=bholley MozReview-Commit-ID: 8ta5KqKzncZ
dom/html/reftests/autofocus/reftest.list
dom/tests/reftest/reftest.list
editor/reftests/reftest.list
layout/base/nsPresContext.cpp
layout/reftests/abs-pos/reftest.list
layout/reftests/bidi/dirAuto/reftest.list
layout/reftests/bidi/reftest.list
layout/reftests/box-shadow/reftest.list
layout/reftests/box/reftest.list
layout/reftests/bugs/reftest.list
layout/reftests/css-default/submit-button/reftest.list
layout/reftests/css-display/reftest.list
layout/reftests/css-invalid/default-style/reftest.list
layout/reftests/css-invalid/fieldset/reftest.list
layout/reftests/css-invalid/form/reftest.list
layout/reftests/css-optional/reftest.list
layout/reftests/css-placeholder/input/reftest.list
layout/reftests/css-required/reftest.list
layout/reftests/css-selectors/reftest.list
layout/reftests/css-submit-invalid/button-submit/reftest.list
layout/reftests/css-submit-invalid/default-style/reftest.list
layout/reftests/css-submit-invalid/input-image/reftest.list
layout/reftests/css-submit-invalid/input-submit/reftest.list
layout/reftests/css-ui-invalid/default-style/reftest.list
layout/reftests/dom/reftest.list
layout/reftests/flexbox/reftest.list
layout/reftests/font-inflation/reftest.list
layout/reftests/forms/button/reftest.list
layout/reftests/forms/input/email/reftest.list
layout/reftests/forms/input/file/reftest.list
layout/reftests/forms/input/number/reftest.list
layout/reftests/forms/input/range/reftest.list
layout/reftests/forms/input/search/reftest.list
layout/reftests/forms/input/tel/reftest.list
layout/reftests/forms/input/text/reftest.list
layout/reftests/forms/input/url/reftest.list
layout/reftests/forms/output/reftest.list
layout/reftests/forms/placeholder/reftest.list
layout/reftests/forms/progress/reftest.list
layout/reftests/forms/reftest.list
layout/reftests/forms/select/reftest.list
layout/reftests/forms/textarea/reftest.list
layout/reftests/generated-content/reftest.list
layout/reftests/image-element/reftest.list
layout/reftests/native-theme/reftest.list
layout/reftests/selection/reftest.list
layout/reftests/svg/reftest.list
layout/reftests/table-anonymous-boxes/reftest.list
layout/reftests/text-decoration/reftest.list
layout/reftests/unicode/reftest.list
layout/reftests/writing-mode/reftest.list
layout/style/ServoArcTypeList.h
layout/style/ServoBindingList.h
layout/style/ServoStyleSet.cpp
layout/style/ServoStyleSet.h
--- a/dom/html/reftests/autofocus/reftest.list
+++ b/dom/html/reftests/autofocus/reftest.list
@@ -1,14 +1,14 @@
 default-preferences pref(dom.forms.number,true) pref(dom.forms.datetime,true)
-fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == input-load.html input-ref.html
-fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == input-create.html input-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == input-load.html input-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == input-create.html input-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus skip-if(stylo) == input-number.html input-number-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == input-time.html input-time-ref.html
-fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == button-load.html button-ref.html
-fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == button-create.html button-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == button-load.html button-ref.html
+fuzzy-if(skiaContent,1,3) needs-focus == button-create.html button-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == textarea-load.html textarea-ref.html
 fuzzy-if(skiaContent,1,3) needs-focus fails-if(stylo) == textarea-create.html textarea-ref.html
-fuzzy-if(skiaContent,9,6) needs-focus fails-if(stylo) == select-load.html select-ref.html
-fuzzy-if(skiaContent,2,4) needs-focus fails-if(stylo) == select-create.html select-ref.html
+fuzzy-if(skiaContent,9,6) needs-focus == select-load.html select-ref.html
+fuzzy-if(skiaContent,2,4) needs-focus == select-create.html select-ref.html
 needs-focus fails-if(stylo) == autofocus-after-load.html autofocus-after-load-ref.html
-fuzzy-if(skiaContent,2,5) needs-focus fails-if(stylo) == autofocus-leaves-iframe.html autofocus-leaves-iframe-ref.html
-fuzzy-if(skiaContent,2,5) needs-focus fails-if(stylo) == autofocus-after-body-focus.html autofocus-after-body-focus-ref.html
+fuzzy-if(skiaContent,2,5) needs-focus == autofocus-leaves-iframe.html autofocus-leaves-iframe-ref.html
+fuzzy-if(skiaContent,2,5) needs-focus == autofocus-after-body-focus.html autofocus-after-body-focus-ref.html
--- a/dom/tests/reftest/reftest.list
+++ b/dom/tests/reftest/reftest.list
@@ -1,10 +1,10 @@
-fails-if(stylo) == bug453105.html bug453105-ref.html
-fails-if(stylo) == optiontext.html optiontext-ref.html
+== bug453105.html bug453105-ref.html
+== optiontext.html optiontext-ref.html
 == bug456008.xhtml bug456008-ref.html
 fuzzy-if(skiaContent,2,3) == bug439965.html bug439965-ref.html
 == bug427779.xml bug427779-ref.xml
 fuzzy-if(skiaContent,1,5) == bug559996.html bug559996-ref.html
 == bug591981-1.html bug591981-ref.html
 == bug591981-2.html bug591981-ref.html
 == bug592366-1.html bug592366-ref.html
 == bug592366-2.html bug592366-ref.html
--- a/editor/reftests/reftest.list
+++ b/editor/reftests/reftest.list
@@ -1,50 +1,50 @@
 # include the XUL reftests
 include xul/reftest.list
 
-fails-if(stylo) != newline-1.html newline-ref.html
-fails-if(stylo) == newline-2.html newline-ref.html
-fails-if(stylo) == newline-3.html newline-ref.html
-fails-if(stylo) == newline-4.html newline-ref.html
-fails-if(stylo) == dynamic-1.html dynamic-ref.html
-fails-if(stylo) == dynamic-type-1.html dynamic-ref.html
-fails-if(stylo) == dynamic-type-2.html dynamic-ref.html
-fails-if(stylo) == dynamic-type-3.html dynamic-ref.html
-fails-if(stylo) == dynamic-type-4.html dynamic-ref.html
-fails-if(stylo) == passwd-1.html passwd-ref.html
-fails-if(stylo) != passwd-2.html passwd-ref.html
-fails-if(stylo) == passwd-3.html passwd-ref.html
-needs-focus fails-if(stylo) == passwd-4.html passwd-ref.html
-fails-if(stylo) == emptypasswd-1.html emptypasswd-ref.html
-fails-if(stylo) == emptypasswd-2.html emptypasswd-ref.html
+!= 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
+== dynamic-type-3.html dynamic-ref.html
+== dynamic-type-4.html dynamic-ref.html
+== passwd-1.html passwd-ref.html
+!= passwd-2.html passwd-ref.html
+== passwd-3.html passwd-ref.html
+needs-focus == passwd-4.html passwd-ref.html
+== emptypasswd-1.html emptypasswd-ref.html
+== emptypasswd-2.html emptypasswd-ref.html
 == caret_on_positioned.html caret_on_positioned-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-disabled.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-before.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-before.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-after.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-after.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-inherit.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-inherit.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-dynamic.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-dynamic.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-dynamic-inherit.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-dynamic-inherit.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-property-dynamic.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-property-dynamic.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-property-dynamic-inherit.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-property-dynamic-inherit.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-dynamic-override.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-dynamic-override.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-attr-dynamic-override-inherit.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-attr-dynamic-override-inherit.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-property-dynamic-override.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-property-dynamic-override.html spellcheck-input-ref.html
-fails-if(stylo) == spellcheck-input-property-dynamic-override-inherit.html spellcheck-input-nofocus-ref.html
-fails-if(Android) needs-focus fails-if(stylo) != spellcheck-input-property-dynamic-override-inherit.html spellcheck-input-ref.html
+fails-if(Android) needs-focus != spellcheck-input-disabled.html spellcheck-input-ref.html
+== spellcheck-input-attr-before.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-before.html spellcheck-input-ref.html
+== spellcheck-input-attr-after.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-after.html spellcheck-input-ref.html
+== spellcheck-input-attr-inherit.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-inherit.html spellcheck-input-ref.html
+== spellcheck-input-attr-dynamic.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-dynamic.html spellcheck-input-ref.html
+== spellcheck-input-attr-dynamic-inherit.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-dynamic-inherit.html spellcheck-input-ref.html
+== spellcheck-input-property-dynamic.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-property-dynamic.html spellcheck-input-ref.html
+== spellcheck-input-property-dynamic-inherit.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-property-dynamic-inherit.html spellcheck-input-ref.html
+== spellcheck-input-attr-dynamic-override.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-dynamic-override.html spellcheck-input-ref.html
+== spellcheck-input-attr-dynamic-override-inherit.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-attr-dynamic-override-inherit.html spellcheck-input-ref.html
+== spellcheck-input-property-dynamic-override.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-property-dynamic-override.html spellcheck-input-ref.html
+== spellcheck-input-property-dynamic-override-inherit.html spellcheck-input-nofocus-ref.html
+fails-if(Android) needs-focus != spellcheck-input-property-dynamic-override-inherit.html spellcheck-input-ref.html
 fails-if(stylo) == spellcheck-textarea-attr.html spellcheck-textarea-nofocus-ref.html
 #the random-if(Android) tests pass on android native, but fail on android-xul, see bug 728942
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-attr.html spellcheck-textarea-ref.html
 needs-focus fails-if(stylo) == spellcheck-textarea-focused.html spellcheck-textarea-ref.html
 needs-focus fails-if(stylo) == spellcheck-textarea-focused-reframe.html spellcheck-textarea-ref.html
 needs-focus fails-if(stylo) == spellcheck-textarea-focused-notreadonly.html spellcheck-textarea-ref2.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-nofocus.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-disabled.html spellcheck-textarea-ref.html
@@ -54,19 +54,19 @@ random-if(Android) needs-focus fails-if(
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-property-dynamic.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-property-dynamic-inherit.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-attr-dynamic-override.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-attr-dynamic-override-inherit.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-property-dynamic-override.html spellcheck-textarea-ref.html
 random-if(Android) needs-focus fails-if(stylo) != spellcheck-textarea-property-dynamic-override-inherit.html spellcheck-textarea-ref.html
 needs-focus == caret_on_focus.html caret_on_focus-ref.html
 needs-focus fails-if(stylo) != caret_on_textarea_lastline.html caret_on_textarea_lastline-ref.html
-needs-focus fails-if(stylo) == input-text-onfocus-reframe.html input-text-onfocus-reframe-ref.html
+needs-focus == input-text-onfocus-reframe.html input-text-onfocus-reframe-ref.html
 fuzzy-if(skiaContent,3,1) needs-focus == input-text-notheme-onfocus-reframe.html input-text-notheme-onfocus-reframe-ref.html
-needs-focus fails-if(stylo) == caret_after_reframe.html caret_after_reframe-ref.html
+needs-focus == caret_after_reframe.html caret_after_reframe-ref.html
 == nobogusnode-1.html nobogusnode-ref.html
 == nobogusnode-2.html nobogusnode-ref.html
 fails-if(stylo) == spellcheck-hyphen-valid.html spellcheck-hyphen-valid-ref.html
 fails-if(Android) needs-focus fails-if(stylo) != spellcheck-hyphen-invalid.html spellcheck-hyphen-invalid-ref.html
 fails-if(stylo) == spellcheck-slash-valid.html spellcheck-slash-valid-ref.html
 fails-if(stylo) == spellcheck-period-valid.html spellcheck-period-valid-ref.html
 fails-if(stylo) == spellcheck-space-valid.html spellcheck-space-valid-ref.html
 fails-if(stylo) == spellcheck-comma-valid.html spellcheck-comma-valid-ref.html
@@ -79,20 +79,20 @@ needs-focus fails-if(stylo) == spellchec
 needs-focus fails-if(stylo) == spellcheck-non-latin-chinese-traditional.html spellcheck-non-latin-chinese-traditional-ref.html
 needs-focus fails-if(stylo) == spellcheck-non-latin-hebrew.html spellcheck-non-latin-hebrew-ref.html
 needs-focus fails-if(stylo) == spellcheck-non-latin-japanese.html spellcheck-non-latin-japanese-ref.html
 needs-focus fails-if(stylo) == spellcheck-non-latin-korean.html spellcheck-non-latin-korean-ref.html
 fails-if(stylo) == unneeded_scroll.html unneeded_scroll-ref.html
 == caret_on_presshell_reinit.html caret_on_presshell_reinit-ref.html
 fuzzy-if(browserIsRemote,255,3) asserts-if(browserIsRemote,0-2) asserts-if(webrender&&!browserIsRemote,0-1) == caret_on_presshell_reinit-2.html caret_on_presshell_reinit-ref.html
 fuzzy-if(asyncPan&&!layersGPUAccelerated,102,2824) fails-if(stylo) == 642800.html 642800-ref.html
-fails-if(stylo) == selection_visibility_after_reframe.html selection_visibility_after_reframe-ref.html
-fails-if(stylo) != selection_visibility_after_reframe-2.html selection_visibility_after_reframe-ref.html
-fails-if(stylo) != selection_visibility_after_reframe-3.html selection_visibility_after_reframe-ref.html
-skip-if(webrender) == 672709.html 672709-ref.html # re-enable for webrender once bug 1361820 is fixed.
+== selection_visibility_after_reframe.html selection_visibility_after_reframe-ref.html
+!= selection_visibility_after_reframe-2.html selection_visibility_after_reframe-ref.html
+!= selection_visibility_after_reframe-3.html selection_visibility_after_reframe-ref.html
+== 672709.html 672709-ref.html
 fails-if(stylo) == 338427-1.html 338427-1-ref.html
 skip-if(Android) needs-focus == 674212-spellcheck.html 674212-spellcheck-ref.html
 skip-if(Android) needs-focus == 338427-2.html 338427-2-ref.html
 skip-if(Android) needs-focus fails-if(stylo) == 338427-3.html 338427-3-ref.html
 skip-if(Android) needs-focus == 462758-grabbers-resizers.html 462758-grabbers-resizers-ref.html
 fails-if(stylo) == readwrite-non-editable.html readwrite-non-editable-ref.html
 fails-if(stylo) == readwrite-editable.html readwrite-editable-ref.html
 fails-if(stylo) == readonly-non-editable.html readonly-non-editable-ref.html
--- a/layout/base/nsPresContext.cpp
+++ b/layout/base/nsPresContext.cpp
@@ -70,16 +70,17 @@
 #include "nsFrameLoader.h"
 #include "mozilla/dom/FontFaceSet.h"
 #include "nsContentUtils.h"
 #include "nsPIWindowRoot.h"
 #include "mozilla/Preferences.h"
 #include "gfxTextRun.h"
 #include "nsFontFaceUtils.h"
 #include "nsLayoutStylesheetCache.h"
+#include "mozilla/ServoBindings.h"
 #include "mozilla/StyleSheet.h"
 #include "mozilla/StyleSheetInlines.h"
 #include "mozilla/Telemetry.h"
 #include "mozilla/dom/Performance.h"
 #include "mozilla/dom/PerformanceTiming.h"
 #include "mozilla/layers/APZThreadUtils.h"
 
 // Needed for Start/Stop of Image Animation
@@ -2207,20 +2208,41 @@ nsPresContext::UpdateIsChrome()
   mIsChrome = mContainer &&
               nsIDocShellTreeItem::typeChrome == mContainer->ItemType();
 }
 
 bool
 nsPresContext::HasAuthorSpecifiedRules(const nsIFrame *aFrame,
                                        uint32_t ruleTypeMask) const
 {
-  return
-    nsRuleNode::HasAuthorSpecifiedRules(aFrame->StyleContext(),
-                                        ruleTypeMask,
-                                        UseDocumentColors());
+  if (mShell->StyleSet()->IsGecko()) {
+    return
+      nsRuleNode::HasAuthorSpecifiedRules(aFrame->StyleContext(),
+                                          ruleTypeMask,
+                                          UseDocumentColors());
+  } else {
+    Element *elem = aFrame->GetContent()->AsElement();
+    if (elem->IsNativeAnonymous()) {
+      elem = nsContentUtils::GetClosestNonNativeAnonymousAncestor(elem);
+    }
+    if (!elem->HasServoData()) {
+      return false;
+    }
+
+    nsIAtom *pseudoTag = aFrame->StyleContext()->GetPseudo();
+    RefPtr<RawServoRuleNode> ruleNode;
+    ruleNode = mShell->StyleSet()->AsServo()->ResolveRuleNode(elem, pseudoTag);
+    if (!ruleNode) {
+      return false;
+    }
+    return Servo_HasAuthorSpecifiedRules(ruleNode,
+                                         elem,
+                                         ruleTypeMask,
+                                         UseDocumentColors());
+  }
 }
 
 gfxUserFontSet*
 nsPresContext::GetUserFontSet(bool aFlushUserFontSet)
 {
   return mDocument->GetUserFontSet(aFlushUserFontSet);
 }
 
--- a/layout/reftests/abs-pos/reftest.list
+++ b/layout/reftests/abs-pos/reftest.list
@@ -45,18 +45,18 @@ fuzzy-if(/^Windows\x20NT\x206\.1/.test(h
 == table-footer-group-4.html table-internal-4-ref.html
 == table-footer-group-5.html table-internal-5-ref.html
 == table-footer-group-6.html table-internal-6-ref.html
 == table-footer-group-7.html table-internal-7-ref.html
 == continuation-positioned-inline-1.html continuation-positioned-inline-ref.html
 == continuation-positioned-inline-2.html continuation-positioned-inline-ref.html
 == scrollframe-1.html scrollframe-1-ref.html
 fuzzy-if(gtkWidget,1,1) fuzzy-if(Android,9,185) fuzzy-if(asyncPan&&!layersGPUAccelerated,140,144) == scrollframe-2.html scrollframe-2-ref.html #bug 756530
-fuzzy-if(gtkWidget,1,8) fails-if(stylo) == select-1.html select-1-ref.html
-fuzzy-if(gtkWidget,1,8) fails-if(stylo) == select-1-dynamic.html select-1-ref.html
-fails-if(stylo) == select-2.html select-2-ref.html
-fuzzy-if(gtkWidget,1,19) fuzzy-if(Android,17,726) fuzzy-if(asyncPan&&!layersGPUAccelerated,110,114) fuzzy-if(browserIsRemote&&winWidget,110,114) fails-if(stylo) == select-3.html select-3-ref.html
+fuzzy-if(gtkWidget,1,8) == select-1.html select-1-ref.html
+fuzzy-if(gtkWidget,1,8) == select-1-dynamic.html select-1-ref.html
+== select-2.html select-2-ref.html
+fuzzy-if(gtkWidget,1,19) fuzzy-if(Android,17,726) fuzzy-if(asyncPan&&!layersGPUAccelerated,110,114) fuzzy-if(browserIsRemote&&winWidget,110,114) == select-3.html select-3-ref.html
 == multi-column-1.html multi-column-1-ref.html
 == button-1.html button-1-ref.html
 == button-2.html button-2-ref.html
 == relative-row-animation-1.html relative-row-animation-1-ref.html
 fuzzy-if(Android,12,50) == fixed-pos-auto-offset-1a.html fixed-pos-auto-offset-1-ref.html
 fuzzy-if(Android,12,50) == fixed-pos-auto-offset-1b.html fixed-pos-auto-offset-1-ref.html
--- a/layout/reftests/bidi/dirAuto/reftest.list
+++ b/layout/reftests/bidi/dirAuto/reftest.list
@@ -1,119 +1,119 @@
 == bdi-auto-dir-default.html bdi-auto-dir-default-ref.html
 fails-if(stylo) == dir_auto-set-contained-dir-L.html dir_auto-contained-dir-L-ref.html
 fails-if(stylo) == dir_auto-set-contained-dir-R.html dir_auto-contained-dir-R-ref.html
 fails-if(stylo) == dir_auto-set-contained-invalid-dir-L.html dir_auto-contained-dir-L-ref.html
 fails-if(stylo) == dir_auto-set-contained-invalid-dir-R.html dir_auto-contained-dir-R-ref.html
 fails-if(stylo) == dir_auto-unset-contained-dir-L.html dir_auto-unset-contained-dir-L-ref.html
 fails-if(stylo) == dir_auto-unset-contained-dir-R.html dir_auto-unset-contained-dir-R-ref.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto1.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto3.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto4.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto5.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-Auto6.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR1.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR3.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR4.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR5.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR6.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR7.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-LTR8.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL1.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL2.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL3.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL4.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL5.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL6.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL7.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-RTL8.html dynamicDirAuto-refLTR-RTL.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir1.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir3.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir4.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir5.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir6.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir7.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-NoDir8.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir1.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir3.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir4.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir5.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir6.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir7.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setLTR-InvalidDir7.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto1.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto2.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto3.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto4.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto5.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-Auto6.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR1.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR2.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR3.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR4.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR5.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR6.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR7.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-LTR8.html dynamicDirAuto-refRTL-LTR.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL1.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL2.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL3.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL4.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL5.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL6.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL7.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-RTL8.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir1.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir2.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir3.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir4.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir5.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir6.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir7.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-NoDir8.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir1.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir2.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir3.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir4.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir5.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir6.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir7.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-setRTL-InvalidDir8.html dynamicDirAuto-refRTL-NoDir.html
-fails-if(stylo) == dynamicDirAuto-addLTR-Auto.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-addRTL-Auto.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setLTR-Auto1.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-Auto2.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-Auto3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-Auto4.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-Auto5.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-Auto6.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR1.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR2.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR4.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR5.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR6.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR7.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-LTR8.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-RTL1.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL2.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL3.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL4.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL5.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL6.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL7.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-RTL8.html dynamicDirAuto-refLTR-RTL.html
+== dynamicDirAuto-setLTR-NoDir1.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir2.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir4.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir5.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir6.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir7.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-NoDir8.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir1.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir2.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir4.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir5.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir6.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir7.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setLTR-InvalidDir7.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-setRTL-Auto1.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-Auto2.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-Auto3.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-Auto4.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-Auto5.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-Auto6.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-LTR1.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR2.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR3.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR4.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR5.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR6.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR7.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-LTR8.html dynamicDirAuto-refRTL-LTR.html
+== dynamicDirAuto-setRTL-RTL1.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL2.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL3.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL4.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL5.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL6.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL7.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-RTL8.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-setRTL-NoDir1.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir2.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir3.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir4.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir5.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir6.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir7.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-NoDir8.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir1.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir2.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir3.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir4.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir5.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir6.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir7.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-setRTL-InvalidDir8.html dynamicDirAuto-refRTL-NoDir.html
+== dynamicDirAuto-addLTR-Auto.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-addRTL-Auto.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-LTR1.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR3.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR4.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR5.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR6.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR2.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR4.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR5.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR6.html dynamicDirAuto-refLTR-LTR.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-LTR7.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR8.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR8.html dynamicDirAuto-refLTR-LTR.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-LTR9.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-ChangeText-LTR10.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-ChangeText-LTR10.html dynamicDirAuto-refLTR-LTR.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL1.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL2.html dynamicDirAuto-refRTL-RTL.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,30,1) fails-if(stylo) == dynamicDirAuto-ChangeText-RTL3.html dynamicDirAuto-refRTL-RTL.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,30,1) fails-if(stylo) == dynamicDirAuto-ChangeText-RTL4.html dynamicDirAuto-refRTL-RTL.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,30,1) fails-if(stylo) == dynamicDirAuto-ChangeText-RTL5.html dynamicDirAuto-refRTL-RTL.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,30,1) fails-if(stylo) == dynamicDirAuto-ChangeText-RTL6.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL7.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL8.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL9.html dynamicDirAuto-refRTL-RTL.html
 fails-if(stylo) == dynamicDirAuto-ChangeText-RTL10.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-DeleteText-LTR1.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-DeleteText-LTR1.html dynamicDirAuto-refLTR-LTR.html
 fails-if(stylo) == dynamicDirAuto-DeleteText-LTR2.html dynamicDirAuto-refLTR-LTR.html
-fails-if(stylo) == dynamicDirAuto-DeleteText-LTR3.html dynamicDirAuto-refLTR-LTR.html
+== dynamicDirAuto-DeleteText-LTR3.html dynamicDirAuto-refLTR-LTR.html
 fails-if(stylo) == dynamicDirAuto-DeleteText-RTL1.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-DeleteText-RTL2.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == dynamicDirAuto-DeleteText-RTL3.html dynamicDirAuto-refRTL-RTL.html
-fails-if(stylo) == 839886-1.html 839886-1-ref.html
+== dynamicDirAuto-DeleteText-RTL2.html dynamicDirAuto-refRTL-RTL.html
+== dynamicDirAuto-DeleteText-RTL3.html dynamicDirAuto-refRTL-RTL.html
+== 839886-1.html 839886-1-ref.html
 == 859093-1.html 859093-1-ref.html
 == 889742-1.html 889742-1-ref.html
 fails-if(stylo) == 1103348-1.html 1103348-1-ref.html
 fails-if(stylo) == 1169267-delete-add-1a.html 1169267-delete-add-1-ref.html
 fails-if(stylo) == 1169267-delete-add-1b.html 1169267-delete-add-1-ref.html
 fails-if(stylo) == 1169267-delete-add-2a.html 1169267-delete-add-2-ref.html
 fails-if(stylo) == 1169267-delete-add-2b.html 1169267-delete-add-2-ref.html
--- a/layout/reftests/bidi/reftest.list
+++ b/layout/reftests/bidi/reftest.list
@@ -34,20 +34,20 @@ random-if(cocoaWidget) == mirroring-02.h
 == mixedChartype-02-j.html mixedChartype-02-ref.html
 == mixedChartype-03.html mixedChartype-03-ref.html
 == mixedChartype-03-j.html mixedChartype-03-ref.html
 == unicode-bidi-anonymous-001.html unicode-bidi-anonymous-001-ref.html
 == unicode-bidi-anonymous-002.html unicode-bidi-anonymous-002-ref.html
 == unicode-bidi-isolate-basic.html unicode-bidi-isolate-basic-ref.html
 == unicode-bidi-isolate-aharon.html unicode-bidi-isolate-aharon-ref.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,73,1) fuzzy-if(skiaContent,104,32) == unicode-bidi-plaintext.html unicode-bidi-plaintext-ref.html
-fails-if(stylo) == unicode-bidi-plaintext-textarea-1.html unicode-bidi-plaintext-textarea-ref.html
-fails-if(stylo) == unicode-bidi-plaintext-textarea-2.html unicode-bidi-plaintext-textarea-ref.html
-fails-if(stylo) == unicode-bidi-plaintext-textarea-3.html unicode-bidi-plaintext-textarea-ref.html
-fails-if(stylo) == unicode-bidi-plaintext-textarea-4.html unicode-bidi-plaintext-textarea-ref.html
+== unicode-bidi-plaintext-textarea-1.html unicode-bidi-plaintext-textarea-ref.html
+== unicode-bidi-plaintext-textarea-2.html unicode-bidi-plaintext-textarea-ref.html
+== unicode-bidi-plaintext-textarea-3.html unicode-bidi-plaintext-textarea-ref.html
+== unicode-bidi-plaintext-textarea-4.html unicode-bidi-plaintext-textarea-ref.html
 == with-first-letter-1a.html with-first-letter-1-ref.html
 == with-first-letter-1b.html with-first-letter-1-ref.html
 random-if(cocoaWidget) == with-first-letter-2a.html with-first-letter-2-ref.html # bug 734313
 random-if(cocoaWidget) == with-first-letter-2b.html with-first-letter-2-ref.html # bug 734313
 == 83958-1a.html 83958-1-ref.html
 == 83958-1b.html 83958-1-ref.html
 == 83958-1c.html 83958-1-ref.html
 fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)&&!layersGPUAccelerated&&!azureSkia,111,7) == 83958-2a.html 83958-2-ref.html
@@ -70,17 +70,17 @@ fails-if(stylo) == 229367-2.html 229367-
 == 229367-3.html 229367-3-ref.html
 == 258928-1.html 258928-1-ref.html
 == 263359-1.html 263359-1-ref.html
 == 263359-1a.html 263359-1-ref.html
 != 263359-1b.html 263359-1-ref.html
 fails-if(stylo) == 263359-2.html 263359-2-ref.html
 == 263359-3.html 263359-3-ref.html
 == 263359-4.html 263359-4-ref.html
-random-if(winWidget) fuzzy-if(skiaContent,1,1700) fails-if(stylo) == 267459-1.html 267459-1-ref.html # depends on windows version, see bug 590101
+random-if(winWidget) fuzzy-if(skiaContent,1,1700) == 267459-1.html 267459-1-ref.html # depends on windows version, see bug 590101
 fuzzy-if(skiaContent,1,1100) fails-if(stylo) == 267459-2.html 267459-2-ref.html
 == 299065-1.html 299065-1-ref.html
 random-if(winWidget) == 305643-1.html 305643-1-ref.html # depends on windows version, see bug 590101
 == 332655-1.html 332655-1-ref.html
 == 332655-2.html 332655-2-ref.html
 == 381279-1.html 381279-1-ref.html
 == 386339.html 386339-ref.html
 == 409375.html 409375-ref.html
@@ -123,17 +123,17 @@ fuzzy-if(skiaContent,1,3) fails-if(stylo
 == 704837-1.html 704837-1-ref.html
 == 712600-1.html 712600-1-ref.html
 == 712600-2.html 712600-2-ref.html
 == 712600-2-dyn.html 712600-2-ref.html
 == 712600-3.html 712600-3-ref.html
 == 718236-1.html 718236-1-ref.html
 == 718236-2.html 718236-2-ref.html
 == 718236-3.html 718236-3-ref.html
-fails-if(stylo) == 726420-1.html 726420-1-ref.html
+== 726420-1.html 726420-1-ref.html
 == 726460-1.html 726460-1-ref.html
 == 729047-1.html 729047-1-ref.html
 == 730562-1.html 730562-1-ref.html
 == 746987-1.html 746987-1-ref.html
 == 746987-2.html 746987-2-ref.html
 == 746987-3.html 746987-3-ref.html
 == 746987-4.html 746987-4-ref.html
 == 779003-1.html 779003-1-ref.html
--- a/layout/reftests/box-shadow/reftest.list
+++ b/layout/reftests/box-shadow/reftest.list
@@ -8,17 +8,17 @@ random != boxshadow-blur-2.html boxshado
 == tableboxshadow-basic.html tableboxshadow-basic-ref.html
 == tableboxshadow-trshadow.html tableboxshadow-trshadow-ref.html
 == tableboxshadow-tdshadow.html tableboxshadow-tdshadow-ref.html
 == boxshadow-rounding.html boxshadow-rounding-ref.html
 # One uses old path, one uses WR box shadow.
 fails-if(Android) fuzzy-if(webrender,20,3310) == boxshadow-button.html boxshadow-button-ref.html
 fuzzy-if(OSX==1010,1,24) fuzzy-if(d2d,16,908) fuzzy-if(webrender,19,1680) == boxshadow-large-border-radius.html boxshadow-large-border-radius-ref.html # Bug 1209649
 
-fails-if(Android) fails-if(stylo) == boxshadow-fileupload.html boxshadow-fileupload-ref.html
+fails-if(Android) == boxshadow-fileupload.html boxshadow-fileupload-ref.html
 fuzzy-if(skiaContent,13,28) == boxshadow-inner-basic.html boxshadow-inner-basic-ref.svg
 random-if(layersGPUAccelerated) == boxshadow-mixed.html boxshadow-mixed-ref.html
 random-if(d2d) fuzzy-if(skiaContent,1,100) == boxshadow-rounded-spread.html boxshadow-rounded-spread-ref.html
 fuzzy-if(skiaContent,1,50) HTTP(..) == boxshadow-dynamic.xul boxshadow-dynamic-ref.xul
 random-if(d2d) == boxshadow-onecorner.html boxshadow-onecorner-ref.html
 random-if(d2d) == boxshadow-twocorners.html boxshadow-twocorners-ref.html
 random-if(d2d) == boxshadow-threecorners.html boxshadow-threecorners-ref.html
 fuzzy(2,440) == boxshadow-skiprect.html boxshadow-skiprect-ref.html
@@ -38,10 +38,10 @@ fuzzy(13,9445) fuzzy-if(d2d,13,10926) fu
 == overflow-not-scrollable-1.html overflow-not-scrollable-1-ref2.html
 == overflow-not-scrollable-2.html overflow-not-scrollable-2-ref.html
 fuzzy-if(webrender,1,655) == 611574-1.html 611574-1-ref.html
 fuzzy-if(webrender,4,144) == 611574-2.html 611574-2-ref.html
 fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) == fieldset.html fieldset-ref.html # minor anti-aliasing problem on Windows
 fuzzy-if(winWidget,5,30) fuzzy-if(skiaContent,16,10) == fieldset-inset.html fieldset-inset-ref.html # minor anti-aliasing problem on Windows
 == 1178575.html 1178575-ref.html
 == 1178575-2.html 1178575-2-ref.html
-fuzzy(159,2) fails-if(!dwrite) fails-if(stylo) == 1212823-1.html 1212823-1-ref.html
+fuzzy(159,2) fails-if(!dwrite) == 1212823-1.html 1212823-1-ref.html
 == boxshadow-large-offset.html boxshadow-large-offset-ref.html
--- a/layout/reftests/box/reftest.list
+++ b/layout/reftests/box/reftest.list
@@ -1,11 +1,11 @@
 == flexbox-abspos-container-1a.html flexbox-abspos-container-1-ref.html
 == flexbox-abspos-container-1b.html flexbox-abspos-container-1-ref.html
 == flexbox-abspos-container-1c.html flexbox-abspos-container-1-ref.html
 == flexbox-abspos-container-1d.html flexbox-abspos-container-1-ref.html
 == flexbox-abspos-container-2.html  flexbox-abspos-container-2-ref.html
 == flexbox-attributes-no-box-horizontal.xhtml flexbox-attributes-no-box-horizontal-ref.xhtml
 == flexbox-attributes-no-box-vertical.xhtml flexbox-attributes-no-box-vertical-ref.xhtml
-fails-if(stylo) == flexbox-attributes-no-input-horizontal.xhtml flexbox-attributes-no-input-horizontal-ref.xhtml
-fails-if(stylo) == flexbox-attributes-no-input-vertical.xhtml flexbox-attributes-no-input-vertical-ref.xhtml
+== flexbox-attributes-no-input-horizontal.xhtml flexbox-attributes-no-input-horizontal-ref.xhtml
+== flexbox-attributes-no-input-vertical.xhtml flexbox-attributes-no-input-vertical-ref.xhtml
 == flexbox-child-is-abspos-container-1.html flexbox-child-is-abspos-container-1-ref.html
 == flexbox-child-is-abspos-container-2.html flexbox-child-is-abspos-container-2-ref.html
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -49,30 +49,30 @@ fails-if(stylo) == 23604-2.html 23604-2-
 == 25888-1l-block.html 25888-1l-ref.html
 != 25888-1l-block.html 25888-1l-notref.html
 == 25888-1r-block.html 25888-1r-ref.html
 != 25888-1r-block.html 25888-1r-notref.html
 == 25888-2l-block.html 25888-2l-ref.html
 == 25888-2r-block.html 25888-2r-ref.html
 == 25888-3l-block.html 25888-3l-ref.html
 == 25888-3r-block.html 25888-3r-ref.html
-fails-if(stylo) == 28811-1a.html 28811-1-ref.html
-fuzzy-if(gtkWidget,6,26200) fails-if(stylo) == 28811-1b.html 28811-1-ref.html  # Bug 1128229
-fails-if(stylo) == 28811-2a.html 28811-2-ref.html
-fuzzy-if(gtkWidget,6,26200) fails-if(stylo) == 28811-2b.html 28811-2-ref.html  # Bug 1128229
+== 28811-1a.html 28811-1-ref.html
+fuzzy-if(gtkWidget,6,26200) == 28811-1b.html 28811-1-ref.html  # Bug 1128229
+== 28811-2a.html 28811-2-ref.html
+fuzzy-if(gtkWidget,6,26200) == 28811-2b.html 28811-2-ref.html  # Bug 1128229
 == 40596-1a.html 40596-1-ref.html
-fails-if(stylo) != 40596-1b.html 40596-1-ref.html
+!= 40596-1b.html 40596-1-ref.html
 == 40596-1c.html 40596-1-ref.html
-fails-if(stylo) != 40596-1d.html 40596-1-ref.html
-fails-if(stylo) != 40596-1e.html 40596-1-ref.html
-fails-if(stylo) != 40596-1f.html 40596-1-ref.html
-fails-if(stylo) != 40596-1g.html 40596-1-ref.html
-fails-if(stylo) != 40596-1h.html 40596-1-ref.html
+!= 40596-1d.html 40596-1-ref.html
+!= 40596-1e.html 40596-1-ref.html
+!= 40596-1f.html 40596-1-ref.html
+!= 40596-1g.html 40596-1-ref.html
+!= 40596-1h.html 40596-1-ref.html
 == 40596-1i.html 40596-1-ref.html
-fails-if(stylo) != 40596-1j.html 40596-1-ref.html
+!= 40596-1j.html 40596-1-ref.html
 == 50630-1a.html 50630-1-ref.html
 == 50630-1b.html 50630-1-ref.html
 == 50630-1c.html 50630-1-ref.html
 == 50630-2.html 50630-2-ref.html
 == 50630-3.html 50630-3-ref.html
 == 50630-4.html 50630-4-ref.html
 == 50630-4.html 50630-4-ref2.html
 == 50630-5.html 50630-5-ref.html
@@ -83,17 +83,17 @@ fails-if(stylo) != 40596-1j.html 40596-1
 == 76331-1.html 76331-1-ref.html
 == 81947-1.html 81947-ref.html
 fails-if(stylo) == 82711-1.html 82711-1-ref.html
 fails-if(stylo) == 82711-2.html 82711-2-ref.html
 fails-if(stylo) == 82711-3.html 82711-3-ref.html
 fails-if(stylo) != 82711-1-ref.html 82711-2-ref.html
 fails-if(stylo) != 82711-1-ref.html 82711-3-ref.html
 fails-if(stylo) != 82711-2-ref.html 82711-3-ref.html
-fuzzy-if(Android,4,1) fails-if(stylo) == 84400-1.html 84400-1-ref.html
+fuzzy-if(Android,4,1) == 84400-1.html 84400-1-ref.html
 fuzzy-if(skiaContent,2,13) == 84400-2.html 84400-2-ref.html
 == 97777-1.html 97777-1-ref.html
 == 97777-2.html 97777-2-ref.html
 == 98223-1.html 98223-1-ref.html
 == 98223-2.html 98223-2-ref.html
 fails-if(stylo) == 99850-1a.html 99850-1-ref.html
 random == 99850-1b.html 99850-1-ref.html # bug 471629
 fails-if(stylo) == 99850-1c.html 99850-1-ref.html
@@ -130,35 +130,35 @@ fails-if(stylo) == 99850-1d.html 99850-1
 == 134706-4.html 134706-4-ref.html
 == 134706-5.html 134706-5-ref.html
 == 134706-6.html 134706-6-ref.html
 == 134706-6b.html 134706-6b-ref.html
 == 134706-6c.html 134706-6c-ref.html
 == 134706-7.html 134706-7-ref.html
 == 139550-1a.html 139550-1-ref.html
 == 139550-1b.html 139550-1-ref.html
-fails-if(stylo) == 142233-1.html 142233-1-ref.html
+== 142233-1.html 142233-1-ref.html
 == 144004-1.html 144004-1-ref.html
 == 144004-2.html 144004-2-ref.html
 != 144004-3.html 144004-3-ref.html
 == 163504-1a.html 163504-1-ref.html
 == 163504-1b.html 163504-1-ref.html
 == 163504-2a.html 163504-2-ref.html
 == 163504-2b.html 163504-2-ref.html
 == 167496-1.html 167496-1-ref.html
 == 169749-1.html 169749-1-ref.html
 == 172073-1.html 172073-1-ref.html
 == 175190-1.html 175190-1-ref.html
 == 179596-1a.html 179596-1a-ref.html
 == 179596-1b.html 179596-1b-ref.html
 == 179596-2.html 179596-2-ref.html
 == 179596-2.html 179596-2-ref2.html
 == 179596-2.html 179596-2-ref3.html
-fails-if(stylo) != 180085-1.html 180085-1-ref.html # fix for 180085 reverted in bug 1010675
-fails-if(stylo) != 180085-2.html 180085-2-ref.html # fix for 180085 reverted in bug 1010675
+!= 180085-1.html 180085-1-ref.html # fix for 180085 reverted in bug 1010675
+!= 180085-2.html 180085-2-ref.html # fix for 180085 reverted in bug 1010675
 == 185388-1.html 185388-1-ref.html
 == 186317-1.html 186317-1-ref.html
 == 192902-1.html 192902-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
@@ -182,47 +182,47 @@ fails-if(Android&&!asyncPan) != 192767-0
 != 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
 != 200774-1.html about:blank
 == 201215-1.html 201215-1-ref.html
-fails-if(stylo) == 201293-1a.html 201293-1-ref.html
-fails-if(stylo) == 201293-1b.html 201293-1-ref.html
-fails-if(stylo) == 201293-1c.html 201293-1-ref.html
-fails-if(stylo) == 201293-1d.html 201293-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
 == 206631-1.html 206631-1-ref.html
 == 206802.html 206802-ref.html
 == 210094-1a.html 210094-1-ref.html
 == 210094-1b.html 210094-1-ref.html
 != 210094-1c.html 210094-1-ref.html
 == 210876-1.html 210876-1-ref.html
 == 211931-1.html 211931-1-ref.html
 == 212563-1.html 212563-1-ref.html
 fuzzy-if(skiaContent,1,5) == 212563-2.html 212563-2-ref.html
 == 213834-1.html 213834-1-ref.html
 == 214077-1a.html 214077-1-ref.html
 == 214077-1b.html 214077-1-ref.html
 == 218473-1.html 218473-1-ref.html
-fuzzy-if(skiaContent,1,4) fails-if(stylo) == 220165-1.svg 220165-1-ref.svg
+fuzzy-if(skiaContent,1,4) == 220165-1.svg 220165-1-ref.svg
 == 223809-1.html 223809-1-ref.html
 == 228856-1.html 228856-1-ref.html
 == 228856-2.html 228856-2-ref.html
 == 229591-1.html 229591-1-ref.html
 # == 231823-1.html 231823-1-ref.html
 == 232990-1a.xhtml 232990-1-ref.xhtml
 == 232990-1b.xhtml 232990-1-ref.xhtml
-fails-if(stylo) == 233094-1.html 233094-1-ref.html
-fails-if(stylo) == 233094-2a.html 233094-2-ref.html
-fails-if(stylo) == 233094-2b.html 233094-2-ref.html
-fails-if(stylo) == 233094-2c.html 233094-2-ref.html
+== 233094-1.html 233094-1-ref.html
+== 233094-2a.html 233094-2-ref.html
+== 233094-2b.html 233094-2-ref.html
+== 233094-2c.html 233094-2-ref.html
 == 234686-1.html 234686-ref.html
 == 234686-2.html 234686-ref.html
 == 234686-3.html 234686-ref.html
 == 234686-4.html 234686-ref.html
 == 234686-5.html 234686-ref.html
 == 234686-6.html 234686-ref.html
 == 234686-7.html 234686-ref.html
 == 234686-8.html 234686-ref.html
@@ -235,19 +235,19 @@ fails-if(stylo) == 233094-2c.html 233094
 == 234686-15.html 234686-ref.html
 == 234686-16.html 234686-ref.html
 == 234686-17.html 234686-ref.html
 == 234686-18.html 234686-ref.html
 == 234686-19.html 234686-ref.html
 fails-if(stylo) == 234964-1.html 234964-1-ref.html
 == 234964-2.html 234964-2-ref.html
 == 235593-1.html 235593-1-ref.html
-fuzzy-if(skiaContent,4,2) fails-if(stylo) == 236539-1.html 236539-1-ref.html
+fuzzy-if(skiaContent,4,2) == 236539-1.html 236539-1-ref.html
 == 240029-1.html 240029-1-ref.html
-fails-if(stylo) == 240470-1.html 240470-1-ref.html
+== 240470-1.html 240470-1-ref.html
 fails-if(stylo) == 240933-1.html 240933-1-ref.html
 skip-if(Android) fails-if(stylo) == 240933-2.html 240933-2-ref.html
 == 243266-1.html 243266-1-ref.html
 == 243302-1.html 243302-1-ref.html
 skip-if(Android&&asyncPan) == 243519-1.html 243519-1-ref.html
 == 243519-2.html 243519-2-ref.html
 == 243519-3.html 243519-3-ref.html
 == 243519-4a.html 243519-4-ref.html
@@ -289,21 +289,21 @@ fuzzy-if(skiaContent,1,5) == 262998-1.ht
 == 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
-fuzzy-if(Android,3,50) fuzzy-if(skiaContent,1,133) fails-if(stylo) == 273681-1.html 273681-1-ref.html
+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
-fails-if(stylo) == 280708-1a.html 280708-1-ref.html
-fails-if(stylo) == 280708-1b.html 280708-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
 == 283686-2.html 283686-2-ref.html
 == 283686-3.html about:blank
 fails-if(stylo) == 289384-1.xhtml 289384-ref.xhtml
 random-if(d2d) fuzzy-if(Android,8,1439) skip-if(stylo) HTTP == 289480.html#top 289480-ref.html # basically-verbatim acid2 test, HTTP for a 404 page -- bug 578114 for the d2d failures
 == 290129-1.html 290129-1-ref.html
@@ -321,57 +321,57 @@ random-if(d2d) == 299837-3.xul 299837-3-
 fails-if(stylo) == 300691-1a.html 300691-1-ref.html
 fails-if(stylo) == 300691-1b.html 300691-1-ref.html
 fails-if(stylo) == 300691-1c.html 300691-1-ref.html
 fails-if(stylo) == 300691-1d.html 300691-1-ref.html
 fails-if(stylo) == 300691-1e.html 300691-1-ref.html
 fails-if(stylo) == 300691-1f.html 300691-1-ref.html
 == 301726-1.html 301726-1-ref.html
 fails-if(Android) != 301726-2.html 301726-2-ref.html
-fails-if(stylo) == 302379.html 302379-ref.html
+== 302379.html 302379-ref.html
 == 306630-1.html 306630-1-ref.html
 == 306660-1.html 306660-1-ref.html
 == 306660-2.html 306660-2-ref.html
 == 306660-3.html 306660-3-ref.html
 == 307076-1.html 307076-1-ref.html
 == 307102-1.html 307102-1-ref.html
-fails-if(stylo) == 307102-2.html 307102-2-ref.html
-fails-if(stylo) == 307102-3.html 307102-3-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
 == 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
 != 315620-1b.html 315620-1-ref.html
 == 315620-2a.xhtml 315620-2-ref.xhtml
 != 315620-2b.xhtml 315620-2-ref.xhtml
-fails-if(stylo) == 315920-1a.html 315920-1-ref.html
-fails-if(stylo) == 315920-1b.html 315920-1-ref.html
-fails-if(stylo) != 315920-1c.html 315920-1-ref.html
-fails-if(stylo) != 315920-1d.html 315920-1-ref.html
-fails-if(stylo) == 315920-2a.html 315920-2-ref.html
-fails-if(stylo) == 315920-2b.html 315920-2-ref.html
-fails-if(stylo) == 315920-2c.html 315920-2-ref.html
-fails-if(stylo) == 315920-3a.html 315920-3-ref.html
-fails-if(stylo) == 315920-3b.html 315920-3-ref.html
-fails-if(stylo) == 315920-3c.html 315920-3-ref.html
-fails-if(stylo) == 315920-3d.html 315920-3-ref.html
-fails-if(stylo) != 315920-3e.html 315920-3-ref.html
-fails-if(stylo) != 315920-3f.html 315920-3-ref.html
-fails-if(stylo) == 315920-4.html 315920-4-ref.html
-fuzzy-if(skiaContent,1,1468) fails-if(stylo) == 315920-5.html 315920-5-ref.html
-fails-if(stylo) == 315920-6.html 315920-6-ref.html
+== 315920-1a.html 315920-1-ref.html
+== 315920-1b.html 315920-1-ref.html
+!= 315920-1c.html 315920-1-ref.html
+!= 315920-1d.html 315920-1-ref.html
+== 315920-2a.html 315920-2-ref.html
+== 315920-2b.html 315920-2-ref.html
+== 315920-2c.html 315920-2-ref.html
+== 315920-3a.html 315920-3-ref.html
+== 315920-3b.html 315920-3-ref.html
+== 315920-3c.html 315920-3-ref.html
+== 315920-3d.html 315920-3-ref.html
+!= 315920-3e.html 315920-3-ref.html
+!= 315920-3f.html 315920-3-ref.html
+== 315920-4.html 315920-4-ref.html
+fuzzy-if(skiaContent,1,1468) == 315920-5.html 315920-5-ref.html
+== 315920-6.html 315920-6-ref.html
 fuzzy-if(Android&&isDebugBuild,229,45) == 315920-7a.html 315920-7-ref.html # bug 1342240
 fuzzy-if(Android&&isDebugBuild,229,45) == 315920-7b.html 315920-7-ref.html # bug 1342240
 fuzzy-if(Android&&isDebugBuild,229,45) == 315920-7c.html 315920-7-ref.html # bug 1342240
 fuzzy-if(Android&&isDebugBuild,229,45) == 315920-8a.html 315920-8-ref.html # bug 1342240
 fuzzy-if(Android&&isDebugBuild,229,45) == 315920-8b.html 315920-8-ref.html # bug 1342240
 == 315920-9.html 315920-9-ref.html
 == 315920-10.html 315920-10-ref.html
 == 315920-11.html 315920-11-ref.html
@@ -391,28 +391,28 @@ fuzzy-if(Android&&isDebugBuild,229,45) =
 fails-if(stylo) == 315920-18e.html 315920-18-ref.html
 fails-if(stylo) == 315920-18f.html 315920-18-ref.html
 fails-if(stylo) == 315920-18g.html 315920-18-ref.html
 == 315920-18h.html 315920-18-ref.html
 == 315920-18i.html 315920-18-ref.html
 == 315920-19.html 315920-19-ref.html
 == 315920-20.svg 315920-20-ref.svg
 == 315920-21.svg 315920-21-ref.svg
-fails-if(stylo) == 315920-22.html 315920-22-ref.html
-fails-if(stylo) == 315920-23.html 315920-23-ref.html
+== 315920-22.html 315920-22-ref.html
+== 315920-23.html 315920-23-ref.html
 == 315920-24.html 315920-24-ref.html
 == 315920-25.html 315920-25-ref.html
 == 315920-26.html 315920-26-ref.html
-fails-if(stylo) == 315920-27.html 315920-27-ref.html
-fails-if(stylo) == 315920-28a.html 315920-28-ref.html
-fails-if(stylo) == 315920-28b.html 315920-28-ref.html
-fails-if(stylo) == 315920-28c.html 315920-28-ref.html
-fails-if(stylo) == 315920-29a.html 315920-29-ref.html
-fails-if(stylo) == 315920-29b.html 315920-29-ref.html
-fails-if(stylo) == 315920-30.html 315920-30-ref.html
+== 315920-27.html 315920-27-ref.html
+== 315920-28a.html 315920-28-ref.html
+== 315920-28b.html 315920-28-ref.html
+== 315920-28c.html 315920-28-ref.html
+== 315920-29a.html 315920-29-ref.html
+== 315920-29b.html 315920-29-ref.html
+== 315920-30.html 315920-30-ref.html
 == 316057-1.html 316057-1-ref.html
 == 320979-1.html 320979-1-ref.html
 != 321402-1.html about:blank
 != 321402-2.html about:blank
 == 321402-3.xul 321402-3-ref.xul
 == 321402-4.xul 321402-4-ref.xul
 == 321402-5.xul 321402-5-ref.xul
 == 321402-6.xul 321402-6-ref.xul
@@ -421,62 +421,62 @@ fails-if(stylo) == 315920-30.html 315920
 == 322461-1.xml 322461-1-ref.html
 == 323656-1.html 323656-1-ref.html
 == 323656-2.html 323656-2-ref.html
 == 323656-3.html 323656-3-ref.html
 == 323656-4.html 323656-4-ref.html
 == 323656-5.svg 323656-5-ref.svg
 == 323656-6.html 323656-6-ref.html
 fuzzy-if(Android,2,140) == 325292-1.html 325292-1-ref.html
-fails-if(stylo) == 325486-1.html 325486-1-ref.html
+== 325486-1.html 325486-1-ref.html
 == 328111-1.html 328111-1-ref.html
 random == 328829-1.xhtml 328829-1-ref.xhtml # bug 369046 (intermittent)
 == 328829-2.xhtml 328829-2-ref.xhtml
 == 329359-1.html 329359-1-ref.html
 == 331809-1.html 331809-1-ref.html # bug 580499 is blacked out
 == 332360.html 332360-ref.html
 == 332360-ltr.html 332360-ltr-ref.html
 == 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
-fails-if(stylo) == 335628-1.html 335628-1-ref.html
+== 335628-1.html 335628-1-ref.html
 != 335628-2.xul 335628-2-ref.xul
 == 336096-1.xul 336096-1-ref.xul
-fails-if(stylo) == 336147-1.html 336147-1-ref.html
+== 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
 != 341043-1b.html 341043-1-ref.html
 == 343538-1.html 343538-1-ref.html
 == 343540-1.html 343540-1-ref.html
-fails-if(stylo) == 345267-1a.html 345267-1-ref.html
-fails-if(stylo) == 345267-1b.html 345267-1-ref.html
-fails-if(stylo) == 345267-1c.html 345267-1-ref.html
-fails-if(stylo) == 345267-1d.html 345267-1-ref.html
+== 345267-1a.html 345267-1-ref.html
+== 345267-1b.html 345267-1-ref.html
+== 345267-1c.html 345267-1-ref.html
+== 345267-1d.html 345267-1-ref.html
 != 345563-sub.xhtml 345563-sup.xhtml
 == 346189-1.xul 346189-1-ref.xul
-fuzzy-if(skiaContent,4,2) fails-if(stylo) == 346774-1a.html 346774-1-ref.html
-fuzzy-if(skiaContent,4,2) fails-if(stylo) == 346774-1b.html 346774-1-ref.html
-fuzzy-if(skiaContent,4,2) fails-if(stylo) == 346774-1c.html 346774-1-ref.html
+fuzzy-if(skiaContent,4,2) == 346774-1a.html 346774-1-ref.html
+fuzzy-if(skiaContent,4,2) == 346774-1b.html 346774-1-ref.html
+fuzzy-if(skiaContent,4,2) == 346774-1c.html 346774-1-ref.html
 == 347348-1.xhtml 347348-1-ref.xhtml
 == 347496-1.xhtml 347496-1-ref.xhtml
 == 347912-1.html 347912-1-ref.html
 fails-if(stylo) == 348049-1.xhtml 348049-1-ref.xhtml
-fails-if(stylo) == 348516-1.html 348516-1-ref.html
-fails-if(stylo) == 348516-2.html 348516-2-ref.html
-fails-if(stylo) != 348516-2.html 348516-2-notref.html
-fails-if(stylo) != 348516-3.html 348516-3-notref.html
+== 348516-1.html 348516-1-ref.html
+== 348516-2.html 348516-2-ref.html
+!= 348516-2.html 348516-2-notref.html
+!= 348516-3.html 348516-3-notref.html
 == 348597-1.html 348597-ref.html
 == 348809-1a.html 348809-1-ref.html
 == 348809-1b.html 348809-1-ref.html
 == 348809-1c.html 348809-1-ref.html
 == 348809-1d.html 348809-1-ref.html
 == 348809-1e.html 348809-1-ref.html
 == 348809-1f.html 348809-1-ref.html
 == 348809-2a.html 348809-2-ref.html
@@ -522,17 +522,17 @@ random-if(cocoaWidget) == 350506-1.html 
 == 355548-1.xml 355548-1-ref.xml
 == 355548-2.xml 355548-2-ref.xml
 == 355548-3.xml 355548-3-ref.xml
 == 355548-4.xml 355548-4-ref.xml
 == 355548-5.xml 355548-5-ref.xml
 == 356774-1.html 356774-1-ref.html
 == 356775-1.html 356775-1-ref.html
 == 359869-1.html 359869-1-ref.html
-fails-if(stylo) != 359903-1.html 359903-1-ref.html # erosion of padding removed in bug 1010675
+!= 359903-1.html 359903-1-ref.html # erosion of padding removed in bug 1010675
 != 359903-2.html 359903-2-ref.html # erosion of padding removed in bug 1010675
 == 360065-1.html 360065-1-ref.html
 == 360746-1.html 360746-1-ref.html
 == 360757-1a.html 360757-1-ref.html
 == 360757-1b.html 360757-1-ref.html
 == 361091-1.html 361091-1-ref.html
 == 362594-1a.html 362594-1-quirks-ref.html
 == 362594-1b.html 362594-1-quirks-ref.html
@@ -548,21 +548,21 @@ fuzzy-if(skiaContent,2,4) == 362594-2c.h
 == 363329-2.html 363329-2-ref.html
 == 363370-1.html 363370-1-ref.html
 == 363402-1.html 363402-1-ref.html
 == 363637-1.html 363637-1-ref.html
 skip-if(Android) == 363706-1.html 363706-1-ref.html
 != 363706-1.html about:blank
 fails-if(stylo) == 363728-1.html 363728-1-ref.html
 == 363728-2.html 363728-2-ref.html
-fuzzy-if(skiaContent||Android,4,11) fails-if(stylo) == 363858-1.html 363858-1-ref.html
+fuzzy-if(skiaContent||Android,4,11) == 363858-1.html 363858-1-ref.html
 == 363858-2.html 363858-2-ref.html
-fails-if(stylo) == 363858-3.html 363858-3-ref.html
+== 363858-3.html 363858-3-ref.html
 == 363858-4.html 363858-4-ref.html
-fuzzy-if(OSX,45,2) fuzzy-if(winWidget,114,1) fails-if(stylo) == 363858-5a.html 363858-5-ref.html
+fuzzy-if(OSX,45,2) fuzzy-if(winWidget,114,1) == 363858-5a.html 363858-5-ref.html
 fails-if(stylo) == 363858-5b.html 363858-5-ref.html
 fuzzy-if(OSX,45,2) fuzzy-if(winWidget,114,1) == 363858-6a.html 363858-6-ref.html
 fails-if(stylo) == 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
@@ -618,17 +618,17 @@ asserts(4) asserts-if(stylo,8) == 368155
 == 368504-6.html 368504-6-ref.html
 == 368622-1.html 368622-1-ref.html
 == 368651-1.html 368651-1-ref.html
 == 369361-1.html 369361-1-ref.html
 == 369361-2.html 369361-2-ref.html
 == 369882.xul 369882-ref.xul
 == 369975-1.html 369975-1.html
 == 370353-1.html 370353-1-ref.html
-fails-if(stylo) == 370422-1.html 370422-1-ref.html
+== 370422-1.html 370422-1-ref.html
 == 370525-1.html 370525-1-ref.html
 != 370525-1.html 370525-1-notref.html
 == 370525-2.html 370525-2-ref.html
 != 370525-2.html 370525-2-notref.html
 == 370525-rowspan-1a.html 370525-rowspan-1a-ref.html
 == 370525-rowspan-1b.html 370525-rowspan-1b-ref.html
 == 370525-rowspan-1c.html 370525-rowspan-1c-ref.html
 == 370525-rowspan-2a.html 370525-rowspan-2a-ref.html
@@ -707,17 +707,17 @@ fuzzy-if(Android,2,140) == 379349-3b.xht
 fails-if(Android&&!asyncPan) != 379461-3-container-xhtml.html 379461-3-container-blank.html # there is a scrollbar
 fuzzy-if(skiaContent,1,5) == 380004-1.html 380004-1-ref.html
 fuzzy-if(skiaContent,2,5) == 380227-1.html 380227-1-ref.html
 == 380825-1.html 380825-1-ref.html
 == 380842-1.html 380842-1-ref.html
 == 381130-1.html 381130-1-ref.html
 fuzzy-if(skiaContent,2,5) == 381507-1.html 381507-1-ref.html
 == 381746-1.html 381746-1-ref.html
-fails-if(stylo) == 382600-1.html 382600-1-ref.html
+== 382600-1.html 382600-1-ref.html
 == 382916-1.html 382916-1-ref.html
 == 383035-1.html about:blank
 == 383035-2.html about:blank
 == 383488-1.html 383488-1-ref.html
 == 383551-1.html 383551-1-ref.html
 == 383883-1.html 383883-1-ref.html
 == 383883-2.html 383883-2-ref.html
 == 383883-3.html 383883-3-ref.html
@@ -783,17 +783,17 @@ fails-if(!stylo) == 387344-1.html 387344
 == 390318-1e.html 390318-1-ref.html
 == 390318-1f.html 390318-1-ref.html
 skip-if(!winWidget) == 391045.html 391045-ref.html # windows-specific Uniscribe bug, trailing period is matched against different fonts on Mac/Linux (see 396137)
 == 391140-1.html 391140-1-ref.html
 == 391412-1a.html 391412-1-ref.html
 == 391412-1b.html 391412-1-ref.html
 == 391909-1.html 391909-1-ref.html
 skip-if(Android) == 391979.html 391979-ref.html
-fails-if(stylo) == 391994-1.html 391994-1-ref.html
+== 391994-1.html 391994-1-ref.html
 == 392047.html 392047-ref.html
 fails-if(stylo) == 392435-1.html 392435-1-ref.html
 == 393330-1.html 393330-1-ref.html
 == 393490-1.html 393490-1-ref.html
 == 393517-1.xhtml about:blank  # crash test
 fuzzy-if(skiaContent,1,600) == 393649-1.html 393649-1-ref.html
 == 393655-1.html 393655-1-ref.html
 == 393655-2.html 393655-2-ref.html
@@ -803,23 +803,23 @@ fuzzy-if(skiaContent,1,600) == 393649-1.
 == 393671-1.html 393671-1-ref.html
 == 393671-2.html 393671-2-ref.html
 == 393671-3.html 393671-3-ref.html
 == 393760-1.xml 393760-1-ref.xml
 fuzzy-if(skiaContent,1,500) == 393760-2.xml 393760-2-ref.xml
 == 394111-1.html about:blank  # Really an assertion test rather than a rendering test
 == 394534-1.html 394534-1-ref.html
 == 394676-1.xhtml 394676-1-ref.xhtml
-fails-if(stylo) == 395107-1.html 395107-1-ref.html
-fuzzy-if(Android,4,2) fails-if(stylo) == 395107-2.html 395107-2-ref.html # bug 1309533 fuzzy after test rebucketed
-fuzzy-if(skiaContent,1,118) fails-if(stylo) == 395107-3.html 395107-3-ref.html
-fails-if(stylo) == 395107-4.html 395107-4-ref.html
-fails-if(stylo) == 395107-5.html 395107-5-ref.html
-fails-if(stylo) == 395130-1.html 395130-1-ref.html
-fails-if(stylo) == 395130-2.html 395130-2-ref.html
+== 395107-1.html 395107-1-ref.html
+fuzzy-if(Android,4,2) == 395107-2.html 395107-2-ref.html # bug 1309533 fuzzy after test rebucketed
+fuzzy-if(skiaContent,1,118) == 395107-3.html 395107-3-ref.html
+== 395107-4.html 395107-4-ref.html
+== 395107-5.html 395107-5-ref.html
+== 395130-1.html 395130-1-ref.html
+== 395130-2.html 395130-2-ref.html
 == 395331-1.xml 395331-1-ref.xml
 == 395390-1.html 395390-1-ref.html
 == 396286-1.html about:blank  # crash test
 fuzzy-if(Android,5,283) == 397428-1.html 397428-1-ref.html
 == 397844-1.xhtml 397844-1-ref.xhtml
 == 398092-1.html 398092-1-ref.html
 == 398101-1.html 398101-1-ref.html
 == 398144-1.html 398144-1-ref.html
@@ -946,18 +946,18 @@ fuzzy-if(winWidget,123,1900) == 409659-1
 == 411367-1.html 411367-1-ref.html
 == 411367-2.html 411367-2-ref.html
 == 411367-3.html 411367-3-ref.html
 == 411585-1.html 411585-1-ref.html
 == 411585-2.html 411585-2-ref.html
 fails-if(!stylo) == 411585-3.html 411585-3-ref.html # bug 426909
 == 411792-1.html 411792-1-ref.html
 == 412093-1.html 412093-1-ref.html
-fails-if(stylo) == 412352-1.html 412352-1-ref.html
-fails-if(stylo) == 412352-2.html 412352-2-ref.html
+== 412352-1.html 412352-1-ref.html
+== 412352-2.html 412352-2-ref.html
 == 412607-1a.html 412607-1-ref.html
 == 412607-1b.html 412607-1-ref.html
 random-if(Android) == 412679-1.html 412679-1-ref.html
 fuzzy-if(skiaContent,1,17) == 412679-2.html 412679-2-ref.html
 == 413027-1.html 413027-1-ref.html
 fails-if(!stylo) == 413027-2.html 413027-2-ref.html
 fails-if(!stylo) == 413027-3.html 413027-3-ref.html
 == 413286-1a.html 413286-1-ref.html
@@ -971,22 +971,22 @@ fails-if(!stylo) == 413027-3.html 413027
 == 413286-4b.html 413286-4-ref.html
 == 413286-5.html 413286-5-ref.html
 == 413286-6.html 413286-6-ref.html
 == 413292-1.html 413292-1-ref.html
 fuzzy-if(Android,11,17) == 413361-1.html 413361-1-ref.html # bug 1128229
 == 413840-background-unchanged.html 413840-background-unchanged-ref.html
 == 413840-ltr-offsets.html 413840-ltr-offsets-ref.html
 == 413840-rtl-offsets.html 413840-rtl-offsets-ref.html
-fails-if(stylo) == 413840-pushed-line-bullet.html 413840-pushed-line-bullet-ref.html
+== 413840-pushed-line-bullet.html 413840-pushed-line-bullet-ref.html
 == 413840-bullet-first-line.html 413840-bullet-first-line-ref.html
 == 413982.html 413982-ref.html
 == 414123.xhtml 414123-ref.xhtml
 == 414638.html 414638-ref.html
-fails-if(stylo) == 414851-1.html 414851-1-ref.html
+== 414851-1.html 414851-1-ref.html
 fails-if(stylo) == 416106-1.xhtml 416106-1-ref.xhtml
 == 416752-1.html 416752-1-ref.html
 == 417178-1.html 417178-1-ref.html
 == 417246-1.html 417246-1-ref.html
 == 417676.html 417676-ref.html
 asserts(1) asserts-if(stylo,2) == 418574-1.html 418574-1-ref.html # bug 478135
 asserts(1) asserts-if(stylo,2) == 418574-2.html 418574-2-ref.html # bug 478135
 == 418766-1a.html 418766-1-ref.html
@@ -1008,17 +1008,17 @@ asserts(1) asserts-if(stylo,2) == 418574
 == 421203-5.xul 321402-5-ref.xul
 == 421203-6.xul 321402-6-ref.xul
 == 421234-1.html 421234-1-ref.html
 == 421239-1.html 421239-1-ref.html
 == 421239-2.html 421239-2-ref.html
 == 421419-1.html 421419-1-ref.html
 == 421436-1a.html 421436-1-ref.html
 == 421436-1b.html 421436-1-ref.html
-fuzzy-if(skiaContent,1,5) fails-if(stylo) == 421632-1.html 421632-1-ref.html
+fuzzy-if(skiaContent,1,5) == 421632-1.html 421632-1-ref.html
 != 421710-1.html about:blank
 fails-if(Android) fails-if(usesRepeatResampling) == 421885-1.xml 421885-1-ref.xml
 == 421955-1.html 421955-1-ref.html
 == 422249-1.html 422249-1-ref.html
 == 422394-1.html 422394-1-ref.html
 == 422678-1.html 422678-1-ref.html
 == 423130-1.html 423130-1-ref.html
 == 423385-1.html 423385-1-ref.html
@@ -1038,17 +1038,17 @@ random-if(gtkWidget) == 424074-1-ref2.xu
 == 424236-8.html 424236-8-ref.html
 == 424236-9.html 424236-9-ref.html
 == 424236-10.html 424236-10-ref.html
 == 424236-11.html 424236-3-ref.html
 == 424434-1.html 424434-1-ref.html
 == 424465-1.html 424465-1-ref.html
 == 424631-1.html 424631-1-ref.html
 == 424710-1.html 424710-1-ref.html
-fuzzy-if(skiaContent,1,160000) fails-if(stylo) == 424766-1.html 424766-1-ref.html
+fuzzy-if(skiaContent,1,160000) == 424766-1.html 424766-1-ref.html
 == 425972-1.html 425972-1-ref.html
 == 425972-2.html 425972-2-ref.html
 != 425972-1.html 425972-2.html
 == 426629-1.html 426629-1-ref.html
 asserts(3) asserts-if(stylo,6) != 427017-1.xhtml about:blank # crash test (needs reftest-print). existing assertions are bug 457400.
 == 427129-scrollframe.html 427129-ref.html
 == 427129-table.html 427129-ref.html
 == 427129-image.html 427129-ref.html
@@ -1144,18 +1144,18 @@ fuzzy-if(skiaContent,3,1) == 438537-1.ht
 == 438987-1.html 438987-1-ref.html
 fuzzy-if(skiaContent,1,3280) == 438987-2a.html 438987-2-ref.html
 fuzzy-if(skiaContent,1,3280) == 438987-2b.html 438987-2-ref.html
 fuzzy-if(skiaContent,1,3280) == 438987-2c.html 438987-2-ref.html
 != about:blank 438987-2-ref.html # check that backgrounds work at all
 == 439004-1.html 439004-1-ref.html
 == 439639-1.html 439639-1-ref.html
 == 439910.html 439910-ref.html
-fuzzy-if(skiaContent,1,1) fails-if(stylo) == 440112.html 440112-ref.html
-fails-if(stylo) == 440149-1.html 440149-1-ref.html
+fuzzy-if(skiaContent,1,1) == 440112.html 440112-ref.html
+== 440149-1.html 440149-1-ref.html
 == 441259-1.html 441259-1-ref.html
 fails-if(!stylo) == 441259-2.html 441259-2-ref.html # bug 441400
 fuzzy-if(skiaContent,1,3) == 442542-1.html 442542-1-ref.html
 fails-if(stylo) == 444015-1.html 444015-1-ref.html
 == 444375-1.html 444375-1-ref.html
 == 444928-1.html 444928-1-ref.html
 == 444928-2.html 444928-2-ref.html
 != 444928-3.html 444928-3-notref.html
@@ -1236,18 +1236,18 @@ fuzzy-if(skiaContent,1,12000) == 461512-
 == 463204-1.html 463204-1-ref.html
 == 463217-1.xul 463217-1-ref.xul
 == 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
-fails-if(stylo) == 467084-1.html 467084-1-ref.html
-fails-if(stylo) == 467084-2.html 467084-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(stylo) == 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-if(!stylo) == 472020-1b.xul 472020-1-ref.xul
@@ -1294,19 +1294,19 @@ random-if(d2d) == 478377-1.xul 478377-1-
 == 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
-fails-if(stylo) == 478811-2.html 478811-2-ref.html
-fails-if(stylo) == 478811-3.html 478811-3-ref.html
-fails-if(stylo) == 478811-4.html 478811-4-ref.html
+== 478811-2.html 478811-2-ref.html
+== 478811-3.html 478811-3-ref.html
+== 478811-4.html 478811-4-ref.html
 == 478956-1a.html 478956-1-ref.html
 == 478956-1b.html 478956-1-ref.html
 == 480017-1.html 480017-1-ref.html
 == 480880-1a.html 480880-1-ref.html
 == 480880-1b.html 480880-1-ref.html
 == 480880-1c.html 480880-1-ref.html
 == 480880-1d.html 480880-1-ref.html
 == 480880-1e.html 480880-1-ref.html
@@ -1348,17 +1348,17 @@ fuzzy-if(skiaContent,1,5) == 482659-1d.h
 == 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
-fails-if(stylo) == 490177-1.svg 490177-1-ref.svg
+== 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
 == 492661-1.html 492661-1-ref.html
 == 493968-1.html 493968-1-ref.html
@@ -1399,52 +1399,52 @@ fuzzy-if(gtkWidget,1,2) == 502447-1.html
 == 502942-1.html 502942-1-ref.html
 == 503364-1a.html 503364-1-ref.html
 == 503364-1b.html 503364-1-ref.html
 # Reftest for bug 503531 marked as failing; should be re-enabled when
 # bug 607548 gets resolved.
 needs-focus fails-if(!stylo) == 503531-1.html 503531-1-ref.html
 == 504032-1.html 504032-1-ref.html
 == 505743-1.html about:blank
-fuzzy-if(Android,5,2800) fails-if(stylo) == 506481-1.html 506481-1-ref.html
+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
 fails-if(stylo) == 507762-4.html 507762-2-ref.html
 random-if(cocoaWidget) == 508816-1.xul 508816-1-ref.xul # Bug 631982
 == 508816-2.html 508816-2-ref.html
 == 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) fails-if(stylo) == 512410.html 512410-ref.html
+fuzzy-if(Android,5,1656) fuzzy-if(skiaContent,1,1200) == 512410.html 512410-ref.html
 == 512631-1.html 512631-1-ref.html
-fails-if(stylo) == 513153-1a.html 513153-1-ref.html
-fails-if(stylo) == 513153-1b.html 513153-1-ref.html
-fails-if(stylo) == 513153-2a.html 513153-2-ref.html
-fails-if(stylo) == 513153-2b.html 513153-2-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
 == 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
 == 521525-2.html 521525-2-ref.html
-fails-if(stylo) == 521539-1.html 521539-1-ref.html
+== 521539-1.html 521539-1-ref.html
 == 521542-1.xhtml 521542-1-ref.xhtml
 == 521602.html 521602-ref.html
 == 521685-1.html 521685-1-ref.html
 == 522632-1.html 522632-1-ref.html
-fails-if(stylo) == 523096-1.html 523096-1-ref.html
+== 523096-1.html 523096-1-ref.html
 random-if(d2d) == 523468-1.html 523468-1-ref.html
 == 524175-1.html 524175-1-ref.html
 fuzzy-if(skiaContent,1,50) == 526463-1.html 526463-1-ref.html
 == 527464-1.html 527464-ref.html
 == 528038-1a.html 528038-1-ref.html
 == 528038-1b.html 528038-1-ref.html
 == 528038-1c.html 528038-1-ref.html
 == 528038-1d.html 528038-1-ref.html
@@ -1470,17 +1470,17 @@ fails-if(stylo) == 538909-1.html 538909-
 == 538935-1.html 538935-1-ref.html
 == 539226-1.html about:blank
 == 539323-1.html 539323-1-ref.html
 == 539323-2.html 539323-2-ref.html
 == 539323-3.html 539323-3-ref.html
 == 539880-1.html 539880-1-ref.html
 == 539880-1-dynamic.html 539880-1-ref.html
 fuzzy-if(Android,12,1000) skip-if(stylo) == 539949-1.html#test2 539949-1-ref.html#test2
-fails-if(stylo) == 541382-1.html 541382-1-ref.html
+== 541382-1.html 541382-1-ref.html
 random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)||!haveTestPlugin) == 541406-1.html 541406-1-ref.html
 needs-focus != 542116-1.html 542116-1-ref.html
 needs-focus != 542116-2.html 542116-2-ref.html
 needs-focus != 542116-3.html 542116-3-ref.html
 == 542317-1.html 542317-1-ref.html
 == 542620-1.html 542620-1-ref.html
 == 545049-1.html 545049-1-ref.html
 == 546033-1.html 546033-1-ref.html
@@ -1542,67 +1542,67 @@ fuzzy-if(Android,2,48) == 563584-10a.htm
 fuzzy-if(Android,2,48) == 563584-10b.html 563584-10-ref.html
 fuzzy-if(Android,2,48) == 563584-11.html 563584-11-ref.html
 == 563884-1.html 563884-1-ref.html
 == 564002-1.html 564002-1-ref.html
 == 564054-1.html 564054-1-ref.html
 fails-if(Android) random-if(layersGPUAccelerated) fuzzy-if(skiaContent,1,1200) == 564991-1.html 564991-1-ref.html
 == 565819-1.html 565819-ref.html
 == 565819-2.html 565819-ref.html
-needs-focus fails-if(stylo) == 568441.html 568441-ref.html
+needs-focus == 568441.html 568441-ref.html
 == 569006-1.html 569006-1-ref.html
 == 571281-1a.html 571281-1-ref.html
 == 571281-1b.html 571281-1-ref.html
 == 571281-1c.html 571281-1-ref.html
 == 571347-1a.html 571347-1-ref.html
 == 571347-1b.html 571347-1-ref.html
 == 571347-2a.html 571347-2-ref.html
 == 571347-2b.html 571347-2-ref.html
 fails-if(stylo) == 571347-2c.html 571347-2-ref.html
 == 571347-2d.html 571347-2-ref.html
 == 571347-3.html 571347-3-ref.html
-fails-if(stylo) == 572598-1.html 572598-ref.html
-fails-if(stylo) == 574898-1.html 574898-ref.html
+== 572598-1.html 572598-ref.html
+== 574898-1.html 574898-ref.html
 # 574907 is a windows-only issue, result on other platforms depends on details of font support
 random-if(!winWidget) random-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)) == 574907-1.html 574907-1-ref.html # Bug 1258240
 random-if(!winWidget) random-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)) == 574907-2.html 574907-2-ref.html # Bug 1258240
 # 574907-3 only worked under directwrite, and even there it now depends on the rendering mode; marking as random for now
 random-if(!winWidget) fails-if(winWidget&&!dwrite) random-if(winWidget&&dwrite) != 574907-3.html 574907-3-notref.html
 == 577838-1.html 577838-1-ref.html
 == 577838-2.html 577838-2-ref.html
 == 579323-1.html 579323-1-ref.html
 == 579349-1.html 579349-1-ref.html
 == 579655-1.html 579655-1-ref.html
 skip-if(!haveTestPlugin) fails-if(Android) == 579808-1.html 579808-1-ref.html
 fails-if(Android) random-if(layersGPUAccelerated) fuzzy-if(skiaContent,1,10000) == 579985-1.html 579985-1-ref.html # this bug was only for a regression in BasicLayers anyway
 skip-if(Android) == 580160-1.html 580160-1-ref.html # bug 920927 for Android; issues without the test-plugin
-fuzzy-if(asyncPan&&!layersGPUAccelerated,255,141) fails-if(stylo) HTTP(..) == 580863-1.html 580863-1-ref.html
+fuzzy-if(asyncPan&&!layersGPUAccelerated,255,141) HTTP(..) == 580863-1.html 580863-1-ref.html
 fails-if(Android) random-if(layersGPUAccelerated) fuzzy-if(skiaContent,1,6436) == 581317-1.html 581317-1-ref.html
 == 581579-1.html 581579-1-ref.html
 == 582037-1a.html 582037-1-ref.html
 == 582037-1b.html 582037-1-ref.html
 fuzzy-if(Android,3,256) == 582037-2a.html 582037-2-ref.html
 fuzzy-if(Android,3,256) == 582037-2b.html 582037-2-ref.html
 asserts(1-2) asserts-if(stylo,4) == 582146-1.html about:blank
 == 582476-1.svg 582476-1-ref.svg
 == 584400-dash-length.svg 584400-dash-length-ref.svg
 == 584699-1.html 584699-1-ref.html
-fuzzy-if(Android,2,48) fails-if(stylo) == 585598-2.xhtml 585598-2-ref.xhtml
+fuzzy-if(Android,2,48) == 585598-2.xhtml 585598-2-ref.xhtml
 == 586400-1.html 586400-1-ref.html
 fuzzy-if(d2d,52,1051) == 586683-1.html 586683-1-ref.html
 fails-if(stylo) == 589615-1a.xhtml 589615-1-ref.html
 fails-if(stylo) == 589615-1b.html 589615-1-ref.html
 == 589672-1.html 589672-1-ref.html
 != 589682-1.html 589682-1-notref.html
 pref(dom.meta-viewport.enabled,true) skip-if(Android) == 593243-1.html 593243-1-ref.html # bug 593168
 pref(dom.meta-viewport.enabled,true) skip-if(Android) == 593243-2.html 593243-2-ref.html # bug 593168
 == 593544-1.html 593544-1-ref.html
 random-if(Android) == 594333-1.html 594333-1-ref.html
 == 594624-1.html 594624-1-ref.html
-fails-if(stylo) == 594737-1.html 594737-1-ref.html
+== 594737-1.html 594737-1-ref.html
 fuzzy-if(skiaContent,1,80) fails-if(stylo) == 597721-1.html 597721-1-ref.html
 random-if(winWidget) fuzzy-if(Android,38,539) fuzzy-if(skiaContent,1,480) needs-focus skip-if(stylo) == 598726-1.html 598726-1-ref.html # Fails on Windows, bug 782196
 == 599113-1.html 599113-1-ref.html
 fails-if(!haveTestPlugin) == 599476.html 599476-ref.html
 == 599882-1a.html 599882-1-ref.html
 == 599882-1b.html 599882-1-ref.html
 == 599882-2.html 599882-2-ref.html
 == 600045-1.html 600045-1-ref.html
@@ -1610,17 +1610,17 @@ fails-if(stylo) == 600803-1.html 600803-
 == 600974-1.html 600974-1-ref.html
 == 600974-2.html 600974-1-ref.html
 == 600974-3.html 600974-1-ref.html
 == 602200-1.html 602200-1-ref.html
 == 602200-2.html 602200-2-ref.html
 fuzzy-if(Android,8,20) == 602200-3.html 602200-3-ref.html
 == 602200-4.html 602200-4-ref.html
 == 603423-1.html 603423-1-ref.html
-fails-if(stylo) == 604737.html 604737-ref.html
+== 604737.html 604737-ref.html
 fails-if(stylo) == 605138-1.html 605138-1-ref.html
 == 605157-1.xhtml 605157-1-ref.xhtml
 == 607267-1.html 607267-1-ref.html
 == 608636-1.html 608636-1-ref.html
 == 608756-1a.html 608756-1-ref.html
 == 608756-1b.html 608756-1-ref.html
 == 608756-2.html 608756-2-ref.html
 fuzzy-if(Android,4,196) == 609272-1.html 609272-1-ref.html
@@ -1632,17 +1632,17 @@ needs-focus == 613433-2.html 613433-2-re
 needs-focus == 613433-2.html 613433-3-ref.html
 needs-focus == 613433-3.html 613433-1-ref.html
 needs-focus == 613433-3.html 613433-2-ref.html
 needs-focus == 613433-3.html 613433-3-ref.html
 == 614272-1.svg  614272-1-ref.svg
 HTTP(..) == 615121-1.html 615121-1-ref.html
 HTTP(..) != 615121-2.html 615121-2-notref.html
 == 617242-1.html 617242-1-ref.html
-fails-if(stylo) != 618071.html 618071-notref.html
+!= 618071.html 618071-notref.html
 == 619117-1.html 619117-1-ref.html
 HTTP(..) == 619511-1.html 619511-1-ref.html
 skip-if(Android) HTTP(..) == 621253-1-externalFilter.html 621253-1-ref.html
 skip-if(Android) == 621253-1-internalFilter.html 621253-1-ref.html
 HTTP(..) == 621253-2-externalFilter.html 621253-2-ref.html
 == 621253-2-internalFilter.html 621253-2-ref.html
 random-if(winWidget) == 621918-1.svg 621918-1-ref.svg # 1-pixel diacritic positioning discrepancy in rotated text (may depend on platform fonts)
 random-if(winWidget) HTTP(..) == 621918-2.svg 621918-2-ref.svg # same 1px issue as above, and HTTP(..) for filters.svg, used to mask antialiasing issues where glyphs touch
@@ -1757,32 +1757,32 @@ fuzzy-if(Android,8,608) == 811301-1.html
 == 814677.html 814677-ref.html
 == 814952-1.html 814952-1-ref.html
 fuzzy-if(Android,4,400) == 815593-1.html 815593-1-ref.html
 == 816359-1.html 816359-1-ref.html
 == 816458-1.html 816458-1-ref.html
 fuzzy-if(skiaContent,1,5) == 816948-1.html 816948-1-ref.html
 == 817019-1.html about:blank
 fuzzy-if(skiaContent,1,5) == 818276-1.html 818276-1-ref.html
-fuzzy-if(asyncPan,190,510) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,510) fails-if(stylo) == 825999.html 825999-ref.html
+fuzzy-if(asyncPan,190,510) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,510) == 825999.html 825999-ref.html
 == 827577-1a.html 827577-1-ref.html
 == 827577-1b.html 827577-1-ref.html
 == 827799-1.html about:blank
 == 829958.html 829958-ref.html
 == 836844-1.html 836844-1-ref.html
 == 841192-1.html 841192-1-ref.html
 == 844178.html 844178-ref.html
 fuzzy-if(OSX,1,364) fuzzy-if(skiaContent,1,320) == 846144-1.html 846144-1-ref.html
 == 847850-1.html 847850-1-ref.html
 == 848421-1.html 848421-1-ref.html
 == 849407-1.html 849407-1-ref.html
 == 849996-1.html 849996-1-ref.html
 == 858803-1.html 858803-1-ref.html
 == 860242-1.html 860242-1-ref.html
-fails-if(stylo) != 860370.html 860370-notref.html
+!= 860370.html 860370-notref.html
 == 871338-1.html 871338-1-ref.html
 == 875060-1.html 875060-1-ref.html
 fails-if(stylo) == 883987-1a.html 883987-1-ref.html
 fails-if(stylo) == 883987-1b.html 883987-1-ref.html
 fails-if(stylo) == 883987-1c.html 883987-1-ref.html
 fails-if(stylo) == 883987-1d.html 883987-1-ref.html
 fails-if(stylo) == 883987-1e.html 883987-1-ref.html
 == 883987-1f.html 883987-1-ref.html
@@ -1797,17 +1797,17 @@ fuzzy-if(Android,8,400) fails-if(webrend
 fuzzy-if(cocoaWidget,1,40) == 928607-1.html 928607-1-ref.html
 fuzzy-if(skiaContent,1,3) == 931464-1.html 931464-1-ref.html
 == 931853.html 931853-ref.html
 == 931853-quirks.html 931853-quirks-ref.html
 == 933264-1.html 933264-1-ref.html
 == 936670-1.svg 936670-1-ref.svg
 == 941940-1.html 941940-1-ref.html
 fails-if(!stylo) == 942017.html 942017-ref.html # bug 942017
-fuzzy-if(Android,1,1) fuzzy-if(skiaContent,1,160000) fails-if(webrender) fails-if(stylo) == 942672-1.html 942672-1-ref.html
+fuzzy-if(Android,1,1) fuzzy-if(skiaContent,1,160000) fails-if(webrender) == 942672-1.html 942672-1-ref.html
 == 953334-win32-clipping.html 953334-win32-clipping-ref.html
 fuzzy-if(skiaContent,1,5) == 956513-1.svg 956513-1-ref.svg
 == 944291-1.html 944291-1-ref.html
 == 950436-1.html 950436-1-ref.html
 == 957770-1.svg 957770-1-ref.svg
 == 960277-1.html 960277-1-ref.html
 fuzzy-if(skiaContent,1,80) == 961887-1.html 961887-1-ref.html
 == 961887-2.html 961887-2-ref.html
@@ -1940,17 +1940,17 @@ skip-if(!Android) fails-if(Android) fail
 fuzzy-if(skiaContent,7,84) == 1156129-1.html 1156129-1-ref.html
 pref(dom.use_xbl_scopes_for_remote_xul,true) HTTP(..) == 1157127-1.html 1157127-1-ref.html
 fuzzy-if(Android,6,6) == 1169331-1.html 1169331-1-ref.html
 fuzzy(1,74) fails-if(gtkWidget&&!stylo) == 1174332-1.html 1174332-1-ref.html # bug 1312658
 == 1179078-1.html 1179078-1-ref.html
 == 1179288-1.html 1179288-1-ref.html
 == 1190635-1.html 1190635-1-ref.html
 == 1202512-1.html 1202512-1-ref.html
-fuzzy-if(skiaContent,1,1) fails-if(stylo) == 1202512-2.html 1202512-2-ref.html
+fuzzy-if(skiaContent,1,1) == 1202512-2.html 1202512-2-ref.html
 != 1207326-1.html about:blank
 == 1209603-1.html 1209603-1-ref.html
 == 1209994-1.html 1209994-1-ref.html
 == 1209994-2.html 1209994-2-ref.html
 == 1209994-3.html 1209994-3-ref.html
 == 1209994-4.html 1209994-4-ref.html
 == 1222226-1.html 1222226-1-ref.html
 pref(layout.css.overflow-clip-box.enabled,true) fails-if(stylo) == 1226278.html 1226278-ref.html
@@ -1973,17 +1973,17 @@ fails-if(stylo) == 1274368-1.html 127436
 != 1276161-1a.html 1276161-1b.html
 == 1275411-1.html 1275411-1-ref.html
 == 1288255.html 1288255-ref.html
 fuzzy(8,1900) == 1291528.html 1291528-ref.html
 # Buttons in 2 pages have different position and the rendering result can be
 # different, but they should use the same button style and the background color
 # should be same.  |fuzzy()| here allows the difference in border, but not
 # background color.
-fuzzy(255,1000) skip-if(!cocoaWidget) fails-if(stylo) == 1294102-1.html 1294102-1-ref.html
+fuzzy(255,1000) skip-if(!cocoaWidget) == 1294102-1.html 1294102-1-ref.html
 random-if(Android) fuzzy-if(skiaContent,15,50) == 1295466-1.xhtml 1295466-1-ref.xhtml #bug 982547
 fuzzy-if(Android,27,874) fuzzy-if(gtkWidget,14,29) == 1313772.xhtml 1313772-ref.xhtml # Bug 1128229
 fuzzy(2,320000) fails-if(stylo) == 1315113-1.html 1315113-1-ref.html
 fuzzy(2,20000) fails-if(stylo) == 1315113-2.html 1315113-2-ref.html
 == 1315632-1.html 1315632-1-ref.html
 fuzzy(2,40000) == 1316719-1a.html 1316719-1-ref.html
 fuzzy(2,40000) == 1316719-1b.html 1316719-1-ref.html
 fuzzy(2,40000) == 1316719-1c.html 1316719-1-ref.html
--- a/layout/reftests/css-default/submit-button/reftest.list
+++ b/layout/reftests/css-default/submit-button/reftest.list
@@ -1,11 +1,11 @@
-fails-if(stylo) == default-submit-button-1.html default-submit-button-ref.html
-fails-if(stylo) == default-submit-button-2.html default-submit-button-ref.html
-fails-if(stylo) == default-submit-button-3.html default-submit-button-ref.html
+== default-submit-button-1.html default-submit-button-ref.html
+== default-submit-button-2.html default-submit-button-ref.html
+== default-submit-button-3.html default-submit-button-ref.html
 == default-submit-button-4.html about:blank
-fails-if(stylo) == default-submit-button-5.html default-submit-button-ref.html
-fails-if(stylo) == default-submit-button-6.html default-submit-button-ref.html
-fails-if(stylo) == default-submit-button-7.html default-submit-button-ref.html
+== default-submit-button-5.html default-submit-button-ref.html
+== default-submit-button-6.html default-submit-button-ref.html
+== default-submit-button-7.html default-submit-button-ref.html
 
-fails-if(stylo) == default-multiple-submit-1.html default-multiple-submit-ref.html
-fails-if(stylo) == default-multiple-submit-2.html default-multiple-submit-ref.html
+== default-multiple-submit-1.html default-multiple-submit-ref.html
+== default-multiple-submit-2.html default-multiple-submit-ref.html
 
--- a/layout/reftests/css-display/reftest.list
+++ b/layout/reftests/css-display/reftest.list
@@ -1,15 +1,15 @@
 # Tests for CSS Display spec features.
 # http://dev.w3.org/csswg/css-display
 
-fuzzy-if(Android,8,604) fails-if(stylo) == display-contents-acid.html display-contents-acid-ref.html
-fuzzy-if(Android,8,604) fails-if(stylo) == display-contents-acid-dyn-1.html display-contents-acid-ref.html
-fuzzy-if(Android,8,604) fails-if(stylo) == display-contents-acid-dyn-2.html display-contents-acid-ref.html
-fuzzy-if(Android,8,604) fails-if(stylo) == display-contents-acid-dyn-3.html display-contents-acid-ref.html
+fuzzy-if(Android,8,604) == display-contents-acid.html display-contents-acid-ref.html
+fuzzy-if(Android,8,604) == display-contents-acid-dyn-1.html display-contents-acid-ref.html
+fuzzy-if(Android,8,604) == display-contents-acid-dyn-2.html display-contents-acid-ref.html
+fuzzy-if(Android,8,604) == display-contents-acid-dyn-3.html display-contents-acid-ref.html
 skip-if(stylo) == display-contents-generated-content.html display-contents-generated-content-ref.html
 skip-if(stylo) == display-contents-generated-content-2.html display-contents-generated-content-ref.html
 fails-if(stylo) == display-contents-style-inheritance-1.html display-contents-style-inheritance-1-ref.html
 fails-if(stylo) == display-contents-style-inheritance-1-stylechange.html display-contents-style-inheritance-1-ref.html
 fuzzy-if(winWidget,12,100) skip-if(stylo) == display-contents-style-inheritance-1-dom-mutations.html display-contents-style-inheritance-1-ref.html
 == 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
--- a/layout/reftests/css-invalid/default-style/reftest.list
+++ b/layout/reftests/css-invalid/default-style/reftest.list
@@ -1,5 +1,5 @@
-fails-if(stylo) == input.html input-ref.html
-fails-if(stylo) == button.html button-ref.html
+== input.html input-ref.html
+== button.html button-ref.html
 fails-if(stylo) == textarea.html textarea-ref.html
-fails-if(stylo) == select.html select-ref.html
+== select.html select-ref.html
 == fieldset.html fieldset-ref.html
--- a/layout/reftests/css-invalid/fieldset/reftest.list
+++ b/layout/reftests/css-invalid/fieldset/reftest.list
@@ -20,10 +20,10 @@
 == fieldset-static-valid.html about:blank
 == fieldset-valid-and-barred-remove-barred.html about:blank
 == fieldset-valid-and-barred.html about:blank
 == fieldset-with-invalid-element-add-barred-dynamic.html about:blank
 == fieldset-with-valid-and-invalid.html about:blank
 == fieldset-with-valid-element-add-barred-dynamic.html about:blank
 == fieldset-nested-invalid.html about:blank
 == fieldset-div-invalid.html about:blank
-fails-if(stylo) == fieldset-nested-valid-invalid.html fieldset-nested-valid-invalid-ref.html
-fuzzy-if(skiaContent,1,5) fails-if(stylo) == fieldset-nested-barred.html fieldset-nested-barred-ref.html
+== fieldset-nested-valid-invalid.html fieldset-nested-valid-invalid-ref.html
+fuzzy-if(skiaContent,1,5) == fieldset-nested-barred.html fieldset-nested-barred-ref.html
--- a/layout/reftests/css-invalid/form/reftest.list
+++ b/layout/reftests/css-invalid/form/reftest.list
@@ -1,24 +1,24 @@
-fails-if(stylo) == form-static-valid.html form-valid-ref.html
-fails-if(stylo) == form-dynamic-valid.html form-valid-ref.html
+== form-static-valid.html form-valid-ref.html
+== form-dynamic-valid.html form-valid-ref.html
 == form-remove-invalid-element.html form-valid-ref-2.html
 == form-static-invalid.html form-invalid-ref.html
 == form-dynamic-invalid.html form-invalid-ref.html
 == form-add-control.html form-invalid-ref.html
 == form-dynamic-invalid-not-barred.html form-invalid-ref.html
 == form-remove-invalid-element.html form-invalid-ref.html
-fails-if(stylo) == form-dynamic-invalid-barred.html form-invalid-barred-ref.html
-fails-if(stylo) == form-static-invalid-barred.html form-invalid-barred-ref.html
+== form-dynamic-invalid-barred.html form-invalid-barred-ref.html
+== form-static-invalid-barred.html form-invalid-barred-ref.html
 == form-add-invalid-element.html form-invalid-ref.html
 == form-add-valid-with-invalid-element.html form-invalid-ref.html
-fails-if(stylo) == form-invalid-barred.html form-invalid-barred-ref.html
-fails-if(stylo) == form-add-valid-element.html form-valid-ref-4.html
-fails-if(stylo) == form-add-valid-with-no-element.html form-valid-ref.html
+== form-invalid-barred.html form-invalid-barred-ref.html
+== form-add-valid-element.html form-valid-ref-4.html
+== form-add-valid-with-no-element.html form-valid-ref.html
 == form-add-invalid-with-valid-element.html form-invalid-ref.html
 == form-with-valid-and-invalid.html form-invalid-ref.html
 == form-add-invalid-element-dynamic.html form-invalid-ref.html
 == form-invalid-and-barred.html form-invalid-ref.html
 == form-invalid-and-barred-remove-barred.html form-invalid-ref.html
-fails-if(stylo) == form-valid-and-barred.html form-valid-and-barred-ref.html
-fails-if(stylo) == form-valid-and-barred-remove-barred.html form-valid-ref.html
+== form-valid-and-barred.html form-valid-and-barred-ref.html
+== form-valid-and-barred-remove-barred.html form-valid-ref.html
 == form-with-invalid-element-add-barred-dynamic.html form-invalid-ref.html
-fails-if(stylo) == form-with-valid-element-add-barred-dynamic.html form-valid-and-barred-ref.html
+== form-with-valid-element-add-barred-dynamic.html form-valid-and-barred-ref.html
--- a/layout/reftests/css-optional/reftest.list
+++ b/layout/reftests/css-optional/reftest.list
@@ -1,10 +1,10 @@
 # Checking if these elements support :optional.
 fails-if(stylo) == css-optional-textarea.html css-optional-textarea-ref.html
-fails-if(stylo) == css-optional-input.html css-optional-input-ref.html
-fails-if(stylo) == css-optional-select.html css-optional-select-ref.html
+== css-optional-input.html css-optional-input-ref.html
+== css-optional-select.html css-optional-select-ref.html
 == css-optional-button.html about:blank
 
 # Checking dynamic behavior.
-fails-if(stylo) == css-optional-dyn-1.html css-optional-input-ref.html
+== css-optional-dyn-1.html css-optional-input-ref.html
 == css-optional-dyn-2.html about:blank
 
--- a/layout/reftests/css-placeholder/input/reftest.list
+++ b/layout/reftests/css-placeholder/input/reftest.list
@@ -6,23 +6,23 @@
 # page but that would make the test moot because a failure wouldn't be seen.
 # A real way to fix this would be to be able to style the caret or to implement
 # ::value (bug 648643), depending of the ::value behaviour (it could change the
 # caret colour and the text colour or just the text colour).
 
 fails-if(stylo) == placeholder-simple.html placeholder-simple-ref.html
 # needs-focus == placeholder-focus.html placeholder-focus-ref.html
 needs-focus fails-if(stylo) == placeholder-blur.html placeholder-simple-ref.html
-fails-if(stylo) == placeholder-value.html placeholder-value-ref.html
-fails-if(stylo) == placeholder-empty-string.html placeholder-empty-string-ref.html
+== placeholder-value.html placeholder-value-ref.html
+== placeholder-empty-string.html placeholder-empty-string-ref.html
 fails-if(stylo) == placeholder-add.html placeholder-simple-ref.html
-fails-if(stylo) == placeholder-removal.html input-ref.html
-fails-if(stylo) == placeholder-value-set.html placeholder-value-ref.html
+== placeholder-removal.html input-ref.html
+== placeholder-value-set.html placeholder-value-ref.html
 fails-if(stylo) == placeholder-value-unset.html placeholder-simple-ref.html
 fails-if(stylo) == placeholder-value-reset.html placeholder-simple-ref.html
 fails-if(stylo) == placeholder-type-change-1.html placeholder-simple-ref.html
-fails-if(stylo) == placeholder-type-change-2.html placeholder-button-ref.html
+== placeholder-type-change-2.html placeholder-button-ref.html
 == placeholdershown.html placeholdershown-ref.html
 fails-if(stylo) == css-display.html placeholder-simple-ref.html
 # We can't check except by verifying that the output is different.
 # Same reasons as focus issues explained above.
 fails-if(stylo) != css-opacity.html placeholder-simple-ref.html
 fails-if(stylo) != css-text-align.html placeholder-simple-ref.html
--- a/layout/reftests/css-required/reftest.list
+++ b/layout/reftests/css-required/reftest.list
@@ -1,25 +1,25 @@
 # Checking if these types/elements support :required
 fails-if(stylo) == css-required-textarea.html css-required-textarea-ref.html
 == css-required-radio.html css-required-radio-ref.html
-fails-if(stylo) == css-required-text.html css-required-text-ref.html
+== css-required-text.html css-required-text-ref.html
 == css-required-checkbox.html css-required-checkbox-ref.html
-fails-if(stylo) == css-required-file.html css-required-file-ref.html
-fails-if(stylo) == css-required-password.html css-required-password-ref.html
-fails-if(stylo) == css-required-tel.html css-required-tel-ref.html
-fails-if(stylo) == css-required-search.html css-required-search-ref.html
-fails-if(stylo) == css-required-select.html css-required-select-ref.html
+== css-required-file.html css-required-file-ref.html
+== css-required-password.html css-required-password-ref.html
+== css-required-tel.html css-required-tel-ref.html
+== css-required-search.html css-required-search-ref.html
+== css-required-select.html css-required-select-ref.html
 
 # Checking dynamic behavior with <input type='text'>
-fails-if(stylo) == css-required-dyn-1.html css-required-text-ref.html
+== css-required-dyn-1.html css-required-text-ref.html
 == css-required-dyn-2.html about:blank
-fails-if(stylo) == css-required-dyn-3.html css-required-text-ref.html
+== css-required-dyn-3.html css-required-text-ref.html
 == css-required-dyn-4.html about:blank
-fails-if(stylo) == css-required-dyn-5.html css-required-text-ref.html
+== css-required-dyn-5.html css-required-text-ref.html
 == css-required-dyn-6.html about:blank
 
 # Following input types do not support :required
 == css-required-hidden.html about:blank
 == css-required-button.html about:blank
 == css-required-submit.html about:blank
 == css-required-image.html about:blank
 == css-required-reset.html about:blank
--- a/layout/reftests/css-selectors/reftest.list
+++ b/layout/reftests/css-selectors/reftest.list
@@ -1,6 +1,6 @@
-fails-if(stylo) == state-dependent-in-any.html state-dependent-in-any-ref.html
+== state-dependent-in-any.html state-dependent-in-any-ref.html
 fails-if(stylo) == attr-case-insensitive-1.html attr-case-insensitive-1-ref.html
 == sibling-combinators-on-anon-content-1.xhtml sibling-combinators-on-anon-content-ref.xhtml
 == sibling-combinators-on-anon-content-2.xhtml sibling-combinators-on-anon-content-ref.xhtml
 fails-if(stylo) == nth-child-1.html nth-child-ref.html
 fails-if(stylo) == nth-child-2.html nth-child-ref.html
--- a/layout/reftests/css-submit-invalid/button-submit/reftest.list
+++ b/layout/reftests/css-submit-invalid/button-submit/reftest.list
@@ -1,16 +1,16 @@
-fails-if(stylo) == static-valid.html valid-ref.html
-fails-if(stylo) == dynamic-valid.html valid-ref.html
-fails-if(stylo) == static-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid-barred.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-barred-2.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-not-barred.html invalid-ref.html
-fails-if(stylo) == static-invalid-barred.html invalid-barred-ref.html
-fails-if(stylo) == remove-invalid-element.html valid-ref-2.html
-fails-if(stylo) == add-invalid-element.html invalid-ref-2.html
-fails-if(stylo) == add-submit-control.html invalid-ref.html
-fails-if(stylo) == remove-submit-control.html valid-ref-3.html
-fails-if(stylo) == change-type-submit-control.html invalid-ref.html
-fails-if(stylo) == change-type-not-submit-control.html valid-ref-4.html
+== static-valid.html valid-ref.html
+== dynamic-valid.html valid-ref.html
+== static-invalid.html invalid-ref.html
+== dynamic-invalid.html invalid-ref.html
+== dynamic-invalid-barred.html invalid-barred-ref.html
+== dynamic-invalid-barred-2.html invalid-barred-ref.html
+== dynamic-invalid-not-barred.html invalid-ref.html
+== static-invalid-barred.html invalid-barred-ref.html
+== remove-invalid-element.html valid-ref-2.html
+== add-invalid-element.html invalid-ref-2.html
+== add-submit-control.html invalid-ref.html
+== remove-submit-control.html valid-ref-3.html
+== change-type-submit-control.html invalid-ref.html
+== change-type-not-submit-control.html valid-ref-4.html
 == self-invalid.html about:blank
-fails-if(stylo) == remove-form.html invalid-ref-3.html
+== remove-form.html invalid-ref-3.html
--- a/layout/reftests/css-submit-invalid/default-style/reftest.list
+++ b/layout/reftests/css-submit-invalid/default-style/reftest.list
@@ -1,3 +1,3 @@
-fails-if(stylo) == input-submit.html input-submit-ref.html
+== input-submit.html input-submit-ref.html
 == input-image.html input-image-ref.html
-fails-if(stylo) == button-submit.html button-submit-ref.html
+== button-submit.html button-submit-ref.html
--- a/layout/reftests/css-submit-invalid/input-image/reftest.list
+++ b/layout/reftests/css-submit-invalid/input-image/reftest.list
@@ -1,16 +1,16 @@
-fails-if(stylo) == static-valid.html valid-ref.html
-fails-if(stylo) == dynamic-valid.html valid-ref.html
-fails-if(stylo) == static-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid-barred.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-barred-2.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-not-barred.html invalid-ref.html
-fails-if(stylo) == static-invalid-barred.html invalid-barred-ref.html
+== static-valid.html valid-ref.html
+== dynamic-valid.html valid-ref.html
+== static-invalid.html invalid-ref.html
+== dynamic-invalid.html invalid-ref.html
+== dynamic-invalid-barred.html invalid-barred-ref.html
+== dynamic-invalid-barred-2.html invalid-barred-ref.html
+== dynamic-invalid-not-barred.html invalid-ref.html
+== static-invalid-barred.html invalid-barred-ref.html
 == remove-invalid-element.html valid-ref-2.html
-fails-if(stylo) == add-invalid-element.html invalid-ref-2.html
-fails-if(stylo) == add-submit-control.html invalid-ref.html
-fails-if(stylo) == remove-submit-control.html valid-ref-3.html
-fails-if(stylo) == change-type-submit-control.html invalid-ref.html
-fails-if(stylo) == change-type-not-submit-control.html valid-ref-4.html
+== add-invalid-element.html invalid-ref-2.html
+== add-submit-control.html invalid-ref.html
+== remove-submit-control.html valid-ref-3.html
+== change-type-submit-control.html invalid-ref.html
+== change-type-not-submit-control.html valid-ref-4.html
 == self-invalid.html about:blank
-fails-if(stylo) == remove-form.html invalid-ref-3.html
+== remove-form.html invalid-ref-3.html
--- a/layout/reftests/css-submit-invalid/input-submit/reftest.list
+++ b/layout/reftests/css-submit-invalid/input-submit/reftest.list
@@ -1,16 +1,16 @@
-fails-if(stylo) == static-valid.html valid-ref.html
-fails-if(stylo) == dynamic-valid.html valid-ref.html
-fails-if(stylo) == static-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid.html invalid-ref.html
-fails-if(stylo) == dynamic-invalid-barred.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-barred-2.html invalid-barred-ref.html
-fails-if(stylo) == dynamic-invalid-not-barred.html invalid-ref.html
-fails-if(stylo) == static-invalid-barred.html invalid-barred-ref.html
-fails-if(stylo) == remove-invalid-element.html valid-ref-2.html
-fails-if(stylo) == add-invalid-element.html invalid-ref-2.html
-fails-if(stylo) == add-submit-control.html invalid-ref.html
-fails-if(stylo) == remove-submit-control.html valid-ref-3.html
-fails-if(stylo) == change-type-submit-control.html invalid-ref.html
-fails-if(stylo) == change-type-not-submit-control.html valid-ref-4.html
+== static-valid.html valid-ref.html
+== dynamic-valid.html valid-ref.html
+== static-invalid.html invalid-ref.html
+== dynamic-invalid.html invalid-ref.html
+== dynamic-invalid-barred.html invalid-barred-ref.html
+== dynamic-invalid-barred-2.html invalid-barred-ref.html
+== dynamic-invalid-not-barred.html invalid-ref.html
+== static-invalid-barred.html invalid-barred-ref.html
+== remove-invalid-element.html valid-ref-2.html
+== add-invalid-element.html invalid-ref-2.html
+== add-submit-control.html invalid-ref.html
+== remove-submit-control.html valid-ref-3.html
+== change-type-submit-control.html invalid-ref.html
+== change-type-not-submit-control.html valid-ref-4.html
 == self-invalid.html about:blank
-fails-if(stylo) == remove-form.html invalid-ref-3.html
+== remove-form.html invalid-ref-3.html
--- a/layout/reftests/css-ui-invalid/default-style/reftest.list
+++ b/layout/reftests/css-ui-invalid/default-style/reftest.list
@@ -1,10 +1,10 @@
-fails-if(stylo) == input.html input-ref.html
-fails-if(stylo) == button.html button-ref.html
+== input.html input-ref.html
+== button.html button-ref.html
 fails-if(stylo) == textarea.html textarea-ref.html
-fails-if(stylo) == select.html select-ref.html
+== select.html select-ref.html
 == fieldset.html fieldset-ref.html
 == output.html output-ref.html
-random-if(winWidget) needs-focus fails-if(stylo) == input-focus.html input-focus-ref.html # Intermittent failures, bug 660224
-needs-focus fails-if(stylo) == button-focus.html button-focus-ref.html
+random-if(winWidget) needs-focus == input-focus.html input-focus-ref.html # Intermittent failures, bug 660224
+needs-focus == button-focus.html button-focus-ref.html
 needs-focus fails-if(stylo) == textarea-focus.html textarea-focus-ref.html
-random-if(winWidget) needs-focus fails-if(stylo) == select-focus.html select-focus-ref.html # Intermittent failures, bug 660224
+random-if(winWidget) needs-focus == select-focus.html select-focus-ref.html # Intermittent failures, bug 660224
--- a/layout/reftests/dom/reftest.list
+++ b/layout/reftests/dom/reftest.list
@@ -41,15 +41,15 @@
 == multipleinsertionpoints-insertsingle-1.xhtml multipleinsertionpoints-ref.xhtml
 == multipleinsertionpoints-insertsingle-2.xhtml multipleinsertionpoints-ref.xhtml
 # insert several elements
 == multipleinsertionpoints-insertmultiple.xhtml multipleinsertionpoints-ref.xhtml
 
 # test appending some nodes whose frame construction should be done lazily
 # followed by appending a node that might not be done lazily
 == multipleappendwithxul.xhtml multipleappendwithxul-ref.xhtml
-fails-if(stylo) == multipleappendwithinput.xhtml multipleappendwithinput-ref.xhtml
+== multipleappendwithinput.xhtml multipleappendwithinput-ref.xhtml
 == multipleappendwitheditable.xhtml multipleappendwitheditable-ref.xhtml
 
 fails-if(stylo) == xbl-children-1.xhtml xbl-children-1-ref.xhtml
 == xbl-children-2.xhtml about:blank
 fails-if(stylo) == xbl-children-3.xhtml xbl-children-3-ref.html
 == xbl-children-4.xhtml about:blank
--- a/layout/reftests/flexbox/reftest.list
+++ b/layout/reftests/flexbox/reftest.list
@@ -12,17 +12,17 @@
 # SUBDIRECTORY: Reftests for paginated flex containers
 include pagination/reftest.list
 
 # Tests for cross-axis alignment (align-self / align-items properties)
 pref(layout.css.moz-appearance.enabled,true) fails fails-if(stylo) == flexbox-align-self-baseline-horiz-2.xhtml  flexbox-align-self-baseline-horiz-2-ref.xhtml # bug 793456, and possibly others
 # This one fails on windows R (but not Ru, strangely) and GTK.
 # On Windows R and GTK, the single-line <label> flex item has a different
 # background size in test vs. ref
-fuzzy-if(cocoaWidget,1,2) random-if(winWidget||gtkWidget) skip-if(Android) fails-if(stylo) == flexbox-align-self-baseline-horiz-3.xhtml  flexbox-align-self-baseline-horiz-3-ref.xhtml # XXXdholbert investigate the random-if. The skip-if(Android) is because checkbox/radio appearance:none doesn't work as expected.
+fuzzy-if(cocoaWidget,1,2) random-if(winWidget||gtkWidget) skip-if(Android) == flexbox-align-self-baseline-horiz-3.xhtml  flexbox-align-self-baseline-horiz-3-ref.xhtml # XXXdholbert investigate the random-if. The skip-if(Android) is because checkbox/radio appearance:none doesn't work as expected.
 == flexbox-align-self-baseline-horiz-4.xhtml flexbox-align-self-baseline-horiz-4-ref.xhtml
 
 # Tests for box-sizing on flex containers and flex items.
 == flexbox-box-sizing-on-container-horiz-1.html flexbox-box-sizing-on-container-horiz-1-ref.html
 == flexbox-box-sizing-on-container-vert-1.html flexbox-box-sizing-on-container-vert-1-ref.html
 == flexbox-box-sizing-on-items-horiz-1a.html flexbox-box-sizing-on-items-horiz-1-ref.html
 == flexbox-box-sizing-on-items-horiz-1b.html flexbox-box-sizing-on-items-horiz-1-ref.html
 == flexbox-box-sizing-on-items-vert-1a.html flexbox-box-sizing-on-items-vert-1-ref.html
@@ -104,15 +104,15 @@ fails-if(stylo) == flexbox-intrinsic-siz
 
 # Tests for flexbox in an iframe that gets resized.
 fuzzy-if(skiaContent,1,5) == flexbox-resizeviewport-1.xhtml flexbox-resizeviewport-1-ref.xhtml
 
 # Tests for flexbox styling on things that don't support it
 == flexbox-styling-on-svg-1.svg flexbox-styling-on-svg-1-ref.svg
 
 # Tests with widgets as flex items
-fuzzy-if(gtkWidget,1,66) fails-if(stylo) == flexbox-widget-flex-items-1.html flexbox-widget-flex-items-1-ref.html
-fuzzy-if(gtkWidget,1,74) fails-if(stylo) == flexbox-widget-flex-items-2.html flexbox-widget-flex-items-2-ref.html
+fuzzy-if(gtkWidget,1,66) == flexbox-widget-flex-items-1.html flexbox-widget-flex-items-1-ref.html
+fuzzy-if(gtkWidget,1,74) == flexbox-widget-flex-items-2.html flexbox-widget-flex-items-2-ref.html
 skip-if(gtkWidget) == flexbox-widget-flex-items-3.html flexbox-widget-flex-items-3-ref.html # bug 1260965
-fuzzy-if(gtkWidget,1,31) fails-if(stylo) == flexbox-widget-flex-items-4.html flexbox-widget-flex-items-4-ref.html
+fuzzy-if(gtkWidget,1,31) == flexbox-widget-flex-items-4.html flexbox-widget-flex-items-4-ref.html
 
 # Tests for table flex items
 == flexbox-table-flex-items-1.html flexbox-table-flex-items-1-ref.html
--- a/layout/reftests/font-inflation/reftest.list
+++ b/layout/reftests/font-inflation/reftest.list
@@ -21,46 +21,46 @@ test-pref(font.size.inflation.emPerLine,
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-3.html height-constraint-percent-3-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-4.html height-constraint-percent-4-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-5.html height-constraint-percent-5-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-6.html height-constraint-percent-6-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-7.html height-constraint-percent-7-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == height-constraint-percent-8.html height-constraint-percent-8-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == decoration-1.html decoration-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == bullet-1.html bullet-1-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-1-height.html input-text-1-height-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-1-noheight.html input-text-1-noheight-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-2-height.html input-text-2-height-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-2-noheight.html input-text-2-noheight-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-3-height.html input-text-3-height-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == input-text-3-noheight.html input-text-3-noheight-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-1-height.html input-text-1-height-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-1-noheight.html input-text-1-noheight-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-2-height.html input-text-2-height-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-2-noheight.html input-text-2-noheight-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-3-height.html input-text-3-height-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == input-text-3-noheight.html input-text-3-noheight-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == textarea-1.html textarea-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == textarea-2.html textarea-2-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == textarea-3.html textarea-3-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == css-transform-1.html css-transform-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == css-transform-2.html css-transform-2-ref.html
 fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1764) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == container-with-clamping.html container-with-clamping-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) skip-if(stylo) load video-1.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) HTTP(..) == intrinsic-min-1.html intrinsic-min-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) HTTP(..) == intrinsic-max-1.html intrinsic-max-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) HTTP(..) == intrinsic-fit-1a.html intrinsic-fit-1a-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) HTTP(..) == intrinsic-fit-1b.html intrinsic-fit-1b-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) HTTP(..) == intrinsic-fit-1c.html intrinsic-fit-1c-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) HTTP(..) == intrinsic-fit-2a.html intrinsic-fit-1a-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) HTTP(..) == intrinsic-fit-2b.html intrinsic-fit-1b-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) HTTP(..) == intrinsic-fit-2c.html intrinsic-fit-1c-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == select-listbox-1.html select-listbox-1-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) != select-listbox-1.html select-listbox-1.html
-fuzzy-if(skiaContent,4,2) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == select-combobox-1.html select-combobox-1-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) != select-combobox-1.html select-combobox-1.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == select-listbox-2.html select-listbox-2-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) != select-listbox-2.html select-listbox-2.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == select-combobox-2.html select-combobox-2-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) != select-combobox-2.html select-combobox-2.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == select-combobox-3.html select-combobox-3-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == select-listbox-1.html select-listbox-1-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != select-listbox-1.html select-listbox-1.html
+fuzzy-if(skiaContent,4,2) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == select-combobox-1.html select-combobox-1-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != select-combobox-1.html select-combobox-1.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == select-listbox-2.html select-listbox-2-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != select-listbox-2.html select-listbox-2.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == select-combobox-2.html select-combobox-2-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != select-combobox-2.html select-combobox-2.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == select-combobox-3.html select-combobox-3-ref.html
 asserts-if(gtkWidget,0-4) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != input-checkbox.html input-checkbox.html
 asserts-if(gtkWidget,0-4) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != input-radio.html input-radio.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == disable-fontinfl-on-mobile.html disable-fontinfl-on-mobile-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == disable-fontinfl-on-mobile-2.html disable-fontinfl-on-mobile-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == disable-fontinfl-on-mobile-3.html disable-fontinfl-on-mobile-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) != disable-fontinfl-on-mobile-5.html disable-fontinfl-on-mobile-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == preformatted-text.html preformatted-text-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == fixed-height-body.html fixed-height-body-ref.html
@@ -82,30 +82,30 @@ test-pref(font.size.inflation.emPerLine,
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-scope-cell-1.html threshold-scope-cell-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-scope-cell-2.html threshold-scope-cell-2-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-scope-cell-3.html threshold-scope-cell-3-ref.html
 
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-textarea-contents-under-1.html threshold-textarea-contents-under-1.html
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-textarea-contents-under-2.html threshold-textarea-contents-under-2.html
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-textarea-contents-at-1.html threshold-textarea-contents-at-1-ref.html
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-textarea-contents-at-2.html threshold-textarea-contents-at-2-ref.html
-fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-input-text-contents-under-1.html threshold-input-text-contents-under-1.html
+fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-input-text-contents-under-1.html threshold-input-text-contents-under-1.html
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-input-text-contents-under-2.html threshold-input-text-contents-under-2.html
-fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-input-text-contents-at-1.html threshold-input-text-contents-at-1-ref.html
+fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-input-text-contents-at-1.html threshold-input-text-contents-at-1-ref.html
 fuzzy-if(gtkWidget,1,10) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-input-text-contents-at-2.html threshold-input-text-contents-at-2-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-listbox-contents-under-1.html threshold-select-listbox-contents-under-1.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-listbox-contents-under-2.html threshold-select-listbox-contents-under-2.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-listbox-contents-at-1.html threshold-select-listbox-contents-at-1-ref.html
-test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-listbox-contents-at-2.html threshold-select-listbox-contents-at-2-ref.html
-fuzzy-if(gtkWidget,1,8) fuzzy-if(Android,4,2) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-combobox-contents-under-1.html threshold-select-combobox-contents-under-1.html
-fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-combobox-contents-under-2.html threshold-select-combobox-contents-under-2.html
-fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-combobox-contents-at-1.html threshold-select-combobox-contents-at-1-ref.html
-fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) fails-if(stylo) == threshold-select-combobox-contents-at-2.html threshold-select-combobox-contents-at-2-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-listbox-contents-under-1.html threshold-select-listbox-contents-under-1.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-listbox-contents-under-2.html threshold-select-listbox-contents-under-2.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-listbox-contents-at-1.html threshold-select-listbox-contents-at-1-ref.html
+test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-listbox-contents-at-2.html threshold-select-listbox-contents-at-2-ref.html
+fuzzy-if(gtkWidget,1,8) fuzzy-if(Android,4,2) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-combobox-contents-under-1.html threshold-select-combobox-contents-under-1.html
+fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-combobox-contents-under-2.html threshold-select-combobox-contents-under-2.html
+fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-combobox-contents-at-1.html threshold-select-combobox-contents-at-1-ref.html
+fuzzy-if(gtkWidget,1,8) test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,100) == threshold-select-combobox-contents-at-2.html threshold-select-combobox-contents-at-2-ref.html
 
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == relevant-width-1.html relevant-width-1-ref.html
 test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.forceEnabled,true) test-pref(font.size.inflation.lineThreshold,0) == relevant-width-overflow-1.html relevant-width-overflow-1-ref.html
 
-pref(font.size.inflation.emPerLine,15) pref(font.size.inflation.forceEnabled,true) pref(font.size.inflation.lineThreshold,0) fails-if(stylo) == min-width-passes-1.html min-width-passes-1-ref.html
+pref(font.size.inflation.emPerLine,15) pref(font.size.inflation.forceEnabled,true) pref(font.size.inflation.lineThreshold,0) == min-width-passes-1.html min-width-passes-1-ref.html
 
 pref(font.size.inflation.emPerLine,15) pref(font.size.inflation.forceEnabled,true) == xul-reflow-1.html xul-reflow-1-ref.html
 
 # reset the default preferences
 default-preferences
--- a/layout/reftests/forms/button/reftest.list
+++ b/layout/reftests/forms/button/reftest.list
@@ -1,43 +1,43 @@
-fails-if(stylo) == first-letter-1.html first-letter-1-ref.html
-fails-if(stylo) != first-letter-1.html first-letter-1-noref.html
+== first-letter-1.html first-letter-1-ref.html
+!= first-letter-1.html first-letter-1-noref.html
 
 == max-height.html max-height-ref.html
 == min-height.html min-height-ref.html
 
 # Android is off ever-so-slightly on the points where the text
 # runs into the border on this text, so a little fuzz is needed.
 fuzzy-if(Android,1,16) == overflow-areas-1.html overflow-areas-1-ref.html
 
 # The buttons in these tests have some fancy shading applied to their corners
 # on Android, despite their "-moz-appearance: none; appearance: none; background: gray", so they
 # don't quite match the reference case's normal <div>. That's why they're fuzzy.
 fuzzy-if(Android,125,20) == percent-height-child.html percent-height-child-ref.html
 fuzzy-if(Android,125,20) == percent-width-child.html  percent-width-child-ref.html
 
 == vertical-centering.html vertical-centering-ref.html
 
-fails-if(stylo) != line-height-button-0.5.html line-height-button-1.0.html
-fails-if(stylo) != line-height-button-1.5.html line-height-button-1.0.html
-fails-if(stylo) != line-height-input-0.5.html line-height-input-1.0.html
-fails-if(stylo) != line-height-input-1.5.html line-height-input-1.0.html
+!= line-height-button-0.5.html line-height-button-1.0.html
+!= line-height-button-1.5.html line-height-button-1.0.html
+!= line-height-input-0.5.html line-height-input-1.0.html
+!= line-height-input-1.5.html line-height-input-1.0.html
 
 # Looks like Android changes the text color, but to something slightly
 # different from ColorGray
 fails-if(Android) == disabled-1.html disabled-1-ref.html
-fails-if(stylo) == disabled-2.html disabled-2-ref.html
+== disabled-2.html disabled-2-ref.html
 
-fails-if(stylo) != disabled-3.html disabled-3-notref.html
-fails-if(stylo) != disabled-4.html disabled-4-notref.html
-fails-if(stylo) != disabled-5.html disabled-5-notref.html
-fails-if(stylo) != disabled-6.html disabled-6-notref.html
+!= disabled-3.html disabled-3-notref.html
+!= disabled-4.html disabled-4-notref.html
+!= disabled-5.html disabled-5-notref.html
+!= disabled-6.html disabled-6-notref.html
 
 == width-auto-size-em-ltr.html width-auto-size-em-ltr-ref.html
 == width-auto-size-ltr.html width-auto-size-ltr-ref.html
 == width-exact-fit-ltr.html width-auto-size-ltr-ref.html
 == width-auto-size-em-rtl.html width-auto-size-em-rtl-ref.html
 == width-auto-size-rtl.html width-auto-size-rtl-ref.html
 == width-exact-fit-rtl.html width-auto-size-rtl-ref.html
 fails-if(stylo) == display-grid-flex-columnset.html display-grid-flex-columnset-ref.html
 == 1317351.html 1317351-ref.html
 
-fails-if(stylo) == dynamic-text-indent.html dynamic-text-indent-ref.html
+== dynamic-text-indent.html dynamic-text-indent-ref.html
--- a/layout/reftests/forms/input/email/reftest.list
+++ b/layout/reftests/forms/input/email/reftest.list
@@ -1,3 +1,3 @@
-fails-if(stylo) == 1.html ref.html
-fails-if(stylo) == 2.html ref.html
+== 1.html ref.html
+== 2.html ref.html
 != 3.html ref.html
--- a/layout/reftests/forms/input/file/reftest.list
+++ b/layout/reftests/forms/input/file/reftest.list
@@ -1,7 +1,7 @@
-fuzzy-if(webrender,1,34) fails-if(Android) fails-if(stylo) == simple.html simple-ref.xul
-fuzzy-if(webrender,1,17) fails-if(Android) fails-if(stylo) == rtl.html rtl-ref.xul
-fuzzy-if(webrender,1,34) fails-if(Android) fails-if(stylo) == size.html simple-ref.xul
-fuzzy-if(webrender,1,10) fails-if(Android) fails-if(stylo) == background.html background-ref.xul
+fuzzy-if(webrender,1,34) fails-if(Android) == simple.html simple-ref.xul
+fuzzy-if(webrender,1,17) fails-if(Android) == rtl.html rtl-ref.xul
+fuzzy-if(webrender,1,34) fails-if(Android) == size.html simple-ref.xul
+fuzzy-if(webrender,1,10) fails-if(Android) == background.html background-ref.xul
 fails-if(Android) fails-if(stylo) == style.html style-ref.xul
-fails-if(stylo) != width-clip.html width-clip-ref.html
-fails-if(Android) fails-if(stylo) == color-inherit.html color-inherit-ref.html
+!= width-clip.html width-clip-ref.html
+fails-if(Android) == color-inherit.html color-inherit-ref.html
--- a/layout/reftests/forms/input/number/reftest.list
+++ b/layout/reftests/forms/input/number/reftest.list
@@ -1,25 +1,25 @@
 default-preferences pref(dom.forms.number,true)
 
 # sanity checks:
 # not valid on Android where type=number looks like type=text
-skip-if(Android) fails-if(stylo) != not-other-type-unthemed-1.html not-other-type-unthemed-1a-notref.html
-skip-if(Android) fails-if(stylo) != not-other-type-unthemed-1.html not-other-type-unthemed-1b-notref.html
+skip-if(Android) != not-other-type-unthemed-1.html not-other-type-unthemed-1a-notref.html
+skip-if(Android) != not-other-type-unthemed-1.html not-other-type-unthemed-1b-notref.html
 # only valid on Android where type=number looks the same as type=text
 skip-if(!Android) == number-same-as-text-unthemed.html number-same-as-text-unthemed-ref.html
 
 # should look the same as type=text, except for the spin box
 == number-similar-to-text-unthemed.html number-similar-to-text-unthemed-ref.html
 == number-similar-to-text-unthemed-rtl.html number-similar-to-text-unthemed-rtl-ref.html
 == number-similar-to-text-unthemed-vertical-lr.html number-similar-to-text-unthemed-vertical-lr-ref.html
 == number-similar-to-text-unthemed-vertical-rl.html number-similar-to-text-unthemed-vertical-rl-ref.html
 
 # dynamic type changes:
-fuzzy-if(cocoaWidget,63,4) fuzzy-if(skiaContent,2,5) fails-if(stylo) == to-number-from-other-type-unthemed-1.html to-number-from-other-type-unthemed-1-ref.html
+fuzzy-if(cocoaWidget,63,4) fuzzy-if(skiaContent,2,5) == to-number-from-other-type-unthemed-1.html to-number-from-other-type-unthemed-1-ref.html
 fuzzy-if(skiaContent,2,5) == from-number-to-other-type-unthemed-1.html from-number-to-other-type-unthemed-1-ref.html
 
 # dynamic value changes:
 fuzzy-if(skiaContent,2,13) == show-value.html show-value-ref.html
 
 # disabled
 == number-disabled.html number-disabled-ref.html
 
@@ -28,30 +28,30 @@ fuzzy-if(skiaContent,2,13) == show-value
 
 # min-height/max-height tests:
 pref(layout.css.moz-appearance.enabled,true) skip-if(Android) == number-min-height-1.html number-min-height-1-ref.html
 pref(layout.css.moz-appearance.enabled,true) skip-if(Android) == number-min-height-2.html number-min-height-2-ref.html
 pref(layout.css.moz-appearance.enabled,true) skip-if(Android) == number-max-height-1.html number-max-height-1-ref.html
 pref(layout.css.moz-appearance.enabled,true) skip-if(Android) == number-max-height-2.html number-max-height-2-ref.html
 
 # number of significant fractional digits:
-fails-if(stylo) == number-significant-fractional-digits.html number-significant-fractional-digits-ref.html
+== number-significant-fractional-digits.html number-significant-fractional-digits-ref.html
 
 # focus
 fuzzy-if(skiaContent,2,5) needs-focus skip-if(stylo) == focus-handling.html focus-handling-ref.html
 
 # select
 fuzzy-if(skiaContent,1,1) skip-if(stylo) == number-selected.html number-selected-ref.html
 
 # pseudo-elements not usable from content:
 fails-if(stylo) == number-pseudo-elements.html number-pseudo-elements-ref.html
 
 fails-if(stylo) == number-placeholder.html number-placeholder-ref.html
 
 # check that if the anonymous text control is reframed, we reframe the whole
 # number control (the fuzzy is for the top-right and bottom-left of the border
 # bevel which gets slightly different antialiasing after invalidation):
-fuzzy(128,4) fails-if(stylo) == number-reframe-anon-text-field.html number-reframe-anon-text-field-ref.html
+fuzzy(128,4) == number-reframe-anon-text-field.html number-reframe-anon-text-field-ref.html
 
 == pseudo-classes.html about:blank
 
 # Style inheritance:
 pref(layout.css.moz-appearance.enabled,true) fails-if(stylo) == number-style-inheritance.html number-style-inheritance-ref.html
--- a/layout/reftests/forms/input/range/reftest.list
+++ b/layout/reftests/forms/input/range/reftest.list
@@ -9,41 +9,41 @@ fuzzy-if(skiaContent,1,40) fails-if(styl
 skip-if(stylo) == from-range-to-other-type-unthemed-1.html from-range-to-other-type-unthemed-1-ref.html
 
 # for different values:
 != different-fraction-of-range-unthemed-1.html different-fraction-of-range-unthemed-1-notref.html
 == same-fraction-of-range-unthemed-1.html same-fraction-of-range-unthemed-1-ref.html
 
 # dynamic value changes:
 fuzzy-if(skiaContent,1,40) == value-prop-unthemed.html 75pct-unthemed-common-ref.html
-fails-if(stylo) == value-prop.html 75pct-common-ref.html
+== value-prop.html 75pct-common-ref.html
 fuzzy-if(skiaContent,1,40) == valueAsNumber-prop-unthemed.html 75pct-unthemed-common-ref.html
-fails-if(stylo) == valueAsNumber-prop.html 75pct-common-ref.html
+== valueAsNumber-prop.html 75pct-common-ref.html
 fuzzy-if(skiaContent,1,40) == stepDown-unthemed.html 75pct-unthemed-common-ref.html
-fails-if(stylo) == stepDown.html 75pct-common-ref.html
+== stepDown.html 75pct-common-ref.html
 fuzzy-if(skiaContent,1,40) == stepUp-unthemed.html 75pct-unthemed-common-ref.html
-fails-if(stylo) == stepUp.html 75pct-common-ref.html
-fails-if(stylo) == max-prop.html 100pct-common-ref.html
-fails-if(stylo) == reset-value.html reset-value-ref.html
+== stepUp.html 75pct-common-ref.html
+== max-prop.html 100pct-common-ref.html
+== reset-value.html reset-value-ref.html
 
 # 'direction' property:
 == direction-unthemed-1.html direction-unthemed-1-ref.html
 
 # ::-moz-range-progress pseudo-element:
 fails-if(Android) == moz-range-progress-1.html moz-range-progress-1-ref.html
 == moz-range-progress-2.html moz-range-progress-2-ref.html
 == moz-range-progress-3.html moz-range-progress-3-ref.html
 
 # Tests for block and inline orientation in combination with writing-mode
-fails-if(stylo) != range-orient-horizontal.html range-orient-vertical.html
-fails-if(stylo) != range-orient-horizontal.html range-orient-horizontal-rtl.html
-fails-if(stylo) == range-orient-block.html range-orient-vertical.html
-fails-if(stylo) == range-orient-inline.html range-orient-horizontal.html
-fails-if(stylo) == range-vlr.html range-orient-vertical.html
-fails-if(stylo) == range-vlr-orient-block.html range-orient-horizontal.html
-fails-if(stylo) == range-vlr-orient-inline.html range-orient-vertical.html
-fails-if(stylo) == range-vlr-orient-horizontal.html range-orient-horizontal.html
-fails-if(stylo) == range-vlr-orient-vertical.html range-orient-vertical.html
-fails-if(stylo) == range-vrl.html range-orient-vertical-rtl.html
-fails-if(stylo) == range-vrl-orient-block.html range-orient-horizontal-rtl.html
-fails-if(stylo) == range-vrl-orient-inline.html range-orient-vertical-rtl.html
-fails-if(stylo) == range-vrl-orient-horizontal.html range-orient-horizontal-rtl.html
-fails-if(stylo) == range-vrl-orient-vertical.html range-orient-vertical-rtl.html
+!= range-orient-horizontal.html range-orient-vertical.html
+!= range-orient-horizontal.html range-orient-horizontal-rtl.html
+== range-orient-block.html range-orient-vertical.html
+== range-orient-inline.html range-orient-horizontal.html
+== range-vlr.html range-orient-vertical.html
+== range-vlr-orient-block.html range-orient-horizontal.html
+== range-vlr-orient-inline.html range-orient-vertical.html
+== range-vlr-orient-horizontal.html range-orient-horizontal.html
+== range-vlr-orient-vertical.html range-orient-vertical.html
+== range-vrl.html range-orient-vertical-rtl.html
+== range-vrl-orient-block.html range-orient-horizontal-rtl.html
+== range-vrl-orient-inline.html range-orient-vertical-rtl.html
+== range-vrl-orient-horizontal.html range-orient-horizontal-rtl.html
+== range-vrl-orient-vertical.html range-orient-vertical-rtl.html
--- a/layout/reftests/forms/input/search/reftest.list
+++ b/layout/reftests/forms/input/search/reftest.list
@@ -1,3 +1,3 @@
-fails-if(stylo) == 1.html ref.html
-fails-if(stylo) == 2.html ref.html
+== 1.html ref.html
+== 2.html ref.html
 != 3.html ref.html
--- a/layout/reftests/forms/input/tel/reftest.list
+++ b/layout/reftests/forms/input/tel/reftest.list
@@ -1,3 +1,3 @@
-fails-if(stylo) == 1.html ref.html
-fails-if(stylo) == 2.html ref.html
+== 1.html ref.html
+== 2.html ref.html
 != 3.html 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,140,111) fails-if(stylo) == size-1.html size-1-ref.html
+fuzzy-if(asyncPan&&!layersGPUAccelerated,140,111) == size-1.html size-1-ref.html
 == size-2.html size-2-ref.html
 fails-if(stylo) 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
-fuzzy-if(skiaContent,1,500) needs-focus fails-if(stylo) == select.html select-ref.html
+fuzzy-if(skiaContent,1,500) needs-focus == select.html select-ref.html
 == intrinsic-size.html intrinsic-size-ref.html
 fails-if(stylo) == line-height-0.5.html line-height-1.0.html
-fails-if(stylo) != line-height-1.5.html line-height-1.0.html
+!= line-height-1.5.html line-height-1.0.html
--- a/layout/reftests/forms/input/url/reftest.list
+++ b/layout/reftests/forms/input/url/reftest.list
@@ -1,3 +1,3 @@
-fails-if(stylo) == 1.html ref.html
-fails-if(stylo) == 2.html ref.html
+== 1.html ref.html
+== 2.html ref.html
 != 3.html ref.html
--- a/layout/reftests/forms/output/reftest.list
+++ b/layout/reftests/forms/output/reftest.list
@@ -1,7 +1,7 @@
 == output-1.html about:blank
 == output-2.html output-ref.html
 == output-3.html output-ref-2.html
-fails-if(stylo) == output-4.html output-ref-3.html
+== output-4.html output-ref-3.html
 == output-5.html output-ref.html
 == output-6.html output-ref.html
 == output-7.html output-ref.html
--- a/layout/reftests/forms/placeholder/reftest.list
+++ b/layout/reftests/forms/placeholder/reftest.list
@@ -3,33 +3,33 @@
 # text colour without changing the caret which means that the tested page has
 # a black caret with a grey text and the reference has a grey caret with grey
 # text. The only thing that is doable is to make the caret grey in the tested
 # page but that would make the test moot because a failure wouldn't be seen.
 # A real way to fix this would be to be able to style the caret or to implement
 # ::value (bug 648643), depending of the ::value behaviour (it could change the
 # caret colour and the text colour or just the text colour).
 
-fails-if(stylo) == placeholder-1-text.html placeholder-visible-ref.html
-fails-if(stylo) == placeholder-1-password.html placeholder-visible-ref.html
+== placeholder-1-text.html placeholder-visible-ref.html
+== placeholder-1-password.html placeholder-visible-ref.html
 fails-if(stylo) == placeholder-1-textarea.html placeholder-visible-textarea-ref.html
 fails-if(stylo) == placeholder-2.html placeholder-visible-ref.html
 fails-if(stylo) == placeholder-2-textarea.html placeholder-visible-textarea-ref.html
-fails-if(stylo) == placeholder-3.html placeholder-overridden-ref.html
-fails-if(stylo) == placeholder-4.html placeholder-overridden-ref.html
-fails-if(stylo) == placeholder-5.html placeholder-visible-ref.html
+== placeholder-3.html placeholder-overridden-ref.html
+== placeholder-4.html placeholder-overridden-ref.html
+== placeholder-5.html placeholder-visible-ref.html
 fuzzy-if(winWidget,160,10) fuzzy-if(Android,1,1) fuzzy-if(asyncPan&&!layersGPUAccelerated,146,317) fuzzy-if(OSX==1010&&browserIsRemote,1,8) fails-if(stylo) == placeholder-6.html placeholder-overflow-ref.html
 skip-if(Android&&asyncPan) fails-if(stylo) == placeholder-6-textarea.html placeholder-overflow-textarea-ref.html
 # needs-focus == placeholder-7.html placeholder-focus-ref.html
 # needs-focus == placeholder-8.html placeholder-focus-ref.html
 # needs-focus == placeholder-9.html placeholder-focus-ref.html
 needs-focus fails-if(stylo) == placeholder-10.html placeholder-visible-ref.html
-fails-if(stylo) == placeholder-11.html placeholder-visible-ref.html
-fails-if(stylo) == placeholder-12.html placeholder-visible-ref.html
+== placeholder-11.html placeholder-visible-ref.html
+== placeholder-12.html placeholder-visible-ref.html
 fails-if(stylo) == placeholder-13.html placeholder-visible-ref.html
 fails-if(stylo) == placeholder-14.html placeholder-visible-ref.html
-fails-if(stylo) == placeholder-18.html placeholder-overridden-ref.html
+== placeholder-18.html placeholder-overridden-ref.html
 random-if(winWidget) == placeholder-19.xul  placeholder-overridden-ref.xul
 # needs-focus == placeholder-20.html placeholder-focus-ref.html
 needs-focus fails-if(stylo) == placeholder-21.html placeholder-blank-ref.html
 needs-focus fails-if(stylo) == placeholder-22.html placeholder-blank-ref.html
 fails-if(stylo) == placeholder-rtl.html placeholder-rtl-ref.html
-pref(dom.placeholder.show_on_focus,false) needs-focus fails-if(stylo) == placeholder-focus-pref.html placeholder-blank-ref.html
+pref(dom.placeholder.show_on_focus,false) needs-focus == placeholder-focus-pref.html placeholder-blank-ref.html
--- a/layout/reftests/forms/progress/reftest.list
+++ b/layout/reftests/forms/progress/reftest.list
@@ -24,22 +24,22 @@ random-if(stylo) == bar-pseudo-element.h
 # == transformations.html transformations-ref.html
 
 # Tests for bugs:
 == block-invalidate.html block-invalidate-ref.html
 == in-cells.html in-cells-ref.html
 == max-height.html max-height-ref.html
 
 # Tests for block and inline orientation in combination with writing-mode
-fails-if(stylo) != progress-orient-horizontal.html progress-orient-vertical.html
-fails-if(!cocoaWidget||OSX==1010) fails-if(stylo) != progress-orient-vertical.html progress-orient-vertical-rtl.html # only OS X currently has direction-dependent rendering here
-fails-if(stylo) == progress-orient-block.html progress-orient-vertical.html
-fails-if(stylo) == progress-orient-inline.html progress-orient-horizontal.html
-fails-if(stylo) == progress-vlr.html progress-orient-vertical.html
-fails-if(stylo) == progress-vlr-orient-block.html progress-orient-horizontal.html
-fails-if(stylo) == progress-vlr-orient-inline.html progress-orient-vertical.html
-fails-if(stylo) == progress-vlr-orient-horizontal.html progress-orient-horizontal.html
-fails-if(stylo) == progress-vlr-orient-vertical.html progress-orient-vertical.html
-fails-if(stylo) == progress-vrl.html progress-orient-vertical-rtl.html
-fails-if(stylo) == progress-vrl-orient-block.html progress-orient-horizontal-rtl.html
-fails-if(stylo) == progress-vrl-orient-inline.html progress-orient-vertical-rtl.html
-fails-if(stylo) == progress-vrl-orient-horizontal.html progress-orient-horizontal-rtl.html
-fails-if(stylo) == progress-vrl-orient-vertical.html progress-orient-vertical-rtl.html
+!= progress-orient-horizontal.html progress-orient-vertical.html
+fails-if(!cocoaWidget||OSX==1010) != progress-orient-vertical.html progress-orient-vertical-rtl.html # only OS X currently has direction-dependent rendering here
+== progress-orient-block.html progress-orient-vertical.html
+== progress-orient-inline.html progress-orient-horizontal.html
+== progress-vlr.html progress-orient-vertical.html
+== progress-vlr-orient-block.html progress-orient-horizontal.html
+== progress-vlr-orient-inline.html progress-orient-vertical.html
+== progress-vlr-orient-horizontal.html progress-orient-horizontal.html
+== progress-vlr-orient-vertical.html progress-orient-vertical.html
+== progress-vrl.html progress-orient-vertical-rtl.html
+== progress-vrl-orient-block.html progress-orient-horizontal-rtl.html
+== progress-vrl-orient-inline.html progress-orient-vertical-rtl.html
+== progress-vrl-orient-horizontal.html progress-orient-horizontal-rtl.html
+== progress-vrl-orient-vertical.html progress-orient-vertical-rtl.html
--- a/layout/reftests/forms/reftest.list
+++ b/layout/reftests/forms/reftest.list
@@ -1,11 +1,11 @@
 fuzzy-if(skiaContent,1,10) fails-if(stylo) HTTP(..) == text-control-baseline-1.html text-control-baseline-1-ref.html
-fuzzy-if(cocoaWidget,16,64) fuzzy-if(Android,52,64) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),104,224) fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),88,400) fails-if(stylo) == display-block-baselines-1.html display-block-baselines-1-ref.html # anti-aliasing issues
-fails-if(stylo) == display-block-baselines-2.html display-block-baselines-2-ref.html
+fuzzy-if(cocoaWidget,16,64) fuzzy-if(Android,52,64) fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),104,224) fuzzy-if(/^Windows\x20NT\x206\.2/.test(http.oscpu),88,400) == display-block-baselines-1.html display-block-baselines-1-ref.html # anti-aliasing issues
+== display-block-baselines-2.html display-block-baselines-2-ref.html
 fails-if(stylo) == display-block-baselines-3.html display-block-baselines-3-ref.html
 fails-if(stylo) == display-block-baselines-4.html display-block-baselines-4-ref.html
 fuzzy-if(Android,4,8) fuzzy-if(skiaContent,7,2) fails-if(stylo) == display-block-baselines-5.html display-block-baselines-5-ref.html
 
 # button element
 include button/reftest.list
 
 # legend element
--- a/layout/reftests/forms/select/reftest.list
+++ b/layout/reftests/forms/select/reftest.list
@@ -1,13 +1,13 @@
-fuzzy-if(Android,4,11) fails-if(stylo) == out-of-bounds-selectedindex.html out-of-bounds-selectedindex-ref.html # test for bug 471741
-fails-if(stylo) == multiple.html multiple-ref.html
-fails-if(stylo) == boguskids.html boguskids-ref.html
-fails-if(stylo) == dynamic-boguskids.html boguskids-ref.html
-fails-if(stylo) == option-children.html option-children-ref.html
+fuzzy-if(Android,4,11) == out-of-bounds-selectedindex.html out-of-bounds-selectedindex-ref.html # test for bug 471741
+== multiple.html multiple-ref.html
+== boguskids.html boguskids-ref.html
+== dynamic-boguskids.html boguskids-ref.html
+== option-children.html option-children-ref.html
 fuzzy(1,4) == padding-button-placement.html padding-button-placement-ref.html
 HTTP(../..) == vertical-centering.html vertical-centering-ref.html
-fails-if(stylo) == 997709-2.html 997709-2-ref.html
+== 997709-2.html 997709-2-ref.html
 fuzzy-if(skiaContent,4,1) needs-focus == focusring-1.html focusring-1-ref.html
 needs-focus == focusring-2.html focusring-2-ref.html
 needs-focus == focusring-3.html focusring-3-ref.html
-fails-if(stylo) == dynamic-text-indent-1.html dynamic-text-indent-1-ref.html
-fails-if(stylo) == dynamic-text-overflow-1.html dynamic-text-overflow-1-ref.html
+== dynamic-text-indent-1.html dynamic-text-indent-1-ref.html
+== dynamic-text-overflow-1.html dynamic-text-overflow-1-ref.html
--- a/layout/reftests/forms/textarea/reftest.list
+++ b/layout/reftests/forms/textarea/reftest.list
@@ -1,14 +1,14 @@
 skip-if(Android) fails-if(stylo) == resize.html resize-ref.html
 # an offset seems to apply to the native resizer on windows so skip this test for now
 skip-if(Android) skip-if(winWidget) fuzzy-if(cocoaWidget,1,33) fuzzy-if(skiaContent&&!winWidget&&!Android,5,10) fails-if(stylo) == resize-background.html resize-background-ref.html
 skip-if(Android) fails-if(stylo) != ltr.html rtl.html
-skip-if(Android) fails-if(stylo) != ltr-scrollbar.html rtl-scrollbar.html
-skip-if(Android) fails-if(stylo) != in-ltr-doc-scrollbar.html in-rtl-doc-scrollbar.html
+skip-if(Android) != ltr-scrollbar.html rtl-scrollbar.html
+skip-if(Android) != in-ltr-doc-scrollbar.html in-rtl-doc-scrollbar.html
 skip-if(Android) fails-if(stylo) != ltr.html no-resize.html
 skip-if(Android) fails-if(xulRuntime.widgetToolkit=="gtk2") fails-if(stylo) != rtl.html no-resize.html # bug 834724
 fuzzy-if(skiaContent,1,1) fails-if(stylo) == rtl.html rtl-dynamic-attr.html
 fuzzy-if(skiaContent,1,1) fails-if(stylo) == rtl.html rtl-dynamic-style.html
 fails-if(stylo) == rtl.html in-dynamic-rtl-doc.html
 fuzzy-if(skiaContent,1,3) fails-if(stylo) == setvalue-framereconstruction-1.html setvalue-framereconstruction-ref.html
 fuzzy-if(asyncPan&&!layersGPUAccelerated,102,4168) fails-if(stylo) == padding-scrollbar-placement.html padding-scrollbar-placement-ref.html
 fails-if(stylo) == various-cols.html various-cols-ref.html
--- a/layout/reftests/generated-content/reftest.list
+++ b/layout/reftests/generated-content/reftest.list
@@ -1,14 +1,14 @@
 # All tests in this file have fuzz on OS X 10.10 due to bug 1220052.
 
 fuzzy-if(OSX==1010,1,10) == display-types-01.html display-types-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-attr-01.html dynamic-attr-01-ref.html
-fuzzy-if(OSX==1010,1,10) fails-if(stylo) == dynamic-button-01a.html dynamic-button-01-ref.html
-fuzzy-if(OSX==1010,1,10) fails-if(stylo) == dynamic-button-01b.html dynamic-button-01-ref.html
+fuzzy-if(OSX==1010,1,10) == dynamic-button-01a.html dynamic-button-01-ref.html
+fuzzy-if(OSX==1010,1,10) == dynamic-button-01b.html dynamic-button-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-fieldset-01a.html dynamic-fieldset-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-fieldset-01b.html dynamic-fieldset-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-restyle-01.html dynamic-restyle-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-table-cell-01a.html dynamic-table-cell-01-ref.html
 fuzzy-if(OSX==1010,1,10) == dynamic-table-cell-01b.html dynamic-table-cell-01-ref.html
 == dynamic-table-cell-indent.html dynamic-table-cell-indent-ref.html
 fuzzy-if(OSX==1010,1,10) == floated-01.html floated-01-ref.html
 fuzzy-if(OSX==1010,1,10) == images-01.html images-01-ref.html
--- a/layout/reftests/image-element/reftest.list
+++ b/layout/reftests/image-element/reftest.list
@@ -12,17 +12,17 @@ fails-if(azureSkia) fails-if(cocoaWidget
 == element-paint-recursion.html element-paint-recursion-ref.html
 HTTP(..) == element-paint-continuation.html element-paint-continuation-ref.html
 == element-paint-transform-01.html element-paint-transform-01-ref.html
 random-if(d2d) == element-paint-transform-02.html element-paint-transform-02-ref.html # bug 587133
 fuzzy-if(d2d&&/^Windows\x20NT\x206\.1/.test(http.oscpu),16,90) == element-paint-background-size-01.html element-paint-background-size-01-ref.html
 == element-paint-background-size-02.html element-paint-background-size-02-ref.html
 fuzzy-if(skiaContent,255,4) == element-paint-transform-repeated.html element-paint-transform-repeated-ref.html
 fuzzy-if(d2d,255,24) == element-paint-transform-03.html element-paint-transform-03-ref.html
-fuzzy-if(asyncPan,2,140) fuzzy-if(skiaContent,3,106) fails-if(stylo) == element-paint-native-widget.html element-paint-native-widget-ref.html   # in -ref the scrollframe is active and layerized differently with APZ
+fuzzy-if(asyncPan,2,140) fuzzy-if(skiaContent,3,106) == element-paint-native-widget.html element-paint-native-widget-ref.html   # in -ref the scrollframe is active and layerized differently with APZ
 fails-if(usesRepeatResampling) == element-paint-subimage-sampling-restriction.html about:blank
 == element-paint-clippath.html element-paint-clippath-ref.html
 == element-paint-sharpness-01a.html element-paint-sharpness-01b.html
 fuzzy-if(skiaContent,1,326) == element-paint-sharpness-01b.html element-paint-sharpness-01c.html
 == element-paint-sharpness-01c.html element-paint-sharpness-01d.html
 == element-paint-sharpness-02a.html element-paint-sharpness-02b.html
 == element-paint-sharpness-02b.html element-paint-sharpness-02c.html
 == element-paint-paintserversize-rounding-01.html element-paint-paintserversize-rounding-01-ref.html
--- a/layout/reftests/native-theme/reftest.list
+++ b/layout/reftests/native-theme/reftest.list
@@ -1,61 +1,61 @@
-fails-if(stylo) != button-html-not-blank.html about:blank
-fails-if(stylo) != button-not-blank.html about:blank
+!= button-html-not-blank.html about:blank
+!= button-not-blank.html about:blank
 != checkbox-not-blank.html about:blank
-fails-if(stylo) != combobox-not-blank.html about:blank
+!= combobox-not-blank.html about:blank
 != fieldset-not-blank.html about:blank
-fails-if(stylo) != file-not-blank.html about:blank
-fails-if(stylo) != listbox-not-blank.html about:blank
+!= file-not-blank.html about:blank
+!= listbox-not-blank.html about:blank
 != radio-not-blank.html about:blank
-fails-if(stylo) != text-control-not-blank.html about:blank
+!= text-control-not-blank.html about:blank
 fails-if(stylo) != textarea-not-blank.html about:blank
 
 # The following tests will fail if the platform does not have native
 # theme support (which all platforms should have).
-fails-if(!nativeThemePref) fails-if(stylo) != text-input-native.html text-input-nonnative.html
+fails-if(!nativeThemePref) != text-input-native.html text-input-nonnative.html
 fuzzy-if(skiaContent,2,88) fails-if(stylo) == text-input-nonnative-when-styled.html text-input-nonnative-when-styled-ref.html
 fails-if(!nativeThemePref) fails-if(stylo) != textarea-native.html textarea-nonnative.html
 fuzzy-if(skiaContent,2,53) fails-if(stylo) == textarea-nonnative-when-styled.html textarea-nonnative-when-styled-ref.html
-fails-if(!nativeThemePref) fails-if(stylo) != button-native.html button-nonnative.html
-fails-if(stylo) == button-nonnative-when-styled.html button-nonnative-when-styled-ref.html
-fails-if(!nativeThemePref&&!Android) fails-if(stylo) != combobox-native.html combobox-nonnative.html
-fails-if(stylo) == combobox-nonnative-when-styled.html combobox-nonnative-when-styled-ref.html
-fails-if(!nativeThemePref) needs-focus fails-if(stylo) != listbox-native.html listbox-nonnative.html
-needs-focus fails-if(stylo) == listbox-nonnative-when-styled.html listbox-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) != button-native.html button-nonnative.html
+== button-nonnative-when-styled.html button-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref&&!Android) != combobox-native.html combobox-nonnative.html
+== combobox-nonnative-when-styled.html combobox-nonnative-when-styled-ref.html
+fails-if(!nativeThemePref) needs-focus != listbox-native.html listbox-nonnative.html
+needs-focus == listbox-nonnative-when-styled.html listbox-nonnative-when-styled-ref.html
 fails-if(!nativeThemePref) != radio-native.html radio-nonnative.html
 == radio-still-native-when-styled.html radio-still-native-when-styled-ref.html
 fails-if(!nativeThemePref) != checkbox-native.html checkbox-nonnative.html
 == checkbox-still-native-when-styled.html checkbox-still-native-when-styled-ref.html
-fails-if(stylo) == native-theme-disabled-cascade-levels.html native-theme-disabled-cascade-levels-ref.html
+== native-theme-disabled-cascade-levels.html native-theme-disabled-cascade-levels-ref.html
 
-fails-if(stylo) != 427122-1.html 427122-1-ref.html
+!= 427122-1.html 427122-1-ref.html
 
 # 403458 is a Windows-only bug
 pref(layout.css.moz-appearance.enabled,true) skip-if(!winWidget) != 403458-winmenu-ltr.xul 403458-winmenu-rtl.xul
 
 == 470711-1.xul 470711-1-ref.xul
 
 pref(layout.css.moz-appearance.enabled,true) == 482955-1.xul 482955-1-ref.xul
 
 == 492155-1.html about:blank
 == 492155-2.html about:blank
 == 492155-3.html about:blank
 fails-if(Android&&!asyncPan) != 492155-4.html about:blank
 
-fails-if(stylo) != box-shadow-input.html box-shadow-input-ref.html
-fails-if(stylo) != box-shadow-button.html box-shadow-button-ref.html
-fails-if(stylo) != box-shadow-listbox.html box-shadow-listbox-ref.html
-fails-if(stylo) != box-shadow-combobox.html box-shadow-combobox-ref.html
+!= box-shadow-input.html box-shadow-input-ref.html
+!= box-shadow-button.html box-shadow-button-ref.html
+!= box-shadow-listbox.html box-shadow-listbox-ref.html
+!= box-shadow-combobox.html box-shadow-combobox-ref.html
 
 # 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) fails-if(stylo) == select-mirrored-when-rtl.html select-mirrored-when-rtl-ref.html
+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
 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
--- a/layout/reftests/selection/reftest.list
+++ b/layout/reftests/selection/reftest.list
@@ -23,15 +23,15 @@ fuzzy-if(skiaContent,1,700) == extend-3g
 fuzzy-if(skiaContent,1,700) == extend-3h.html extend-3-ref.html
 fuzzy-if(skiaContent,1,700) == extend-3i.html extend-3-ref.html
 == extend-4a.html extend-4-ref.html
 == extend-4b.html extend-4-ref.html
 # these 3 random-if(Android) are a difference of Native & Xul, see bug 739714
 random-if(Android) needs-focus != pseudo-element-of-native-anonymous.html pseudo-element-of-native-anonymous-ref.html # bug 676641
 # These tests uses Highlight and HighlightText color keywords, they are not same as text selection color on Mac.
 random-if(Android) fails-if(cocoaWidget) needs-focus == non-themed-widget.html non-themed-widget-ref.html
-random-if(Android) fails-if(cocoaWidget) needs-focus fails-if(stylo) == themed-widget.html themed-widget-ref.html
+random-if(Android) fails-if(cocoaWidget) needs-focus == themed-widget.html themed-widget-ref.html
 == addrange-1.html addrange-ref.html
 fuzzy-if(skiaContent,1,1200) == addrange-2.html addrange-ref.html
 == splitText-normalize.html splitText-normalize-ref.html
 == modify-range.html modify-range-ref.html
 == dom-mutations.html dom-mutations-ref.html
 fuzzy-if(OSX==1010,9,1) fuzzy-if(OSX&&skiaContent,6,1) fuzzy-if(skiaContent&&!OSX,1,2138) == trailing-space-1.html trailing-space-1-ref.html
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -210,17 +210,17 @@ fuzzy-if(skiaContent,1,500) == filter-sc
 == filter-use-element-01.svg pass.svg
 fuzzy-if(skiaContent,1,800000) == filters-and-group-opacity-01.svg filters-and-group-opacity-01-ref.svg
 
 == foreignObject-01.svg pass.svg
 == foreignObject-02.svg foreignObject-02-ref.svg
 == foreignObject-ancestor-style-change-01.svg foreignObject-ancestor-style-change-01-ref.svg
 fails-if(stylo) == foreignObject-change-transform-01.svg pass.svg
 == foreignObject-display-01.svg pass.svg
-pref(layout.css.moz-appearance.enabled,true) fails-if(stylo) == foreignObject-form-theme.svg foreignObject-form-theme-ref.html
+pref(layout.css.moz-appearance.enabled,true) == foreignObject-form-theme.svg foreignObject-form-theme-ref.html
 == foreignObject-img-form-theme.html foreignObject-img-form-theme-ref.html
 == foreignObject-move-repaint-01.svg pass.svg
 == foreignObject-overflow-01.svg pass.svg
 == foreignObject-start-hidden-01.svg pass.svg # followup from Bug 596765
 == foreignObject-start-hidden-02.svg pass.svg
 == foreignObject-style-change-01.svg pass.svg
 == foreignObject-dynamic-abspos-01.html foreignObject-dynamic-abspos-01-ref.html
 fuzzy-if(Android,18,600) == foreignObject-fixedpos-01.html foreignObject-dynamic-abspos-01-ref.html
--- a/layout/reftests/table-anonymous-boxes/reftest.list
+++ b/layout/reftests/table-anonymous-boxes/reftest.list
@@ -29,17 +29,17 @@ fuzzy-if(skiaContent,1,6) == 339388-1b.h
 == 373379-1.html 373379-1-ref.html
 random-if(d2d) == 394402-1a.html 394402-1-ref.html # bug 586833
 == 394402-1b.html 394402-1-ref.html # bug 586833
 == 398095-1.html 398095-1-ref.html
 == 407115-1.html 407115-1-ref.html
 == 443616-1a.xhtml 443616-1-ref.html
 == 443616-1b.html 443616-1-ref.html
 == 448111-1.html 448111-1-ref.html
-fails-if(stylo) == 490174-1.html 490174-1-ref.html
+== 490174-1.html 490174-1-ref.html
 == 695538-1.html 695538-1-ref.html
 == infer-first-row.html 3x3-ref.html
 == infer-first-row-and-table.html 3x3-ref.html
 == infer-second-row.html 3x3-ref.html
 == infer-second-row-and-table.html 3x3-ref.html
 == infer-table-around-headers-footers-1.html 3x3-ref.html
 == infer-table-around-headers-footers-2.html 3x3-ref.html
 == infer-table-around-headers-footers-3.html 3x3-ref.html
--- a/layout/reftests/text-decoration/reftest.list
+++ b/layout/reftests/text-decoration/reftest.list
@@ -98,15 +98,15 @@ fails-if(stylo) == underline-block-propa
 == decoration-css21.html decoration-css21-ref.html
 fuzzy-if(cocoaWidget,1,5) == decoration-color-override-quirks.html decoration-color-override-quirks-ref.html
 == decoration-color-override-standards.html decoration-color-override-standards-ref.html
 != decoration-color-override-standards-ref.html decoration-color-override-quirks-ref.html
 == decoration-css21-block.html decoration-css21-block-ref.html
 != inline-baseline-almost-standards.html inline-baseline-almost-standards-ref.html
 != inline-baseline-quirks.html inline-baseline-quirks-ref.html
 == 676538-1.html 676538-1-ref.html
-fuzzy-if(OSX==1010,1,4) fails-if(stylo) == underline-button-1.html underline-button-1-ref.html
-fuzzy-if(OSX==1010,1,2) fails-if(stylo) == underline-button-2.html underline-button-2-ref.html
-fuzzy-if(skiaContent,4,2) fails-if(stylo) == underline-select-1.html underline-select-1-ref.html
-fails-if(stylo) == underline-select-2.html underline-select-2-ref.html
+fuzzy-if(OSX==1010,1,4) == underline-button-1.html underline-button-1-ref.html
+fuzzy-if(OSX==1010,1,2) == underline-button-2.html underline-button-2-ref.html
+fuzzy-if(skiaContent,4,2) == underline-select-1.html underline-select-1-ref.html
+== underline-select-2.html underline-select-2-ref.html
 == 1133392.html 1133392-ref.html
 != 1159729-offset-adjustment.html 1159729-offset-adjustment-notref.html
 == emphasis-style-dynamic.html emphasis-style-dynamic-ref.html
--- a/layout/reftests/unicode/reftest.list
+++ b/layout/reftests/unicode/reftest.list
@@ -1,7 +1,7 @@
 == unicode-attribute-selector.html unicode-ref.html
 == unicode-element-selector.html unicode-ref.html
 == unicode-lang.html unicode-ref.html
 == unicode-media-query-media-type.html unicode-ref-print.html
 == unicode-media-query-query.html unicode-ref-print.html
 == unicode-pseudo-selector.html unicode-ref.html
-fails-if(stylo) == langattribute.html langattribute-ref.html
+== langattribute.html langattribute-ref.html
--- a/layout/reftests/writing-mode/reftest.list
+++ b/layout/reftests/writing-mode/reftest.list
@@ -61,20 +61,20 @@ fails-if(stylo) == 1124636-2-fieldset-mi
 fails-if(stylo) == ua-style-sheet-size-1.html ua-style-sheet-size-1-ref.html
 fails-if(stylo) == ua-style-sheet-size-2.html ua-style-sheet-size-2-ref.html
 
 == ua-style-sheet-fieldset-1.html ua-style-sheet-fieldset-1-ref.html
 skip-if(Android||winWidget) fails-if(stylo) == ua-style-sheet-textarea-1.html ua-style-sheet-textarea-1a-ref.html
 skip-if(!(Android)) fails-if(stylo) == ua-style-sheet-textarea-1.html ua-style-sheet-textarea-1b-ref.html
 skip-if(!winWidget) fails-if(stylo) == ua-style-sheet-textarea-1.html ua-style-sheet-textarea-1c-ref.html
 fuzzy-if(Android,1,18) == ua-style-sheet-checkbox-radio-1.html ua-style-sheet-checkbox-radio-1-ref.html
-skip-if(Android) fuzzy-if(skiaContent&&!Android,2,6) fails-if(stylo) == ua-style-sheet-button-1.html ua-style-sheet-button-1a-ref.html
-skip-if(!(Android)) fails-if(stylo) == ua-style-sheet-button-1.html ua-style-sheet-button-1b-ref.html
+skip-if(Android) fuzzy-if(skiaContent&&!Android,2,6) == ua-style-sheet-button-1.html ua-style-sheet-button-1a-ref.html
+skip-if(!(Android)) == ua-style-sheet-button-1.html ua-style-sheet-button-1b-ref.html
 fails-if(stylo) == ua-style-sheet-input-color-1.html ua-style-sheet-input-color-1-ref.html
-pref(layout.css.moz-appearance.enabled,true) fuzzy-if(gtkWidget,1,15) fails-if(stylo) == ua-style-sheet-input-number-1.html ua-style-sheet-input-number-1-ref.html
+pref(layout.css.moz-appearance.enabled,true) fuzzy-if(gtkWidget,1,15) == ua-style-sheet-input-number-1.html ua-style-sheet-input-number-1-ref.html
 
 HTTP(..) == 1127488-align-default-horizontal-tb-ltr.html 1127488-align-top-left-ref.html
 HTTP(..) == 1127488-align-start-horizontal-tb-ltr.html 1127488-align-top-left-ref.html
 HTTP(..) == 1127488-align-end-horizontal-tb-ltr.html 1127488-align-top-right-ref.html
 HTTP(..) == 1127488-align-left-horizontal-tb-ltr.html 1127488-align-top-left-ref.html
 HTTP(..) == 1127488-align-right-horizontal-tb-ltr.html 1127488-align-top-right-ref.html
 HTTP(..) == 1127488-align-default-horizontal-tb-rtl.html 1127488-align-top-right-ref.html
 HTTP(..) == 1127488-align-start-horizontal-tb-rtl.html 1127488-align-top-right-ref.html
--- a/layout/style/ServoArcTypeList.h
+++ b/layout/style/ServoArcTypeList.h
@@ -13,8 +13,9 @@ SERVO_ARC_TYPE(DeclarationBlock, RawServ
 SERVO_ARC_TYPE(StyleRule, RawServoStyleRule)
 SERVO_ARC_TYPE(ImportRule, RawServoImportRule)
 SERVO_ARC_TYPE(AnimationValue, RawServoAnimationValue)
 SERVO_ARC_TYPE(MediaList, RawServoMediaList)
 SERVO_ARC_TYPE(MediaRule, RawServoMediaRule)
 SERVO_ARC_TYPE(NamespaceRule, RawServoNamespaceRule)
 SERVO_ARC_TYPE(PageRule, RawServoPageRule)
 SERVO_ARC_TYPE(SupportsRule, RawServoSupportsRule)
+SERVO_ARC_TYPE(RuleNode, RawServoRuleNode)
--- a/layout/style/ServoBindingList.h
+++ b/layout/style/ServoBindingList.h
@@ -381,16 +381,24 @@ SERVO_BINDING_FUNC(Servo_NoteExplicitHin
 SERVO_BINDING_FUNC(Servo_TakeChangeHint, nsChangeHint, RawGeckoElementBorrowed element)
 SERVO_BINDING_FUNC(Servo_ResolveStyle, ServoComputedValuesStrong,
                    RawGeckoElementBorrowed element,
                    RawServoStyleSetBorrowed set,
                    bool allow_stale)
 SERVO_BINDING_FUNC(Servo_ResolvePseudoStyle, ServoComputedValuesStrong,
                    RawGeckoElementBorrowed element, nsIAtom* pseudo_tag,
                    bool is_probe, RawServoStyleSetBorrowed set)
+SERVO_BINDING_FUNC(Servo_ResolveRuleNode, RawServoRuleNodeStrong,
+                   RawGeckoElementBorrowed element, nsIAtom* pseudo_tag,
+                   RawServoStyleSetBorrowed set)
+SERVO_BINDING_FUNC(Servo_HasAuthorSpecifiedRules, bool,
+                   RawServoRuleNodeBorrowed rule_node,
+                   RawGeckoElementBorrowed element,
+                   uint32_t rule_type_mask,
+                   bool author_colors_allowed)
 
 // Resolves style for an element or pseudo-element without processing pending
 // restyles first. The Element and its ancestors may be unstyled, have pending
 // restyles, or be in a display:none subtree. Styles are cached when possible,
 // though caching is not possible within display:none subtrees, and the styles
 // may be invalidated by already-scheduled restyles.
 //
 // The tree must be in a consistent state such that a normal traversal could be
--- a/layout/style/ServoStyleSet.cpp
+++ b/layout/style/ServoStyleSet.cpp
@@ -540,16 +540,23 @@ ServoStyleSet::ResolveNonInheritingAnony
 
   RefPtr<nsStyleContext> retval =
     GetContext(computedValues.forget(), nullptr, aPseudoTag,
                CSSPseudoElementType::NonInheritingAnonBox, nullptr);
   cache = retval;
   return retval.forget();
 }
 
+already_AddRefed<RawServoRuleNode>
+ServoStyleSet::ResolveRuleNode(dom::Element *aElement, nsIAtom *aPseudoTag)
+{
+  MOZ_ASSERT(aElement);
+  return Servo_ResolveRuleNode(aElement, aPseudoTag, mRawSet.get()).Consume();
+}
+
 // manage the set of style sheets in the style set
 nsresult
 ServoStyleSet::AppendStyleSheet(SheetType aType,
                                 ServoStyleSheet* aSheet)
 {
   MOZ_ASSERT(aSheet);
   MOZ_ASSERT(aSheet->IsApplicable());
   MOZ_ASSERT(nsStyleSet::IsCSSSheetType(aType));
--- a/layout/style/ServoStyleSet.h
+++ b/layout/style/ServoStyleSet.h
@@ -33,16 +33,17 @@ class ServoStyleSheet;
 struct Keyframe;
 struct ServoComputedValuesWithParent;
 } // namespace mozilla
 class nsIContent;
 class nsIDocument;
 class nsStyleContext;
 class nsPresContext;
 struct nsTimingFunction;
+struct RawServoRuleNode;
 struct TreeMatchContext;
 
 namespace mozilla {
 
 /**
  * The set of style sheets that apply to a document, backed by a Servo
  * Stylist.  A ServoStyleSet contains ServoStyleSheets.
  */
@@ -187,16 +188,20 @@ public:
                                      nsStyleContext* aParentContext);
 
   // Get a style context for an anonymous box that does not inherit style from
   // anything.  aPseudoTag is the pseudo-tag to use and must be non-null.  It
   // must be an anon box, and must be a non-inheriting one.
   already_AddRefed<nsStyleContext>
   ResolveNonInheritingAnonymousBoxStyle(nsIAtom* aPseudoTag);
 
+  // Get the rule node for a (pseudo-)element, resolving it lazily if needed.
+  already_AddRefed<RawServoRuleNode>
+  ResolveRuleNode(dom::Element *aElement, nsIAtom *aPseudoTag);
+
   // manage the set of style sheets in the style set
   nsresult AppendStyleSheet(SheetType aType, ServoStyleSheet* aSheet);
   nsresult PrependStyleSheet(SheetType aType, ServoStyleSheet* aSheet);
   nsresult RemoveStyleSheet(SheetType aType, ServoStyleSheet* aSheet);
   nsresult ReplaceSheets(SheetType aType,
                          const nsTArray<RefPtr<ServoStyleSheet>>& aNewSheets);
   nsresult InsertStyleSheetBefore(SheetType aType,
                                   ServoStyleSheet* aNewSheet,