attributes:
== anim-feTurbulence-numOctaves-01.svg anim-feTurbulence-numOctaves-01-ref.svg
diff --git a/layout/reftests/svg/smil/style/reftest.list b/layout/reftests/svg/smil/style/reftest.list
index e01f5a5290f..b56ba0f21e1 100644
--- a/layout/reftests/svg/smil/style/reftest.list
+++ b/layout/reftests/svg/smil/style/reftest.list
@@ -6,44 +6,44 @@
# 'color' property, from/to/by with named colors & hex values
== anim-css-color-1-by-ident-hex.svg anim-css-fill-1-ref.svg
== anim-css-color-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
-== anim-css-color-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
-== anim-css-color-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
-== anim-css-color-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
-== anim-css-color-1-to-ident-hex.svg anim-css-fill-1-ref.svg
-== anim-css-color-1-to-ident-ident.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-color-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-color-1-to-ident-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-color-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'color' property, paced calcMode
== anim-css-color-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'color' property, animating *by* a named color
-== anim-css-color-3-by-ident-ident.svg anim-css-fill-3-ref.svg
-== anim-css-color-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
-== anim-css-color-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-color-3-by-ident-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-color-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-color-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# 'fill' property, from/to/by with named colors & hex values
-== anim-css-fill-1-by-ident-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-to-ident-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-to-ident-ident.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-by-ident-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-hex-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-ident-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-hex-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-ident-ident.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-ident.svg anim-css-fill-1-ref.svg
# 'fill' property, from/to/by, with 'currentColor' keyword
-== anim-css-fill-1-by-ident-curcol.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-by-curcol-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-by-hex-curcol.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-to-curcol-hex.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-from-to-hex-curcol.svg anim-css-fill-1-ref.svg
-== anim-css-fill-1-to-ident-curcol.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-by-ident-curcol.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-curcol-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-by-hex-curcol.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-curcol-hex.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-from-to-hex-curcol.svg anim-css-fill-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fill-1-to-ident-curcol.svg anim-css-fill-1-ref.svg
# 'fill' property, paced calcMode
== anim-css-fill-2-paced-rgb.svg anim-css-fill-2-ref.svg
# 'fill' property, animating *by* a named color
-== anim-css-fill-3-by-ident-ident.svg anim-css-fill-3-ref.svg
-== anim-css-fill-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
-== anim-css-fill-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-fill-3-by-ident-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-fill-3-from-by-ident-ident.svg anim-css-fill-3-ref.svg
+fuzzy-if(skiaContent,1,580) == anim-css-fill-3-from-by-rgb-ident.svg anim-css-fill-3-ref.svg
# check handling of overflowing color values
# NOTE: The second test fails because we compute "from + by" as the animation
@@ -55,13 +55,13 @@
fails == anim-css-fill-overflow-1-from-by.svg anim-css-fill-overflow-1-ref.svg
# 'fill-opacity' property
-== anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
-== anim-css-fillopacity-1-from-by.svg anim-css-fillopacity-1-ref.svg
+fuzzy-if(skiaContent,1,885) == anim-css-fillopacity-1-by.svg anim-css-fillopacity-1-ref.svg
+fuzzy-if(skiaContent,1,210) == anim-css-fillopacity-1-from-by.svg anim-css-fillopacity-1-ref.svg
== anim-css-fillopacity-1-from-to.svg anim-css-fillopacity-1-ref.svg
-== anim-css-fillopacity-1-to.svg anim-css-fillopacity-1-ref.svg
+fuzzy-if(skiaContent,1,550) == anim-css-fillopacity-1-to.svg anim-css-fillopacity-1-ref.svg
== anim-css-fillopacity-2-paced.svg anim-css-fillopacity-2-ref.svg
fails == anim-css-fillopacity-3-clamp-big.svg anim-css-fillopacity-3-ref.svg # bug 501188
-== anim-css-fillopacity-3-clamp-small.svg anim-css-fillopacity-3-ref.svg
+fuzzy-if(skiaContent,1,365) == anim-css-fillopacity-3-clamp-small.svg anim-css-fillopacity-3-ref.svg
# 'font' shorthand property
== anim-css-font-1.svg anim-css-font-1-ref.svg
@@ -143,14 +143,14 @@ fails == anim-css-strokewidth-1-to-px-pct.svg anim-css-strokewidth-1-ref.s
== anim-css-strokewidth-2-values-em-em.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-2-values-em-px.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-2-values-px-em.svg anim-css-strokewidth-2-ref.svg
-== anim-css-strokewidth-2-values-px-px.svg anim-css-strokewidth-2-ref.svg
+fuzzy-if(skiaContent,1,360) == anim-css-strokewidth-2-values-px-px.svg anim-css-strokewidth-2-ref.svg
== anim-css-strokewidth-3-paced.svg anim-css-strokewidth-3-ref.svg
# 'stroke-width' property, negative addition
== anim-css-strokewidth-4-from-by-px-px.svg anim-css-strokewidth-4-ref.svg
== anim-css-strokewidth-4-from-by-px-em.svg anim-css-strokewidth-4-ref.svg
== anim-css-strokewidth-4-from-by-em-em.svg anim-css-strokewidth-4-ref.svg
-== anim-css-strokewidth-4-from-by-no-no.svg anim-css-strokewidth-4-ref.svg
+fuzzy-if(skiaContent,1,170) == anim-css-strokewidth-4-from-by-no-no.svg anim-css-strokewidth-4-ref.svg
# check correct handling of "!important" values
== important-set-1.svg anim-standard-ref.svg
diff --git a/layout/reftests/svg/smil/transform/reftest.list b/layout/reftests/svg/smil/transform/reftest.list
index e6d6b00567e..53522f0fb0b 100644
--- a/layout/reftests/svg/smil/transform/reftest.list
+++ b/layout/reftests/svg/smil/transform/reftest.list
@@ -1,18 +1,18 @@
# Tests related to SVG Animation (using SMIL), focusing on the animateTransform
# element.
-fuzzy(111,1802) == additive-1.svg additive-1-ref.svg # bug 981344, bug 1239766
+fuzzy(111,1802) fuzzy-if(skiaContent,130,1000) == additive-1.svg additive-1-ref.svg # bug 981344, bug 1239766
== animate-width-1.svg lime.svg
fuzzy-if(cocoaWidget,1,32) fuzzy-if(winWidget,15,4) == paced-1.svg paced-1-ref.svg # bug 981640
-== rotate-angle-1.svg rotate-angle-ref.svg
+fuzzy-if(skiaContent,1,220) == rotate-angle-1.svg rotate-angle-ref.svg
== rotate-angle-2.svg rotate-angle-ref.svg
-== rotate-angle-3.svg rotate-angle-ref.svg
-== rotate-angle-4.svg rotate-angle-ref.svg
-== rotate-angle-5.svg rotate-angle-ref.svg
-fuzzy(12,27) == scale-1.svg scale-1-ref.svg # bug 981004
+fuzzy-if(skiaContent,1,130) == rotate-angle-3.svg rotate-angle-ref.svg
+fuzzy-if(skiaContent,1,110) == rotate-angle-4.svg rotate-angle-ref.svg
+fuzzy-if(skiaContent,1,130) == rotate-angle-5.svg rotate-angle-ref.svg
+fuzzy(12,27) fuzzy-if(skiaContent,1,180) == scale-1.svg scale-1-ref.svg # bug 981004
== set-transform-1.svg lime.svg
fuzzy-if(winWidget,1,3) == skew-1.svg skew-1-ref.svg # bug 983671
== translate-clipPath-1.svg lime.svg
-fails-if(OSX==1006) == translate-gradient-1.svg lime.svg
+fails-if(OSX==1006&&!skiaContent) == translate-gradient-1.svg lime.svg
== translate-pattern-1.svg lime.svg
== use-1.svg lime.svg
diff --git a/layout/reftests/svg/stroke-dasharray-02.svg b/layout/reftests/svg/stroke-dasharray-02.svg
index 83cb2c62e92..147498f4e35 100644
--- a/layout/reftests/svg/stroke-dasharray-02.svg
+++ b/layout/reftests/svg/stroke-dasharray-02.svg
@@ -42,7 +42,7 @@
-
-
+
+
diff --git a/layout/reftests/svg/text/reftest.list b/layout/reftests/svg/text/reftest.list
index 976d60c9a86..370734127c0 100644
--- a/layout/reftests/svg/text/reftest.list
+++ b/layout/reftests/svg/text/reftest.list
@@ -7,7 +7,7 @@
== simple-anchor-end.svg simple-anchor-end-ref.html
== simple-anchor-middle-bidi.svg simple-anchor-middle-bidi-ref.html
== simple-anchor-middle-rtl.svg simple-anchor-middle-rtl-ref.html
-== simple-anchor-middle.svg simple-anchor-middle-ref.html
+fuzzy-if(skiaContent,111,81) == simple-anchor-middle.svg simple-anchor-middle-ref.html
== simple-bidi.svg simple-bidi-ref.html
== simple-bidi-2.svg simple-bidi.svg
@@ -36,7 +36,7 @@ HTTP(../..) == simple-fill-gradient.svg simple-fill-gradient-ref.svg
HTTP(../..) == simple-multiple-dx-anchor-middle-bidi.svg simple-multiple-dx-anchor-middle-bidi-ref.svg
== simple-multiple-dx-anchor-end-rtl.svg simple-multiple-dx-anchor-end-rtl-ref.svg
== simple-multiple-dx-anchor-end.svg simple-multiple-dx-anchor-end-ref.svg
-HTTP(../..) == simple-multiple-dx-anchor-middle-rtl.svg simple-multiple-dx-anchor-middle-rtl-ref.svg
+fuzzy-if(skiaContent,1,2) HTTP(../..) == simple-multiple-dx-anchor-middle-rtl.svg simple-multiple-dx-anchor-middle-rtl-ref.svg
HTTP(../..) == simple-multiple-dx-anchor-middle.svg simple-multiple-dx-anchor-middle-ref.svg
== simple-multiple-dx-bidi.svg simple-multiple-dx-bidi-ref.svg
== simple-multiple-dx-bidi-2.svg simple-multiple-dx-bidi.svg
@@ -110,7 +110,7 @@ HTTP(../..) == simple-transform-rotate.svg simple-transform-rotate-ref.svg
== simple-multiline-pc.svg simple-multiline-pc-ref.svg
== simple-multiline-anchor-end.svg simple-multiline-anchor-end-ref.svg
-== textpath.svg textpath-ref.svg
+fuzzy-if(skiaContent,1,15) == textpath.svg textpath-ref.svg
== textpath-a.svg textpath-a-ref.svg
== textpath-anchor-middle.svg textpath-anchor-middle-ref.svg
== textpath-anchor-end.svg textpath-anchor-end-ref.svg
@@ -121,8 +121,8 @@ HTTP(../..) == simple-transform-rotate.svg simple-transform-rotate-ref.svg
== textpath-after-anchor-end.svg textpath-after-anchor-end-ref.svg
== textLength.svg textLength-ref.svg
-== textLength-2.svg textLength-2-ref.svg
-fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/.test(http.oscpu),4,17) == textLength-3.svg textLength-3-ref.svg
+fuzzy-if(skiaContent,1,200) == textLength-2.svg textLength-2-ref.svg
+fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/.test(http.oscpu),4,17) fuzzy-if(skiaContent,1,100) == textLength-3.svg textLength-3-ref.svg
== textLength-4.svg textLength-4-ref.svg
== textLength-5.svg textLength-5-ref.svg
== textLength-6.svg textLength-6-ref.svg
@@ -164,7 +164,7 @@ fuzzy-if(/^Windows\x20NT\x2010\.0/.test(http.oscpu)||/^Windows\x20NT\x206\.[12]/
== dynamic-font-size-4.svg dynamic-font-size-4-ref.svg
== dynamic-dominant-baseline.svg dynamic-dominant-baseline-ref.svg
== dynamic-multiple-x.svg dynamic-multiple-x-ref.svg
-fuzzy-if(!d2d,14,2) fuzzy-if(azureQuartz,1,6) == dynamic-non-scaling-stroke.svg dynamic-non-scaling-stroke-ref.svg #Bug 885316
+fuzzy-if(!d2d,14,2) fuzzy-if(azureQuartz,1,6) fuzzy-if(skiaContent,1,200) == dynamic-non-scaling-stroke.svg dynamic-non-scaling-stroke-ref.svg #Bug 885316
== dynamic-text-shadow.svg text-shadow-ref.svg
# text and masks
@@ -184,17 +184,17 @@ fuzzy-if(cocoaWidget,1,6) == pattern-content.svg pattern-content-ref.svg
HTTP(../..) == filter-applied.svg filter-applied-ref.svg
# vertical text
-== textpath-vertical-dx.svg textpath-vertical-dx-ref.svg
+fuzzy-if(skiaContent,1,80) == textpath-vertical-dx.svg textpath-vertical-dx-ref.svg
# selection
needs-focus == deselectAll.svg deselectAll-ref.svg
-needs-focus == selectSubString.svg selectSubString-ref.svg
-needs-focus == selectSubString-2.svg selectSubString-2-ref.svg
-needs-focus == selectSubString-3.svg selectSubString-3-ref.svg
+fuzzy-if(skiaContent,1,250) needs-focus == selectSubString.svg selectSubString-ref.svg
+fuzzy-if(skiaContent,1,600) needs-focus == selectSubString-2.svg selectSubString-2-ref.svg
+fuzzy-if(skiaContent,1,250) needs-focus == selectSubString-3.svg selectSubString-3-ref.svg
needs-focus == simple-selection.svg simple-selection-ref.html
-needs-focus == simple-bidi-selection.svg simple-bidi-selection-ref.html
-needs-focus == simple-fill-color-selection.svg simple-fill-color-selection-ref.html
-needs-focus == simple-underline-selection.svg simple-underline-selection-ref.html
-needs-focus == multiple-text-selection.svg multiple-text-selection-ref.html
+fuzzy-if(skiaContent,1,100) needs-focus == simple-bidi-selection.svg simple-bidi-selection-ref.html
+fuzzy-if(skiaContent,1,50) needs-focus == simple-fill-color-selection.svg simple-fill-color-selection-ref.html
+fuzzy-if(skiaContent,1,150) needs-focus == simple-underline-selection.svg simple-underline-selection-ref.html
+fuzzy-if(skiaContent,1,300) needs-focus == multiple-text-selection.svg multiple-text-selection-ref.html
needs-focus == multiple-chunks-selection.svg multiple-chunks-selection-ref.svg
-needs-focus == textpath-selection.svg textpath-selection-ref.svg
+fuzzy-if(skiaContent,1,200) needs-focus == textpath-selection.svg textpath-selection-ref.svg
diff --git a/layout/reftests/table-anonymous-boxes/reftest.list b/layout/reftests/table-anonymous-boxes/reftest.list
index fdbb7e60c2c..80e9df985d0 100644
--- a/layout/reftests/table-anonymous-boxes/reftest.list
+++ b/layout/reftests/table-anonymous-boxes/reftest.list
@@ -2,7 +2,7 @@
== 121142-1b.html 121142-1-ref.html
== 121142-2.html 121142-2-ref.html
== 156888-1.html 156888-1-ref.html
-== 156888-2.html 156888-2-ref.html
+fuzzy-if(skiaContent,1,2) == 156888-2.html 156888-2-ref.html
== 162063-1.xhtml about:blank
== 203923-1.html white-space-ref.html
== 203923-2.html white-space-ref.html
@@ -11,14 +11,14 @@
== 208305-3.html white-space-ref.html
== 208305-4.html white-space-ref.html
== 277995-1.html 277995-1-ref.html
-== 293576-1.html 293576-1-ref.html
+fuzzy-if(skiaContent,1,6) == 293576-1.html 293576-1-ref.html
== 302113-1.html 302113-1-ref.html
-== 315146-1.xhtml 315146-1-ref.xhtml
+fuzzy-if(skiaContent,1,6) == 315146-1.xhtml 315146-1-ref.xhtml
== 325543-1a.html 325543-1-ref.html
== 325543-1b.html 325543-1-ref.html
-== 338735-1.html 338735-1-ref.html
-== 339388-1a.html 339388-1-ref.html
-== 339388-1b.html 339388-1-ref.html
+fuzzy-if(skiaContent,1,6) == 338735-1.html 338735-1-ref.html
+fuzzy-if(skiaContent,1,6) == 339388-1a.html 339388-1-ref.html
+fuzzy-if(skiaContent,1,6) == 339388-1b.html 339388-1-ref.html
== 363326-1.html 363326-1-ref.html
== 368932-1.html 368932-1-ref.html
== 371054-1.html 371054-1-ref.html
diff --git a/layout/reftests/table-background/reftest.list b/layout/reftests/table-background/reftest.list
index 9f4c441bd72..04e89873816 100644
--- a/layout/reftests/table-background/reftest.list
+++ b/layout/reftests/table-background/reftest.list
@@ -40,23 +40,23 @@ skip-if(B2G||Mulet) == border-collapse-table-column.html border-collapse-table-c
skip-if(B2G||Mulet) == border-collapse-table-row-group.html border-collapse-table-row-group-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
== border-collapse-table-row.html border-collapse-table-row-ref.html
== border-collapse-table.html border-collapse-table-ref.html
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,1083) == border-collapse-opacity-table-cell.html border-collapse-opacity-table-cell-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,1083) fuzzy-if(skiaContent,1,2200) == border-collapse-opacity-table-cell.html border-collapse-opacity-table-cell-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
fails == border-collapse-opacity-table-column-group.html border-collapse-opacity-table-column-group-ref.html # bug 424274
fails == border-collapse-opacity-table-column.html border-collapse-opacity-table-column-ref.html # bug 424274
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,16359) == border-collapse-opacity-table-row-group.html border-collapse-opacity-table-row-group-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,5453) == border-collapse-opacity-table-row.html border-collapse-opacity-table-row-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,29973) == border-collapse-opacity-table.html border-collapse-opacity-table-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,2478) == border-separate-opacity-table-cell.html border-separate-opacity-table-cell-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,16359) fuzzy-if(skiaContent,1,17000) == border-collapse-opacity-table-row-group.html border-collapse-opacity-table-row-group-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,5453) fuzzy-if(skiaContent,1,5500) == border-collapse-opacity-table-row.html border-collapse-opacity-table-row-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,29973) fuzzy-if(skiaContent,1,60000) == border-collapse-opacity-table.html border-collapse-opacity-table-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,2478) fuzzy-if(skiaContent,1,2500) == border-separate-opacity-table-cell.html border-separate-opacity-table-cell-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
fails == border-separate-opacity-table-column-group.html border-separate-opacity-table-column-group-ref.html # bug 424274
fails == border-separate-opacity-table-column.html border-separate-opacity-table-column-ref.html # bug 424274
-fuzzy-if(d2d,1,37170) == border-separate-opacity-table-row-group.html border-separate-opacity-table-row-group-ref.html
-skip-if(B2G||Mulet) fuzzy-if(d2d,1,12390) == border-separate-opacity-table-row.html border-separate-opacity-table-row-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) == border-separate-opacity-table.html border-separate-opacity-table-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+fuzzy-if(d2d,1,37170) fuzzy-if(skiaContent,1,38000) == border-separate-opacity-table-row-group.html border-separate-opacity-table-row-group-ref.html
+skip-if(B2G||Mulet) fuzzy-if(d2d,1,12390) fuzzy-if(skiaContent,1,13000) == border-separate-opacity-table-row.html border-separate-opacity-table-row-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,95000) == border-separate-opacity-table.html border-separate-opacity-table-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
!= scrollable-rowgroup-collapse-background.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-collapse-border.html scrollable-rowgroup-collapse-notref.html
!= scrollable-rowgroup-separate-background.html scrollable-rowgroup-separate-notref.html
== scrollable-rowgroup-separate-border.html scrollable-rowgroup-separate-notref.html # scrolling rowgroups were removed in bug 28800
== empty-cells-default-1.html empty-cells-default-1-ref.html
== empty-cells-default-2.html empty-cells-default-2-ref.html
-fuzzy-if(OSX,1,113) fuzzy-if(winWidget,1,12) fuzzy-if(Android,1,39) fuzzy-if(winWidget&&!layersGPUAccelerated,82,116) == table-row-opacity-dynamic-1.html table-row-opacity-dynamic-1-ref.html
+fuzzy-if(OSX,1,113) fuzzy-if(winWidget,1,12) fuzzy-if(Android,1,39) fuzzy-if(winWidget&&!layersGPUAccelerated,82,116) fuzzy-if(skiaContent,2,5400) == table-row-opacity-dynamic-1.html table-row-opacity-dynamic-1-ref.html
== table-row-opacity-dynamic-2.html table-row-opacity-dynamic-2-ref.html
diff --git a/layout/reftests/text-overflow/reftest.list b/layout/reftests/text-overflow/reftest.list
index e992da25798..ee418033012 100644
--- a/layout/reftests/text-overflow/reftest.list
+++ b/layout/reftests/text-overflow/reftest.list
@@ -5,7 +5,7 @@ skip-if(B2G||Mulet) HTTP(..) == marker-string.html marker-string-ref.html # Init
skip-if(Android||B2G) HTTP(..) == bidi-simple.html bidi-simple-ref.html # Fails on Android due to anti-aliasing
skip-if(!gtkWidget) fuzzy-if(gtkWidget,2,289) HTTP(..) == bidi-simple-scrolled.html bidi-simple-scrolled-ref.html # Fails on Windows and OSX due to anti-aliasing
skip-if(B2G||Mulet) fuzzy-if(Android&&AndroidVersion<15,206,41) fuzzy-if(Android&&AndroidVersion>=15,24,4000) fuzzy-if(cocoaWidget,1,40) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1770) HTTP(..) == scroll-rounding.html scroll-rounding-ref.html # bug 760264 # Initial mulet triage: parity with B2G/B2G Desktop
-fuzzy(2,453) HTTP(..) == anonymous-block.html anonymous-block-ref.html
+fuzzy(2,453) fuzzy-if(skiaContent,9,1800) HTTP(..) == anonymous-block.html anonymous-block-ref.html
skip-if(B2G||Mulet) HTTP(..) == false-marker-overlap.html false-marker-overlap-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
HTTP(..) == visibility-hidden.html visibility-hidden-ref.html
skip-if(B2G||Mulet) fuzzy-if(asyncPan&&!layersGPUAccelerated,102,1724) fuzzy-if(gtkWidget,10,8) HTTP(..) == block-padding.html block-padding-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
@@ -13,10 +13,10 @@ HTTP(..) == quirks-decorations.html quirks-decorations-ref.html
HTTP(..) == quirks-line-height.html quirks-line-height-ref.html
HTTP(..) == standards-decorations.html standards-decorations-ref.html
HTTP(..) == standards-line-height.html standards-line-height-ref.html
-skip-if(B2G||Mulet) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == selection.html selection-ref.html # bug 668849 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) fuzzy-if(skiaContent,1,4200) HTTP(..) == selection.html selection-ref.html # bug 668849 # Initial mulet triage: parity with B2G/B2G Desktop
HTTP(..) == marker-shadow.html marker-shadow-ref.html
== aligned-baseline.html aligned-baseline-ref.html
-skip-if(Android||B2G) == clipped-elements.html clipped-elements-ref.html
+skip-if(Android||B2G) fuzzy-if(skiaContent,1,5) == clipped-elements.html clipped-elements-ref.html
HTTP(..) == theme-overflow.html theme-overflow-ref.html
skip-if(B2G||Mulet) HTTP(..) == table-cell.html table-cell-ref.html # Initial mulet triage: parity with B2G/B2G Desktop
skip-if(Mulet) fuzzy-if(gtkWidget,10,32) HTTP(..) == two-value-syntax.html two-value-syntax-ref.html # MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables
diff --git a/layout/reftests/text-shadow/reftest.list b/layout/reftests/text-shadow/reftest.list
index 7808c9f0d2e..9f673a329c9 100644
--- a/layout/reftests/text-shadow/reftest.list
+++ b/layout/reftests/text-shadow/reftest.list
@@ -26,9 +26,9 @@ HTTP(..) == blur-opacity.html blur-opacity-ref.html
== overflow-not-scrollable-2.html overflow-not-scrollable-2-ref.html
needs-focus != text-shadow-selected-1.html text-shadow-selected-1-notref.html
-fails-if(Android||B2G) needs-focus == text-shadow-selected-1.html text-shadow-selected-1-ref.html # different foreground selection color on Android/B2G
+fails-if(Android||B2G) fuzzy-if(skiaContent,1,1000) needs-focus == text-shadow-selected-1.html text-shadow-selected-1-ref.html # different foreground selection color on Android/B2G
needs-focus != text-shadow-selected-2.html text-shadow-selected-2-notref.html
-fails-if(Android||B2G) needs-focus == text-shadow-selected-2.html text-shadow-selected-2-ref.html # different foreground selection color on Android/B2G
+fails-if(Android||B2G) fuzzy-if(skiaContent,1,1400) needs-focus == text-shadow-selected-2.html text-shadow-selected-2-ref.html # different foreground selection color on Android/B2G
# bug 692744
== text-shadow-on-space-1.html text-shadow-on-space-1-ref.html
diff --git a/layout/reftests/text-svgglyphs/reftest.list b/layout/reftests/text-svgglyphs/reftest.list
index be5726b3488..a6f9b8fe525 100644
--- a/layout/reftests/text-svgglyphs/reftest.list
+++ b/layout/reftests/text-svgglyphs/reftest.list
@@ -1,21 +1,21 @@
pref(gfx.font_rendering.opentype_svg.enabled,false) != svg-glyph-basic.svg svg-glyph-basic-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-basic.svg svg-glyph-basic-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(skiaContent,1,200) == svg-glyph-basic.svg svg-glyph-basic-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-invalid-ids.svg svg-glyph-invalid-ids-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,false) != svg-glyph-positioning.svg svg-glyph-positioning-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-positioning.svg svg-glyph-positioning-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(skiaContent,2,350) == svg-glyph-positioning.svg svg-glyph-positioning-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-html.html svg-glyph-html-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-direct.svg svg-glyph-direct-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-invalid.html svg-glyph-invalid-ref.html
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-objectfill-solid.svg svg-glyph-objectfill-solid-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-objectstroke-solid.svg svg-glyph-objectstroke-solid-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy(1,7) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,79) fuzzy-if(B2G,1,21) == svg-glyph-objectgradient.svg svg-glyph-objectgradient-ref.svg # see bug 871961#c5
-pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(cocoaWidget,1,7028) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,23) == svg-glyph-objectgradient-zoom.svg svg-glyph-objectgradient-zoom-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(skiaContent,2,200) == svg-glyph-objectstroke-solid.svg svg-glyph-objectstroke-solid-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy(1,7) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,79) fuzzy-if(B2G,1,21) fuzzy-if(skiaContent,1,300) == svg-glyph-objectgradient.svg svg-glyph-objectgradient-ref.svg # see bug 871961#c5
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(cocoaWidget,1,7028) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,23) fuzzy-if(skiaContent,1,250) == svg-glyph-objectgradient-zoom.svg svg-glyph-objectgradient-zoom-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(gtkWidget,1,1438) fuzzy-if(winWidget,1,1954) fuzzy-if(Android||B2G,8,3795) == svg-glyph-objectpattern.svg svg-glyph-objectpattern-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) == clip.html clip-ref.html
-pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy(1,13) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,62) fuzzy-if(B2G,1,25) == svg-glyph-objectopacity.svg svg-glyph-objectopacity-ref.svg # see bug 871961#c5
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy(1,13) fuzzy-if(gtkWidget&&/^Linux\x20x86_64/.test(http.oscpu),1,62) fuzzy-if(B2G,1,25) fuzzy-if(skiaContent,1,350) == svg-glyph-objectopacity.svg svg-glyph-objectopacity-ref.svg # see bug 871961#c5
pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(gtkWidget,1,2268) fuzzy-if(winWidget,1,3074) fuzzy-if(Android||B2G,5,4715) == svg-glyph-objectopacity2.svg svg-glyph-objectopacity2-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-paintnone.svg svg-glyph-paintnone-ref.svg
-pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-cachedopacity.svg svg-glyph-cachedopacity-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(skiaContent,2,200) == svg-glyph-paintnone.svg svg-glyph-paintnone-ref.svg
+pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(skiaContent,2,200) == svg-glyph-cachedopacity.svg svg-glyph-cachedopacity-ref.svg
pref(gfx.font_rendering.opentype_svg.enabled,true) fuzzy-if(cocoaWidget,255,100) == svg-glyph-objectvalue.svg svg-glyph-objectvalue-ref.svg
#pref(gfx.font_rendering.opentype_svg.enabled,true) fails == svg-glyph-mask.svg svg-glyph-mask-ref.svg # bug 872483, 1135329
pref(gfx.font_rendering.opentype_svg.enabled,true) == svg-glyph-paint-server.svg svg-glyph-paint-server-ref.svg
diff --git a/layout/reftests/text-transform/reftest.list b/layout/reftests/text-transform/reftest.list
index fd824abc55c..26961e23ab5 100644
--- a/layout/reftests/text-transform/reftest.list
+++ b/layout/reftests/text-transform/reftest.list
@@ -18,8 +18,8 @@ HTTP(..) != graphite-small-caps-1.html graphite-small-caps-1-notref.html
== uppercase-szlig-1.html uppercase-szlig-ref.html
# these use DejaVu Sans via @font-face for consistency of results
skip-if(B2G||Mulet) fuzzy-if(cocoaWidget,250,15) HTTP(..) == all-upper.html all-upper-ref.html # bug 773482, 1140292 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) fuzzy-if(cocoaWidget,250,15) HTTP(..) == all-lower.html all-lower-ref.html # bug 773482, 1140292 # Initial mulet triage: parity with B2G/B2G Desktop
-skip-if(B2G||Mulet) HTTP(..) == all-title.html all-title-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(cocoaWidget,250,15) fuzzy-if(skiaContent,1,1800) HTTP(..) == all-lower.html all-lower-ref.html # bug 773482, 1140292 # Initial mulet triage: parity with B2G/B2G Desktop
+skip-if(B2G||Mulet) fuzzy-if(skiaContent,1,80) HTTP(..) == all-title.html all-title-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
== smtp-upper.html smtp-upper-ref.html
== smtp-lower.html smtp-lower-ref.html
== smtp-title.html smtp-title-ref.html
diff --git a/layout/reftests/text/emoji-02.html b/layout/reftests/text/emoji-02.html
index 389d338e272..099b1847127 100644
--- a/layout/reftests/text/emoji-02.html
+++ b/layout/reftests/text/emoji-02.html
@@ -13,7 +13,8 @@ body {
-U+1F633: 😳
+
+U+1F633: 😳