Title: [110878] trunk/Source
- Revision
- 110878
- Author
- [email protected]
- Date
- 2012-03-15 13:06:19 -0700 (Thu, 15 Mar 2012)
Log Message
[Chromium] REGRESSION(r110596) CCQuadCullerTest.verifyCullChildLinesUpTopLeft fails on Windows
https://bugs.webkit.org/show_bug.cgi?id=81083
Patch by Dana Jansens <[email protected]> on 2012-03-15
Reviewed by Adrienne Walker.
Source/WebCore:
The surface pointer on the occlusion tracker stack is uninitialized, and
can be non-null, but the layer's target surface is null, causing asserts
to fail. Fixes the TestCCOcclusionTrackerImpl to initialize the stack's
surface to be null.
* platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
(WebCore::::enterTargetRenderSurface):
(WebCore::::unoccludedContentRect):
* platform/graphics/chromium/cc/CCOcclusionTracker.h:
(WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
Source/WebKit/chromium:
* tests/CCQuadCullerTest.cpp:
(WebCore::TEST):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (110877 => 110878)
--- trunk/Source/WebCore/ChangeLog 2012-03-15 20:06:11 UTC (rev 110877)
+++ trunk/Source/WebCore/ChangeLog 2012-03-15 20:06:19 UTC (rev 110878)
@@ -1,3 +1,21 @@
+2012-03-15 Dana Jansens <[email protected]>
+
+ [Chromium] REGRESSION(r110596) CCQuadCullerTest.verifyCullChildLinesUpTopLeft fails on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=81083
+
+ Reviewed by Adrienne Walker.
+
+ The surface pointer on the occlusion tracker stack is uninitialized, and
+ can be non-null, but the layer's target surface is null, causing asserts
+ to fail. Fixes the TestCCOcclusionTrackerImpl to initialize the stack's
+ surface to be null.
+
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::::enterTargetRenderSurface):
+ (WebCore::::unoccludedContentRect):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.h:
+ (WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
+
2012-03-15 David Levin <[email protected]>
Various autoresize fixes.
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp (110877 => 110878)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp 2012-03-15 20:06:11 UTC (rev 110877)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp 2012-03-15 20:06:19 UTC (rev 110878)
@@ -64,8 +64,7 @@
const RenderSurfaceType* oldAncestorThatMovesPixels = !oldTarget ? 0 : oldTarget->nearestAncestorThatMovesPixels();
const RenderSurfaceType* newAncestorThatMovesPixels = newTarget->nearestAncestorThatMovesPixels();
- m_stack.append(StackObject());
- m_stack.last().surface = newTarget;
+ m_stack.append(StackObject(newTarget));
// We copy the screen occlusion into the new RenderSurface subtree, but we never copy in the
// target occlusion, since we are looking at a new RenderSurface target.
@@ -311,6 +310,8 @@
if (contentRect.isEmpty())
return contentRect;
+ ASSERT(layer->targetRenderSurface() == m_stack.last().surface);
+
// We want to return a rect that contains all the visible parts of |contentRect| in both screen space and in the target surface.
// So we find the visible parts of |contentRect| in each space, and take the intersection.
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h (110877 => 110878)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h 2012-03-15 20:06:11 UTC (rev 110877)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h 2012-03-15 20:06:19 UTC (rev 110878)
@@ -86,6 +86,8 @@
protected:
struct StackObject {
+ StackObject() : surface(0) { }
+ StackObject(const RenderSurfaceType* surface) : surface(surface) { }
const RenderSurfaceType* surface;
Region occlusionInScreen;
Region occlusionInTarget;
Modified: trunk/Source/WebKit/chromium/ChangeLog (110877 => 110878)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-03-15 20:06:11 UTC (rev 110877)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-03-15 20:06:19 UTC (rev 110878)
@@ -1,3 +1,13 @@
+2012-03-15 Dana Jansens <[email protected]>
+
+ [Chromium] REGRESSION(r110596) CCQuadCullerTest.verifyCullChildLinesUpTopLeft fails on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=81083
+
+ Reviewed by Adrienne Walker.
+
+ * tests/CCQuadCullerTest.cpp:
+ (WebCore::TEST):
+
2012-03-15 David Levin <[email protected]>
Various autoresize fixes.
Modified: trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp (110877 => 110878)
--- trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp 2012-03-15 20:06:11 UTC (rev 110877)
+++ trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp 2012-03-15 20:06:19 UTC (rev 110878)
@@ -110,8 +110,7 @@
EXPECT_NEAR(overdraw.m_pixelsCulled, 0, 1);
}
-// Fails on Windows https://bugs.webkit.org/show_bug.cgi?id=81083
-TEST(CCQuadCullerTest, FAILS_verifyCullChildLinesUpTopLeft)
+TEST(CCQuadCullerTest, verifyCullChildLinesUpTopLeft)
{
DECLARE_AND_INITIALIZE_TEST_QUADS
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes