1. 20 Jan, 2011 1 commit
    • jamesr@google.com's avatar
      2011-01-20 James Robinson <jamesr@chromium.org> · 5ddfb04e
      jamesr@google.com authored
              Reviewed by Eric Seidel.
      
              RenderTableSection's setNeedsCellRecalc needs to null check table()
              https://bugs.webkit.org/show_bug.cgi?id=52770
      
              Tests ::-webkit-scrollbar-corner inside a table.
      
              * fast/css-generated-content/table-with-scrollbar-corner-expected.txt: Added.
              * fast/css-generated-content/table-with-scrollbar-corner.html: Added.
      2011-01-20  James Robinson  <jamesr@chromium.org>
      
              Reviewed by Eric "Baller" Seidel.
      
              RenderTableSection's setNeedsCellRecalc needs to null check table()
              https://bugs.webkit.org/show_bug.cgi?id=52770
      
              Null checks table() before deferencing it in RenderTableSection::setNeedsCellRecalc.
              This can be null during detach().  Test constructed by Eric Seidel.
      
              Test: fast/css-generated-content/table-with-scrollbar-corner.html
      
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::setNeedsCellRecalc):
              * rendering/RenderTableSection.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ddfb04e
  2. 14 Jan, 2011 1 commit
    • tonyg@chromium.org's avatar
      2011-01-14 Tony Gentilcore <tonyg@chromium.org> · b138b1e3
      tonyg@chromium.org authored
              Reviewed by David Levin.
      
              Do some forward declaration in RenderStyle.h
              https://bugs.webkit.org/show_bug.cgi?id=52453
      
              No new tests because no new functionality.
      
              * css/CSSComputedStyleDeclaration.cpp:
              * css/CSSStyleSelector.cpp:
              * editing/Editor.cpp:
              * page/EventHandler.cpp:
              * rendering/EllipsisBox.cpp:
              * rendering/InlineBox.cpp:
              * rendering/InlineTextBox.cpp:
              * rendering/RenderBlock.cpp:
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              * rendering/RenderBox.h:
              * rendering/RenderEmbeddedObject.cpp:
              * rendering/RenderFieldset.cpp:
              * rendering/RenderFileUploadControl.cpp:
              * rendering/RenderFrameSet.cpp:
              * rendering/RenderHTMLCanvas.cpp:
              * rendering/RenderImageResource.cpp:
              * rendering/RenderInputSpeech.cpp:
              * rendering/RenderLayer.h:
              * rendering/RenderLineBoxList.cpp:
              * rendering/RenderListBox.cpp:
              * rendering/RenderMediaControlsChromium.cpp:
              * rendering/RenderObject.cpp:
              * rendering/RenderObject.h:
              * rendering/RenderObjectChildList.cpp:
              * rendering/RenderProgress.cpp:
              * rendering/RenderScrollbarPart.cpp:
              * rendering/RenderTable.cpp:
              * rendering/RenderTable.h:
              * rendering/RenderTableCell.cpp:
              * rendering/RenderTableRow.cpp:
              * rendering/RenderTableSection.cpp:
              * rendering/RenderTheme.cpp:
              * rendering/RenderThemeChromiumSkia.cpp:
              * rendering/RenderThemeChromiumWin.cpp:
              * rendering/RootInlineBox.cpp:
              * rendering/style/RenderStyle.cpp:
              * rendering/style/RenderStyle.h:
              * rendering/style/StyleRareInheritedData.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b138b1e3
  3. 08 Jan, 2011 1 commit
  4. 03 Jan, 2011 1 commit
    • inferno@chromium.org's avatar
      2011-01-01 Abhishek Arya <inferno@chromium.org> · 947af308
      inferno@chromium.org authored
              Reviewed by Darin Adler.
      
              Fixes before child calculation when adding anonymous childs to table parts.
              https://bugs.webkit.org/show_bug.cgi?id=50932
      
              Fix in r74364 was incomplete. When before child is equal to the table part(to
              which the new child is getting added), it confuses the table part to add it
              incorrectly as an after child. The patch fixes by passing the before child as
              the table part's first child.
      
              Tests: fast/css-generated-content/table-before-after-child-add.html
                     fast/css-generated-content/table-cell-before-after-child-add.html
                     fast/css-generated-content/table-row-before-after-child-add.html
                     fast/css-generated-content/table-row-before-after-child-add.html
      
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::addChild):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::addChild):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addChild):
      2010-12-20  Abhishek Arya  <inferno@chromium.org>
      
              Reviewed by Darin Adler.
      
              Tests that "before" and "after" childs are added to table correctly.
              https://bugs.webkit.org/show_bug.cgi?id=50932
      
              * fast/css-generated-content/table-before-after-child-add.html: Added.
              * fast/css-generated-content/table-before-child-add.html: Removed.
              * fast/css-generated-content/table-cell-before-after-child-add.html: Added.
              * fast/css-generated-content/table-row-before-after-child-add.html: Added.
              * platform/mac/fast/css-generated-content/table-before-after-child-add-expected.checksum: Added.
              * platform/mac/fast/css-generated-content/table-before-after-child-add-expected.png: Added.
              * platform/mac/fast/css-generated-content/table-before-after-child-add-expected.txt: Added.
              * platform/mac/fast/css-generated-content/table-before-child-add-expected.txt: Removed.
              * platform/mac/fast/css-generated-content/table-cell-before-after-child-add-expected.checksum: Added.
              * platform/mac/fast/css-generated-content/table-cell-before-after-child-add-expected.png: Added.
              * platform/mac/fast/css-generated-content/table-cell-before-after-child-add-expected.txt: Added.
              * platform/mac/fast/css-generated-content/table-row-before-after-child-add-expected.checksum: Added.
              * platform/mac/fast/css-generated-content/table-row-before-after-child-add-expected.png: Added.
              * platform/mac/fast/css-generated-content/table-row-before-after-child-add-expected.txt: Added.
              * platform/mac/fast/css-generated-content/table-table-before-after-child-add-expected.checksum: Added.
              * platform/mac/fast/css-generated-content/table-table-before-after-child-add-expected.png: Added.
              * platform/mac/fast/css-generated-content/table-table-before-after-child-add-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      947af308
  5. 15 Dec, 2010 1 commit
    • hyatt@apple.com's avatar
      Rename pageY to pageLogicalOffset, since for vertical writing modes it is an... · 2e47dc8b
      hyatt@apple.com authored
      Rename pageY to pageLogicalOffset, since for vertical writing modes it is an x-position rather than a
      y-position.
      
      Reviewed by Simon Fraser.
      
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::pageLogicalOffset):
      (WebCore::LayoutState::addForcedColumnBreak):
      * rendering/LayoutState.h:
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
      (WebCore::RenderBlock::layoutColumns):
      (WebCore::RenderBlock::setPageLogicalOffset):
      * rendering/RenderBlock.h:
      (WebCore::RenderBlock::pageLogicalOffset):
      (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e47dc8b
  6. 14 Dec, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=46422 · 9285815d
      hyatt@apple.com authored
      Reviewed by Tim Hatcher.
      
      Rename pageHeight variables and members in WebCore to pageLogicalHeight in preparation for
      making printing and pagination work with vertical writing modes.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::forceLayoutForPagination):
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      (WebCore::LayoutState::clearPaginationInformation):
      * rendering/LayoutState.h:
      (WebCore::LayoutState::LayoutState):
      (WebCore::LayoutState::isPaginated):
      (WebCore::LayoutState::pageLogicalHeight):
      (WebCore::LayoutState::pageLogicalHeightChanged):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
      (WebCore::RenderBlock::insertFloatingObject):
      (WebCore::RenderBlock::layoutColumns):
      (WebCore::RenderBlock::nextPageTop):
      (WebCore::RenderBlock::applyBeforeBreak):
      (WebCore::RenderBlock::applyAfterBreak):
      (WebCore::RenderBlock::adjustForUnsplittableChild):
      (WebCore::RenderBlock::adjustLinePositionForPagination):
      * rendering/RenderBlock.h:
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::computeLogicalHeight):
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::RenderView):
      (WebCore::RenderView::layout):
      * rendering/RenderView.h:
      (WebCore::RenderView::pageLogicalHeight):
      (WebCore::RenderView::setPageLogicalHeight):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9285815d
  7. 07 Dec, 2010 1 commit
    • mitz@apple.com's avatar
      WebCore: Made tables repaint correctly in all writing modes · 20e5bec8
      mitz@apple.com authored
      Part of: Make tables work with vertical text
      https://bugs.webkit.org/show_bug.cgi?id=46417
      
      Reviewed by Darin Adler.
      
      Tests: fast/repaint/table-writing-modes-h.html
             fast/repaint/table-writing-modes-v.html
      
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::paintObject): Compute the ranges of rows and
      columns to repaint based on the logical extent of the repaint rect.
      
      LayoutTests: Test that tables repaint correctly in all writing modes
      Part of: Make tables work with vertical text
      https://bugs.webkit.org/show_bug.cgi?id=46417
      
      Reviewed by Darin Adler.
      
      * fast/repaint/table-writing-modes-h-expected.checksum: Added.
      * fast/repaint/table-writing-modes-h-expected.png: Added.
      * fast/repaint/table-writing-modes-h-expected.txt: Added.
      * fast/repaint/table-writing-modes-h.html: Added.
      * fast/repaint/table-writing-modes-v-expected.checksum: Added.
      * fast/repaint/table-writing-modes-v-expected.png: Added.
      * fast/repaint/table-writing-modes-v-expected.txt: Added.
      * fast/repaint/table-writing-modes-v.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73484 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      20e5bec8
  8. 06 Dec, 2010 1 commit
    • hyatt@apple.com's avatar
      Fix for https://bugs.webkit.org/show_bug.cgi?id=49220... · 592848f1
      hyatt@apple.com authored
      Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
      O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
      
      Reviewed by Simon Fraser.
      
      This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
      in the engine to cache all the information required to properly handle scrolling.
      
      In the old code, there were two types of overflow: layout overflow and visual overflow.  The former could
      affect scrolling and the latter could not.  The distinction was largely meaningless, since layout overflow
      wasn't actually used to determine scroll width or scroll height.  It didn't propagate across self-painting layer
      boundaries either.  In the old code, the term visible overflow meant the union of the layout overflow and
      visual overflow rects.
      
      In the new code, the two types of overflow remain, but the distinction between the two is now clear.  Visual overflow
      is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling.  It has
      been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
      work with writing modes.
      
      In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
      Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
      A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
      a huge number of tests would change.
      
      Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow.  Existing tests cover the rest.
      
      WebCore: 
      
      * page/FrameView.cpp:
      (WebCore::FrameView::adjustViewSize):
      (WebCore::FrameView::forceLayoutForPagination):
      Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
      to account for writing modes.
      
      * platform/graphics/IntRect.h:
      (WebCore::IntRect::shiftLeftEdgeTo):
      (WebCore::IntRect::shiftRightEdgeTo):
      (WebCore::IntRect::shiftTopEdgeTo):
      (WebCore::IntRect::shiftBottomEdgeTo):
      New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
      
      * rendering/InlineBox.h:
      (WebCore::InlineBox::frameRect):
      frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
      
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
      All of the overflow setting in the inline direction has been removed from this function.  All line overflow is computed
      at once now in a single function: computeOverflow.
      
      (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
      (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
      (WebCore::InlineFlowBox::addReplacedChildOverflow):
      Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
      
      (WebCore::InlineFlowBox::computeOverflow):
      The new function that computes both horizontal and vertical overflow for a line box.
      
      (WebCore::InlineFlowBox::setLayoutOverflow):
      (WebCore::InlineFlowBox::setVisualOverflow):
      (WebCore::InlineFlowBox::setOverflowFromLogicalRects):
      New functions that set the overflow computed by computeOverflow.  These replace setBlockDirectionOverflowPositions
      and setInlineDirectionOverflowPositions.  They essentially do the same thing, but they operate on rectangles.
      
      (WebCore::InlineFlowBox::nodeAtPoint):
      (WebCore::InlineFlowBox::paint):
      Changed to use visual overflow instead of visible overflow.  (Visible overflow as a union of layout and visual
      overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
      
      * rendering/InlineFlowBox.h:
      (WebCore::InlineFlowBox::logicalLayoutOverflowRect):
      (WebCore::InlineFlowBox::logicalVisualOverflowRect):
      Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
      converting to block coordinates at the end.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::addOverflowFromChildren):
      (WebCore::RenderBlock::computeOverflow):
      (WebCore::RenderBlock::addOverflowFromFloats):
      (WebCore::RenderBlock::addOverflowFromPositionedObjects):
      Blocks now have a computeOverflow function called at the end of layout that adds in all the types of overflow.  The addOverflowFromChildren
      method is virtual so that RenderListItem and RenderTable can subclass it.  RenderListItem has to position its list marker and
      propagate marker overflow up, and RenderTable adds in overflow from its sections.
      
      (WebCore::RenderBlock::layoutOnlyPositionedObjects):
      (WebCore::RenderBlock::layoutPositionedObjects):
      When only positioned objects lay out, overflow must still be recomputed.  The refactoring of overflow computation into a single
      callable method: computeOverflow, makes it possible for this to be done easily.
      
      (WebCore::RenderBlock::paint):
      visible -> visual.
      
      (WebCore::RenderBlock::addOverhangingFloats):
      The propagation of float overflow has changed substantially.  The basic rules are:
          (1) The float must be in our floating objects list to contribute to overflow.
          (2) The float must be a descendant to contribute to overflow.
          (3) The block must have the outermost list that contains the float, or it has a self-painting layer and
              so the float needs to be included in its overflow.
      
      (WebCore::RenderBlock::nodeAtPoint):
      visible -> visual.
      
      (WebCore::RenderBlock::layoutColumns):
      Remove column overflow computation from layoutColumns and move it to computeOverflow.
      
      (WebCore::RenderBlock::adjustLinePositionForPagination):
      visible -> visual.
      
      * rendering/RenderBlock.h:
      (WebCore::RenderBlock::scrollbarsChanged):
      Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
      
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlock::layoutInlineChildren):
      (WebCore::RenderBlock::determineStartPosition):
      (WebCore::RenderBlock::matchedEndLine):
      (WebCore::RenderBlock::addOverflowFromInlineChildren):
      (WebCore::RenderBlock::beforeSideVisualOverflowForLine):
      (WebCore::RenderBlock::afterSideVisualOverflowForLine):
      visible -> visual.
      
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::scrollWidth):
      (WebCore::RenderBox::scrollHeight):
      Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
      
      (WebCore::RenderBox::paintRootBoxDecorations):
      Use docLeft and docTop here, so that writing modes are handled.
      
      (WebCore::RenderBox::clippedOverflowRectForRepaint):
      visible -> visual.
      
      (WebCore::RenderBox::addOverflowFromChild):
      (WebCore::RenderBox::addLayoutOverflow):
      (WebCore::RenderBox::addVisualOverflow):
      (WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
      (WebCore::RenderBox::visualOverflowRectForPropagation):
      (WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
      (WebCore::RenderBox::layoutOverflowRectForPropagation):
      * rendering/RenderBox.h:
      The new overflow system for boxes.  Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
      for transforms, relative positioning and writing mode differences.
      
      (WebCore::RenderBox::layoutOverflowRect):
      (WebCore::RenderBox::topLayoutOverflow):
      (WebCore::RenderBox::bottomLayoutOverflow):
      (WebCore::RenderBox::leftLayoutOverflow):
      (WebCore::RenderBox::rightLayoutOverflow):
      Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
      
      (WebCore::RenderBox::clientLogicalBottom):
      New helper for obtaining the logical bottom of the client box.
      
      (WebCore::RenderBox::clientBoxRect):
      New helper for obtaining the clientLeft/Top/Width/Height box.
      
      * rendering/RenderBoxModelObject.h:
      (WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
      Helper for obtaining the relative position offset transposed for vertical writing modes.  Used by line overflow.
      
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      Changed flexible boxes to just call the base class computeOverflow method.
      
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::linesVisualOverflowBoundingBox):
      (WebCore::RenderInline::clippedOverflowRectForRepaint):
      visible -> visual.
      
      * rendering/RenderInline.h:
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updateLayerPosition):
      Changed layers to no longer incorporate right/bottom overflow into width/height.  This is the reason many layout
      tests change.  (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
      layers now.)
      
      (WebCore::RenderLayer::overflowTop):
      (WebCore::RenderLayer::overflowBottom):
      (WebCore::RenderLayer::overflowLeft):
      (WebCore::RenderLayer::overflowRight):
      overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
      to set up the scroll area.
      
      (WebCore::RenderLayer::computeScrollDimensions):
      Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
      
      (WebCore::RenderLayer::updateScrollInfoAfterLayout):
      Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
      bottom works.
      
      (WebCore::performOverlapTests):
      (WebCore::RenderLayer::paintLayer):
      Fix a bug in performOverlapTests.  It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
      of the layer (see why I hate layers even having dimensions?).  Changed it to use the bounding box of the layer instead.
      
      (WebCore::RenderLayer::hitTest):
      Fix a bug in hit testing.  It incorrectly used the root layer's bounds as the limit of the hit test, and so it didn't account
      for left/top overflow in a ScrollView (hate hate hate layers having dimensions).  I changed it to use the hit test rect instead,
      so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
      
      (WebCore::RenderLayer::localBoundingBox):
      visible -> visual.
      
      * rendering/RenderLayer.h:
      Added the new overflowTop/Left/Right/Bottom accessors.
      
      * rendering/RenderLineBoxList.cpp:
      (WebCore::RenderLineBoxList::anyLineIntersectsRect):
      (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
      (WebCore::RenderLineBoxList::paint):
      (WebCore::RenderLineBoxList::hitTest):
      visible -> visual.
      
      * rendering/RenderListItem.cpp:
      (WebCore::RenderListItem::addOverflowFromChildren):
      (WebCore::RenderListItem::positionListMarker):
      * rendering/RenderListItem.h:
      RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
      
      * rendering/RenderListMarker.cpp:
      (WebCore::RenderListMarker::paint):
      visible -> visual.
      
      * rendering/RenderMarquee.cpp:
      (WebCore::RenderMarquee::computePosition):
      Changed to use overflow functions instead of rightmost/lowestPosition.
      
      * rendering/RenderMedia.cpp:
      * rendering/RenderMedia.h:
      Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
      
      * rendering/RenderOverflow.h:
      (WebCore::RenderOverflow::RenderOverflow):
      (WebCore::RenderOverflow::setLayoutOverflow):
      (WebCore::RenderOverflow::setVisualOverflow):
      Add new setters for layout and visual overflow as rects.
      
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::shouldPaint):
      (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
      visible -> visual.
      
      * rendering/RenderRubyRun.cpp:
      (WebCore::RenderRubyRun::layout):
      Call computeOverflow to recompute our overflow information after we adjust the ruby.
      
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      (WebCore::RenderTable::addOverflowFromChildren):
      (WebCore::RenderTable::paint):
      * rendering/RenderTable.h:
      Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
      
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
      visible -> visual.
      
      (WebCore::RenderTableCell::scrollbarsChanged):
      Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
      a bug in table layout.  If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
      cell, then the cell won't lay out properly the second time (after the scrollbars have been added).  We have to adjust the intrinsic
      padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
      
      * rendering/RenderTableCell.h:
      (WebCore::RenderTableCell::hasVisualOverflow):
      visible -> visual.
      
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderTableSection.h:
      visible -> visual.  Removed the leftmost/rightmost/topmost/bottommostPosition functions.
      
      * rendering/RenderTreeAsText.cpp:
      (WebCore::writeLayers):
      Added a hack to render tree dumping to include right/bottom overflow for the root layer only.  This keeps a zillion layout tests
      from failing.
      
      * rendering/RenderView.cpp:
      (WebCore::RenderView::layout):
      (WebCore::RenderView::docTop):
      (WebCore::RenderView::docBottom):
      (WebCore::RenderView::docLeft):
      (WebCore::RenderView::docRight):
      * rendering/RenderView.h:
      (WebCore::RenderView::docHeight):
      (WebCore::RenderView::docWidth):
      RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes.  These methods
      are now the preferred way to query for the physical dimensions of a document.
      
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::addHighlightOverflow):
      Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
      
      (WebCore::RootInlineBox::alignBoxesInBlockDirection):
      Remove the computation of block direction overflow, since it now all happens at once after the line is built.
      
      (WebCore::RootInlineBox::paddedLayoutOverflowRect):
      * rendering/RootInlineBox.h:
      Added a new helper function for incorporating the end padding into a line.  This end padding also includes the single pixel for a caret
      in LTR if needed.
      
      LayoutTests: 
      
      * compositing/checkerboard-expected.txt:
      * compositing/geometry/limit-layer-bounds-transformed-expected.txt:
      * compositing/iframes/composited-parent-iframe-expected.txt:
      * fast/backgrounds/size/contain-and-cover-expected.txt:
      * fast/flexbox/009.html:
      * fast/overflow/overflow-rtl-vertical.html: Added.
      * fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt:
      * fast/spatial-navigation/snav-clipped-overflowed-content.html:
      * platform/mac/compositing/direct-image-compositing-expected.txt:
      * platform/mac/compositing/geometry/fixed-position-expected.txt:
      * platform/mac/compositing/geometry/video-opacity-overlay-expected.txt:
      * platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.txt:
      * platform/mac/compositing/overflow/scroll-ancestor-update-expected.txt:
      * platform/mac/compositing/reflections/load-video-in-reflection-expected.txt:
      * platform/mac/compositing/repaint/content-into-overflow-expected.txt:
      * platform/mac/compositing/repaint/overflow-into-content-expected.txt:
      * platform/mac/css1/box_properties/margin-expected.txt:
      * platform/mac/css1/box_properties/margin_right-expected.txt:
      * platform/mac/css1/classification/white_space-expected.txt:
      * platform/mac/css1/color_and_background/background_attachment-expected.txt:
      * platform/mac/css1/color_and_background/background_repeat-expected.txt:
      * platform/mac/css2.1/t0803-c5502-mrgn-r-02-c-expected.txt:
      * platform/mac/css2.1/t0803-c5505-mrgn-02-c-expected.txt:
      * platform/mac/css2.1/t0804-c5508-ipadn-b-02-b-a-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-00-d-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-01-d-g-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-02-c-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-03-c-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-04-c-expected.txt:
      * platform/mac/css2.1/t0905-c414-flt-wrap-01-d-g-expected.txt:
      * platform/mac/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
      * platform/mac/css2.1/t0905-c5525-fltwidth-02-c-g-expected.txt:
      * platform/mac/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt:
      * platform/mac/css2.1/t090501-c414-flt-02-d-g-expected.txt:
      * platform/mac/css2.1/t090501-c414-flt-03-b-g-expected.txt:
      * platform/mac/css2.1/t1202-counters-08-b-expected.txt:
      * platform/mac/css2.1/t1202-counters-09-b-expected.txt:
      * platform/mac/editing/deleting/delete-after-span-ws-001-expected.txt:
      * platform/mac/editing/deleting/delete-after-span-ws-002-expected.txt:
      * platform/mac/editing/deleting/delete-after-span-ws-003-expected.txt:
      * platform/mac/editing/deleting/delete-line-end-ws-001-expected.txt:
      * platform/mac/editing/deleting/delete-line-end-ws-002-expected.txt:
      * platform/mac/editing/selection/25228-expected.txt:
      * platform/mac/editing/selection/focus_editable_html-expected.txt:
      * platform/mac/editing/selection/select-all-001-expected.txt:
      * platform/mac/editing/selection/select-all-002-expected.txt:
      * platform/mac/editing/selection/select-all-003-expected.txt:
      * platform/mac/editing/selection/select-all-004-expected.txt:
      * platform/mac/editing/selection/unrendered-001-expected.txt:
      * platform/mac/editing/selection/unrendered-002-expected.txt:
      * platform/mac/editing/selection/unrendered-003-expected.txt:
      * platform/mac/editing/selection/unrendered-004-expected.txt:
      * platform/mac/editing/selection/unrendered-005-expected.txt:
      * platform/mac/fast/backgrounds/repeat/negative-offset-repeat-expected.txt:
      * platform/mac/fast/backgrounds/size/backgroundSize15-expected.txt:
      * platform/mac/fast/block/basic/010-expected.txt:
      * platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
      * platform/mac/fast/block/float/008-expected.txt:
      * platform/mac/fast/block/float/013-expected.txt:
      * platform/mac/fast/block/float/019-expected.txt:
      * platform/mac/fast/block/float/021-expected.txt:
      * platform/mac/fast/block/float/029-expected.txt:
      * platform/mac/fast/block/float/031-expected.txt:
      * platform/mac/fast/block/float/033-expected.txt:
      * platform/mac/fast/block/float/035-expected.txt:
      * platform/mac/fast/block/float/avoidance-percent-width-strict-expected.txt:
      * platform/mac/fast/block/float/clamped-right-float-expected.txt:
      * platform/mac/fast/block/float/float-in-float-painting-expected.txt:
      * platform/mac/fast/block/float/nested-clearance-expected.txt:
      * platform/mac/fast/block/float/relative-painted-twice-expected.txt:
      * platform/mac/fast/block/margin-collapse/004-expected.txt:
      * platform/mac/fast/block/margin-collapse/062-expected.txt:
      * platform/mac/fast/block/margin-collapse/063-expected.txt:
      * platform/mac/fast/block/margin-collapse/104-expected.txt:
      * platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.txt:
      * platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
      * platform/mac/fast/block/positioning/002-expected.txt:
      * platform/mac/fast/block/positioning/047-expected.txt:
      * platform/mac/fast/block/positioning/049-expected.txt:
      * platform/mac/fast/block/positioning/051-expected.txt:
      * platform/mac/fast/block/positioning/auto-height-with-top-and-bottom-expected.txt:
      * platform/mac/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt:
      * platform/mac/fast/blockflow/block-level-images-expected.txt:
      * platform/mac/fast/blockflow/border-radius-clipping-vertical-lr-expected.txt:
      * platform/mac/fast/blockflow/box-shadow-vertical-lr-expected.txt:
      * platform/mac/fast/blockflow/box-shadow-vertical-rl-expected.txt:
      * platform/mac/fast/blockflow/floats-in-block-layout-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/basic-shadows-expected.txt:
      * platform/mac/fast/box-sizing/box-sizing-expected.txt:
      * platform/mac/fast/clip/008-expected.txt:
      * platform/mac/fast/clip/009-expected.txt:
      * platform/mac/fast/clip/010-expected.txt:
      * platform/mac/fast/clip/011-expected.txt:
      * platform/mac/fast/clip/012-expected.txt:
      * platform/mac/fast/compact/001-expected.txt:
      * platform/mac/fast/css/color-correction-on-background-image-expected.txt:
      * platform/mac/fast/css/negative-leading-expected.txt:
      * platform/mac/fast/css/percentage-non-integer-expected.txt:
      * platform/mac/fast/css/word-space-extra-expected.txt:
      * platform/mac/fast/dom/clone-node-dynamic-style-expected.txt:
      * platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt:
      * platform/mac/fast/events/focusingUnloadedFrame-expected.txt:
      * platform/mac/fast/flexbox/009-expected.txt:
      * platform/mac/fast/flexbox/016-expected.txt:
      * platform/mac/fast/flexbox/flex-hang-expected.txt:
      * platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
      * platform/mac/fast/forms/file-input-direction-expected.txt:
      * platform/mac/fast/forms/floating-textfield-relayout-expected.txt:
      * platform/mac/fast/forms/textfield-overflow-expected.txt:
      * platform/mac/fast/frames/flattening/frameset-flattening-advanced-expected.txt:
      * platform/mac/fast/frames/flattening/frameset-flattening-grid-expected.txt:
      * platform/mac/fast/frames/flattening/frameset-flattening-simple-expected.txt:
      * platform/mac/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt:
      * platform/mac/fast/frames/flattening/frameset-flattening-subframesets-expected.txt:
      * platform/mac/fast/frames/frame-scrolling-attribute-expected.txt:
      * platform/mac/fast/frames/iframe-scrolling-attribute-expected.txt:
      * platform/mac/fast/frames/inline-object-inside-frameset-expected.txt:
      * platform/mac/fast/gradients/background-clipped-expected.txt:
      * platform/mac/fast/images/gif-large-checkerboard-expected.txt:
      * platform/mac/fast/images/pdf-as-image-landscape-expected.txt:
      * platform/mac/fast/inline-block/inline-block-vertical-align-expected.txt:
      * platform/mac/fast/inline/long-wrapped-line-expected.txt:
      * platform/mac/fast/layers/layer-visibility-expected.txt:
      * platform/mac/fast/layers/layer-visibility-sublayer-expected.txt:
      * platform/mac/fast/lists/001-expected.txt:
      * platform/mac/fast/lists/001-vertical-expected.txt:
      * platform/mac/fast/lists/003-expected.txt:
      * platform/mac/fast/lists/003-vertical-expected.txt:
      * platform/mac/fast/lists/li-br-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-02-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-03-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-04-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-05-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-06-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-07-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-08-expected.txt:
      * platform/mac/fast/media/mq-relative-constraints-09-expected.txt:
      * platform/mac/fast/media/mq-width-absolute-01-expected.txt:
      * platform/mac/fast/media/mq-width-absolute-02-expected.txt:
      * platform/mac/fast/media/mq-width-absolute-03-expected.txt:
      * platform/mac/fast/media/mq-width-absolute-04-expected.txt:
      * platform/mac/fast/multicol/float-multicol-expected.txt:
      * platform/mac/fast/multicol/float-paginate-complex-expected.txt:
      * platform/mac/fast/multicol/float-paginate-expected.txt:
      * platform/mac/fast/multicol/layers-in-multicol-expected.txt:
      * platform/mac/fast/multicol/paginate-block-replaced-expected.txt:
      * platform/mac/fast/multicol/positioned-with-constrained-height-expected.txt:
      * platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
      * platform/mac/fast/multicol/table-vertical-align-expected.txt:
      * platform/mac/fast/overflow/006-expected.txt:
      * platform/mac/fast/overflow/float-in-relpositioned-expected.txt:
      * platform/mac/fast/overflow/overflow-auto-table-expected.txt:
      * platform/mac/fast/overflow/overflow-rtl-vertical-expected.checksum: Added.
      * platform/mac/fast/overflow/overflow-rtl-vertical-expected.png: Added.
      * platform/mac/fast/overflow/overflow-rtl-vertical-expected.txt: Added.
      * platform/mac/fast/overflow/scrollRevealButton-expected.txt:
      * platform/mac/fast/reflections/reflection-direction-expected.txt:
      * platform/mac/fast/repaint/box-shadow-h-expected.checksum:
      * platform/mac/fast/repaint/box-shadow-h-expected.png:
      * platform/mac/fast/repaint/box-shadow-h-expected.txt:
      * platform/mac/fast/repaint/box-shadow-v-expected.txt:
      * platform/mac/fast/repaint/content-into-overflow-expected.txt:
      * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt:
      * platform/mac/fast/repaint/float-overflow-expected.txt:
      * platform/mac/fast/repaint/float-overflow-right-expected.txt:
      * platform/mac/fast/repaint/overflow-into-content-expected.txt:
      * platform/mac/fast/repaint/overflow-scroll-body-appear-expected.txt:
      * platform/mac/fast/repaint/subtree-root-clip-expected.txt:
      * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
      * platform/mac/fast/repaint/transform-replaced-shadows-expected.checksum:
      * platform/mac/fast/repaint/transform-replaced-shadows-expected.png:
      * platform/mac/fast/replaced/004-expected.txt:
      * platform/mac/fast/table/034-expected.txt:
      * platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
      * platform/mac/fast/table/colspanMinWidth-vertical-expected.txt:
      * platform/mac/fast/table/fixed-with-auto-with-colspan-expected.txt:
      * platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.txt:
      * platform/mac/fast/table/frame-and-rules-expected.txt:
      * platform/mac/fast/table/height-percent-test-vertical-expected.txt:
      * platform/mac/fast/table/wide-colspan-expected.txt:
      * platform/mac/fast/table/wide-column-expected.txt:
      * platform/mac/fast/text/international/thai-line-breaks-expected.txt:
      * platform/mac/fast/text/large-text-composed-char-expected.txt:
      * platform/mac/fast/text/letter-spacing-negative-opacity-expected.txt:
      * platform/mac/fast/text/text-letter-spacing-expected.txt:
      * platform/mac/fast/text/whitespace/012-expected.txt:
      * platform/mac/mathml/presentation/fenced-expected.txt:
      * platform/mac/mathml/presentation/mo-expected.txt:
      * platform/mac/mathml/presentation/over-expected.txt:
      * platform/mac/mathml/presentation/row-alignment-expected.txt:
      * platform/mac/mathml/presentation/row-expected.txt:
      * platform/mac/printing/return-from-printing-mode-expected.txt:
      * platform/mac/svg/custom/altglyph-expected.txt:
      * platform/mac/svg/custom/getscreenctm-in-mixed-content-expected.txt:
      * platform/mac/svg/custom/path-bad-data-expected.txt:
      * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
      * platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
      * platform/mac/svg/custom/text-xy-updates-SVGList-expected.txt:
      * platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.txt:
      * platform/mac/svg/text/foreignObject-text-clipping-bug-expected.txt:
      * platform/mac/svg/text/kerning-expected.txt:
      * platform/mac/svg/text/multichar-glyph-expected.txt:
      * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt:
      * platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
      * platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug120364-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug196870-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug23151-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug29314-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug43039-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug43854-1-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug45055-2-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug5797-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug625-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug72359-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug83786-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
      * platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
      * platform/mac/tables/mozilla/core/nested1-expected.txt:
      * platform/mac/tables/mozilla/marvin/backgr_index-expected.txt:
      * platform/mac/tables/mozilla/marvin/x_table_align_left-expected.txt:
      * platform/mac/tables/mozilla/marvin/x_table_align_right-expected.txt:
      * platform/mac/tables/mozilla/marvin/x_td_nowrap-expected.txt:
      * platform/mac/tables/mozilla/marvin/x_th_nowrap-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/bugs/bug220653-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/bugs/bug67915-2-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/bugs/bug85016-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_left-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_right-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_top-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_table-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_hidden_tr-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell_sibling-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table_caption-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_bottom-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_middle-expected.txt:
      * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_top-expected.txt:
      * platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-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-preserve-3d-expected.txt:
      * platform/mac/transforms/svg-vs-css-expected.txt:
      * svg/custom/text-zoom-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      592848f1
  9. 29 Nov, 2010 1 commit
  10. 11 Nov, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=48664 · 7a97d270
      hyatt@apple.com authored
              
      Reviewed by Simon Fraser.
      
      Make repaint invalidation work with flipped blocks ("rl" and "bt" writing modes).
              
      This patch disables the layout state for flipped blocks, since the paint offset isn't right.
              
      Bugs in the overflow sides for lines have been fixed.  before/AfterSideVisible/LayoutOverflowForLine
      now respect flipping (and don't incorrectly change sides).  This is a very confusing aspect of
      the overflow stuff (and at some point we should consider renaming top/left/right/bottom since they
      aren't physical).
              
      offsetFromContainer and mapLocalToContainer remain physical and refer to the top left offset.
      This means at every step up you convert to the correct physical coordinate.  It also means these
      functions will be unreliable during layout for flipped blocks.  At first glance, this seems to be
      more or less ok.
              
      computeRectForRepaint now delays flipping conversions until you cross a writing-mode boundary.  This
      allows for documents to be fully flipped and repaint during layout can still be reliable.  This is
      critical for incremental line layout repainting.
              
      Added new tests in fast/repaint and also rebaselined the tests in that directory because I'm tired
      of all the stale results and failures.
      
      WebCore: 
      
      * editing/SelectionController.cpp:
      (WebCore::SelectionController::absoluteBoundsForLocalRect):
      (WebCore::SelectionController::paintCaret):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::selectionRect):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::layoutOnlyPositionedObjects):
      (WebCore::RenderBlock::paintSelection):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlock::beforeSideVisibleOverflowForLine):
      (WebCore::RenderBlock::afterSideVisibleOverflowForLine):
      (WebCore::RenderBlock::beforeSideLayoutOverflowForLine):
      (WebCore::RenderBlock::afterSideLayoutOverflowForLine):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::layout):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::offsetFromContainer):
      (WebCore::RenderBox::clippedOverflowRectForRepaint):
      (WebCore::RenderBox::computeRectForRepaint):
      (WebCore::RenderBox::flipForWritingMode):
      (WebCore::RenderBox::locationOffsetIncludingFlipping):
      * rendering/RenderBox.h:
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::clippedOverflowRectForRepaint):
      * rendering/RenderSlider.cpp:
      (WebCore::RenderSlider::layout):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layout):
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::computeRectForRepaint):
      * rendering/ShadowElement.cpp:
      (WebCore::ShadowBlockElement::layoutAsPart):
      
      LayoutTests: 
      
      * fast/repaint/japanese-rl-selection-clear.html: Added.
      * fast/repaint/japanese-rl-selection-repaint.html: Added.
      * fast/repaint/repaint-svg-after-style-change-expected.png:
      * platform/mac/fast/repaint/4774354-expected.checksum:
      * platform/mac/fast/repaint/4774354-expected.png:
      * platform/mac/fast/repaint/4776765-expected.checksum:
      * platform/mac/fast/repaint/4776765-expected.png:
      * platform/mac/fast/repaint/background-generated-expected.checksum:
      * platform/mac/fast/repaint/background-generated-expected.png:
      * platform/mac/fast/repaint/background-misaligned-expected.png:
      * platform/mac/fast/repaint/backgroundSizeRepaint-expected.checksum:
      * platform/mac/fast/repaint/backgroundSizeRepaint-expected.png:
      * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.checksum:
      * platform/mac/fast/repaint/block-layout-inline-children-replaced-expected.png:
      * platform/mac/fast/repaint/block-no-inflow-children-expected.checksum:
      * platform/mac/fast/repaint/block-no-inflow-children-expected.png:
      * platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.checksum:
      * platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.png:
      * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.png:
      * platform/mac/fast/repaint/border-fit-lines-expected.checksum:
      * platform/mac/fast/repaint/border-fit-lines-expected.png:
      * platform/mac/fast/repaint/border-radius-repaint-expected.checksum:
      * platform/mac/fast/repaint/border-radius-repaint-expected.png:
      * platform/mac/fast/repaint/border-repaint-glitch-expected.checksum:
      * platform/mac/fast/repaint/border-repaint-glitch-expected.png:
      * platform/mac/fast/repaint/box-shadow-dynamic-expected.checksum:
      * platform/mac/fast/repaint/box-shadow-dynamic-expected.png:
      * platform/mac/fast/repaint/box-shadow-h-expected.checksum:
      * platform/mac/fast/repaint/box-shadow-h-expected.png:
      * platform/mac/fast/repaint/box-shadow-v-expected.checksum:
      * platform/mac/fast/repaint/box-shadow-v-expected.png:
      * platform/mac/fast/repaint/bugzilla-3509-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-3509-expected.png:
      * platform/mac/fast/repaint/bugzilla-5699-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-5699-expected.png:
      * platform/mac/fast/repaint/bugzilla-6278-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-6278-expected.png:
      * platform/mac/fast/repaint/bugzilla-6388-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-6388-expected.png:
      * platform/mac/fast/repaint/bugzilla-6473-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-6473-expected.png:
      * platform/mac/fast/repaint/bugzilla-7235-expected.checksum:
      * platform/mac/fast/repaint/bugzilla-7235-expected.png:
      * platform/mac/fast/repaint/button-spurious-layout-hint-expected.png:
      * platform/mac/fast/repaint/caret-outside-block-expected.checksum:
      * platform/mac/fast/repaint/caret-outside-block-expected.png:
      * platform/mac/fast/repaint/change-transform-expected.checksum:
      * platform/mac/fast/repaint/change-transform-expected.png:
      * platform/mac/fast/repaint/clip-with-layout-delta-expected.png:
      * platform/mac/fast/repaint/clipped-relative-expected.checksum:
      * platform/mac/fast/repaint/clipped-relative-expected.png:
      * platform/mac/fast/repaint/containing-block-position-change-expected.checksum:
      * platform/mac/fast/repaint/containing-block-position-change-expected.png:
      * platform/mac/fast/repaint/content-into-overflow-expected.png:
      * platform/mac/fast/repaint/continuation-after-outline-expected.checksum:
      * platform/mac/fast/repaint/continuation-after-outline-expected.png:
      * platform/mac/fast/repaint/control-clip-expected.checksum:
      * platform/mac/fast/repaint/control-clip-expected.png:
      * platform/mac/fast/repaint/create-layer-repaint-expected.checksum:
      * platform/mac/fast/repaint/create-layer-repaint-expected.png:
      * platform/mac/fast/repaint/delete-into-nested-block-expected.checksum:
      * platform/mac/fast/repaint/delete-into-nested-block-expected.png:
      * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.checksum:
      * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.png:
      * platform/mac/fast/repaint/erase-overflow-expected.png:
      * platform/mac/fast/repaint/fixed-expected.checksum:
      * platform/mac/fast/repaint/fixed-expected.png:
      * platform/mac/fast/repaint/flexible-box-overflow-expected.checksum:
      * platform/mac/fast/repaint/flexible-box-overflow-expected.png:
      * platform/mac/fast/repaint/flexible-box-overflow-horizontal-expected.checksum:
      * platform/mac/fast/repaint/flexible-box-overflow-horizontal-expected.png:
      * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.png:
      * platform/mac/fast/repaint/float-move-during-layout-expected.checksum:
      * platform/mac/fast/repaint/float-move-during-layout-expected.png:
      * platform/mac/fast/repaint/float-new-in-block-expected.png:
      * platform/mac/fast/repaint/float-overflow-expected.png:
      * platform/mac/fast/repaint/float-overflow-right-expected.png:
      * platform/mac/fast/repaint/focus-layers-expected.checksum:
      * platform/mac/fast/repaint/focus-layers-expected.png:
      * platform/mac/fast/repaint/focus-ring-expected.png:
      * platform/mac/fast/repaint/inline-block-overflow-expected.checksum:
      * platform/mac/fast/repaint/inline-block-overflow-expected.png:
      * platform/mac/fast/repaint/inline-block-resize-expected.png:
      * platform/mac/fast/repaint/inline-color-change-expected.checksum:
      * platform/mac/fast/repaint/inline-color-change-expected.png:
      * platform/mac/fast/repaint/inline-outline-repaint-expected.checksum:
      * platform/mac/fast/repaint/inline-outline-repaint-expected.png:
      * platform/mac/fast/repaint/intermediate-layout-position-clip-expected.png:
      * platform/mac/fast/repaint/intermediate-layout-position-expected.png:
      * platform/mac/fast/repaint/invisible-objects-expected.png:
      * platform/mac/fast/repaint/japanese-rl-selection-clear-expected.checksum: Added.
      * platform/mac/fast/repaint/japanese-rl-selection-clear-expected.png: Added.
      * platform/mac/fast/repaint/japanese-rl-selection-clear-expected.txt: Added.
      * platform/mac/fast/repaint/japanese-rl-selection-repaint-expected.checksum: Added.
      * platform/mac/fast/repaint/japanese-rl-selection-repaint-expected.png: Added.
      * platform/mac/fast/repaint/japanese-rl-selection-repaint-expected.txt: Added.
      * platform/mac/fast/repaint/layer-child-outline-expected.checksum:
      * platform/mac/fast/repaint/layer-child-outline-expected.png:
      * platform/mac/fast/repaint/layer-full-repaint-expected.png:
      * platform/mac/fast/repaint/layer-hide-when-needs-layout-expected.png:
      * platform/mac/fast/repaint/layer-outline-expected.checksum:
      * platform/mac/fast/repaint/layer-outline-expected.png:
      * platform/mac/fast/repaint/layer-outline-horizontal-expected.checksum:
      * platform/mac/fast/repaint/layer-outline-horizontal-expected.png:
      * platform/mac/fast/repaint/layer-visibility-expected.png:
      * platform/mac/fast/repaint/layout-state-only-positioned-expected.png:
      * platform/mac/fast/repaint/layout-state-relative-expected.checksum:
      * platform/mac/fast/repaint/layout-state-relative-expected.png:
      * platform/mac/fast/repaint/layout-state-scrolloffset-expected.checksum:
      * platform/mac/fast/repaint/layout-state-scrolloffset-expected.png:
      * platform/mac/fast/repaint/layout-state-scrolloffset2-expected.checksum:
      * platform/mac/fast/repaint/layout-state-scrolloffset2-expected.png:
      * platform/mac/fast/repaint/layout-state-scrolloffset3-expected.checksum:
      * platform/mac/fast/repaint/layout-state-scrolloffset3-expected.png:
      * platform/mac/fast/repaint/line-overflow-expected.checksum:
      * platform/mac/fast/repaint/line-overflow-expected.png:
      * platform/mac/fast/repaint/lines-with-layout-delta-expected.checksum:
      * platform/mac/fast/repaint/lines-with-layout-delta-expected.png:
      * platform/mac/fast/repaint/list-marker-2-expected.checksum:
      * platform/mac/fast/repaint/list-marker-2-expected.png:
      * platform/mac/fast/repaint/list-marker-expected.checksum:
      * platform/mac/fast/repaint/list-marker-expected.png:
      * platform/mac/fast/repaint/make-children-non-inline-expected.checksum:
      * platform/mac/fast/repaint/make-children-non-inline-expected.png:
      * platform/mac/fast/repaint/moving-shadow-on-container-expected.checksum:
      * platform/mac/fast/repaint/moving-shadow-on-container-expected.png:
      * platform/mac/fast/repaint/moving-shadow-on-path-expected.checksum:
      * platform/mac/fast/repaint/moving-shadow-on-path-expected.png:
      * platform/mac/fast/repaint/multicol-repaint-expected.checksum:
      * platform/mac/fast/repaint/multicol-repaint-expected.png:
      * platform/mac/fast/repaint/opacity-change-on-overflow-float-expected.checksum:
      * platform/mac/fast/repaint/opacity-change-on-overflow-float-expected.png:
      * platform/mac/fast/repaint/outline-child-repaint-expected.checksum:
      * platform/mac/fast/repaint/outline-child-repaint-expected.png:
      * platform/mac/fast/repaint/outline-inset-expected.png:
      * platform/mac/fast/repaint/outline-repaint-glitch-expected.checksum:
      * platform/mac/fast/repaint/outline-repaint-glitch-expected.png:
      * platform/mac/fast/repaint/outline-shrinking-expected.checksum:
      * platform/mac/fast/repaint/outline-shrinking-expected.png:
      * platform/mac/fast/repaint/overflow-clip-subtree-layout-expected.png:
      * platform/mac/fast/repaint/overflow-delete-line-expected.checksum:
      * platform/mac/fast/repaint/overflow-delete-line-expected.png:
      * platform/mac/fast/repaint/overflow-into-content-expected.png:
      * platform/mac/fast/repaint/overflow-outline-repaint-expected.checksum:
      * platform/mac/fast/repaint/overflow-outline-repaint-expected.png:
      * platform/mac/fast/repaint/overflow-scroll-body-appear-expected.checksum:
      * platform/mac/fast/repaint/overflow-scroll-body-appear-expected.png:
      * platform/mac/fast/repaint/overflow-scroll-delete-expected.checksum:
      * platform/mac/fast/repaint/overflow-scroll-delete-expected.png:
      * platform/mac/fast/repaint/reflection-redraw-expected.checksum:
      * platform/mac/fast/repaint/reflection-redraw-expected.png:
      * platform/mac/fast/repaint/reflection-repaint-test-expected.png:
      * platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.png:
      * platform/mac/fast/repaint/repaint-resized-overflow-expected.checksum:
      * platform/mac/fast/repaint/repaint-resized-overflow-expected.png:
      * platform/mac/fast/repaint/search-field-cancel-expected.checksum:
      * platform/mac/fast/repaint/search-field-cancel-expected.png:
      * platform/mac/fast/repaint/selected-replaced-expected.checksum:
      * platform/mac/fast/repaint/selected-replaced-expected.png:
      * platform/mac/fast/repaint/selection-after-delete-expected.checksum:
      * platform/mac/fast/repaint/selection-after-delete-expected.png:
      * platform/mac/fast/repaint/selection-after-remove-expected.checksum:
      * platform/mac/fast/repaint/selection-after-remove-expected.png:
      * platform/mac/fast/repaint/selection-clear-expected.checksum:
      * platform/mac/fast/repaint/selection-clear-expected.png:
      * platform/mac/fast/repaint/selection-gap-overflow-scroll-expected.checksum:
      * platform/mac/fast/repaint/selection-gap-overflow-scroll-expected.png:
      * platform/mac/fast/repaint/selection-rl-expected.checksum:
      * platform/mac/fast/repaint/selection-rl-expected.png:
      * platform/mac/fast/repaint/shadow-multiple-horizontal-expected.png:
      * platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.checksum:
      * platform/mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:
      * platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.checksum:
      * platform/mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:
      * platform/mac/fast/repaint/shadow-multiple-vertical-expected.png:
      * platform/mac/fast/repaint/stacked-diacritics-expected.checksum:
      * platform/mac/fast/repaint/stacked-diacritics-expected.png:
      * platform/mac/fast/repaint/static-to-positioned-expected.checksum:
      * platform/mac/fast/repaint/static-to-positioned-expected.png:
      * platform/mac/fast/repaint/subtree-root-clip-2-expected.png:
      * platform/mac/fast/repaint/subtree-root-clip-3-expected.png:
      * platform/mac/fast/repaint/subtree-root-clip-expected.png:
      * platform/mac/fast/repaint/subtree-root-skipped-expected.checksum:
      * platform/mac/fast/repaint/subtree-root-skipped-expected.png:
      * platform/mac/fast/repaint/table-cell-collapsed-border-expected.checksum:
      * platform/mac/fast/repaint/table-cell-collapsed-border-expected.png:
      * platform/mac/fast/repaint/table-cell-move-expected.checksum:
      * platform/mac/fast/repaint/table-cell-move-expected.png:
      * platform/mac/fast/repaint/table-cell-vertical-overflow-expected.png:
      * platform/mac/fast/repaint/table-col-background-expected.png:
      * platform/mac/fast/repaint/table-collapsed-border-expected.checksum:
      * platform/mac/fast/repaint/table-collapsed-border-expected.png:
      * platform/mac/fast/repaint/table-extra-bottom-grow-expected.checksum:
      * platform/mac/fast/repaint/table-extra-bottom-grow-expected.png:
      * platform/mac/fast/repaint/table-outer-border-expected.png:
      * platform/mac/fast/repaint/table-row-expected.png:
      * platform/mac/fast/repaint/table-section-overflow-expected.png:
      * platform/mac/fast/repaint/table-section-repaint-expected.png:
      * platform/mac/fast/repaint/table-two-pass-layout-overpaint-expected.png:
      * platform/mac/fast/repaint/text-append-dirty-lines-expected.checksum:
      * platform/mac/fast/repaint/text-append-dirty-lines-expected.png:
      * platform/mac/fast/repaint/text-selection-rect-in-overflow-2-expected.checksum:
      * platform/mac/fast/repaint/text-selection-rect-in-overflow-2-expected.png:
      * platform/mac/fast/repaint/text-selection-rect-in-overflow-expected.checksum:
      * platform/mac/fast/repaint/text-selection-rect-in-overflow-expected.png:
      * platform/mac/fast/repaint/text-shadow-expected.checksum:
      * platform/mac/fast/repaint/text-shadow-expected.png:
      * platform/mac/fast/repaint/text-shadow-horizontal-expected.checksum:
      * platform/mac/fast/repaint/text-shadow-horizontal-expected.png:
      * platform/mac/fast/repaint/transform-absolute-child-expected.png:
      * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.checksum:
      * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.png:
      * platform/mac/fast/repaint/transform-disable-layoutstate-expected.png:
      * platform/mac/fast/repaint/transform-layout-repaint-expected.png:
      * platform/mac/fast/repaint/transform-relative-position-expected.checksum:
      * platform/mac/fast/repaint/transform-relative-position-expected.png:
      * platform/mac/fast/repaint/transform-repaint-descendants-expected.checksum:
      * platform/mac/fast/repaint/transform-repaint-descendants-expected.png:
      * platform/mac/fast/repaint/transform-replaced-shadows-expected.png:
      * platform/mac/fast/repaint/transform-translate-expected.png:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7a97d270
  11. 09 Nov, 2010 1 commit
  12. 04 Nov, 2010 1 commit
    • mitz@apple.com's avatar
      WebCore: Made table layout and painting work with all writing modes.... · 8010bbae
      mitz@apple.com authored
      WebCore: Made table layout and painting work with all writing modes. Hit-testing, repainting, tables
      where some elements have their own layers, and cells whose writing mode differs from the
      table’s are not supported yet.
      
      Reviewed by Dave Hyatt.
      
      Make tables work with vertical text
      https://bugs.webkit.org/show_bug.cgi?id=46417
      
      Tests: fast/table/027-vertical.html
             fast/table/028-vertical.html
             fast/table/035-vertical.html
             fast/table/038-vertical.html
             fast/table/040-vertical.html
             fast/table/auto-with-percent-height-vertical.html
             fast/table/border-collapsing/001-vertical.html
             fast/table/border-collapsing/002-vertical.html
             fast/table/border-collapsing/003-vertical.html
             fast/table/border-collapsing/004-vertical.html
             fast/table/border-collapsing/border-collapsing-head-foot-vertical.html
             fast/table/border-collapsing/equal-precedence-resolution-vertical.html
             fast/table/border-collapsing/rtl-border-collapsing-vertical.html
             fast/table/colspanMinWidth-vertical.html
             fast/table/fixed-with-auto-with-colspan-vertical.html
             fast/table/growCellForImageQuirk-vertical.html
             fast/table/height-percent-test-vertical.html
             fast/table/percent-widths-stretch-vertical.html
             fast/table/rowspan-paint-order-vertical.html
             fast/table/table-display-types-vertical.html
      
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::adjustRenderStyle): Changed to allow all writing modes for tables,
      make row groups, rows, column groups and columns inherit the table’s writing mode. For now,
      make cells do this too.
      * html/HTMLTableElement.cpp:
      (WebCore::HTMLTableElement::parseMappedAttribute): Map align=center using logical properties.
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::RenderTable): Initialize m_borderStart and m_borderEnd.
      (WebCore::RenderTable::styleDidChange): Changed the rule for when to use auto layout to look
      at the logical width instead of the width.
      (WebCore::RenderTable::computeLogicalWidth): Uses logical widths and works with perpendicular
      containing blocks.
      (WebCore::RenderTable::layout): Use logical lengths.
      (WebCore::RenderTable::setCellLogicalWidths): Renamed setCellWidths() to this and updated for
      the renaming of RenderTableSection::setCellWidths().
      (WebCore::RenderTable::paintObject): Account for flipped modes.
      (WebCore::RenderTable::subtractCaptionRect): Added this helper method the considers writing modes.
      (WebCore::RenderTable::paintBoxDecorations): Adopted subtractCaptionRect().
      (WebCore::RenderTable::paintMask): Ditto.
      (WebCore::RenderTable::computePreferredLogicalWidths): Updated for the renaming of
      recalcHorizontalBorders().
      (WebCore::RenderTable::calcBorderStart): Renamed calcBorderLeft() to this and changed it to use
      borderStart(). Splits odd number of pixels based on the physical side.
      (WebCore::RenderTable::calcBorderEnd): Similar.
      (WebCore::RenderTable::recalcBordersInRowDirection): Renamed recalcHorizontalBorders() to this
      and updated for other renames.
      (WebCore::RenderTable::borderBefore): Replaced borderTop() with this.
      (WebCore::RenderTable::borderAfter): Similar.
      (WebCore::RenderTable::outerBorderBefore): Similar.
      (WebCore::RenderTable::outerBorderAfter): Similar.
      (WebCore::RenderTable::outerBorderStart): Similar.
      (WebCore::RenderTable::outerBorderEnd): Similar.
      (WebCore::RenderTable::firstLineBoxBaseline): Changed to use logical heights.
      (WebCore::RenderTable::overflowClipRect): Account for writing modes.
      * rendering/RenderTable.h:
      (WebCore::RenderTable::borderStart):
      (WebCore::RenderTable::borderEnd):
      (WebCore::RenderTable::borderLeft):
      (WebCore::RenderTable::borderRight):
      (WebCore::RenderTable::borderTop):
      (WebCore::RenderTable::borderBottom):
      (WebCore::RenderTable::outerBorderLeft):
      (WebCore::RenderTable::outerBorderRight):
      (WebCore::RenderTable::outerBorderTop):
      (WebCore::RenderTable::outerBorderBottom):
      (WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection): Changed to match its name.
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::styleWillChange): Changed to detect changes to logical height.
      * rendering/RenderTableSection.cpp:
      (WebCore::setRowLogicalHeightToRowStyleLogicalHeightIfNotRelative): Renamed and changed to use
      logical heights.
      (WebCore::RenderTableSection::RenderTableSection): Updated initializers for new member variables.
      (WebCore::RenderTableSection::addChild): Updated for rename.
      (WebCore::RenderTableSection::ensureRows): Ditto.
      (WebCore::RenderTableSection::addCell): Ditto. Also use logical heights.
      (WebCore::RenderTableSection::setCellLogicalWidths): Renamed setCellWidths() to this, changed
      to use logical widths.
      (WebCore::RenderTableSection::calcRowLogicalHeight): Added “logical” to the name. Updated with
      logical heights.
      (WebCore::RenderTableSection::layoutRows):
      (WebCore::RenderTableSection::calcOuterBorderBefore):
      (WebCore::RenderTableSection::calcOuterBorderAfter):
      (WebCore::RenderTableSection::calcOuterBorderStart):
      (WebCore::RenderTableSection::calcOuterBorderEnd):
      (WebCore::RenderTableSection::recalcOuterBorder):
      (WebCore::RenderTableSection::firstLineBoxBaseline):
      (WebCore::RenderTableSection::paintCell):
      (WebCore::RenderTableSection::recalcCells):
      * rendering/RenderTableSection.h:
      (WebCore::RenderTableSection::outerBorderBefore):
      (WebCore::RenderTableSection::outerBorderAfter):
      (WebCore::RenderTableSection::outerBorderStart):
      (WebCore::RenderTableSection::outerBorderEnd):
      
      LayoutTests: Make tables work with vertical text
      https://bugs.webkit.org/show_bug.cgi?id=46417
      
      Reviewed by Dave Hyatt.
      
      * fast/table/027-vertical.html: Copied from LayoutTests/fast/table/027.html.
      * fast/table/028-vertical.html: Copied from LayoutTests/fast/table/028.html.
      * fast/table/035-vertical.html: Copied from LayoutTests/fast/table/035.html.
      * fast/table/038-vertical.html: Copied from LayoutTests/fast/table/038.html.
      * fast/table/040-vertical.html: Copied from LayoutTests/fast/table/040.html.
      * fast/table/auto-with-percent-height-vertical.html: Copied from LayoutTests/fast/table/auto-with-percent-height.html.
      * fast/table/border-collapsing/001-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/001.html.
      * fast/table/border-collapsing/002-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/002.html.
      * fast/table/border-collapsing/003-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/003.html.
      * fast/table/border-collapsing/004-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/004.html.
      * fast/table/border-collapsing/border-collapsing-head-foot-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/border-collapsing-head-foot.html.
      * fast/table/border-collapsing/equal-precedence-resolution-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/equal-precedence-resolution.html.
      * fast/table/border-collapsing/rtl-border-collapsing-vertical.html: Copied from LayoutTests/fast/table/border-collapsing/rtl-border-collapsing.html.
      * fast/table/colspanMinWidth-vertical.html: Copied from LayoutTests/fast/table/colspanMinWidth.html.
      * fast/table/fixed-with-auto-with-colspan-vertical.html: Copied from LayoutTests/fast/table/fixed-with-auto-with-colspan.html.
      * fast/table/growCellForImageQuirk-vertical.html: Copied from LayoutTests/fast/table/growCellForImageQuirk.html.
      * fast/table/height-percent-test-vertical.html: Copied from LayoutTests/fast/table/height-percent-test.html.
      * fast/table/percent-widths-stretch-vertical.html: Copied from LayoutTests/fast/table/percent-widths-stretch.html.
      * fast/table/rowspan-paint-order-vertical.html: Copied from LayoutTests/fast/table/rowspan-paint-order.html.
      * fast/table/table-display-types-vertical.html: Copied from LayoutTests/fast/table/table-display-types.html.
      * platform/mac/fast/table/027-vertical-expected.checksum: Added.
      * platform/mac/fast/table/027-vertical-expected.png: Added.
      * platform/mac/fast/table/027-vertical-expected.txt: Added.
      * platform/mac/fast/table/028-vertical-expected.checksum: Added.
      * platform/mac/fast/table/028-vertical-expected.png: Added.
      * platform/mac/fast/table/028-vertical-expected.txt: Added.
      * platform/mac/fast/table/035-vertical-expected.checksum: Added.
      * platform/mac/fast/table/035-vertical-expected.png: Added.
      * platform/mac/fast/table/035-vertical-expected.txt: Added.
      * platform/mac/fast/table/038-vertical-expected.checksum: Added.
      * platform/mac/fast/table/038-vertical-expected.png: Added.
      * platform/mac/fast/table/038-vertical-expected.txt: Added.
      * platform/mac/fast/table/040-vertical-expected.checksum: Added.
      * platform/mac/fast/table/040-vertical-expected.png: Added.
      * platform/mac/fast/table/040-vertical-expected.txt: Added.
      * platform/mac/fast/table/auto-with-percent-height-vertical-expected.checksum: Added.
      * platform/mac/fast/table/auto-with-percent-height-vertical-expected.png: Added.
      * platform/mac/fast/table/auto-with-percent-height-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/001-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/001-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/001-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/002-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/002-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/002-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/003-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/003-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/003-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/004-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/004-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/004-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/border-collapsing-head-foot-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/border-collapsing-head-foot-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/border-collapsing-head-foot-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt: Added.
      * platform/mac/fast/table/border-collapsing/rtl-border-collapsing-vertical-expected.checksum: Added.
      * platform/mac/fast/table/border-collapsing/rtl-border-collapsing-vertical-expected.png: Added.
      * platform/mac/fast/table/border-collapsing/rtl-border-collapsing-vertical-expected.txt: Added.
      * platform/mac/fast/table/colspanMinWidth-vertical-expected.checksum: Added.
      * platform/mac/fast/table/colspanMinWidth-vertical-expected.png: Added.
      * platform/mac/fast/table/colspanMinWidth-vertical-expected.txt: Added.
      * platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.checksum: Added.
      * platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.png: Added.
      * platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.txt: Added.
      * platform/mac/fast/table/growCellForImageQuirk-vertical-expected.checksum: Added.
      * platform/mac/fast/table/growCellForImageQuirk-vertical-expected.png: Added.
      * platform/mac/fast/table/growCellForImageQuirk-vertical-expected.txt: Added.
      * platform/mac/fast/table/height-percent-test-vertical-expected.checksum: Added.
      * platform/mac/fast/table/height-percent-test-vertical-expected.png: Added.
      * platform/mac/fast/table/height-percent-test-vertical-expected.txt: Added.
      * platform/mac/fast/table/percent-widths-stretch-vertical-expected.checksum: Added.
      * platform/mac/fast/table/percent-widths-stretch-vertical-expected.png: Added.
      * platform/mac/fast/table/percent-widths-stretch-vertical-expected.txt: Added.
      * platform/mac/fast/table/rowspan-paint-order-vertical-expected.checksum: Added.
      * platform/mac/fast/table/rowspan-paint-order-vertical-expected.png: Added.
      * platform/mac/fast/table/rowspan-paint-order-vertical-expected.txt: Added.
      * platform/mac/fast/table/table-display-types-vertical-expected.checksum: Added.
      * platform/mac/fast/table/table-display-types-vertical-expected.png: Added.
      * platform/mac/fast/table/table-display-types-vertical-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8010bbae
  13. 03 Nov, 2010 1 commit
    • mitz@apple.com's avatar
      Make collapsed borders in tables work with different block flows · 2722b37c
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=46191
      
      Reviewed by Dave Hyatt.
      
      No new tests since tables don’t support different block flows yet.
      
      This change still doesn’t support cells whose block flow differs from the table’s.
      
      * rendering/AutoTableLayout.cpp:
      (WebCore::AutoTableLayout::recalcColumn): Updated for the renaming of styleOrColWidth().
      (WebCore::AutoTableLayout::calcEffectiveWidth): Ditto.
      * rendering/FixedTableLayout.cpp:
      (WebCore::FixedTableLayout::calcWidthArray): Ditto.
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::computePreferredLogicalWidths): Ditto.
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::styleOrColLogicalWidth): Renamed styleOrColWidth() to this and
      changed to use logical widths.
      (WebCore::RenderTableCell::computePreferredLogicalWidths): Updated for the above rename.
      (WebCore::RenderTableCell::updateLogicalWidth): Renamed updateWidth() to this and changed
      to set the logical width.
      (WebCore::RenderTableCell::collapsedStartBorder): Changed collapsedLeftBorder() into this.
      Note that “start” here will refer to the table’s block flow, not the cell’s, once we allow
      the two to differ.
      (WebCore::RenderTableCell::collapsedEndBorder): Similar.
      (WebCore::RenderTableCell::collapsedBeforeBorder): Similar.
      (WebCore::RenderTableCell::collapsedAfterBorder): Similar.
      (WebCore::RenderTableCell::collapsedLeftBorder): Resolves “left” to a logical side using
      the table’s block flow.
      (WebCore::RenderTableCell::collapsedRightBorder): Similar.
      (WebCore::RenderTableCell::collapsedTopBorder): Similar.
      (WebCore::RenderTableCell::collapsedBottomBorder): Similar.
      (WebCore::RenderTableCell::borderStart): Use borderHalfStart().
      (WebCore::RenderTableCell::borderEnd): Similar.
      (WebCore::RenderTableCell::borderBefore): Similar.
      (WebCore::RenderTableCell::borderAfter): Similar.
      (WebCore::RenderTableCell::borderHalfLeft): Resolves “left” to a logical side using the
      table’s block flow.
      (WebCore::RenderTableCell::borderHalfRight): Similar.
      (WebCore::RenderTableCell::borderHalfTop): Similar.
      (WebCore::RenderTableCell::borderHalfBottom): Similar.
      (WebCore::RenderTableCell::borderHalfStart): Added. Uses collapsedStartBorder(). Splits odd
      widths based on physical side.
      (WebCore::RenderTableCell::borderHalfEnd): Similar.
      (WebCore::RenderTableCell::borderHalfBefore): Similar.
      (WebCore::RenderTableCell::borderHalfAfter): Similar.
      (WebCore::RenderTableCell::collectBorderStyles): Use logical methods.
      (WebCore::RenderTableCell::paintCollapsedBorder): Updated.
      * rendering/RenderTableCell.h:
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::setCellWidths): Updated for the renaming of updateWidth().
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::borderBefore): Added.
      (WebCore::RenderStyle::borderAfter): Added.
      (WebCore::RenderStyle::borderStart): Added.
      (WebCore::RenderStyle::borderEnd): Adeed.
      * rendering/style/RenderStyle.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71251 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2722b37c
  14. 20 Oct, 2010 1 commit
    • bdakin@apple.com's avatar
      WebCore: Fix for https://bugs.webkit.org/show_bug.cgi?id=47514 CSS · 3ee4d3ed
      bdakin@apple.com authored
      transforms should affect scrolling
      
      Reviewed by Dave Hyatt.
      
      This patch causes topmostPosition, lowestPosition, 
      leftmostPosition, and rightmostPosition to take transforms into 
      account.
      
      Compute the topmost/lowest/leftmost/rightmost position without 
      factoring in the block's transform until the end.
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::topmostPosition):
      (WebCore::RenderBlock::lowestPosition):
      (WebCore::RenderBlock::rightmostPosition):
      (WebCore::RenderBlock::leftmostPosition):
      * rendering/RenderBlock.h:
      
      transformedFrameRect() returns the frameRect() transformed to the 
      layer's transform. applyLayerTransformToRect() does the same thing 
      for the input rect.
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::applyLayerTransformToRect):
      (WebCore::RenderBox::transformedFrameRect):
      (WebCore::RenderBox::topmostPosition):
      (WebCore::RenderBox::lowestPosition):
      (WebCore::RenderBox::rightmostPosition):
      (WebCore::RenderBox::leftmostPosition):
      * rendering/RenderBox.h:
      * rendering/RenderMedia.cpp:
      (WebCore::RenderMedia::topmostPosition):
      (WebCore::RenderMedia::lowestPosition):
      (WebCore::RenderMedia::rightmostPosition):
      (WebCore::RenderMedia::leftmostPosition):
      * rendering/RenderMedia.h:
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::topmostPosition):
      (WebCore::RenderTableSection::lowestPosition):
      (WebCore::RenderTableSection::rightmostPosition):
      (WebCore::RenderTableSection::leftmostPosition):
      * rendering/RenderTableSection.h:
      
      LayoutTests: New tests and updated results for https://bugs.webkit.org/show_bug.cgi?id=47514 
      CSS transforms should affect scrolling
      
      Reviewed by Dave Hyatt.
      
      New tests.
      * fast/transforms/rotated-transform-affects-scrolling-1.html: Added.
      * fast/transforms/rotated-transform-affects-scrolling-2.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3ee4d3ed
  15. 14 Oct, 2010 1 commit
    • bdakin@apple.com's avatar
      This patch lays the groundwork for · 428d6b67
      bdakin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=47514 CSS transforms should 
      affect scrolling
      by adding topmostPosition().
      
      Reviewed by Dave Hyatt.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::topmostPosition):
      * rendering/RenderBlock.h:
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::topmostPosition):
      * rendering/RenderBox.h:
      * rendering/RenderMedia.cpp:
      (WebCore::RenderMedia::topmostPosition):
      * rendering/RenderMedia.h:
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::topmostPosition):
      * rendering/RenderTableSection.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      428d6b67
  16. 06 Oct, 2010 1 commit
    • tonikitoo@webkit.org's avatar
      Rename HitTestResult::rectFromPoint to rectForPoint · 358d5a6a
      tonikitoo@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=47261
      
      Patch by Antonio Gomes <agomes@rim.org> on 2010-10-06
      Reviewed by Kenneth Rohde Christiansen.
      
      As per Kenneth Christiansen request inhttps://bugs.webkit.org/show_bug.cgi?id=46336#c20.
      
      * WebCore.exp.in:
      * dom/Document.cpp:
      (WebCore::Document::nodesFromRect):
      * rendering/EllipsisBox.cpp:
      (WebCore::EllipsisBox::nodeAtPoint):
      * rendering/HitTestResult.cpp:
      (WebCore::HitTestResult::addNodeToRectBasedTestResult):
      (WebCore::HitTestResult::rectForPoint):
      * rendering/HitTestResult.h:
      (WebCore::HitTestResult::rectForPoint):
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::nodeAtPoint):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::nodeAtPoint):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::nodeAtPoint):
      (WebCore::RenderBlock::hitTestColumns):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::nodeAtPoint):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::hitTestLayer):
      (WebCore::RenderLayer::hitTestChildLayerColumns):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::nodeAtPoint):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::nodeAtPoint):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69192 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      358d5a6a
  17. 05 Oct, 2010 1 commit
    • fsamuel@chromium.org's avatar
      2010-10-05 Fady Samuel <fsamuel@chromium.org> · 179df3b7
      fsamuel@chromium.org authored
              Reviewed by Darin Adler.
      
              REGRESSION (r65539): One pixel white gaps when scrolling Trac changeset pages
              https://bugs.webkit.org/show_bug.cgi?id=45131
      
              Added a layout test to check for paint rects that touch the border of an adjacent sell,
              when border-collapse: separate is set for the table.
      
              * fast/table/simple_paint.html:
                  Don't do rtl as it doesn't exercise some of the new  paint code.
              * fast/table/simple_paint_separate_borders-expected.checksum: Added.
              * fast/table/simple_paint_separate_borders-expected.png: Added.
              * fast/table/simple_paint_separate_borders-expected.txt: Added.
              * fast/table/simple_paint_separate_borders.html: Added.
      2010-10-05  Fady Samuel  <fsamuel@chromium.org>
      
              Reviewed by Darin Adler.
      
              REGRESSION (r65539): One pixel white gaps when scrolling Trac changeset pages
              https://bugs.webkit.org/show_bug.cgi?id=45131
      
              When border-collapse: separate property is set on the table, paintObject
              may skip repainting cells, if the dirty region only touches one row/col of pixels.
      
              Test: fast/table/simple_paint_separate_borders.html
      
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::paintObject):
                  Don't subtract one from the right and bottom of the dirty paint rect.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69161 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      179df3b7
  18. 30 Sep, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=46928 · c0fa1631
      hyatt@apple.com authored
              
      Reviewed by Beth Dakin.
      
      Add isLeftToRightDirection() to RenderStyle and change callers that did direction() == LTR and direction() == RTL to use this instead.
      
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::isLeftPage):
      (WebCore::CSSStyleSelector::applyProperty):
      * editing/Editor.cpp:
      (WebCore::Editor::hasBidiSelection):
      * editing/VisiblePosition.cpp:
      (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
      (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
      * html/canvas/CanvasRenderingContext2D.cpp:
      (WebCore::CanvasRenderingContext2D::drawTextInternal):
      * rendering/InlineBox.h:
      (WebCore::InlineBox::isLeftToRightDirection):
      (WebCore::InlineBox::caretLeftmostOffset):
      (WebCore::InlineBox::caretRightmostOffset):
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
      (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
      (WebCore::InlineFlowBox::paintTextDecorations):
      * rendering/InlineIterator.h:
      (WebCore::InlineIterator::direction):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::selectionRect):
      (WebCore::InlineTextBox::placeEllipsisBox):
      (WebCore::InlineTextBox::paint):
      (WebCore::InlineTextBox::paintSelection):
      (WebCore::InlineTextBox::paintCompositionBackground):
      (WebCore::InlineTextBox::paintDecoration):
      (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
      (WebCore::InlineTextBox::paintTextMatchMarker):
      (WebCore::InlineTextBox::computeRectForReplacementMarker):
      (WebCore::InlineTextBox::textPos):
      (WebCore::InlineTextBox::offsetForPosition):
      (WebCore::InlineTextBox::positionForOffset):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::adjustPositionedBlock):
      (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
      (WebCore::RenderBlock::paintColumnRules):
      (WebCore::RenderBlock::paintColumnContents):
      (WebCore::RenderBlock::getHorizontalSelectionGapInfo):
      (WebCore::RenderBlock::logicalLeftOffsetForLine):
      (WebCore::RenderBlock::logicalRightOffsetForLine):
      (WebCore::RenderBlock::rightmostPosition):
      (WebCore::RenderBlock::leftmostPosition):
      (WebCore::RenderBlock::columnRectAt):
      (WebCore::RenderBlock::layoutColumns):
      (WebCore::getBorderPaddingMargin):
      (WebCore::RenderBlock::localCaretRect):
      (WebCore::RenderBlock::marginStartForChild):
      (WebCore::RenderBlock::marginEndForChild):
      (WebCore::RenderBlock::setMarginStartForChild):
      (WebCore::RenderBlock::setMarginEndForChild):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::getBorderPaddingMargin):
      (WebCore::RenderBlock::constructLine):
      (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
      (WebCore::RenderBlock::determineStartPosition):
      (WebCore::RenderBlock::skipTrailingWhitespace):
      (WebCore::RenderBlock::skipLeadingWhitespace):
      (WebCore::RenderBlock::findNextLineBreak):
      (WebCore::RenderBlock::checkLinesForTextOverflow):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::marginStart):
      (WebCore::RenderBox::marginEnd):
      (WebCore::RenderBox::setMarginStart):
      (WebCore::RenderBox::setMarginEnd):
      (WebCore::RenderBox::scrollWidth):
      (WebCore::RenderBox::computeInlineDirectionMargins):
      (WebCore::RenderBox::containingBlockWidthForPositioned):
      (WebCore::RenderBox::computePositionedLogicalWidthUsing):
      (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
      (WebCore::RenderBox::localCaretRect):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::relativePositionOffsetX):
      * rendering/RenderFieldset.cpp:
      (WebCore::RenderFieldset::layoutLegend):
      * rendering/RenderFileUploadControl.cpp:
      (WebCore::RenderFileUploadControl::paintObject):
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::FlexBoxIterator::FlexBoxIterator):
      (WebCore::RenderFlexibleBox::layoutHorizontalBox):
      (WebCore::RenderFlexibleBox::layoutVerticalBox):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::computeScrollDimensions):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::paintItemForeground):
      * rendering/RenderListItem.cpp:
      (WebCore::RenderListItem::positionListMarker):
      (WebCore::RenderListItem::markerTextWithSuffix):
      * rendering/RenderListMarker.cpp:
      (WebCore::RenderListMarker::paint):
      (WebCore::RenderListMarker::updateMargins):
      (WebCore::RenderListMarker::suffix):
      * rendering/RenderMarquee.cpp:
      (WebCore::RenderMarquee::computePosition):
      * rendering/RenderMeter.cpp:
      (WebCore::RenderMeter::valuePartRect):
      * rendering/RenderProgress.cpp:
      (WebCore::RenderProgress::valuePartRect):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::calcBorderLeft):
      (WebCore::RenderTable::calcBorderRight):
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
      (WebCore::RenderTableCell::borderHalfLeft):
      (WebCore::RenderTableCell::borderHalfRight):
      (WebCore::RenderTableCell::collectBorderStyles):
      (WebCore::RenderTableCell::paintCollapsedBorder):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      (WebCore::RenderTableSection::recalcOuterBorder):
      (WebCore::RenderTableSection::paintObject):
      (WebCore::RenderTableSection::nodeAtPoint):
      * rendering/RenderText.cpp:
      (WebCore::RenderText::localCaretRect):
      (WebCore::RenderText::positionLineBox):
      * rendering/RenderTextControlSingleLine.cpp:
      (WebCore::RenderTextControlSingleLine::forwardEvent):
      * rendering/RenderThemeMac.mm:
      (WebCore::RenderThemeMac::levelIndicatorFor):
      (WebCore::RenderThemeMac::paintProgressBar):
      * rendering/RenderTreeAsText.cpp:
      (WebCore::writeTextRun):
      * rendering/SVGInlineTextBox.cpp:
      (WebCore::SVGInlineTextBox::measureCharacter):
      (WebCore::SVGInlineTextBox::buildLayoutInformation):
      * rendering/SVGRenderTreeAsText.cpp:
      (WebCore::writeSVGInlineTextBox):
      * rendering/SVGTextLayoutUtilities.cpp:
      (WebCore::svgTextRunForInlineTextBox):
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::borderStartWidth):
      (WebCore::RenderStyle::borderEndWidth):
      (WebCore::RenderStyle::marginStart):
      (WebCore::RenderStyle::marginEnd):
      (WebCore::RenderStyle::marginStartUsing):
      (WebCore::RenderStyle::marginEndUsing):
      (WebCore::RenderStyle::paddingStart):
      (WebCore::RenderStyle::paddingEnd):
      * rendering/style/RenderStyle.h:
      (WebCore::InheritedFlags::isLeftToRightDirection):
      * wml/WMLTableElement.cpp:
      (WebCore::WMLTableElement::alignCells):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c0fa1631
  19. 21 Sep, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=46125, convert table cell intrinsic... · d76152ff
      hyatt@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=46125, convert table cell intrinsic padding from top/bottom-based
      to before/after-based.  A vertical text table can have intrinsic padding built into the left/right
      direction (and this allows the base class logical padding methods on RenderBoxModelObject to be safe to use).
      
      Reviewed by Dan Bernstein.
      
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::RenderTableCell):
      (WebCore::RenderTableCell::paddingTop):
      (WebCore::RenderTableCell::paddingBottom):
      (WebCore::RenderTableCell::paddingLeft):
      (WebCore::RenderTableCell::paddingRight):
      (WebCore::RenderTableCell::paddingBefore):
      (WebCore::RenderTableCell::paddingAfter):
      * rendering/RenderTableCell.h:
      (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
      (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
      (WebCore::RenderTableCell::setIntrinsicPadding):
      (WebCore::RenderTableCell::intrinsicPaddingBefore):
      (WebCore::RenderTableCell::intrinsicPaddingAfter):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::calcRowHeight):
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderTreeAsText.cpp:
      (WebCore::RenderTreeAsText::writeRenderObject):
      (WebCore::writeTextRun):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67930 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d76152ff
  20. 20 Sep, 2010 2 commits
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=46114, two tables repaint tests failing on bots. · b297b494
      hyatt@apple.com authored
      Reviewed by Beth Dakin.
      
      Patch layoutRows to apply the layout delta when setting a new cell location prior to laying out the cell.
              
      The layout delta is then removed after layout has happened when the repaint check is done.  This change
      makes cell layout match block child layout, and now the cells have the correct new location up front
      when laying out (a necessity for pagination).
      
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b297b494
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=46030, aintitcool.com doesn't paginate... · 1259d731
      hyatt@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=46030, aintitcool.com doesn't paginate correctly when printed.
              
      Reviewed by Sam Weinig.
      
      This happens because the site always has a document width that will exceed the page width.
      We incorrectly apply a double scale instead of clipping after the first scale still doesn't fit.
      The fix for the issue is to cap the right layout overflow to the page width and to just clip out
      any additional excess.  This is the code in FrameView.cpp.
              
      This patch also cleans up table cell invalidation to reduce the # of relayouts.  This change is not
      a correctness fix.  It's just performance.
              
      I'm not sure how to write a test for this, since the double scale is an artifact of how WebKit mac calls
      back in when really printing.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::forceLayoutForPagination):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlockChild):
      (WebCore::RenderBlock::layoutPositionedObjects):
      (WebCore::RenderBlock::positionNewFloats):
      * rendering/RenderBlock.h:
      (WebCore::RenderBlock::markForPaginationRelayout):
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutHorizontalBox):
      (WebCore::RenderFlexibleBox::layoutVerticalBox):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1259d731
  21. 16 Sep, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=38402, paginate columns at layout time... · cc1737c8
      hyatt@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=38402, paginate columns at layout time rather than at paint time.
      
      Reviewed by Darin Adler.
      
      WebCore: 
      
      This patch adds support for column breaking at layout time rather than at paint time.  New variables have been
      added to LayoutState and to ColumnInfo to track column information while laying out.
              
      The basic idea behind this patch is to retain the columns' paint-time hackery of transforming one long vertical strip
      into multiple columns.  Now, however, layout is aware of the columns and will move objects up and down vertically in order
      to ensure they don't intersect a break.
              
      Many new tests added in fast/multicol and new results added for existing fast/multicol tests.
      
      * rendering/ColumnInfo.h:
      (WebCore::ColumnInfo::ColumnInfo):
      (WebCore::ColumnInfo::columnCount):
      (WebCore::ColumnInfo::columnHeight):
      (WebCore::ColumnInfo::setColumnCountAndHeight):
      (WebCore::ColumnInfo::setColumnHeight):
      (WebCore::ColumnInfo::updateMinimumColumnHeight):
      (WebCore::ColumnInfo::minimumColumnHeight):
      (WebCore::ColumnInfo::forcedBreaks):
      (WebCore::ColumnInfo::forcedBreakOffset):
      (WebCore::ColumnInfo::maximumDistanceBetweenForcedBreaks):
      (WebCore::ColumnInfo::clearForcedBreaks):
      (WebCore::ColumnInfo::addForcedBreak):
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      (WebCore::LayoutState::clearPaginationInformation):
      (WebCore::LayoutState::pageY):
      (WebCore::LayoutState::addForcedColumnBreak):
      * rendering/LayoutState.h:
      (WebCore::LayoutState::LayoutState):
      (WebCore::LayoutState::paginatingColumns):
      (WebCore::LayoutState::paginated):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::RenderBlock):
      (WebCore::RenderBlock::~RenderBlock):
      (WebCore::RenderBlock::layoutBlock):
      (WebCore::RenderBlock::collapseMargins):
      (WebCore::RenderBlock::estimateVerticalPosition):
      (WebCore::RenderBlock::layoutBlockChild):
      (WebCore::RenderBlock::layoutPositionedObjects):
      (WebCore::RenderBlock::paintColumnRules):
      (WebCore::RenderBlock::paintColumnContents):
      (WebCore::RenderBlock::paintChildren):
      (WebCore::RenderBlock::insertFloatingObject):
      (WebCore::RenderBlock::removeFloatingObjects):
      (WebCore::RenderBlock::positionNewFloats):
      (WebCore::RenderBlock::positionNewFloatOnLine):
      (WebCore::RenderBlock::lowestPosition):
      (WebCore::RenderBlock::rightmostPosition):
      (WebCore::RenderBlock::leftmostPosition):
      (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
      (WebCore::RenderBlock::markDescendantBlocksAndLinesForLayout):
      (WebCore::RenderBlock::hitTestColumns):
      (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
      (WebCore::RenderBlock::columnCount):
      (WebCore::RenderBlock::columnRectAt):
      (WebCore::RenderBlock::layoutColumns):
      (WebCore::RenderBlock::adjustPointToColumnContents):
      (WebCore::RenderBlock::adjustRectForColumns):
      (WebCore::RenderBlock::adjustForColumns):
      (WebCore::RenderBlock::setMaxTopMargins):
      (WebCore::RenderBlock::setMaxBottomMargins):
      (WebCore::RenderBlock::setPaginationStrut):
      (WebCore::RenderBlock::setPageY):
      (WebCore::RenderBlock::nextPageTop):
      (WebCore::inNormalFlow):
      (WebCore::RenderBlock::applyBeforeBreak):
      (WebCore::RenderBlock::applyAfterBreak):
      (WebCore::RenderBlock::adjustForUnsplittableChild):
      (WebCore::RenderBlock::adjustLinePositionForPagination):
      * rendering/RenderBlock.h:
      (WebCore::RenderBlock::paginationStrut):
      (WebCore::RenderBlock::pageY):
      (WebCore::RenderBlock::maxTopPosMargin):
      (WebCore::RenderBlock::maxTopNegMargin):
      (WebCore::RenderBlock::maxBottomPosMargin):
      (WebCore::RenderBlock::maxBottomNegMargin):
      (WebCore::RenderBlock::initMaxMarginValues):
      (WebCore::RenderBlock::FloatingObject::FloatingObject):
      (WebCore::RenderBlock::FloatingObject::type):
      (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::RenderBlock::layoutInlineChildren):
      (WebCore::RenderBlock::determineStartPosition):
      (WebCore::RenderBlock::skipLeadingWhitespace):
      (WebCore::RenderBlock::findNextLineBreak):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::computeRectForRepaint):
      (WebCore::RenderBox::markDescendantBlocksAndLinesForLayout):
      * rendering/RenderBox.h:
      * rendering/RenderFlexibleBox.cpp:
      (WebCore::RenderFlexibleBox::layoutBlock):
      (WebCore::RenderFlexibleBox::layoutHorizontalBox):
      (WebCore::RenderFlexibleBox::layoutVerticalBox):
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::computeRectForRepaint):
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updatePagination):
      (WebCore::RenderLayer::paintChildLayerIntoColumns):
      (WebCore::RenderLayer::hitTestChildLayerColumns):
      * rendering/RenderLineBoxList.cpp:
      (WebCore::RenderLineBoxList::paint):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::RenderTable):
      (WebCore::RenderTable::layout):
      * rendering/RenderTable.h:
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::RenderView):
      (WebCore::RenderView::pushLayoutState):
      * rendering/RenderView.h:
      (WebCore::RenderView::setTruncatedAt):
      (WebCore::RenderView::pushLayoutState):
      (WebCore::RenderView::popLayoutState):
      (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
      (WebCore::LayoutStateMaintainer::push):
      * rendering/RootInlineBox.h:
      (WebCore::RootInlineBox::RootInlineBox):
      (WebCore::RootInlineBox::paginationStrut):
      (WebCore::RootInlineBox::setPaginationStrut):
      
      LayoutTests: 
      
      Add many new multicol layout tests that demonstrate new pagination features.
      
      * fast/multicol/border-padding-pagination.html: Added.
      * fast/multicol/client-rects-expected.checksum:
      * fast/multicol/client-rects-expected.png:
      * fast/multicol/client-rects-expected.txt:
      * fast/multicol/column-break-with-balancing.html: Added.
      * fast/multicol/float-paginate-complex.html: Added.
      * fast/multicol/float-paginate.html:
      * fast/multicol/float-truncation.html:
      * fast/multicol/margin-collapse.html: Added.
      * fast/multicol/max-height-columns-block.html: Added.
      * fast/multicol/positioned-split.html: Added.
      * fast/multicol/shadow-breaking.html: Added.
      * fast/multicol/single-line-expected.checksum:
      * fast/multicol/single-line-expected.png:
      * fast/multicol/table-margin-collapse.html: Added.
      * fast/multicol/table-vertical-align.html: Added.
      * fast/multicol/unsplittable-inline-block.html: Added.
      * platform/mac/fast/multicol/border-padding-pagination-expected.checksum: Added.
      * platform/mac/fast/multicol/border-padding-pagination-expected.png: Added.
      * platform/mac/fast/multicol/border-padding-pagination-expected.txt: Added.
      * platform/mac/fast/multicol/column-break-with-balancing-expected.checksum: Added.
      * platform/mac/fast/multicol/column-break-with-balancing-expected.png: Added.
      * platform/mac/fast/multicol/column-break-with-balancing-expected.txt: Added.
      * platform/mac/fast/multicol/column-count-with-rules-expected.checksum: Added.
      * platform/mac/fast/multicol/column-count-with-rules-expected.png: Added.
      * platform/mac/fast/multicol/column-count-with-rules-expected.txt:
      * platform/mac/fast/multicol/column-rules-expected.checksum:
      * platform/mac/fast/multicol/column-rules-expected.png:
      * platform/mac/fast/multicol/column-rules-expected.txt:
      * platform/mac/fast/multicol/column-rules-stacking-expected.checksum:
      * platform/mac/fast/multicol/column-rules-stacking-expected.png:
      * platform/mac/fast/multicol/columns-shorthand-parsing-expected.checksum:
      * platform/mac/fast/multicol/columns-shorthand-parsing-expected.png:
      * platform/mac/fast/multicol/float-avoidance-expected.checksum:
      * platform/mac/fast/multicol/float-avoidance-expected.png:
      * platform/mac/fast/multicol/float-avoidance-expected.txt:
      * platform/mac/fast/multicol/float-multicol-expected.checksum:
      * platform/mac/fast/multicol/float-multicol-expected.png:
      * platform/mac/fast/multicol/float-multicol-expected.txt:
      * platform/mac/fast/multicol/float-paginate-complex-expected.checksum: Added.
      * platform/mac/fast/multicol/float-paginate-complex-expected.png: Added.
      * platform/mac/fast/multicol/float-paginate-complex-expected.txt: Added.
      * platform/mac/fast/multicol/float-paginate-expected.txt:
      * platform/mac/fast/multicol/layers-in-multicol-expected.checksum:
      * platform/mac/fast/multicol/layers-in-multicol-expected.png:
      * platform/mac/fast/multicol/layers-in-multicol-expected.txt:
      * platform/mac/fast/multicol/margin-collapse-expected.checksum: Added.
      * platform/mac/fast/multicol/margin-collapse-expected.png: Added.
      * platform/mac/fast/multicol/margin-collapse-expected.txt: Added.
      * platform/mac/fast/multicol/max-height-columns-block-expected.checksum: Added.
      * platform/mac/fast/multicol/max-height-columns-block-expected.png: Added.
      * platform/mac/fast/multicol/max-height-columns-block-expected.txt: Added.
      * platform/mac/fast/multicol/nested-columns-expected.checksum:
      * platform/mac/fast/multicol/nested-columns-expected.png:
      * platform/mac/fast/multicol/nested-columns-expected.txt:
      * platform/mac/fast/multicol/paginate-block-replaced-expected.txt:
      * platform/mac/fast/multicol/positioned-split-expected.checksum: Added.
      * platform/mac/fast/multicol/positioned-split-expected.png: Added.
      * platform/mac/fast/multicol/positioned-split-expected.txt: Added.
      * platform/mac/fast/multicol/positioned-with-constrained-height-expected.checksum:
      * platform/mac/fast/multicol/positioned-with-constrained-height-expected.png:
      * platform/mac/fast/multicol/positioned-with-constrained-height-expected.txt:
      * platform/mac/fast/multicol/shadow-breaking-expected.checksum: Added.
      * platform/mac/fast/multicol/shadow-breaking-expected.png: Added.
      * platform/mac/fast/multicol/shadow-breaking-expected.txt: Added.
      * platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.checksum:
      * platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
      * platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
      * platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.checksum:
      * platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.png:
      * platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
      * platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.checksum:
      * platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.png:
      * platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
      * platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
      * platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.checksum:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.checksum:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.png:
      * platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.txt:
      * platform/mac/fast/multicol/table-margin-collapse-expected.checksum: Added.
      * platform/mac/fast/multicol/table-margin-collapse-expected.png: Added.
      * platform/mac/fast/multicol/table-margin-collapse-expected.txt: Added.
      * platform/mac/fast/multicol/table-vertical-align-expected.checksum: Added.
      * platform/mac/fast/multicol/table-vertical-align-expected.png: Added.
      * platform/mac/fast/multicol/table-vertical-align-expected.txt: Added.
      * platform/mac/fast/multicol/unsplittable-inline-block-expected.checksum: Added.
      * platform/mac/fast/multicol/unsplittable-inline-block-expected.png: Added.
      * platform/mac/fast/multicol/unsplittable-inline-block-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cc1737c8
  22. 27 Aug, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=44788, implement HTML5-compliant doctype switching. · ce8ee2a4
      hyatt@apple.com authored
      Reviewed by Simon Fraser.
      
      WebCore: 
      
      Rename the various modes to match the HTML5 specification:
          ParseMode -> CompatibilityMode
          CompatMode -> QuirksMode
          AlmostStrictMode -> LimitedQuirksMode
          StrictMode -> NoQuirksMode
                  
      Remove the htmlHacks() accessor from RenderStyle and make rendering code just go to the document
      instead.  This makes switching modes avoid forcing all RenderStyles to detect as changed.
              
      Clean up user stylesheets to minimize style recalculation when the mode is switched.
              
      Fix bugs with the propagation of correct modes in the HTML5 parser.  Make sure the
      dummy document created for fragment parsing properly inherits the real document's CompatibilityMode.
      Make sure the tree builder properly changes the insertion mode to "BeforeHTML" after handling
      a doctype token.
              
      determineParseMode -> setCompatibilityModeFromDoctype, and it now implements the HTML5 algorithm
      precisely.
              
      * WebCore.exp.in:
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::styleForDocument):
      (WebCore::CSSStyleSelector::applyProperty):
      (WebCore::CSSStyleSelector::fontSizeForKeyword):
      * dom/ClassNodeList.cpp:
      (WebCore::ClassNodeList::ClassNodeList):
      * dom/DecodedDataDocumentParser.cpp:
      (WebCore::DecodedDataDocumentParser::appendBytes):
      * dom/Document.cpp:
      (WebCore::Document::Document):
      (WebCore::Document::setCompatibilityMode):
      (WebCore::Document::setDocType):
      (WebCore::Document::unscheduleStyleRecalc):
      (WebCore::Document::recalcStyle):
      (WebCore::Document::updateStyleIfNeeded):
      (WebCore::Document::createStyleSelector):
      (WebCore::Document::implicitOpen):
      (WebCore::Document::pageUserSheet):
      (WebCore::Document::clearPageUserSheet):
      (WebCore::Document::updatePageUserSheet):
      (WebCore::Document::pageGroupUserSheets):
      (WebCore::Document::clearPageGroupUserSheets):
      (WebCore::Document::updatePageGroupUserSheets):
      (WebCore::Document::findAnchor):
      * dom/Document.h:
      (WebCore::Document::):
      (WebCore::Document::setCompatibilityModeFromDoctype):
      (WebCore::Document::lockCompatibilityMode):
      (WebCore::Document::compatibilityMode):
      (WebCore::Document::inQuirksMode):
      (WebCore::Document::inLimitedQuirksMode):
      (WebCore::Document::inNoQuirksMode):
      * dom/Element.cpp:
      (WebCore::Element::clientWidth):
      (WebCore::Element::clientHeight):
      (WebCore::Element::webkitMatchesSelector):
      * dom/NamedNodeMap.cpp:
      (WebCore::NamedNodeMap::setClass):
      * dom/Node.cpp:
      (WebCore::Node::querySelector):
      (WebCore::Node::querySelectorAll):
      * dom/OptionElement.cpp:
      (WebCore::OptionElement::collectOptionLabelOrText):
      * dom/SelectorNodeList.cpp:
      (WebCore::createSelectorNodeList):
      * dom/StyleElement.cpp:
      (WebCore::StyleElement::createSheet):
      * dom/StyledElement.cpp:
      (WebCore::StyledElement::createInlineStyleDecl):
      (WebCore::StyledElement::parseMappedAttribute):
      * editing/ReplaceSelectionCommand.cpp:
      (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR):
      * html/HTMLBodyElement.cpp:
      (WebCore::HTMLBodyElement::createLinkDecl):
      * html/HTMLCanvasElement.cpp:
      (WebCore::HTMLCanvasElement::getContext):
      * html/HTMLConstructionSite.cpp:
      (WebCore::HTMLConstructionSite::insertDoctype):
      * html/HTMLDocument.cpp:
      (WebCore::HTMLDocument::HTMLDocument):
      (WebCore::HTMLDocument::compatMode):
      (WebCore::HTMLDocument::setCompatibilityModeFromDoctype):
      * html/HTMLDocument.h:
      * html/HTMLLinkElement.cpp:
      (WebCore::HTMLLinkElement::setCSSStyleSheet):
      * html/HTMLTreeBuilder.cpp:
      (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
      (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
      (WebCore::HTMLTreeBuilder::processDoctypeToken):
      (WebCore::HTMLTreeBuilder::processStartTagForInBody):
      (WebCore::HTMLTreeBuilder::defaultForInitial):
      * html/HTMLViewSourceDocument.cpp:
      (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
      * loader/DocumentWriter.cpp:
      (WebCore::DocumentWriter::replaceDocument):
      (WebCore::DocumentWriter::reportDataReceived):
      * loader/DocumentWriter.h:
      * loader/ImageDocument.cpp:
      (WebCore::ImageDocument::ImageDocument):
      * loader/MediaDocument.cpp:
      (WebCore::MediaDocument::MediaDocument):
      * loader/PluginDocument.cpp:
      (WebCore::PluginDocument::PluginDocument):
      * loader/SinkDocument.cpp:
      (WebCore::SinkDocument::SinkDocument):
      * loader/TextDocument.cpp:
      (WebCore::TextDocument::TextDocument):
      * page/Page.cpp:
      (WebCore::Page::userStyleSheetLocationChanged):
      * page/PageGroup.cpp:
      (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
      * page/Settings.cpp:
      (WebCore::Settings::Settings):
      (WebCore::Settings::setEnforceCSSMIMETypeInNoQuirksMode):
      * page/Settings.h:
      (WebCore::Settings::enforceCSSMIMETypeInNoQuirksMode):
      * rendering/AutoTableLayout.cpp:
      (WebCore::AutoTableLayout::recalcColumn):
      * rendering/FixedTableLayout.cpp:
      (WebCore::FixedTableLayout::calcPrefWidths):
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::paintBoxDecorations):
      (WebCore::InlineFlowBox::paintMask):
      (WebCore::InlineFlowBox::paintTextDecorations):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::paint):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::isSelfCollapsingBlock):
      (WebCore::RenderBlock::collapseMargins):
      (WebCore::RenderBlock::handleBottomOfBlock):
      (WebCore::RenderBlock::calcInlinePrefWidths):
      (WebCore::RenderBlock::calcBlockPrefWidths):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::createInlineBoxForRenderer):
      (WebCore::RenderBlock::findNextLineBreak):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::calcPercentageHeight):
      (WebCore::RenderBox::calcAbsoluteHorizontal):
      (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
      * rendering/RenderBox.h:
      (WebCore::RenderBox::stretchesToViewHeight):
      * rendering/RenderListItem.cpp:
      (WebCore::getParentOfFirstLineBox):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::layout):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::calcRowHeight):
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::verticallyAlignBoxes):
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::diff):
      * rendering/style/RenderStyle.h:
      (WebCore::):
      (WebCore::InheritedFlags::setBitDefaults):
      
      WebKit/mac: 
      
      Rename the various modes to match the HTML5 specification:
          ParseMode -> CompatibilityMode
          CompatMode -> QuirksMode
          AlmostStrictMode -> LimitedQuirksMode
          StrictMode -> NoQuirksMode
                  
      Remove the htmlHacks() accessor from RenderStyle and make rendering code just go to the document
      instead.  This makes switching modes avoid forcing all RenderStyles to detect as changed.
              
      Clean up user stylesheets to minimize style recalculation when the mode is switched.
              
      Fix bugs with the propagation of correct modes in the HTML5 parser.  Make sure the
      dummy document created for fragment parsing properly inherits the real document's CompatibilityMode.
      Make sure the tree builder properly changes the insertion mode to "BeforeHTML" after handling
      a doctype token.
              
      determineParseMode -> setCompatibilityModeFromDoctype, and it now implements the HTML5 algorithm
      precisely.
      
      * WebView/WebView.mm:
      (-[WebView _preferencesChangedNotification:]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ce8ee2a4
  23. 17 Aug, 2010 1 commit
    • jamesr@google.com's avatar
      2010-08-17 Fady Samuel <fsamuel@chromium.org> · f88b258e
      jamesr@google.com authored
              Reviewed by David Hyatt.
      
              Updated table cell hit testing and painting to use binary search instead of linear scan.
      
              Improved Table Hit Testing and Painting Performance
              https://bugs.webkit.org/show_bug.cgi?id=43933
      
              Tests: fast/table/simple_paint.html
                     tables/hittesting/filltable-emptycells.html
                     tables/hittesting/filltable-levels.html
                     tables/hittesting/filltable-outline.html
                     tables/hittesting/filltable-rtl.html
                     tables/hittesting/filltable-stress.html
      
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::paintObject): Dirty rect determined using binary search.
              (WebCore::RenderTableSection::nodeAtPoint): Cell hit determined using binary search
      2010-08-17  Fady Samuel  <fsamuel@chromium.org>
      
              Reviewed by David Hyatt.
      
              Updated table cell hit testing and painting to use binary search instead of a linear scan.
      
              Layout tests check that hit testing of empty cells, overlapping cells,
              cells with outlines, right-to-left tables, and large
              tables all work as expected.
      
              Improved Table Hit Testing and Painting Performance
              https://bugs.webkit.org/show_bug.cgi?id=43933
      
              * fast/table/simple_paint.html: Added.
              * platform/chromium-linux/fast/table/simple_paint-expected.checksum: Added.
              * platform/chromium-linux/fast/table/simple_paint-expected.png: Added.
              * platform/chromium-linux/fast/table/simple_paint-expected.txt: Added.
              * platform/chromium-linux/tables/hittesting/filltable-emptycells-expected.txt: Added.
              * platform/chromium-linux/tables/hittesting/filltable-levels-expected.txt: Added.
              * platform/chromium-linux/tables/hittesting/filltable-outline-expected.txt: Added.
              * platform/chromium-linux/tables/hittesting/filltable-rtl-expected.txt: Added.
              * platform/chromium-linux/tables/hittesting/filltable-stress-expected.txt: Added.
              * platform/chromium/test_expectations.txt:
              * platform/gtk/tables/hittesting/filltable-emptycells-expected.txt: Added.
              * platform/gtk/tables/hittesting/filltable-levels-expected.txt: Added.
              * platform/gtk/tables/hittesting/filltable-outline-expected.txt: Added.
              * platform/gtk/tables/hittesting/filltable-rtl-expected.txt: Added.
              * platform/gtk/tables/hittesting/filltable-stress-expected.txt: Added.
              * tables/hittesting/filltable-emptycells.html: Added.
              * tables/hittesting/filltable-levels.html: Added.
              * tables/hittesting/filltable-outline.html: Added.
              * tables/hittesting/filltable-rtl.html: Added.
              * tables/hittesting/filltable-stress.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f88b258e
  24. 29 Jul, 2010 1 commit
    • tonikitoo@webkit.org's avatar
      2010-07-21 Grace Kloba <klobag@gmail.com> , Antonio Gomes <tonikitoo@webkit.org> · 81c027d5
      tonikitoo@webkit.org authored
              Reviewed by David Hyatt.
      
              Enhance the hit testing to take a rectangle instead of a point
              https://bugs.webkit.org/show_bug.cgi?id=40197
      
              The primary goal of this change is to provide mechanisms for more precise tap
              actions by the users on mobile devices.
      
              Patch extends the hit testing system to work considering a rectangular area
              as input instead of a point, when applicable. For that, the HitTestResult class
              was modified to take a padding (IntSize). The padding specifies a fuzzy range for
              accepting input events in pixels coordinates for both vertical and horizontal
              orientations. In other words, it tells how much to expand the search rect
              around a supposed touch point.
      
              If it non-positive, hit testing will behavior as the current point based hit testing,
              and methods are no-op'ed to not regress this common behavior performance-wise.
              When positive IntSize is provided, the hit test result will keep record of all
              nodes that intersect the built up test area. The logic will continue searching when it
              finds a candidate until the rectangle is fully enclosed by the boundaries of a candidate.
              The result will be a list of nodes in the z-order they are hit-tested.
              Caller will decide how to process them.
      
              In order to expose the functionality, the patch:
      
              - Adds a nodesFromRect method to the Document class, exposing the funcionality
              to the DOM. Method returns a NodeList with all nodes that intersect the given
              hit-tested area.
              - Extends hitTestResultAtPoint method of the EventHandler with an extra 'padding'
              parameter, defaulting to IntSize(0, 0). The rect-based hit test is performed when a
              positive padding is passed in.
      
              Test: fast/dom/nodesFromRect-basic.html
      
              * WebCore.base.exp:
              * dom/Document.cpp:
              (WebCore::Document::nodesFromRect): This method exposes the rect based funcionality to
              the DOM. It works similarly to elementFromPoint, however receiving a rectangular area
              as input instead of a point, and returning a z-index ordered list of nodes (not elements)
              whose area intersect the hit test rect.
              * dom/Document.h: Ditto.
              * dom/Document.idl: Ditto.
              * page/EventHandler.cpp:
              (WebCore::EventHandler::hitTestResultAtPoint): The funcionality is also exposed through this
              method. Patch adds a additional IntSize parameter to work as the padding area, building up
              the hit test rect.
              * page/EventHandler.h: Ditto.
              * rendering/HitTestResult.cpp:
              (WebCore::HitTestResult::HitTestResult): Rect based hit test constructor. Receives a
              padding IntSize as parameter. It can be (0,0).
              (WebCore::HitTestResult::operator=): Modified to assign the m_rectBasedTestResult as well.
              (WebCore::HitTestResult::append): Merge to HitTestResult objects in a way that the
              list node's of both objects get amended.
              (WebCore::HitTestResult::addNodeToRectBasedTestResult): Adds a given Node to the list of
              hit nodes.
              * rendering/HitTestResult.h:
              (WebCore::HitTestResult::padding): Returns the padding as an IntSize.
              (WebCore::HitTestResult::isRectBasedTest): Returns if the HitTestResult is rect based or not.
              (WebCore::HitTestResult::.rectBasedTestResult): Returns the list nodes hit.
              (WebCore::HitTestResult::rectFromPoint): Returns the hit test rect given the hit test point
              and padding.
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::hitTestLayer):
              (WebCore::RenderLayer::hitTestList):
              (WebCore::RenderLayer::hitTestChildLayerColumns):
              * rendering/EllipsisBox.cpp:
              (WebCore::EllipsisBox::nodeAtPoint): Method is modified to support rect based hit test extension.
              Now it not just checks if the boundary of the node being hit-tested contains a hit test point, but
              instead it checks if the boundary of the node intersects a hit test rect. It is implemented so
              that the common case (point based hit test) works as previously.
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::nodeAtPoint): Ditto.
              * rendering/InlineTextBox.cpp:
              (WebCore::InlineTextBox::nodeAtPoint): Ditto.
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::nodeAtPoint): Ditto.
              (WebCore::RenderBlock::hitTestColumns): Ditto.
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::nodeAtPoint): Ditto.
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::nodeAtPoint): Ditto.
              * rendering/RenderLineBoxList.cpp:
              (WebCore::RenderLineBoxList::hitTest):
              * rendering/RenderSVGRoot.cpp:
              (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::nodeAtPoint): Ditto.
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::nodeAtPoint): Ditto.
              * rendering/RenderWidget.cpp:
              (WebCore::RenderWidget::nodeAtPoint): Ditto.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      81c027d5
  25. 28 Jul, 2010 1 commit
    • jamesr@google.com's avatar
      2010-07-28 fsamuel@chromium.org <fsamuel@chromium.org> · b426623e
      jamesr@google.com authored
              Reviewed by David Hyatt.
      
              REGRESSION (r63994): Bank of America's home page is horribly mis-rendered
              https://bugs.webkit.org/show_bug.cgi?id=42993
      
              Fixed bug introduced by patch for bug 40775.
      
              The new table rendering code did not take into account table layouts starting
              during a partial construction of the table render tree. As such,
              multiple layouts on the same table resulted in more columns being generated.
              This patch solves this issue.
      
              * rendering/AutoTableLayout.cpp:
              (WebCore::AutoTableLayout::recalcColumn):
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::cellAbove):
              (WebCore::RenderTable::cellBelow):
              (WebCore::RenderTable::cellBefore):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::ensureRows):
              (WebCore::RenderTableSection::addCell):
              (WebCore::RenderTableSection::setCellWidths):
              (WebCore::RenderTableSection::calcRowHeight):
              (WebCore::RenderTableSection::layoutRows):
              (WebCore::RenderTableSection::paintObject):
              (WebCore::RenderTableSection::appendColumn):
              (WebCore::RenderTableSection::splitColumn):
              * rendering/RenderTableSection.h:
              (WebCore::RenderTableSection::CellStruct::CellStruct):
      2010-07-28  fsamuel@chromium.org  <fsamuel@chromium.org>
      
              Reviewed by David Hyatt.
      
              REGRESSION (r63994): Bank of America's home page is horribly mis-rendered
              https://bugs.webkit.org/show_bug.cgi?id=42993
      
              Restored the expectation for the slashdot logo table test.
      
              Added a new layout test to check for the correctness of early table layout.
      
              * fast/table/early-table-layout.html: Added.
              * platform/chromium/test_expectations.txt:
              * platform/gtk/fast/table/early-table-layout-expected.checksum: Added.
              * platform/gtk/fast/table/early-table-layout-expected.png: Added.
              * platform/gtk/fast/table/early-table-layout-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b426623e
  26. 23 Jul, 2010 1 commit
    • jamesr@google.com's avatar
      2010-07-23 fsamuel@chromium.org <fsamuel@chromium.org> · 36623a35
      jamesr@google.com authored
              Reviewed by David Hyatt.
      
              Updated table painting to draw cell layers in the correct order.
      
              Table Cell Layering
              https://bugs.webkit.org/show_bug.cgi?id=40775
      
              Tests: tables/layering/paint-test-layering-1.html
                     tables/layering/paint-test-layering-2.html
      
              * accessibility/AccessibilityTable.cpp:
              (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
              (WebCore::AccessibilityTable::addChildren):
              (WebCore::AccessibilityTable::cellForColumnAndRow):
              * accessibility/AccessibilityTableCell.cpp:
              (WebCore::AccessibilityTableCell::titleUIElement):
              * accessibility/AccessibilityTableColumn.cpp:
              (WebCore::AccessibilityTableColumn::headerObjectForSection):
              * rendering/AutoTableLayout.cpp:
              (WebCore::AutoTableLayout::recalcColumn):
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::splitColumn):
              (WebCore::RenderTable::calcBorderLeft):
              (WebCore::RenderTable::calcBorderRight):
              (WebCore::RenderTable::cellAbove):
              (WebCore::RenderTable::cellBelow):
              (WebCore::RenderTable::cellBefore):
              (WebCore::RenderTable::cellAfter):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::RenderTableSection):
              (WebCore::RenderTableSection::ensureRows):
              (WebCore::RenderTableSection::addCell):
              (WebCore::RenderTableSection::setCellWidths):
              (WebCore::RenderTableSection::calcRowHeight):
              (WebCore::RenderTableSection::layoutRows):
              (WebCore::RenderTableSection::calcOuterBorderTop):
              (WebCore::RenderTableSection::calcOuterBorderBottom):
              (WebCore::RenderTableSection::calcOuterBorderLeft):
              (WebCore::RenderTableSection::calcOuterBorderRight):
              (WebCore::RenderTableSection::firstLineBoxBaseline):
              (WebCore::compareCellPositions):
              (WebCore::RenderTableSection::paintCell):
              (WebCore::RenderTableSection::paintObject):
              (WebCore::RenderTableSection::numColumns):
              (WebCore::RenderTableSection::appendColumn):
              (WebCore::RenderTableSection::splitColumn):
              (WebCore::RenderTableSection::nodeAtPoint):
              * rendering/RenderTableSection.h:
              (WebCore::RenderTableSection::CellStruct::CellStruct):
              (WebCore::RenderTableSection::CellStruct::primaryCell):
              (WebCore::RenderTableSection::CellStruct::hasCells):
              (WebCore::RenderTableSection::primaryCellAt):
      2010-07-23  fsamuel@chromium.org  <fsamuel@chromium.org>
      
              Reviewed by David Hyatt.
      
              Updated table painting to draw cell layers in the correct order.
      
              Table Cell Layering
              https://bugs.webkit.org/show_bug.cgi?id=40775
      
              * platform/chromium-linux/tables/layering/paint-test-layering-1-expected.checksum: Added.
              * platform/chromium-linux/tables/layering/paint-test-layering-1-expected.png: Added.
              * platform/chromium-linux/tables/layering/paint-test-layering-1-expected.txt: Added.
              * platform/chromium-linux/tables/layering/paint-test-layering-2-expected.checksum: Added.
              * platform/chromium-linux/tables/layering/paint-test-layering-2-expected.png: Added.
              * platform/chromium-linux/tables/layering/paint-test-layering-2-expected.txt: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-1-expected.checksum: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-1-expected.png: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-1-expected.txt: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-2-expected.checksum: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-2-expected.png: Added.
              * platform/chromium-mac/tables/layering/paint-test-layering-2-expected.txt: Added.
              * platform/gtk/tables/layering/paint-test-layering-1-expected.checksum: Added.
              * platform/gtk/tables/layering/paint-test-layering-1-expected.png: Added.
              * platform/gtk/tables/layering/paint-test-layering-1-expected.txt: Added.
              * platform/gtk/tables/layering/paint-test-layering-2-expected.checksum: Added.
              * platform/gtk/tables/layering/paint-test-layering-2-expected.png: Added.
              * platform/gtk/tables/layering/paint-test-layering-2-expected.txt: Added.
              * platform/mac/tables/layering/paint-test-layering-1-expected.checksum: Added.
              * platform/mac/tables/layering/paint-test-layering-1-expected.png: Added.
              * platform/mac/tables/layering/paint-test-layering-1-expected.txt: Added.
              * platform/mac/tables/layering/paint-test-layering-2-expected.checksum: Added.
              * platform/mac/tables/layering/paint-test-layering-2-expected.png: Added.
              * platform/mac/tables/layering/paint-test-layering-2-expected.txt: Added.
              * tables/layering/paint-test-layering-1.html: Added.
              * tables/layering/paint-test-layering-2.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63994 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      36623a35
  27. 18 Jun, 2010 1 commit
  28. 09 Apr, 2010 1 commit
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=37349, RenderStyle cleanup. Working from the outside in to · e607db72
      hyatt@apple.com authored
      bring some style consistency to RenderStyle and its associated classes.  This patch cleans up the
      border and outline classes.
      
      Reviewed by Adam Roben.
      
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::calcBorderLeft):
      (WebCore::RenderTable::calcBorderRight):
      (WebCore::RenderTable::outerBorderTop):
      (WebCore::RenderTable::outerBorderBottom):
      (WebCore::RenderTable::outerBorderLeft):
      (WebCore::RenderTable::outerBorderRight):
      * rendering/RenderTableCell.cpp:
      (WebCore::compareBorders):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::calcOuterBorderTop):
      (WebCore::RenderTableSection::calcOuterBorderBottom):
      (WebCore::RenderTableSection::calcOuterBorderLeft):
      (WebCore::RenderTableSection::calcOuterBorderRight):
      * rendering/style/BorderData.h:
      (WebCore::BorderData::hasBorder):
      (WebCore::BorderData::hasBorderRadius):
      (WebCore::BorderData::borderLeftWidth):
      (WebCore::BorderData::borderRightWidth):
      (WebCore::BorderData::borderTopWidth):
      (WebCore::BorderData::borderBottomWidth):
      (WebCore::BorderData::operator==):
      (WebCore::BorderData::left):
      (WebCore::BorderData::right):
      (WebCore::BorderData::top):
      (WebCore::BorderData::bottom):
      (WebCore::BorderData::image):
      (WebCore::BorderData::topLeft):
      (WebCore::BorderData::topRight):
      (WebCore::BorderData::bottomLeft):
      (WebCore::BorderData::bottomRight):
      * rendering/style/BorderValue.h:
      (WebCore::BorderValue::BorderValue):
      (WebCore::BorderValue::nonZero):
      (WebCore::BorderValue::isTransparent):
      (WebCore::BorderValue::operator==):
      (WebCore::BorderValue::color):
      (WebCore::BorderValue::width):
      (WebCore::BorderValue::style):
      * rendering/style/CollapsedBorderValue.h:
      (WebCore::CollapsedBorderValue::CollapsedBorderValue):
      (WebCore::CollapsedBorderValue::width):
      (WebCore::CollapsedBorderValue::style):
      (WebCore::CollapsedBorderValue::exists):
      (WebCore::CollapsedBorderValue::color):
      (WebCore::CollapsedBorderValue::isTransparent):
      (WebCore::CollapsedBorderValue::precedence):
      (WebCore::CollapsedBorderValue::operator==):
      * rendering/style/OutlineValue.h:
      (WebCore::OutlineValue::OutlineValue):
      (WebCore::OutlineValue::operator==):
      (WebCore::OutlineValue::offset):
      (WebCore::OutlineValue::isAuto):
      * rendering/style/RenderStyle.cpp:
      (WebCore::RenderStyle::getBorderRadiiForRect):
      * rendering/style/RenderStyle.h:
      (WebCore::InheritedFlags::borderLeft):
      (WebCore::InheritedFlags::borderRight):
      (WebCore::InheritedFlags::borderTop):
      (WebCore::InheritedFlags::borderBottom):
      (WebCore::InheritedFlags::borderImage):
      (WebCore::InheritedFlags::borderTopLeftRadius):
      (WebCore::InheritedFlags::borderTopRightRadius):
      (WebCore::InheritedFlags::borderBottomLeftRadius):
      (WebCore::InheritedFlags::borderBottomRightRadius):
      (WebCore::InheritedFlags::borderLeftStyle):
      (WebCore::InheritedFlags::borderLeftColor):
      (WebCore::InheritedFlags::borderLeftIsTransparent):
      (WebCore::InheritedFlags::borderRightStyle):
      (WebCore::InheritedFlags::borderRightColor):
      (WebCore::InheritedFlags::borderRightIsTransparent):
      (WebCore::InheritedFlags::borderTopStyle):
      (WebCore::InheritedFlags::borderTopColor):
      (WebCore::InheritedFlags::borderTopIsTransparent):
      (WebCore::InheritedFlags::borderBottomStyle):
      (WebCore::InheritedFlags::borderBottomColor):
      (WebCore::InheritedFlags::borderBottomIsTransparent):
      (WebCore::InheritedFlags::outlineWidth):
      (WebCore::InheritedFlags::outlineStyleIsAuto):
      (WebCore::InheritedFlags::outlineColor):
      (WebCore::InheritedFlags::outlineOffset):
      (WebCore::InheritedFlags::columnRuleColor):
      (WebCore::InheritedFlags::resetBorderTop):
      (WebCore::InheritedFlags::resetBorderRight):
      (WebCore::InheritedFlags::resetBorderBottom):
      (WebCore::InheritedFlags::resetBorderLeft):
      (WebCore::InheritedFlags::resetBorderImage):
      (WebCore::InheritedFlags::resetBorderTopLeftRadius):
      (WebCore::InheritedFlags::resetBorderTopRightRadius):
      (WebCore::InheritedFlags::resetBorderBottomLeftRadius):
      (WebCore::InheritedFlags::resetBorderBottomRightRadius):
      (WebCore::InheritedFlags::setBorderImage):
      (WebCore::InheritedFlags::setBorderTopLeftRadius):
      (WebCore::InheritedFlags::setBorderTopRightRadius):
      (WebCore::InheritedFlags::setBorderBottomLeftRadius):
      (WebCore::InheritedFlags::setBorderBottomRightRadius):
      (WebCore::InheritedFlags::setBorderLeftWidth):
      (WebCore::InheritedFlags::setBorderLeftStyle):
      (WebCore::InheritedFlags::setBorderLeftColor):
      (WebCore::InheritedFlags::setBorderRightWidth):
      (WebCore::InheritedFlags::setBorderRightStyle):
      (WebCore::InheritedFlags::setBorderRightColor):
      (WebCore::InheritedFlags::setBorderTopWidth):
      (WebCore::InheritedFlags::setBorderTopStyle):
      (WebCore::InheritedFlags::setBorderTopColor):
      (WebCore::InheritedFlags::setBorderBottomWidth):
      (WebCore::InheritedFlags::setBorderBottomStyle):
      (WebCore::InheritedFlags::setBorderBottomColor):
      (WebCore::InheritedFlags::setOutlineWidth):
      (WebCore::InheritedFlags::setOutlineStyle):
      (WebCore::InheritedFlags::setOutlineColor):
      (WebCore::InheritedFlags::setOutlineOffset):
      (WebCore::InheritedFlags::setColumnRuleColor):
      (WebCore::InheritedFlags::setColumnRuleWidth):
      * rendering/style/StyleMultiColData.h:
      (WebCore::StyleMultiColData::ruleWidth):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@57355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e607db72
  29. 31 Dec, 2009 1 commit
  30. 18 Nov, 2009 1 commit
    • dbates@webkit.org's avatar
      2009-11-18 Daniel Bates <dbates@webkit.org> · e1131831
      dbates@webkit.org authored
              Reviewed by Dave Hyatt.
      
              https://bugs.webkit.org/show_bug.cgi?id=24971
              And
              <rdar://problem/7138265>
      
              Fixes an issue where setting the height of a table row programmatically
              (via JavaScript) causes the table to be improperly rendered because the
              height of each row in the table is not recalculated with respect to the
              CSS height property.
      
              In particular, programmatically setting the height of some table row causes
              the rows of that table to be rendered with a height equal to the minimum
              height required by the cells in that row, regardless of any specified cell
              heights. Instead, when RenderTableSection::recalcCells is called, the height
              of each row should be set to the CSS height property just as we do in
              RenderTableSection::addChild.
      
              Test: fast/table/row-height-recalc2.html
      
              * rendering/RenderTableSection.cpp:
              (WebCore::setRowHeightToRowStyleHeightIfNotRelative): Added.
              (WebCore::RenderTableSection::addChild): Moved code that set row height into
              method WebCore::setRowHeightToRowStyleHeightIfNotRelative.
              (WebCore::RenderTableSection::recalcCells): Modified to call
              WebCore::setRowHeightToRowStyleHeightIfNotRelative.
      2009-11-18  Daniel Bates  <dbates@webkit.org>
      
              Reviewed by Dave Hyatt.
      
              https://bugs.webkit.org/show_bug.cgi?id=24971
              And
              <rdar://problem/7138265>
      
              Tests that setting the height of a table row programmatically (via JavaScript)
              recalculates the height of the rows in the table.
      
              * fast/table/row-height-recalc2.html: Added.
              * platform/mac/fast/table/row-height-recalc2-expected.checksum: Added.
              * platform/mac/fast/table/row-height-recalc2-expected.png: Added.
              * platform/mac/fast/table/row-height-recalc2-expected.txt: Added.
              * platform/qt/fast/table/row-height-recalc2-expected.checksum: Added.
              * platform/qt/fast/table/row-height-recalc2-expected.png: Added.
              * platform/qt/fast/table/row-height-recalc2-expected.txt: Added.
              * platform/win/fast/table/row-height-recalc2-expected.checksum: Added.
              * platform/win/fast/table/row-height-recalc2-expected.png: Added.
              * platform/win/fast/table/row-height-recalc2-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1131831
  31. 19 Aug, 2009 1 commit
    • hyatt@apple.com's avatar
      Cleanup from my patch thet rewrote overflow. Remove unused member variables... · 7214c6a7
      hyatt@apple.com authored
      Cleanup from my patch thet rewrote overflow.  Remove unused member variables from RenderTableSection and
      move the addition of overflow from children into a separate pass after the height of the section has been
      set.  This prevents the RenderOverflow struct from being aggressively allocated for all table sections.
      (Not a a correctness issue, just a memory issue.)
      
      Reviewed by Dan Bernstein.
      
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::RenderTableSection):
      (WebCore::RenderTableSection::layoutRows):
      * rendering/RenderTableSection.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7214c6a7
  32. 18 Aug, 2009 1 commit
    • hyatt@apple.com's avatar
      WebCore: https://bugs.webkit.org/show_bug.cgi?id=20329, shadows and reflections incorrectly · 5dc5a312
      hyatt@apple.com authored
      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:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5dc5a312
  33. 31 Jul, 2009 1 commit
    • darin@apple.com's avatar
      WebCore: · 445c34f5
      darin@apple.com authored
      2009-07-30  Darin Adler  <darin@apple.com>
      
              Reviewed by David Levin.
      
              Use checked casts for render tree
              https://bugs.webkit.org/show_bug.cgi?id=23522
      
              Next step: Add casts for all the RenderTable classes and use them everywhere.
      
              Also added a few uses in places that were still using static_cast.
              Also made some virtual member functions private.
              Also changed RenderTable::m_tableLayout to use OwnPtr.
      
              * accessibility/AccessibilityTable.cpp:
              (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
              (WebCore::AccessibilityTable::addChildren):
              (WebCore::AccessibilityTable::cellForColumnAndRow):
              * accessibility/AccessibilityTableCell.cpp:
              (WebCore::AccessibilityTableCell::parentTable):
              (WebCore::AccessibilityTableCell::rowIndexRange):
              (WebCore::AccessibilityTableCell::columnIndexRange):
              (WebCore::AccessibilityTableCell::titleUIElement):
              * accessibility/AccessibilityTableColumn.cpp:
              (WebCore::AccessibilityTableColumn::headerObject):
              * accessibility/AccessibilityTableRow.cpp:
              (WebCore::AccessibilityTableRow::parentTable):
              * editing/DeleteSelectionCommand.cpp:
              (WebCore::DeleteSelectionCommand::removeNode):
              * editing/TextIterator.cpp:
              (WebCore::shouldEmitTabBeforeNode):
              (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
              * html/HTMLTableCellElement.cpp:
              (WebCore::HTMLTableCellElement::parseMappedAttribute):
              * html/HTMLTableColElement.cpp:
              (WebCore::HTMLTableColElement::parseMappedAttribute):
              * page/Frame.cpp:
              (WebCore::Frame::searchForLabelsAboveCell):
              * page/mac/FrameMac.mm:
              (WebCore::Frame::searchForNSLabelsAboveCell):
              * rendering/AutoTableLayout.cpp:
              (WebCore::AutoTableLayout::recalcColumn):
              (WebCore::AutoTableLayout::fullRecalc):
              (WebCore::shouldScaleColumns):
              * rendering/FixedTableLayout.cpp:
              (WebCore::FixedTableLayout::calcWidthArray):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::calcPrefWidths):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::calcPercentageHeight):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::addChild):
              (WebCore::RenderObject::containingBlock):
              * rendering/RenderTableCell.cpp:
              (WebCore::RenderTableCell::collapsedBottomBorder):
              * rendering/RenderTableCol.cpp:
              (WebCore::RenderTableCol::table):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::addChild):
              (WebCore::RenderTableRow::layout):
              (WebCore::RenderTableRow::paint):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addChild):
              (WebCore::RenderTableSection::layoutRows):
              (WebCore::RenderTableSection::lowestPosition):
              (WebCore::RenderTableSection::rightmostPosition):
              (WebCore::RenderTableSection::leftmostPosition):
              (WebCore::RenderTableSection::paintObject):
              (WebCore::RenderTableSection::recalcCells):
              * rendering/RenderTreeAsText.cpp:
              (WebCore::operator<<):
              (WebCore::writeTextRun):
              Use checked casts.
      
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::styleDidChange): Updated to use OwnPtr.
              (WebCore::RenderTable::addChild): Use checked cast.
              (WebCore::RenderTable::layout): Ditto.
              (WebCore::RenderTable::setCellWidths): Ditto.
              (WebCore::RenderTable::paintObject): Ditto.
              (WebCore::RenderTable::splitColumn): Ditto.
              (WebCore::RenderTable::appendColumn): Ditto.
              (WebCore::RenderTable::colElement): Ditto.
              (WebCore::RenderTable::recalcSections): Ditto.
              (WebCore::RenderTable::outerBorderBottom): Ditto.
              (WebCore::RenderTable::outerBorderLeft): Ditto.
              (WebCore::RenderTable::outerBorderRight): Ditto.
              (WebCore::RenderTable::sectionAbove): Ditto.
              (WebCore::RenderTable::sectionBelow): Ditto.
      
              * rendering/RenderTable.h: Added checked cast. Made virtual
              functions private. Changed m_tableLayout to be a OwnPtr.
      
              * rendering/RenderTableCell.h: Added checked cast.
              * rendering/RenderTableCol.h: Ditto. Made virtual functions private.
              * rendering/RenderTableRow.h: Ditto.
              * rendering/RenderTableSection.h: Ditto.
      
      WebKit/mac:
      
      2009-07-30  Darin Adler  <darin@apple.com>
      
              Reviewed by David Levin.
      
              Use checked casts for render tree
              https://bugs.webkit.org/show_bug.cgi?id=23522
      
              * Misc/WebNSAttributedStringExtras.mm:
              (fileWrapperForElement):
              * Misc/WebNSPasteboardExtras.mm:
              (imageFromElement):
              (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
              * WebView/WebFrame.mm:
              (-[WebFrame _computePageRectsWithPrintWidthScaleFactor:printHeight:]):
              (-[WebFrame _accessibilityTree]):
              * WebView/WebRenderNode.mm:
              (copyRenderNode):
              Use checked casts.
      
      WebKit/win:
      
      2009-07-30  Darin Adler  <darin@apple.com>
      
              Reviewed by David Levin.
      
              Use checked casts for render tree
              https://bugs.webkit.org/show_bug.cgi?id=23522
      
              * DOMHTMLClasses.cpp:
              (DOMHTMLInputElement::isUserEdited):
              (DOMHTMLTextAreaElement::isUserEdited):
              Use checked casts.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@46647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      445c34f5
  34. 04 Jun, 2009 1 commit
  35. 07 May, 2009 1 commit
  36. 16 Apr, 2009 1 commit
    • bdakin@apple.com's avatar
      WebCore: · 40ae9be6
      bdakin@apple.com authored
      2009-04-16  Beth Dakin  <bdakin@apple.com>
      
              Reviewed by Dave Hyatt.
      
              Fix for https://bugs.webkit.org/show_bug.cgi?id=20765 Website 
              crashes on load due to messy HTML in search form
              -and corresponding-
              <rdar://problem/6210633>
      
              Before this patch, <form>s were allowed to sit inside tables 
              without being wrapped by anonymous table parts. There was also a 
              concept that such a from could be "demoted" and would not be 
              allowed to have any children. This patch has the HTML parser mark 
              form elements that have been demoted as such, and then the demoted 
              forms are not given renderers. I also removed the code that allowed 
              forms to sit in tables without anonymous table sections. So now any 
              forms that do manage to get a renderer inside a table will also be 
              wrapped with appropriate table parts.
      
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::HTMLFormElement):
              (WebCore::HTMLFormElement::rendererIsNeeded):
              * html/HTMLFormElement.h:
              (WebCore::HTMLFormElement::setDemoted):
              (WebCore::HTMLFormElement::isDemoted):
              * html/HTMLParser.cpp:
              (WebCore::HTMLParser::insertNode):
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::addChild):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::addChild):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addChild):
      
      LayoutTests:
      
      2009-04-16  Beth Dakin  <bdakin@apple.com>
      
              Reviewed by Dave Hyatt.
      
              Tests for https://bugs.webkit.org/show_bug.cgi?id=20765 Website 
              crashes on load due to messy HTML in search form
              -and corresponding-
              <rdar://problem/6210633>
      
              New tests:
              * fast/forms/form-added-to-table.html: Added.
              * fast/forms/form-in-malformed-markup.html: Added.
              * platform/mac/fast/forms/form-added-to-table-expected.checksum: Added.
              * platform/mac/fast/forms/form-added-to-table-expected.png: Added.
              * platform/mac/fast/forms/form-added-to-table-expected.txt: Added.
              * platform/mac/fast/forms/form-in-malformed-markup-expected.checksum: Added.
              * platform/mac/fast/forms/form-in-malformed-markup-expected.png: Added.
              * platform/mac/fast/forms/form-in-malformed-markup-expected.txt: Added.
      
              Tests with new results:
              * platform/mac/fast/forms/formmove3-expected.txt:
              * platform/mac/fast/forms/preserveFormDuringResidualStyle-expected.txt:
              * platform/mac/fast/invalid/table-residual-style-crash-expected.txt:
              * platform/mac/fast/table/fixed-table-non-cell-in-row-expected.txt:
              * platform/mac/fast/table/inline-form-assert-expected.txt:
              * platform/mac/fast/table/insert-cell-before-form-expected.txt:
              * platform/mac/fast/table/insert-row-before-form-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug2516-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug30559-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug32447-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug34538-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug78162-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
              * platform/mac/tables/mozilla/bugs/bug96343-expected.txt:
              * platform/mac/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@42586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      40ae9be6
  37. 25 Mar, 2009 1 commit
    • eric@webkit.org's avatar
      Reviewed by Darin Adler. · 5832ab7c
      eric@webkit.org authored
              Remove dead code and style cleanup
              https://bugs.webkit.org/show_bug.cgi?id=24684
      
              * html/CanvasStyle.cpp:
              (WebCore::CanvasStyle::CanvasStyle):
                Coverty was annoyed that we didn't initialize all of our members.  I agree, but I didn't
                want to paste all 8 members each time, so I just cleaned up the existing constructors and left them.
              * page/FocusController.cpp:
              (WebCore::FocusController::setFocusedNode):
                "node" was checked just above and is already known to be non-null
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::insertOnlyThisLayer):
                We were already using parentLayer w/o a NULL check above, so just add an explicit ASSERT and use it w/o NULL check
              (WebCore::RenderLayer::resize):
                element is already ASSERTed above, no need to null check it here
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::addCell):
                currentCell.cell was just assigned to the value "cell" which is known to be non-null, no need to null check again.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5832ab7c
  38. 20 Mar, 2009 1 commit
    • mitz@apple.com's avatar
      WebCore: · 1547c6db
      mitz@apple.com authored
              Reviewed by Dave Hyatt.
      
              - fix https://bugs.webkit.org/show_bug.cgi?id=23739
                <rdar://problem/6556371> REGRESSION (r36513): iframe isn't sized properly upon load
      
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::percentHeightDescendants): Added this accessor.
              * rendering/RenderBlock.h:
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::layoutRows): Extended the check for
              children that flex to include other descendants with percent height
              which is relative to the cell.
      
      LayoutTests:
      
              Reviewed by Dave Hyatt.
      
              - test, updated test and results for https://bugs.webkit.org/show_bug.cgi?id=23739
                <rdar://problem/6556371> REGRESSION (r36513): iframe isn't sized properly upon load
      
              * fast/replaced/percent-height-in-anonymous-block-in-table.html: Added.
              * fast/replaced/table-percent-height-expected.txt:
              * fast/replaced/table-percent-height.html:
              * platform/mac/fast/replaced/percent-height-in-anonymous-block-in-table-expected.checksum: Added.
              * platform/mac/fast/replaced/percent-height-in-anonymous-block-in-table-expected.png: Added.
              * platform/mac/fast/replaced/percent-height-in-anonymous-block-in-table-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41876 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1547c6db
  39. 24 Feb, 2009 1 commit
    • hyatt@apple.com's avatar
      WebCore: · fe52f5ba
      hyatt@apple.com authored
      2009-02-23  David Hyatt  <hyatt@apple.com>
      
              Reviewed by Eric Seidel
      
              https://bugs.webkit.org/show_bug.cgi?id=23740, painting order wrong for normal flow elements with overflow: hidden
              
              This patch reworks the painting of overflow.  There is now the concept of a "self-painting layer."  All
              layers are considered to be self-painting except for overflow layers that are normal flow (and that don't have
              reflections or masks).
              
              If an overflow layer is not self-painting, then it ends up painted by its parent just like any other normal flow object.
              The only difference is that the clip has to be pushed and popped when painting the object's children.
              
              The lightweight clipping scheme used for controls has been extended to cover overflow now in this simplified case.  With
              the code consolidated into reusable push/pop functions, all of the renderers that use overflow have been patched to
              use the new functions.
              
              Hit testing has also been patched to check the overflow clip rect first before recurring into children.
              
              Scrollbar paint has been moved into RenderBlock for now, since none of the table objects support scrollbars
              yet, and scrollbar hit testing was already there anyway.  Now the two code paths are more symmetrical.
              
              Masks are now treated like normal flow layers (just like reflections).
      
              A couple of test cases have been added to fast/overflow to test the stacking order. 
      
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::nodeAtPoint):
              (WebCore::InlineFlowBox::paint):
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::repaintOverhangingFloats):
              (WebCore::RenderBlock::paint):
              (WebCore::RenderBlock::paintChildren):
              (WebCore::RenderBlock::paintObject):
              (WebCore::RenderBlock::paintFloats):
              (WebCore::RenderBlock::insertFloatingObject):
              (WebCore::RenderBlock::floatRect):
              (WebCore::RenderBlock::lowestPosition):
              (WebCore::RenderBlock::rightmostPosition):
              (WebCore::RenderBlock::leftmostPosition):
              (WebCore::RenderBlock::addOverhangingFloats):
              (WebCore::RenderBlock::nodeAtPoint):
              (WebCore::RenderBlock::hitTestContents):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::nodeAtPoint):
              (WebCore::RenderBox::pushContentsClip):
              (WebCore::RenderBox::popContentsClip):
              * rendering/RenderBox.h:
              (WebCore::RenderBox::paintObject):
              * rendering/RenderBoxModelObject.cpp:
              (WebCore::RenderBoxModelObject::hasSelfPaintingLayer):
              * rendering/RenderBoxModelObject.h:
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::paintLayer):
              (WebCore::RenderLayer::hitTestLayer):
              (WebCore::RenderLayer::shouldBeNormalFlowOnly):
              (WebCore::RenderLayer::isSelfPaintingLayer):
              * rendering/RenderLayer.h:
              * rendering/RenderTable.cpp:
              (WebCore::RenderTable::paint):
              (WebCore::RenderTable::paintObject):
              (WebCore::RenderTable::nodeAtPoint):
              * rendering/RenderTable.h:
              * rendering/RenderTableCell.cpp:
              (WebCore::RenderTableCell::paint):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::nodeAtPoint):
              (WebCore::RenderTableRow::paint):
              * rendering/RenderTableRow.h:
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::paint):
              (WebCore::RenderTableSection::paintObject):
              (WebCore::RenderTableSection::nodeAtPoint):
              * rendering/RenderTableSection.h:
              * rendering/RenderTreeAsText.cpp:
              (WebCore::write):
              (WebCore::writeLayers):
      
      LayoutTests:
      
      2009-02-24  David Hyatt  <hyatt@apple.com>
      
              Reviewed by Eric Seidel
      
              https://bugs.webkit.org/show_bug.cgi?id=23740, painting order wrong for normal flow elements with overflow: hidden
              
              This patch reworks the painting of overflow.  There is now the concept of a "self-painting layer."  All
              layers are considered to be self-painting except for overflow layers that are normal flow (and that don't have
              reflections or masks).
              
              If an overflow layer is not self-painting, then it ends up painted by its parent just like any other normal flow object.
              The only difference is that the clip has to be pushed and popped when painting the object's children.
              
              The lightweight clipping scheme used for controls has been extended to cover overflow now in this simplified case.  With
              the code consolidated into reusable push/pop functions, all of the renderers that use overflow have been patched to
              use the new functions.
              
              Hit testing has also been patched to check the overflow clip rect first before recurring into children.
              
              Scrollbar paint has been moved into RenderBlock for now, since none of the table objects support scrollbars
              yet, and scrollbar hit testing was already there anyway.  Now the two code paths are more symmetrical.
              
              Masks are now treated like normal flow layers (just like reflections).
              
              A couple of test cases have been added to fast/overflow to test the stacking order.
      
              * fast/overflow/overflow-float-stacking.html: Added.
              * fast/overflow/overflow-stacking.html: Added.
              * platform/mac/fast/overflow/overflow-float-stacking-expected.checksum: Added.
              * platform/mac/fast/overflow/overflow-float-stacking-expected.png: Added.
              * platform/mac/fast/overflow/overflow-float-stacking-expected.txt: Added.
              * platform/mac/fast/overflow/overflow-stacking-expected.checksum: Added.
              * platform/mac/fast/overflow/overflow-stacking-expected.png: Added.
              * platform/mac/fast/overflow/overflow-stacking-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@41203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe52f5ba