Skip to content
Permalink
Browse files
…eflections incorrectly

considered part of scrollable overflow.

Reviewed by Dan Bernstein.

This patch takes the engine's concept of overflow and splits it into two types:
layout overflow and visual overflow.

Layout overflow is about other boxes that spill out of an enclosing box,  For example,
in the inline flow case a tall image could spill out of a line box. Examples of
visual overflow are shadows, text stroke (and eventually outline and
border-image).

Three objects tracked overflow before this patch: RenderBlock had
m_overflowLeft/Top/Width/Height variables.  RootInlineBox had an Overflow*
that also had four overflow values.  Finally RenderReplaced elements tracked shadow/reflection
overflow using a map that cached four values.

This patch takes all of these different overflow models and unifies them into a single
new class called RenderOverflow.   This class is now a member variable in RenderBox and
InlineFlowBoxes.  It is only allocated if overflow actually exists.  Instead of tracking
four values, it tracks eight: left/top/right/bottom for layout overflow and
left/top/right/bottom for visual overflow.

Overflow computation is now done after layout is finished rather than during layout
(when child objects can be churning and moving around).  A number of layout tests progressed
by deferring overflow computation to a separate pass.

All inline flow boxes now track overflow (and not just the root line box).  This allows
repainting of line boxes to actually be tight and bail early if the overflow rect of a box
doesn't intersect.  The old code always visited all object on a line if the root line box
intersected at all.

Line box overflow no longer propagates across self-painting layers.  This fixes a number of
issues with incorrect scrollbars appearing when relative positioned inlines were used in a page.

Layer bounds have been modified to exclude visual overflow.  The width/height members only really
have one reason for continued existence, and that is that they happen to be used in repaint()
when an overflow clip object's height isn't accurate.  In this case, the bounds should exclude
visual overflow anyway, so this change tightens that repaint up.

Root lines have renamed m_selectionTop/Bottom to m_lineTop/Bottom and positionForPoint methods have
been changed to use these instead of relying on overflow (which was totally wrong).

Significant changes have been made to the "almost strict mode" line box quirk where objects with no
text children have no effect on the height of a line.  Instead of making the height() of the objects
variable and dependent on overflow, the objects now have their full height and get placed on
the baseline properly.  They simply don't contribute to overflow above lineTop/Bottom.

Reflections are no longer considered overflow of any kind.  Because reflections have their own layers,
it is not necessary to treat them as visual or layout overflow in the RenderObject tree.  The end result
of not incorporating them into RenderOverflow is that they have no effect on scrolling.  transparencyClipBox
has been extended to support fully reflecting the entire clip box when a reflection exists.  This fixes
numerous repaint bugs in transparent objects with reflections when the transparent objects had self-painting
sublayers.

