Changeset 122376 in webkit
- Timestamp:
- Jul 11, 2012 3:26:55 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r122374 r122376 1 2012-07-10 Simon Fraser <simon.fraser@apple.com> 2 3 Assertion ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) when compositing in paginated mode 4 https://bugs.webkit.org/show_bug.cgi?id=90919 5 6 Reviewed by Antti Koivisto. 7 8 Test with a composited element in a document which is put into paginated mode. 9 10 * compositing/columns/geometry-map-paginated-assert-expected.txt: Added. 11 * compositing/columns/geometry-map-paginated-assert.html: Added. 12 1 13 2012-07-11 Ojan Vafai <ojan@chromium.org> 2 14 -
trunk/Source/WebCore/ChangeLog
r122373 r122376 1 2012-07-10 Simon Fraser <simon.fraser@apple.com> 2 3 Assertion ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) when compositing in paginated mode 4 https://bugs.webkit.org/show_bug.cgi?id=90919 5 6 Reviewed by Antti Koivisto. 7 8 r121124 added a fast path for geometry mapping that goes via layers 9 when possible. However, this broke paginated pages, which put 10 the root (RenderView) layer into column mode, because it failed 11 to check for columns on the ancestor layer. 12 13 Rather than make a risky change to convertToLayerCoords(), add a local 14 function canMapViaLayer(), which is like RenderLayer::canUseConvertToLayerCoords(), 15 but doesn't check for compositing (compositing itself is not a reason 16 to avoid convertToLayerCoords). Call canMapViaLayer() with the ancestorLayer 17 to check whether the ancestor has columns, which fixes the bug. 18 19 Test: compositing/columns/geometry-map-paginated-assert.html 20 21 * rendering/RenderGeometryMap.cpp: 22 (WebCore::canMapViaLayer): 23 (WebCore::RenderGeometryMap::pushMappingsToAncestor): 24 1 25 2012-07-11 Dana Jansens <danakj@chromium.org> 2 26 -
trunk/Source/WebCore/rendering/RenderGeometryMap.cpp
r121446 r122376 139 139 } 140 140 141 static bool canMapViaLayer(const RenderLayer* layer) 142 { 143 RenderStyle* style = layer->renderer()->style(); 144 if (style->position() == FixedPosition || style->isFlippedBlocksWritingMode()) 145 return false; 146 147 if (layer->renderer()->hasColumns() || layer->renderer()->hasTransform()) 148 return false; 149 150 #if ENABLE(SVG) 151 if (layer->renderer()->isSVGRoot()) 152 return false; 153 #endif 154 155 return true; 156 } 157 141 158 void RenderGeometryMap::pushMappingsToAncestor(const RenderLayer* layer, const RenderLayer* ancestorLayer) 142 159 { … … 144 161 145 162 // The simple case can be handled fast in the layer tree. 146 bool canConvertInLayerTree = ancestorLayer && renderer->style()->position() != FixedPosition && !renderer->style()->isFlippedBlocksWritingMode();163 bool canConvertInLayerTree = ancestorLayer ? canMapViaLayer(ancestorLayer) : false; 147 164 for (const RenderLayer* current = layer; current != ancestorLayer && canConvertInLayerTree; current = current->parent()) 148 canConvertInLayerTree = c urrent->canUseConvertToLayerCoords();165 canConvertInLayerTree = canMapViaLayer(current); 149 166 150 167 if (canConvertInLayerTree) {
Note: See TracChangeset
for help on using the changeset viewer.