author | Matt Woodrow <mwoodrow@mozilla.com> |
Fri, 27 Apr 2012 12:24:53 +1200 | |
changeset 92562 | 3ca6df58d05d3ceab3fcca20643695aac5a97d7e |
parent 92561 | 1751cbffa7084e4ea4c0a149dfd44e3ea93c7ee9 |
child 92563 | 35dfe0d44d83ba99c977e43ebc4d10f8fae45513 |
push id | 8753 |
push user | mwoodrow@mozilla.com |
push date | Fri, 27 Apr 2012 00:25:03 +0000 |
treeherder | mozilla-inbound@e8bf76219f36 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 747718 |
milestone | 15.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/base/FrameLayerBuilder.cpp +++ b/layout/base/FrameLayerBuilder.cpp @@ -1211,17 +1211,17 @@ ContainerState::ThebesLayerData::Accumul // pixel-aligned (thus the item will not be truly uniform). if (isUniform) { bool snap; nsRect bounds = aItem->GetBounds(aState->mBuilder, &snap); if (!aState->ScaleToInsidePixels(bounds, snap).Contains(aVisibleRect)) { isUniform = false; } } - if (isUniform) { + if (isUniform && aClip.mRoundedClipRects.IsEmpty()) { if (mVisibleRegion.IsEmpty()) { // This color is all we have mSolidColor = uniformColor; mIsSolidColorInVisibleRegion = true; } else if (mIsSolidColorInVisibleRegion && mVisibleRegion.IsEqual(nsIntRegion(aVisibleRect))) { // we can just blend the colors together mSolidColor = NS_ComposeColors(mSolidColor, uniformColor);
new file mode 100644 --- /dev/null +++ b/layout/reftests/border-radius/color-layer-1-ref.html @@ -0,0 +1,10 @@ +<!DOCTYPE HTML> +<html> +<body style="overflow:hidden"> +<div style="border-radius:100px; width:800px; height:1000px; position:absolute; left:0px; top:0px; overflow:hidden"> + <div style="background:blue; width:100%; height:100%;"></div> + <div style="position:absolute; top:100px; left:100px; width:100px; height:100px; border:5px solid white"></div> + <div style="position:absolute; top:100px; left:100px; width:100px; height:100px; border:5px solid blue"></div> +</div> +</body> +</html>
new file mode 100644 --- /dev/null +++ b/layout/reftests/border-radius/color-layer-1a.html @@ -0,0 +1,8 @@ +<!DOCTYPE HTML> +<html> +<body style="overflow:hidden"> +<div style="border-radius:100px; width:800px; height:1000px; position:absolute; left:0px; top:0px; overflow:hidden"> + <div style="background:blue; width:100%; height:100%;"></div> +</div> +</body> +</html> \ No newline at end of file
--- a/layout/reftests/border-radius/reftest.list +++ b/layout/reftests/border-radius/reftest.list @@ -77,8 +77,10 @@ random-if(winWidget) HTTP(..) == corner- == scroll-1.html scroll-1-ref.html # see bug 602892 == zero-radius-clip-1.html zero-radius-clip-ref.html == iframe-1.html iframe-1-ref.html # Test for antialiasing gaps between background and border fails-if(winWidget) == curved-border-background-nogap.html curved-border-background-nogap-ref.html + +== color-layer-1a.html color-layer-1-ref.html