Revert paint-invalidation-container ASSERT

This CL reverts
https://codereview.chromium.org/414503002

The RenderLayer change was wrong and is the cause of the regression.
Unfortunately it's unclear what the path forward is: the ASSERT is
triggering, which means there are some bugs in the code, but it is
caused by having several definitions of paint invalidation container.
Fixing it will require aligning these definitions and it's unclear
which one is right.

BUG=415513

Review URL: https://codereview.chromium.org/706353002

git-svn-id: svn://svn.chromium.org/blink/trunk@185075 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 5aff0385
...@@ -1331,6 +1331,8 @@ crbug.com/422199 ietestcenter/Javascript/15.2.3.4-1.html [ NeedsManualRebaseline ...@@ -1331,6 +1331,8 @@ crbug.com/422199 ietestcenter/Javascript/15.2.3.4-1.html [ NeedsManualRebaseline
crbug.com/424974 http/tests/appcache/different-https-origin-resource-main.html [ Failure ] crbug.com/424974 http/tests/appcache/different-https-origin-resource-main.html [ Failure ]
crbug.com/415513 fast/repaint/offset-change-wrong-invalidation-with-float.html [ NeedsRebaseline ]
# Timing out on WinXP after r183502 # Timing out on WinXP after r183502
crbug.com/422278 [ XP ] http/tests/serviceworker/fetch-canvas-tainting.html [ Pass Timeout ] crbug.com/422278 [ XP ] http/tests/serviceworker/fetch-canvas-tainting.html [ Pass Timeout ]
crbug.com/422278 [ Win ] http/tests/serviceworker/fetch-cors-xhr.html [ Pass Timeout ] crbug.com/422278 [ Win ] http/tests/serviceworker/fetch-cors-xhr.html [ Pass Timeout ]
......
{
"bounds": [800, 600],
"children": [
{
"bounds": [800, 600],
"contentsOpaque": true,
"drawsContent": true,
"repaintRects": [
[70, 94, 18, 20],
[70, 94, 7, 19],
[70, -156, 18, 20],
[70, -156, 7, 19],
[48, 94, 40, 20],
[48, -156, 40, 20]
],
"children": [
{
"position": [30, 44],
"transformOrigin": [18, 10],
"bounds": [25, 20],
"drawsContent": true,
"children": [
{
"position": [18, 0],
"bounds": [0, 19],
"backfaceVisibility": "hidden"
}
]
},
{
"position": [30, 44],
"bounds": [18, 20],
"drawsContent": true
}
]
}
]
}
<!DOCTYPE html>
<html>
<head>
<script src="resources/text-based-repaint.js"></script>
<style>
#menu {
float: left;
position: relative;
}
#watches {
float: left;
transform: scale(1,1);
}
#placeholder {
position: relative;
backface-visibility: hidden;
}
#submenu {
position: absolute;
top: -200px;
background: red;
}
</style>
</head>
<body>
<div>This test has passed if there is no red rectangle below.</div>
<ul>
<li id="watches"><span id="placeholder"></span></li>
<li id="menu">
<ul id="submenu">
<li></li>
</ul>
</li>
</ul>
<script>
if (window.testRunner)
testRunner.waitUntilDone();
window.testIsAsync = true;
var submenu = document.getElementById("submenu");
function repaintTest()
{
submenu.style.top = "-200px";
finishRepaintTest();
}
window.requestAnimationFrame(function() {
submenu.style.top = "50px";
window.requestAnimationFrame(function() {
runRepaintTest();
});
});
</script>
</body>
</html>
...@@ -997,7 +997,7 @@ RenderLayer* RenderLayer::enclosingLayerForPaintInvalidation() const ...@@ -997,7 +997,7 @@ RenderLayer* RenderLayer::enclosingLayerForPaintInvalidation() const
if (isPaintInvalidationContainer()) if (isPaintInvalidationContainer())
return const_cast<RenderLayer*>(this); return const_cast<RenderLayer*>(this);
for (const RenderLayer* curr = parent(); curr; curr = curr->parent()) { for (const RenderLayer* curr = compositingContainer(); curr; curr = curr->compositingContainer()) {
if (curr->isPaintInvalidationContainer()) if (curr->isPaintInvalidationContainer())
return const_cast<RenderLayer*>(curr); return const_cast<RenderLayer*>(curr);
} }
......
...@@ -181,7 +181,8 @@ void RenderLayerModelObject::invalidateTreeIfNeeded(const PaintInvalidationState ...@@ -181,7 +181,8 @@ void RenderLayerModelObject::invalidateTreeIfNeeded(const PaintInvalidationState
bool establishesNewPaintInvalidationContainer = isPaintInvalidationContainer(); bool establishesNewPaintInvalidationContainer = isPaintInvalidationContainer();
const RenderLayerModelObject& newPaintInvalidationContainer = *adjustCompositedContainerForSpecialAncestors(establishesNewPaintInvalidationContainer ? this : &paintInvalidationState.paintInvalidationContainer()); const RenderLayerModelObject& newPaintInvalidationContainer = *adjustCompositedContainerForSpecialAncestors(establishesNewPaintInvalidationContainer ? this : &paintInvalidationState.paintInvalidationContainer());
ASSERT(&newPaintInvalidationContainer == containerForPaintInvalidation()); // FIXME: This assert should be re-enabled when we move paint invalidation to after compositing update. crbug.com/360286
// ASSERT(&newPaintInvalidationContainer == containerForPaintInvalidation());
PaintInvalidationReason reason = invalidatePaintIfNeeded(paintInvalidationState, newPaintInvalidationContainer); PaintInvalidationReason reason = invalidatePaintIfNeeded(paintInvalidationState, newPaintInvalidationContainer);
clearPaintInvalidationState(paintInvalidationState); clearPaintInvalidationState(paintInvalidationState);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment