diff --git a/gfx/2d/DrawTargetD2D1.cpp b/gfx/2d/DrawTargetD2D1.cpp index 6c8175e9983a..0df50ac8cea4 100644 --- a/gfx/2d/DrawTargetD2D1.cpp +++ b/gfx/2d/DrawTargetD2D1.cpp @@ -15,6 +15,7 @@ #include "FilterNodeD2D1.h" #include "ExtendInputEffectD2D1.h" #include "Tools.h" +#include "nsAppRunner.h" using namespace std; @@ -119,7 +120,10 @@ DrawTargetD2D1::EnsureLuminanceEffect() already_AddRefed DrawTargetD2D1::IntoLuminanceSource(LuminanceType aLuminanceType, float aOpacity) { - if (aLuminanceType != LuminanceType::LUMINANCE) { + if ((aLuminanceType != LuminanceType::LUMINANCE) || + // See bug 1372577, some race condition where we get invalid + // results with D2D in the parent process. Fallback in that case. + XRE_IsParentProcess()) { return DrawTarget::IntoLuminanceSource(aLuminanceType, aOpacity); } diff --git a/layout/reftests/w3c-css/submitted/masking/reftest.list b/layout/reftests/w3c-css/submitted/masking/reftest.list index 41118dd9dee1..b0b470362057 100644 --- a/layout/reftests/w3c-css/submitted/masking/reftest.list +++ b/layout/reftests/w3c-css/submitted/masking/reftest.list @@ -27,8 +27,9 @@ fuzzy-if(skiaContent||winWidget,1,20000) == mask-image-2.html mask-image-2-ref.h fuzzy-if(skiaContent||winWidget,1,43) == mask-image-3c.html mask-image-3-ref.html fuzzy-if(skiaContent||winWidget,1,43) == mask-image-3d.html mask-image-3-ref.html == mask-image-3e.html mask-image-3-ref.html -fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) == mask-image-3f.html mask-image-3-ref.html -fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) == mask-image-3g.html mask-image-3-ref.html +# Due to SVG luminance, see bug 1372577, parent process doesn't use d2d for luminance. +fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) fuzzy-if(winWidget&&!browserIsRemote,50,85) == mask-image-3f.html mask-image-3-ref.html +fuzzy-if(skiaContent||winWidget,50,85) fuzzy-if(webrender,1,126) fuzzy-if(d2d,255,1) fuzzy-if(winWidget&&!browserIsRemote,50,85) == mask-image-3g.html mask-image-3-ref.html pref(layout.css.clip-path-shapes.enabled,true) fuzzy-if(winWidget,1,3) fuzzy-if(skiaContent,2,12) == mask-image-3h.html mask-image-3-ref.html fuzzy-if(skiaContent,71,203) == mask-image-3i.html mask-image-3-ref.html == mask-image-4a.html blank.html