* WebCore.xcodeproj/project.pbxproj:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getUpperLeftCorner):
* editing/visible_units.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* page/FrameView.cpp:
(WebCore::FrameView::adjustViewSize):
(WebCore::FrameView::adjustPageHeight):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::height):
* rendering/InlineBox.h:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::adjustPosition):
(WebCore::InlineFlowBox::placeBoxesHorizontally):
(WebCore::InlineFlowBox::placeBoxesVertically):
(WebCore::InlineFlowBox::computeVerticalOverflow):
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paint):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(WebCore::InlineFlowBox::topCombinedOverflow):
(WebCore::InlineFlowBox::bottomCombinedOverflow):
(WebCore::InlineFlowBox::leftCombinedOverflow):
(WebCore::InlineFlowBox::rightCombinedOverflow):
(WebCore::InlineFlowBox::combinedOverflowRect):
(WebCore::InlineFlowBox::topLayoutOverflow):
(WebCore::InlineFlowBox::bottomLayoutOverflow):
(WebCore::InlineFlowBox::leftLayoutOverflow):
(WebCore::InlineFlowBox::rightLayoutOverflow):
(WebCore::InlineFlowBox::layoutOverflowRect):
(WebCore::InlineFlowBox::topVisualOverflow):
(WebCore::InlineFlowBox::bottomVisualOverflow):
(WebCore::InlineFlowBox::leftVisualOverflow):
(WebCore::InlineFlowBox::rightVisualOverflow):
(WebCore::InlineFlowBox::visualOverflowRect):
(WebCore::InlineFlowBox::setHorizontalOverflowPositions):
(WebCore::InlineFlowBox::setVerticalOverflowPositions):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::layout):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::addOverflowFromBlockChildren):
(WebCore::RenderBlock::handleBottomOfBlock):
(WebCore::RenderBlock::layoutBlockChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::fillInlineSelectionGaps):
(WebCore::RenderBlock::floatRect):
(WebCore::RenderBlock::lowestPosition):
(WebCore::RenderBlock::rightmostPosition):
(WebCore::RenderBlock::leftmostPosition):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::RenderBlock::layoutColumns):
(WebCore::getHeightForLineCount):
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine):
(WebCore::RenderBlock::computeVerticalPositionsForLine):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::RenderBlock::matchedEndLine):
(WebCore::RenderBlock::addOverflowFromInlineChildren):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::destroy):
(WebCore::RenderBox::clippedOverflowRectForRepaint):
(WebCore::RenderBox::localCaretRect):
(WebCore::RenderBox::addShadowAndReflectionOverflow):
(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addVisualOverflow):
(WebCore::RenderBox::clearLayoutOverflow):
* rendering/RenderBox.h:
(WebCore::RenderBox::combinedOverflowRect):
(WebCore::RenderBox::topCombinedOverflow):
(WebCore::RenderBox::bottomCombinedOverflow):
(WebCore::RenderBox::leftCombinedOverflow):
(WebCore::RenderBox::rightCombinedOverflow):
(WebCore::RenderBox::layoutOverflowRect):
(WebCore::RenderBox::topLayoutOverflow):
(WebCore::RenderBox::bottomLayoutOverflow):
(WebCore::RenderBox::leftLayoutOverflow):
(WebCore::RenderBox::rightLayoutOverflow):
(WebCore::RenderBox::visualOverflowRect):
(WebCore::RenderBox::topVisualOverflow):
(WebCore::RenderBox::bottomVisualOverflow):
(WebCore::RenderBox::leftVisualOverflow):
(WebCore::RenderBox::rightVisualOverflow):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::layoutHorizontalBox):
(WebCore::RenderFlexibleBox::layoutVerticalBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::localBoundingBox):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::paint):
(WebCore::RenderLineBoxList::hitTest):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::positionListMarker):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::RenderObject):
* rendering/RenderObject.h:
* rendering/RenderOverflow.h: Added.
(WebCore::RenderOverflow::RenderOverflow):
(WebCore::RenderOverflow::topLayoutOverflow):
(WebCore::RenderOverflow::bottomLayoutOverflow):
(WebCore::RenderOverflow::leftLayoutOverflow):
(WebCore::RenderOverflow::rightLayoutOverflow):
(WebCore::RenderOverflow::topVisualOverflow):
(WebCore::RenderOverflow::bottomVisualOverflow):
(WebCore::RenderOverflow::leftVisualOverflow):
(WebCore::RenderOverflow::rightVisualOverflow):
(WebCore::RenderOverflow::setTopLayoutOverflow):
(WebCore::RenderOverflow::setBottomLayoutOverflow):
(WebCore::RenderOverflow::setLeftLayoutOverflow):
(WebCore::RenderOverflow::setRightLayoutOverflow):
(WebCore::RenderOverflow::setTopVisualOverflow):
(WebCore::RenderOverflow::setBottomVisualOverflow):
(WebCore::RenderOverflow::setLeftVisualOverflow):
(WebCore::RenderOverflow::setRightVisualOverflow):
(WebCore::RenderOverflow::layoutOverflowRect):
(WebCore::RenderOverflow::visualOverflowRect):
(WebCore::RenderOverflow::combinedOverflowRect):
(WebCore::RenderOverflow::move):
(WebCore::RenderOverflow::addLayoutOverflow):
(WebCore::RenderOverflow::addVisualOverflow):
(WebCore::RenderOverflow::resetLayoutOverflow):
* rendering/RenderPartObject.cpp:
(WebCore::RenderPartObject::layout):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::~RenderReplaced):
(WebCore::RenderReplaced::layout):
(WebCore::RenderReplaced::shouldPaint):
(WebCore::RenderReplaced::positionForPoint):
(WebCore::RenderReplaced::clippedOverflowRectForRepaint):
* rendering/RenderReplaced.h:
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::layout):
(WebCore::RenderScrollbarPart::paintIntoRect):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
(WebCore::RenderTable::paint):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::layoutRows):
* rendering/RenderTableSection.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::localCaretRect):
* rendering/RenderView.cpp:
(WebCore::RenderView::layout):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::addHighlightOverflow):
(WebCore::RootInlineBox::adjustPosition):
(WebCore::RootInlineBox::verticallyAlignBoxes):
(WebCore::RootInlineBox::selectionTop):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::nextRootBox):
(WebCore::RootInlineBox::prevRootBox):
(WebCore::RootInlineBox::lineTop):
(WebCore::RootInlineBox::lineBottom):
(WebCore::RootInlineBox::selectionBottom):
(WebCore::RootInlineBox::selectionHeight):
(WebCore::RootInlineBox::floats):
(WebCore::RootInlineBox::floatsPtr):
(WebCore::RootInlineBox::setLineTopBottomPositions):
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::layoutInlineBoxes):

LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=20329, shadows and reflections incorrectly being included
as part of scrollable overflow.

Reviewed by Dan Bernstein.

Update layout tests to account for all of the changes made to overflow to split it into two types.  Remove the layout
tests that were recently added that assumed that shadows and reflections should be part of scrollable overflow.

* fast/box-shadow/box-shadow-overflow-scroll-expected.txt: Removed.
* fast/box-shadow/box-shadow-overflow-scroll.html: Removed.
* fast/reflections/reflection-overflow-scroll-expected.txt: Removed.
* fast/reflections/reflection-overflow-scroll.html: Removed.
* platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
* platform/mac/compositing/reflections/reflection-on-composited-expected.txt:
* platform/mac/editing/deleting/delete-br-011-expected.txt:
* platform/mac/editing/deleting/delete-br-012-expected.txt:
* platform/mac/editing/pasteboard/select-element-1-expected.txt:
* platform/mac/fast/block/positioning/relative-overflow-block-expected.txt:
* platform/mac/fast/body-propagation/background-color/002-expected.txt:
* platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt:
* platform/mac/fast/body-propagation/background-image/002-expected.txt:
* platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt:
* platform/mac/fast/body-propagation/overflow/001-expected.txt:
* platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt:
* platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
* platform/mac/fast/box-shadow/transform-fringing-expected.txt:
* platform/mac/fast/clip/008-expected.txt:
* platform/mac/fast/clip/011-expected.txt:
* platform/mac/fast/clip/012-expected.txt:
* platform/mac/fast/dynamic/genContentDestroyChildren-expected.txt:
* platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt:
* platform/mac/fast/encoding/utf-16-big-endian-expected.txt:
* platform/mac/fast/encoding/utf-16-little-endian-expected.txt:
* platform/mac/fast/forms/form-element-geometry-expected.txt:
* platform/mac/fast/images/image-in-map-expected.txt:
* platform/mac/fast/inline-block/003-expected.txt:
* platform/mac/fast/inline/inline-text-quirk-bpm-expected.txt:
* platform/mac/fast/invalid/012-expected.txt:
* platform/mac/fast/layers/normal-flow-hit-test-expected.txt:
* platform/mac/fast/lists/inlineBoxWrapperNullCheck-expected.txt:
* platform/mac/fast/overflow/scrollRevealButton-expected.txt:
* platform/mac/fast/reflections/reflection-direction-expected.txt:
* platform/mac/fast/reflections/reflection-masks-expected.checksum:
* platform/mac/fast/reflections/reflection-masks-expected.png:
* platform/mac/fast/reflections/reflection-masks-expected.txt:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.checksum:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.png:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.txt:
* platform/mac/fast/reflections/reflection-nesting-expected.txt:
* platform/mac/fast/reflections/reflection-overflow-hidden-expected.png:
* platform/mac/fast/reflections/reflection-overflow-hidden-expected.txt:
* platform/mac/fast/repaint/box-shadow-h-expected.txt:
* platform/mac/fast/repaint/box-shadow-v-expected.txt:
* platform/mac/fast/repaint/reflection-redraw-expected.txt:
* platform/mac/fast/repaint/reflection-repaint-test-expected.txt:
* platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
* platform/mac/fast/repaint/transform-replaced-shadows-expected.txt:
* platform/mac/fast/replaced/border-radius-clip-expected.txt:
* platform/mac/fast/transforms/shadows-expected.txt:
* platform/mac/fast/transforms/transforms-with-opacity-expected.txt:
* platform/mac/media/video-layer-crash-expected.txt:
* platform/mac/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
* platform/mac/tables/mozilla/bugs/bug10565-expected.txt:
* platform/mac/tables/mozilla/bugs/bug10633-expected.txt:
* platform/mac/tables/mozilla/bugs/bug113424-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
* platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
* platform/mac/tables/mozilla/bugs/bug22513-expected.txt:
* platform/mac/tables/mozilla/bugs/bug26553-expected.txt:
* platform/mac/tables/mozilla/bugs/bug3309-1-expected.txt:
* platform/mac/tables/mozilla/bugs/bug4427-expected.txt:
* platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
* platform/mac/tables/mozilla/bugs/bug5538-expected.txt:
* platform/mac/tables/mozilla/bugs/bug78162-expected.txt:
* platform/mac/tables/mozilla/bugs/bug8381-expected.txt:
* platform/mac/tables/mozilla/bugs/bug86708-expected.txt:
* platform/mac/tables/mozilla/core/bloomberg-expected.txt:
* platform/mac/tables/mozilla/other/ms-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug72393-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
* platform/mac/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt:
* platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:



Canonical link: https://commits.webkit.org/39037@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@47440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
David Hyatt committed Aug 18, 2009
1 parent bcb4525 commit 20f6bd464f0d3aeff3075ef8d66d2b17e121a1ee
Showing with 1,368 additions and 1,243 deletions.
  1. +96 −0 LayoutTests/ChangeLog
  2. +0 −15 LayoutTests/fast/box-shadow/box-shadow-overflow-scroll-expected.txt
  3. +0 −67 LayoutTests/fast/box-shadow/box-shadow-overflow-scroll.html
  4. +0 −15 LayoutTests/fast/reflections/reflection-overflow-scroll-expected.txt
  5. +0 −80 LayoutTests/fast/reflections/reflection-overflow-scroll.html
  6. +11 −0 LayoutTests/fast/reflections/transparent-reflected-sublayers.html
  7. +4 −4 LayoutTests/platform/mac/compositing/overflow/ancestor-overflow-expected.txt
  8. +2 −2 LayoutTests/platform/mac/compositing/reflections/reflection-on-composited-expected.txt
  9. +1 −1 LayoutTests/platform/mac/editing/deleting/delete-br-011-expected.txt
  10. +1 −1 LayoutTests/platform/mac/editing/deleting/delete-br-012-expected.txt
  11. +1 −1 LayoutTests/platform/mac/editing/pasteboard/select-element-1-expected.txt
  12. +1 −1 LayoutTests/platform/mac/fast/block/positioning/relative-overflow-block-expected.txt
  13. +1 −1 LayoutTests/platform/mac/fast/body-propagation/background-color/002-expected.txt
  14. +1 −1 LayoutTests/platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt
  15. +1 −1 LayoutTests/platform/mac/fast/body-propagation/background-image/002-expected.txt
  16. +1 −1 LayoutTests/platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt
  17. +1 −1 LayoutTests/platform/mac/fast/body-propagation/overflow/001-expected.txt
  18. +1 −1 LayoutTests/platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt
  19. +1 −1 LayoutTests/platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt
  20. +1 −1 LayoutTests/platform/mac/fast/body-propagation/overflow/005-expected.txt
  21. +1 −1 LayoutTests/platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt
  22. +1 −1 LayoutTests/platform/mac/fast/borders/fieldsetBorderRadius-expected.txt
  23. +2 −2 LayoutTests/platform/mac/fast/box-shadow/basic-shadows-expected.txt
  24. +1 −1 LayoutTests/platform/mac/fast/box-shadow/transform-fringing-expected.txt
  25. +1 −1 LayoutTests/platform/mac/fast/clip/008-expected.txt
  26. +1 −1 LayoutTests/platform/mac/fast/clip/011-expected.txt
  27. +1 −1 LayoutTests/platform/mac/fast/clip/012-expected.txt
  28. +1 −1 LayoutTests/platform/mac/fast/dynamic/genContentDestroyChildren-expected.txt
  29. +1 −1 LayoutTests/platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt
  30. +6 −6 LayoutTests/platform/mac/fast/encoding/utf-16-big-endian-expected.txt
  31. +6 −6 LayoutTests/platform/mac/fast/encoding/utf-16-little-endian-expected.txt
  32. +6 −6 LayoutTests/platform/mac/fast/forms/form-element-geometry-expected.txt
  33. +1 −1 LayoutTests/platform/mac/fast/images/image-in-map-expected.txt
  34. +1 −1 LayoutTests/platform/mac/fast/inline-block/003-expected.txt
  35. +2 −2 LayoutTests/platform/mac/fast/inline/inline-text-quirk-bpm-expected.txt
  36. +1 −1 LayoutTests/platform/mac/fast/invalid/012-expected.txt
  37. +1 −1 LayoutTests/platform/mac/fast/layers/normal-flow-hit-test-expected.txt
  38. +1 −1 LayoutTests/platform/mac/fast/lists/inlineBoxWrapperNullCheck-expected.txt
  39. +1 −1 LayoutTests/platform/mac/fast/overflow/scrollRevealButton-expected.txt
  40. +2 −2 LayoutTests/platform/mac/fast/reflections/reflection-direction-expected.txt
  41. +1 −1 LayoutTests/platform/mac/fast/reflections/reflection-masks-expected.checksum
  42. BIN LayoutTests/platform/mac/fast/reflections/reflection-masks-expected.png
  43. +7 −7 LayoutTests/platform/mac/fast/reflections/reflection-masks-expected.txt
  44. +1 −1 LayoutTests/platform/mac/fast/reflections/reflection-masks-opacity-expected.checksum
  45. BIN LayoutTests/platform/mac/fast/reflections/reflection-masks-opacity-expected.png
  46. +8 −8 LayoutTests/platform/mac/fast/reflections/reflection-masks-opacity-expected.txt
  47. +2 −2 LayoutTests/platform/mac/fast/reflections/reflection-nesting-expected.txt
  48. BIN LayoutTests/platform/mac/fast/reflections/reflection-overflow-hidden-expected.png
  49. +1 −1 LayoutTests/platform/mac/fast/reflections/reflection-overflow-hidden-expected.txt
  50. +1 −0 LayoutTests/platform/mac/fast/reflections/transparent-reflected-sublayers-expected.checksum
  51. BIN LayoutTests/platform/mac/fast/reflections/transparent-reflected-sublayers-expected.png
  52. +12 −0 LayoutTests/platform/mac/fast/reflections/transparent-reflected-sublayers-expected.txt
  53. +11 −11 LayoutTests/platform/mac/fast/repaint/box-shadow-h-expected.txt
  54. +11 −11 LayoutTests/platform/mac/fast/repaint/box-shadow-v-expected.txt
  55. +2 −2 LayoutTests/platform/mac/fast/repaint/reflection-redraw-expected.txt
  56. +1 −1 LayoutTests/platform/mac/fast/repaint/reflection-repaint-test-expected.txt
  57. +1 −1 LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt
  58. +1 −1 LayoutTests/platform/mac/fast/repaint/transform-replaced-shadows-expected.txt
  59. +1 −1 LayoutTests/platform/mac/fast/replaced/border-radius-clip-expected.txt
  60. +20 −20 LayoutTests/platform/mac/fast/transforms/shadows-expected.txt
  61. +2 −2 LayoutTests/platform/mac/fast/transforms/transforms-with-opacity-expected.txt
  62. +2 −2 LayoutTests/platform/mac/media/video-layer-crash-expected.txt
  63. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/adforce_imgis_com-expected.txt
  64. +2 −2 LayoutTests/platform/mac/tables/mozilla/bugs/bug10565-expected.txt
  65. +5 −5 LayoutTests/platform/mac/tables/mozilla/bugs/bug10633-expected.txt
  66. +6 −6 LayoutTests/platform/mac/tables/mozilla/bugs/bug113424-expected.txt
  67. +3 −3 LayoutTests/platform/mac/tables/mozilla/bugs/bug1188-expected.txt
  68. +2 −2 LayoutTests/platform/mac/tables/mozilla/bugs/bug131020-expected.txt
  69. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug1318-expected.txt
  70. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug22513-expected.txt
  71. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug26553-expected.txt
  72. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug3309-1-expected.txt
  73. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug4427-expected.txt
  74. +4 −4 LayoutTests/platform/mac/tables/mozilla/bugs/bug4527-expected.txt
  75. +2 −2 LayoutTests/platform/mac/tables/mozilla/bugs/bug5538-expected.txt
  76. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug78162-expected.txt
  77. +12 −12 LayoutTests/platform/mac/tables/mozilla/bugs/bug8381-expected.txt
  78. +1 −1 LayoutTests/platform/mac/tables/mozilla/bugs/bug86708-expected.txt
  79. +46 −46 LayoutTests/platform/mac/tables/mozilla/core/bloomberg-expected.txt
  80. +2 −2 LayoutTests/platform/mac/tables/mozilla/other/ms-expected.txt
  81. +1 −1 LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug23847-expected.txt
  82. +1 −1 LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug72393-expected.txt
  83. +3 −3 LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt
  84. +1 −1 ...ests/platform/mac/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt
  85. +1 −1 ...s/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt
  86. +6 −6 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt
  87. +6 −6 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt
  88. +5 −5 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt
  89. +5 −5 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt
  90. +1 −1 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt
  91. +11 −11 LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt
  92. +237 −0 WebCore/ChangeLog
  93. +4 −0 WebCore/WebCore.xcodeproj/project.pbxproj
  94. +1 −1 WebCore/dom/ContainerNode.cpp
  95. +2 −2 WebCore/editing/visible_units.cpp
  96. +2 −2 WebCore/page/FrameView.cpp
  97. +0 −7 WebCore/rendering/InlineBox.cpp
  98. +0 −5 WebCore/rendering/InlineBox.h
  99. +126 −97 WebCore/rendering/InlineFlowBox.cpp
  100. +56 −11 WebCore/rendering/InlineFlowBox.h
  101. +6 −2 WebCore/rendering/InlineTextBox.cpp
  102. +84 −215 WebCore/rendering/RenderBlock.cpp
  103. +4 −25 WebCore/rendering/RenderBlock.h
  104. +18 −34 WebCore/rendering/RenderBlockLineLayout.cpp
  105. +78 −3 WebCore/rendering/RenderBox.cpp
  106. +29 −10 WebCore/rendering/RenderBox.h
  107. +14 −73 WebCore/rendering/RenderFlexibleBox.cpp
  108. +22 −9 WebCore/rendering/RenderLayer.cpp
  109. +2 −2 WebCore/rendering/RenderLayerCompositor.cpp
  110. +11 −11 WebCore/rendering/RenderLineBoxList.cpp
  111. +17 −8 WebCore/rendering/RenderListItem.cpp
  112. +0 −1 WebCore/rendering/RenderObject.cpp
  113. +0 −6 WebCore/rendering/RenderObject.h
  114. +153 −0 WebCore/rendering/RenderOverflow.h
  115. +1 −1 WebCore/rendering/RenderPartObject.cpp
  116. +7 −88 WebCore/rendering/RenderReplaced.cpp
  117. +0 −6 WebCore/rendering/RenderReplaced.h
  118. +0 −5 WebCore/rendering/RenderScrollbarPart.cpp
  119. +1 −12 WebCore/rendering/RenderSlider.cpp
  120. +27 −22 WebCore/rendering/RenderTable.cpp
  121. +3 −3 WebCore/rendering/RenderTableCell.cpp
  122. +6 −9 WebCore/rendering/RenderTableSection.cpp
  123. +0 −5 WebCore/rendering/RenderTableSection.h
  124. +6 −6 WebCore/rendering/RenderText.cpp
  125. +4 −6 WebCore/rendering/RenderView.cpp
  126. +37 −42 WebCore/rendering/RootInlineBox.cpp
  127. +27 −74 WebCore/rendering/RootInlineBox.h
  128. +2 −2 WebCore/rendering/SVGRootInlineBox.cpp
