Commit a8157865 authored by mitz@apple.com's avatar mitz@apple.com

<rdar://problem/8895977> REGRESSION: multicol crashes with positioned elements

https://bugs.webkit.org/show_bug.cgi?id=48983

Reviewed by Darin Adler.

Source/WebCore: 

Test: fast/multicol/paginated-layer-crash.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintPaginatedChildLayer): Bring the logic for finding pagintating layers
into sync with updatePagination() after r68069.
(WebCore::RenderLayer::hitTestPaginatedChildLayer): Ditto.

LayoutTests: 

* fast/multicol/paginated-layer-crash-expected.txt: Added.
* fast/multicol/paginated-layer-crash.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@82158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent d7c45478
2011-03-28 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8895977> REGRESSION: multicol crashes with positioned elements
https://bugs.webkit.org/show_bug.cgi?id=48983
* fast/multicol/paginated-layer-crash-expected.txt: Added.
* fast/multicol/paginated-layer-crash.html: Added.
2011-03-28 Vincent Scheib <scheib@chromium.org>
Chromium rebaseline for r82123.
......
Test for https://bugs.webkit.org/show_bug.cgi?id=48983 REGRESSION: multicol crashes with positioned elements.
This test should not cause a crash.
<style>
.section {
position: absolute;
-webkit-column-count: 2;
}
.graph {
overflow: hidden;
}
.img {
position: relative;
width: 180px;
}
</style>
<p>
Test for <i><a href="https://bugs.webkit.org/show_bug.cgi?id=48983">https://bugs.webkit.org/show_bug.cgi?id=48983</a>
REGRESSION: multicol crashes with positioned elements</i>.
</p>
<p>
This test should not cause a crash.
</p>
<div class="section">
<div class="graph">
<div class="img"></div>
</div>
</div>
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText();
</script>
2011-03-28 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8895977> REGRESSION: multicol crashes with positioned elements
https://bugs.webkit.org/show_bug.cgi?id=48983
Test: fast/multicol/paginated-layer-crash.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintPaginatedChildLayer): Bring the logic for finding pagintating layers
into sync with updatePagination() after r68069.
(WebCore::RenderLayer::hitTestPaginatedChildLayer): Ditto.
2011-03-28 Maciej Stachowiak <mjs@apple.com>
Reviewed by Darin Adler' .
......@@ -2626,9 +2626,9 @@ void RenderLayer::paintPaginatedChildLayer(RenderLayer* childLayer, RenderLayer*
Vector<RenderLayer*> columnLayers;
RenderLayer* ancestorLayer = isNormalFlowOnly() ? parent() : stackingContext();
for (RenderLayer* curr = childLayer->parent(); curr; curr = curr->parent()) {
if (curr->renderer()->hasColumns())
if (curr->renderer()->hasColumns() && checkContainingBlockChainForPagination(childLayer->renderer(), curr->renderBox()))
columnLayers.append(curr);
if (curr == ancestorLayer || (curr->parent() && curr->parent()->renderer()->isPositioned()))
if (curr == ancestorLayer)
break;
}
......@@ -3101,9 +3101,9 @@ RenderLayer* RenderLayer::hitTestPaginatedChildLayer(RenderLayer* childLayer, Re
Vector<RenderLayer*> columnLayers;
RenderLayer* ancestorLayer = isNormalFlowOnly() ? parent() : stackingContext();
for (RenderLayer* curr = childLayer->parent(); curr; curr = curr->parent()) {
if (curr->renderer()->hasColumns())
if (curr->renderer()->hasColumns() && checkContainingBlockChainForPagination(childLayer->renderer(), curr->renderBox()))
columnLayers.append(curr);
if (curr == ancestorLayer || (curr->parent() && curr->parent()->renderer()->isPositioned()))
if (curr == ancestorLayer)
break;
}
......
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