WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-126160-20140505114620.patch (text/plain), 22.59 KB, created by
Ion Rosca
on 2014-05-05 01:46:46 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Ion Rosca
Created:
2014-05-05 01:46:46 PDT
Size:
22.59 KB
patch
obsolete
>Subversion Revision: 168157 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index d7f6fbb1a95e97a1b83b1fc93bb83a5d19c09a06..67b8a89f740f5200e8a506efc0bdbcb4c05a4918 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,37 @@ >+2014-05-05 Ion Rosca <rosca@adobe.com> >+ >+ [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden >+ https://bugs.webkit.org/show_bug.cgi?id=126160 >+ >+ When the isolating layer has overflow:hidden, it will create a descendant clipping layer >+ (m_childContainmentLayer), which will restrict the bleding layer to reading the backdrop >+ from the isolating layer. >+ The solution in this patch is to forbid the isolating layer to create a descendant clipping >+ layer and make all the children to get their own ancestor clipping layers instead. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Tests: css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html >+ css3/compositing/blend-mode-clip-accelerated-blending-canvas.html >+ css3/compositing/blend-mode-clip-accelerated-blending-child.html >+ css3/compositing/blend-mode-clip-accelerated-blending-double.html >+ css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html >+ css3/compositing/blend-mode-clip-accelerated-transformed-blending.html >+ css3/compositing/blend-mode-clip-rect-accelerated-blending.html >+ >+ * rendering/RenderLayerBacking.cpp: >+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): >+ when the compositing ancestor isolates blending we take it into account for computing >+ the clipping rect for this layer, because it was not allowed to create the descendant >+ clipping layer. >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::clippedByAncestor): >+ when the compositing ancestor isolates blending we decide if a layer is clipped by ancestor >+ by computing the clipping rect taking into account all the ancestors up to and including >+ the compositing ancestor. >+ (WebCore::RenderLayerCompositor::clipsCompositingDescendants): >+ if a layer isolates blending, it is not allowed to create a descendant clipping layer. >+ > 2014-05-01 Ryuan Choi <ryuan.choi@samsung.com> > > Remove TiledBackingStore stuff from Frame >diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp >index b99703ce472b60967187afdc4cdecad36b2a6216..6dd044f244de6fd43a43c763ea1158a30389f93a 100644 >--- a/Source/WebCore/rendering/RenderLayerBacking.cpp >+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp >@@ -775,7 +775,8 @@ void RenderLayerBacking::updateGraphicsLayerGeometry() > // Call calculateRects to get the backgroundRect which is what is used to clip the contents of this > // layer. Note that we call it with temporaryClipRects = true because normally when computing clip rects > // for a compositing layer, rootLayer is the layer itself. >- RenderLayer::ClipRectsContext clipRectsContext(compAncestor, 0, TemporaryClipRects, IgnoreOverlayScrollbarSize, IgnoreOverflowClip); >+ ShouldRespectOverflowClip shouldRespectOverflowClip = compAncestor->isolatesCompositedBlending() ? RespectOverflowClip : IgnoreOverflowClip; >+ RenderLayer::ClipRectsContext clipRectsContext(compAncestor, 0, TemporaryClipRects, IgnoreOverlayScrollbarSize, shouldRespectOverflowClip); > LayoutRect parentClipRect = m_owningLayer.backgroundClipRect(clipRectsContext).rect(); // FIXME: Incorrect for CSS regions. > ASSERT(parentClipRect != LayoutRect::infiniteRect()); > m_ancestorClippingLayer->setPosition(FloatPoint(parentClipRect.location() - graphicsLayerParentLocation)); >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index 3a976bbcf41bd2c78dfcb55c4513c41c82c11270..684016e8f015241e13faa852dde7c33d44491c45 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -2292,20 +2292,25 @@ bool RenderLayerCompositor::clippedByAncestor(RenderLayer& layer) const > > // If the compositingAncestor clips, that will be taken care of by clipsCompositingDescendants(), > // so we only care about clipping between its first child that is our ancestor (the computeClipRoot), >- // and layer. >- RenderLayer* computeClipRoot = nullptr; >- RenderLayer* parent = &layer; >- while (parent) { >- RenderLayer* next = parent->parent(); >- if (next == compositingAncestor) { >- computeClipRoot = parent; >- break; >+ // and layer. The exception is when the compositingAncestor isolates composited blending children, >+ // in this case it is not allowed to clipsCompositingDescendants() and each of its children >+ // will be clippedByAncestor()s, including the compositingAncestor. >+ RenderLayer* computeClipRoot = compositingAncestor; >+ if (!compositingAncestor->isolatesCompositedBlending()) { >+ computeClipRoot = nullptr; >+ RenderLayer* parent = &layer; >+ while (parent) { >+ RenderLayer* next = parent->parent(); >+ if (next == compositingAncestor) { >+ computeClipRoot = parent; >+ break; >+ } >+ parent = next; > } >- parent = next; >+ >+ if (!computeClipRoot || computeClipRoot == &layer) >+ return false; > } >- >- if (!computeClipRoot || computeClipRoot == &layer) >- return false; > > return layer.backgroundClipRect(RenderLayer::ClipRectsContext(computeClipRoot, 0, TemporaryClipRects)).rect() != LayoutRect::infiniteRect(); // FIXME: Incorrect for CSS regions. > } >@@ -2315,7 +2320,7 @@ bool RenderLayerCompositor::clippedByAncestor(RenderLayer& layer) const > // into the hierarchy between this layer and its children in the z-order hierarchy. > bool RenderLayerCompositor::clipsCompositingDescendants(const RenderLayer& layer) const > { >- return layer.hasCompositingDescendant() && layer.renderer().hasClipOrOverflowClip(); >+ return layer.hasCompositingDescendant() && layer.renderer().hasClipOrOverflowClip() && !layer.isolatesCompositedBlending(); > } > > bool RenderLayerCompositor::requiresCompositingForScrollableFrame() const >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 24cebea6bf9827d5dbd5167d952176797ed51888..41390227e958b86cc0868ab664b531c5f8179188 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,26 @@ >+2014-05-05 Ion Rosca <rosca@adobe.com> >+ >+ [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden >+ https://bugs.webkit.org/show_bug.cgi?id=126160 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * css3/compositing/blend-mode-accelerated-parent-overflow-hidden-expected.html: Added. >+ * css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-canvas-expected.txt: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-canvas.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-child-expected.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-child.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-double-expected.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-double.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-with-siblings-expected.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-transformed-blending-expected.html: Added. >+ * css3/compositing/blend-mode-clip-accelerated-transformed-blending.html: Added. >+ * css3/compositing/blend-mode-clip-rect-accelerated-blending.html: Added. >+ * css3/compositing/blend-mode-clip-rect-accelerated-blending-expected.html: Added. >+ * css3/compositing/blend-mode-isolation-accelerated-overflow-hidden-expected.txt: >+ > 2014-05-01 Alexey Proskuryakov <ap@apple.com> > > REGRESSION(r125251): It made svg/custom/use-instanceRoot-as-event-target.xhtml assert and flakey >diff --git a/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden-expected.html b/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12c0299895c7ba877d4ef373ea03f6ad197987f7 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden-expected.html >@@ -0,0 +1,13 @@ >+<!DOCTYPE HTML> >+ >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ background: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that accelerated blending works when the backdrop is a normal flow only layer.</p> >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html b/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6b3e5ad9d04539331d4e8d6a032c6a52219cabbe >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html >@@ -0,0 +1,31 @@ >+<!DOCTYPE HTML> >+ >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+ background: rgb(0, 255, 0); >+ isolation:isolate; >+ -webkit-isolation:isolate; >+ position: relative; /*avoid #130891 issue*/ >+ } >+ >+ .blender { >+ >+ -webkit-mix-blend-mode: difference; >+ mix-blend-mode: difference; >+ } >+ >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+</style> >+ >+<p>This test checks that accelerated blending works when the backdrop is a normal flow only layer.</p> >+<div class="parent"> >+ <div class="blender accelerated" onclick="alert(this.className);this.className = ((this.className == 'blender accelerated') ? 'accelerated' : 'blender accelerated')" style="margin-left: 10px; >+ width: 400px; >+ height: 20px; >+ background: rgb(0, 0, 0);"></div> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas-expected.txt b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e8228a0863cf61879e3c2771009b3f79590bc4ef >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas-expected.txt >@@ -0,0 +1,30 @@ >+ (GraphicsLayer >+ (bounds 800.00 600.00) >+ (children 1 >+ (GraphicsLayer >+ (bounds 800.00 600.00) >+ (contentsOpaque 1) >+ (children 1 >+ (GraphicsLayer >+ (position 8.00 8.00) >+ (bounds 100.00 100.00) >+ (contentsOpaque 1) >+ (drawsContent 1) >+ (children 1 >+ (GraphicsLayer >+ (bounds 100.00 100.00) >+ (blendMode difference) >+ (children 1 >+ (GraphicsLayer >+ (bounds 100.00 100.00) >+ (drawsContent 1) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+ ) >+) >+ >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b892c0fba0e9417632e8db9385a453305d3ad3f3 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-canvas.html >@@ -0,0 +1,42 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+ background: rgb(0, 255, 0); >+ isolation: isolate; >+ position: relative; /*avoid #130891 issue*/ >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+</style> >+ >+<!-- <p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer is an accelerated canvas.<br /> --> >+<!-- Test passes if you see a green rectangle.</p> --> >+<div class="parent"> >+ <canvas class="blending" id="blending-canvas" width="400" height="400"></canvas> >+</div> >+<pre id="layers">Layer tree goes here in DRT</pre> >+<script> >+ if (window.testRunner) { >+ testRunner.dumpAsText(); >+ testRunner.waitUntilDone(); >+ } >+ function doTest() { >+ var canvas = document.getElementById("blending-canvas"); >+ var ctx = canvas.getContext("2d"); >+ ctx.fillStyle = "#000000"; >+ ctx.fillRect(0,0,400,400); >+ >+ if (window.testRunner) { >+ document.getElementById('layers').innerText = window.internals.layerTreeAsText(document); >+ testRunner.notifyDone(); >+ } >+ } >+ window.addEventListener('load', doTest, false); >+</script> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child-expected.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..97c0461b3dc4a83067c4eeca8c2f0d0dea03c8d6 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child-expected.html >@@ -0,0 +1,13 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ background: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer is accelerated.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c40f6beb3c4944d3f1827603e56936a8ae2da739 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-child.html >@@ -0,0 +1,29 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+ background: rgb(0, 255, 0); >+ isolation: isolate; >+ position: relative; /*avoid #130891 issue*/ >+ } >+ >+ .child { >+ width: 400px; >+ height: 400px; >+ background: rgb(0, 0, 0); >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer is accelerated.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+ <div class="accelerated blending child"></div> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double-expected.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..efdf97bfcec3b527049fef6fef01410ef234763a >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double-expected.html >@@ -0,0 +1,13 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ background: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>Test if blending works when the blending layer is clipped by one accelerated layer and by one software layer.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ea0c2fc0aa0df37dae067133e7cdf78059b4d65e >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-double.html >@@ -0,0 +1,38 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ } >+ .child { >+ width: 400px; >+ height: 50px; >+ } >+ .isolating { >+ isolation: isolate; >+ } >+ .clipping { >+ overflow: hidden; >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+ .black { >+ background-color: rgb(0, 0, 0); >+ } >+ .green { >+ background-color: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>Test if blending works when the blending layer is clipped by one accelerated layer and by one software layer.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="isolating accelerated clipping green parent"> >+ <div class="clipping parent" style="position: relative; left: 10px; right: 10px;"> >+ <div class="accelerated blending black child"></div> >+ <div class="accelerated green child"></div> >+ </div> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings-expected.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..362d046d9cb5e899d54200efb61e3f999cfa659b >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings-expected.html >@@ -0,0 +1,13 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ background-color: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer is accelerated.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ea943f7807ef0fd3fa26e24869991628249149f5 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html >@@ -0,0 +1,34 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+ isolation: isolate; >+ position: relative; /*avoid #130891 issue*/ >+ } >+ >+ .child { >+ width: 400px; >+ height: 50px; >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+ .black { >+ background-color: rgb(0, 0, 0); >+ } >+ .green { >+ background-color: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer is accelerated.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="green parent"> >+ <div class="accelerated blending black child"></div> >+ <div class="accelerated green child"></div> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending-expected.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..739a7cdcc1b97f79e70558478227b3a19e8f04b6 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending-expected.html >@@ -0,0 +1,13 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ background: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer has 3d transform.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending.html b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f01041c7a296af49ad028b96654aec561d1c0c41 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-accelerated-transformed-blending.html >@@ -0,0 +1,30 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ overflow:hidden; >+ background: rgb(0, 255, 0); >+ isolation: isolate; >+ position: relative; /*avoid #130891 issue*/ >+ } >+ >+ .child { >+ width: 400px; >+ height: 20px; >+ background: rgb(0, 0, 0); >+ position: relative; >+ top: 110px; >+ left: -80px; >+ -webkit-transform: rotateZ(45deg) rotateY(30deg); >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer has overflow hidden and the blending layer has 3d transform.<br /> >+Test passes if you see a green rectangle.</p> >+<div class="parent"> >+ <div class="blending child"></div> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending-expected.html b/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8b7bf5d85ccb8d9b410f981c7badeb7f6fa83ae6 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending-expected.html >@@ -0,0 +1,15 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 100px; >+ height: 100px; >+ position: absolute; >+ background: rgb(0, 255, 0); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer is absolute positioned and has a clip rect.<br /> >+Test passes if you see a green rectangle.</p> >+ >+<div class="parent"> >+</div> >diff --git a/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending.html b/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending.html >new file mode 100644 >index 0000000000000000000000000000000000000000..efc81c2f7f2f96cc79232a0a2613df0e0dc5f5a8 >--- /dev/null >+++ b/LayoutTests/css3/compositing/blend-mode-clip-rect-accelerated-blending.html >@@ -0,0 +1,30 @@ >+<!DOCTYPE HTML> >+<style> >+ .parent { >+ width: 300px; >+ height: 300px; >+ position: absolute; >+ clip: rect(0px, 100px, 100px, 0px); >+ background: rgb(0, 255, 0); >+ isolation: isolate; >+ } >+ >+ .child { >+ width: 400px; >+ height: 400px; >+ background: rgb(0, 0, 0); >+ } >+ .blending { >+ mix-blend-mode: difference; >+ } >+ .accelerated { >+ -webkit-transform: translateZ(0px); >+ } >+</style> >+ >+<p>This test checks that blending works if the isolating layer is absolute positioned and has a clip rect.<br /> >+Test passes if you see a green rectangle.</p> >+ >+<div class="parent"> >+ <div class="accelerated blending child"></div> >+</div>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 126160
:
219914
|
225367
|
225369
|
227422
|
228829
|
230811
|
230812
|
230814
|
230816
|
230818
|
230820