From 1afe9df9d0d1bcc6322a95aa42453f94377774a8 Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Thu, 28 Feb 2013 21:49:30 +1300 Subject: [PATCH] Bug 846144 - Don't optimize backgrounds to an ImageLayer if they have border-radius clipping. r=roc --- layout/base/nsDisplayList.cpp | 8 ++++++++ layout/reftests/bugs/846144-1-ref.html | 24 ++++++++++++++++++++++++ layout/reftests/bugs/846144-1.html | 24 ++++++++++++++++++++++++ layout/reftests/bugs/reftest.list | 1 + 4 files changed, 57 insertions(+) create mode 100644 layout/reftests/bugs/846144-1-ref.html create mode 100644 layout/reftests/bugs/846144-1.html diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index 3c3a775776ea..b0ec58772484 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -1792,6 +1792,14 @@ nsDisplayBackgroundImage::TryOptimizeToImageLayer(LayerManager* aManager, nsRect borderArea = nsRect(ToReferenceFrame(), mFrame->GetSize()); const nsStyleBackground::Layer &layer = mBackgroundStyle->mLayers[mLayer]; + if (layer.mClip != NS_STYLE_BG_CLIP_BORDER) { + return false; + } + nscoord radii[8]; + if (mFrame->GetBorderRadii(radii)) { + return false; + } + nsBackgroundLayerState state = nsCSSRendering::PrepareBackgroundLayer(presContext, mFrame, diff --git a/layout/reftests/bugs/846144-1-ref.html b/layout/reftests/bugs/846144-1-ref.html new file mode 100644 index 000000000000..2c428d2f723b --- /dev/null +++ b/layout/reftests/bugs/846144-1-ref.html @@ -0,0 +1,24 @@ + + + + Border radius issue demo + + + +
+ diff --git a/layout/reftests/bugs/846144-1.html b/layout/reftests/bugs/846144-1.html new file mode 100644 index 000000000000..fa7f7c92549f --- /dev/null +++ b/layout/reftests/bugs/846144-1.html @@ -0,0 +1,24 @@ + + + + Border radius issue demo + + + +
+ diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index 7badaddea120..879a96368144 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -1747,3 +1747,4 @@ skip-if(B2G) == 818276-1.html 818276-1-ref.html == 827577-1b.html 827577-1-ref.html == 827799-1.html about:blank == 836844-1.html 836844-1-ref.html +== 846144-1.html 846144-1-ref.html