https://bugs.webkit.org/show_bug.cgi?id=81083
Patch by Dana Jansens <danakj@chromium.org> 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):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110878
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-03-15 Dana Jansens <danakj@chromium.org>
+
+ [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 <levin@chromium.org>
Various autoresize fixes.
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.
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.
protected:
struct StackObject {
+ StackObject() : surface(0) { }
+ StackObject(const RenderSurfaceType* surface) : surface(surface) { }
const RenderSurfaceType* surface;
Region occlusionInScreen;
Region occlusionInTarget;
+2012-03-15 Dana Jansens <danakj@chromium.org>
+
+ [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 <levin@chromium.org>
Various autoresize fixes.
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