@@ -1,3 +1,99 @@
2009-08-16 David Hyatt <hyatt@apple.com>

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=20329, shadows and reflections incorrectly being included
as part of scrollable overflow.

Update layout tests to account for all of the changes made to overflow to split it into two types. Remove the layout
tests that were recently added that assumed that shadows and reflections should be part of scrollable overflow.

* fast/box-shadow/box-shadow-overflow-scroll-expected.txt: Removed.
* fast/box-shadow/box-shadow-overflow-scroll.html: Removed.
* fast/reflections/reflection-overflow-scroll-expected.txt: Removed.
* fast/reflections/reflection-overflow-scroll.html: Removed.
* platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
* platform/mac/compositing/reflections/reflection-on-composited-expected.txt:
* platform/mac/editing/deleting/delete-br-011-expected.txt:
* platform/mac/editing/deleting/delete-br-012-expected.txt:
* platform/mac/editing/pasteboard/select-element-1-expected.txt:
* platform/mac/fast/block/positioning/relative-overflow-block-expected.txt:
* platform/mac/fast/body-propagation/background-color/002-expected.txt:
* platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt:
* platform/mac/fast/body-propagation/background-image/002-expected.txt:
* platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt:
* platform/mac/fast/body-propagation/overflow/001-expected.txt:
* platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-expected.txt:
* platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt:
* platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
* platform/mac/fast/box-shadow/transform-fringing-expected.txt:
* platform/mac/fast/clip/008-expected.txt:
* platform/mac/fast/clip/011-expected.txt:
* platform/mac/fast/clip/012-expected.txt:
* platform/mac/fast/dynamic/genContentDestroyChildren-expected.txt:
* platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt:
* platform/mac/fast/encoding/utf-16-big-endian-expected.txt:
* platform/mac/fast/encoding/utf-16-little-endian-expected.txt:
* platform/mac/fast/forms/form-element-geometry-expected.txt:
* platform/mac/fast/images/image-in-map-expected.txt:
* platform/mac/fast/inline-block/003-expected.txt:
* platform/mac/fast/inline/inline-text-quirk-bpm-expected.txt:
* platform/mac/fast/invalid/012-expected.txt:
* platform/mac/fast/layers/normal-flow-hit-test-expected.txt:
* platform/mac/fast/lists/inlineBoxWrapperNullCheck-expected.txt:
* platform/mac/fast/overflow/scrollRevealButton-expected.txt:
* platform/mac/fast/reflections/reflection-direction-expected.txt:
* platform/mac/fast/reflections/reflection-masks-expected.checksum:
* platform/mac/fast/reflections/reflection-masks-expected.png:
* platform/mac/fast/reflections/reflection-masks-expected.txt:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.checksum:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.png:
* platform/mac/fast/reflections/reflection-masks-opacity-expected.txt:
* platform/mac/fast/reflections/reflection-nesting-expected.txt:
* platform/mac/fast/reflections/reflection-overflow-hidden-expected.png:
* platform/mac/fast/reflections/reflection-overflow-hidden-expected.txt:
* platform/mac/fast/repaint/box-shadow-h-expected.txt:
* platform/mac/fast/repaint/box-shadow-v-expected.txt:
* platform/mac/fast/repaint/reflection-redraw-expected.txt:
* platform/mac/fast/repaint/reflection-repaint-test-expected.txt:
* platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
* platform/mac/fast/repaint/transform-replaced-shadows-expected.txt:
* platform/mac/fast/replaced/border-radius-clip-expected.txt:
* platform/mac/fast/transforms/shadows-expected.txt:
* platform/mac/fast/transforms/transforms-with-opacity-expected.txt:
* platform/mac/media/video-layer-crash-expected.txt:
* platform/mac/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
* platform/mac/tables/mozilla/bugs/bug10565-expected.txt:
* platform/mac/tables/mozilla/bugs/bug10633-expected.txt:
* platform/mac/tables/mozilla/bugs/bug113424-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
* platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
* platform/mac/tables/mozilla/bugs/bug22513-expected.txt:
* platform/mac/tables/mozilla/bugs/bug26553-expected.txt:
* platform/mac/tables/mozilla/bugs/bug3309-1-expected.txt:
* platform/mac/tables/mozilla/bugs/bug4427-expected.txt:
* platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
* platform/mac/tables/mozilla/bugs/bug5538-expected.txt:
* platform/mac/tables/mozilla/bugs/bug78162-expected.txt:
* platform/mac/tables/mozilla/bugs/bug8381-expected.txt:
* platform/mac/tables/mozilla/bugs/bug86708-expected.txt:
* platform/mac/tables/mozilla/core/bloomberg-expected.txt:
* platform/mac/tables/mozilla/other/ms-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug72393-expected.txt:
* platform/mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
* platform/mac/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt:
* platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
* platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:

2009-08-18 Alexey Proskuryakov <ap@apple.com>

Reviewed by Darin Adler.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

@@ -0,0 +1,11 @@
<head>
<style>
div { width: 100px; height:100px; position: absolute; background-color: green }
</style>
</head>
<body>
You should see four green squares in a vertical line below.
<div style="top:160px; -webkit-box-reflect: below 20px; opacity:0.5">
<div style="top:240px;"></div>
</div>

@@ -33,25 +33,25 @@ layer at (214,256) size 142x142 clip at (215,257) size 140x140
RenderBlock {DIV} at (206,206) size 142x142 [border: (1px solid #000000)]
layer at (50,92) size 100x150 backgroundClip at (29,71) size 140x140 clip at (29,71) size 140x140 outlineClip at (29,71) size 140x140
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
layer at (225,81) size 122x161
layer at (225,81) size 122x122
RenderBlock (positioned) {DIV} at (225,81) size 122x122 [border: (1px solid #0000FF)]
layer at (236,92) size 100x150
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
layer at (400,70) size 142x142 clip at (401,71) size 140x140 scrollHeight 171
RenderBlock (relative positioned) {DIV} at (392,20) size 142x142 [border: (1px solid #000000)]
layer at (411,81) size 122x161 backgroundClip at (401,71) size 140x140 clip at (401,71) size 140x140 outlineClip at (401,71) size 140x140
layer at (411,81) size 122x122
RenderBlock (positioned) {DIV} at (11,11) size 122x122 [border: (1px solid #0000FF)]
layer at (422,92) size 100x150 backgroundClip at (401,71) size 140x140 clip at (401,71) size 140x140 outlineClip at (401,71) size 140x140
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
layer at (50,278) size 100x150 backgroundClip at (29,257) size 140x140 clip at (29,257) size 140x140 outlineClip at (29,257) size 140x140
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
layer at (225,267) size 122x161
layer at (225,267) size 122x122
RenderBlock (positioned) {DIV} at (225,267) size 122x122 [border: (1px solid #0000FF)]
layer at (236,278) size 100x150
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
layer at (400,256) size 142x142 clip at (401,257) size 140x140 scrollHeight 171
RenderBlock (relative positioned) {DIV} at (392,206) size 142x142 [border: (1px solid #000000)]
layer at (411,267) size 122x161 backgroundClip at (401,257) size 140x140 clip at (401,257) size 140x140 outlineClip at (401,257) size 140x140
layer at (411,267) size 122x122
RenderBlock (positioned) {DIV} at (11,11) size 122x122 [border: (1px solid #0000FF)]
layer at (422,278) size 100x150 backgroundClip at (401,257) size 140x140 clip at (401,257) size 140x140 outlineClip at (401,257) size 140x140
RenderBlock {DIV} at (11,11) size 100x150 [bgcolor=#808080]
@@ -3,13 +3,13 @@ layer at (0,0) size 800x600
layer at (0,0) size 800x460
RenderBlock {HTML} at (0,0) size 800x460
RenderBody {BODY} at (8,20) size 784x320
layer at (28,20) size 200x202
layer at (28,20) size 200x100
RenderBlock {DIV} at (20,0) size 200x100 [bgcolor=#808080]
RenderText {#text} at (0,0) size 109x18
text run at (0,0) width 109: "Here is some text"
layer at (8,240) size 784x100
RenderBlock {DIV} at (0,220) size 784x100
layer at (28,240) size 200x202
layer at (28,240) size 200x100
RenderBlock {DIV} at (20,0) size 200x100 [bgcolor=#808080]
RenderText {#text} at (0,0) size 109x18
text run at (0,0) width 109: "Here is some text"
@@ -17,7 +17,7 @@ layer at (0,0) size 800x600
text run at (0,0) width 31: "hello"
RenderBlock {DIV} at (0,18) size 784x56 [border: (2px solid #FF0000)]
RenderInline {SPAN} at (0,0) size 0x18
RenderInline {FONT} at (0,0) size 0x28
RenderInline {FONT} at (0,0) size 0x37
RenderInline {SPAN} at (0,0) size 0x28
RenderBR {BR} at (14,14) size 0x28
RenderBlock (anonymous) at (0,74) size 784x0
@@ -17,7 +17,7 @@ layer at (0,0) size 800x600
text run at (3,3) width 49: "hello"
RenderBlock (anonymous) at (14,48) size 756x0
RenderBlock {DIV} at (0,62) size 784x34 [border: (3px solid #0000FF)]
RenderInline {FONT} at (0,0) size 0x28
RenderInline {FONT} at (0,0) size 0x37
RenderInline {SPAN} at (0,0) size 0x28
RenderBR {BR} at (3,3) size 0x28
caret: position 0 of child 0 {BR} of child 0 {SPAN} of child 0 {FONT} of child 2 {DIV} of child 1 {BODY} of child 0 {HTML} of document
@@ -29,7 +29,7 @@ layer at (0,0) size 800x600
text run at (0,0) width 253: "This tests copy/paste of select elements. "
text run at (253,0) width 220: "All the options should be included."
RenderBlock {DIV} at (0,34) size 784x13
RenderInline {FONT} at (0,0) size 0x13
RenderInline {FONT} at (0,0) size 0x18
RenderInline {SPAN} at (0,0) size 0x13 [bgcolor=#FFFFFF]
RenderBR {BR} at (0,0) size 0x13
RenderBlock {DIV} at (0,47) size 784x22
@@ -6,7 +6,7 @@ layer at (0,0) size 785x585
RenderText {#text} at (0,0) size 762x36
text run at (0,0) width 762: "Document canvas should be big enough to fit both blue and red (relative positioned) rectangles (ie. have scrollbars if they"
text run at (0,18) width 131: "don't fit to the view) "
layer at (8,44) size 504x506
layer at (8,44) size 504x504
RenderBlock (positioned) {DIV} at (8,44) size 504x504 [border: (2px solid #0000FF)]
layer at (310,346) size 504x504
RenderBlock (relative positioned) {DIV} at (2,2) size 504x504 [border: (2px solid #FF0000)]
@@ -1,6 +1,6 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x50
layer at (0,0) size 800x34
RenderBlock {HTML} at (0,0) size 800x24 [bgcolor=#00FF00]
RenderBody {BODY} at (8,16) size 784x0 [bgcolor=#FF0000]
RenderBlock {P} at (0,0) size 784x18
@@ -1,6 +1,6 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x50
layer at (0,0) size 800x34
RenderBlock {html} at (0,0) size 800x24 [bgcolor=#00FF00]
RenderBody {body} at (8,16) size 784x0 [bgcolor=#FF0000]
RenderBlock {p} at (0,0) size 784x18
@@ -1,6 +1,6 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x50
layer at (0,0) size 800x34
RenderBlock {HTML} at (0,0) size 800x24
RenderBody {BODY} at (8,16) size 784x0
RenderBlock {P} at (0,0) size 784x18

0 comments on commit 20f6bd4

Please sign in to comment.