| Index: Source/WebCore/rendering/RenderObject.cpp
|
| ===================================================================
|
| --- Source/WebCore/rendering/RenderObject.cpp (revision 118866)
|
| +++ Source/WebCore/rendering/RenderObject.cpp (working copy)
|
| @@ -592,14 +592,26 @@
|
|
|
| static inline bool objectIsRelayoutBoundary(const RenderObject* object)
|
| {
|
| - // FIXME: In future it may be possible to broaden this condition in order to improve performance.
|
| - // Table cells are excluded because even when their CSS height is fixed, their height()
|
| - // may depend on their contents.
|
| - return object->isTextControl()
|
| + // FIXME: In future it may be possible to broaden these conditions in order to improve performance.
|
| + if (object->isTextControl())
|
| + return true;
|
| +
|
| #if ENABLE(SVG)
|
| - || object->isSVGRoot()
|
| + if (object->isSVGRoot())
|
| + return true;
|
| #endif
|
| - || (object->hasOverflowClip() && !object->style()->width().isIntrinsicOrAuto() && !object->style()->height().isIntrinsicOrAuto() && !object->style()->height().isPercent() && !object->isTableCell());
|
| +
|
| + if (!object->hasOverflowClip())
|
| + return false;
|
| +
|
| + if (object->style()->width().isIntrinsicOrAuto() || object->style()->height().isIntrinsicOrAuto() || object->style()->height().isPercent())
|
| + return false;
|
| +
|
| + // Table parts can't be relayout roots since the table is responsible for layouting all the parts.
|
| + if (object->isTablePart())
|
| + return false;
|
| +
|
| + return true;
|
| }
|
|
|
| void RenderObject::markContainingBlocksForLayout(bool scheduleRelayout, RenderObject* newRoot)
|
|
|