WebCore/ChangeLog

 12010-12-05 David Hyatt <hyatt@apple.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
 6 O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
 7
 8 This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
 9 in the engine to cache all the information required to properly handle scrolling.
 10
 11 In the old code, there were two types of overflow: layout overflow and visual overflow. The former could
 12 affect scrolling and the latter could not. The distinction was largely meaningless, since layout overflow
 13 wasn't actually used to determine scroll width or scroll height. It didn't propagate across self-painting layer
 14 boundaries either. In the old code, the term visible overflow meant the union of the layout overflow and
 15 visual overflow rects.
 16
 17 In the new code, the two types of overflow remain, but the distinction between the two is now clear. Visual overflow
 18 is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling. It has
 19 been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
 20 work with writing modes.
 21
 22 In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
 23 Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
 24 A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
 25 a huge number of tests would change.
 26
 27 Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow. Existing tests cover the rest.
 28
 29 * page/FrameView.cpp:
 30 (WebCore::FrameView::adjustViewSize):
 31 (WebCore::FrameView::forceLayoutForPagination):
 32 Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
 33 to account for writing modes.
 34
 35 * platform/graphics/IntRect.h:
 36 (WebCore::IntRect::shiftLeftEdgeTo):
 37 (WebCore::IntRect::shiftRightEdgeTo):
 38 (WebCore::IntRect::shiftTopEdgeTo):
 39 (WebCore::IntRect::shiftBottomEdgeTo):
 40 New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
 41
 42 * rendering/InlineBox.h:
 43 (WebCore::InlineBox::frameRect):
 44 frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
 45
 46 * rendering/InlineFlowBox.cpp:
 47 (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
 48 All of the overflow setting in the inline direction has been removed from this function. All line overflow is computed
 49 at once now in a single function: computeOverflow.
 50
 51 (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
 52 (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
 53 (WebCore::InlineFlowBox::addReplacedChildOverflow):
 54 Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
 55
 56 (WebCore::InlineFlowBox::computeOverflow):
 57 The new function that computes both horizontal and vertical overflow for a line box.
 58
 59 (WebCore::InlineFlowBox::setLayoutOverflow):
 60 (WebCore::InlineFlowBox::setVisualOverflow):
 61 (WebCore::InlineFlowBox::setOverflowFromLogicalRects):
 62 New functions that set the overflow computed by computeOverflow. These replace setBlockDirectionOverflowPositions
 63 and setInlineDirectionOverflowPositions. They essentially do the same thing, but they operate on rectangles.
 64
 65 (WebCore::InlineFlowBox::nodeAtPoint):
 66 (WebCore::InlineFlowBox::paint):
 67 Changed to use visual overflow instead of visible overflow. (Visible overflow as a union of layout and visual
 68 overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
 69
 70 * rendering/InlineFlowBox.h:
 71 (WebCore::InlineFlowBox::logicalLayoutOverflowRect):
 72 (WebCore::InlineFlowBox::logicalVisualOverflowRect):
 73 Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
 74 converting to block coordinates at the end.
 75
 76 * rendering/RenderBlock.cpp:
 77 (WebCore::RenderBlock::layoutBlock):
 78 (WebCore::RenderBlock::addOverflowFromChildren):
 79 (WebCore::RenderBlock::computeOverflow):
 80 (WebCore::RenderBlock::addOverflowFromFloats):
 81 (WebCore::RenderBlock::addOverflowFromPositionedObjects):
 82 Blocks now have a computeOverflow function called at the end that adds in all the types of overflow. The addOverflowFromChildren
 83 method is virtual so that RenderListItem and RenderTable can subclass it. RenderListItem has to position its list marker and
 84 propagate marker overflow up, and RenderTable adds in overflow from its sections.
 85
 86 (WebCore::RenderBlock::layoutOnlyPositionedObjects):
 87 (WebCore::RenderBlock::layoutPositionedObjects):
 88 When only positioned objects lay out, overflow must still be recomputed. The refactoring of overflow computation into a single
 89 callable method: computeOverflow, makes it possible for this to be done easily.
 90
 91 (WebCore::RenderBlock::paint):
 92 visible -> visual.
 93
 94 (WebCore::RenderBlock::addOverhangingFloats):
 95 The propagation of float overflow has changed substantially. The basic rules are:
 96 (1) The float must be in our floating objects list to contribute to overflow.
 97 (2) The float must be a descendant to contribute to overflow.
 98 (3) The block must have the outermost list that contains the float, or it has a self-painting layer and
 99 so the float needs to be included in its overflow.
 100
 101 (WebCore::RenderBlock::nodeAtPoint):
 102 visible -> visual.
 103
 104 (WebCore::RenderBlock::layoutColumns):
 105 Remove column overflow computation from layoutColumns and move it to computeOverflow.
 106
 107 (WebCore::RenderBlock::adjustLinePositionForPagination):
 108 visible -> visual.
 109
 110 * rendering/RenderBlock.h:
 111 (WebCore::RenderBlock::scrollbarsChanged):
 112 Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
 113
 114 * rendering/RenderBlockLineLayout.cpp:
 115 (WebCore::RenderBlock::layoutInlineChildren):
 116 (WebCore::RenderBlock::determineStartPosition):
 117 (WebCore::RenderBlock::matchedEndLine):
 118 (WebCore::RenderBlock::addOverflowFromInlineChildren):
 119 (WebCore::RenderBlock::beforeSideVisualOverflowForLine):
 120 (WebCore::RenderBlock::afterSideVisualOverflowForLine):
 121 visible -> visual.
 122
 123 * rendering/RenderBox.cpp:
 124 (WebCore::RenderBox::scrollWidth):
 125 (WebCore::RenderBox::scrollHeight):
 126 Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
 127
 128 (WebCore::RenderBox::paintRootBoxDecorations):
 129 Use docLeft and docTop here, so that writing modes are handled.
 130
 131 (WebCore::RenderBox::clippedOverflowRectForRepaint):
 132 visible -> visual.
 133
 134 (WebCore::RenderBox::addOverflowFromChild):
 135 (WebCore::RenderBox::addLayoutOverflow):
 136 (WebCore::RenderBox::addVisualOverflow):
 137 (WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
 138 (WebCore::RenderBox::visualOverflowRectForPropagation):
 139 (WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
 140 (WebCore::RenderBox::layoutOverflowRectForPropagation):
 141 * rendering/RenderBox.h:
 142 The new overflow system for boxes. Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
 143 for transforms, relative positioning and writing mode differences.
 144
 145 (WebCore::RenderBox::layoutOverflowRect):
 146 (WebCore::RenderBox::topLayoutOverflow):
 147 (WebCore::RenderBox::bottomLayoutOverflow):
 148 (WebCore::RenderBox::leftLayoutOverflow):
 149 (WebCore::RenderBox::rightLayoutOverflow):
 150 Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
 151
 152 (WebCore::RenderBox::clientLogicalBottom):
 153 New helper for obtaining the logical bottom of the client box.
 154
 155 (WebCore::RenderBox::clientBoxRect):
 156 New helper for obtaining the clientLeft/Top/Width/Height box.
 157
 158 * rendering/RenderBoxModelObject.h:
 159 (WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
 160 Helper for obtaining the relative position offset transposed for vertical writing modes. Used by line overflow.
 161
 162 * rendering/RenderFlexibleBox.cpp:
 163 (WebCore::RenderFlexibleBox::layoutBlock):
 164 Changed flexible boxes to just call the base class computeOverflow method.
 165
 166 * rendering/RenderInline.cpp:
 167 (WebCore::RenderInline::linesVisualOverflowBoundingBox):
 168 (WebCore::RenderInline::clippedOverflowRectForRepaint):
 169 visible -> visual.
 170
 171 * rendering/RenderInline.h:
 172 * rendering/RenderLayer.cpp:
 173 (WebCore::RenderLayer::updateLayerPosition):
 174 Changed layers to no longer incorporate right/bottom overflow into width/height. This is the reason many layout
 175 tests change. (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
 176 layers now.)
 177
 178 (WebCore::RenderLayer::overflowTop):
 179 (WebCore::RenderLayer::overflowBottom):
 180 (WebCore::RenderLayer::overflowLeft):
 181 (WebCore::RenderLayer::overflowRight):
 182 overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
 183 to set up the scroll area.
 184
 185 (WebCore::RenderLayer::computeScrollDimensions):
 186 Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
 187
 188 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
 189 Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
 190 bottom works.
 191
 192 (WebCore::performOverlapTests):
 193 (WebCore::RenderLayer::paintLayer):
 194 Fix a bug in performOverlapTests. It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
 195 of the layer (see why I hate layers even having dimensions?). Changed it to use the bounding box of the layer instead.
 196
 197 (WebCore::RenderLayer::hitTest):
 198 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
 199 for left/top overflow in a ScrollView (hate hate hate layers having dimensions). I changed it to use the hit test rect instead,
 200 so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
 201
 202 (WebCore::RenderLayer::localBoundingBox):
 203 visible -> visual.
 204
 205 * rendering/RenderLayer.h:
 206 Added the new overflowTop/Left/Right/Bottom accessors.
 207
 208 * rendering/RenderLineBoxList.cpp:
 209 (WebCore::RenderLineBoxList::anyLineIntersectsRect):
 210 (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
 211 (WebCore::RenderLineBoxList::paint):
 212 (WebCore::RenderLineBoxList::hitTest):
 213 visible -> visual.
 214
 215 * rendering/RenderListItem.cpp:
 216 (WebCore::RenderListItem::addOverflowFromChildren):
 217 (WebCore::RenderListItem::positionListMarker):
 218 * rendering/RenderListItem.h:
 219 RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
 220
 221 * rendering/RenderListMarker.cpp:
 222 (WebCore::RenderListMarker::paint):
 223 visible -> visual.
 224
 225 * rendering/RenderMarquee.cpp:
 226 (WebCore::RenderMarquee::computePosition):
 227 Changed to use overflow functions instead of rightmost/lowestPosition.
 228
 229 * rendering/RenderMedia.cpp:
 230 * rendering/RenderMedia.h:
 231 Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
 232
 233 * rendering/RenderOverflow.h:
 234 (WebCore::RenderOverflow::RenderOverflow):
 235 (WebCore::RenderOverflow::setLayoutOverflow):
 236 (WebCore::RenderOverflow::setVisualOverflow):
 237 Add new setters for layout and visual overflow as rects.
 238
 239 * rendering/RenderReplaced.cpp:
 240 (WebCore::RenderReplaced::shouldPaint):
 241 (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
 242 visible -> visual.
 243
 244 * rendering/RenderRubyRun.cpp:
 245 (WebCore::RenderRubyRun::layout):
 246 Call computeOverflow to recompute our overflow information after we adjust the ruby.
 247
 248 * rendering/RenderTable.cpp:
 249 (WebCore::RenderTable::layout):
 250 (WebCore::RenderTable::addOverflowFromChildren):
 251 (WebCore::RenderTable::paint):
 252 * rendering/RenderTable.h:
 253 Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
 254
 255 * rendering/RenderTableCell.cpp:
 256 (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
 257 visible -> visual.
 258
 259 (WebCore::RenderTableCell::scrollbarsChanged):
 260 Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
 261 a bug in table layout. If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
 262 cell, then the cell won't lay out properly the second time (after the scrollbars have been added). We have to adjust the intrinsic
 263 padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
 264
 265 * rendering/RenderTableCell.h:
 266 (WebCore::RenderTableCell::hasVisualOverflow):
 267 visible -> visual.
 268
 269 * rendering/RenderTableSection.cpp:
 270 (WebCore::RenderTableSection::layoutRows):
 271 * rendering/RenderTableSection.h:
 272 visible -> visual. Removed the leftmost/rightmost/topmost/bottommostPosition functions.
 273
 274 * rendering/RenderTreeAsText.cpp:
 275 (WebCore::writeLayers):
 276 Added a hack to render tree dumping to include right/bottom overflow for the root layer only. This keeps a zillion layout tests
 277 from failing.
 278
 279 * rendering/RenderView.cpp:
 280 (WebCore::RenderView::layout):
 281 (WebCore::RenderView::docTop):
 282 (WebCore::RenderView::docBottom):
 283 (WebCore::RenderView::docLeft):
 284 (WebCore::RenderView::docRight):
 285 * rendering/RenderView.h:
 286 (WebCore::RenderView::docHeight):
 287 (WebCore::RenderView::docWidth):
 288 RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes. These methods
 289 are now the preferred way to query for the physical dimensions of a document.
 290
 291 * rendering/RootInlineBox.cpp:
 292 (WebCore::RootInlineBox::addHighlightOverflow):
 293 Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
 294
 295 (WebCore::RootInlineBox::alignBoxesInBlockDirection):
 296 Remove the computation of block direction overflow, since it now all happens at once after the line is built.
 297
 298 (WebCore::RootInlineBox::paddedLayoutOverflowRect):
 299 * rendering/RootInlineBox.h:
 300 Added a new helper function for incorporating the end padding into a line. This end padding also includes the single pixel for a caret
 301 in LTR if needed.
 302
13032010-12-05 Kent Tamura <tkent@chromium.org>
2304
3305 Unreviewed. Run sort-Xcode-project-file.
73349

WebCore/page/FrameView.cpp

@@void FrameView::adjustViewSize()
435435 if (!root)
436436 return;
437437
438  IntSize size = IntSize(root->rightLayoutOverflow() - root->leftLayoutOverflow(), root->bottomLayoutOverflow() - root->topLayoutOverflow());
 438 IntSize size = IntSize(root->docWidth(), root->docHeight());
439439
440  ScrollView::setScrollOrigin(IntPoint(-root->leftLayoutOverflow(), -root->topLayoutOverflow()), size == contentsSize());
 440 ScrollView::setScrollOrigin(IntPoint(-root->docLeft(), -root->docTop()), size == contentsSize());
441441
442442 setContentsSize(size);
443443}

@@void FrameView::forceLayoutForPagination
22392239 // page width when shrunk, we will lay out at maximum shrink and clip extra content.
22402240 // FIXME: We are assuming a shrink-to-fit printing implementation. A cropping
22412241 // implementation should not do this!
2242  int rightmostPos = root->rightmostPosition();
2243  if (rightmostPos > pageSize.width()) {
2244  pageW = std::min<int>(rightmostPos, ceilf(pageSize.width() * maximumShrinkFactor));
 2242 int docWidth = root->docWidth();
 2243 if (docWidth > pageSize.width()) {
 2244 pageW = std::min<int>(docWidth, ceilf(pageSize.width() * maximumShrinkFactor));
22452245 if (pageSize.height())
22462246 root->setPageHeight(pageW / pageSize.width() * pageSize.height());
22472247 root->setWidth(pageW);
22482248 root->setNeedsLayoutAndPrefWidthsRecalc();
22492249 forceLayout();
2250  int docHeight = root->bottomLayoutOverflow();
 2250 int docHeight = root->docHeight();
22512251 root->clearLayoutOverflow();
22522252 root->addLayoutOverflow(IntRect(0, 0, pageW, docHeight)); // This is how we clip in case we overflow again.
22532253 }
73334

WebCore/platform/graphics/IntRect.h

@@public:
117117
118118 void move(const IntSize& s) { m_location += s; }
119119 void move(int dx, int dy) { m_location.move(dx, dy); }
 120
 121 void shiftLeftEdgeTo(int edge)
 122 {
 123 int delta = edge - x();
 124 setX(edge);
 125 setWidth(std::max(0, width() - delta));
 126 }
 127 void shiftRightEdgeTo(int edge)
 128 {
 129 int delta = edge - right();
 130 setWidth(std::max(0, width() + delta));
 131 }
 132 void shiftTopEdgeTo(int edge)
 133 {
 134 int delta = edge - y();
 135 setY(edge);
 136 setHeight(std::max(0, height() - delta));
 137 }
 138 void shiftBottomEdgeTo(int edge)
 139 {
 140 int delta = edge - bottom();
 141 setHeight(std::max(0, height() + delta));
 142 }
120143
121144 bool intersects(const IntRect&) const;
122145 bool contains(const IntRect&) const;
73334

WebCore/rendering/InlineBox.h

@@public:
233233 int width() const { return isHorizontal() ? logicalWidth() : logicalHeight(); }
234234 int height() const { return isHorizontal() ? logicalHeight() : logicalWidth(); }
235235
 236 IntRect frameRect() const { return IntRect(x(), y(), width(), height()); }
 237
236238 // The logicalLeft position is the left edge of the line box in a horizontal line and the top edge in a vertical line.
237239 int logicalLeft() const { return isHorizontal() ? m_x : m_y; }
238240 int logicalRight() const { return logicalLeft() + logicalWidth(); }

@@public:
265267 virtual int baselinePosition(FontBaseline baselineType) const { return boxModelObject()->baselinePosition(baselineType, m_firstLine, isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine); }
266268 virtual int lineHeight() const { return boxModelObject()->lineHeight(m_firstLine, isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine); }
267269
268 
269270 virtual int caretMinOffset() const;
270271 virtual int caretMaxOffset() const;
271272 virtual unsigned caretMaxRenderedOffset() const;
73334

WebCore/rendering/InlineFlowBox.cpp

@@int InlineFlowBox::placeBoxesInInlineDir
259259{
260260 // Set our x position.
261261 setLogicalLeft(logicalLeft);
262 
263  int logicalLeftLayoutOverflow = logicalLeft;
264  int logicalRightLayoutOverflow = logicalLeft;
265  int logicalLeftVisualOverflow = logicalLeft;
266  int logicalRightVisualOverflow = logicalLeft;
267 
268  int boxShadowLogicalLeft;
269  int boxShadowLogicalRight;
270  renderer()->style(m_firstLine)->getBoxShadowInlineDirectionExtent(boxShadowLogicalLeft, boxShadowLogicalRight);
271 
272  logicalLeftVisualOverflow = min(logicalLeft + boxShadowLogicalLeft, logicalLeftVisualOverflow);
273 
 262
274263 int startLogicalLeft = logicalLeft;
275264 logicalLeft += borderLogicalLeft() + paddingLogicalLeft();
276265

@@int InlineFlowBox::placeBoxesInInlineDir
284273 needsWordSpacing = !isSpaceOrNewline(rt->characters()[text->end()]);
285274 }
286275 text->setLogicalLeft(logicalLeft);
287 
288  int strokeOverflow = static_cast<int>(ceilf(rt->style()->textStrokeWidth() / 2.0f));
289 
290  // If letter-spacing is negative, we should factor that into right layout overflow. (Even in RTL, letter-spacing is
291  // applied to the right, so this is not an issue with left overflow.
292  int letterSpacing = min(0, (int)rt->style(m_firstLine)->font().letterSpacing());
293  logicalRightLayoutOverflow = max(logicalLeft + text->logicalWidth() - letterSpacing, logicalRightLayoutOverflow);
294 
295  GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(static_cast<InlineTextBox*>(curr));
296  GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? 0 : &it->second.second;
297 
298  int logicalLeftGlyphOverflow = -strokeOverflow - (glyphOverflow ? glyphOverflow->left : 0);
299  int logicalRightGlyphOverflow = strokeOverflow - letterSpacing + (glyphOverflow ? glyphOverflow->right : 0);
300 
301  int childOverflowLogicalLeft = logicalLeftGlyphOverflow;
302  int childOverflowLogicalRight = logicalRightGlyphOverflow;
303  int textShadowLogicalLeft;
304  int textShadowLogicalRight;
305  rt->style(m_firstLine)->getTextShadowInlineDirectionExtent(textShadowLogicalLeft, textShadowLogicalRight);
306  childOverflowLogicalLeft = min(childOverflowLogicalLeft, textShadowLogicalLeft + logicalLeftGlyphOverflow);
307  childOverflowLogicalRight = max(childOverflowLogicalRight, textShadowLogicalRight + logicalRightGlyphOverflow);
308  logicalLeftVisualOverflow = min(logicalLeft + childOverflowLogicalLeft, logicalLeftVisualOverflow);
309  logicalRightVisualOverflow = max(logicalLeft + text->logicalWidth() + childOverflowLogicalRight, logicalRightVisualOverflow);
310 
311276 logicalLeft += text->logicalWidth();
312277 } else {
313278 if (curr->renderer()->isPositioned()) {

@@int InlineFlowBox::placeBoxesInInlineDir
325290 logicalLeft += flow->marginLogicalLeft();
326291 logicalLeft = flow->placeBoxesInInlineDirection(logicalLeft, needsWordSpacing, textBoxDataMap);
327292 logicalLeft += flow->marginLogicalRight();
328  logicalLeftLayoutOverflow = min(logicalLeftLayoutOverflow, flow->logicalLeftLayoutOverflow());
329  logicalRightLayoutOverflow = max(logicalRightLayoutOverflow, flow->logicalRightLayoutOverflow());
330  logicalLeftVisualOverflow = min(logicalLeftVisualOverflow, flow->logicalLeftVisualOverflow());
331  logicalRightVisualOverflow = max(logicalRightVisualOverflow, flow->logicalRightVisualOverflow());
332293 } else if (!curr->renderer()->isListMarker() || toRenderListMarker(curr->renderer())->isInside()) {
333294 // The box can have a different writing-mode than the overall line, so this is a bit complicated.
334295 // Just get all the physical margin and overflow values by hand based off |isVertical|.

@@int InlineFlowBox::placeBoxesInInlineDir
337298
338299 logicalLeft += logicalLeftMargin;
339300 curr->setLogicalLeft(logicalLeft);
340 
341  RenderBox* box = toRenderBox(curr->renderer());
342 
343  int childOverflowLogicalLeft = box->hasOverflowClip() ? 0 : (isHorizontal() ? box->leftLayoutOverflow() : box->topLayoutOverflow());
344  int childOverflowLogicalRight = box->hasOverflowClip() ? curr->logicalWidth() : (isHorizontal() ? box->rightLayoutOverflow() : box->bottomLayoutOverflow());
345 
346  logicalLeftLayoutOverflow = min(logicalLeft + childOverflowLogicalLeft, logicalLeftLayoutOverflow);
347  logicalRightLayoutOverflow = max(logicalLeft + childOverflowLogicalRight, logicalRightLayoutOverflow);
348 
349  logicalLeftVisualOverflow = min(logicalLeft + (isHorizontal() ? box->leftVisualOverflow() : box->topVisualOverflow()), logicalLeftVisualOverflow);
350  logicalRightVisualOverflow = max(logicalLeft + (isHorizontal() ? box->rightVisualOverflow() : box->bottomVisualOverflow()), logicalRightVisualOverflow);
351 
352301 logicalLeft += curr->logicalWidth() + logicalRightMargin;
353302 }
354303 }

@@int InlineFlowBox::placeBoxesInInlineDir
356305
357306 logicalLeft += borderLogicalRight() + paddingLogicalRight();
358307 setLogicalWidth(logicalLeft - startLogicalLeft);
359  logicalRightVisualOverflow = max(logicalLeft + boxShadowLogicalRight, logicalRightVisualOverflow);
360  logicalRightLayoutOverflow = max(logicalLeft, logicalRightLayoutOverflow);
361 
362  setInlineDirectionOverflowPositions(logicalLeftLayoutOverflow, logicalRightLayoutOverflow, logicalLeftVisualOverflow, logicalRightVisualOverflow);
363308 return logicalLeft;
364309}
365310

@@void InlineFlowBox::flipLinesInBlockDire
743688 }
744689}
745690
746 void InlineFlowBox::computeBlockDirectionOverflow(int lineTop, int lineBottom, bool strictMode, GlyphOverflowAndFallbackFontsMap& textBoxDataMap)
 691void InlineFlowBox::addBoxShadowVisualOverflow(IntRect& logicalVisualOverflow)
747692{
 693 if (!parent())
 694 return; // Box-shadow doesn't apply to root line boxes.
 695
 696 int boxShadowLogicalTop;
 697 int boxShadowLogicalBottom;
 698 renderer()->style(m_firstLine)->getBoxShadowBlockDirectionExtent(boxShadowLogicalTop, boxShadowLogicalBottom);
 699
 700 int logicalTopVisualOverflow = min(logicalTop() + boxShadowLogicalTop, logicalVisualOverflow.y());
 701 int logicalBottomVisualOverflow = max(logicalBottom() + boxShadowLogicalBottom, logicalVisualOverflow.bottom());
 702
 703 int boxShadowLogicalLeft;
 704 int boxShadowLogicalRight;
 705 renderer()->style(m_firstLine)->getBoxShadowInlineDirectionExtent(boxShadowLogicalLeft, boxShadowLogicalRight);
 706
 707 int logicalLeftVisualOverflow = min(logicalLeft() + boxShadowLogicalLeft, logicalVisualOverflow.x());
 708 int logicalRightVisualOverflow = max(logicalRight() + boxShadowLogicalRight, logicalVisualOverflow.right());
 709
 710 logicalVisualOverflow = IntRect(logicalLeftVisualOverflow, logicalTopVisualOverflow,
 711 logicalRightVisualOverflow - logicalLeftVisualOverflow, logicalBottomVisualOverflow - logicalTopVisualOverflow);
 712}
 713
 714void InlineFlowBox::addTextBoxVisualOverflow(const InlineTextBox* textBox, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, IntRect& logicalVisualOverflow)
 715{
 716 int strokeOverflow = static_cast<int>(ceilf(renderer()->style()->textStrokeWidth() / 2.0f));
 717
 718 GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(textBox);
 719 GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? 0 : &it->second.second;
 720
748721 bool isFlippedLine = renderer()->style(m_firstLine)->isFlippedLinesWritingMode();
749722
750  int boxHeight = logicalHeight();
 723 int topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->bottom : glyphOverflow->top) : 0;
 724 int bottomGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->top : glyphOverflow->bottom) : 0;
 725 int leftGlyphEdge = glyphOverflow ? glyphOverflow->left : 0;
 726 int rightGlyphEdge = glyphOverflow ? glyphOverflow->right : 0;
 727
 728 int topGlyphOverflow = -strokeOverflow - topGlyphEdge;
 729 int bottomGlyphOverflow = strokeOverflow + bottomGlyphEdge;
 730 int leftGlyphOverflow = -strokeOverflow - leftGlyphEdge;
 731 int rightGlyphOverflow = strokeOverflow + rightGlyphEdge;
 732
 733 // If letter-spacing is negative, we should factor that into right layout overflow. (Even in RTL, letter-spacing is
 734 // applied to the right, so this is not an issue with left overflow.
 735 int letterSpacing = min(0, (int)renderer()->style(m_firstLine)->font().letterSpacing());
 736 rightGlyphOverflow -= letterSpacing;
 737
 738 int textShadowLogicalTop;
 739 int textShadowLogicalBottom;
 740 renderer()->style(m_firstLine)->getTextShadowBlockDirectionExtent(textShadowLogicalTop, textShadowLogicalBottom);
 741
 742 int childOverflowLogicalTop = min(textShadowLogicalTop + topGlyphOverflow, topGlyphOverflow);
 743 int childOverflowLogicalBottom = max(textShadowLogicalBottom + bottomGlyphOverflow, bottomGlyphOverflow);
 744
 745 int textShadowLogicalLeft;
 746 int textShadowLogicalRight;
 747 renderer()->style(m_firstLine)->getTextShadowInlineDirectionExtent(textShadowLogicalLeft, textShadowLogicalRight);
 748
 749 int childOverflowLogicalLeft = min(textShadowLogicalLeft + leftGlyphOverflow, leftGlyphOverflow);
 750 int childOverflowLogicalRight = max(textShadowLogicalRight + rightGlyphOverflow, rightGlyphOverflow);
 751
 752 int logicalTopVisualOverflow = min(textBox->logicalTop() + childOverflowLogicalTop, logicalVisualOverflow.y());
 753 int logicalBottomVisualOverflow = max(textBox->logicalBottom() + childOverflowLogicalBottom, logicalVisualOverflow.bottom());
 754 int logicalLeftVisualOverflow = min(textBox->logicalLeft() + childOverflowLogicalLeft, logicalVisualOverflow.x());
 755 int logicalRightVisualOverflow = max(textBox->logicalRight() + childOverflowLogicalRight, logicalVisualOverflow.right());
 756
 757 logicalVisualOverflow = IntRect(logicalLeftVisualOverflow, logicalTopVisualOverflow,
 758 logicalRightVisualOverflow - logicalLeftVisualOverflow, logicalBottomVisualOverflow - logicalTopVisualOverflow);
 759}
 760
 761void InlineFlowBox::addReplacedChildOverflow(const InlineBox* inlineBox, IntRect& logicalLayoutOverflow, IntRect& logicalVisualOverflow)
 762{
 763 RenderBox* box = toRenderBox(inlineBox->renderer());
 764
 765 // Visual overflow only propagates if the box doesn't have a self-painting layer. This rectangle does not include
 766 // transforms or relative positioning (since those objects always have self-painting layers), but it does need to be adjusted
 767 // for writing-mode differences.
 768 if (!box->hasSelfPaintingLayer()) {
 769 IntRect childLogicalVisualOverflow = box->logicalVisualOverflowRectForPropagation(renderer()->style());
 770 childLogicalVisualOverflow.move(inlineBox->logicalLeft(), inlineBox->logicalTop());
 771 logicalVisualOverflow.unite(childLogicalVisualOverflow);
 772 }
 773
 774 // Layout overflow internal to the child box only propagates if the child box doesn't have overflow clip set.
 775 // Otherwise the child border box propagates as layout overflow. This rectangle must include transforms and relative positioning
 776 // and be adjusted for writing-mode differences.
 777 IntRect childLogicalLayoutOverflow = box->logicalLayoutOverflowRectForPropagation(renderer()->style());
 778 childLogicalLayoutOverflow.move(inlineBox->logicalLeft(), inlineBox->logicalTop());
 779 logicalLayoutOverflow.unite(childLogicalLayoutOverflow);
 780}
751781
 782void InlineFlowBox::computeOverflow(int lineTop, int lineBottom, bool strictMode, GlyphOverflowAndFallbackFontsMap& textBoxDataMap)
 783{
752784 // Any spillage outside of the line top and bottom is not considered overflow. We just ignore this, since it only happens
753785 // from the "your ascent/descent don't affect the line" quirk.
754786 int topOverflow = max(logicalTop(), lineTop);
755  int bottomOverflow = min(logicalTop() + boxHeight, lineBottom);
756 
757  int topLayoutOverflow = topOverflow;
758  int bottomLayoutOverflow = bottomOverflow;
 787 int bottomOverflow = min(logicalBottom(), lineBottom);
759788
760  int topVisualOverflow = topOverflow;
761  int bottomVisualOverflow = bottomOverflow;
 789 // Visual overflow just includes overflow for stuff we need to repaint ourselves. Self-painting layers are ignored.
 790 // Layout overflow is used to determine scrolling extent, so it still includes child layers and also factors in
 791 // transforms, relative positioning, etc.
 792 IntRect logicalLayoutOverflow(logicalLeft(), topOverflow, logicalWidth(), bottomOverflow - topOverflow);
 793 IntRect logicalVisualOverflow(logicalLayoutOverflow);
762794
763795 // box-shadow on root line boxes is applying to the block and not to the lines.
764  if (parent()) {
765  int boxShadowTop;
766  int boxShadowBottom;
767  renderer()->style(m_firstLine)->getBoxShadowBlockDirectionExtent(boxShadowTop, boxShadowBottom);
768 
769  topVisualOverflow = min(logicalTop() + boxShadowTop, topVisualOverflow);
770  bottomVisualOverflow = max(logicalTop() + boxHeight + boxShadowBottom, bottomVisualOverflow);
771  }
 796 addBoxShadowVisualOverflow(logicalVisualOverflow);
772797
773798 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
774799 if (curr->renderer()->isPositioned())

@@void InlineFlowBox::computeBlockDirectio
779804 RenderText* rt = toRenderText(text->renderer());
780805 if (rt->isBR())
781806 continue;
 807 addTextBoxVisualOverflow(text, textBoxDataMap, logicalVisualOverflow);
 808 } else if (curr->renderer()->isRenderInline()) {
 809 InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
 810 flow->computeOverflow(lineTop, lineBottom, strictMode, textBoxDataMap);
 811 if (!flow->boxModelObject()->hasSelfPaintingLayer())
 812 logicalVisualOverflow.unite(flow->logicalVisualOverflowRect());
 813 IntRect childLayoutOverflow = flow->logicalLayoutOverflowRect();
 814 childLayoutOverflow.move(flow->boxModelObject()->relativePositionLogicalOffset());
 815 logicalLayoutOverflow.unite(childLayoutOverflow);
 816 } else
 817 addReplacedChildOverflow(curr, logicalLayoutOverflow, logicalVisualOverflow);
 818 }
 819
 820 setOverflowFromLogicalRects(logicalLayoutOverflow, logicalVisualOverflow);
 821}
782822
783  int strokeOverflow = static_cast<int>(ceilf(rt->style()->textStrokeWidth() / 2.0f));
784 
785  GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(static_cast<InlineTextBox*>(curr));
786  GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? 0 : &it->second.second;
787 
788  int topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->bottom : glyphOverflow->top) : 0;
789  int bottomGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->top : glyphOverflow->bottom) : 0;
790 
791  int topGlyphOverflow = -strokeOverflow - topGlyphEdge;
792  int bottomGlyphOverflow = strokeOverflow + bottomGlyphEdge;
 823// FIXME: You will notice there is no contains() check here. If the rect is smaller than the frame box it actually
 824// becomes the new overflow. The reason for this is that in quirks mode we don't let inline flow boxes paint
 825// outside of the root line box's lineTop and lineBottom values. We accomplish this visual clamping by actually
 826// insetting the overflow rect so that it's smaller than the frame rect.
 827//
 828// The reason we don't just mutate the frameRect in quirks mode is that we'd have to put the m_height member variable
 829// back into InlineBox. Basically the tradeoff is 4 bytes in all modes (for m_height) added to InlineFlowBox, or
 830// the allocation of a RenderOverflow struct for InlineFlowBoxes in quirks mode only. For now, we're opting to award
 831// the smaller memory consumption to strict mode pages.
 832//
 833// It might be possible to hash a custom height, or to require that lineTop and lineBottom be passed in to
 834// all functions that query overflow.
 835void InlineFlowBox::setLayoutOverflow(const IntRect& rect)
 836{
 837 IntRect frameBox = frameRect();
 838 if (frameBox == rect || rect.isEmpty())
 839 return;
 840
 841 if (!m_overflow)
 842 m_overflow.set(new RenderOverflow(frameBox, frameBox));
 843
 844 m_overflow->setLayoutOverflow(rect);
 845}
793846
794  int textShadowTop;
795  int textShadowBottom;
796  curr->renderer()->style(m_firstLine)->getTextShadowBlockDirectionExtent(textShadowTop, textShadowBottom);
 847void InlineFlowBox::setVisualOverflow(const IntRect& rect)
 848{
 849 IntRect frameBox = frameRect();
 850 if (frameBox == rect || rect.isEmpty())
 851 return;
797852
798  int childOverflowTop = min(textShadowTop + topGlyphOverflow, topGlyphOverflow);
799  int childOverflowBottom = max(textShadowBottom + bottomGlyphOverflow, bottomGlyphOverflow);
 853 if (!m_overflow)
 854 m_overflow.set(new RenderOverflow(frameBox, frameBox));
800855
801  topVisualOverflow = min(curr->logicalTop() + childOverflowTop, topVisualOverflow);
802  bottomVisualOverflow = max(curr->logicalTop() + text->logicalHeight() + childOverflowBottom, bottomVisualOverflow);
803  } else if (curr->renderer()->isRenderInline()) {
804  InlineFlowBox* flow = static_cast<InlineFlowBox*>(curr);
805  flow->computeBlockDirectionOverflow(lineTop, lineBottom, strictMode, textBoxDataMap);
806  topLayoutOverflow = min(topLayoutOverflow, flow->logicalTopLayoutOverflow());
807  bottomLayoutOverflow = max(bottomLayoutOverflow, flow->logicalBottomLayoutOverflow());
808  topVisualOverflow = min(topVisualOverflow, flow->logicalTopVisualOverflow());
809  bottomVisualOverflow = max(bottomVisualOverflow, flow->logicalBottomVisualOverflow());
810  } else if (!curr->boxModelObject()->hasSelfPaintingLayer()){
811  // Only include overflow from replaced inlines if they do not paint themselves.
812  int boxLogicalTop = curr->logicalTop();
813  int childTopLayoutOverflow;
814  int childBottomLayoutOverflow;
815  int childTopVisualOverflow;
816  int childBottomVisualOverflow;
817 
818  RenderBox* box = toRenderBox(curr->renderer());
819  box->blockDirectionOverflow(isHorizontal(), childTopLayoutOverflow, childBottomLayoutOverflow,
820  childTopVisualOverflow, childBottomVisualOverflow);
821 
822  if (box->hasOverflowClip()) {
823  childTopLayoutOverflow = 0;
824  childBottomLayoutOverflow = curr->logicalHeight();
825  }
 856 m_overflow->setVisualOverflow(rect);
 857}
826858
827  topLayoutOverflow = min(boxLogicalTop + childTopLayoutOverflow, topLayoutOverflow);
828  bottomLayoutOverflow = max(boxLogicalTop + childBottomLayoutOverflow, bottomLayoutOverflow);
829  topVisualOverflow = min(boxLogicalTop + childTopVisualOverflow, topVisualOverflow);
830  bottomVisualOverflow = max(boxLogicalTop + childBottomVisualOverflow, bottomVisualOverflow);
831  }
832  }
 859void InlineFlowBox::setOverflowFromLogicalRects(const IntRect& logicalLayoutOverflow, const IntRect& logicalVisualOverflow)
 860{
 861 IntRect layoutOverflow(isHorizontal() ? logicalLayoutOverflow : logicalLayoutOverflow.transposedRect());
 862 setLayoutOverflow(layoutOverflow);
833863
834  setBlockDirectionOverflowPositions(topLayoutOverflow, bottomLayoutOverflow, topVisualOverflow, bottomVisualOverflow);
 864 IntRect visualOverflow(isHorizontal() ? logicalVisualOverflow : logicalVisualOverflow.transposedRect());
 865 setVisualOverflow(visualOverflow);
835866}
836867
837868bool InlineFlowBox::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int x, int y, int tx, int ty)
838869{
839  IntRect overflowRect(visibleOverflowRect());
 870 IntRect overflowRect(visualOverflowRect());
840871 flipForWritingMode(overflowRect);
841872 overflowRect.move(tx, ty);
842873 if (!overflowRect.intersects(result.rectForPoint(x, y)))

@@bool InlineFlowBox::nodeAtPoint(const Hi
865896
866897void InlineFlowBox::paint(PaintInfo& paintInfo, int tx, int ty)
867898{
868  IntRect overflowRect(visibleOverflowRect());
 899 IntRect overflowRect(visualOverflowRect());
869900 overflowRect.inflate(renderer()->maximalOutlineSize(paintInfo.phase));
870901 flipForWritingMode(overflowRect);
871902 overflowRect.move(tx, ty);
73334

WebCore/rendering/InlineFlowBox.h

@@public:
163163 void placeBoxesInBlockDirection(int logicalTop, int maxHeight, int maxAscent, bool strictMode, int& lineTop, int& lineBottom, bool& setLineTop,
164164 int& lineTopIncludingMargins, int& lineBottomIncludingMargins, bool& containsRuby, FontBaseline);
165165 void flipLinesInBlockDirection(int lineTop, int lineBottom);
166  void computeBlockDirectionOverflow(int lineTop, int lineBottom, bool strictMode, GlyphOverflowAndFallbackFontsMap&);
167166 bool requiresIdeographicBaseline(const GlyphOverflowAndFallbackFontsMap&) const;
168167 int computeBlockDirectionRubyAdjustment(int allowedPosition) const;
169168
 169 void computeOverflow(int lineTop, int lineBottom, bool strictMode, GlyphOverflowAndFallbackFontsMap&);
 170
170171 void removeChild(InlineBox* child);
171172
172173 virtual RenderObject::SelectionState selectionState();

@@public:
183184 // top/right/bottom/left in the code - these aren't purely physical directions. For horizontal-tb and vertical-lr they will match physical
184185 // directions, but for horizontal-bt and vertical-rl, the top/bottom and left/right respectively are inverted when compared to
185186 // their physical counterparts.
186  int topVisibleOverflow() const { return std::min(topLayoutOverflow(), topVisualOverflow()); }
187  int bottomVisibleOverflow() const { return std::max(bottomLayoutOverflow(), bottomVisualOverflow()); }
188  int leftVisibleOverflow() const { return std::min(leftLayoutOverflow(), leftVisualOverflow()); }
189  int rightVisibleOverflow() const { return std::max(rightLayoutOverflow(), rightVisualOverflow()); }
190  int logicalLeftVisibleOverflow() const { return std::min(logicalLeftLayoutOverflow(), logicalLeftVisualOverflow()); }
191  int logicalRightVisibleOverflow() const { return std::max(logicalRightLayoutOverflow(), logicalRightVisualOverflow()); }
192  int logicalTopVisibleOverflow() const { return std::min(logicalTopLayoutOverflow(), logicalTopVisualOverflow()); }
193  int logicalBottomVisibleOverflow() const { return std::max(logicalBottomLayoutOverflow(), logicalBottomVisualOverflow()); }
194 
195  IntRect visibleOverflowRect() const { return m_overflow ? m_overflow->visibleOverflowRect() : IntRect(m_x, m_y, width(), height()); }
196 
197187 int topLayoutOverflow() const { return m_overflow ? m_overflow->topLayoutOverflow() : m_y; }
198188 int bottomLayoutOverflow() const { return m_overflow ? m_overflow->bottomLayoutOverflow() : m_y + height(); }
199189 int leftLayoutOverflow() const { return m_overflow ? m_overflow->leftLayoutOverflow() : m_x; }

@@public:
203193 int logicalRightLayoutOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? rightLayoutOverflow() : bottomLayoutOverflow(); }
204194 int logicalTopLayoutOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? topVisualOverflow() : leftVisualOverflow(); }
205195 int logicalBottomLayoutOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? bottomLayoutOverflow() : rightLayoutOverflow(); }
 196 IntRect logicalLayoutOverflowRect() const
 197 {
 198 IntRect result = layoutOverflowRect();
 199 if (!renderer()->style()->isHorizontalWritingMode())
 200 result = result.transposedRect();
 201 return result;
 202 }
206203
207204 int topVisualOverflow() const { return m_overflow ? m_overflow->topVisualOverflow() : m_y; }
208205 int bottomVisualOverflow() const { return m_overflow ? m_overflow->bottomVisualOverflow() : m_y + height(); }

@@public:
213210 int logicalRightVisualOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? rightVisualOverflow() : bottomVisualOverflow(); }
214211 int logicalTopVisualOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? topVisualOverflow() : leftVisualOverflow(); }
215212 int logicalBottomVisualOverflow() const { return renderer()->style()->isHorizontalWritingMode() ? bottomVisualOverflow() : rightVisualOverflow(); }
 213 IntRect logicalVisualOverflowRect() const
 214 {
 215 IntRect result = visualOverflowRect();
 216 if (!renderer()->style()->isHorizontalWritingMode())
 217 result = result.transposedRect();
 218 return result;
 219 }
216220
217  void setInlineDirectionOverflowPositions(int logicalLeftLayoutOverflow, int logicalRightLayoutOverflow,
218  int logicalLeftVisualOverflow, int logicalRightVisualOverflow);
219  void setBlockDirectionOverflowPositions(int logicalTopLayoutOverflow, int logicalBottomLayoutOverflow,
220  int logicalTopVisualOverflow, int logicalBottomVisualOverflow);
 221 void setOverflowFromLogicalRects(const IntRect& logicalLayoutOverflow, const IntRect& logicalVisualOverflow);
 222 void setLayoutOverflow(const IntRect&);
 223 void setVisualOverflow(const IntRect&);
 224
 225private:
 226 void addBoxShadowVisualOverflow(IntRect& logicalVisualOverflow);
 227 void addTextBoxVisualOverflow(const InlineTextBox*, GlyphOverflowAndFallbackFontsMap&, IntRect& logicalVisualOverflow);
 228 void addReplacedChildOverflow(const InlineBox*, IntRect& logicalLayoutOverflow, IntRect& logicalVisualOverflow);
221229
222230protected:
223231 OwnPtr<RenderOverflow> m_overflow;

@@protected:
239247#endif
240248};
241249
242 inline void InlineFlowBox::setInlineDirectionOverflowPositions(int logicalLeftLayoutOverflow, int logicalRightLayoutOverflow,
243  int logicalLeftVisualOverflow, int logicalRightVisualOverflow)
244 {
245  if (!m_overflow) {
246  if (logicalLeftLayoutOverflow == logicalLeft() && logicalRightLayoutOverflow == logicalRight()
247  && logicalLeftVisualOverflow == logicalLeft() && logicalRightVisualOverflow == logicalRight())
248  return;
249  m_overflow = adoptPtr(new RenderOverflow(IntRect(m_x, m_y, width(), height())));
250  }
251 
252  if (isHorizontal()) {
253  m_overflow->setLeftLayoutOverflow(logicalLeftLayoutOverflow);
254  m_overflow->setRightLayoutOverflow(logicalRightLayoutOverflow);
255  m_overflow->setLeftVisualOverflow(logicalLeftVisualOverflow);
256  m_overflow->setRightVisualOverflow(logicalRightVisualOverflow);
257  } else {
258  m_overflow->setTopLayoutOverflow(logicalLeftLayoutOverflow);
259  m_overflow->setBottomLayoutOverflow(logicalRightLayoutOverflow);
260  m_overflow->setTopVisualOverflow(logicalLeftVisualOverflow);
261  m_overflow->setBottomVisualOverflow(logicalRightVisualOverflow);
262  }
263 }
264 
265 inline void InlineFlowBox::setBlockDirectionOverflowPositions(int logicalTopLayoutOverflow, int logicalBottomLayoutOverflow,
266  int logicalTopVisualOverflow, int logicalBottomVisualOverflow)
267 {
268  if (!m_overflow) {
269  if (logicalTopLayoutOverflow == logicalTop() && logicalBottomLayoutOverflow == logicalBottom()
270  && logicalTopVisualOverflow == logicalTop() && logicalBottomVisualOverflow == logicalBottom())
271  return;
272  m_overflow = adoptPtr(new RenderOverflow(IntRect(m_x, m_y, width(), height())));
273  }
274 
275  if (isHorizontal()) {
276  m_overflow->setTopLayoutOverflow(logicalTopLayoutOverflow);
277  m_overflow->setBottomLayoutOverflow(logicalBottomLayoutOverflow);
278  m_overflow->setTopVisualOverflow(logicalTopVisualOverflow);
279  m_overflow->setBottomVisualOverflow(logicalBottomVisualOverflow);
280  } else {
281  m_overflow->setLeftLayoutOverflow(logicalTopLayoutOverflow);
282  m_overflow->setRightLayoutOverflow(logicalBottomLayoutOverflow);
283  m_overflow->setLeftVisualOverflow(logicalTopVisualOverflow);
284  m_overflow->setRightVisualOverflow(logicalBottomVisualOverflow);
285  }
286 }
287 
288250#ifdef NDEBUG
289251inline void InlineFlowBox::checkConsistency() const
290252{
73334

WebCore/rendering/RenderBlock.cpp

@@void RenderBlock::layoutBlock(bool relay
12171217
12181218 // Calculate our new height.
12191219 int oldHeight = logicalHeight();
 1220 int oldClientAfterEdge = clientLogicalBottom();
12201221 computeLogicalHeight();
12211222 int newHeight = logicalHeight();
12221223 if (oldHeight != newHeight) {

@@void RenderBlock::layoutBlock(bool relay
12351236 if (previousHeight != newHeight)
12361237 relayoutChildren = true;
12371238
1238  // Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway).
1239  if (!hasColumns()) {
1240  // This check is designed to catch anyone
1241  // who wasn't going to propagate float information up to the parent and yet could potentially be painted by its ancestor.
1242  if (isRoot() || expandsToEncloseOverhangingFloats())
1243  addOverflowFromFloats();
1244 
1245  if (childrenInline())
1246  addOverflowFromInlineChildren();
1247  else
1248  addOverflowFromBlockChildren();
1249  }
1250 
1251  // Add visual overflow from box-shadow and reflections.
1252  addShadowOverflow();
1253 
12541239 layoutPositionedObjects(relayoutChildren || isRoot());
12551240
1256  positionListMarker();
 1241 // Add overflow from children (unless we're multi-column, since in that case all our child overflow is clipped anyway).
 1242 computeOverflow(oldClientAfterEdge);
12571243
12581244 statePusher.pop();
12591245

@@void RenderBlock::layoutBlock(bool relay
12691255 // Repaint with our new bounds if they are different from our old bounds.
12701256 bool didFullRepaint = repainter.repaintAfterLayout();
12711257 if (!didFullRepaint && repaintLogicalTop != repaintLogicalBottom && (style()->visibility() == VISIBLE || enclosingLayer()->hasVisibleContent())) {
1272  int repaintLogicalLeft = min(logicalLeftVisualOverflow(), logicalLeftLayoutOverflow());
1273  int repaintLogicalRight = max(logicalRightVisualOverflow(), logicalRightLayoutOverflow());
 1258 // FIXME: We could tighten up the left and right invalidation points if we let layoutInlineChildren fill them in based off the particular lines
 1259 // it had to lay out. We wouldn't need the hasOverflowClip() hack in that case either.
 1260 int repaintLogicalLeft = logicalLeftVisualOverflow();
 1261 int repaintLogicalRight = logicalRightVisualOverflow();
 1262 if (hasOverflowClip()) {
 1263 // If we have clipped overflow, we should use layout overflow as well, since visual overflow from lines didn't propagate to our block's overflow.
 1264 // Note the old code did this as well but even for overflow:visible. The addition of hasOverflowClip() at least tightens up the hack a bit.
 1265 // layoutInlineChildren should be patched to compute the entire repaint rect.
 1266 repaintLogicalLeft = min(repaintLogicalLeft, logicalLeftLayoutOverflow());
 1267 repaintLogicalRight = max(repaintLogicalRight, logicalRightLayoutOverflow());
 1268 }
12741269
12751270 IntRect repaintRect;
12761271 if (style()->isHorizontalWritingMode())

@@void RenderBlock::layoutBlock(bool relay
13011296 setNeedsLayout(false);
13021297}
13031298
 1299void RenderBlock::addOverflowFromChildren()
 1300{
 1301 if (!hasColumns()) {
 1302 if (childrenInline())
 1303 addOverflowFromInlineChildren();
 1304 else
 1305 addOverflowFromBlockChildren();
 1306 } else {
 1307 ColumnInfo* colInfo = columnInfo();
 1308 if (columnCount(colInfo)) {
 1309 IntRect lastRect = columnRectAt(colInfo, columnCount(colInfo) - 1);
 1310 int overflowLeft = !style()->isLeftToRightDirection() ? min(0, lastRect.x()) : 0;
 1311 int overflowRight = style()->isLeftToRightDirection() ? max(width(), lastRect.x() + lastRect.width()) : 0;
 1312 int overflowHeight = borderTop() + paddingTop() + colInfo->columnHeight();
 1313 addLayoutOverflow(IntRect(overflowLeft, 0, overflowRight - overflowLeft, overflowHeight));
 1314 }
 1315 }
 1316}
 1317
 1318void RenderBlock::computeOverflow(int oldClientAfterEdge, bool recomputeFloats)
 1319{
 1320 // Add overflow from children.
 1321 addOverflowFromChildren();
 1322
 1323 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhangingFloats() || hasSelfPaintingLayer()))
 1324 addOverflowFromFloats();
 1325
 1326 // Add in the overflow from positioned objects.
 1327 addOverflowFromPositionedObjects();
 1328
 1329 if (hasOverflowClip()) {
 1330 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins
 1331 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always
 1332 // be considered reachable.
 1333 IntRect clientRect(clientBoxRect());
 1334 IntRect rectToApply;
 1335 if (style()->isHorizontalWritingMode())
 1336 rectToApply = IntRect(clientRect.x(), clientRect.y(), 1, max(0, oldClientAfterEdge - clientRect.y()));
 1337 else
 1338 rectToApply = IntRect(clientRect.x(), clientRect.y(), max(0, oldClientAfterEdge - clientRect.x()), 1);
 1339 addLayoutOverflow(rectToApply);
 1340 }
 1341
 1342 // Add visual overflow from box-shadow and reflections.
 1343 addShadowOverflow();
 1344}
 1345
13041346void RenderBlock::addOverflowFromBlockChildren()
13051347{
13061348 for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {

@@void RenderBlock::addOverflowFromFloats(
13171359 FloatingObject* r;
13181360 DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects);
13191361 for (; (r = it.current()); ++it) {
1320  if (r->m_shouldPaint && !r->m_renderer->hasSelfPaintingLayer())
 1362 if (r->m_isDescendant)
13211363 addOverflowFromChild(r->m_renderer, IntSize(r->left() + r->m_renderer->marginLeft(), r->top() + r->m_renderer->marginTop()));
13221364 }
13231365 return;
13241366}
13251367
 1368void RenderBlock::addOverflowFromPositionedObjects()
 1369{
 1370 if (!m_positionedObjects)
 1371 return;
 1372
 1373 RenderBox* positionedObject;
 1374 Iterator end = m_positionedObjects->end();
 1375 for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
 1376 positionedObject = *it;
 1377
 1378 // Fixed positioned elements don't contribute to layout overflow, since they don't scroll with the content.
 1379 if (positionedObject->style()->position() != FixedPosition)
 1380 addOverflowFromChild(positionedObject);
 1381 }
 1382}
 1383
13261384bool RenderBlock::expandsToEncloseOverhangingFloats() const
13271385{
13281386 return isInlineBlockOrInlineTable() || isFloatingOrPositioned() || hasOverflowClip() || (parent() && parent()->isFlexibleBox())

@@bool RenderBlock::layoutOnlyPositionedOb
20052063 // All we have to is lay out our positioned objects.
20062064 layoutPositionedObjects(false);
20072065
 2066 // Recompute our overflow information.
 2067 // FIXME: We could do better here by computing a temporary overflow object from layoutPositionedObjects and only
 2068 // updating our overflow if we either used to have overflow or if the new temporary object has overflow.
 2069 // For now just always recompute overflow. This is no worse performance-wise than the old code that called rightmostPosition and
 2070 // lowestPosition on every relayout so it's not a regression.
 2071 m_overflow.clear();
 2072 computeOverflow(clientLogicalBottom(), true);
 2073
20082074 statePusher.pop();
20092075
20102076 updateLayerTransform();

@@bool RenderBlock::layoutOnlyPositionedOb
20172083
20182084void RenderBlock::layoutPositionedObjects(bool relayoutChildren)
20192085{
2020  if (m_positionedObjects) {
2021  if (hasColumns())
2022  view()->layoutState()->clearPaginationInformation(); // Positioned objects are not part of the column flow, so they don't paginate with the columns.
 2086 if (!m_positionedObjects)
 2087 return;
 2088
 2089 if (hasColumns())
 2090 view()->layoutState()->clearPaginationInformation(); // Positioned objects are not part of the column flow, so they don't paginate with the columns.
20232091
2024  RenderBox* r;
2025  Iterator end = m_positionedObjects->end();
2026  for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
2027  r = *it;
2028  // When a non-positioned block element moves, it may have positioned children that are implicitly positioned relative to the
2029  // non-positioned block. Rather than trying to detect all of these movement cases, we just always lay out positioned
2030  // objects that are positioned implicitly like this. Such objects are rare, and so in typical DHTML menu usage (where everything is
2031  // positioned explicitly) this should not incur a performance penalty.
2032  if (relayoutChildren || (r->style()->hasStaticY() && r->parent() != this && r->parent()->isBlockFlow()))
2033  r->setChildNeedsLayout(true, false);
2034 
2035  // If relayoutChildren is set and we have percentage padding, we also need to invalidate the child's pref widths.
2036  if (relayoutChildren && (r->style()->paddingStart().isPercent() || r->style()->paddingEnd().isPercent()))
2037  r->setPreferredLogicalWidthsDirty(true, false);
 2092 RenderBox* r;
 2093 Iterator end = m_positionedObjects->end();
 2094 for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
 2095 r = *it;
 2096 // When a non-positioned block element moves, it may have positioned children that are implicitly positioned relative to the
 2097 // non-positioned block. Rather than trying to detect all of these movement cases, we just always lay out positioned
 2098 // objects that are positioned implicitly like this. Such objects are rare, and so in typical DHTML menu usage (where everything is
 2099 // positioned explicitly) this should not incur a performance penalty.
 2100 if (relayoutChildren || (r->style()->hasStaticY() && r->parent() != this && r->parent()->isBlockFlow()))
 2101 r->setChildNeedsLayout(true, false);
20382102
2039  if (!r->needsLayout())
2040  r->markForPaginationRelayoutIfNeeded();
2041 
2042  // We don't have to do a full layout. We just have to update our position. Try that first. If we have shrink-to-fit width
2043  // and we hit the available width constraint, the layoutIfNeeded() will catch it and do a full layout.
2044  if (r->needsPositionedMovementLayoutOnly())
2045  r->tryLayoutDoingPositionedMovementOnly();
2046  r->layoutIfNeeded();
2047  }
2048 
2049  if (hasColumns())
2050  view()->layoutState()->m_columnInfo = columnInfo(); // FIXME: Kind of gross. We just put this back into the layout state so that pop() will work.
 2103 // If relayoutChildren is set and we have percentage padding, we also need to invalidate the child's pref widths.
 2104 if (relayoutChildren && (r->style()->paddingStart().isPercent() || r->style()->paddingEnd().isPercent()))
 2105 r->setPreferredLogicalWidthsDirty(true, false);
 2106
 2107 if (!r->needsLayout())
 2108 r->markForPaginationRelayoutIfNeeded();
 2109
 2110 // We don't have to do a full layout. We just have to update our position. Try that first. If we have shrink-to-fit width
 2111 // and we hit the available width constraint, the layoutIfNeeded() will catch it and do a full layout.
 2112 if (r->needsPositionedMovementLayoutOnly())
 2113 r->tryLayoutDoingPositionedMovementOnly();
 2114 r->layoutIfNeeded();
20512115 }
 2116
 2117 if (hasColumns())
 2118 view()->layoutState()->m_columnInfo = columnInfo(); // FIXME: Kind of gross. We just put this back into the layout state so that pop() will work.
20522119}
20532120
20542121void RenderBlock::markPositionedObjectsForLayout()

@@void RenderBlock::paint(PaintInfo& paint
21132180 // FIXME: Could eliminate the isRoot() check if we fix background painting so that the RenderView
21142181 // paints the root's background.
21152182 if (!isRoot()) {
2116  IntRect overflowBox = visibleOverflowRect();
 2183 IntRect overflowBox = visualOverflowRect();
21172184 overflowBox.inflate(maximalOutlineSize(paintInfo.phase));
21182185 overflowBox.move(tx, ty);
21192186 if (!overflowBox.intersects(paintInfo.rect))

@@int RenderBlock::lowestFloatLogicalBotto
33543421 return lowestFloatBottom;
33553422}
33563423
3357 int RenderBlock::topmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
3358 {
3359  IntRect transformedRect = transformedFrameRect();
3360  int transformedTop = includeSelf && transformedRect.width() > 0 ? 0 : transformedRect.height();
3361 
3362  if (!includeOverflowInterior && (hasOverflowClip() || hasControlClip()))
3363  return transformedTop;
3364 
3365  if (!firstChild() && (!transformedRect.width() || !transformedRect.height()))
3366  return transformedTop;
3367 
3368  int top = includeSelf && width() > 0 ? 0 : height();
3369 
3370  if (!hasColumns()) {
3371  // FIXME: Come up with a way to use the layer tree to avoid visiting all the kids.
3372  // For now, we have to descend into all the children, since we may have a huge abs div inside
3373  // a tiny rel div buried somewhere deep in our child tree. In this case we have to get to
3374  // the abs div.
3375  for (RenderObject* c = firstChild(); c; c = c->nextSibling()) {
3376  if (!c->isFloatingOrPositioned() && c->isBox()) {
3377  RenderBox* childBox = toRenderBox(c);
3378  top = min(top, childBox->transformedFrameRect().y() + childBox->topmostPosition(false));
3379  }
3380  }
3381  }
3382 
3383  if (includeSelf && isRelPositioned())
3384  top += relativePositionOffsetY();
3385 
3386  if (!includeOverflowInterior && hasOverflowClip())
3387  return top;
3388 
3389  int relativeOffset = includeSelf && isRelPositioned() ? relativePositionOffsetY() : 0;
3390 
3391  if (includeSelf)
3392  top = min(top, topLayoutOverflow() + relativeOffset);
3393 
3394  if (m_positionedObjects) {
3395  RenderBox* r;
3396  Iterator end = m_positionedObjects->end();
3397  for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
3398  r = *it;
3399  // Fixed positioned objects do not scroll and thus should not constitute
3400  // part of the topmost position.
3401  if (r->style()->position() != FixedPosition) {
3402  // FIXME: Should work for overflow sections too.
3403  // If a positioned object lies completely to the left of the root it will be unreachable via scrolling.
3404  // Therefore we should not allow it to contribute to the topmost position.
3405  IntRect transformedR = r->transformedFrameRect();
3406  if (!isRenderView() || transformedR.x() + transformedR.width() > 0 || transformedR.x() + r->rightmostPosition(false) > 0) {
3407  int tp = transformedR.y() + r->topmostPosition(false);
3408  top = min(top, tp + relativeOffset);
3409  }
3410  }
3411  }
3412  }
3413 
3414  if (hasColumns()) {
3415  ColumnInfo* colInfo = columnInfo();
3416  for (unsigned i = 0; i < columnCount(colInfo); i++)
3417  top = min(top, columnRectAt(colInfo, i).y() + relativeOffset);
3418  return top;
3419  }
3420 
3421  if (m_floatingObjects) {
3422  FloatingObject* r;
3423  DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects);
3424  for ( ; (r = it.current()); ++it) {
3425  if (r->m_shouldPaint || r->m_renderer->hasSelfPaintingLayer()) {
3426  int tp = r->top() + r->m_renderer->marginTop() + r->m_renderer->topmostPosition(false);
3427  top = min(top, tp + relativeOffset);
3428  }
3429  }
3430  }
3431 
3432  if (!includeSelf && firstRootBox())
3433  top = min(top, firstRootBox()->selectionTop() + relativeOffset);
3434 
3435  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
3436  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3437  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3438  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3439  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
3440  return transformRect.y();
3441  }
3442 
3443  return top;
3444 }
3445 
3446 int RenderBlock::lowestPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
3447 {
3448  IntRect transformedRect = transformedFrameRect();
3449  int transformedBottom = includeSelf && transformedRect.width() > 0 ? transformedRect.height() : 0;
3450 
3451  if (!includeOverflowInterior && (hasOverflowClip() || hasControlClip()))
3452  return transformedBottom;
3453 
3454  if (!firstChild() && (!transformedRect.width() || !transformedRect.height()))
3455  return transformedBottom;
3456 
3457  int bottom = includeSelf && width() > 0 ? height() : 0;
3458 
3459  if (!hasColumns()) {
3460  // FIXME: Come up with a way to use the layer tree to avoid visiting all the kids.
3461  // For now, we have to descend into all the children, since we may have a huge abs div inside
3462  // a tiny rel div buried somewhere deep in our child tree. In this case we have to get to
3463  // the abs div.
3464  // See the last test case in https://bugs.webkit.org/show_bug.cgi?id=9314 for why this is a problem.
3465  // For inline children, we miss relative positioned boxes that might be buried inside <span>s.
3466  for (RenderObject* c = firstChild(); c; c = c->nextSibling()) {
3467  if (!c->isFloatingOrPositioned() && c->isBox()) {
3468  RenderBox* childBox = toRenderBox(c);
3469  bottom = max(bottom, childBox->transformedFrameRect().y() + childBox->lowestPosition(false));
3470  }
3471  }
3472  }
3473 
3474  if (includeSelf && isRelPositioned())
3475  bottom += relativePositionOffsetY();
3476  if (!includeOverflowInterior && hasOverflowClip())
3477  return bottom;
3478 
3479  int relativeOffset = includeSelf && isRelPositioned() ? relativePositionOffsetY() : 0;
3480 
3481  if (includeSelf)
3482  bottom = max(bottom, bottomLayoutOverflow() + relativeOffset);
3483 
3484  if (m_positionedObjects) {
3485  RenderBox* r;
3486  Iterator end = m_positionedObjects->end();
3487  for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
3488  r = *it;
3489  // Fixed positioned objects do not scroll and thus should not constitute
3490  // part of the lowest position.
3491  if (r->style()->position() != FixedPosition) {
3492  // FIXME: Should work for overflow sections too.
3493  // If a positioned object lies completely to the left of the root it will be unreachable via scrolling.
3494  // Therefore we should not allow it to contribute to the lowest position.
3495  IntRect transformedR = r->transformedFrameRect();
3496  if (!isRenderView() || transformedR.x() + transformedR.width() > 0 || transformedR.x() + r->rightmostPosition(false) > 0) {
3497  int lp = transformedR.y() + r->lowestPosition(false);
3498  bottom = max(bottom, lp + relativeOffset);
3499  }
3500  }
3501  }
3502  }
3503 
3504  if (hasColumns()) {
3505  ColumnInfo* colInfo = columnInfo();
3506  for (unsigned i = 0; i < columnCount(colInfo); i++)
3507  bottom = max(bottom, columnRectAt(colInfo, i).bottom() + relativeOffset);
3508  return bottom;
3509  }
3510 
3511  if (m_floatingObjects) {
3512  FloatingObject* r;
3513  DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects);
3514  for ( ; (r = it.current()); ++it ) {
3515  if (r->m_shouldPaint || r->m_renderer->hasSelfPaintingLayer()) {
3516  int lp = r->top() + r->m_renderer->marginTop() + r->m_renderer->lowestPosition(false);
3517  bottom = max(bottom, lp + relativeOffset);
3518  }
3519  }
3520  }
3521 
3522  if (!includeSelf) {
3523  bottom = max(bottom, borderTop() + paddingTop() + paddingBottom() + relativeOffset);
3524  if (childrenInline()) {
3525  if (lastRootBox()) {
3526  int childBottomEdge = lastRootBox()->selectionBottom();
3527  bottom = max(bottom, childBottomEdge + paddingBottom() + relativeOffset);
3528  }
3529  } else {
3530  // Find the last normal flow child.
3531  RenderBox* currBox = lastChildBox();
3532  while (currBox && currBox->isFloatingOrPositioned())
3533  currBox = currBox->previousSiblingBox();
3534  if (currBox) {
3535  IntRect transformedCurrBox = currBox->transformedFrameRect();
3536  int childBottomEdge = transformedCurrBox.y() + transformedCurrBox.height() + currBox->collapsedMarginAfter(); // FIXME: "after" is wrong here for lowestPosition.
3537  bottom = max(bottom, childBottomEdge + paddingBottom() + relativeOffset);
3538  }
3539  }
3540  }
3541 
3542  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
3543  int top = topmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3544  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3545  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3546  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
3547  return transformRect.height();
3548  }
3549 
3550  return bottom;
3551 }
3552 
3553 int RenderBlock::rightmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
3554 {
3555  IntRect transformedRect = transformedFrameRect();
3556  int transformedRight = includeSelf && transformedRect.height() > 0 ? transformedRect.width() : 0;
3557 
3558  if (!includeOverflowInterior && (hasOverflowClip() || hasControlClip()))
3559  return transformedRight;
3560 
3561  if (!firstChild() && (!transformedRect.width() || !transformedRect.height()))
3562  return transformedRight;
3563 
3564  int right = includeSelf && height() > 0 ? width() : 0;
3565 
3566  if (!hasColumns()) {
3567  // FIXME: Come up with a way to use the layer tree to avoid visiting all the kids.
3568  // For now, we have to descend into all the children, since we may have a huge abs div inside
3569  // a tiny rel div buried somewhere deep in our child tree. In this case we have to get to
3570  // the abs div.
3571  for (RenderObject* c = firstChild(); c; c = c->nextSibling()) {
3572  if (!c->isFloatingOrPositioned() && c->isBox()) {
3573  RenderBox* childBox = toRenderBox(c);
3574  right = max(right, childBox->transformedFrameRect().x() + childBox->rightmostPosition(false));
3575  }
3576  }
3577  }
3578 
3579  if (includeSelf && isRelPositioned())
3580  right += relativePositionOffsetX();
3581 
3582  if (!includeOverflowInterior && hasOverflowClip())
3583  return right;
3584 
3585  int relativeOffset = includeSelf && isRelPositioned() ? relativePositionOffsetX() : 0;
3586 
3587  if (includeSelf)
3588  right = max(right, rightLayoutOverflow() + relativeOffset);
3589 
3590  if (m_positionedObjects) {
3591  RenderBox* r;
3592  Iterator end = m_positionedObjects->end();
3593  for (Iterator it = m_positionedObjects->begin() ; it != end; ++it) {
3594  r = *it;
3595  // Fixed positioned objects do not scroll and thus should not constitute
3596  // part of the rightmost position.
3597  if (r->style()->position() != FixedPosition) {
3598  // FIXME: Should work for overflow sections too.
3599  // If a positioned object lies completely above the root it will be unreachable via scrolling.
3600  // Therefore we should not allow it to contribute to the rightmost position.
3601  IntRect transformedR = r->transformedFrameRect();
3602  if (!isRenderView() || transformedR.y() + transformedR.height() > 0 || transformedR.y() + r->lowestPosition(false) > 0) {
3603  int rp = transformedR.x() + r->rightmostPosition(false);
3604  right = max(right, rp + relativeOffset);
3605  }
3606  }
3607  }
3608  }
3609 
3610  if (hasColumns()) {
3611  // This only matters for LTR
3612  if (style()->isLeftToRightDirection()) {
3613  ColumnInfo* colInfo = columnInfo();
3614  unsigned count = columnCount(colInfo);
3615  if (count)
3616  right = max(columnRectAt(colInfo, count - 1).right() + relativeOffset, right);
3617  }
3618  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
3619  int top = topmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3620  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3621  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3622  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
3623  return transformRect.width();
3624  }
3625  return right;
3626  }
3627 
3628  if (m_floatingObjects) {
3629  FloatingObject* r;
3630  DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects);
3631  for ( ; (r = it.current()); ++it ) {
3632  if (r->m_shouldPaint || r->m_renderer->hasSelfPaintingLayer()) {
3633  int rp = r->left() + r->m_renderer->marginLeft() + r->m_renderer->rightmostPosition(false);
3634  right = max(right, rp + relativeOffset);
3635  }
3636  }
3637  }
3638 
3639  if (!includeSelf) {
3640  right = max(right, borderLeft() + paddingLeft() + paddingRight() + relativeOffset);
3641  if (childrenInline()) {
3642  for (InlineFlowBox* currBox = firstLineBox(); currBox; currBox = currBox->nextLineBox()) {
3643  int childRightEdge = currBox->x() + currBox->logicalWidth();
3644 
3645  // If this node is a root editable element, then the rightmostPosition should account for a caret at the end.
3646  // FIXME: Need to find another way to do this, since scrollbars could show when we don't want them to.
3647  if (node() && node()->isContentEditable() && node() == node()->rootEditableElement() && style()->isLeftToRightDirection() && !paddingRight())
3648  childRightEdge += 1;
3649  right = max(right, childRightEdge + paddingRight() + relativeOffset);
3650  }
3651  } else {
3652  // Walk all normal flow children.
3653  for (RenderBox* currBox = firstChildBox(); currBox; currBox = currBox->nextSiblingBox()) {
3654  if (currBox->isFloatingOrPositioned())
3655  continue;
3656  IntRect transformedChild = currBox->transformedFrameRect();
3657  int childRightEdge = transformedChild.x() + transformedChild.width() + currBox->marginRight();
3658  right = max(right, childRightEdge + paddingRight() + relativeOffset);
3659  }
3660  }
3661  }
3662 
3663  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
3664  int top = topmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3665  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3666  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3667  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
3668  return transformRect.width();
3669  }
3670 
3671  return right;
3672 }
3673 
3674 int RenderBlock::leftmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
3675 {
3676  IntRect transformedRect = transformedFrameRect();
3677  int transformedLeft = includeSelf && transformedRect.height() > 0 ? 0 : transformedRect.width();
3678 
3679  if (!includeOverflowInterior && (hasOverflowClip() || hasControlClip()))
3680  return transformedLeft;
3681 
3682  if (!firstChild() && (!transformedRect.width() || !transformedRect.height()))
3683  return transformedLeft;
3684 
3685  int left = includeSelf && height() > 0 ? 0 : width();
3686 
3687  if (!hasColumns()) {
3688  // FIXME: Come up with a way to use the layer tree to avoid visiting all the kids.
3689  // For now, we have to descend into all the children, since we may have a huge abs div inside
3690  // a tiny rel div buried somewhere deep in our child tree. In this case we have to get to
3691  // the abs div.
3692  for (RenderObject* c = firstChild(); c; c = c->nextSibling()) {
3693  if (!c->isFloatingOrPositioned() && c->isBox()) {
3694  RenderBox* childBox = toRenderBox(c);
3695  left = min(left, childBox->transformedFrameRect().x() + childBox->leftmostPosition(false));
3696  }
3697  }
3698  }
3699 
3700  if (includeSelf && isRelPositioned())
3701  left += relativePositionOffsetX();
3702 
3703  if (!includeOverflowInterior && hasOverflowClip())
3704  return left;
3705 
3706  int relativeOffset = includeSelf && isRelPositioned() ? relativePositionOffsetX() : 0;
3707 
3708  if (includeSelf)
3709  left = min(left, leftLayoutOverflow() + relativeOffset);
3710 
3711  if (m_positionedObjects) {
3712  RenderBox* r;
3713  Iterator end = m_positionedObjects->end();
3714  for (Iterator it = m_positionedObjects->begin(); it != end; ++it) {
3715  r = *it;
3716  // Fixed positioned objects do not scroll and thus should not constitute
3717  // part of the leftmost position.
3718  if (r->style()->position() != FixedPosition) {
3719  // FIXME: Should work for overflow sections too.
3720  // If a positioned object lies completely above the root it will be unreachable via scrolling.
3721  // Therefore we should not allow it to contribute to the leftmost position.
3722  IntRect transformedR = r->transformedFrameRect();
3723  if (!isRenderView() || transformedR.y() + transformedR.height() > 0 || transformedR.y() + r->lowestPosition(false) > 0) {
3724  int lp = transformedR.x() + r->leftmostPosition(false);
3725  left = min(left, lp + relativeOffset);
3726  }
3727  }
3728  }
3729  }
3730 
3731  if (hasColumns()) {
3732  // This only matters for RTL
3733  if (!style()->isLeftToRightDirection()) {
3734  ColumnInfo* colInfo = columnInfo();
3735  unsigned count = columnCount(colInfo);
3736  if (count)
3737  left = min(columnRectAt(colInfo, count - 1).x() + relativeOffset, left);
3738  }
3739  return left;
3740  }
3741 
3742  if (m_floatingObjects) {
3743  FloatingObject* r;
3744  DeprecatedPtrListIterator<FloatingObject> it(*m_floatingObjects);
3745  for ( ; (r = it.current()); ++it ) {
3746  if (r->m_shouldPaint || r->m_renderer->hasSelfPaintingLayer()) {
3747  int lp = r->left() + r->m_renderer->marginLeft() + r->m_renderer->leftmostPosition(false);
3748  left = min(left, lp + relativeOffset);
3749  }
3750  }
3751  }
3752 
3753  if (!includeSelf && firstLineBox()) {
3754  for (InlineFlowBox* currBox = firstLineBox(); currBox; currBox = currBox->nextLineBox())
3755  left = min(left, (int)currBox->x() + relativeOffset);
3756  }
3757 
3758  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
3759  int top = topmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3760  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3761  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
3762  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
3763  return transformRect.x();
3764  }
3765 
3766  return left;
3767 }
3768 
37693424void RenderBlock::markLinesDirtyInBlockRange(int logicalTop, int logicalBottom, RootInlineBox* highest)
37703425{
37713426 if (logicalTop >= logicalBottom)

@@int RenderBlock::addOverhangingFloats(Re
39163571 else
39173572 floatingObj->m_shouldPaint = false;
39183573
 3574 floatingObj->m_isDescendant = true;
 3575
39193576 // We create the floating object list lazily.
39203577 if (!m_floatingObjects) {
39213578 m_floatingObjects = new DeprecatedPtrList<FloatingObject>;

@@int RenderBlock::addOverhangingFloats(Re
39233580 }
39243581 m_floatingObjects->append(floatingObj);
39253582 }
3926  } else if (makeChildPaintOtherFloats && !r->m_shouldPaint && !r->m_renderer->hasSelfPaintingLayer() &&
3927  r->m_renderer->isDescendantOf(child) && r->m_renderer->enclosingLayer() == child->enclosingLayer())
3928  // The float is not overhanging from this block, so if it is a descendant of the child, the child should
3929  // paint it (the other case is that it is intruding into the child), unless it has its own layer or enclosing
3930  // layer.
3931  // If makeChildPaintOtherFloats is false, it means that the child must already know about all the floats
3932  // it should paint.
3933  r->m_shouldPaint = true;
3934 
3935  if (r->m_shouldPaint && !r->m_renderer->hasSelfPaintingLayer())
3936  child->addOverflowFromChild(r->m_renderer, IntSize(r->left() + r->m_renderer->marginLeft(), r->top() + r->m_renderer->marginTop()));
 3583 } else {
 3584 if (makeChildPaintOtherFloats && !r->m_shouldPaint && !r->m_renderer->hasSelfPaintingLayer() &&
 3585 r->m_renderer->isDescendantOf(child) && r->m_renderer->enclosingLayer() == child->enclosingLayer()) {
 3586 // The float is not overhanging from this block, so if it is a descendant of the child, the child should
 3587 // paint it (the other case is that it is intruding into the child), unless it has its own layer or enclosing
 3588 // layer.
 3589 // If makeChildPaintOtherFloats is false, it means that the child must already know about all the floats
 3590 // it should paint.
 3591 r->m_shouldPaint = true;
 3592 }
 3593
 3594 // Since the float doesn't overhang, it didn't get put into our list. We need to go ahead and add its overflow in to the
 3595 // child now.
 3596 if (r->m_isDescendant)
 3597 child->addOverflowFromChild(r->m_renderer, IntSize(r->left() + r->m_renderer->marginLeft(), r->top() + r->m_renderer->marginTop()));
 3598 }
39373599 }
39383600 return lowestFloatLogicalBottom;
39393601}

@@bool RenderBlock::nodeAtPoint(const HitT
41013763
41023764 if (!isRenderView()) {
41033765 // Check if we need to do anything at all.
4104  IntRect overflowBox = visibleOverflowRect();
 3766 IntRect overflowBox = visualOverflowRect();
41053767 overflowBox.move(tx, ty);
41063768 if (!overflowBox.intersects(result.rectForPoint(_x, _y)))
41073769 return false;

@@IntRect RenderBlock::columnRectAt(Column
45614223
45624224bool RenderBlock::layoutColumns(bool hasSpecifiedPageHeight, int pageHeight, LayoutStateMaintainer& statePusher)
45634225{
4564  if (hasColumns()) {
4565  // FIXME: We don't balance properly at all in the presence of forced page breaks. We need to understand what
4566  // the distance between forced page breaks is so that we can avoid making the minimum column height too tall.
4567  ColumnInfo* colInfo = columnInfo();
4568  int desiredColumnCount = colInfo->desiredColumnCount();
4569  if (!hasSpecifiedPageHeight) {
4570  int columnHeight = pageHeight;
4571  int minColumnCount = colInfo->forcedBreaks() + 1;
4572  if (minColumnCount >= desiredColumnCount) {
4573  // The forced page breaks are in control of the balancing. Just set the column height to the
4574  // maximum page break distance.
4575  if (!pageHeight) {
4576  int distanceBetweenBreaks = max(colInfo->maximumDistanceBetweenForcedBreaks(),
4577  view()->layoutState()->pageY(borderTop() + paddingTop() + contentHeight()) - colInfo->forcedBreakOffset());
4578  columnHeight = max(colInfo->minimumColumnHeight(), distanceBetweenBreaks);
4579  }
4580  } else if (contentHeight() > pageHeight * desiredColumnCount) {
4581  // Now that we know the intrinsic height of the columns, we have to rebalance them.
4582  columnHeight = max(colInfo->minimumColumnHeight(), (int)ceilf((float)contentHeight() / desiredColumnCount));
4583  }
4584 
4585  if (columnHeight && columnHeight != pageHeight) {
4586  statePusher.pop();
4587  m_everHadLayout = true;
4588  layoutBlock(false, columnHeight);
4589  return true;
4590  }
4591  }
4592 
4593  if (pageHeight) // FIXME: Should we use lowestPosition (excluding our positioned objects) instead of contentHeight()?
4594  colInfo->setColumnCountAndHeight(ceilf((float)contentHeight() / pageHeight), pageHeight);
4595 
4596  if (columnCount(colInfo)) {
4597  IntRect lastRect = columnRectAt(colInfo, columnCount(colInfo) - 1);
4598  int overflowLeft = !style()->isLeftToRightDirection() ? min(0, lastRect.x()) : 0;
4599  int overflowRight = style()->isLeftToRightDirection() ? max(width(), lastRect.x() + lastRect.width()) : 0;
4600  int overflowHeight = borderTop() + paddingTop() + colInfo->columnHeight();
4601 
4602  setLogicalHeight(overflowHeight + borderBottom() + paddingBottom() + horizontalScrollbarHeight());
 4226 if (!hasColumns())
 4227 return false;
46034228
4604  m_overflow.clear();
4605  addLayoutOverflow(IntRect(overflowLeft, 0, overflowRight - overflowLeft, overflowHeight));
 4229 // FIXME: We don't balance properly at all in the presence of forced page breaks. We need to understand what
 4230 // the distance between forced page breaks is so that we can avoid making the minimum column height too tall.
 4231 ColumnInfo* colInfo = columnInfo();
 4232 int desiredColumnCount = colInfo->desiredColumnCount();
 4233 if (!hasSpecifiedPageHeight) {
 4234 int columnHeight = pageHeight;
 4235 int minColumnCount = colInfo->forcedBreaks() + 1;
 4236 if (minColumnCount >= desiredColumnCount) {
 4237 // The forced page breaks are in control of the balancing. Just set the column height to the
 4238 // maximum page break distance.
 4239 if (!pageHeight) {
 4240 int distanceBetweenBreaks = max(colInfo->maximumDistanceBetweenForcedBreaks(),
 4241 view()->layoutState()->pageY(borderTop() + paddingTop() + contentHeight()) - colInfo->forcedBreakOffset());
 4242 columnHeight = max(colInfo->minimumColumnHeight(), distanceBetweenBreaks);
 4243 }
 4244 } else if (contentHeight() > pageHeight * desiredColumnCount) {
 4245 // Now that we know the intrinsic height of the columns, we have to rebalance them.
 4246 columnHeight = max(colInfo->minimumColumnHeight(), (int)ceilf((float)contentHeight() / desiredColumnCount));
 4247 }
 4248
 4249 if (columnHeight && columnHeight != pageHeight) {
 4250 statePusher.pop();
 4251 m_everHadLayout = true;
 4252 layoutBlock(false, columnHeight);
 4253 return true;
46064254 }
 4255 }
 4256
 4257 if (pageHeight) // FIXME: Should we use lowestPosition (excluding our positioned objects) instead of contentHeight()?
 4258 colInfo->setColumnCountAndHeight(ceilf((float)contentHeight() / pageHeight), pageHeight);
 4259
 4260 if (columnCount(colInfo)) {
 4261 setLogicalHeight(borderTop() + paddingTop() + colInfo->columnHeight() + borderBottom() + paddingBottom() + horizontalScrollbarHeight());
 4262 m_overflow.clear();
46074263 }
46084264
46094265 return false;

@@void RenderBlock::adjustLinePositionForP
61615817 // line and all following lines.
61625818 LayoutState* layoutState = view()->layoutState();
61635819 int pageHeight = layoutState->m_pageHeight;
6164  int yPos = lineBox->topVisibleOverflow();
6165  int lineHeight = lineBox->bottomVisibleOverflow() - yPos;
 5820 int yPos = lineBox->topVisualOverflow();
 5821 int lineHeight = lineBox->bottomVisualOverflow() - yPos;
61665822 if (layoutState->m_columnInfo)
61675823 layoutState->m_columnInfo->updateMinimumColumnHeight(lineHeight);
61685824 yPos += delta;
73334

WebCore/rendering/RenderBlock.h

@@public:
9898 int availableLogicalWidthForLine(int position, bool firstLine) const;
9999 int logicalRightOffsetForLine(int position, bool firstLine) const { return logicalRightOffsetForLine(position, logicalRightOffsetForContent(), firstLine); }
100100 int logicalLeftOffsetForLine(int position, bool firstLine) const { return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(), firstLine); }
101 
102  virtual int topmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
103  virtual int lowestPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
104  virtual int rightmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
105  virtual int leftmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
106101
107102 virtual VisiblePosition positionForPoint(const IntPoint&);
108103

@@public:
209204 };
210205 MarginValues marginValuesForChild(RenderBox* child);
211206
 207 virtual void scrollbarsChanged(bool /*horizontalScrollbarChanged*/, bool /*verticalScrollbarChanged*/) { };
 208
212209protected:
213210 // These functions are only used internally to manipulate the render tree structure via remove/insert/appendChildNode.
214211 // Since they are typically called only to move objects around within anonymous blocks (which only have layers in

@@protected:
286283 virtual bool hasLineIfEmpty() const;
287284 bool layoutOnlyPositionedObjects();
288285
 286 void computeOverflow(int oldClientAfterEdge, bool recomputeFloats = false);
 287 virtual void addOverflowFromChildren();
 288 void addOverflowFromFloats();
 289 void addOverflowFromPositionedObjects();
 290 void addOverflowFromBlockChildren();
 291 void addOverflowFromInlineChildren();
 292
289293#if ENABLE(SVG)
290294protected:
291295

@@protected:
298302 }
299303#endif
300304
301  void addOverflowFromBlockChildren();
302 
303305private:
304306 virtual RenderObjectChildList* virtualChildren() { return children(); }
305307 virtual const RenderObjectChildList* virtualChildren() const { return children(); }

@@private:
330332 void layoutBlockChildren(bool relayoutChildren, int& maxFloatLogicalBottom);
331333 void layoutInlineChildren(bool relayoutChildren, int& repaintLogicalTop, int& repaintLogicalBottom);
332334
333  virtual void positionListMarker() { }
334 
335335 virtual void borderFitAdjust(int& x, int& w) const; // Shrink the box in which the border paints if border-fit is set.
336336
337337 virtual void updateBeforeAfterContent(PseudoId);

@@private:
463463 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOverflowAndFallbackFontsMap&, VerticalPositionCache&);
464464 void deleteEllipsisLineBoxes();
465465 void checkLinesForTextOverflow();
466  void addOverflowFromInlineChildren();
467  int beforeSideVisibleOverflowForLine(RootInlineBox*) const;
468  int afterSideVisibleOverflowForLine(RootInlineBox*) const;
 466 int beforeSideVisualOverflowForLine(RootInlineBox*) const;
 467 int afterSideVisualOverflowForLine(RootInlineBox*) const;
469468 int beforeSideLayoutOverflowForLine(RootInlineBox*) const;
470469 int afterSideLayoutOverflowForLine(RootInlineBox*) const;
471470 // End of functions defined in RenderBlockLineLayout.cpp.
472471
473  void addOverflowFromFloats();
474 
475472 void paintFloats(PaintInfo&, int tx, int ty, bool preservePhase = false);
476473 void paintContents(PaintInfo&, int tx, int ty);
477474 void paintColumnContents(PaintInfo&, int tx, int ty, bool paintFloats = false);
73334

WebCore/rendering/RenderBlockLineLayout.cpp

@@void RenderBlock::layoutInlineChildren(b
615615 RenderArena* arena = renderArena();
616616 RootInlineBox* box = startLine;
617617 while (box) {
618  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(box));
619  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(box));
 618 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(box));
 619 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(box));
620620 RootInlineBox* next = box->nextRootBox();
621621 box->deleteLine(arena);
622622 box = next;

@@void RenderBlock::layoutInlineChildren(b
764764 }
765765#endif
766766
 767 // Compute our overflow now.
 768 lineBox->computeOverflow(lineBox->lineTop(), lineBox->lineBottom(), document()->inNoQuirksMode(), textBoxDataMap);
 769
767770#if PLATFORM(MAC)
768771 // Highlight acts as an overflow inflation.
769772 if (style()->highlight() != nullAtom)

@@void RenderBlock::layoutInlineChildren(b
777780 if (lineBox) {
778781 lineBox->setLineBreakInfo(end.obj, end.pos, resolver.status());
779782 if (useRepaintBounds) {
780  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(lineBox));
781  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(lineBox));
 783 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(lineBox));
 784 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(lineBox));
782785 }
783786
784787 if (paginated) {

@@void RenderBlock::layoutInlineChildren(b
788791 int oldLineWidth = availableLogicalWidthForLine(oldLogicalHeight, firstLine);
789792 lineBox->adjustPosition(0, adjustment);
790793 if (useRepaintBounds) // This can only be a positive adjustment, so no need to update repaintTop.
791  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(lineBox));
 794 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(lineBox));
792795
793796 if (availableLogicalWidthForLine(oldLogicalHeight + adjustment, firstLine) != oldLineWidth) {
794797 // We have to delete this line, remove all floats that got added, and let line layout re-run.

@@void RenderBlock::layoutInlineChildren(b
842845 adjustLinePositionForPagination(line, delta);
843846 }
844847 if (delta) {
845  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(line) + min(delta, 0));
846  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(line) + max(delta, 0));
 848 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(line) + min(delta, 0));
 849 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(line) + max(delta, 0));
847850 line->adjustPosition(0, delta);
848851 }
849852 if (Vector<RenderBox*>* cleanLineFloats = line->floatsPtr()) {

@@void RenderBlock::layoutInlineChildren(b
861864 RootInlineBox* line = endLine;
862865 RenderArena* arena = renderArena();
863866 while (line) {
864  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(line));
865  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(line));
 867 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(line));
 868 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(line));
866869 RootInlineBox* next = line->nextRootBox();
867870 line->deleteLine(arena);
868871 line = next;

@@void RenderBlock::layoutInlineChildren(b
874877 // This has to be done before adding in the bottom border/padding, or the float will
875878 // include the padding incorrectly. -dwh
876879 if (checkForFloatsFromLastLine) {
877  int bottomVisualOverflow = afterSideVisibleOverflowForLine(lastRootBox());
 880 int bottomVisualOverflow = afterSideVisualOverflowForLine(lastRootBox());
878881 int bottomLayoutOverflow = afterSideLayoutOverflowForLine(lastRootBox());
879882 TrailingFloatsRootInlineBox* trailingFloatsLineBox = new (renderArena()) TrailingFloatsRootInlineBox(this);
880883 m_lineBoxes.appendLineBox(trailingFloatsLineBox);

@@void RenderBlock::layoutInlineChildren(b
882885 GlyphOverflowAndFallbackFontsMap textBoxDataMap;
883886 VerticalPositionCache verticalPositionCache;
884887 trailingFloatsLineBox->alignBoxesInBlockDirection(logicalHeight(), textBoxDataMap, verticalPositionCache);
885  trailingFloatsLineBox->setBlockDirectionOverflowPositions(logicalHeight(), bottomLayoutOverflow, logicalHeight(), bottomVisualOverflow);
 888 IntRect logicalLayoutOverflow(0, logicalHeight(), 1, bottomLayoutOverflow);
 889 IntRect logicalVisualOverflow(0, logicalHeight(), 1, bottomVisualOverflow);
 890 trailingFloatsLineBox->setOverflowFromLogicalRects(logicalLayoutOverflow, logicalVisualOverflow);
886891 trailingFloatsLineBox->setBlockLogicalHeight(logicalHeight());
887892 }
888893 if (lastFloat) {

@@RootInlineBox* RenderBlock::determineSta
955960 if (!useRepaintBounds)
956961 useRepaintBounds = true;
957962
958  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(curr) + min(paginationDelta, 0));
959  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(curr) + max(paginationDelta, 0));
 963 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(curr) + min(paginationDelta, 0));
 964 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(curr) + max(paginationDelta, 0));
960965 curr->adjustPosition(0, paginationDelta);
961966 }
962967 }

@@bool RenderBlock::matchedEndLine(const I
11721177 RootInlineBox* boxToDelete = endLine;
11731178 RenderArena* arena = renderArena();
11741179 while (boxToDelete && boxToDelete != result) {
1175  repaintLogicalTop = min(repaintLogicalTop, beforeSideVisibleOverflowForLine(boxToDelete));
1176  repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisibleOverflowForLine(boxToDelete));
 1180 repaintLogicalTop = min(repaintLogicalTop, beforeSideVisualOverflowForLine(boxToDelete));
 1181 repaintLogicalBottom = max(repaintLogicalBottom, afterSideVisualOverflowForLine(boxToDelete));
11771182 RootInlineBox* next = boxToDelete->nextRootBox();
11781183 boxToDelete->deleteLine(arena);
11791184 boxToDelete = next;

@@InlineIterator RenderBlock::findNextLine
20292034
20302035void RenderBlock::addOverflowFromInlineChildren()
20312036{
 2037 int endPadding = hasOverflowClip() ? paddingEnd() : 0;
 2038 // FIXME: Need to find another way to do this, since scrollbars could show when we don't want them to.
 2039 if (hasOverflowClip() && !endPadding && node() && node()->isContentEditable() && node() == node()->rootEditableElement() && style()->isLeftToRightDirection())
 2040 endPadding = 1;
20322041 for (RootInlineBox* curr = firstRootBox(); curr; curr = curr->nextRootBox()) {
2033  addLayoutOverflow(curr->layoutOverflowRect());
 2042 addLayoutOverflow(curr->paddedLayoutOverflowRect(endPadding));
20342043 if (!hasOverflowClip())
20352044 addVisualOverflow(curr->visualOverflowRect());
20362045 }
20372046}
20382047
2039 int RenderBlock::beforeSideVisibleOverflowForLine(RootInlineBox* line) const
 2048int RenderBlock::beforeSideVisualOverflowForLine(RootInlineBox* line) const
20402049{
20412050 // Overflow is in the block's coordinate space, which means it isn't purely physical. For flipped blocks (rl and bt),
20422051 // we continue to use top and left overflow even though physically it's bottom and right.
20432052 if (style()->isHorizontalWritingMode())
2044  return line->topVisibleOverflow();
2045  return line->leftVisibleOverflow();
 2053 return line->topVisualOverflow();
 2054 return line->leftVisualOverflow();
20462055}
20472056
2048 int RenderBlock::afterSideVisibleOverflowForLine(RootInlineBox* line) const
 2057int RenderBlock::afterSideVisualOverflowForLine(RootInlineBox* line) const
20492058{
20502059 // Overflow is in the block's coordinate space, which means it isn't purely physical. For flipped blocks (rl and bt),
20512060 // we continue to use bottom and right overflow even though physically it's top and left.
20522061 if (style()->isHorizontalWritingMode())
2053  return line->bottomVisibleOverflow();
2054  return line->rightVisibleOverflow();
 2062 return line->bottomVisualOverflow();
 2063 return line->rightVisualOverflow();
20552064}
20562065
20572066int RenderBlock::beforeSideLayoutOverflowForLine(RootInlineBox* line) const
73334

WebCore/rendering/RenderBox.cpp

@@int RenderBox::scrollWidth() const
406406 if (hasOverflowClip())
407407 return layer()->scrollWidth();
408408 // For objects with visible overflow, this matches IE.
 409 // FIXME: Need to work right with writing modes.
409410 if (style()->isLeftToRightDirection())
410  return max(clientWidth(), rightmostPosition(true, false) - borderLeft());
411  return clientWidth() - min(0, leftmostPosition(true, false) - borderLeft());
 411 return max(clientWidth(), rightLayoutOverflow() - borderLeft());
 412 return clientWidth() - min(0, leftLayoutOverflow() - borderLeft());
412413}
413414
414415int RenderBox::scrollHeight() const

@@int RenderBox::scrollHeight() const
416417 if (hasOverflowClip())
417418 return layer()->scrollHeight();
418419 // For objects with visible overflow, this matches IE.
419  return max(clientHeight(), lowestPosition(true, false) - borderTop());
 420 // FIXME: Need to work right with writing modes.
 421 return max(clientHeight(), bottomLayoutOverflow() - borderTop());
420422}
421423
422424int RenderBox::scrollLeft() const

@@void RenderBox::absoluteQuads(Vector<Flo
451453 quads.append(localToAbsoluteQuad(FloatRect(0, 0, width(), height())));
452454}
453455
454 IntRect RenderBox::applyLayerTransformToRect(const IntRect& rect) const
455 {
456  if (hasLayer() && layer()->hasTransform()) {
457  TransformationMatrix transform;
458  transform.translate(rect.x(), rect.y());
459  transform.multLeft(layer()->currentTransform());
460  return transform.mapRect(IntRect(0, 0, rect.width(), rect.height()));
461  }
462  return rect;
463 }
464 
465 IntRect RenderBox::transformedFrameRect() const
466 {
467  return applyLayerTransformToRect(frameRect());
468 }
469 
470456void RenderBox::updateLayerTransform()
471457{
472458 // Transform-origin depends on box size, so we need to update the layer transform after layout.

@@void RenderBox::paintRootBoxDecorations(
773759 // CSS2 14.2:
774760 // The background of the box generated by the root element covers the entire canvas including
775761 // its margins.
776  int bx = tx - marginLeft() + view()->leftLayoutOverflow();
777  int by = ty - marginTop() + view()->topLayoutOverflow();
 762 int bx = tx - marginLeft() + view()->docLeft();
 763 int by = ty - marginTop() + view()->docTop();
778764 int bw = max(w + marginLeft() + marginRight() + borderLeft() + borderRight(), rw);
779765 int bh = max(h + marginTop() + marginBottom() + borderTop() + borderBottom(), rh);
780766

@@IntRect RenderBox::clippedOverflowRectFo
13161302 if (style()->visibility() != VISIBLE && !enclosingLayer()->hasVisibleContent())
13171303 return IntRect();
13181304
1319  IntRect r = visibleOverflowRect();
 1305 IntRect r = visualOverflowRect();
13201306
13211307 RenderView* v = view();
13221308 if (v) {

@@IntRect RenderBox::localCaretRect(Inline
29622948 return rect;
29632949}
29642950
2965 int RenderBox::topmostPosition(bool /*includeOverflowInterior*/, bool includeSelf, ApplyTransform applyTransform) const
2966 {
2967  IntRect transformedRect = applyTransform == IncludeTransform && includeSelf ? transformedFrameRect() : frameRect();
2968  if (!includeSelf || !transformedRect.width())
2969  return 0;
2970  int top = 0;
2971  if (isRelPositioned())
2972  top += relativePositionOffsetY();
2973  return top;
2974 }
2975 
2976 int RenderBox::lowestPosition(bool /*includeOverflowInterior*/, bool includeSelf, ApplyTransform applyTransform) const
2977 {
2978  IntRect transformedRect = applyTransform == IncludeTransform && includeSelf ? transformedFrameRect() : frameRect();
2979  if (!includeSelf || !transformedRect.width())
2980  return 0;
2981  int bottom = transformedRect.height();
2982  if (isRelPositioned())
2983  bottom += relativePositionOffsetY();
2984  return bottom;
2985 }
2986 
2987 int RenderBox::rightmostPosition(bool /*includeOverflowInterior*/, bool includeSelf, ApplyTransform applyTransform) const
2988 {
2989  IntRect transformedRect = applyTransform == IncludeTransform && includeSelf ? transformedFrameRect() : frameRect();
2990  if (!includeSelf || !transformedRect.height())
2991  return 0;
2992  int right = transformedRect.width();
2993  if (isRelPositioned())
2994  right += relativePositionOffsetX();
2995  return right;
2996 }
2997 
2998 int RenderBox::leftmostPosition(bool /*includeOverflowInterior*/, bool includeSelf, ApplyTransform applyTransform) const
2999 {
3000  IntRect transformedRect = applyTransform == IncludeTransform && includeSelf ? transformedFrameRect() : frameRect();
3001  if (!includeSelf || !transformedRect.height())
3002  return transformedRect.width();
3003  int left = 0;
3004  if (isRelPositioned())
3005  left += relativePositionOffsetX();
3006  return left;
3007 }
3008 
30092951VisiblePosition RenderBox::positionForPoint(const IntPoint& point)
30102952{
30112953 // no children...return this render object's element, if there is one, and offset 0

@@void RenderBox::addShadowOverflow()
31303072
31313073void RenderBox::addOverflowFromChild(RenderBox* child, const IntSize& delta)
31323074{
3133  // Update our overflow in case the child spills out the block, but only if we were going to paint
3134  // the child block ourselves.
3135  if (child->hasSelfPaintingLayer())
3136  return;
3137 
31383075 // Only propagate layout overflow from the child if the child isn't clipping its overflow. If it is, then
3139  // its overflow is internal to it, and we don't care about it.
3140  IntRect childLayoutOverflowRect = child->hasOverflowClip() ? child->borderBoxRect() : child->layoutOverflowRect();
 3076 // its overflow is internal to it, and we don't care about it. layoutOverflowRectForPropagation takes care of this
 3077 // and just propagates the border box rect instead.
 3078 IntRect childLayoutOverflowRect = child->layoutOverflowRectForPropagation(style());
31413079 childLayoutOverflowRect.move(delta);
31423080 addLayoutOverflow(childLayoutOverflowRect);
31433081
31443082 // Add in visual overflow from the child. Even if the child clips its overflow, it may still
31453083 // have visual overflow of its own set from box shadows or reflections. It is unnecessary to propagate this
31463084 // overflow if we are clipping our own overflow.
3147  if (hasOverflowClip())
 3085 if (child->hasSelfPaintingLayer() || hasOverflowClip())
31483086 return;
3149  IntRect childVisualOverflowRect = child->visualOverflowRect();
 3087 IntRect childVisualOverflowRect = child->visualOverflowRectForPropagation(style());
31503088 childVisualOverflowRect.move(delta);
31513089 addVisualOverflow(childVisualOverflowRect);
31523090}
31533091
31543092void RenderBox::addLayoutOverflow(const IntRect& rect)
31553093{
3156  IntRect borderBox = borderBoxRect();
3157  if (borderBox.contains(rect))
 3094 IntRect clientBox = clientBoxRect();
 3095 if (clientBox.contains(rect) || rect.isEmpty())
31583096 return;
 3097
 3098 // For overflow clip objects, we don't want to propagate overflow into unreachable areas.
 3099 IntRect overflowRect(rect);
 3100 if (hasOverflowClip() || isRenderView()) {
 3101 // Overflow is in the block's coordinate space and thus is flipped for horizontal-bt and vertical-rl
 3102 // writing modes. At this stage that is actually a simplification, since we can treat horizontal-tb/bt as the same
 3103 // and vertical-lr/rl as the same.
 3104 bool hasTopOverflow = !style()->isLeftToRightDirection() && !style()->isHorizontalWritingMode();
 3105 bool hasLeftOverflow = !style()->isLeftToRightDirection() && style()->isHorizontalWritingMode();
31593106
 3107 if (!hasTopOverflow)
 3108 overflowRect.shiftTopEdgeTo(max(overflowRect.y(), clientBox.y()));
 3109 else
 3110 overflowRect.shiftBottomEdgeTo(min(overflowRect.bottom(), clientBox.bottom()));
 3111 if (!hasLeftOverflow)
 3112 overflowRect.shiftLeftEdgeTo(max(overflowRect.x(), clientBox.x()));
 3113 else
 3114 overflowRect.shiftRightEdgeTo(min(overflowRect.right(), clientBox.right()));
 3115
 3116 // Now re-test with the adjusted rectangle and see if it has become unreachable or fully
 3117 // contained.
 3118 if (clientBox.contains(overflowRect) || overflowRect.isEmpty())
 3119 return;
 3120 }
 3121
31603122 if (!m_overflow)
3161  m_overflow.set(new RenderOverflow(borderBox));
 3123 m_overflow.set(new RenderOverflow(clientBox, borderBoxRect()));
31623124
3163  m_overflow->addLayoutOverflow(rect);
 3125 m_overflow->addLayoutOverflow(overflowRect);
31643126}
31653127
31663128void RenderBox::addVisualOverflow(const IntRect& rect)
31673129{
31683130 IntRect borderBox = borderBoxRect();
3169  if (borderBox.contains(rect))
 3131 if (borderBox.contains(rect) || rect.isEmpty())
31703132 return;
31713133
31723134 if (!m_overflow)
3173  m_overflow.set(new RenderOverflow(borderBox));
 3135 m_overflow.set(new RenderOverflow(clientBoxRect(), borderBox));
31743136
31753137 m_overflow->addVisualOverflow(rect);
31763138}

@@int RenderBox::baselinePosition(FontBase
32063168 return 0;
32073169}
32083170
3209 void RenderBox::blockDirectionOverflow(bool isLineHorizontal, int& logicalTopLayoutOverflow, int& logicalBottomLayoutOverflow,
3210  int& logicalTopVisualOverflow, int& logicalBottomVisualOverflow)
 3171IntRect RenderBox::logicalVisualOverflowRectForPropagation(RenderStyle* parentStyle) const
32113172{
3212  if (isLineHorizontal) {
3213  logicalTopLayoutOverflow = topLayoutOverflow();
3214  logicalBottomLayoutOverflow = bottomLayoutOverflow();
3215  logicalTopVisualOverflow = topVisualOverflow();
3216  logicalBottomVisualOverflow = bottomVisualOverflow();
3217  } else {
3218  logicalTopLayoutOverflow = leftLayoutOverflow();
3219  logicalBottomLayoutOverflow = rightLayoutOverflow();
3220  logicalTopVisualOverflow = leftVisualOverflow();
3221  logicalBottomVisualOverflow = rightVisualOverflow();
3222  }
 3173 IntRect rect = visualOverflowRectForPropagation(parentStyle);
 3174 if (!parentStyle->isHorizontalWritingMode())
 3175 return rect.transposedRect();
 3176 return rect;
 3177}
 3178
 3179IntRect RenderBox::visualOverflowRectForPropagation(RenderStyle* parentStyle) const
 3180{
 3181 // If the writing modes of the child and parent match, then we don't have to
 3182 // do anything fancy. Just return the result.
 3183 IntRect rect = visualOverflowRect();
 3184 if (parentStyle->writingMode() == style()->writingMode())
 3185 return rect;
 3186
 3187 // We are putting ourselves into our parent's coordinate space. If there is a flipped block mismatch
 3188 // in a particular axis, then we have to flip the rect along that axis.
 3189 if (style()->writingMode() == RightToLeftWritingMode || parentStyle->writingMode() == RightToLeftWritingMode)
 3190 rect.setX(width() - rect.right());
 3191 else if (style()->writingMode() == BottomToTopWritingMode || parentStyle->writingMode() == BottomToTopWritingMode)
 3192 rect.setY(height() - rect.bottom());
 3193
 3194 return rect;
 3195}
 3196
 3197IntRect RenderBox::logicalLayoutOverflowRectForPropagation(RenderStyle* parentStyle) const
 3198{
 3199 IntRect rect = layoutOverflowRectForPropagation(parentStyle);
 3200 if (!parentStyle->isHorizontalWritingMode())
 3201 return rect.transposedRect();
 3202 return rect;
 3203}
 3204
 3205IntRect RenderBox::layoutOverflowRectForPropagation(RenderStyle* parentStyle) const
 3206{
 3207 // Only propagate interior layout overflow if we don't clip it.
 3208 IntRect rect = borderBoxRect();
 3209 if (!hasOverflowClip())
 3210 rect.unite(layoutOverflowRect());
 3211
 3212 if (isRelPositioned() || hasTransform()) {
 3213 // If we are relatively positioned or if we have a transform, then we have to convert
 3214 // this rectangle into physical coordinates, apply relative positioning and transforms
 3215 // to it, and then convert it back.
 3216 flipForWritingMode(rect);
 3217
 3218 if (hasTransform())
 3219 rect = layer()->currentTransform().mapRect(rect);
 3220
 3221 if (isRelPositioned())
 3222 rect.move(relativePositionOffsetX(), relativePositionOffsetY());
 3223
 3224 // Now we need to flip back.
 3225 flipForWritingMode(rect);
 3226 }
 3227
 3228 // If the writing modes of the child and parent match, then we don't have to
 3229 // do anything fancy. Just return the result.
 3230 if (parentStyle->writingMode() == style()->writingMode())
 3231 return rect;
 3232
 3233 // We are putting ourselves into our parent's coordinate space. If there is a flipped block mismatch
 3234 // in a particular axis, then we have to flip the rect along that axis.
 3235 if (style()->writingMode() == RightToLeftWritingMode || parentStyle->writingMode() == RightToLeftWritingMode)
 3236 rect.setX(width() - rect.right());
 3237 else if (style()->writingMode() == BottomToTopWritingMode || parentStyle->writingMode() == BottomToTopWritingMode)
 3238 rect.setY(height() - rect.bottom());
 3239
 3240 return rect;
32233241}
32243242
32253243IntPoint RenderBox::flipForWritingMode(const RenderBox* child, const IntPoint& point, FlippingAdjustment adjustment) const
73334

WebCore/rendering/RenderBox.h

@@public:
106106 IntRect frameRect() const { return m_frameRect; }
107107 void setFrameRect(const IntRect& rect) { m_frameRect = rect; }
108108
109  IntRect transformedFrameRect() const;
110  IntRect applyLayerTransformToRect(const IntRect&) const;
111 
112109 IntRect borderBoxRect() const { return IntRect(0, 0, width(), height()); }
113110 virtual IntRect borderBoundingBox() const { return borderBoxRect(); }
114 
 111
115112 // The content area of the box (excludes padding and border).
116113 IntRect contentBoxRect() const { return IntRect(borderLeft() + paddingLeft(), borderTop() + paddingTop(), contentWidth(), contentHeight()); }
117114 // The content box in absolute coords. Ignores transforms.

@@public:
128125 RenderBox* nextSiblingBox() const;
129126 RenderBox* parentBox() const;
130127
131  IntRect visibleOverflowRect() const { return hasOverflowClip() ? visualOverflowRect() : (m_overflow ? m_overflow->visibleOverflowRect() : borderBoxRect()); }
132  int topVisibleOverflow() const { return hasOverflowClip() ? topVisualOverflow() : std::min(topLayoutOverflow(), topVisualOverflow()); }
133  int bottomVisibleOverflow() const { return hasOverflowClip() ? bottomVisualOverflow() : std::max(bottomLayoutOverflow(), bottomVisualOverflow()); }
134  int leftVisibleOverflow() const { return hasOverflowClip() ? leftVisualOverflow() : std::min(leftLayoutOverflow(), leftVisualOverflow()); }
135  int rightVisibleOverflow() const { return hasOverflowClip() ? rightVisualOverflow() : std::max(rightLayoutOverflow(), rightVisualOverflow()); }
136 
137  IntRect layoutOverflowRect() const { return m_overflow ? m_overflow->layoutOverflowRect() : borderBoxRect(); }
138  int topLayoutOverflow() const { return m_overflow? m_overflow->topLayoutOverflow() : 0; }
139  int bottomLayoutOverflow() const { return m_overflow ? m_overflow->bottomLayoutOverflow() : height(); }
140  int leftLayoutOverflow() const { return m_overflow ? m_overflow->leftLayoutOverflow() : 0; }
141  int rightLayoutOverflow() const { return m_overflow ? m_overflow->rightLayoutOverflow() : width(); }
 128 IntRect layoutOverflowRect() const { return m_overflow ? m_overflow->layoutOverflowRect() : clientBoxRect(); }
 129 int topLayoutOverflow() const { return m_overflow? m_overflow->topLayoutOverflow() : borderTop(); }
 130 int bottomLayoutOverflow() const { return m_overflow ? m_overflow->bottomLayoutOverflow() : borderTop() + clientHeight(); }
 131 int leftLayoutOverflow() const { return m_overflow ? m_overflow->leftLayoutOverflow() : borderLeft(); }
 132 int rightLayoutOverflow() const { return m_overflow ? m_overflow->rightLayoutOverflow() : borderLeft() + clientWidth(); }
142133 int logicalLeftLayoutOverflow() const { return style()->isHorizontalWritingMode() ? leftLayoutOverflow() : topLayoutOverflow(); }
143134 int logicalRightLayoutOverflow() const { return style()->isHorizontalWritingMode() ? rightLayoutOverflow() : bottomLayoutOverflow(); }
144135

@@public:
179170 int clientTop() const { return borderTop(); }
180171 int clientWidth() const;
181172 int clientHeight() const;
 173 int clientLogicalBottom() const { return style()->isHorizontalWritingMode() ? clientTop() + clientHeight() : clientLeft() + clientWidth(); }
 174 IntRect clientBoxRect() const { return IntRect(clientLeft(), clientTop(), clientWidth(), clientHeight()); }
182175
183176 // scrollWidth/scrollHeight will be the same as clientWidth/clientHeight unless the
184177 // object has overflow:hidden/scroll/auto specified and also has overflow.

@@public:
270263 void setInlineBoxWrapper(InlineBox* boxWrapper) { m_inlineBoxWrapper = boxWrapper; }
271264 void deleteLineBoxWrapper();
272265
273  enum ApplyTransform { IncludeTransform, ExcludeTransform };
274  virtual int topmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
275  virtual int lowestPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
276  virtual int rightmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
277  virtual int leftmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
278 
279266 virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer);
280267 virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect&, bool fixed = false);
281268

@@public:
390377 void flipForWritingMode(IntRect&) const;
391378 IntSize locationOffsetIncludingFlipping() const;
392379
 380 IntRect logicalVisualOverflowRectForPropagation(RenderStyle*) const;
 381 IntRect visualOverflowRectForPropagation(RenderStyle*) const;
 382 IntRect logicalLayoutOverflowRectForPropagation(RenderStyle*) const;
 383 IntRect layoutOverflowRectForPropagation(RenderStyle*) const;
 384
393385protected:
394386 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
395387 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
73334

WebCore/rendering/RenderBoxModelObject.h

@@public:
4545 int relativePositionOffsetX() const;
4646 int relativePositionOffsetY() const;
4747 IntSize relativePositionOffset() const { return IntSize(relativePositionOffsetX(), relativePositionOffsetY()); }
 48 IntSize relativePositionLogicalOffset() const { return style()->isHorizontalWritingMode() ? relativePositionOffset() : relativePositionOffset().transposedSize(); }
4849
4950 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlines (RenderFlow)
5051 // to return the remaining width on a given line (and the height of a single line).
73334

WebCore/rendering/RenderFlexibleBox.cpp

@@void RenderFlexibleBox::layoutBlock(bool
246246 else
247247 layoutVerticalBox(relayoutChildren);
248248
 249 int oldClientAfterEdge = clientLogicalBottom();
249250 computeLogicalHeight();
250251
251252 if (previousHeight != height())

@@void RenderFlexibleBox::layoutBlock(bool
271272 setMaxMarginAfterValues(0, 0);
272273 }
273274
274  // Add in the overflow from children.
275  FlexBoxIterator iterator(this);
276  for (RenderBox* child = iterator.first(); child; child = iterator.next())
277  addOverflowFromChild(child);
278 
279  // Add visual overflow from box-shadow and reflections.
280  addShadowOverflow();
 275 computeOverflow(oldClientAfterEdge);
281276
282277 statePusher.pop();
283278
73334

WebCore/rendering/RenderInline.cpp

@@IntRect RenderInline::linesBoundingBox()
579579 return result;
580580}
581581
582 IntRect RenderInline::linesVisibleOverflowBoundingBox() const
 582IntRect RenderInline::linesVisualOverflowBoundingBox() const
583583{
584584 if (!firstLineBox() || !lastLineBox())
585585 return IntRect();

@@IntRect RenderInline::linesVisibleOverfl
588588 int logicalLeftSide = numeric_limits<int>::max();
589589 int logicalRightSide = numeric_limits<int>::min();
590590 for (InlineFlowBox* curr = firstLineBox(); curr; curr = curr->nextLineBox()) {
591  logicalLeftSide = min(logicalLeftSide, curr->logicalLeftVisibleOverflow());
592  logicalRightSide = max(logicalRightSide, curr->logicalRightVisibleOverflow());
 591 logicalLeftSide = min(logicalLeftSide, curr->logicalLeftVisualOverflow());
 592 logicalRightSide = max(logicalRightSide, curr->logicalRightVisualOverflow());
593593 }
594594
595595 bool isHorizontal = style()->isHorizontalWritingMode();
596596
597  int x = isHorizontal ? logicalLeftSide : firstLineBox()->leftVisibleOverflow();
598  int y = isHorizontal ? firstLineBox()->topVisibleOverflow() : logicalLeftSide;
599  int width = isHorizontal ? logicalRightSide - logicalLeftSide : lastLineBox()->rightVisibleOverflow() - firstLineBox()->leftVisibleOverflow();
600  int height = isHorizontal ? lastLineBox()->bottomVisibleOverflow() - firstLineBox()->topVisibleOverflow() : logicalRightSide - logicalLeftSide;
 597 int x = isHorizontal ? logicalLeftSide : firstLineBox()->leftVisualOverflow();
 598 int y = isHorizontal ? firstLineBox()->topVisualOverflow() : logicalLeftSide;
 599 int width = isHorizontal ? logicalRightSide - logicalLeftSide : lastLineBox()->rightVisualOverflow() - firstLineBox()->leftVisualOverflow();
 600 int height = isHorizontal ? lastLineBox()->bottomVisualOverflow() - firstLineBox()->topVisualOverflow() : logicalRightSide - logicalLeftSide;
601601 return IntRect(x, y, width, height);
602602}
603603

@@IntRect RenderInline::clippedOverflowRec
610610 return IntRect();
611611
612612 // Find our leftmost position.
613  IntRect boundingBox(linesVisibleOverflowBoundingBox());
 613 IntRect boundingBox(linesVisualOverflowBoundingBox());
614614 int left = boundingBox.x();
615615 int top = boundingBox.y();
616616
73334

WebCore/rendering/RenderInline.h

@@public:
5353 virtual IntSize offsetFromContainer(RenderObject*, const IntPoint&) const;
5454
5555 IntRect linesBoundingBox() const;
56  IntRect linesVisibleOverflowBoundingBox() const;
 56 IntRect linesVisualOverflowBoundingBox() const;
5757
5858 InlineFlowBox* createAndAppendInlineFlowBox();
5959
73334

WebCore/rendering/RenderLayer.cpp

@@void RenderLayer::updateLayerPosition()
676676 } else if (RenderBox* box = renderBox()) {
677677 setWidth(box->width());
678678 setHeight(box->height());
679 
680  if (!box->hasOverflowClip()) {
681  if (box->rightLayoutOverflow() > box->width())
682  setWidth(box->rightLayoutOverflow());
683  if (box->bottomLayoutOverflow() > box->height())
684  setHeight(box->bottomLayoutOverflow());
685  }
686 
687679 localPoint += box->locationOffsetIncludingFlipping();
688680 }
689681

@@int RenderLayer::scrollHeight()
19661958 return m_scrollHeight;
19671959}
19681960
 1961int RenderLayer::overflowTop() const
 1962{
 1963 RenderBox* box = renderBox();
 1964 IntRect overflowRect(box->layoutOverflowRect());
 1965 box->flipForWritingMode(overflowRect);
 1966 return overflowRect.y();
 1967}
 1968
 1969int RenderLayer::overflowBottom() const
 1970{
 1971 RenderBox* box = renderBox();
 1972 IntRect overflowRect(box->layoutOverflowRect());
 1973 box->flipForWritingMode(overflowRect);
 1974 return overflowRect.bottom();
 1975}
 1976
 1977int RenderLayer::overflowLeft() const
 1978{
 1979 RenderBox* box = renderBox();
 1980 IntRect overflowRect(box->layoutOverflowRect());
 1981 box->flipForWritingMode(overflowRect);
 1982 return overflowRect.x();
 1983}
 1984
 1985int RenderLayer::overflowRight() const
 1986{
 1987 RenderBox* box = renderBox();
 1988 IntRect overflowRect(box->layoutOverflowRect());
 1989 box->flipForWritingMode(overflowRect);
 1990 return overflowRect.right();
 1991}
 1992
19691993void RenderLayer::computeScrollDimensions(bool* needHBar, bool* needVBar)
19701994{
19711995 RenderBox* box = renderBox();
19721996 ASSERT(box);
19731997
19741998 m_scrollDimensionsDirty = false;
1975 
1976  int clientWidth = box->clientWidth();
1977  int clientHeight = box->clientHeight();
1978 
1979  bool hasLeftOverflow = (!box->style()->isHorizontalWritingMode() || !box->style()->isLeftToRightDirection()) && box->style()->writingMode() != LeftToRightWritingMode;
1980  bool hasTopOverflow = (box->style()->isHorizontalWritingMode() || !box->style()->isLeftToRightDirection()) && box->style()->writingMode() != TopToBottomWritingMode;
19811999
1982  m_scrollLeftOverflow = !hasLeftOverflow ? 0 : min(0, box->leftmostPosition(true, false) - box->borderLeft());
1983  m_scrollTopOverflow = !hasTopOverflow ? 0 : min(0, box->topmostPosition(true, false) - box->borderTop());
 2000 m_scrollLeftOverflow = overflowLeft() - box->borderLeft();
 2001 m_scrollTopOverflow = overflowTop() - box->borderTop();
19842002
1985  int rightPos = !hasLeftOverflow ?
1986  box->rightmostPosition(true, false) - box->borderLeft() :
1987  clientWidth - m_scrollLeftOverflow;
1988  int bottomPos = !hasTopOverflow ?
1989  box->lowestPosition(true, false) - box->borderTop() :
1990  clientHeight - m_scrollTopOverflow;
1991 
1992  m_scrollWidth = max(rightPos, clientWidth);
1993  m_scrollHeight = max(bottomPos, clientHeight);
 2003 m_scrollWidth = overflowRight() - overflowLeft();
 2004 m_scrollHeight = overflowBottom() - overflowTop();
19942005
1995  m_scrollOrigin = IntPoint(!hasLeftOverflow ? 0 : m_scrollWidth - clientWidth, !hasTopOverflow ? 0 : m_scrollHeight - clientHeight);
 2006 m_scrollOrigin = IntPoint(-m_scrollLeftOverflow, -m_scrollTopOverflow);
19962007
19972008 if (needHBar)
1998  *needHBar = rightPos > clientWidth;
 2009 *needHBar = m_scrollWidth > box->clientWidth();
19992010 if (needVBar)
2000  *needVBar = bottomPos > clientHeight;
 2011 *needVBar = m_scrollHeight > box->clientHeight();
20012012}
20022013
20032014void RenderLayer::updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow)

@@RenderLayer::updateScrollInfoAfterLayout
20922103 // Our proprietary overflow: overlay value doesn't trigger a layout.
20932104 m_inOverflowRelayout = true;
20942105 renderer()->setNeedsLayout(true, false);
2095  if (renderer()->isRenderBlock())
2096  toRenderBlock(renderer())->layoutBlock(true);
2097  else
 2106 if (renderer()->isRenderBlock()) {
 2107 RenderBlock* block = toRenderBlock(renderer());
 2108 block->scrollbarsChanged(box->hasAutoHorizontalScrollbar() && haveHorizontalBar != horizontalOverflow,
 2109 box->hasAutoVerticalScrollbar() && haveVerticalBar != verticalOverflow);
 2110 block->layoutBlock(true);
 2111 } else
20982112 renderer()->layout();
20992113 m_inOverflowRelayout = false;
21002114 }

@@RenderLayer::updateScrollInfoAfterLayout
21182132 // top right corner of the content doesn't shift with respect to the top
21192133 // right corner of the area. Conceptually, right-to-left areas have
21202134 // their origin at the top-right, but RenderLayer is top-left oriented,
2121  // so this is needed to keep everything working (see how scrollXOffset()
2122  // differs from scrollYOffset() to get an idea of why the horizontal and
2123  // vertical scrollbars need to be treated differently).
 2135 // so this is needed to keep everything working.
21242136 m_hBar->setValue(scrollXOffset(), Scrollbar::NotFromScrollAnimator);
21252137 }
21262138 if (m_vBar) {

@@RenderLayer::updateScrollInfoAfterLayout
21282140 int pageStep = max(max<int>(clientHeight * Scrollbar::minFractionToStepWhenPaging(), clientHeight - Scrollbar::maxOverlapBetweenPages()), 1);
21292141 m_vBar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
21302142 m_vBar->setProportion(clientHeight, m_scrollHeight);
 2143 // Explicitly set the vertical scroll value. This ensures that when a
 2144 // right-to-left vertical writing-mode scrollable area's height (or content height) changes, the
 2145 // bottom right corner of the content doesn't shift with respect to the bottom
 2146 // right corner of the area. Conceptually, right-to-left vertical writing-mode areas have
 2147 // their origin at the bottom-right, but RenderLayer is top-left oriented,
 2148 // so this is needed to keep everything working.
 2149 m_vBar->setValue(scrollYOffset(), Scrollbar::NotFromScrollAnimator);
21312150 }
21322151
21332152 if (renderer()->node() && renderer()->document()->hasListenerType(Document::OVERFLOWCHANGED_LISTENER))

@@static void restoreClip(GraphicsContext*
23242343 p->restore();
23252344}
23262345
2327 static void performOverlapTests(OverlapTestRequestMap& overlapTestRequests, const IntRect& layerBounds)
 2346static void performOverlapTests(OverlapTestRequestMap& overlapTestRequests, const RenderLayer* rootLayer, const RenderLayer* layer)
23282347{
23292348 Vector<OverlapTestRequestClient*> overlappedRequestClients;
23302349 OverlapTestRequestMap::iterator end = overlapTestRequests.end();
 2350 IntRect boundingBox = layer->boundingBox(rootLayer);
23312351 for (OverlapTestRequestMap::iterator it = overlapTestRequests.begin(); it != end; ++it) {
2332  if (!layerBounds.intersects(it->second))
 2352 if (!boundingBox.intersects(it->second))
23332353 continue;
23342354
23352355 it->first->setOverlapTestResult(true);

@@void RenderLayer::paintLayer(RenderLayer
24562476 paintingRootForRenderer = paintingRoot;
24572477
24582478 if (overlapTestRequests && isSelfPaintingLayer())
2459  performOverlapTests(*overlapTestRequests, layerBounds);
 2479 performOverlapTests(*overlapTestRequests, rootLayer, this);
24602480
24612481 // We want to paint our layer, but only if we intersect the damage rect.
24622482 bool shouldPaint = intersectsDamageRect(layerBounds, damageRect, rootLayer) && m_hasVisibleContent && isSelfPaintingLayer();

@@bool RenderLayer::hitTest(const HitTestR
26652685{
26662686 renderer()->document()->updateLayout();
26672687
2668  IntRect boundsRect(m_x, m_y, width(), height());
 2688 IntRect hitTestArea = result.rectForPoint(result.point());
26692689 if (!request.ignoreClipping())
2670  boundsRect.intersect(frameVisibleRect(renderer()));
 2690 hitTestArea.intersect(frameVisibleRect(renderer()));
26712691
2672  RenderLayer* insideLayer = hitTestLayer(this, 0, request, result, boundsRect, result.point(), false);
 2692 RenderLayer* insideLayer = hitTestLayer(this, 0, request, result, hitTestArea, result.point(), false);
26732693 if (!insideLayer) {
26742694 // We didn't hit any layer. If we are the root layer and the mouse is -- or just was -- down,
26752695 // return ourselves. We do this so mouse events continue getting delivered after a drag has

@@IntRect RenderLayer::localBoundingBox()
33753395 InlineFlowBox* firstBox = inlineFlow->firstLineBox();
33763396 if (!firstBox)
33773397 return result;
3378  int top = firstBox->topVisibleOverflow();
3379  int bottom = inlineFlow->lastLineBox()->bottomVisibleOverflow();
 3398 int top = firstBox->topVisualOverflow();
 3399 int bottom = inlineFlow->lastLineBox()->bottomVisualOverflow();
33803400 int left = firstBox->x();
33813401 for (InlineFlowBox* curr = firstBox->nextLineBox(); curr; curr = curr->nextLineBox())
33823402 left = min(left, curr->x());

@@IntRect RenderLayer::localBoundingBox()
33873407 if (child->isTableCell()) {
33883408 IntRect bbox = toRenderBox(child)->borderBoxRect();
33893409 result.unite(bbox);
3390  IntRect overflowRect = renderBox()->visibleOverflowRect();
 3410 IntRect overflowRect = renderBox()->visualOverflowRect();
33913411 if (bbox != overflowRect)
33923412 result.unite(overflowRect);
33933413 }

@@IntRect RenderLayer::localBoundingBox()
34003420 else {
34013421 IntRect bbox = box->borderBoxRect();
34023422 result = bbox;
3403  IntRect overflowRect = box->visibleOverflowRect();
 3423 IntRect overflowRect = box->visualOverflowRect();
34043424 if (bbox != overflowRect)
34053425 result.unite(overflowRect);
34063426 }
73334

WebCore/rendering/RenderLayer.h

@@private:
581581 // Only safe to call from RenderBoxModelObject::destroyLayer(RenderArena*)
582582 void destroy(RenderArena*);
583583
 584 int overflowTop() const;
 585 int overflowBottom() const;
 586 int overflowLeft() const;
 587 int overflowRight() const;
 588
584589protected:
585590 RenderBoxModelObject* m_renderer;
586591
73334

WebCore/rendering/RenderLineBoxList.cpp

@@bool RenderLineBoxList::anyLineIntersect
176176 // intersect. This is a quick short-circuit that we can take to avoid walking any lines.
177177 // FIXME: This check is flawed in the following extremely obscure way:
178178 // if some line in the middle has a huge overflow, it might actually extend below the last line.
179  int firstLineTop = firstLineBox()->logicalTopVisibleOverflow();
 179 int firstLineTop = firstLineBox()->logicalTopVisualOverflow();
180180 if (usePrintRect && !firstLineBox()->parent())
181181 firstLineTop = min(firstLineTop, firstLineBox()->root()->lineTop());
182  int lastLineBottom = lastLineBox()->logicalBottomVisibleOverflow();
 182 int lastLineBottom = lastLineBox()->logicalBottomVisualOverflow();
183183 if (usePrintRect && !lastLineBox()->parent())
184184 lastLineBottom = max(lastLineBottom, lastLineBox()->root()->lineBottom());
185185 int logicalTop = firstLineTop - outlineSize;

@@bool RenderLineBoxList::anyLineIntersect
190190
191191bool RenderLineBoxList::lineIntersectsDirtyRect(RenderBoxModelObject* renderer, InlineFlowBox* box, const PaintInfo& paintInfo, int tx, int ty) const
192192{
193  int logicalTop = min(box->logicalTopVisibleOverflow(), box->root()->selectionTop()) - renderer->maximalOutlineSize(paintInfo.phase);
194  int logicalBottom = box->logicalBottomVisibleOverflow() + renderer->maximalOutlineSize(paintInfo.phase);
 193 int logicalTop = min(box->logicalTopVisualOverflow(), box->root()->selectionTop()) - renderer->maximalOutlineSize(paintInfo.phase);
 194 int logicalBottom = box->logicalBottomVisualOverflow() + renderer->maximalOutlineSize(paintInfo.phase);
195195
196196 return rangeIntersectsRect(renderer, logicalTop, logicalBottom, paintInfo.rect, tx, ty);
197197}

@@void RenderLineBoxList::paint(RenderBoxM
230230 // FIXME: This is the deprecated pagination model that is still needed
231231 // for embedded views inside AppKit. AppKit is incapable of paginating vertical
232232 // text pages, so we don't have to deal with vertical lines at all here.
233  int topForPaginationCheck = curr->topVisibleOverflow();
234  int bottomForPaginationCheck = curr->bottomVisibleOverflow();
 233 int topForPaginationCheck = curr->topVisualOverflow();
 234 int bottomForPaginationCheck = curr->bottomVisualOverflow();
235235 if (!curr->parent()) {
236236 // We're a root box. Use lineTop and lineBottom as well here.
237237 topForPaginationCheck = min(topForPaginationCheck, curr->root()->lineTop());

@@void RenderLineBoxList::paint(RenderBoxM
240240 if (bottomForPaginationCheck - topForPaginationCheck <= v->printRect().height()) {
241241 if (ty + bottomForPaginationCheck > v->printRect().bottom()) {
242242 if (RootInlineBox* nextRootBox = curr->root()->nextRootBox())
243  bottomForPaginationCheck = min(bottomForPaginationCheck, min(nextRootBox->topVisibleOverflow(), nextRootBox->lineTop()));
 243 bottomForPaginationCheck = min(bottomForPaginationCheck, min(nextRootBox->topVisualOverflow(), nextRootBox->lineTop()));
244244 }
245245 if (ty + bottomForPaginationCheck > v->printRect().bottom()) {
246246 if (ty + topForPaginationCheck < v->truncatedAt())

@@bool RenderLineBoxList::hitTest(RenderBo
292292 // them further. Note that boxes can easily overlap, so we can't make any assumptions
293293 // based off positions of our first line box or our last line box.
294294 for (InlineFlowBox* curr = lastLineBox(); curr; curr = curr->prevLineBox()) {
295  if (rangeIntersectsRect(renderer, curr->logicalTopVisibleOverflow(), curr->logicalBottomVisibleOverflow(), rect, tx, ty)) {
 295 if (rangeIntersectsRect(renderer, curr->logicalTopVisualOverflow(), curr->logicalBottomVisualOverflow(), rect, tx, ty)) {
296296 bool inside = curr->nodeAtPoint(request, result, x, y, tx, ty);
297297 if (inside) {
298298 renderer->updateHitTestResult(result, IntPoint(x - tx, y - ty));
73334

WebCore/rendering/RenderListItem.cpp

@@void RenderListItem::layout()
243243 RenderBlock::layout();
244244}
245245
 246void RenderListItem::addOverflowFromChildren()
 247{
 248 RenderBlock::addOverflowFromChildren();
 249 positionListMarker();
 250}
 251
246252void RenderListItem::positionListMarker()
247253{
248254 if (m_marker && m_marker->parent()->isBox() && !m_marker->isInside() && m_marker->inlineBoxWrapper()) {

@@void RenderListItem::positionListMarker(
257263 bool adjustOverflow = false;
258264 int markerLogicalLeft;
259265 RootInlineBox* root = m_marker->inlineBoxWrapper()->root();
 266 bool hitSelfPaintingLayer = false;
260267
261  // FIXME: Inline flows in the line box hierarchy that have self-painting layers should act as cutoff points
262  // and really shouldn't keep propagating overflow up. This won't really break anything other than repainting
263  // not being as tight as it could be though.
 268 // FIXME: Need to account for relative positioning in the layout overflow.
264269 if (style()->isLeftToRightDirection()) {
265270 int leftLineOffset = logicalLeftOffsetForLine(blockOffset, logicalLeftOffsetForLine(blockOffset, false), false);
266271 markerLogicalLeft = leftLineOffset - lineOffset - paddingStart() - borderStart() + m_marker->marginStart();
267272 m_marker->inlineBoxWrapper()->adjustLineDirectionPosition(markerLogicalLeft - markerOldLogicalLeft);
268273 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); box; box = box->parent()) {
269  if (markerLogicalLeft < box->logicalLeftLayoutOverflow()) {
270  box->setInlineDirectionOverflowPositions(markerLogicalLeft, box->logicalRightLayoutOverflow(), box->logicalLeftVisualOverflow(), box->logicalRightVisualOverflow());
 274 IntRect newLogicalVisualOverflowRect = box->logicalVisualOverflowRect();
 275 IntRect newLogicalLayoutOverflowRect = box->logicalLayoutOverflowRect();
 276 if (markerLogicalLeft < newLogicalVisualOverflowRect.x() && !hitSelfPaintingLayer) {
 277 newLogicalVisualOverflowRect.setX(markerLogicalLeft);
 278 newLogicalVisualOverflowRect.setWidth(box->logicalRightVisualOverflow() - newLogicalVisualOverflowRect.x());
 279 if (box == root)
 280 adjustOverflow = true;
 281 }
 282 if (markerLogicalLeft < newLogicalLayoutOverflowRect.x()) {
 283 newLogicalLayoutOverflowRect.setX(markerLogicalLeft);
 284 newLogicalLayoutOverflowRect.setWidth(box->logicalRightLayoutOverflow() - newLogicalLayoutOverflowRect.x());
271285 if (box == root)
272286 adjustOverflow = true;
273287 }
 288 box->setOverflowFromLogicalRects(newLogicalLayoutOverflowRect, newLogicalVisualOverflowRect);
 289 if (box->boxModelObject()->hasSelfPaintingLayer())
 290 hitSelfPaintingLayer = true;
274291 }
275292 } else {
276293 markerLogicalLeft = m_marker->logicalLeft() + paddingStart() + borderStart() + m_marker->marginEnd();

@@void RenderListItem::positionListMarker(
278295 markerLogicalLeft = rightLineOffset - lineOffset + paddingStart() + borderStart() + m_marker->marginEnd();
279296 m_marker->inlineBoxWrapper()->adjustLineDirectionPosition(markerLogicalLeft - markerOldLogicalLeft);
280297 for (InlineFlowBox* box = m_marker->inlineBoxWrapper()->parent(); box; box = box->parent()) {
281  if (markerLogicalLeft + m_marker->logicalWidth() > box->logicalRightLayoutOverflow()) {
282  box->setInlineDirectionOverflowPositions(box->logicalLeftLayoutOverflow(), markerLogicalLeft + m_marker->logicalWidth(), box->logicalLeftVisualOverflow(), box->logicalRightVisualOverflow());
 298 IntRect newLogicalVisualOverflowRect = box->logicalVisualOverflowRect();
 299 IntRect newLogicalLayoutOverflowRect = box->logicalLayoutOverflowRect();
 300 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalVisualOverflowRect.right() && !hitSelfPaintingLayer) {
 301 newLogicalVisualOverflowRect.setWidth(markerLogicalLeft + m_marker->logicalWidth() - box->logicalLeftVisualOverflow());
283302 if (box == root)
284303 adjustOverflow = true;
285304 }
 305 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalLayoutOverflowRect.right()) {
 306 newLogicalLayoutOverflowRect.setWidth(markerLogicalLeft + m_marker->logicalWidth() - box->logicalLeftLayoutOverflow());
 307 if (box == root)
 308 adjustOverflow = true;
 309 }
 310 box->setOverflowFromLogicalRects(newLogicalLayoutOverflowRect, newLogicalVisualOverflowRect);
 311
 312 if (box->boxModelObject()->hasSelfPaintingLayer())
 313 hitSelfPaintingLayer = true;
286314 }
287315 }
288316

@@void RenderListItem::positionListMarker(
291319 if (!style()->isHorizontalWritingMode())
292320 markerRect = markerRect.transposedRect();
293321 RenderBox* o = m_marker;
 322 bool propagateVisualOverflow = true;
 323 bool propagateLayoutOverflow = true;
294324 do {
295325 o = o->parentBox();
296  if (o->isRenderBlock())
297  toRenderBlock(o)->addLayoutOverflow(markerRect);
 326 if (o->hasOverflowClip())
 327 propagateVisualOverflow = false;
 328 if (o->isRenderBlock()) {
 329 if (propagateVisualOverflow)
 330 toRenderBlock(o)->addVisualOverflow(markerRect);
 331 if (propagateLayoutOverflow)
 332 toRenderBlock(o)->addLayoutOverflow(markerRect);
 333 }
 334 if (o->hasOverflowClip())
 335 propagateLayoutOverflow = false;
 336 if (o->hasSelfPaintingLayer())
 337 propagateVisualOverflow = false;
298338 markerRect.move(-o->x(), -o->y());
299  } while (o != this && !o->hasSelfPaintingLayer());
 339 } while (o != this && propagateVisualOverflow && propagateLayoutOverflow);
300340 }
301341 }
302342}
73334

WebCore/rendering/RenderListItem.h

@@private:
6262 virtual void layout();
6363 virtual void computePreferredLogicalWidths();
6464
65  virtual void positionListMarker();
 65 void positionListMarker();
6666
6767 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
6868
6969 virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
7070
 71 virtual void addOverflowFromChildren();
 72
7173 void updateMarkerLocation();
7274 inline int calcValue() const;
7375 void updateValueNow() const;
73334

WebCore/rendering/RenderListMarker.cpp

@@void RenderListMarker::paint(PaintInfo&
11031103 return;
11041104
11051105 IntPoint boxOrigin(tx + x(), ty + y());
1106  IntRect overflowRect(visibleOverflowRect());
 1106 IntRect overflowRect(visualOverflowRect());
11071107 overflowRect.move(boxOrigin.x(), boxOrigin.y());
11081108 overflowRect.inflate(maximalOutlineSize(paintInfo.phase));
11091109
73334

WebCore/rendering/RenderMarquee.cpp

@@int RenderMarquee::computePosition(EMarq
116116 if (isHorizontal()) {
117117 bool ltr = s->isLeftToRightDirection();
118118 int clientWidth = box->clientWidth();
119  int contentWidth = ltr ? box->rightmostPosition(true, false) : box->leftmostPosition(true, false);
 119 int contentWidth = ltr ? box->rightLayoutOverflow() : box->leftLayoutOverflow();
120120 if (ltr)
121121 contentWidth += (box->paddingRight() - box->borderLeft());
122122 else {

@@int RenderMarquee::computePosition(EMarq
137137 }
138138 }
139139 else {
140  int contentHeight = box->lowestPosition(true, false) -
141  box->borderTop() + box->paddingBottom();
 140 int contentHeight = box->bottomLayoutOverflow() - box->borderTop() + box->paddingBottom();
142141 int clientHeight = box->clientHeight();
143142 if (dir == MUP) {
144143 if (stopAtContentEdge)
73334

WebCore/rendering/RenderMedia.cpp

@@void RenderMedia::forwardEvent(Event* ev
600600 }
601601}
602602
603 int RenderMedia::topmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
604 {
605  int top = RenderImage::topmostPosition(includeOverflowInterior, includeSelf, applyTransform);
606  if (!m_controlsShadowRoot || !m_controlsShadowRoot->renderer())
607  return top;
608 
609  top = min(top, m_controlsShadowRoot->renderBox()->transformedFrameRect().y() + m_controlsShadowRoot->renderBox()->topmostPosition(includeOverflowInterior, includeSelf, applyTransform));
610 
611  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
612  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
613  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
614  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
615  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
616  return transformRect.y();
617  }
618 
619  return top;
620 }
621 
622 int RenderMedia::lowestPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
623 {
624  int bottom = RenderImage::lowestPosition(includeOverflowInterior, includeSelf, applyTransform);
625  if (!m_controlsShadowRoot || !m_controlsShadowRoot->renderer())
626  return bottom;
627 
628  bottom = max(bottom, m_controlsShadowRoot->renderBox()->transformedFrameRect().y() + m_controlsShadowRoot->renderBox()->lowestPosition(includeOverflowInterior, includeSelf, applyTransform));
629 
630  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
631  int top = topmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
632  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
633  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
634  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
635  return transformRect.height() + transformRect.y();
636  }
637 
638  return bottom;
639 }
640 
641 int RenderMedia::rightmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
642 {
643  int right = RenderImage::rightmostPosition(includeOverflowInterior, includeSelf, applyTransform);
644  if (!m_controlsShadowRoot || !m_controlsShadowRoot->renderer())
645  return right;
646 
647  right = max(right, m_controlsShadowRoot->renderBox()->transformedFrameRect().x() + m_controlsShadowRoot->renderBox()->rightmostPosition(includeOverflowInterior, includeSelf, applyTransform));
648 
649  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
650  int top = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
651  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
652  int left = leftmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
653  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
654  return transformRect.width() + transformRect.x();
655  }
656 
657  return right;
658 }
659 
660 int RenderMedia::leftmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
661 {
662  int left = RenderImage::leftmostPosition(includeOverflowInterior, includeSelf, applyTransform);
663  if (!m_controlsShadowRoot || !m_controlsShadowRoot->renderer())
664  return left;
665 
666  left = min(left, m_controlsShadowRoot->renderBox()->transformedFrameRect().x() + m_controlsShadowRoot->renderBox()->leftmostPosition(includeOverflowInterior, includeSelf, applyTransform));
667 
668  if (applyTransform == IncludeTransform && includeSelf && layer() && layer()->hasTransform()) {
669  int top = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
670  int bottom = lowestPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
671  int right = rightmostPosition(includeOverflowInterior, includeSelf, ExcludeTransform);
672  IntRect transformRect = applyLayerTransformToRect(IntRect(left, top, right - left, bottom - top));
673  return transformRect.x();
674  }
675 
676  return left;
677 }
678 
679 
680603// We want the timeline slider to be at least 100 pixels wide.
681604static const int minWidthToDisplayTimeDisplays = 16 + 16 + 45 + 100 + 45 + 16 + 1;
682605
73334

WebCore/rendering/RenderMedia.h

@@private:
8585 virtual bool isMedia() const { return true; }
8686 virtual bool isImage() const { return false; }
8787
88  virtual int topmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
89  virtual int lowestPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
90  virtual int rightmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
91  virtual int leftmostPosition(bool includeOverflowInterior = true, bool includeSelf = true, ApplyTransform = IncludeTransform) const;
92 
9388 void createControlsShadowRoot();
9489 void destroyControlsShadowRoot();
9590 void createPanel();
73334

WebCore/rendering/RenderOverflow.h

@@namespace WebCore
3939// This object is allocated only when some of these fields have non-default values in the owning box.
4040class RenderOverflow : public Noncopyable {
4141public:
42  RenderOverflow(const IntRect& defaultRect = IntRect())
43  : m_topLayoutOverflow(defaultRect.y())
44  , m_bottomLayoutOverflow(defaultRect.bottom())
45  , m_leftLayoutOverflow(defaultRect.x())
46  , m_rightLayoutOverflow(defaultRect.right())
47  , m_topVisualOverflow(defaultRect.y())
48  , m_bottomVisualOverflow(defaultRect.bottom())
49  , m_leftVisualOverflow(defaultRect.x())
50  , m_rightVisualOverflow(defaultRect.right())
 42 RenderOverflow(const IntRect& layoutRect, const IntRect& visualRect)
 43 : m_topLayoutOverflow(layoutRect.y())
 44 , m_bottomLayoutOverflow(layoutRect.bottom())
 45 , m_leftLayoutOverflow(layoutRect.x())
 46 , m_rightLayoutOverflow(layoutRect.right())
 47 , m_topVisualOverflow(visualRect.y())
 48 , m_bottomVisualOverflow(visualRect.bottom())
 49 , m_leftVisualOverflow(visualRect.x())
 50 , m_rightVisualOverflow(visualRect.right())
5151 {
5252 }
5353

@@public:
6363 int rightVisualOverflow() const { return m_rightVisualOverflow; }
6464 IntRect visualOverflowRect() const;
6565
66  IntRect visibleOverflowRect() const;
67 
6866 void setTopLayoutOverflow(int overflow) { m_topLayoutOverflow = overflow; }
6967 void setBottomLayoutOverflow(int overflow) { m_bottomLayoutOverflow = overflow; }
7068 void setLeftLayoutOverflow(int overflow) { m_leftLayoutOverflow = overflow; }

@@public:
8078 void addLayoutOverflow(const IntRect&);
8179 void addVisualOverflow(const IntRect&);
8280
 81 void setLayoutOverflow(const IntRect&);
 82 void setVisualOverflow(const IntRect&);
 83
8384 void resetLayoutOverflow(const IntRect& defaultRect);
8485
8586private:

@@inline IntRect RenderOverflow::visualOve
104105 return IntRect(m_leftVisualOverflow, m_topVisualOverflow, m_rightVisualOverflow - m_leftVisualOverflow, m_bottomVisualOverflow - m_topVisualOverflow);
105106}
106107
107 inline IntRect RenderOverflow::visibleOverflowRect() const
108 {
109  IntRect combinedRect(layoutOverflowRect());
110  combinedRect.unite(visualOverflowRect());
111  return combinedRect;
112 }
113 
114108inline void RenderOverflow::move(int dx, int dy)
115109{
116110 m_topLayoutOverflow += dy;

@@inline void RenderOverflow::addVisualOve
140134 m_rightVisualOverflow = std::max(rect.right(), m_rightVisualOverflow);
141135}
142136
 137inline void RenderOverflow::setLayoutOverflow(const IntRect& rect)
 138{
 139 m_topLayoutOverflow = rect.y();
 140 m_bottomLayoutOverflow = rect.bottom();
 141 m_leftLayoutOverflow = rect.x();
 142 m_rightLayoutOverflow = rect.right();
 143}
 144
 145inline void RenderOverflow::setVisualOverflow(const IntRect& rect)
 146{
 147 m_topVisualOverflow = rect.y();
 148 m_bottomVisualOverflow = rect.bottom();
 149 m_leftVisualOverflow = rect.x();
 150 m_rightVisualOverflow = rect.right();
 151}
 152
143153inline void RenderOverflow::resetLayoutOverflow(const IntRect& rect)
144154{
145155 m_topLayoutOverflow = rect.y();
73334

WebCore/rendering/RenderReplaced.cpp

@@bool RenderReplaced::shouldPaint(PaintIn
176176 int currentTY = ty + y();
177177
178178 // Early exit if the element touches the edges.
179  int top = currentTY + topVisibleOverflow();
180  int bottom = currentTY + bottomVisibleOverflow();
 179 int top = currentTY + topVisualOverflow();
 180 int bottom = currentTY + bottomVisualOverflow();
181181 if (isSelected() && m_inlineBoxWrapper) {
182182 int selTop = ty + m_inlineBoxWrapper->root()->selectionTop();
183183 int selBottom = ty + selTop + m_inlineBoxWrapper->root()->selectionHeight();

@@bool RenderReplaced::shouldPaint(PaintIn
186186 }
187187
188188 int os = 2 * maximalOutlineSize(paintInfo.phase);
189  if (currentTX + leftVisibleOverflow() >= paintInfo.rect.right() + os || currentTX + rightVisibleOverflow() <= paintInfo.rect.x() - os)
 189 if (currentTX + leftVisualOverflow() >= paintInfo.rect.right() + os || currentTX + rightVisualOverflow() <= paintInfo.rect.x() - os)
190190 return false;
191191 if (top >= paintInfo.rect.bottom() + os || bottom <= paintInfo.rect.y() - os)
192192 return false;

@@IntRect RenderReplaced::clippedOverflowR
389389
390390 // The selectionRect can project outside of the overflowRect, so take their union
391391 // for repainting to avoid selection painting glitches.
392  IntRect r = unionRect(localSelectionRect(false), visibleOverflowRect());
 392 IntRect r = unionRect(localSelectionRect(false), visualOverflowRect());
393393
394394 RenderView* v = view();
395395 if (v) {
73334

WebCore/rendering/RenderRubyRun.cpp

@@void RenderRubyRun::layout()
278278
279279 // Update our overflow to account for the new RenderRubyText position.
280280 m_overflow.clear();
281  addOverflowFromBlockChildren();
 281 computeOverflow(clientLogicalBottom());
282282}
283283
284284} // namespace WebCore
73334

WebCore/rendering/RenderTable.cpp

@@void RenderTable::layout()
357357 while (section) {
358358 if (!sectionMoved && section->logicalTop() != logicalHeight()) {
359359 sectionMoved = true;
360  movedSectionLogicalTop = min(logicalHeight(), section->logicalTop()) + (style()->isHorizontalWritingMode() ? section->topVisibleOverflow() : section->leftVisibleOverflow());
 360 movedSectionLogicalTop = min(logicalHeight(), section->logicalTop()) + (style()->isHorizontalWritingMode() ? section->topVisualOverflow() : section->leftVisualOverflow());
361361 }
362362 section->setLogicalLocation(sectionLogicalLeft, logicalHeight());
363363

@@void RenderTable::layout()
386386
387387 updateLayerTransform();
388388
389  // Add overflow from borders.
390  int rightBorderOverflow = width() + (collapsing ? outerBorderRight() - borderRight() : 0);
391  int leftBorderOverflow = collapsing ? borderLeft() - outerBorderLeft() : 0;
392  int bottomBorderOverflow = height() + (collapsing ? outerBorderBottom() - borderBottom() : 0);
393  int topBorderOverflow = collapsing ? borderTop() - outerBorderTop() : 0;
394  addLayoutOverflow(IntRect(leftBorderOverflow, topBorderOverflow, rightBorderOverflow - leftBorderOverflow, bottomBorderOverflow - topBorderOverflow));
395 
396  // Add visual overflow from box-shadow and reflections.
397  addShadowOverflow();
398 
399  // Add overflow from our caption.
400  if (m_caption)
401  addOverflowFromChild(m_caption);
402 
403  // Add overflow from our sections.
404  for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
405  if (child->isTableSection()) {
406  RenderTableSection* section = toRenderTableSection(child);
407  addOverflowFromChild(section);
408  }
409  }
 389 computeOverflow(clientLogicalBottom());
410390
411391 statePusher.pop();
412392

@@void RenderTable::layout()
417397 // Repaint with our new bounds if they are different from our old bounds.
418398 if (!didFullRepaint && sectionMoved) {
419399 if (style()->isHorizontalWritingMode())
420  repaintRectangle(IntRect(leftVisibleOverflow(), movedSectionLogicalTop, rightVisibleOverflow() - leftVisibleOverflow(), bottomVisibleOverflow() - movedSectionLogicalTop));
 400 repaintRectangle(IntRect(leftVisualOverflow(), movedSectionLogicalTop, rightVisualOverflow() - leftVisualOverflow(), bottomVisualOverflow() - movedSectionLogicalTop));
421401 else
422  repaintRectangle(IntRect(movedSectionLogicalTop, topVisibleOverflow(), rightVisibleOverflow() - movedSectionLogicalTop, bottomVisibleOverflow() - topVisibleOverflow()));
 402 repaintRectangle(IntRect(movedSectionLogicalTop, topVisualOverflow(), rightVisualOverflow() - movedSectionLogicalTop, bottomVisualOverflow() - topVisualOverflow()));
423403 }
424404
425405 setNeedsLayout(false);
426406}
427407
 408void RenderTable::addOverflowFromChildren()
 409{
 410 // Add overflow from borders.
 411 // Technically it's odd that we are incorporating the borders into layout overflow, which is only supposed to be about overflow from our
 412 // descendant objects, but since tables don't support overflow:auto, this works out fine.
 413 if (collapseBorders()) {
 414 int rightBorderOverflow = width() + outerBorderRight() - borderRight();
 415 int leftBorderOverflow = borderLeft() - outerBorderLeft();
 416 int bottomBorderOverflow = height() + outerBorderBottom() - borderBottom();
 417 int topBorderOverflow = borderTop() - outerBorderTop();
 418 IntRect borderOverflowRect(leftBorderOverflow, topBorderOverflow, rightBorderOverflow - leftBorderOverflow, bottomBorderOverflow - topBorderOverflow);
 419 if (borderOverflowRect != borderBoxRect()) {
 420 addLayoutOverflow(borderOverflowRect);
 421 addVisualOverflow(borderOverflowRect);
 422 }
 423 }
 424
 425 // Add overflow from our caption.
 426 if (m_caption)
 427 addOverflowFromChild(m_caption);
 428
 429 // Add overflow from our sections.
 430 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {
 431 if (child->isTableSection()) {
 432 RenderTableSection* section = toRenderTableSection(child);
 433 addOverflowFromChild(section);
 434 }
 435 }
 436}
 437
428438void RenderTable::setCellLogicalWidths()
429439{
430440 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) {

@@void RenderTable::paint(PaintInfo& paint
441451 PaintPhase paintPhase = paintInfo.phase;
442452
443453 int os = 2 * maximalOutlineSize(paintPhase);
444  if (ty + topVisibleOverflow() >= paintInfo.rect.bottom() + os || ty + bottomVisibleOverflow() <= paintInfo.rect.y() - os)
 454 if (ty + topVisualOverflow() >= paintInfo.rect.bottom() + os || ty + bottomVisualOverflow() <= paintInfo.rect.y() - os)
445455 return;
446  if (tx + leftVisibleOverflow() >= paintInfo.rect.right() + os || tx + rightVisibleOverflow() <= paintInfo.rect.x() - os)
 456 if (tx + leftVisualOverflow() >= paintInfo.rect.right() + os || tx + rightVisualOverflow() <= paintInfo.rect.x() - os)
447457 return;
448458
449459 bool pushedClip = pushContentsClip(paintInfo, tx, ty);
73334

WebCore/rendering/RenderTable.h

@@private:
232232
233233 virtual IntRect overflowClipRect(int tx, int ty);
234234
 235 virtual void addOverflowFromChildren();
 236
235237 void subtractCaptionRect(IntRect&) const;
236238
237239 void recalcSections() const;
73334

WebCore/rendering/RenderTableCell.cpp

@@IntRect RenderTableCell::clippedOverflow
266266 right = max(right, below->borderHalfRight(true));
267267 }
268268 }
269  left = max(left, -leftVisibleOverflow());
270  top = max(top, -topVisibleOverflow());
271  IntRect r(-left, - top, left + max(width() + right, rightVisibleOverflow()), top + max(height() + bottom, bottomVisibleOverflow()));
 269 left = max(left, -leftVisualOverflow());
 270 top = max(top, -topVisualOverflow());
 271 IntRect r(-left, - top, left + max(width() + right, rightVisualOverflow()), top + max(height() + bottom, bottomVisualOverflow()));
272272
273273 if (RenderView* v = view()) {
274274 // FIXME: layoutDelta needs to be applied in parts before/after transforms and

@@void RenderTableCell::paintMask(PaintInf
10331033 paintMaskImages(paintInfo, tx, ty, w, h);
10341034}
10351035
 1036void RenderTableCell::scrollbarsChanged(bool horizontalScrollbarChanged, bool verticalScrollbarChanged)
 1037{
 1038 int scrollbarHeight = scrollbarLogicalHeight();
 1039 if (!scrollbarHeight)
 1040 return; // Not sure if we should be doing something when a scrollbar goes away or not.
 1041
 1042 // We only care if the scrollbar that affects our intrinsic padding has been added.
 1043 if ((style()->isHorizontalWritingMode() && !horizontalScrollbarChanged) ||
 1044 (!style()->isHorizontalWritingMode() && !verticalScrollbarChanged))
 1045 return;
 1046
 1047 // Shrink our intrinsic padding as much as possible to accommodate the scrollbar.
 1048 if (style()->verticalAlign() == MIDDLE) {
 1049 int totalHeight = logicalHeight();
 1050 int heightWithoutIntrinsicPadding = totalHeight - intrinsicPaddingBefore() - intrinsicPaddingAfter();
 1051 totalHeight -= scrollbarHeight;
 1052 int newBeforePadding = (totalHeight - heightWithoutIntrinsicPadding) / 2;
 1053 int newAfterPadding = totalHeight - heightWithoutIntrinsicPadding - newBeforePadding;
 1054 setIntrinsicPaddingBefore(newBeforePadding);
 1055 setIntrinsicPaddingAfter(newAfterPadding);
 1056 } else
 1057 setIntrinsicPaddingAfter(intrinsicPaddingAfter() - scrollbarHeight);
 1058}
 1059
10361060} // namespace WebCore
73334

WebCore/rendering/RenderTableCell.h

@@public:
121121
122122 virtual void setOverrideSize(int);
123123
124  bool hasVisibleOverflow() const { return m_overflow; }
 124 bool hasVisualOverflow() const { return m_overflow && !borderBoxRect().contains(m_overflow->visualOverflowRect()); }
 125
 126 virtual void scrollbarsChanged(bool horizontalScrollbarChanged, bool verticalScrollbarChanged);
125127
126128protected:
127129 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
73334

WebCore/rendering/RenderTableSection.cpp

@@int RenderTableSection::layoutRows(int t
654654 if (r < totalRows - 1 && cell == primaryCellAt(r + 1, c))
655655 continue;
656656 addOverflowFromChild(cell);
657  m_hasOverflowingCell |= cell->hasVisibleOverflow();
 657 m_hasOverflowingCell |= cell->hasVisualOverflow();
658658 }
659659 }
660660

@@int RenderTableSection::layoutRows(int t
662662 return height();
663663}
664664
665 int RenderTableSection::topmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
666 {
667  int top = RenderBox::topmostPosition(includeOverflowInterior, includeSelf, applyTransform);
668  if (!includeOverflowInterior && hasOverflowClip())
669  return top;
670 
671  for (RenderObject* row = firstChild(); row; row = row->nextSibling()) {
672  for (RenderObject* curr = row->firstChild(); curr; curr = curr->nextSibling()) {
673  if (curr->isTableCell()) {
674  RenderTableCell* cell = toRenderTableCell(curr);
675  top = min(top, cell->transformedFrameRect().y() + cell->topmostPosition(false));
676  }
677  }
678  }
679 
680  return top;
681 }
682 
683 int RenderTableSection::lowestPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
684 {
685  int bottom = RenderBox::lowestPosition(includeOverflowInterior, includeSelf, applyTransform);
686  if (!includeOverflowInterior && hasOverflowClip())
687  return bottom;
688 
689  for (RenderObject* row = firstChild(); row; row = row->nextSibling()) {
690  for (RenderObject* curr = row->firstChild(); curr; curr = curr->nextSibling()) {
691  if (curr->isTableCell()) {
692  RenderTableCell* cell = toRenderTableCell(curr);
693  bottom = max(bottom, cell->transformedFrameRect().y() + cell->lowestPosition(false));
694  }
695  }
696  }
697 
698  return bottom;
699 }
700 
701 int RenderTableSection::rightmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
702 {
703  int right = RenderBox::rightmostPosition(includeOverflowInterior, includeSelf, applyTransform);
704  if (!includeOverflowInterior && hasOverflowClip())
705  return right;
706 
707  for (RenderObject* row = firstChild(); row; row = row->nextSibling()) {
708  for (RenderObject* curr = row->firstChild(); curr; curr = curr->nextSibling()) {
709  if (curr->isTableCell()) {
710  RenderTableCell* cell = toRenderTableCell(curr);
711  right = max(right, cell->transformedFrameRect().x() + cell->rightmostPosition(false));
712  }
713  }
714  }
715 
716  return right;
717 }
718 
719 int RenderTableSection::leftmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform applyTransform) const
720 {
721  int left = RenderBox::leftmostPosition(includeOverflowInterior, includeSelf, applyTransform);
722  if (!includeOverflowInterior && hasOverflowClip())
723  return left;
724 
725  for (RenderObject* row = firstChild(); row; row = row->nextSibling()) {
726  for (RenderObject* curr = row->firstChild(); curr; curr = curr->nextSibling()) {
727  if (curr->isTableCell()) {
728  RenderTableCell* cell = toRenderTableCell(curr);
729  left = min(left, cell->transformedFrameRect().x() + cell->leftmostPosition(false));
730  }
731  }
732  }
733 
734  return left;
735 }
736 
737665int RenderTableSection::calcOuterBorderBefore() const
738666{
739667 int totalCols = table()->numEffCols();
73334

WebCore/rendering/RenderTableSection.h

@@private:
136136
137137 virtual void removeChild(RenderObject* oldChild);
138138
139  virtual int topmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform = IncludeTransform) const;
140  virtual int lowestPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform = IncludeTransform) const;
141  virtual int rightmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform = IncludeTransform) const;
142  virtual int leftmostPosition(bool includeOverflowInterior, bool includeSelf, ApplyTransform = IncludeTransform) const;
143 
144139 virtual void paint(PaintInfo&, int tx, int ty);
145140 virtual void paintCell(RenderTableCell*, PaintInfo&, int tx, int ty);
146141 virtual void paintObject(PaintInfo&, int tx, int ty);
73334

WebCore/rendering/RenderTreeAsText.cpp

@@static void write(TextStream& ts, Render
616616}
617617
618618static void writeLayers(TextStream& ts, const RenderLayer* rootLayer, RenderLayer* l,
619  const IntRect& paintDirtyRect, int indent, RenderAsTextBehavior behavior)
 619 const IntRect& paintRect, int indent, RenderAsTextBehavior behavior)
620620{
 621 // FIXME: Apply overflow to the root layer to not break every test. Complete hack. Sigh.
 622 IntRect paintDirtyRect(paintRect);
 623 if (rootLayer == l) {
 624 paintDirtyRect.setWidth(max(paintDirtyRect.width(), rootLayer->renderBox()->rightLayoutOverflow()));
 625 paintDirtyRect.setHeight(max(paintDirtyRect.height(), rootLayer->renderBox()->bottomLayoutOverflow()));
 626 l->setWidth(max(l->width(), l->renderBox()->rightLayoutOverflow()));
 627 l->setHeight(max(l->height(), l->renderBox()->bottomLayoutOverflow()));
 628 }
 629
621630 // Calculate the clip rects we should use.
622631 IntRect layerBounds, damageRect, clipRectToApply, outlineRect;
623632 l->calculateRects(rootLayer, paintDirtyRect, layerBounds, damageRect, clipRectToApply, outlineRect, true);
73334

WebCore/rendering/RenderView.cpp

@@void RenderView::layout()
129129 if (needsLayout())
130130 RenderBlock::layout();
131131
132  // Reset overflow and then replace it with docWidth and docHeight.
133  m_overflow.clear();
134  int leftOverflow = docLeft();
135  int topOverflow = docTop();
136  addLayoutOverflow(IntRect(leftOverflow, topOverflow, docWidth(leftOverflow), docHeight(topOverflow)));
137 
138132 ASSERT(layoutDelta() == IntSize());
139133 ASSERT(m_layoutStateDisableCount == 0);
140134 ASSERT(m_layoutState == &state);

@@IntRect RenderView::viewRect() const
620614
621615int RenderView::docTop() const
622616{
623  // Clip out top overflow in vertical LTR pages or horizontal-tb pages.
624  if ((!style()->isHorizontalWritingMode() && style()->isLeftToRightDirection()) || style()->writingMode() == TopToBottomWritingMode)
625  return 0;
626  return std::min(0, topmostPosition());
 617 IntRect overflowRect(0, topLayoutOverflow(), 0, bottomLayoutOverflow() - topLayoutOverflow());
 618 flipForWritingMode(overflowRect);
 619 return overflowRect.y();
627620}
628621
629 int RenderView::docHeight(int topOverflow) const
 622int RenderView::docBottom() const
630623{
631  int h = ((!style()->isHorizontalWritingMode() && style()->isLeftToRightDirection()) || style()->writingMode() == TopToBottomWritingMode) ?
632  lowestPosition() : height() - topOverflow;
633 
634  // FIXME: This doesn't do any margin collapsing.
635  // Instead of this dh computation we should keep the result
636  // when we call RenderBlock::layout.
637  int dh = 0;
638  for (RenderBox* c = firstChildBox(); c; c = c->nextSiblingBox())
639  dh += c->height() + c->marginTop() + c->marginBottom();
640 
641  if (dh > h)
642  h = dh;
643 
644  return h;
 624 IntRect overflowRect(layoutOverflowRect());
 625 flipForWritingMode(overflowRect);
 626 return overflowRect.bottom();
645627}
646628
647629int RenderView::docLeft() const
648630{
649  // Clip out left overflow in horizontal LTR pages or vertical-lr pages.
650  if ((style()->isHorizontalWritingMode() && style()->isLeftToRightDirection()) || style()->writingMode() == LeftToRightWritingMode)
651  return 0;
652  return std::min(0, leftmostPosition());
 631 IntRect overflowRect(layoutOverflowRect());
 632 flipForWritingMode(overflowRect);
 633 return overflowRect.x();
653634}
654635
655 int RenderView::docWidth(int leftOverflow) const
 636int RenderView::docRight() const
656637{
657  int w = ((style()->isHorizontalWritingMode() && style()->isLeftToRightDirection()) || style()->writingMode() == LeftToRightWritingMode) ?
658  rightmostPosition() : width() - leftOverflow;
659 
660  for (RenderBox* c = firstChildBox(); c; c = c->nextSiblingBox()) {
661  int dw = c->width() + c->marginLeft() + c->marginRight();
662  if (dw > w)
663  w = dw;
664  }
665 
666  return w;
 638 IntRect overflowRect(layoutOverflowRect());
 639 flipForWritingMode(overflowRect);
 640 return overflowRect.right();
667641}
668642
669643int RenderView::viewHeight() const
73334

WebCore/rendering/RenderView.h

@@public:
166166 bool usesCompositing() const;
167167#endif
168168
 169 int docTop() const;
 170 int docBottom() const;
 171 int docHeight() const { return docBottom() - docTop(); }
 172 int docLeft() const;
 173 int docRight() const;
 174 int docWidth() const { return docRight() - docLeft(); }
 175
169176protected:
170177 virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&) const;
171178 virtual void mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, TransformState&) const;

@@protected:
173180private:
174181 bool shouldRepaint(const IntRect& r) const;
175182
176  int docTop() const;
177  int docHeight(int topOverflow) const;
178  int docLeft() const;
179  int docWidth(int leftOverflow) const;
180 
181183 // These functions may only be accessed by LayoutStateMaintainer.
182184 bool pushLayoutState(RenderBox* renderer, const IntSize& offset, int pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0)
183185 {
73334

WebCore/rendering/RootInlineBox.cpp

@@void RootInlineBox::addHighlightOverflow
150150 // Highlight acts as a selection inflation.
151151 FloatRect rootRect(0, selectionTop(), logicalWidth(), selectionHeight());
152152 IntRect inflatedRect = enclosingIntRect(page->chrome()->client()->customHighlightRect(renderer()->node(), renderer()->style()->highlight(), rootRect));
153  setInlineDirectionOverflowPositions(leftLayoutOverflow(), rightLayoutOverflow(), min(leftVisualOverflow(), inflatedRect.x()), max(rightVisualOverflow(), inflatedRect.right()));
154  setBlockDirectionOverflowPositions(topLayoutOverflow(), bottomLayoutOverflow(), min(topVisualOverflow(), inflatedRect.y()), max(bottomVisualOverflow(), inflatedRect.bottom()));
 153 setOverflowFromLogicalRects(inflatedRect, inflatedRect);
155154}
156155
157156void RootInlineBox::paintCustomHighlight(PaintInfo& paintInfo, int tx, int ty, const AtomicString& highlightType)

@@int RootInlineBox::alignBoxesInBlockDire
252251 bool containsRuby = false;
253252 placeBoxesInBlockDirection(heightOfBlock, maxHeight, maxAscent, noQuirksMode, lineTop, lineBottom, setLineTop,
254253 lineTopIncludingMargins, lineBottomIncludingMargins, containsRuby, m_baselineType);
255  computeBlockDirectionOverflow(lineTop, lineBottom, noQuirksMode, textBoxDataMap);
256254 setLineTopBottomPositions(lineTop, lineBottom);
257255
258256 m_containsRuby = containsRuby;

@@void RootInlineBox::attachLineBoxToRende
509507 block()->lineBoxes()->attachLineBox(this);
510508}
511509
 510IntRect RootInlineBox::paddedLayoutOverflowRect(int endPadding) const
 511{
 512 IntRect lineLayoutOverflow = layoutOverflowRect();
 513 if (!endPadding)
 514 return lineLayoutOverflow;
 515
 516 if (isHorizontal()) {
 517 if (isLeftToRightDirection())
 518 lineLayoutOverflow.shiftRightEdgeTo(max(lineLayoutOverflow.right(), logicalRight() + endPadding));
 519 else
 520 lineLayoutOverflow.shiftLeftEdgeTo(min(lineLayoutOverflow.x(), logicalLeft() - endPadding));
 521 } else {
 522 if (isLeftToRightDirection())
 523 lineLayoutOverflow.shiftBottomEdgeTo(max(lineLayoutOverflow.bottom(), logicalRight() + endPadding));
 524 else
 525 lineLayoutOverflow.shiftTopEdgeTo(min(lineLayoutOverflow.y(), logicalRight() - endPadding));
 526 }
 527
 528 return lineLayoutOverflow;
 529}
 530
512531} // namespace WebCore
73334

WebCore/rendering/RootInlineBox.h

@@public:
130130
131131 bool containsRuby() const { return m_containsRuby; }
132132
 133 IntRect paddedLayoutOverflowRect(int endPadding) const;
 134
133135private:
134136 bool hasEllipsisBox() const { return m_hasEllipsisBoxOrHyphen; }
135137 void setHasEllipsisBox(bool hasEllipsisBox) { m_hasEllipsisBoxOrHyphen = hasEllipsisBox; }
73334

LayoutTests/ChangeLog

 12010-12-05 David Hyatt <hyatt@apple.com>
 2
 3 Reviewed by NOBODY (OOPS!).
 4
 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
 6 O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
 7
 8 This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
 9 in the engine to cache all the information required to properly handle scrolling.
 10
 11 In the old code, there were two types of overflow: layout overflow and visual overflow. The former could
 12 affect scrolling and the latter could not. The distinction was largely meaningless, since layout overflow
 13 wasn't actually used to determine scroll width or scroll height. It didn't propagate across self-painting layer
 14 boundaries either. In the old code, the term visible overflow meant the union of the layout overflow and
 15 visual overflow rects.
 16
 17 In the new code, the two types of overflow remain, but the distinction between the two is now clear. Visual overflow
 18 is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling. It has
 19 been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
 20 work with writing modes.
 21
 22 In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
 23 Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
 24 A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
 25 a huge number of tests would change.
 26
 27 Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow. Existing tests cover the rest.
 28
 29 * page/FrameView.cpp:
 30 (WebCore::FrameView::adjustViewSize):
 31 (WebCore::FrameView::forceLayoutForPagination):
 32 Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
 33 to account for writing modes.
 34
 35 * platform/graphics/IntRect.h:
 36 (WebCore::IntRect::shiftLeftEdgeTo):
 37 (WebCore::IntRect::shiftRightEdgeTo):
 38 (WebCore::IntRect::shiftTopEdgeTo):
 39 (WebCore::IntRect::shiftBottomEdgeTo):
 40 New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
 41
 42 * rendering/InlineBox.h:
 43 (WebCore::InlineBox::frameRect):
 44 frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
 45
 46 * rendering/InlineFlowBox.cpp:
 47 (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
 48 All of the overflow setting in the inline direction has been removed from this function. All line overflow is computed
 49 at once now in a single function: computeOverflow.
 50
 51 (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
 52 (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
 53 (WebCore::InlineFlowBox::addReplacedChildOverflow):
 54 Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
 55
 56 (WebCore::InlineFlowBox::computeOverflow):
 57 The new function that computes both horizontal and vertical overflow for a line box.
 58
 59 (WebCore::InlineFlowBox::setLayoutOverflow):
 60 (WebCore::InlineFlowBox::setVisualOverflow):
 61 (WebCore::InlineFlowBox::setOverflowFromLogicalRects):
 62 New functions that set the overflow computed by computeOverflow. These replace setBlockDirectionOverflowPositions
 63 and setInlineDirectionOverflowPositions. They essentially do the same thing, but they operate on rectangles.
 64
 65 (WebCore::InlineFlowBox::nodeAtPoint):
 66 (WebCore::InlineFlowBox::paint):
 67 Changed to use visual overflow instead of visible overflow. (Visible overflow as a union of layout and visual
 68 overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
 69
 70 * rendering/InlineFlowBox.h:
 71 (WebCore::InlineFlowBox::logicalLayoutOverflowRect):
 72 (WebCore::InlineFlowBox::logicalVisualOverflowRect):
 73 Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
 74 converting to block coordinates at the end.
 75
 76 * rendering/RenderBlock.cpp:
 77 (WebCore::RenderBlock::layoutBlock):
 78 (WebCore::RenderBlock::addOverflowFromChildren):
 79 (WebCore::RenderBlock::computeOverflow):
 80 (WebCore::RenderBlock::addOverflowFromFloats):
 81 (WebCore::RenderBlock::addOverflowFromPositionedObjects):
 82 Blocks now have a computeOverflow function called at the end that adds in all the types of overflow. The addOverflowFromChildren
 83 method is virtual so that RenderListItem and RenderTable can subclass it. RenderListItem has to position its list marker and
 84 propagate marker overflow up, and RenderTable adds in overflow from its sections.
 85
 86 (WebCore::RenderBlock::layoutOnlyPositionedObjects):
 87 (WebCore::RenderBlock::layoutPositionedObjects):
 88 When only positioned objects lay out, overflow must still be recomputed. The refactoring of overflow computation into a single
 89 callable method: computeOverflow, makes it possible for this to be done easily.
 90
 91 (WebCore::RenderBlock::paint):
 92 visible -> visual.
 93
 94 (WebCore::RenderBlock::addOverhangingFloats):
 95 The propagation of float overflow has changed substantially. The basic rules are:
 96 (1) The float must be in our floating objects list to contribute to overflow.
 97 (2) The float must be a descendant to contribute to overflow.
 98 (3) The block must have the outermost list that contains the float, or it has a self-painting layer and
 99 so the float needs to be included in its overflow.
 100
 101 (WebCore::RenderBlock::nodeAtPoint):
 102 visible -> visual.
 103
 104 (WebCore::RenderBlock::layoutColumns):
 105 Remove column overflow computation from layoutColumns and move it to computeOverflow.
 106
 107 (WebCore::RenderBlock::adjustLinePositionForPagination):
 108 visible -> visual.
 109
 110 * rendering/RenderBlock.h:
 111 (WebCore::RenderBlock::scrollbarsChanged):
 112 Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
 113
 114 * rendering/RenderBlockLineLayout.cpp:
 115 (WebCore::RenderBlock::layoutInlineChildren):
 116 (WebCore::RenderBlock::determineStartPosition):
 117 (WebCore::RenderBlock::matchedEndLine):
 118 (WebCore::RenderBlock::addOverflowFromInlineChildren):
 119 (WebCore::RenderBlock::beforeSideVisualOverflowForLine):
 120 (WebCore::RenderBlock::afterSideVisualOverflowForLine):
 121 visible -> visual.
 122
 123 * rendering/RenderBox.cpp:
 124 (WebCore::RenderBox::scrollWidth):
 125 (WebCore::RenderBox::scrollHeight):
 126 Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
 127
 128 (WebCore::RenderBox::paintRootBoxDecorations):
 129 Use docLeft and docTop here, so that writing modes are handled.
 130
 131 (WebCore::RenderBox::clippedOverflowRectForRepaint):
 132 visible -> visual.
 133
 134 (WebCore::RenderBox::addOverflowFromChild):
 135 (WebCore::RenderBox::addLayoutOverflow):
 136 (WebCore::RenderBox::addVisualOverflow):
 137 (WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
 138 (WebCore::RenderBox::visualOverflowRectForPropagation):
 139 (WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
 140 (WebCore::RenderBox::layoutOverflowRectForPropagation):
 141 * rendering/RenderBox.h:
 142 The new overflow system for boxes. Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
 143 for transforms, relative positioning and writing mode differences.
 144
 145 (WebCore::RenderBox::layoutOverflowRect):
 146 (WebCore::RenderBox::topLayoutOverflow):
 147 (WebCore::RenderBox::bottomLayoutOverflow):
 148 (WebCore::RenderBox::leftLayoutOverflow):
 149 (WebCore::RenderBox::rightLayoutOverflow):
 150 Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
 151
 152 (WebCore::RenderBox::clientLogicalBottom):
 153 New helper for obtaining the logical bottom of the client box.
 154
 155 (WebCore::RenderBox::clientBoxRect):
 156 New helper for obtaining the clientLeft/Top/Width/Height box.
 157
 158 * rendering/RenderBoxModelObject.h:
 159 (WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
 160 Helper for obtaining the relative position offset transposed for vertical writing modes. Used by line overflow.
 161
 162 * rendering/RenderFlexibleBox.cpp:
 163 (WebCore::RenderFlexibleBox::layoutBlock):
 164 Changed flexible boxes to just call the base class computeOverflow method.
 165
 166 * rendering/RenderInline.cpp:
 167 (WebCore::RenderInline::linesVisualOverflowBoundingBox):
 168 (WebCore::RenderInline::clippedOverflowRectForRepaint):
 169 visible -> visual.
 170
 171 * rendering/RenderInline.h:
 172 * rendering/RenderLayer.cpp:
 173 (WebCore::RenderLayer::updateLayerPosition):
 174 Changed layers to no longer incorporate right/bottom overflow into width/height. This is the reason many layout
 175 tests change. (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
 176 layers now.)
 177
 178 (WebCore::RenderLayer::overflowTop):
 179 (WebCore::RenderLayer::overflowBottom):
 180 (WebCore::RenderLayer::overflowLeft):
 181 (WebCore::RenderLayer::overflowRight):
 182 overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
 183 to set up the scroll area.
 184
 185 (WebCore::RenderLayer::computeScrollDimensions):
 186 Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
 187
 188 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
 189 Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
 190 bottom works.
 191
 192 (WebCore::performOverlapTests):
 193 (WebCore::RenderLayer::paintLayer):
 194 Fix a bug in performOverlapTests. It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
 195 of the layer (see why I hate layers even having dimensions?). Changed it to use the bounding box of the layer instead.
 196
 197 (WebCore::RenderLayer::hitTest):
 198 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
 199 for left/top overflow in a ScrollView (hate hate hate layers having dimensions). I changed it to use the hit test rect instead,
 200 so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
 201
 202 (WebCore::RenderLayer::localBoundingBox):
 203 visible -> visual.
 204
 205 * rendering/RenderLayer.h:
 206 Added the new overflowTop/Left/Right/Bottom accessors.
 207
 208 * rendering/RenderLineBoxList.cpp:
 209 (WebCore::RenderLineBoxList::anyLineIntersectsRect):
 210 (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
 211 (WebCore::RenderLineBoxList::paint):
 212 (WebCore::RenderLineBoxList::hitTest):
 213 visible -> visual.
 214
 215 * rendering/RenderListItem.cpp:
 216 (WebCore::RenderListItem::addOverflowFromChildren):
 217 (WebCore::RenderListItem::positionListMarker):
 218 * rendering/RenderListItem.h:
 219 RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
 220
 221 * rendering/RenderListMarker.cpp:
 222 (WebCore::RenderListMarker::paint):
 223 visible -> visual.
 224
 225 * rendering/RenderMarquee.cpp:
 226 (WebCore::RenderMarquee::computePosition):
 227 Changed to use overflow functions instead of rightmost/lowestPosition.
 228
 229 * rendering/RenderMedia.cpp:
 230 * rendering/RenderMedia.h:
 231 Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
 232
 233 * rendering/RenderOverflow.h:
 234 (WebCore::RenderOverflow::RenderOverflow):
 235 (WebCore::RenderOverflow::setLayoutOverflow):
 236 (WebCore::RenderOverflow::setVisualOverflow):
 237 Add new setters for layout and visual overflow as rects.
 238
 239 * rendering/RenderReplaced.cpp:
 240 (WebCore::RenderReplaced::shouldPaint):
 241 (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
 242 visible -> visual.
 243
 244 * rendering/RenderRubyRun.cpp:
 245 (WebCore::RenderRubyRun::layout):
 246 Call computeOverflow to recompute our overflow information after we adjust the ruby.
 247
 248 * rendering/RenderTable.cpp:
 249 (WebCore::RenderTable::layout):
 250 (WebCore::RenderTable::addOverflowFromChildren):
 251 (WebCore::RenderTable::paint):
 252 * rendering/RenderTable.h:
 253 Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
 254
 255 * rendering/RenderTableCell.cpp:
 256 (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
 257 visible -> visual.
 258
 259 (WebCore::RenderTableCell::scrollbarsChanged):
 260 Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
 261 a bug in table layout. If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
 262 cell, then the cell won't lay out properly the second time (after the scrollbars have been added). We have to adjust the intrinsic
 263 padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
 264
 265 * rendering/RenderTableCell.h:
 266 (WebCore::RenderTableCell::hasVisualOverflow):
 267 visible -> visual.
 268
 269 * rendering/RenderTableSection.cpp:
 270 (WebCore::RenderTableSection::layoutRows):
 271 * rendering/RenderTableSection.h:
 272 visible -> visual. Removed the leftmost/rightmost/topmost/bottommostPosition functions.
 273
 274 * rendering/RenderTreeAsText.cpp:
 275 (WebCore::writeLayers):
 276 Added a hack to render tree dumping to include right/bottom overflow for the root layer only. This keeps a zillion layout tests
 277 from failing.
 278
 279 * rendering/RenderView.cpp:
 280 (WebCore::RenderView::layout):
 281 (WebCore::RenderView::docTop):
 282 (WebCore::RenderView::docBottom):
 283 (WebCore::RenderView::docLeft):
 284 (WebCore::RenderView::docRight):
 285 * rendering/RenderView.h:
 286 (WebCore::RenderView::docHeight):
 287 (WebCore::RenderView::docWidth):
 288 RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes. These methods
 289 are now the preferred way to query for the physical dimensions of a document.
 290
 291 * rendering/RootInlineBox.cpp:
 292 (WebCore::RootInlineBox::addHighlightOverflow):
 293 Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
 294
 295 (WebCore::RootInlineBox::alignBoxesInBlockDirection):
 296 Remove the computation of block direction overflow, since it now all happens at once after the line is built.
 297
 298 (WebCore::RootInlineBox::paddedLayoutOverflowRect):
 299 * rendering/RootInlineBox.h:
 300 Added a new helper function for incorporating the end padding into a line. This end padding also includes the single pixel for a caret
 301 in LTR if needed.
 302
 303 * compositing/checkerboard-expected.txt:
 304 * compositing/geometry/limit-layer-bounds-transformed-expected.txt:
 305 * compositing/iframes/composited-parent-iframe-expected.txt:
 306 * fast/backgrounds/size/contain-and-cover-expected.txt:
 307 * fast/flexbox/009.html:
 308 * fast/overflow/overflow-rtl-vertical.html: Added.
 309 * fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt:
 310 * fast/spatial-navigation/snav-clipped-overflowed-content.html:
 311 * platform/mac/compositing/direct-image-compositing-expected.txt:
 312 * platform/mac/compositing/geometry/fixed-position-expected.txt:
 313 * platform/mac/compositing/geometry/video-opacity-overlay-expected.txt:
 314 * platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.txt:
 315 * platform/mac/compositing/overflow/scroll-ancestor-update-expected.txt:
 316 * platform/mac/compositing/reflections/load-video-in-reflection-expected.txt:
 317 * platform/mac/compositing/repaint/content-into-overflow-expected.txt:
 318 * platform/mac/compositing/repaint/overflow-into-content-expected.txt:
 319 * platform/mac/css1/box_properties/margin-expected.txt:
 320 * platform/mac/css1/box_properties/margin_right-expected.txt:
 321 * platform/mac/css1/classification/white_space-expected.txt:
 322 * platform/mac/css1/color_and_background/background_attachment-expected.txt:
 323 * platform/mac/css1/color_and_background/background_repeat-expected.txt:
 324 * platform/mac/css2.1/t0803-c5502-mrgn-r-02-c-expected.txt:
 325 * platform/mac/css2.1/t0803-c5505-mrgn-02-c-expected.txt:
 326 * platform/mac/css2.1/t0804-c5508-ipadn-b-02-b-a-expected.txt:
 327 * platform/mac/css2.1/t0905-c414-flt-00-d-expected.txt:
 328 * platform/mac/css2.1/t0905-c414-flt-01-d-g-expected.txt:
 329 * platform/mac/css2.1/t0905-c414-flt-02-c-expected.txt:
 330 * platform/mac/css2.1/t0905-c414-flt-03-c-expected.txt:
 331 * platform/mac/css2.1/t0905-c414-flt-04-c-expected.txt:
 332 * platform/mac/css2.1/t0905-c414-flt-wrap-01-d-g-expected.txt:
 333 * platform/mac/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
 334 * platform/mac/css2.1/t0905-c5525-fltwidth-02-c-g-expected.txt:
 335 * platform/mac/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt:
 336 * platform/mac/css2.1/t090501-c414-flt-02-d-g-expected.txt:
 337 * platform/mac/css2.1/t090501-c414-flt-03-b-g-expected.txt:
 338 * platform/mac/css2.1/t1202-counters-08-b-expected.txt:
 339 * platform/mac/css2.1/t1202-counters-09-b-expected.txt:
 340 * platform/mac/editing/deleting/delete-after-span-ws-001-expected.txt:
 341 * platform/mac/editing/deleting/delete-after-span-ws-002-expected.txt:
 342 * platform/mac/editing/deleting/delete-after-span-ws-003-expected.txt:
 343 * platform/mac/editing/deleting/delete-line-end-ws-001-expected.txt:
 344 * platform/mac/editing/deleting/delete-line-end-ws-002-expected.txt:
 345 * platform/mac/editing/selection/25228-expected.txt:
 346 * platform/mac/editing/selection/focus_editable_html-expected.txt:
 347 * platform/mac/editing/selection/select-all-001-expected.txt:
 348 * platform/mac/editing/selection/select-all-002-expected.txt:
 349 * platform/mac/editing/selection/select-all-003-expected.txt:
 350 * platform/mac/editing/selection/select-all-004-expected.txt:
 351 * platform/mac/editing/selection/unrendered-001-expected.txt:
 352 * platform/mac/editing/selection/unrendered-002-expected.txt:
 353 * platform/mac/editing/selection/unrendered-003-expected.txt:
 354 * platform/mac/editing/selection/unrendered-004-expected.txt:
 355 * platform/mac/editing/selection/unrendered-005-expected.txt:
 356 * platform/mac/fast/backgrounds/repeat/negative-offset-repeat-expected.txt:
 357 * platform/mac/fast/backgrounds/size/backgroundSize15-expected.txt:
 358 * platform/mac/fast/block/basic/010-expected.txt:
 359 * platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
 360 * platform/mac/fast/block/float/008-expected.txt:
 361 * platform/mac/fast/block/float/013-expected.txt:
 362 * platform/mac/fast/block/float/019-expected.txt:
 363 * platform/mac/fast/block/float/021-expected.txt:
 364 * platform/mac/fast/block/float/029-expected.txt:
 365 * platform/mac/fast/block/float/031-expected.txt:
 366 * platform/mac/fast/block/float/033-expected.txt:
 367 * platform/mac/fast/block/float/035-expected.txt:
 368 * platform/mac/fast/block/float/avoidance-percent-width-strict-expected.txt:
 369 * platform/mac/fast/block/float/clamped-right-float-expected.txt:
 370 * platform/mac/fast/block/float/float-in-float-painting-expected.txt:
 371 * platform/mac/fast/block/float/nested-clearance-expected.txt:
 372 * platform/mac/fast/block/float/relative-painted-twice-expected.txt:
 373 * platform/mac/fast/block/margin-collapse/004-expected.txt:
 374 * platform/mac/fast/block/margin-collapse/062-expected.txt:
 375 * platform/mac/fast/block/margin-collapse/063-expected.txt:
 376 * platform/mac/fast/block/margin-collapse/104-expected.txt:
 377 * platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.txt:
 378 * platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
 379 * platform/mac/fast/block/positioning/002-expected.txt:
 380 * platform/mac/fast/block/positioning/047-expected.txt:
 381 * platform/mac/fast/block/positioning/049-expected.txt:
 382 * platform/mac/fast/block/positioning/051-expected.txt:
 383 * platform/mac/fast/block/positioning/auto-height-with-top-and-bottom-expected.txt:
 384 * platform/mac/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt:
 385 * platform/mac/fast/blockflow/block-level-images-expected.txt:
 386 * platform/mac/fast/blockflow/border-radius-clipping-vertical-lr-expected.txt:
 387 * platform/mac/fast/blockflow/box-shadow-vertical-lr-expected.txt:
 388 * platform/mac/fast/blockflow/box-shadow-vertical-rl-expected.txt:
 389 * platform/mac/fast/blockflow/floats-in-block-layout-expected.txt:
 390 * platform/mac/fast/body-propagation/background-color/002-expected.txt:
 391 * platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt:
 392 * platform/mac/fast/body-propagation/background-image/002-expected.txt:
 393 * platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt:
 394 * platform/mac/fast/body-propagation/overflow/001-expected.txt:
 395 * platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt:
 396 * platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt:
 397 * platform/mac/fast/body-propagation/overflow/005-expected.txt:
 398 * platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt:
 399 * platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
 400 * platform/mac/fast/box-shadow/basic-shadows-expected.txt:
 401 * platform/mac/fast/box-sizing/box-sizing-expected.txt:
 402 * platform/mac/fast/clip/008-expected.txt:
 403 * platform/mac/fast/clip/009-expected.txt:
 404 * platform/mac/fast/clip/010-expected.txt:
 405 * platform/mac/fast/clip/011-expected.txt:
 406 * platform/mac/fast/clip/012-expected.txt:
 407 * platform/mac/fast/compact/001-expected.txt:
 408 * platform/mac/fast/css/color-correction-on-background-image-expected.txt:
 409 * platform/mac/fast/css/negative-leading-expected.txt:
 410 * platform/mac/fast/css/percentage-non-integer-expected.txt:
 411 * platform/mac/fast/css/word-space-extra-expected.txt:
 412 * platform/mac/fast/dom/clone-node-dynamic-style-expected.txt:
 413 * platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt:
 414 * platform/mac/fast/events/focusingUnloadedFrame-expected.txt:
 415 * platform/mac/fast/flexbox/009-expected.txt:
 416 * platform/mac/fast/flexbox/016-expected.txt:
 417 * platform/mac/fast/flexbox/flex-hang-expected.txt:
 418 * platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
 419 * platform/mac/fast/forms/file-input-direction-expected.txt:
 420 * platform/mac/fast/forms/floating-textfield-relayout-expected.txt:
 421 * platform/mac/fast/forms/textfield-overflow-expected.txt:
 422 * platform/mac/fast/frames/flattening/frameset-flattening-advanced-expected.txt:
 423 * platform/mac/fast/frames/flattening/frameset-flattening-grid-expected.txt:
 424 * platform/mac/fast/frames/flattening/frameset-flattening-simple-expected.txt:
 425 * platform/mac/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt:
 426 * platform/mac/fast/frames/flattening/frameset-flattening-subframesets-expected.txt:
 427 * platform/mac/fast/frames/frame-scrolling-attribute-expected.txt:
 428 * platform/mac/fast/frames/iframe-scrolling-attribute-expected.txt:
 429 * platform/mac/fast/frames/inline-object-inside-frameset-expected.txt:
 430 * platform/mac/fast/gradients/background-clipped-expected.txt:
 431 * platform/mac/fast/images/gif-large-checkerboard-expected.txt:
 432 * platform/mac/fast/images/pdf-as-image-landscape-expected.txt:
 433 * platform/mac/fast/inline-block/inline-block-vertical-align-expected.txt:
 434 * platform/mac/fast/inline/long-wrapped-line-expected.txt:
 435 * platform/mac/fast/layers/layer-visibility-expected.txt:
 436 * platform/mac/fast/layers/layer-visibility-sublayer-expected.txt:
 437 * platform/mac/fast/lists/001-expected.txt:
 438 * platform/mac/fast/lists/001-vertical-expected.txt:
 439 * platform/mac/fast/lists/003-expected.txt:
 440 * platform/mac/fast/lists/003-vertical-expected.txt:
 441 * platform/mac/fast/lists/li-br-expected.txt:
 442 * platform/mac/fast/media/mq-relative-constraints-02-expected.txt:
 443 * platform/mac/fast/media/mq-relative-constraints-03-expected.txt:
 444 * platform/mac/fast/media/mq-relative-constraints-04-expected.txt:
 445 * platform/mac/fast/media/mq-relative-constraints-05-expected.txt:
 446 * platform/mac/fast/media/mq-relative-constraints-06-expected.txt:
 447 * platform/mac/fast/media/mq-relative-constraints-07-expected.txt:
 448 * platform/mac/fast/media/mq-relative-constraints-08-expected.txt:
 449 * platform/mac/fast/media/mq-relative-constraints-09-expected.txt:
 450 * platform/mac/fast/media/mq-width-absolute-01-expected.txt:
 451 * platform/mac/fast/media/mq-width-absolute-02-expected.txt:
 452 * platform/mac/fast/media/mq-width-absolute-03-expected.txt:
 453 * platform/mac/fast/media/mq-width-absolute-04-expected.txt:
 454 * platform/mac/fast/multicol/float-multicol-expected.txt:
 455 * platform/mac/fast/multicol/float-paginate-complex-expected.txt:
 456 * platform/mac/fast/multicol/float-paginate-expected.txt:
 457 * platform/mac/fast/multicol/layers-in-multicol-expected.txt:
 458 * platform/mac/fast/multicol/paginate-block-replaced-expected.txt:
 459 * platform/mac/fast/multicol/positioned-with-constrained-height-expected.txt:
 460 * platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
 461 * platform/mac/fast/multicol/table-vertical-align-expected.txt:
 462 * platform/mac/fast/overflow/006-expected.txt:
 463 * platform/mac/fast/overflow/float-in-relpositioned-expected.txt:
 464 * platform/mac/fast/overflow/overflow-auto-table-expected.txt:
 465 * platform/mac/fast/overflow/overflow-rtl-vertical-expected.checksum: Added.
 466 * platform/mac/fast/overflow/overflow-rtl-vertical-expected.png: Added.
 467 * platform/mac/fast/overflow/overflow-rtl-vertical-expected.txt: Added.
 468 * platform/mac/fast/overflow/scrollRevealButton-expected.txt:
 469 * platform/mac/fast/reflections/reflection-direction-expected.txt:
 470 * platform/mac/fast/repaint/box-shadow-h-expected.checksum:
 471 * platform/mac/fast/repaint/box-shadow-h-expected.png:
 472 * platform/mac/fast/repaint/box-shadow-h-expected.txt:
 473 * platform/mac/fast/repaint/box-shadow-v-expected.txt:
 474 * platform/mac/fast/repaint/content-into-overflow-expected.txt:
 475 * platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt:
 476 * platform/mac/fast/repaint/float-overflow-expected.txt:
 477 * platform/mac/fast/repaint/float-overflow-right-expected.txt:
 478 * platform/mac/fast/repaint/overflow-into-content-expected.txt:
 479 * platform/mac/fast/repaint/overflow-scroll-body-appear-expected.txt:
 480 * platform/mac/fast/repaint/subtree-root-clip-expected.txt:
 481 * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
 482 * platform/mac/fast/repaint/transform-replaced-shadows-expected.checksum:
 483 * platform/mac/fast/repaint/transform-replaced-shadows-expected.png:
 484 * platform/mac/fast/replaced/004-expected.txt:
 485 * platform/mac/fast/table/034-expected.txt:
 486 * platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
 487 * platform/mac/fast/table/colspanMinWidth-vertical-expected.txt:
 488 * platform/mac/fast/table/fixed-with-auto-with-colspan-expected.txt:
 489 * platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.txt:
 490 * platform/mac/fast/table/frame-and-rules-expected.txt:
 491 * platform/mac/fast/table/height-percent-test-vertical-expected.txt:
 492 * platform/mac/fast/table/wide-colspan-expected.txt:
 493 * platform/mac/fast/table/wide-column-expected.txt:
 494 * platform/mac/fast/text/international/thai-line-breaks-expected.txt:
 495 * platform/mac/fast/text/large-text-composed-char-expected.txt:
 496 * platform/mac/fast/text/letter-spacing-negative-opacity-expected.txt:
 497 * platform/mac/fast/text/text-letter-spacing-expected.txt:
 498 * platform/mac/fast/text/whitespace/012-expected.txt:
 499 * platform/mac/mathml/presentation/fenced-expected.txt:
 500 * platform/mac/mathml/presentation/mo-expected.txt:
 501 * platform/mac/mathml/presentation/over-expected.txt:
 502 * platform/mac/mathml/presentation/row-alignment-expected.txt:
 503 * platform/mac/mathml/presentation/row-expected.txt:
 504 * platform/mac/printing/return-from-printing-mode-expected.txt:
 505 * platform/mac/svg/custom/altglyph-expected.txt:
 506 * platform/mac/svg/custom/getscreenctm-in-mixed-content-expected.txt:
 507 * platform/mac/svg/custom/path-bad-data-expected.txt:
 508 * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
 509 * platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
 510 * platform/mac/svg/custom/text-xy-updates-SVGList-expected.txt:
 511 * platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.txt:
 512 * platform/mac/svg/text/foreignObject-text-clipping-bug-expected.txt:
 513 * platform/mac/svg/text/kerning-expected.txt:
 514 * platform/mac/svg/text/multichar-glyph-expected.txt:
 515 * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt:
 516 * platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
 517 * platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.txt:
 518 * platform/mac/tables/mozilla/bugs/bug120364-expected.txt:
 519 * platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
 520 * platform/mac/tables/mozilla/bugs/bug196870-expected.txt:
 521 * platform/mac/tables/mozilla/bugs/bug23151-expected.txt:
 522 * platform/mac/tables/mozilla/bugs/bug29314-expected.txt:
 523 * platform/mac/tables/mozilla/bugs/bug43039-expected.txt:
 524 * platform/mac/tables/mozilla/bugs/bug43854-1-expected.txt:
 525 * platform/mac/tables/mozilla/bugs/bug45055-2-expected.txt:
 526 * platform/mac/tables/mozilla/bugs/bug5797-expected.txt:
 527 * platform/mac/tables/mozilla/bugs/bug625-expected.txt:
 528 * platform/mac/tables/mozilla/bugs/bug72359-expected.txt:
 529 * platform/mac/tables/mozilla/bugs/bug83786-expected.txt:
 530 * platform/mac/tables/mozilla/bugs/bug92143-expected.txt:
 531 * platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
 532 * platform/mac/tables/mozilla/core/nested1-expected.txt:
 533 * platform/mac/tables/mozilla/marvin/backgr_index-expected.txt:
 534 * platform/mac/tables/mozilla/marvin/x_table_align_left-expected.txt:
 535 * platform/mac/tables/mozilla/marvin/x_table_align_right-expected.txt:
 536 * platform/mac/tables/mozilla/marvin/x_td_nowrap-expected.txt:
 537 * platform/mac/tables/mozilla/marvin/x_th_nowrap-expected.txt:
 538 * platform/mac/tables/mozilla_expected_failures/bugs/bug220653-expected.txt:
 539 * platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
 540 * platform/mac/tables/mozilla_expected_failures/bugs/bug67915-2-expected.txt:
 541 * platform/mac/tables/mozilla_expected_failures/bugs/bug85016-expected.txt:
 542 * platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
 543 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption-expected.txt:
 544 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt:
 545 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_left-expected.txt:
 546 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_right-expected.txt:
 547 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_top-expected.txt:
 548 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow-expected.txt:
 549 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt:
 550 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_table-expected.txt:
 551 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt:
 552 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_hidden_tr-expected.txt:
 553 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell-expected.txt:
 554 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell_sibling-expected.txt:
 555 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row-expected.txt:
 556 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.txt:
 557 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table-expected.txt:
 558 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table_caption-expected.txt:
 559 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody-expected.txt:
 560 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.txt:
 561 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt:
 562 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_bottom-expected.txt:
 563 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_middle-expected.txt:
 564 * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_top-expected.txt:
 565 * platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
 566 * platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
 567 * platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
 568 * platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:
 569 * platform/mac/transforms/svg-vs-css-expected.txt:
 570 * svg/custom/text-zoom-expected.txt:
 571
15722010-12-05 Rob Buis <rwlbuis@gmail.com>
2573
3574 Reviewed by Nikolas Zimmermann.
73349

LayoutTests/compositing/checkerboard-expected.txt

11layer at (0,0) size 2055x2063
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 2055x2063
 3layer at (0,0) size 800x2063
44 RenderBlock {HTML} at (0,0) size 800x2063
55 RenderBody {BODY} at (8,8) size 784x2047
66 RenderBlock {DIV} at (0,0) size 2047x2047
73334

LayoutTests/compositing/geometry/limit-layer-bounds-transformed-expected.txt

11Text here
22(GraphicsLayer
3  (bounds 1329.00 585.00)
 3 (bounds 800.00 600.00)
44 (children 1
55 (GraphicsLayer
6  (bounds 1329.00 585.00)
 6 (bounds 800.00 600.00)
77 (children 3
88 (GraphicsLayer
99 (position 129.00 29.00)
73334

LayoutTests/compositing/iframes/composited-parent-iframe-expected.txt

33 (bounds 800.00 600.00)
44 (children 1
55 (GraphicsLayer
6  (position -12.00 0.00)
7  (bounds 812.00 600.00)
 6 (bounds 800.00 600.00)
87 (children 1
98 (GraphicsLayer
10  (position 0.00 -12.00)
 9 (position -12.00 -12.00)
1110 (bounds 370.00 220.00)
1211 (drawsContent 1)
1312 (children 1
73334

LayoutTests/fast/backgrounds/size/contain-and-cover-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x598
 3layer at (0,0) size 800x0
44 RenderBlock {HTML} at (0,0) size 800x0
55 RenderBody {BODY} at (0,0) size 800x0
66 RenderBlock (floating) {DIV} at (2,2) size 396x146 [bgcolor=#ADD8E6] [border: (3px solid #000000)]
73334

LayoutTests/fast/flexbox/009.html

@@div.box {
99 display: -webkit-box;
1010 display: box;
1111 overflow:auto;
 12 -webkit-box-orient: vertical;
 13 -moz-box-orient: vertical;
1214 border: 2px solid olive;
1315}
1416
73334

LayoutTests/fast/overflow/overflow-rtl-vertical.html

 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2"http://www.w3.org/TR/html4/loose.dtd">
 3<html style="-webkit-writing-mode:vertical-lr">
 4<head>
 5<title>overflow:auto with direction:rtl</title>
 6<style type="text/css">
 7div.test { background: yellow; width: 6ex; height: 100px; overflow: auto;
 8 border-top: 10px solid red; border-bottom: 5px solid green; margin: 4px; }
 9div.rtl { direction: rtl; border-bottom: 10px solid red; border-top: 5px solid green; }
 10</style>
 11</head>
 12<body>
 13<p>
 14This is a test case for <i>http://bugzilla.opendarwin.org/show_bug.cgi?id=5826 Blocks with direction:rtl and overflow:auto or scroll have incorrect scrollbars</i>.
 15</p>
 16The right column should be a mirror-image of the left column in terms of
 17<ul>
 18 <li>the presence of a scrollbar</li>
 19 <li>the initial position of the scroll thumb</li>
 20 <li>which letters are visible initially and when you scroll</li>
 21</ul>
 22<table>
 23<tr>
 24<td>
 25<div class="test">
 26abcdefghijklmnopqrstuvwxyz
 27</div>
 28
 29<div class="test">
 30<div style="direction:rtl; background:lightgray;">abcdefghijklmnopqrstuvwxyz</div>
 31</div>
 32
 33<div class="test">
 34<div style="direction:ltr; background:lightgray;">abcdefghijklmnopqrstuvwxyz</div>
 35</div>
 36</td>
 37<td>
 38<div class="test rtl">
 39zyxwvutsrqponmlkjihgfedcba
 40</div>
 41
 42<div class="test rtl">
 43<div style="direction:ltr; background:lightgray;">zyxwvutsrqponmlkjihgfedcba</div>
 44</div>
 45
 46<div class="test rtl">
 47<div style="direction:rtl; background:lightgray;">zyxwvutsrqponmlkjihgfedcba</div>
 48</div>
 49</td>
 50</tr>
 51</table>
 52</body>
 53</html>
0

LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content-expected.txt

@@PASS gFocusedDocument.activeElement.getA
77PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
88PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
99PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
10 PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
1110PASS gFocusedDocument.activeElement.getAttribute("id") is "3"
1211PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
1312PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
14 PASS gFocusedDocument.activeElement.getAttribute("id") is "2"
1513PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
1614PASS gFocusedDocument.activeElement.getAttribute("id") is "1"
1715PASS gFocusedDocument.activeElement.getAttribute("id") is "start"
73334

LayoutTests/fast/spatial-navigation/snav-clipped-overflowed-content.html

3737 ["Down", "1"],
3838 ["Down", "2"],
3939 ["Down", "2"],
40  ["Down", "2"],
4140 ["Down", "3"],
4241 ["Up", "2"],
4342 ["Up", "2"],
44  ["Up", "2"],
4543 ["Up", "1"],
4644 ["Up", "1"],
4745 ["Up", "start"],

8280 <div></div>
8381 <img src="resources/green.png" width=200px height=200px>
8482 <div></div>
85  <a id="2" href="a"><img src="resources/green.png" width=30px height=30px></a>.</p>
 83 <a id="2" href="a"><img src="resources/green.png" width=30px height=30px></a>.
8684 </div>
8785 <a id="3" href="a"><img src="resources/green.png" width=30px height=30px></a>
8886 <div id="console"></div>
73334

LayoutTests/platform/mac/compositing/direct-image-compositing-expected.txt

11layer at (0,0) size 785x749
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x749
 3layer at (0,0) size 785x149
44 RenderBlock {HTML} at (0,0) size 785x149
55 RenderBody {BODY} at (8,21) size 769x112
66 RenderBlock {H1} at (0,0) size 769x37
73334

LayoutTests/platform/mac/compositing/geometry/fixed-position-expected.txt

11layer at (0,0) size 1008x1016
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1008x1016
 3layer at (0,0) size 785x1016
44 RenderBlock {HTML} at (0,0) size 785x1016
55 RenderBody {BODY} at (8,8) size 1000x1000
66layer at (50,166) size 439x18
73334

LayoutTests/platform/mac/compositing/geometry/video-opacity-overlay-expected.txt

@@layer at (0,0) size 800x360
66 RenderBlock {P} at (0,0) size 784x18
77 RenderText {#text} at (0,0) size 294x18
88 text run at (0,0) width 294: "The orange bar should be in front of the video."
9 layer at (8,50) size 402x305
 9layer at (8,50) size 402x302
1010 RenderBlock (relative positioned) {DIV} at (0,34) size 402x302 [border: (1px solid #000000)]
1111 RenderBlock (anonymous) at (1,1) size 400x304
1212 RenderText {#text} at (0,0) size 0x0
73334

LayoutTests/platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.txt

11layer at (0,0) size 1008x1016
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1008x1016
 3layer at (0,0) size 785x1016
44 RenderBlock {HTML} at (0,0) size 785x1016
55 RenderBody {BODY} at (8,8) size 1000x1000
66layer at (50,166) size 318x18
73334

LayoutTests/platform/mac/compositing/overflow/scroll-ancestor-update-expected.txt

@@layer at (0,0) size 100x100
99 RenderVideo {VIDEO} at (0,0) size 100x100
1010layer at (50,50) size 100x100
1111 RenderBlock (positioned) {DIV} at (50,50) size 100x100 [bgcolor=#FF0000]
12 layer at (50,50) size 202x272
 12layer at (50,50) size 200x200
1313 RenderBlock (positioned) {DIV} at (50,50) size 200x200
1414 RenderBlock {P} at (0,218) size 200x54
1515 RenderText {#text} at (0,0) size 191x54
73334

LayoutTests/platform/mac/compositing/reflections/load-video-in-reflection-expected.txt

@@layer at (0,0) size 800x350
66 RenderBlock {P} at (0,0) size 784x18
77 RenderText {#text} at (0,0) size 493x18
88 text run at (0,0) width 493: "You should see a reflected video below, rather than the red video background."
9 layer at (8,50) size 352x292
 9layer at (8,50) size 300x292
1010 RenderBlock {DIV} at (0,34) size 300x292
1111 RenderText {#text} at (0,0) size 0x0
1212layer at (8,50) size 352x288
73334

LayoutTests/platform/mac/compositing/repaint/content-into-overflow-expected.txt

@@layer at (28,328) size 100x100
1717 RenderBlock (positioned) {DIV} at (0,308) size 100x100
1818 RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#008000]
1919 RenderBlock {DIV} at (0,80) size 100x20
20 layer at (28,328) size 100x80
 20layer at (28,328) size 100x0
2121 RenderBlock (relative positioned) {DIV} at (0,0) size 100x0
2222 RenderBlock (floating) {DIV} at (0,0) size 100x80
73334

LayoutTests/platform/mac/compositing/repaint/overflow-into-content-expected.txt

@@layer at (0,0) size 800x460
55 RenderBody {BODY} at (8,20) size 784x420
66layer at (28,20) size 120x420
77 RenderBlock {DIV} at (20,0) size 120x420
8 layer at (28,28) size 103x106
 8layer at (28,28) size 56x106
99 RenderBlock (positioned) {DIV} at (0,8) size 56x106 [border: (3px solid #008000)]
1010 RenderBlock {DIV} at (3,3) size 50x50
1111 RenderBlock {DIV} at (0,0) size 100x50
12 layer at (28,178) size 106x103
 12layer at (28,178) size 106x56
1313 RenderBlock (positioned) {DIV} at (0,158) size 106x56 [border: (3px solid #008000)]
1414 RenderBlock {DIV} at (3,3) size 50x50
1515 RenderBlock {DIV} at (0,0) size 50x100
1616layer at (28,328) size 100x80
1717 RenderBlock (positioned) {DIV} at (0,308) size 100x80
1818 RenderBlock {DIV} at (0,0) size 100x0 [bgcolor=#008000]
19 layer at (28,328) size 100x80
 19layer at (28,328) size 100x0
2020 RenderBlock (relative positioned) {DIV} at (0,0) size 100x0
2121 RenderBlock (floating) {DIV} at (0,0) size 100x80
73334

LayoutTests/platform/mac/css1/box_properties/margin-expected.txt

11layer at (0,0) size 787x2628
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 787x2628
 3layer at (0,0) size 785x2628
44 RenderBlock {HTML} at (0,0) size 785x2628
55 RenderBody {BODY} at (8,8) size 769x2612 [bgcolor=#CCCCCC]
66 RenderBlock {P} at (0,0) size 769x18
73334

LayoutTests/platform/mac/css1/box_properties/margin_right-expected.txt

11layer at (0,0) size 787x1005
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 787x1005
 3layer at (0,0) size 785x1005
44 RenderBlock {HTML} at (0,0) size 785x1005
55 RenderBody {BODY} at (8,8) size 769x989 [bgcolor=#CCCCCC]
66 RenderBlock {P} at (0,0) size 769x18
73334

LayoutTests/platform/mac/css1/classification/white_space-expected.txt

11layer at (0,0) size 921x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 921x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569 [bgcolor=#CCCCCC]
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css1/color_and_background/background_attachment-expected.txt

11layer at (0,0) size 880x1193
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 880x1193
 3layer at (0,0) size 785x1193
44 RenderBlock {HTML} at (0,0) size 785x1193
55 RenderBody {BODY} at (8,8) size 769x1177 [bgcolor=#CCCCCC]
66 RenderBlock {P} at (0,0) size 769x18
73334

LayoutTests/platform/mac/css1/color_and_background/background_repeat-expected.txt

11layer at (0,0) size 888x1838
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 888x1838
 3layer at (0,0) size 785x1838
44 RenderBlock {HTML} at (0,0) size 785x1838
55 RenderBody {BODY} at (8,8) size 769x1822 [bgcolor=#CCCCCC]
66 RenderBlock {P} at (0,0) size 769x18
73334

LayoutTests/platform/mac/css2.1/t0803-c5502-mrgn-r-02-c-expected.txt

11layer at (0,0) size 802x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 802x66
 3layer at (0,0) size 800x66
44 RenderBlock {HTML} at (0,0) size 800x66
55 RenderBody {BODY} at (8,24) size 784x18
66 RenderBlock {P} at (0,0) size 794x18 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0803-c5505-mrgn-02-c-expected.txt

11layer at (0,0) size 802x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 802x34
 3layer at (0,0) size 800x32
44 RenderBlock {HTML} at (0,0) size 800x32
55 RenderBody {BODY} at (8,-2) size 784x36
66 RenderBlock {P} at (-10,0) size 804x36 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0804-c5508-ipadn-b-02-b-a-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x122
 3layer at (0,0) size 800x110
44 RenderBlock {HTML} at (0,0) size 800x110
55 RenderBody {BODY} at (8,16) size 784x86
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-00-d-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x170
 3layer at (0,0) size 800x134
44 RenderBlock {HTML} at (0,0) size 800x134
55 RenderBody {BODY} at (8,16) size 784x102
66 RenderBlock {P} at (0,0) size 784x18 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-01-d-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x162
 3layer at (0,0) size 800x130
44 RenderBlock {HTML} at (0,0) size 800x130
55 RenderBody {BODY} at (8,16) size 784x98
66 RenderBlock {P} at (0,0) size 784x18 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-02-c-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x264
 3layer at (0,0) size 800x68
44 RenderBlock {HTML} at (0,0) size 800x68
55 RenderBody {BODY} at (8,16) size 784x36
66 RenderBlock {P} at (0,0) size 784x36 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-03-c-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x264
 3layer at (0,0) size 800x68
44 RenderBlock {HTML} at (0,0) size 800x68
55 RenderBody {BODY} at (8,16) size 784x36
66 RenderBlock {P} at (0,0) size 784x36 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-04-c-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x344
 3layer at (0,0) size 800x68
44 RenderBlock {HTML} at (0,0) size 800x68
55 RenderBody {BODY} at (8,16) size 784x36
66 RenderBlock {P} at (0,0) size 784x36 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c414-flt-wrap-01-d-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x163
 3layer at (0,0) size 800x156
44 RenderBlock {HTML} at (0,0) size 800x156
55 RenderBody {BODY} at (8,16) size 784x124
66 RenderBlock {P} at (0,0) size 784x18 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x260
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66 RenderBlock (floating) {DIV} at (0,0) size 588x252 [color=#FFFFFF] [bgcolor=#000080]
73334

LayoutTests/platform/mac/css2.1/t0905-c5525-fltwidth-02-c-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x54
 3layer at (0,0) size 800x34
44 RenderBlock {HTML} at (0,0) size 800x34
55 RenderBody {BODY} at (8,8) size 784x18
66 RenderBlock {DIV} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x44
 3layer at (0,0) size 800x34
44 RenderBlock {HTML} at (0,0) size 800x34
55 RenderBody {BODY} at (8,8) size 784x18
66 RenderBlock {DIV} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css2.1/t1202-counters-08-b-expected.txt

11layer at (0,0) size 954x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 954x94
 3layer at (0,0) size 800x94
44 RenderBlock {HTML} at (0,0) size 800x94
55 RenderBody {BODY} at (8,16) size 784x70
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css2.1/t1202-counters-09-b-expected.txt

11layer at (0,0) size 1047x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1047x94
 3layer at (0,0) size 800x94
44 RenderBlock {HTML} at (0,0) size 800x94
55 RenderBody {BODY} at (8,16) size 784x70
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/css2.1/t090501-c414-flt-02-d-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x218
 3layer at (0,0) size 800x154
44 RenderBlock {HTML} at (0,0) size 800x154
55 RenderBody {BODY} at (8,16) size 784x122
66 RenderBlock {P} at (0,0) size 784x18 [color=#000080]
73334

LayoutTests/platform/mac/css2.1/t090501-c414-flt-03-b-g-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x237
 3layer at (0,0) size 800x155
44 RenderBlock {HTML} at (0,0) size 800x155
55 RenderBody {BODY} at (8,16) size 784x123
66 RenderBlock {P} at (0,0) size 784x37 [color=#000080]
73334

LayoutTests/platform/mac/editing/deleting/delete-after-span-ws-001-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
1111EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
1212layer at (0,0) size 820x585
1313 RenderView at (0,0) size 800x585
14 layer at (0,0) size 820x585
 14layer at (0,0) size 800x585
1515 RenderBlock {HTML} at (0,0) size 800x585
1616 RenderBody {BODY} at (8,64) size 784x457
1717 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/deleting/delete-after-span-ws-002-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
1111EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
1212layer at (0,0) size 820x585
1313 RenderView at (0,0) size 800x585
14 layer at (0,0) size 820x585
 14layer at (0,0) size 800x585
1515 RenderBlock {HTML} at (0,0) size 800x585
1616 RenderBody {BODY} at (8,64) size 784x457
1717 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/deleting/delete-after-span-ws-003-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
1111EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
1212layer at (0,0) size 820x585
1313 RenderView at (0,0) size 800x585
14 layer at (0,0) size 820x585
 14layer at (0,0) size 800x585
1515 RenderBlock {HTML} at (0,0) size 800x585
1616 RenderBody {BODY} at (8,64) size 784x457
1717 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/deleting/delete-line-end-ws-001-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
6666EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6767layer at (0,0) size 820x585
6868 RenderView at (0,0) size 800x585
69 layer at (0,0) size 820x585
 69layer at (0,0) size 800x585
7070 RenderBlock {HTML} at (0,0) size 800x585
7171 RenderBody {BODY} at (8,64) size 784x457
7272 RenderBlock {DIV} at (64,0) size 748x244 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/deleting/delete-line-end-ws-002-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
6666EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
6767layer at (0,0) size 820x585
6868 RenderView at (0,0) size 800x585
69 layer at (0,0) size 820x585
 69layer at (0,0) size 800x585
7070 RenderBlock {HTML} at (0,0) size 800x585
7171 RenderBody {BODY} at (8,64) size 784x457
7272 RenderBlock {DIV} at (64,0) size 748x244 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/25228-expected.txt

1 layer at (0,0) size 2000x585
 1layer at (0,0) size 1100x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 2000x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (0,0) size 800x585
66 RenderBlock {DIV} at (798,0) size 302x272 [border: (1px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/focus_editable_html-expected.txt

@@EDITING DELEGATE: webViewDidBeginEditing
88EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
99layer at (0,0) size 2008x2088
1010 RenderView at (0,0) size 785x585
11 layer at (0,0) size 2008x2088
 11layer at (0,0) size 785x2088
1212 RenderBlock {HTML} at (0,0) size 785x2088
1313 RenderBody {BODY} at (8,8) size 769x2072
1414 RenderBlock (anonymous) at (0,0) size 769x54
73334

LayoutTests/platform/mac/editing/selection/select-all-001-expected.txt

@@EDITING DELEGATE: shouldChangeSelectedDO
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 820x900
77 RenderView at (0,0) size 785x585
8 layer at (0,0) size 820x900
 8layer at (0,0) size 785x900
99 RenderBlock {HTML} at (0,0) size 785x900
1010 RenderBody {BODY} at (8,64) size 769x772
1111 RenderBlock {DIV} at (64,0) size 748x772 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/select-all-002-expected.txt

@@EDITING DELEGATE: shouldChangeSelectedDO
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 820x900
77 RenderView at (0,0) size 785x585
8 layer at (0,0) size 820x900
 8layer at (0,0) size 785x900
99 RenderBlock {HTML} at (0,0) size 785x900
1010 RenderBody {BODY} at (8,64) size 769x772
1111 RenderBlock {DIV} at (64,0) size 748x772 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/select-all-003-expected.txt

@@EDITING DELEGATE: shouldChangeSelectedDO
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 812x1044
77 RenderView at (0,0) size 785x585
8 layer at (0,0) size 812x1044
 8layer at (0,0) size 785x1044
99 RenderBlock {HTML} at (0,0) size 785x1044
1010 RenderBody {BODY} at (64,64) size 748x916 [border: (50px solid #FF0000)]
1111 RenderBlock (anonymous) at (74,74) size 600x768
73334

LayoutTests/platform/mac/editing/selection/select-all-004-expected.txt

@@EDITING DELEGATE: shouldChangeSelectedDO
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 812x585
77 RenderView at (0,0) size 800x585
8 layer at (0,0) size 812x585
 8layer at (0,0) size 800x585
99 RenderBlock {HTML} at (0,0) size 800x585
1010 RenderBody {BODY} at (64,64) size 748x457 [border: (50px solid #FF0000)]
1111 RenderBlock {DIV} at (74,74) size 600x0
73334

LayoutTests/platform/mac/editing/selection/unrendered-001-expected.txt

@@EDITING DELEGATE: webViewDidBeginEditing
33EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
44layer at (0,0) size 820x585
55 RenderView at (0,0) size 800x585
6 layer at (0,0) size 820x585
 6layer at (0,0) size 800x585
77 RenderBlock {HTML} at (0,0) size 800x585
88 RenderBody {BODY} at (8,64) size 784x457
99 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/unrendered-002-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
55layer at (0,0) size 820x585
66 RenderView at (0,0) size 800x585
7 layer at (0,0) size 820x585
 7layer at (0,0) size 800x585
88 RenderBlock {HTML} at (0,0) size 800x585
99 RenderBody {BODY} at (8,64) size 784x457
1010 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/unrendered-003-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
44EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
55layer at (0,0) size 820x585
66 RenderView at (0,0) size 800x585
7 layer at (0,0) size 820x585
 7layer at (0,0) size 800x585
88 RenderBlock {HTML} at (0,0) size 800x585
99 RenderBody {BODY} at (8,64) size 784x457
1010 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/unrendered-004-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 820x585
77 RenderView at (0,0) size 800x585
8 layer at (0,0) size 820x585
 8layer at (0,0) size 800x585
99 RenderBlock {HTML} at (0,0) size 800x585
1010 RenderBody {BODY} at (8,64) size 784x457
1111 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/editing/selection/unrendered-005-expected.txt

@@EDITING DELEGATE: webViewDidChangeSelect
55EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
66layer at (0,0) size 820x585
77 RenderView at (0,0) size 800x585
8 layer at (0,0) size 820x585
 8layer at (0,0) size 800x585
99 RenderBlock {HTML} at (0,0) size 800x585
1010 RenderBody {BODY} at (8,64) size 784x457
1111 RenderBlock {DIV} at (64,0) size 748x196 [border: (50px solid #FF0000)]
73334

LayoutTests/platform/mac/fast/backgrounds/repeat/negative-offset-repeat-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x524
 3layer at (0,0) size 800x484
44 RenderBlock {HTML} at (0,0) size 800x484
55 RenderBody {BODY} at (8,16) size 784x452
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize15-expected.txt

11layer at (0,0) size 808x970
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 808x970
 3layer at (0,0) size 785x970
44 RenderBlock {HTML} at (0,0) size 785x970
55 RenderBody {BODY} at (8,8) size 769x954
66 RenderBlock {DIV} at (0,0) size 100x100
73334

LayoutTests/platform/mac/fast/block/basic/010-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x226
 3layer at (0,0) size 800x134
44 RenderBlock {HTML} at (0,0) size 800x134
55 RenderBody {BODY} at (8,8) size 784x118
66 RenderBlock (anonymous) at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt

@@layer at (0,0) size 785x859
3535 RenderText {#text} at (0,0) size 0x0
3636 RenderFieldSet {FIELDSET} at (2,812) size 128x29 [border: (2px groove #C0C0C0)]
3737 RenderBlock {LEGEND} at (14,0) size 156x12 [border: (1px solid #0000FF)]
38 layer at (8,581) size 186x40
 38layer at (8,581) size 100x40
3939 RenderBlock (relative positioned) {DIV} at (0,573) size 100x40
4040 RenderFieldSet {FIELDSET} at (2,0) size 184x29 [border: (2px groove #C0C0C0)]
4141 RenderBlock {LEGEND} at (14,0) size 156x12 [border: (1px solid #0000FF)]
73334

LayoutTests/platform/mac/fast/block/float/008-expected.txt

11layer at (0,0) size 785x608
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x608
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x300
66 RenderBlock (floating) {DIV} at (0,0) size 769x100 [bgcolor=#008000]
73334

LayoutTests/platform/mac/fast/block/float/013-expected.txt

@@layer at (0,0) size 808x585
33layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
6 layer at (8,64) size 800x115
 6layer at (8,64) size 800x108
77 RenderBlock (positioned) {DIV} at (8,64) size 800x108 [bgcolor=#0000FF]
88 RenderBlock {DIV} at (38,8) size 723x57 [bgcolor=#008000] [border: (2px solid #888878) none]
99 RenderText {#text} at (0,0) size 182x18
73334

LayoutTests/platform/mac/fast/block/float/019-expected.txt

11layer at (0,0) size 2008x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 2008x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {DIV} at (0,0) size 784x154
73334

LayoutTests/platform/mac/fast/block/float/021-expected.txt

11layer at (0,0) size 1518x3166
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1518x3166
 3layer at (0,0) size 785x3166
44 RenderBlock {HTML} at (0,0) size 785x3166
55 RenderBody {BODY} at (8,8) size 769x3142
66 RenderBlock (anonymous) at (0,0) size 769x36
73334

LayoutTests/platform/mac/fast/block/float/029-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x166
 3layer at (0,0) size 800x54
44 RenderBlock {HTML} at (0,0) size 800x54
55 RenderBody {BODY} at (8,8) size 784x38
66 RenderBlock (floating) {DIV} at (532,0) size 252x102 [border: (1px solid #FF0000)]
73334

LayoutTests/platform/mac/fast/block/float/031-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x332
 3layer at (0,0) size 800x300
44 RenderBlock {HTML} at (0,0) size 800x300
55 RenderBody {BODY} at (8,8) size 784x284
66 RenderBlock {P} at (0,0) size 784x50
73334

LayoutTests/platform/mac/fast/block/float/033-expected.txt

11layer at (0,0) size 785x2008
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x2008
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66layer at (477,8) size 300x2000
73334

LayoutTests/platform/mac/fast/block/float/035-expected.txt

11layer at (0,0) size 785x828
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x828
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66 RenderBlock (floating) {DIV} at (0,0) size 673x820 [border: (10px solid #0000FF)]
73334

LayoutTests/platform/mac/fast/block/float/avoidance-percent-width-strict-expected.txt

11layer at (0,0) size 812x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 812x138
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderBlock {DIV} at (0,0) size 800x50
73334

LayoutTests/platform/mac/fast/block/float/clamped-right-float-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x108
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66 RenderBlock (floating) {DIV} at (-4216,0) size 5000x100 [bgcolor=#66EEAA]
73334

LayoutTests/platform/mac/fast/block/float/float-in-float-painting-expected.txt

@@layer at (0,0) size 800x600
1212 text run at (0,18) width 115: "issues (flickr.com)"
1313 RenderText {#text} at (115,18) size 597x18
1414 text run at (115,18) width 597: ", or rather, a related painting issue. The word \"PASS\" should appear below in translucent blue."
15 layer at (8,44) size 784x162
 15layer at (8,44) size 784x125
1616 RenderBlock {DIV} at (0,36) size 784x125
1717 RenderBlock (floating) {DIV} at (0,0) size 104x125
1818 RenderImage {IMG} at (0,0) size 100x100
73334

LayoutTests/platform/mac/fast/block/float/nested-clearance-expected.txt

11layer at (0,0) size 785x1504
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x1504
 3layer at (0,0) size 785x1444
44 RenderBlock {HTML} at (0,0) size 785x1444
55 RenderBody {BODY} at (8,8) size 769x1428
66 RenderBlock (floating) {DIV} at (0,0) size 64x68
73334

LayoutTests/platform/mac/fast/block/float/relative-painted-twice-expected.txt

@@layer at (0,0) size 785x2016
55 RenderBody {BODY} at (8,8) size 769x2000
66 RenderBlock {DIV} at (0,0) size 769x150
77 RenderBlock {DIV} at (0,150) size 769x0
8 layer at (8,58) size 769x100
 8layer at (8,58) size 769x0
99 RenderBlock (relative positioned) {DIV} at (0,0) size 769x0
1010 RenderBlock (floating) {DIV} at (0,0) size 100x100 [bgcolor=#0000007F]
1111caret: position 0 of child 1 {DIV} of child 1 {DIV} of child 1 {DIV} of body
73334

LayoutTests/platform/mac/fast/block/margin-collapse/004-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x130
 3layer at (0,0) size 800x58
44 RenderBlock {HTML} at (0,0) size 800x58
55 RenderBody {BODY} at (8,16) size 784x114
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/block/margin-collapse/062-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x110 layerType: background only
 3layer at (0,0) size 800x46 layerType: background only
44layer at (10,46) size 320x64
55 RenderBlock (positioned) zI: -1 {DIV} at (10,46) size 320x64 [color=#FFFF00] [bgcolor=#FF0000]
66 RenderText zI: -1 {#text} at (0,0) size 36x18
77 text run at (0,0) width 36: "FAIL"
8 layer at (0,0) size 800x110 layerType: foreground only
 8layer at (0,0) size 800x46 layerType: foreground only
99 RenderBlock {HTML} at (0,0) size 800x46
1010 RenderBody {BODY} at (10,46) size 780x0
1111 RenderBlock {DIV} at (2,0) size 776x0
73334

LayoutTests/platform/mac/fast/block/margin-collapse/063-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x77 layerType: background only
 3layer at (0,0) size 800x49 layerType: background only
44layer at (10,13) size 320x64
55 RenderBlock (positioned) zI: -1 {DIV} at (10,13) size 320x64 [color=#FFFF00] [bgcolor=#FF0000]
66 RenderText zI: -1 {#text} at (0,0) size 36x18
77 text run at (0,0) width 36: "FAIL"
8 layer at (0,0) size 800x77 layerType: foreground only
 8layer at (0,0) size 800x49 layerType: foreground only
99 RenderBlock {HTML} at (0,0) size 800x49
1010 RenderBody {BODY} at (10,2) size 780x1
1111 RenderBlock {DIV} at (2,0) size 776x1
73334

LayoutTests/platform/mac/fast/block/margin-collapse/104-expected.txt

11layer at (0,0) size 976x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 976x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {DIV} at (0,0) size 784x108 [border: (2px solid #0000FF)]
73334

LayoutTests/platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x130
 3layer at (0,0) size 800x58
44 RenderBlock {HTML} at (0,0) size 800x58
55 RenderBody {BODY} at (8,16) size 784x114
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.txt

@@layer at (0,0) size 800x483
3434 text run at (259,0) width 49: "test 006"
3535 RenderText {#text} at (308,0) size 4x18
3636 text run at (308,0) width 4: "."
37 layer at (11,103) size 36x327
 37layer at (11,103) size 36x277
3838 RenderBlock (relative positioned) {DIV} at (0,0) size 36x277 [bgcolor=#0000FF]
3939 RenderBlock (anonymous) at (0,0) size 36x0
4040 RenderInline {SPAN} at (0,0) size 0x0

@@layer at (11,103) size 36x327
6262 RenderBlock (anonymous) at (0,327) size 36x0
6363 RenderInline {SPAN} at (0,0) size 0x0
6464 RenderText {#text} at (0,0) size 0x0
65 layer at (11,103) size 36x109
 65layer at (11,103) size 36x59
6666 RenderBlock (relative positioned) {DIV} at (0,0) size 36x59 [bgcolor=#FF0000]
6767 RenderBlock (anonymous) at (0,0) size 36x0
6868 RenderInline {SPAN} at (0,0) size 0x0

@@layer at (11,103) size 36x109
7474 RenderBlock (anonymous) at (0,109) size 36x0
7575 RenderInline {SPAN} at (0,0) size 0x0
7676 RenderInline {SPAN} at (0,0) size 0x0
77 layer at (11,103) size 36x109
 77layer at (11,103) size 36x59
7878 RenderBlock (relative positioned) {DIV} at (0,0) size 36x59 [bgcolor=#FF0000]
7979 RenderBlock (anonymous) at (0,0) size 36x0
8080 RenderInline {SPAN} at (0,0) size 0x0

@@layer at (11,103) size 36x59
8585 RenderBlock (relative positioned) {DIV} at (0,0) size 36x59 [bgcolor=#FFFF00]
8686 RenderText {#text} at (0,0) size 36x59
8787 text run at (0,0) width 36: "A"
88 layer at (11,212) size 36x109
 88layer at (11,212) size 36x59
8989 RenderBlock (relative positioned) {DIV} at (0,0) size 36x59 [bgcolor=#FF0000]
9090 RenderBlock (anonymous) at (0,0) size 36x0
9191 RenderInline {SPAN} at (0,0) size 0x0
73334

LayoutTests/platform/mac/fast/block/positioning/002-expected.txt

@@layer at (0,0) size 800x134
88 RenderText {#text} at (0,1) size 528x16
99 text run at (0,1) width 528: "Ahem_font_required_for_this_test."
1010 RenderText {#text} at (0,0) size 0x0
11 layer at (8,26) size 600x200
 11layer at (8,26) size 300x100
1212 RenderBlock (relative positioned) {DIV} at (0,18) size 300x100 [bgcolor=#FF0000]
1313 RenderBlock {DIV} at (0,0) size 600x200 [color=#008000]
1414 RenderText {#text} at (0,0) size 300x100
73334

LayoutTests/platform/mac/fast/block/positioning/047-expected.txt

@@layer at (8,8) size 512x839
5151 text run at (320,31) width 192: " (hit it a few times on"
5252 text run at (0,60) width 501: "this page). This is a crippling flaw for people who need"
5353 text run at (0,89) width 370: "to enlarge the fonts to read comfortably."
54 layer at (546,179) size 200x49
 54layer at (546,179) size 200x48
5555 RenderBlock (positioned) {SPAN} at (538,171) size 200x48
5656 RenderText {#text} at (0,-1) size 199x50
5757 text run at (0,-1) width 199: "\x{2190} this should be to the right of"
73334

LayoutTests/platform/mac/fast/block/positioning/049-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x600
44 RenderBlock {HTML} at (0,0) size 800x600
55 RenderBody {BODY} at (8,8) size 784x584
6 layer at (10,10) size 160x160
 6layer at (10,10) size 120x120
77 RenderBlock (positioned) {DIV} at (10,10) size 120x120 [bgcolor=#FF0000] [border: (10px solid #000000)]
88 RenderBlock {DIV} at (10,10) size 150x150 [bgcolor=#008000]
99layer at (200,10) size 120x120 clip at (210,20) size 100x100 scrollWidth 150 scrollHeight 150
73334

LayoutTests/platform/mac/fast/block/positioning/051-expected.txt

@@layer at (34,2265) size 200x200
2121 RenderBlock (positioned) zI: -30 {P} at (10,210) size 200x200 [color=#FFFFFF] [bgcolor=#660099]
2222 RenderText zI: -30 {#text} at (71,42) size 57x97
2323 text run at (71,42) width 57: "7"
24 layer at (84,843) size 519x200
 24layer at (84,843) size 200x200
2525 RenderBlock (positioned) zI: -3 {P} at (60,60) size 200x200 [color=#FFFFFF] [bgcolor=#990066]
2626 RenderText zI: -3 {#text} at (50,42) size 469x97
2727 text run at (50,42) width 469: " 8 hide me"

@@layer at (0,0) size 785x5269 layerType:
9999 text run at (0,0) width 349: "Using assumed default value of z-index (may not pass):"
100100layer at (24,147) size 620x620
101101 RenderBlock (relative positioned) {DIV} at (16,126) size 620x620 [border: (10px solid #000000)]
102 layer at (84,207) size 519x200
 102layer at (84,207) size 200x200
103103 RenderBlock (positioned) {P} at (60,60) size 200x200 [color=#FFFFFF] [bgcolor=#990066]
104104 RenderText {#text} at (50,42) size 469x97
105105 text run at (50,42) width 469: " 8 hide me"
73334

LayoutTests/platform/mac/fast/block/positioning/auto-height-with-top-and-bottom-expected.txt

@@layer at (0,0) size 800x600
88 text run at (0,0) width 634: "The red box should be entirely inside the black box with the text content spilling out of both of them."
99layer at (8,42) size 404x104
1010 RenderBlock (relative positioned) {DIV} at (0,34) size 404x104 [border: (2px solid #000000)]
11 layer at (10,64) size 400x146
 11layer at (10,64) size 400x60
1212 RenderBlock (positioned) {DIV} at (2,22) size 400x60 [border: (2px solid #FF0000)]
1313 RenderText {#text} at (2,2) size 396x144
1414 text run at (2,2) width 396: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do"
73334

LayoutTests/platform/mac/fast/block/positioning/replaced-inside-fixed-top-bottom-expected.txt

@@layer at (0,0) size 800x0
55 RenderBody {BODY} at (0,0) size 800x0
66layer at (50,100) size 700x400
77 RenderBlock (positioned) {DIV} at (50,100) size 700x400 [border: (1px solid #808080)]
8 layer at (51,140) size 560x323
 8layer at (51,140) size 560x320
99 RenderBlock (positioned) {DIV} at (1,40) size 560x320 [border: (1px solid #FF0000)]
1010 RenderImage {IMG} at (1,1) size 392x318
1111 RenderText {#text} at (0,0) size 0x0
73334

LayoutTests/platform/mac/fast/blockflow/block-level-images-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x314
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66 RenderBlock (floating) {DIV} at (2,2) size 264x304 [border: (2px solid #000000)]
73334

LayoutTests/platform/mac/fast/blockflow/border-radius-clipping-vertical-lr-expected.txt

11layer at (0,0) size 785x621
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x621
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 727x584
66 RenderBlock {DIV} at (0,0) size 144x600
73334

LayoutTests/platform/mac/fast/blockflow/box-shadow-vertical-lr-expected.txt

11layer at (0,0) size 785x608
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x608
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66 RenderBlock {DIV} at (0,0) size 144x600
73334

LayoutTests/platform/mac/fast/blockflow/box-shadow-vertical-rl-expected.txt

11layer at (0,0) size 785x608
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x608
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66 RenderBlock {DIV} at (0,0) size 144x600
73334

LayoutTests/platform/mac/fast/blockflow/floats-in-block-layout-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 308x600
 3layer at (0,0) size 116x600
44 RenderBlock {HTML} at (0,0) size 116x600
55 RenderBody {BODY} at (8,8) size 100x584
66 RenderBlock {DIV} at (0,0) size 100x584 [bgcolor=#FFFF00]
73334

LayoutTests/platform/mac/fast/body-propagation/background-color/002-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x34
 3layer at (0,0) size 800x24
44 RenderBlock {HTML} at (0,0) size 800x24 [bgcolor=#00FF00]
55 RenderBody {BODY} at (8,16) size 784x0 [bgcolor=#FF0000]
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x34
 3layer at (0,0) size 800x24
44 RenderBlock {html} at (0,0) size 800x24 [bgcolor=#00FF00]
55 RenderBody {body} at (8,16) size 784x0 [bgcolor=#FF0000]
66 RenderBlock {p} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/body-propagation/background-image/002-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x34
 3layer at (0,0) size 800x24
44 RenderBlock {HTML} at (0,0) size 800x24
55 RenderBody {BODY} at (8,16) size 784x0
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x34
 3layer at (0,0) size 800x24
44 RenderBlock {html} at (0,0) size 800x24
55 RenderBody {body} at (8,16) size 784x0
66 RenderBlock {p} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/body-propagation/overflow/001-expected.txt

11layer at (0,0) size 785x585
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x233
 3layer at (0,0) size 785x178
44 RenderBlock {HTML} at (0,0) size 785x178
55 RenderBody {BODY} at (8,8) size 162x162 [color=#000080] [border: (1px solid #000080)]
66 RenderBlock {P} at (1,17) size 160x72
73334

LayoutTests/platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt

11layer at (0,0) size 785x585
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x233
 3layer at (0,0) size 785x178
44 RenderBlock {html} at (0,0) size 785x178
55 RenderBody {body} at (8,8) size 162x162 [color=#000080] [border: (1px solid #000080)]
66 RenderBlock {p} at (1,17) size 160x72
73334

LayoutTests/platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt

11layer at (0,0) size 785x585
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x449
 3layer at (0,0) size 785x340
44 RenderBlock {html} at (0,0) size 785x340
55 RenderBody {body} at (8,170) size 162x162 [color=#000080] [border: (1px solid #000080)]
66 RenderBlock {p} at (1,17) size 160x126
73334

LayoutTests/platform/mac/fast/body-propagation/overflow/005-expected.txt

11layer at (0,0) size 785x585
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x449
 3layer at (0,0) size 785x340
44 RenderBlock {HTML} at (0,0) size 785x340
55 RenderBody {BODY} at (8,170) size 162x162 [color=#000080] [border: (1px solid #000080)]
66 RenderBlock {P} at (1,17) size 160x126
73334

LayoutTests/platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt

11layer at (0,0) size 785x585
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x449
 3layer at (0,0) size 785x340
44 RenderBlock {html} at (0,0) size 785x340
55 RenderBody {body} at (8,170) size 162x162 [color=#000080] [border: (1px solid #000080)]
66 RenderBlock {p} at (1,17) size 160x126
73334

LayoutTests/platform/mac/fast/borders/fieldsetBorderRadius-expected.txt

@@layer at (0,0) size 800x600
4242 RenderText {#text} at (0,0) size 0x0
4343 RenderFieldSet {FIELDSET} at (2,347) size 128x39 [border: (2px groove #C0C0C0)]
4444 RenderBlock {LEGEND} at (14,0) size 156x12 [border: (1px solid #0000FF)]
45 layer at (458,106) size 186x40
 45layer at (458,106) size 100x40
4646 RenderBlock (relative positioned) {DIV} at (0,98) size 100x40
4747 RenderFieldSet {FIELDSET} at (2,0) size 184x39 [border: (2px groove #C0C0C0)]
4848 RenderBlock {LEGEND} at (14,0) size 156x12 [border: (1px solid #0000FF)]
73334

LayoutTests/platform/mac/fast/box-shadow/basic-shadows-expected.txt

11layer at (0,0) size 785x671
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x671
 3layer at (0,0) size 785x658
44 RenderBlock {HTML} at (0,0) size 785x658
55 RenderBody {BODY} at (8,8) size 769x634
66 RenderBlock (anonymous) at (0,0) size 769x150
73334

LayoutTests/platform/mac/fast/box-sizing/box-sizing-expected.txt

@@layer at (43,413) size 20x20
7575 RenderBlock (positioned) {DIV} at (43,413) size 20x20 [color=#FFFFFF] [bgcolor=#FFA500] [border: (2px solid #000000)]
7676layer at (73,413) size 20x20
7777 RenderBlock (positioned) {DIV} at (73,413) size 20x20 [color=#FFFFFF] [bgcolor=#FFA500] [border: (2px solid #000000)]
78 layer at (103,413) size 20x60
 78layer at (103,413) size 20x20
7979 RenderBlock (positioned) {DIV} at (103,413) size 20x20 [color=#FFFFFF] [bgcolor=#FFA500] [border: (2px solid #000000)]
8080 RenderBR {BR} at (6,6) size 0x18
8181 RenderBR {BR} at (6,24) size 0x18
73334

LayoutTests/platform/mac/fast/clip/008-expected.txt

@@layer at (0,0) size 800x70
1313 RenderText {#text} at (0,0) size 0x0
1414layer at (8,62) size 100x100
1515 RenderBlock (positioned) {DIV} at (8,62) size 100x100
16 layer at (100,100) size 200x200
 16layer at (100,100) size 100x100
1717 RenderBlock (positioned) {DIV} at (100,100) size 100x100
1818layer at (200,200) size 100x100
1919 RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#008000]
73334

LayoutTests/platform/mac/fast/clip/009-expected.txt

@@layer at (0,0) size 800x52
99 text run at (541,0) width 239: "This test is checking to make sure clip"
1010 text run at (0,18) width 192: "is applying to all descendants. "
1111 RenderText {#text} at (0,0) size 0x0
12 layer at (8,44) size 200x200 backgroundClip at (8,44) size 100x100 clip at (8,44) size 100x100 outlineClip at (8,44) size 100x100
 12layer at (8,44) size 100x100
1313 RenderBlock (positioned) {DIV} at (8,44) size 100x100 [bgcolor=#008000]
1414 RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#FF0000]
73334

LayoutTests/platform/mac/fast/clip/010-expected.txt

@@layer at (0,0) size 800x52
99 text run at (541,0) width 239: "This test is checking to make sure clip"
1010 text run at (0,18) width 192: "is applying to all descendants. "
1111 RenderText {#text} at (0,0) size 0x0
12 layer at (8,44) size 200x200 backgroundClip at (8,44) size 100x100 clip at (8,44) size 100x100 outlineClip at (8,44) size 100x100
 12layer at (8,44) size 100x100
1313 RenderBlock (positioned) {DIV} at (8,44) size 100x100 [bgcolor=#008000]
1414 RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#FF0000]
73334

LayoutTests/platform/mac/fast/clip/011-expected.txt

@@layer at (0,0) size 800x52
99 text run at (541,0) width 239: "This test is checking to make sure clip"
1010 text run at (0,18) width 192: "is applying to all descendants. "
1111 RenderText {#text} at (0,0) size 0x0
12 layer at (8,44) size 200x400 backgroundClip at (8,44) size 100x100 clip at (8,44) size 100x100 outlineClip at (8,44) size 100x100
 12layer at (8,44) size 100x100
1313 RenderBlock (positioned) {DIV} at (8,44) size 100x100 [bgcolor=#008000]
1414 RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#FF0000]
73334

LayoutTests/platform/mac/fast/clip/012-expected.txt

@@layer at (0,0) size 800x52
99 text run at (541,0) width 239: "This test is checking to make sure clip"
1010 text run at (0,18) width 192: "is applying to all descendants. "
1111 RenderText {#text} at (0,0) size 0x0
12 layer at (8,44) size 200x400 backgroundClip at (8,44) size 100x100 clip at (8,44) size 100x100 outlineClip at (8,44) size 100x100
 12layer at (8,44) size 100x100
1313 RenderBlock (positioned) {DIV} at (8,44) size 100x100 [bgcolor=#008000]
1414 RenderBlock {DIV} at (100,100) size 100x100 [bgcolor=#FF0000]
73334

LayoutTests/platform/mac/fast/compact/001-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x77
 3layer at (0,0) size 800x76
44 RenderBlock {HTML} at (0,0) size 800x76
55 RenderBody {BODY} at (8,16) size 784x52
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/css/color-correction-on-background-image-expected.txt

11layer at (0,0) size 785x860
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x860
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x576
66 RenderBlock {P} at (0,0) size 769x36
73334

LayoutTests/platform/mac/fast/css/negative-leading-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x205
 3layer at (0,0) size 800x198
44 RenderBlock {HTML} at (0,0) size 800x198
55 RenderBody {BODY} at (8,16) size 784x174
66 RenderBlock {P} at (0,0) size 784x36
73334

LayoutTests/platform/mac/fast/css/percentage-non-integer-expected.txt

11layer at (0,0) size 1013x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1013x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#00FF00]
73334

LayoutTests/platform/mac/fast/css/word-space-extra-expected.txt

11layer at (0,0) size 2026x2393
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 2026x2393
 3layer at (0,0) size 785x2393
44 RenderBlock {HTML} at (0,0) size 785x2393
55 RenderBody {BODY} at (8,8) size 769x2377
66 RenderBlock {H2} at (0,0) size 769x28
73334

LayoutTests/platform/mac/fast/dom/clone-node-dynamic-style-expected.txt

11layer at (0,0) size 838x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 838x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {H1} at (0,0) size 784x37
73334

LayoutTests/platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 768x592
 3layer at (0,0) size 768x568
44 RenderBlock {HTML} at (0,0) size 768x568
55 RenderBody {BODY} at (8,8) size 752x584
66 RenderText {#text} at (0,0) size 484x18
73334

LayoutTests/platform/mac/fast/events/focusingUnloadedFrame-expected.txt

@@layer at (0,0) size 800x600
1919 text run at (580,18) width 37: "Crash"
2020 RenderText {#text} at (0,0) size 0x0
2121 RenderFrame {FRAME} at (0,0) size 0x0
22  layer at (0,0) size 8x8
 22 layer at (0,0) size 0x0
2323 RenderView at (0,0) size 0x0
24  layer at (0,0) size 8x8
 24 layer at (0,0) size 0x8
2525 RenderBlock {HTML} at (0,0) size 0x8
2626 RenderBody {BODY} at (8,8) size 0x0
73334

LayoutTests/platform/mac/fast/flexbox/009-expected.txt

@@layer at (0,0) size 800x600
1111 text run at (249,18) width 326: "If you do not see a scrollbar, then the test has failed."
1212layer at (8,60) size 104x104 clip at (10,62) size 85x100 scrollHeight 1000
1313 RenderFlexibleBox {DIV} at (0,52) size 104x104 [bgcolor=#008000] [border: (2px solid #808000)]
14  RenderBlock {DIV} at (2,2) size 0x1000
 14 RenderBlock {DIV} at (2,2) size 85x1000
73334

LayoutTests/platform/mac/fast/flexbox/016-expected.txt

11layer at (0,0) size 812x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 812x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585 [bgcolor=#FFFFFF]
55 RenderBody {BODY} at (0,0) size 800x585
66 RenderFlexibleBox {DIV} at (0,0) size 800x585
73334

LayoutTests/platform/mac/fast/flexbox/flex-hang-expected.txt

11layer at (0,0) size 788x587
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 788x587
 3layer at (0,0) size 785x587
44 RenderBlock {HTML} at (0,0) size 785x587
55 RenderBody {BODY} at (0,0) size 785x587
66 RenderFlexibleBox {DIV} at (0,0) size 787x587 [border: (1px solid #000000)]
73334

LayoutTests/platform/mac/fast/forms/basic-textareas-quirks-expected.txt

11layer at (0,0) size 785x1050
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x1050
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66 RenderBlock (floating) {DIV} at (0,0) size 352x817 [border: (1px solid #FF0000)]
73334

LayoutTests/platform/mac/fast/forms/file-input-direction-expected.txt

11layer at (0,0) size 1083x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1083x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 1075x108
73334

LayoutTests/platform/mac/fast/forms/floating-textfield-relayout-expected.txt

@@layer at (0,0) size 800x600
1717 RenderText {#text} at (59,18) size 4x18
1818 text run at (59,18) width 4: "."
1919 RenderBlock {HR} at (0,52) size 784x2 [border: (1px inset #000000)]
20 layer at (8,70) size 784x21
 20layer at (8,70) size 784x0
2121 RenderBlock (relative positioned) {DIV} at (0,62) size 784x0
2222 RenderTextControl {INPUT} at (0,2) size 392x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
2323layer at (11,75) size 386x13
73334

LayoutTests/platform/mac/fast/forms/textfield-overflow-expected.txt

@@layer at (0,0) size 800x600
66 RenderTextControl {INPUT} at (2,0) size 125x10 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
77 RenderText {#text} at (0,0) size 0x0
88 RenderText {#text} at (0,0) size 0x0
9 layer at (13,11) size 119x4
 9layer at (13,11) size 119x4 scrollHeight 13
1010 RenderBlock {DIV} at (3,3) size 119x4
1111caret: position 0 of child 0 {DIV} of child 1 {INPUT} of body
73334

LayoutTests/platform/mac/fast/frames/frame-scrolling-attribute-expected.txt

@@layer at (0,0) size 800x600
66 RenderFrame {FRAME} at (0,0) size 195x145
77 layer at (0,0) size 408x486
88 RenderView at (0,0) size 180x130
9  layer at (0,0) size 408x486
 9 layer at (0,0) size 180x486
1010 RenderBlock {HTML} at (0,0) size 180x486
1111 RenderBody {BODY} at (8,8) size 164x470
1212 RenderBlock {P} at (0,0) size 164x54

@@layer at (0,0) size 800x600
1818 RenderFrame {FRAME} at (201,0) size 195x145
1919 layer at (0,0) size 408x486
2020 RenderView at (0,0) size 180x130
21  layer at (0,0) size 408x486
 21 layer at (0,0) size 180x486
2222 RenderBlock {HTML} at (0,0) size 180x486
2323 RenderBody {BODY} at (8,8) size 164x470
2424 RenderBlock {P} at (0,0) size 164x54

@@layer at (0,0) size 800x600
3030 RenderFrame {FRAME} at (402,0) size 195x145
3131 layer at (0,0) size 408x486
3232 RenderView at (0,0) size 180x130
33  layer at (0,0) size 408x486
 33 layer at (0,0) size 180x486
3434 RenderBlock {HTML} at (0,0) size 180x486
3535 RenderBody {BODY} at (8,8) size 164x470
3636 RenderBlock {P} at (0,0) size 164x54

@@layer at (0,0) size 800x600
4242 RenderFrame {FRAME} at (603,0) size 197x145
4343 layer at (0,0) size 408x486
4444 RenderView at (0,0) size 182x130
45  layer at (0,0) size 408x486
 45 layer at (0,0) size 182x486
4646 RenderBlock {HTML} at (0,0) size 182x486
4747 RenderBody {BODY} at (8,8) size 166x470
4848 RenderBlock {P} at (0,0) size 166x54

@@layer at (0,0) size 800x600
5454 RenderFrame {FRAME} at (0,151) size 195x145
5555 layer at (0,0) size 408x486
5656 RenderView at (0,0) size 180x130
57  layer at (0,0) size 408x486
 57 layer at (0,0) size 180x486
5858 RenderBlock {HTML} at (0,0) size 180x486
5959 RenderBody {BODY} at (8,8) size 164x470
6060 RenderBlock {P} at (0,0) size 164x54

@@layer at (0,0) size 800x600
6666 RenderFrame {FRAME} at (201,151) size 195x145
6767 layer at (0,0) size 408x486
6868 RenderView at (0,0) size 195x145
69  layer at (0,0) size 408x486
 69 layer at (0,0) size 195x486
7070 RenderBlock {HTML} at (0,0) size 195x486
7171 RenderBody {BODY} at (8,8) size 179x470
7272 RenderBlock {P} at (0,0) size 179x54

@@layer at (0,0) size 800x600
7878 RenderFrame {FRAME} at (402,151) size 195x145
7979 layer at (0,0) size 408x486
8080 RenderView at (0,0) size 180x130
81  layer at (0,0) size 408x486
 81 layer at (0,0) size 180x486
8282 RenderBlock {HTML} at (0,0) size 180x486
8383 RenderBody {BODY} at (8,8) size 164x470
8484 RenderBlock {P} at (0,0) size 164x54

@@layer at (0,0) size 800x600
9090 RenderFrame {FRAME} at (603,151) size 197x145
9191 layer at (0,0) size 408x486
9292 RenderView at (0,0) size 182x130
93  layer at (0,0) size 408x486
 93 layer at (0,0) size 182x486
9494 RenderBlock {HTML} at (0,0) size 182x486
9595 RenderBody {BODY} at (8,8) size 166x470
9696 RenderBlock {P} at (0,0) size 166x54
73334

LayoutTests/platform/mac/fast/frames/iframe-scrolling-attribute-expected.txt

@@layer at (0,0) size 785x692
2121 RenderPartObject {IFRAME} at (0,0) size 204x204 [border: (2px inset #000000)]
2222 layer at (0,0) size 408x486
2323 RenderView at (0,0) size 185x185
24  layer at (0,0) size 408x486
 24 layer at (0,0) size 185x486
2525 RenderBlock {HTML} at (0,0) size 185x486
2626 RenderBody {BODY} at (8,8) size 169x470
2727 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
3535 RenderPartObject {IFRAME} at (208,0) size 204x204 [border: (2px inset #000000)]
3636 layer at (0,0) size 408x486
3737 RenderView at (0,0) size 185x185
38  layer at (0,0) size 408x486
 38 layer at (0,0) size 185x486
3939 RenderBlock {HTML} at (0,0) size 185x486
4040 RenderBody {BODY} at (8,8) size 169x470
4141 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
4949 RenderPartObject {IFRAME} at (416,0) size 204x204 [border: (2px inset #000000)]
5050 layer at (0,0) size 408x486
5151 RenderView at (0,0) size 185x185
52  layer at (0,0) size 408x486
 52 layer at (0,0) size 185x486
5353 RenderBlock {HTML} at (0,0) size 185x486
5454 RenderBody {BODY} at (8,8) size 169x470
5555 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
6363 RenderPartObject {IFRAME} at (0,208) size 204x204 [border: (2px inset #000000)]
6464 layer at (0,0) size 408x486
6565 RenderView at (0,0) size 185x185
66  layer at (0,0) size 408x486
 66 layer at (0,0) size 185x486
6767 RenderBlock {HTML} at (0,0) size 185x486
6868 RenderBody {BODY} at (8,8) size 169x470
6969 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
7777 RenderPartObject {IFRAME} at (208,208) size 204x204 [border: (2px inset #000000)]
7878 layer at (0,0) size 408x486
7979 RenderView at (0,0) size 185x185
80  layer at (0,0) size 408x486
 80 layer at (0,0) size 185x486
8181 RenderBlock {HTML} at (0,0) size 185x486
8282 RenderBody {BODY} at (8,8) size 169x470
8383 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
9191 RenderPartObject {IFRAME} at (416,208) size 204x204 [border: (2px inset #000000)]
9292 layer at (0,0) size 408x486
9393 RenderView at (0,0) size 200x200
94  layer at (0,0) size 408x486
 94 layer at (0,0) size 200x486
9595 RenderBlock {HTML} at (0,0) size 200x486
9696 RenderBody {BODY} at (8,8) size 184x470
9797 RenderBlock {P} at (0,0) size 184x54

@@layer at (0,0) size 785x692
105105 RenderPartObject {IFRAME} at (0,416) size 204x204 [border: (2px inset #000000)]
106106 layer at (0,0) size 408x486
107107 RenderView at (0,0) size 185x185
108  layer at (0,0) size 408x486
 108 layer at (0,0) size 185x486
109109 RenderBlock {HTML} at (0,0) size 185x486
110110 RenderBody {BODY} at (8,8) size 169x470
111111 RenderBlock {P} at (0,0) size 169x54

@@layer at (0,0) size 785x692
119119 RenderPartObject {IFRAME} at (208,416) size 204x204 [border: (2px inset #000000)]
120120 layer at (0,0) size 408x486
121121 RenderView at (0,0) size 185x185
122  layer at (0,0) size 408x486
 122 layer at (0,0) size 185x486
123123 RenderBlock {HTML} at (0,0) size 185x486
124124 RenderBody {BODY} at (8,8) size 169x470
125125 RenderBlock {P} at (0,0) size 169x54
73334

LayoutTests/platform/mac/fast/frames/inline-object-inside-frameset-expected.txt

11layer at (0,0) size 793x634
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 793x634
 3layer at (0,0) size 785x634
44 RenderBlock {HTML} at (0,0) size 785x634
55 RenderBody {BODY} at (8,8) size 769x618
66 RenderBlock {DIV} at (0,0) size 769x18
73334

LayoutTests/platform/mac/fast/frames/flattening/frameset-flattening-advanced-expected.txt

11layer at (0,0) size 866x607
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 866x607
 3layer at (0,0) size 785x607
44 RenderBlock {HTML} at (0,0) size 785x607
55 RenderFrameSet {FRAMESET} at (0,0) size 866x607
66 RenderFrameSet {FRAMESET} at (0,0) size 866x207
73334

LayoutTests/platform/mac/fast/frames/flattening/frameset-flattening-grid-expected.txt

11layer at (0,0) size 1200x800
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1200x800
 3layer at (0,0) size 785x800
44 RenderBlock {HTML} at (0,0) size 785x800
55 RenderFrameSet {FRAMESET} at (0,0) size 1200x800
66 RenderFrame {FRAME} at (0,0) size 600x200
73334

LayoutTests/platform/mac/fast/frames/flattening/frameset-flattening-simple-expected.txt

11layer at (0,0) size 1000x600
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1000x600
 3layer at (0,0) size 800x600
44 RenderBlock {HTML} at (0,0) size 800x600
55 RenderFrameSet {FRAMESET} at (0,0) size 1000x600
66 RenderFrame {FRAME} at (0,0) size 800x600
73334

LayoutTests/platform/mac/fast/frames/flattening/frameset-flattening-subframe-resize-expected.txt

11layer at (0,0) size 1000x650
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1000x650
 3layer at (0,0) size 785x650
44 RenderBlock {HTML} at (0,0) size 785x650
55 RenderFrameSet {FRAMESET} at (0,0) size 1000x650
66 RenderFrame {FRAME} at (0,0) size 300x650
73334

LayoutTests/platform/mac/fast/frames/flattening/frameset-flattening-subframesets-expected.txt

11layer at (0,0) size 900x630
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 900x630
 3layer at (0,0) size 785x630
44 RenderBlock {HTML} at (0,0) size 785x630
55 RenderFrameSet {FRAMESET} at (0,0) size 900x630
66 RenderFrameSet {FRAMESET} at (0,0) size 900x150
73334

LayoutTests/platform/mac/fast/gradients/background-clipped-expected.txt

11layer at (0,0) size 842x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 842x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {DIV} at (-50,260) size 210x210 [border: (5px dashed #0000FF)]
73334

LayoutTests/platform/mac/fast/images/gif-large-checkerboard-expected.txt

11layer at (0,0) size 1599x2090
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1599x2090
 3layer at (0,0) size 785x2090
44 RenderBlock {HTML} at (0,0) size 785x2090
55 RenderBody {BODY} at (8,8) size 769x2074
66 RenderImage {IMG} at (0,0) size 1591x2074
73334

LayoutTests/platform/mac/fast/images/pdf-as-image-landscape-expected.txt

11layer at (0,0) size 850x653
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 850x653
 3layer at (0,0) size 785x653
44 RenderBlock {HTML} at (0,0) size 785x653
55 RenderBody {BODY} at (8,8) size 769x629
66 RenderBlock (anonymous) at (0,0) size 769x18
73334

LayoutTests/platform/mac/fast/inline-block/inline-block-vertical-align-expected.txt

11layer at (0,0) size 1024x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1024x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {DIV} at (0,0) size 784x56
73334

LayoutTests/platform/mac/fast/inline/long-wrapped-line-expected.txt

11layer at (0,0) size 1983x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1983x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderInline {SPAN} at (0,0) size 1975x18
73334

LayoutTests/platform/mac/fast/layers/layer-visibility-expected.txt

@@layer at (10,322) size 130x36
191191 text run at (0,0) width 115: "16 green box with"
192192 text run at (0,18) width 61: "word ok: "
193193 RenderText {#text} at (0,0) size 0x0
194 layer at (10,358) size 130x50
 194layer at (10,358) size 130x34
195195 RenderBlock (positioned) {DIV} at (0,36) size 130x34 [border: (2px solid #FF0000)]
196196 RenderBlock {DIV} at (2,2) size 126x48 [border: (2px solid #FF0000)]
197197 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #FF0000)]

@@layer at (144,322) size 130x36
206206 text run at (0,0) width 115: "17 green box with"
207207 text run at (0,18) width 61: "word ok: "
208208 RenderText {#text} at (0,0) size 0x0
209 layer at (144,358) size 130x50
 209layer at (144,358) size 130x34
210210 RenderBlock (positioned) {DIV} at (0,36) size 130x34 [border: (2px solid #FF0000)]
211211 RenderBlock {DIV} at (2,2) size 126x48 [border: (2px solid #FF0000)]
212212 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #008000)]

@@layer at (278,322) size 130x36
221221 text run at (0,0) width 115: "18 green box with"
222222 text run at (0,18) width 61: "word ok: "
223223 RenderText {#text} at (0,0) size 0x0
224 layer at (278,358) size 130x50
 224layer at (278,358) size 130x34
225225 RenderBlock (positioned) {DIV} at (0,36) size 130x34 [border: (2px solid #FF0000)]
226226 RenderBlock {DIV} at (2,2) size 126x48 [border: (2px solid #FF0000)]
227227 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #FF0000)]

@@layer at (412,322) size 130x36
236236 text run at (0,0) width 115: "19 green box with"
237237 text run at (0,18) width 61: "word ok: "
238238 RenderText {#text} at (0,0) size 0x0
239 layer at (412,358) size 130x54
 239layer at (412,358) size 130x34
240240 RenderBlock (positioned) {DIV} at (0,36) size 130x34 [border: (2px solid #FF0000)]
241241 RenderBlock {DIV} at (2,2) size 126x26 [border: (2px solid #FF0000)]
242242 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #FF0000)]

@@layer at (546,322) size 130x18
251251 RenderText {#text} at (0,0) size 91x18
252252 text run at (0,0) width 91: "20 green box: "
253253 RenderText {#text} at (0,0) size 0x0
254 layer at (546,340) size 130x50
 254layer at (546,340) size 130x34
255255 RenderBlock (positioned) {DIV} at (0,18) size 130x34 [border: (2px solid #FF0000)]
256256 RenderBlock {DIV} at (2,2) size 126x48 [border: (2px solid #008000)]
257257 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #FF0000)]

@@layer at (10,426) size 130x36
266266 text run at (0,0) width 124: "21 two green boxes"
267267 text run at (0,18) width 93: "with word ok: "
268268 RenderText {#text} at (0,0) size 0x0
269 layer at (10,462) size 130x54
 269layer at (10,462) size 130x34
270270 RenderBlock (positioned) {DIV} at (0,36) size 130x34 [border: (2px solid #FF0000)]
271271 RenderBlock {DIV} at (2,2) size 126x26 [border: (2px solid #FF0000)]
272272 RenderBlock {DIV} at (2,2) size 122x22 [border: (2px solid #008000)]
73334

LayoutTests/platform/mac/fast/layers/layer-visibility-sublayer-expected.txt

@@layer at (0,170) size 800x34
4141 RenderBlock {DIV} at (2,10) size 796x22 [border: (2px solid #008000)]
4242 RenderText {#text} at (2,2) size 16x18
4343 text run at (2,2) width 16: "ok"
44 layer at (0,242) size 800x50
 44layer at (0,242) size 800x34
4545 RenderBlock (positioned) {DIV} at (0,242) size 800x34 [border: (2px solid #FF0000)]
4646 RenderBlock {DIV} at (2,2) size 796x22 [border: (2px solid #FF0000)]
4747 RenderBlock {DIV} at (2,2) size 792x18
73334

LayoutTests/platform/mac/fast/lists/001-expected.txt

11layer at (0,0) size 809x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 809x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x561
66 RenderBlock {DIV} at (0,0) size 784x106 [border: (3px solid #FFA500)]
73334

LayoutTests/platform/mac/fast/lists/001-vertical-expected.txt

11layer at (0,0) size 785x620
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x620
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 761x584
66 RenderBlock {DIV} at (0,0) size 106x584 [border: (3px solid #FFA500)]
73334

LayoutTests/platform/mac/fast/lists/003-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x350
 3layer at (0,0) size 800x334
44 RenderBlock {HTML} at (0,0) size 800x334
55 RenderBody {BODY} at (8,16) size 784x302
66 RenderBlock (floating) {DIV} at (0,0) size 470x334
73334

LayoutTests/platform/mac/fast/lists/003-vertical-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 426x600
 3layer at (0,0) size 334x600
44 RenderBlock {HTML} at (0,0) size 334x600
55 RenderBody {BODY} at (16,8) size 302x584
66 RenderBlock (floating) {DIV} at (0,0) size 410x350
73334

LayoutTests/platform/mac/fast/lists/li-br-expected.txt

11layer at (0,0) size 1518x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1518x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x561
66 RenderBlock {OL} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-02-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-03-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-04-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-05-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-06-expected.txt

11layer at (0,0) size 968x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 968x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-07-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-08-expected.txt

11layer at (0,0) size 785x642
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x642
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x576
66 RenderBlock {P} at (0,0) size 769x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-relative-constraints-09-expected.txt

11layer at (0,0) size 968x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 968x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-width-absolute-01-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-width-absolute-02-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-width-absolute-03-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/media/mq-width-absolute-04-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {P} at (0,0) size 784x18 [color=#008000]
73334

LayoutTests/platform/mac/fast/multicol/float-multicol-expected.txt

11layer at (0,0) size 1608x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1608x545
 3layer at (0,0) size 800x545
44 RenderBlock {HTML} at (0,0) size 800x545
5 layer at (8,19) size 1600x510
 5layer at (8,19) size 784x510
66 RenderBody {BODY} at (8,19) size 784x510
77 RenderBlock {DIV} at (0,0) size 784x28 [bgcolor=#00FFFF]
88 RenderBlock (floating) {DIV} at (4,4) size 392x462 [bgcolor=#FFFF00]
73334

LayoutTests/platform/mac/fast/multicol/float-paginate-complex-expected.txt

11layer at (0,0) size 1164x1680
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1164x1680
 3layer at (0,0) size 785x1680
44 RenderBlock {HTML} at (0,0) size 785x1680
55 RenderBody {BODY} at (8,8) size 769x1664
6 layer at (8,8) size 1156x404
 6layer at (8,8) size 769x404
77 RenderBlock {DIV} at (0,0) size 769x404 [border: (2px solid #000000)]
88 RenderBlock (anonymous) at (2,2) size 374x252
99 RenderText {#text} at (0,0) size 110x18

@@layer at (8,8) size 1156x404
130130 RenderText {#text} at (0,586) size 110x18
131131 text run at (0,586) width 110: "This is some text."
132132 RenderBR {BR} at (110,600) size 0x0
133 layer at (8,428) size 1156x404
 133layer at (8,428) size 769x404
134134 RenderBlock {DIV} at (0,420) size 769x404 [border: (2px solid #000000)]
135135 RenderBlock (anonymous) at (2,2) size 374x252
136136 RenderText {#text} at (0,0) size 110x18
73334

LayoutTests/platform/mac/fast/multicol/float-paginate-expected.txt

11layer at (0,0) size 1188x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1188x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
6 layer at (8,8) size 1180x404
 6layer at (8,8) size 784x404
77 RenderBlock {DIV} at (0,0) size 784x404 [border: (2px solid #000000)]
88 RenderText {#text} at (2,2) size 110x18
99 text run at (2,2) width 110: "This is some text."
73334

LayoutTests/platform/mac/fast/multicol/layers-in-multicol-expected.txt

11layer at (0,0) size 1287x672
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1287x672
 3layer at (0,0) size 785x672
44 RenderBlock {HTML} at (0,0) size 785x672
55 RenderBody {BODY} at (8,8) size 769x656
66 RenderBlock (anonymous) at (0,0) size 769x18

@@layer at (0,0) size 1287x672
99 RenderBlock (anonymous) at (0,328) size 769x18
1010 RenderText {#text} at (0,0) size 89x18
1111 text run at (0,0) width 89: "RTL Version:"
12 layer at (8,26) size 1279x310
 12layer at (8,26) size 769x310
1313 RenderBlock {DIV} at (0,18) size 769x310 [border: (5px solid #800000)]
1414 RenderBlock (anonymous) at (5,5) size 242x234
1515 RenderText {#text} at (0,0) size 106x18
73334

LayoutTests/platform/mac/fast/multicol/paginate-block-replaced-expected.txt

11layer at (0,0) size 1586x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1586x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
6 layer at (8,8) size 1578x404
 6layer at (8,8) size 784x404
77 RenderBlock {DIV} at (0,0) size 784x404 [border: (2px solid #000000)]
88 RenderBlock (anonymous) at (2,2) size 382x180
99 RenderText {#text} at (0,0) size 110x18
73334

LayoutTests/platform/mac/fast/multicol/positioned-with-constrained-height-expected.txt

@@layer at (0,0) size 1090x585
33layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
6 layer at (8,8) size 1082x300
 6layer at (8,8) size 106x300
77 RenderBlock (positioned) {DIV} at (8,8) size 106x300 [bgcolor=#00FF00]
88 RenderText {#text} at (0,0) size 106x18
99 text run at (0,0) width 106: "This is some text"
73334

LayoutTests/platform/mac/fast/multicol/table-vertical-align-expected.txt

11layer at (0,0) size 1560x1010
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1560x1010
 3layer at (0,0) size 785x1010
44 RenderBlock {HTML} at (0,0) size 785x1010
55 RenderBody {BODY} at (8,8) size 769x994
66 RenderBlock {HR} at (0,358) size 769x2 [border: (1px inset #000000)]
77 RenderBlock {HR} at (0,676) size 769x2 [border: (1px inset #000000)]
8 layer at (8,8) size 1552x350
 8layer at (8,8) size 769x350
99 RenderBlock {DIV} at (0,0) size 769x350
1010 RenderTable {TABLE} at (0,0) size 376x1179 [border: (1px outset #808080)]
1111 RenderTableSection {TBODY} at (1,1) size 374x1177

@@layer at (8,8) size 1552x350
136136 RenderText {#text} at (11,11) size 145x148
137137 text run at (11,11) width 145: "Other"
138138 text run at (11,85) width 108: "cell."
139 layer at (8,376) size 1552x300
 139layer at (8,376) size 769x300
140140 RenderBlock {DIV} at (0,368) size 769x300
141141 RenderTable {TABLE} at (0,0) size 376x1129 [border: (1px outset #808080)]
142142 RenderTableSection {TBODY} at (1,1) size 374x1127

@@layer at (8,376) size 1552x300
267267 RenderText {#text} at (11,11) size 145x185
268268 text run at (11,11) width 145: "Other"
269269 text run at (11,122) width 108: "cell."
270 layer at (8,702) size 1552x300
 270layer at (8,702) size 769x300
271271 RenderBlock {DIV} at (0,694) size 769x300
272272 RenderTable {TABLE} at (0,0) size 376x1129 [border: (1px outset #808080)]
273273 RenderTableSection {TBODY} at (1,1) size 374x1127
73334

LayoutTests/platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt

11layer at (0,0) size 843x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 843x513
 3layer at (0,0) size 800x513
44 RenderBlock {HTML} at (0,0) size 800x513
55 RenderBody {BODY} at (8,17) size 784x479
66layer at (8,17) size 835x479
73334

LayoutTests/platform/mac/fast/overflow/006-expected.txt

11layer at (0,0) size 785x990
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 785x990
 3layer at (0,0) size 785x585
44 RenderBlock {HTML} at (0,0) size 785x585
55 RenderBody {BODY} at (0,0) size 785x585
66 RenderText {#text} at (0,0) size 420x18
73334

LayoutTests/platform/mac/fast/overflow/float-in-relpositioned-expected.txt

@@layer at (18,300) size 102x102 clip at (
2727 RenderBlock {DIV} at (10,292) size 102x102 [border: (1px solid #000000)]
2828layer at (18,412) size 102x102 clip at (19,413) size 85x100 scrollHeight 125
2929 RenderBlock {DIV} at (10,404) size 102x102 [border: (1px solid #000000)]
30 layer at (69,77) size 75x75 backgroundClip at (19,77) size 100x85 clip at (19,77) size 100x85 outlineClip at (19,77) size 100x85
 30layer at (69,77) size 25x25
3131 RenderBlock (relative positioned) {DIV} at (1,1) size 25x25 [bgcolor=#000000]
3232 RenderBlock (floating) {DIV} at (0,0) size 75x75 [bgcolor=#0000FF7F]
33 layer at (19,239) size 75x75 backgroundClip at (19,189) size 85x100 clip at (19,189) size 85x100 outlineClip at (19,189) size 85x100
 33layer at (19,239) size 25x25
3434 RenderBlock (relative positioned) {DIV} at (1,1) size 25x25 [bgcolor=#000000]
3535 RenderBlock (floating) {DIV} at (0,0) size 75x75 [bgcolor=#0000FF7F]
3636layer at (69,301) size 25x25
73334

LayoutTests/platform/mac/fast/overflow/overflow-auto-table-expected.txt

11layer at (0,0) size 7618x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 7618x160
 3layer at (0,0) size 800x160
44 RenderBlock {HTML} at (0,0) size 800x160
55 RenderBody {BODY} at (8,16) size 784x136
66 RenderBlock {P} at (0,0) size 784x54
73334

LayoutTests/platform/mac/fast/overflow/overflow-rtl-vertical-expected.checksum

 19a224a48fdc0a78f2bdd400fb5c17781
02\ No newline at end of file
0

LayoutTests/platform/mac/fast/overflow/overflow-rtl-vertical-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 313x600
 4 RenderBlock {HTML} at (0,0) size 313x600
 5 RenderBody {BODY} at (8,8) size 297x584
 6 RenderBlock {P} at (0,16) size 36x552
 7 RenderText {#text} at (0,0) size 18x135
 8 text run at (0,0) width 135: "This is a test case for "
 9 RenderInline {I} at (0,0) size 36x529
 10 RenderText {#text} at (0,135) size 36x529
 11 text run at (0,135) width 394: "http://bugzilla.opendarwin.org/show_bug.cgi?id=5826 Blocks"
 12 text run at (18,0) width 445: "with direction:rtl and overflow:auto or scroll have incorrect scrollbars"
 13 RenderText {#text} at (18,445) size 18x4
 14 text run at (18,445) width 4: "."
 15 RenderBlock (anonymous) at (36,0) size 18x584
 16 RenderText {#text} at (0,0) size 18x457
 17 text run at (0,0) width 457: "The right column should be a mirror-image of the left column in terms of"
 18 RenderBlock {UL} at (70,0) size 54x584
 19 RenderListItem {LI} at (0,40) size 18x544
 20 RenderListMarker at (0,-17) size 18x7: bullet
 21 RenderText {#text} at (0,0) size 18x164
 22 text run at (0,0) width 164: "the presence of a scrollbar"
 23 RenderListItem {LI} at (18,40) size 18x544
 24 RenderListMarker at (0,-17) size 18x7: bullet
 25 RenderText {#text} at (0,0) size 18x234
 26 text run at (0,0) width 234: "the initial position of the scroll thumb"
 27 RenderListItem {LI} at (36,40) size 18x544
 28 RenderListMarker at (0,-17) size 18x7: bullet
 29 RenderText {#text} at (0,0) size 18x331
 30 text run at (0,0) width 331: "which letters are visible initially and when you scroll"
 31 RenderTable {TABLE} at (140,0) size 157x256
 32 RenderTableSection {TBODY} at (0,0) size 157x256
 33 RenderTableRow {TR} at (0,2) size 153x256
 34 RenderTableCell {TD} at (2,2) size 153x125 [r=0 c=0 rs=1 cs=1]
 35 RenderTableCell {TD} at (2,129) size 153x125 [r=0 c=1 rs=1 cs=1]
 36layer at (155,15) size 45x115 clip at (155,25) size 30x100 scrollHeight 188
 37 RenderBlock {DIV} at (5,5) size 45x115 [bgcolor=#FFFF00] [border: (10px solid #FF0000) none (5px solid #008000) none]
 38 RenderText {#text} at (0,10) size 18x188
 39 text run at (0,10) width 188: "abcdefghijklmnopqrstuvwxyz"
 40layer at (204,15) size 45x115 clip at (204,25) size 45x100
 41 RenderBlock {DIV} at (54,5) size 45x115 [bgcolor=#FFFF00] [border: (10px solid #FF0000) none (5px solid #008000) none]
 42 RenderBlock {DIV} at (0,10) size 18x100 [bgcolor=#D3D3D3]
 43 RenderText {#text} at (0,-88) size 18x188
 44 text run at (0,-88) width 188: "abcdefghijklmnopqrstuvwxyz"
 45layer at (253,15) size 45x115 clip at (253,25) size 30x100 scrollHeight 188
 46 RenderBlock {DIV} at (103,5) size 45x115 [bgcolor=#FFFF00] [border: (10px solid #FF0000) none (5px solid #008000) none]
 47 RenderBlock {DIV} at (0,10) size 18x100 [bgcolor=#D3D3D3]
 48 RenderText {#text} at (0,0) size 18x188
 49 text run at (0,0) width 188: "abcdefghijklmnopqrstuvwxyz"
 50layer at (155,142) size 45x115 clip at (155,147) size 30x100 scrollY 88 scrollHeight 188
 51 RenderBlock {DIV} at (5,5) size 45x115 [bgcolor=#FFFF00] [border: (5px solid #008000) none (10px solid #FF0000) none]
 52 RenderText {#text} at (0,-83) size 18x188
 53 text run at (0,-83) width 188: "zyxwvutsrqponmlkjihgfedcba"
 54layer at (204,142) size 45x115 clip at (204,147) size 45x100
 55 RenderBlock {DIV} at (54,5) size 45x115 [bgcolor=#FFFF00] [border: (5px solid #008000) none (10px solid #FF0000) none]
 56 RenderBlock {DIV} at (0,5) size 18x100 [bgcolor=#D3D3D3]
 57 RenderText {#text} at (0,0) size 18x188
 58 text run at (0,0) width 188: "zyxwvutsrqponmlkjihgfedcba"
 59layer at (253,142) size 45x115 clip at (253,147) size 30x100 scrollY 88 scrollHeight 188
 60 RenderBlock {DIV} at (103,5) size 45x115 [bgcolor=#FFFF00] [border: (5px solid #008000) none (10px solid #FF0000) none]
 61 RenderBlock {DIV} at (0,5) size 18x100 [bgcolor=#D3D3D3]
 62 RenderText {#text} at (0,-88) size 18x188
 63 text run at (0,-88) width 188: "zyxwvutsrqponmlkjihgfedcba"
0

LayoutTests/platform/mac/fast/overflow/scrollRevealButton-expected.txt

@@layer at (0,0) size 785x1188
1212 RenderPartObject {IFRAME} at (0,0) size 304x154 [border: (2px inset #000000)]
1313 layer at (0,0) size 308x316
1414 RenderView at (0,0) size 285x135
15  layer at (0,0) size 308x316
 15 layer at (0,0) size 285x316
1616 RenderBlock {HTML} at (0,0) size 285x316
1717 RenderBody {BODY} at (8,8) size 269x300
1818 layer at (8,8) size 300x300 clip at (8,8) size 285x300 scrollY 543 scrollHeight 1268
73334

LayoutTests/platform/mac/fast/reflections/reflection-direction-expected.txt

11layer at (0,0) size 1357x613
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1357x613
 3layer at (0,0) size 785x613
44 RenderBlock {HTML} at (0,0) size 785x613
55 RenderBody {BODY} at (8,8) size 769x597
66 RenderBlock {DIV} at (0,1) size 671x592
73334

LayoutTests/platform/mac/fast/repaint/box-shadow-h-expected.checksum

1 4216aa4b49e75c66b0acf55db608502c
21\ No newline at end of file
 276c6e041c849e3a746babf586b924f8e
33\ No newline at end of file
73334

LayoutTests/platform/mac/fast/repaint/box-shadow-h-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x514
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66 RenderBlock (floating) {DIV} at (0,0) size 121x506
73334

LayoutTests/platform/mac/fast/repaint/box-shadow-v-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x514
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66 RenderBlock (floating) {DIV} at (0,0) size 121x506
73334

LayoutTests/platform/mac/fast/repaint/content-into-overflow-expected.txt

@@layer at (8,308) size 100x100
1515 RenderBlock (positioned) {DIV} at (8,308) size 100x100
1616 RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#008000]
1717 RenderBlock {DIV} at (0,80) size 100x20
18 layer at (8,308) size 100x80
 18layer at (8,308) size 100x0
1919 RenderBlock (relative positioned) {DIV} at (0,0) size 100x0
2020 RenderBlock (floating) {DIV} at (0,0) size 100x80
73334

LayoutTests/platform/mac/fast/repaint/dynamic-table-vertical-alignment-change-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x182
 3layer at (0,0) size 800x182
44 RenderBlock {HTML} at (0,0) size 800x182
55 RenderBody {BODY} at (8,16) size 784x158
66 RenderBlock {P} at (0,0) size 784x36
73334

LayoutTests/platform/mac/fast/repaint/float-overflow-expected.txt

@@layer at (0,0) size 800x588
120120 text run at (0,1) width 16: "x"
121121 RenderText {#text} at (0,0) size 0x0
122122 RenderText {#text} at (0,0) size 0x0
123 layer at (59,426) size 40x18
 123layer at (59,426) size 40x10
124124 RenderBlock (floating) {DIV} at (-8,0) size 40x10 [bgcolor=#ADD8E6]
125125 RenderInline {SPAN} at (0,0) size 16x16 [color=#0000FF]
126126 RenderText {#text} at (0,1) size 16x16
127127 text run at (0,1) width 16: "x"
128128 RenderText {#text} at (0,0) size 0x0
129 layer at (67,465) size 50x18
 129layer at (67,465) size 50x10
130130 RenderBlock {DIV} at (6,6) size 50x10 [bgcolor=#FFC0CB]
131131 RenderBlock (floating) {DIV} at (-8,0) size 40x10 [bgcolor=#ADD8E6]
132132 RenderInline {SPAN} at (0,0) size 16x16 [color=#0000FF]
133133 RenderText {#text} at (0,1) size 16x16
134134 text run at (0,1) width 16: "x"
135135 RenderText {#text} at (0,0) size 0x0
136 layer at (61,498) size 62x24
 136layer at (61,498) size 62x22
137137 RenderBlock {DIV} at (51,7) size 62x22 [border: (1px solid #800080)]
138138 RenderBlock {DIV} at (6,6) size 50x10 [bgcolor=#FFC0CB]
139139 RenderBlock (floating) {DIV} at (-8,0) size 40x10 [bgcolor=#ADD8E6]
73334

LayoutTests/platform/mac/fast/repaint/float-overflow-right-expected.txt

@@layer at (0,0) size 800x588
120120 text run at (24,1) width 16: "x"
121121 RenderText {#text} at (0,0) size 0x0
122122 RenderText {#text} at (0,0) size 0x0
123 layer at (701,426) size 40x18
 123layer at (701,426) size 40x10
124124 RenderBlock (floating) {DIV} at (18,0) size 40x10 [bgcolor=#ADD8E6]
125125 RenderInline {SPAN} at (0,0) size 16x16 [color=#0000FF]
126126 RenderText {#text} at (24,1) size 16x16
127127 text run at (24,1) width 16: "x"
128128 RenderText {#text} at (0,0) size 0x0
129 layer at (683,465) size 58x18
 129layer at (683,465) size 50x10
130130 RenderBlock {DIV} at (6,6) size 50x10 [bgcolor=#FFC0CB]
131131 RenderBlock (floating) {DIV} at (18,0) size 40x10 [bgcolor=#ADD8E6]
132132 RenderInline {SPAN} at (0,0) size 16x16 [color=#0000FF]
133133 RenderText {#text} at (24,1) size 16x16
134134 text run at (24,1) width 16: "x"
135135 RenderText {#text} at (0,0) size 0x0
136 layer at (677,498) size 64x24
 136layer at (677,498) size 62x22
137137 RenderBlock {DIV} at (667,7) size 62x22 [border: (1px solid #800080)]
138138 RenderBlock {DIV} at (6,6) size 50x10 [bgcolor=#FFC0CB]
139139 RenderBlock (floating) {DIV} at (18,0) size 40x10 [bgcolor=#ADD8E6]
73334

LayoutTests/platform/mac/fast/repaint/overflow-into-content-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
6 layer at (8,8) size 103x106
 6layer at (8,8) size 56x106
77 RenderBlock (positioned) {DIV} at (8,8) size 56x106 [border: (3px solid #008000)]
88 RenderBlock {DIV} at (3,3) size 50x50
99 RenderBlock {DIV} at (0,0) size 100x50
10 layer at (8,158) size 106x103
 10layer at (8,158) size 106x56
1111 RenderBlock (positioned) {DIV} at (8,158) size 106x56 [border: (3px solid #008000)]
1212 RenderBlock {DIV} at (3,3) size 50x50
1313 RenderBlock {DIV} at (0,0) size 50x100
1414layer at (8,308) size 100x80
1515 RenderBlock (positioned) {DIV} at (8,308) size 100x80
1616 RenderBlock {DIV} at (0,0) size 100x0 [bgcolor=#008000]
17 layer at (8,308) size 100x80
 17layer at (8,308) size 100x0
1818 RenderBlock (relative positioned) {DIV} at (0,0) size 100x0
1919 RenderBlock (floating) {DIV} at (0,0) size 100x80
73334

LayoutTests/platform/mac/fast/repaint/overflow-scroll-body-appear-expected.txt

11layer at (0,0) size 2008x2092
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 2008x2092
 3layer at (0,0) size 785x2092
44 RenderBlock {HTML} at (0,0) size 785x2092
55 RenderBody {BODY} at (8,16) size 769x2068
66 RenderBlock {P} at (0,0) size 769x18
73334

LayoutTests/platform/mac/fast/repaint/subtree-root-clip-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x108
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0
66layer at (8,8) size 100x100
73334

LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x308
 3layer at (0,0) size 800x296
44 RenderBlock {HTML} at (0,0) size 800x296
55 RenderBody {BODY} at (8,16) size 784x272
66 RenderBlock {P} at (0,0) size 784x18
73334

LayoutTests/platform/mac/fast/repaint/transform-replaced-shadows-expected.checksum

1 555899c95dc93e1f9e43fd384e0c7c4d
21\ No newline at end of file
 22a37b65c230bcb71bb1ecfb4c884942d
33\ No newline at end of file
73334

LayoutTests/platform/mac/fast/replaced/004-expected.txt

@@layer at (0,0) size 800x282
1111 RenderBlock {P} at (0,0) size 600x100
1212 RenderImage {IMG} at (0,0) size 300x100
1313 RenderText {#text} at (0,0) size 0x0
14 layer at (8,166) size 600x100
 14layer at (8,166) size 300x100
1515 RenderBlock (relative positioned) {DIV} at (0,150) size 300x100
1616 RenderBlock {P} at (0,0) size 600x100
1717 RenderImage {IMG} at (0,0) size 300x100
73334

LayoutTests/platform/mac/fast/table/034-expected.txt

11layer at (0,0) size 1064x1276
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1064x1276
 3layer at (0,0) size 785x1276
44 RenderBlock {HTML} at (0,0) size 785x1276
55 RenderBody {BODY} at (8,8) size 769x1260
66 RenderTable {TABLE} at (0,0) size 1056x1260
73334

LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.txt

@@layer at (0,0) size 800x600
2020 RenderTableCell {TD} at (2,6) size 14x131 [bgcolor=#FFFF00] [r=0 c=1 rs=1 cs=1]
2121 RenderTextControl {INPUT} at (3,3) size 8x125 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
2222 RenderText {#text} at (0,0) size 0x0
23 layer at (3,23) size 2x119
 23layer at (3,23) size 2x119 scrollX 13 scrollWidth 15
2424 RenderBlock {DIV} at (3,3) size 2x119
73334

LayoutTests/platform/mac/fast/table/fixed-with-auto-with-colspan-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x600
44 RenderBlock {HTML} at (0,0) size 800x600
55 RenderBody {BODY} at (8,8) size 784x584
6 layer at (0,0) size 445x385
 6layer at (0,0) size 400x385
77 RenderBlock (positioned) {DIV} at (0,0) size 400x385
88 RenderTable {TABLE} at (0,5) size 445x50
99 RenderTableSection {TBODY} at (0,0) size 445x50

@@layer at (0,0) size 445x385
8282 RenderTableCell {TD} at (280,24) size 50x2 [bgcolor=#FF0000] [r=0 c=5 rs=1 cs=1]
8383 RenderTableCell {TD} at (335,24) size 50x2 [bgcolor=#FF0000] [r=0 c=6 rs=1 cs=1]
8484 RenderTableCell {TD} at (390,24) size 50x2 [bgcolor=#FF0000] [r=0 c=7 rs=1 cs=1]
85 layer at (0,0) size 445x385
 85layer at (0,0) size 430x385
8686 RenderBlock (positioned) {DIV} at (0,0) size 430x385
8787 RenderTable {TABLE} at (0,5) size 445x50
8888 RenderTableSection {TBODY} at (0,0) size 445x50
73334

LayoutTests/platform/mac/fast/table/fixed-with-auto-with-colspan-vertical-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x600
44 RenderBlock {HTML} at (0,0) size 800x600
55 RenderBody {BODY} at (8,8) size 784x584
6 layer at (0,0) size 385x445
 6layer at (0,0) size 385x0
77 RenderBlock (positioned) {DIV} at (0,0) size 385x0
88 RenderTable {TABLE} at (5,0) size 50x445
99 RenderTableSection {TBODY} at (0,0) size 50x445

@@layer at (0,0) size 385x445
8282 RenderTableCell {TD} at (0,304) size 50x2 [bgcolor=#FF0000] [r=0 c=5 rs=1 cs=1]
8383 RenderTableCell {TD} at (0,359) size 50x2 [bgcolor=#FF0000] [r=0 c=6 rs=1 cs=1]
8484 RenderTableCell {TD} at (0,414) size 50x2 [bgcolor=#FF0000] [r=0 c=7 rs=1 cs=1]
85 layer at (0,0) size 385x445
 85layer at (0,0) size 385x0
8686 RenderBlock (positioned) {DIV} at (0,0) size 385x0
8787 RenderTable {TABLE} at (5,0) size 50x445
8888 RenderTableSection {TBODY} at (0,0) size 50x445
73334

LayoutTests/platform/mac/fast/table/frame-and-rules-expected.txt

@@layer at (0,0) size 785x7608
22082208 RenderTableCell {TD} at (184,0) size 92x21 [border: (1px solid #808080)] [r=0 c=2 rs=1 cs=1]
22092209 RenderText {#text} at (2,2) size 89x18
22102210 text run at (2,2) width 89: "Row 5, Cell 3"
2211 layer at (393,24) size 392x155
 2211layer at (393,24) size 392x150
22122212 RenderBlock (positioned) {TABLE} at (393,24) size 392x150
22132213 RenderTable at (0,0) size 361x155
22142214 RenderBlock {CAPTION} at (0,0) size 361x18
73334

LayoutTests/platform/mac/fast/table/height-percent-test-vertical-expected.txt

11layer at (0,0) size 1282x601
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1282x601
 3layer at (0,0) size 785x601
44 RenderBlock {HTML} at (0,0) size 785x601
55 RenderBody {BODY} at (8,8) size 769x585
66 RenderBlock {DIV} at (0,0) size 1274x585
73334

LayoutTests/platform/mac/fast/table/wide-colspan-expected.txt

11layer at (0,0) size 1614x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1614x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 1606x110
73334

LayoutTests/platform/mac/fast/table/wide-column-expected.txt

11layer at (0,0) size 1614x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1614x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 1606x56
73334

LayoutTests/platform/mac/fast/table/border-collapsing/004-vertical-expected.txt

11layer at (0,0) size 1444x914
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1444x914
 3layer at (0,0) size 785x914
44 RenderBlock {HTML} at (0,0) size 785x914
55 RenderBody {BODY} at (8,21) size 769x885
66 RenderBlock {H1} at (0,0) size 769x37
73334

LayoutTests/platform/mac/fast/text/large-text-composed-char-expected.txt

11layer at (0,0) size 1064x7957
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1064x7957
 3layer at (0,0) size 785x7957
44 RenderBlock {HTML} at (0,0) size 785x7957
55 RenderBody {BODY} at (8,8) size 769x7936
66 RenderBlock (anonymous) at (0,0) size 769x18
73334

LayoutTests/platform/mac/fast/text/letter-spacing-negative-opacity-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x600
44 RenderBlock {HTML} at (0,0) size 800x600
55 RenderBody {BODY} at (8,8) size 784x584
6 layer at (8,8) size 312x163
 6layer at (8,8) size 273x163
77 RenderBlock (positioned) {DIV} at (8,8) size 273x163 [border: (1px solid #FF0000)]
88 RenderText {#text} at (1,1) size 271x161
99 text run at (1,1) width 271: "Testing the bug"
73334

LayoutTests/platform/mac/fast/text/text-letter-spacing-expected.txt

11layer at (0,0) size 163023x1728
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 163023x1728
 3layer at (0,0) size 785x1728
44 RenderBlock {HTML} at (0,0) size 785x1728
55 RenderBody {BODY} at (8,16) size 769x1696
66 RenderBlock {P} at (0,0) size 769x90 [bgcolor=#FFFFFF]
73334

LayoutTests/platform/mac/fast/text/international/thai-line-breaks-expected.txt

@@layer at (0,0) size 785x600
99 text run at (0,18) width 760: "The original source of this text was ICU, and the test program said \"by it's very nature, Thai word breaking is not exact\","
1010 text run at (0,36) width 759: "so the columns don't match exactly. In a future version we might decide to tweak the right column to match our expected"
1111 text run at (0,54) width 59: "behavior."
12 layer at (235,96) size 83x22824
 12layer at (235,96) size 1x22824
1313 RenderBlock (positioned) {DIV} at (235,96) size 1x22824
1414 RenderText {#text} at (0,0) size 83x22824
1515 text run at (0,0) width 20: "\x{E1A}\x{E17}"

@@layer at (235,96) size 83x22824
12801280 text run at (0,22770) width 34: "\x{E04}\x{E23}\x{E32}\x{E07}"
12811281 text run at (0,22788) width 28: "\x{E2B}\x{E27}\x{E35}\x{E14}"
12821282 text run at (0,22806) width 27: "\x{E2B}\x{E27}\x{E37}\x{E2D}"
1283 layer at (471,96) size 72x24030
 1283layer at (471,96) size 1x24030
12841284 RenderBlock (positioned) {DIV} at (471,96) size 1x24030
12851285 RenderText {#text} at (0,0) size 72x24030
12861286 text run at (0,0) width 20: "\x{E1A}\x{E17}"
73334

LayoutTests/platform/mac/fast/text/whitespace/012-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x156
 3layer at (0,0) size 800x76
44 RenderBlock {HTML} at (0,0) size 800x76
55 RenderBody {BODY} at (8,8) size 784x52
66 RenderBlock (anonymous) at (0,0) size 784x18
73334

LayoutTests/platform/mac/mathml/presentation/fenced-expected.txt

@@layer at (170,72) size 5x7 scrollHeight
6060 text run at (0,-3) width 5: "\x{239F}"
6161layer at (170,79) size 5x11 scrollHeight 14
6262 RenderBlock {mfenced} at (0,47) size 5x11
63 layer at (10,33) size 5x14 backgroundClip at (10,32) size 5x10 clip at (10,32) size 5x10 outlineClip at (10,32) size 5x10
 63layer at (10,33) size 5x11 backgroundClip at (10,32) size 5x10 clip at (10,32) size 5x10 outlineClip at (10,32) size 5x10
6464 RenderBlock (relative positioned) {mfenced} at (0,0) size 5x11
6565 RenderText {mfenced} at (0,-3) size 5x17
6666 text run at (0,-3) width 5: "\x{239B}"
67 layer at (10,76) size 5x14 backgroundClip at (10,79) size 5x11 clip at (10,79) size 5x11 outlineClip at (10,79) size 5x11
 67layer at (10,76) size 5x11 backgroundClip at (10,79) size 5x11 clip at (10,79) size 5x11 outlineClip at (10,79) size 5x11
6868 RenderBlock (relative positioned) {mfenced} at (0,0) size 5x11
6969 RenderText {mfenced} at (0,-3) size 5x17
7070 text run at (0,-3) width 5: "\x{239D}"
71 layer at (170,33) size 5x14 backgroundClip at (170,32) size 5x10 clip at (170,32) size 5x10 outlineClip at (170,32) size 5x10
 71layer at (170,33) size 5x11 backgroundClip at (170,32) size 5x10 clip at (170,32) size 5x10 outlineClip at (170,32) size 5x10
7272 RenderBlock (relative positioned) {mfenced} at (0,0) size 5x11
7373 RenderText {mfenced} at (0,-3) size 5x17
7474 text run at (0,-3) width 5: "\x{239E}"
75 layer at (170,76) size 5x14 backgroundClip at (170,79) size 5x11 clip at (170,79) size 5x11 outlineClip at (170,79) size 5x11
 75layer at (170,76) size 5x11 backgroundClip at (170,79) size 5x11 clip at (170,79) size 5x11 outlineClip at (170,79) size 5x11
7676 RenderBlock (relative positioned) {mfenced} at (0,0) size 5x11
7777 RenderText {mfenced} at (0,-3) size 5x17
7878 text run at (0,-3) width 5: "\x{23A0}"
73334

LayoutTests/platform/mac/mathml/presentation/mo-expected.txt

@@layer at (165,215) size 7x6 scrollHeight
271271 text run at (0,-3) width 7: "\x{23AA}"
272272layer at (165,221) size 7x11 scrollHeight 14
273273 RenderBlock {mo} at (0,52) size 7x11
274 layer at (69,170) size 8x14 backgroundClip at (69,169) size 8x10 clip at (69,169) size 8x10 outlineClip at (69,169) size 8x10
 274layer at (69,170) size 8x11 backgroundClip at (69,169) size 8x10 clip at (69,169) size 8x10 outlineClip at (69,169) size 8x10
275275 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
276276 RenderText {mo} at (0,-3) size 8x17
277277 text run at (0,-3) width 8: "\x{23D0}"
278 layer at (69,218) size 8x14 backgroundClip at (69,221) size 8x11 clip at (69,221) size 8x11 outlineClip at (69,221) size 8x11
 278layer at (69,218) size 8x11 backgroundClip at (69,221) size 8x11 clip at (69,221) size 8x11 outlineClip at (69,221) size 8x11
279279 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
280280 RenderText {mo} at (0,-3) size 8x17
281281 text run at (0,-3) width 8: "\x{23D0}"
282 layer at (78,170) size 10x14 backgroundClip at (78,169) size 10x10 clip at (78,169) size 10x10 outlineClip at (78,169) size 10x10
 282layer at (78,170) size 10x11 backgroundClip at (78,169) size 10x10 clip at (78,169) size 10x10 outlineClip at (78,169) size 10x10
283283 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
284284 RenderText {mo} at (0,-3) size 10x17
285285 text run at (0,-3) width 10: "\x{2320}"
286 layer at (78,218) size 10x14 backgroundClip at (78,221) size 10x11 clip at (78,221) size 10x11 outlineClip at (78,221) size 10x11
 286layer at (78,218) size 10x11 backgroundClip at (78,221) size 10x11 clip at (78,221) size 10x11 outlineClip at (78,221) size 10x11
287287 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
288288 RenderText {mo} at (0,-3) size 10x17
289289 text run at (0,-3) width 10: "\x{2321}"
290 layer at (89,170) size 7x14 backgroundClip at (89,169) size 7x10 clip at (89,169) size 7x10 outlineClip at (89,169) size 7x10
 290layer at (89,170) size 7x11 backgroundClip at (89,169) size 7x10 clip at (89,169) size 7x10 outlineClip at (89,169) size 7x10
291291 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
292292 RenderText {mo} at (0,-3) size 7x17
293293 text run at (0,-3) width 7: "\x{23A7}"
294 layer at (89,194) size 7x14 backgroundClip at (89,195) size 7x10 clip at (89,195) size 7x10 outlineClip at (89,195) size 7x10
 294layer at (89,194) size 7x11 backgroundClip at (89,195) size 7x10 clip at (89,195) size 7x10 outlineClip at (89,195) size 7x10
295295 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
296296 RenderText {mo} at (0,-3) size 7x17
297297 text run at (0,-3) width 7: "\x{23A8}"
298 layer at (89,218) size 7x14 backgroundClip at (89,221) size 7x11 clip at (89,221) size 7x11 outlineClip at (89,221) size 7x11
 298layer at (89,218) size 7x11 backgroundClip at (89,221) size 7x11 clip at (89,221) size 7x11 outlineClip at (89,221) size 7x11
299299 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
300300 RenderText {mo} at (0,-3) size 7x17
301301 text run at (0,-3) width 7: "\x{23A9}"
302 layer at (97,170) size 5x14 backgroundClip at (97,169) size 5x10 clip at (97,169) size 5x10 outlineClip at (97,169) size 5x10
 302layer at (97,170) size 5x11 backgroundClip at (97,169) size 5x10 clip at (97,169) size 5x10 outlineClip at (97,169) size 5x10
303303 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
304304 RenderText {mo} at (0,-3) size 5x17
305305 text run at (0,-3) width 5: "\x{23A1}"
306 layer at (97,218) size 5x14 backgroundClip at (97,221) size 5x11 clip at (97,221) size 5x11 outlineClip at (97,221) size 5x11
 306layer at (97,218) size 5x11 backgroundClip at (97,221) size 5x11 clip at (97,221) size 5x11 outlineClip at (97,221) size 5x11
307307 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
308308 RenderText {mo} at (0,-3) size 5x17
309309 text run at (0,-3) width 5: "\x{23A3}"
310 layer at (159,170) size 5x14 backgroundClip at (159,169) size 5x10 clip at (159,169) size 5x10 outlineClip at (159,169) size 5x10
 310layer at (159,170) size 5x11 backgroundClip at (159,169) size 5x10 clip at (159,169) size 5x10 outlineClip at (159,169) size 5x10
311311 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
312312 RenderText {mo} at (0,-3) size 5x17
313313 text run at (0,-3) width 5: "\x{23A4}"
314 layer at (159,218) size 5x14 backgroundClip at (159,221) size 5x11 clip at (159,221) size 5x11 outlineClip at (159,221) size 5x11
 314layer at (159,218) size 5x11 backgroundClip at (159,221) size 5x11 clip at (159,221) size 5x11 outlineClip at (159,221) size 5x11
315315 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
316316 RenderText {mo} at (0,-3) size 5x17
317317 text run at (0,-3) width 5: "\x{23A6}"
318 layer at (165,170) size 7x14 backgroundClip at (165,169) size 7x10 clip at (165,169) size 7x10 outlineClip at (165,169) size 7x10
 318layer at (165,170) size 7x11 backgroundClip at (165,169) size 7x10 clip at (165,169) size 7x10 outlineClip at (165,169) size 7x10
319319 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
320320 RenderText {mo} at (0,-3) size 7x17
321321 text run at (0,-3) width 7: "\x{23AB}"
322 layer at (165,194) size 7x14 backgroundClip at (165,195) size 7x10 clip at (165,195) size 7x10 outlineClip at (165,195) size 7x10
 322layer at (165,194) size 7x11 backgroundClip at (165,195) size 7x10 clip at (165,195) size 7x10 outlineClip at (165,195) size 7x10
323323 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
324324 RenderText {mo} at (0,-3) size 7x17
325325 text run at (0,-3) width 7: "\x{23AC}"
326 layer at (165,218) size 7x14 backgroundClip at (165,221) size 7x11 clip at (165,221) size 7x11 outlineClip at (165,221) size 7x11
 326layer at (165,218) size 7x11 backgroundClip at (165,221) size 7x11 clip at (165,221) size 7x11 outlineClip at (165,221) size 7x11
327327 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
328328 RenderText {mo} at (0,-3) size 7x17
329329 text run at (0,-3) width 7: "\x{23AD}"
73334

LayoutTests/platform/mac/mathml/presentation/over-expected.txt

@@layer at (45,258) size 10x8 scrollHeight
8989 text run at (0,-3) width 10: "\x{23AE}"
9090layer at (45,266) size 10x11 scrollHeight 14
9191 RenderBlock {mo} at (0,38) size 10x11
92 layer at (45,229) size 10x14 backgroundClip at (45,228) size 10x10 clip at (45,228) size 10x10 outlineClip at (45,228) size 10x10
 92layer at (45,229) size 10x11 backgroundClip at (45,228) size 10x10 clip at (45,228) size 10x10 outlineClip at (45,228) size 10x10
9393 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
9494 RenderText {mo} at (0,-3) size 10x17
9595 text run at (0,-3) width 10: "\x{2320}"
96 layer at (45,263) size 10x14 backgroundClip at (45,266) size 10x11 clip at (45,266) size 10x11 outlineClip at (45,266) size 10x11
 96layer at (45,263) size 10x11 backgroundClip at (45,266) size 10x11 clip at (45,266) size 10x11 outlineClip at (45,266) size 10x11
9797 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
9898 RenderText {mo} at (0,-3) size 10x17
9999 text run at (0,-3) width 10: "\x{2321}"
73334

LayoutTests/platform/mac/mathml/presentation/row-alignment-expected.txt

@@layer at (120,509) size 5x8 scrollHeight
414414 text run at (0,-3) width 5: "\x{23A5}"
415415layer at (120,517) size 5x11 scrollHeight 14
416416 RenderBlock {mo} at (0,58) size 5x11
417 layer at (36,302) size 5x14 backgroundClip at (36,301) size 5x10 clip at (36,301) size 5x10 outlineClip at (36,301) size 5x10
 417layer at (36,302) size 5x11 backgroundClip at (36,301) size 5x10 clip at (36,301) size 5x10 outlineClip at (36,301) size 5x10
418418 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
419419 RenderText {mo} at (0,-3) size 5x17
420420 text run at (0,-3) width 5: "\x{239B}"
421 layer at (36,328) size 5x14 backgroundClip at (36,331) size 5x11 clip at (36,331) size 5x11 outlineClip at (36,331) size 5x11
 421layer at (36,328) size 5x11 backgroundClip at (36,331) size 5x11 clip at (36,331) size 5x11 outlineClip at (36,331) size 5x11
422422 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
423423 RenderText {mo} at (0,-3) size 5x17
424424 text run at (0,-3) width 5: "\x{239D}"
425 layer at (90,302) size 5x14 backgroundClip at (90,301) size 5x10 clip at (90,301) size 5x10 outlineClip at (90,301) size 5x10
 425layer at (90,302) size 5x11 backgroundClip at (90,301) size 5x10 clip at (90,301) size 5x10 outlineClip at (90,301) size 5x10
426426 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
427427 RenderText {mo} at (0,-3) size 5x17
428428 text run at (0,-3) width 5: "\x{239E}"
429 layer at (90,328) size 5x14 backgroundClip at (90,331) size 5x11 clip at (90,331) size 5x11 outlineClip at (90,331) size 5x11
 429layer at (90,328) size 5x11 backgroundClip at (90,331) size 5x11 clip at (90,331) size 5x11 outlineClip at (90,331) size 5x11
430430 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
431431 RenderText {mo} at (0,-3) size 5x17
432432 text run at (0,-3) width 5: "\x{23A0}"
433 layer at (43,359) size 5x14 backgroundClip at (43,358) size 5x10 clip at (43,358) size 5x10 outlineClip at (43,358) size 5x10
 433layer at (43,359) size 5x11 backgroundClip at (43,358) size 5x10 clip at (43,358) size 5x10 outlineClip at (43,358) size 5x10
434434 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
435435 RenderText {mo} at (0,-3) size 5x17
436436 text run at (0,-3) width 5: "\x{239B}"
437 layer at (43,429) size 5x14 backgroundClip at (43,432) size 5x11 clip at (43,432) size 5x11 outlineClip at (43,432) size 5x11
 437layer at (43,429) size 5x11 backgroundClip at (43,432) size 5x11 clip at (43,432) size 5x11 outlineClip at (43,432) size 5x11
438438 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
439439 RenderText {mo} at (0,-3) size 5x17
440440 text run at (0,-3) width 5: "\x{239D}"
441 layer at (116,359) size 5x14 backgroundClip at (116,358) size 5x10 clip at (116,358) size 5x10 outlineClip at (116,358) size 5x10
 441layer at (116,359) size 5x11 backgroundClip at (116,358) size 5x10 clip at (116,358) size 5x10 outlineClip at (116,358) size 5x10
442442 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
443443 RenderText {mo} at (0,-3) size 5x17
444444 text run at (0,-3) width 5: "\x{239E}"
445 layer at (116,429) size 5x14 backgroundClip at (116,432) size 5x11 clip at (116,432) size 5x11 outlineClip at (116,432) size 5x11
 445layer at (116,429) size 5x11 backgroundClip at (116,432) size 5x11 clip at (116,432) size 5x11 outlineClip at (116,432) size 5x11
446446 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
447447 RenderText {mo} at (0,-3) size 5x17
448448 text run at (0,-3) width 5: "\x{23A0}"
449 layer at (36,460) size 5x14 backgroundClip at (36,459) size 5x10 clip at (36,459) size 5x10 outlineClip at (36,459) size 5x10
 449layer at (36,460) size 5x11 backgroundClip at (36,459) size 5x10 clip at (36,459) size 5x10 outlineClip at (36,459) size 5x10
450450 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
451451 RenderText {mo} at (0,-3) size 5x17
452452 text run at (0,-3) width 5: "\x{23A1}"
453 layer at (36,514) size 5x14 backgroundClip at (36,517) size 5x11 clip at (36,517) size 5x11 outlineClip at (36,517) size 5x11
 453layer at (36,514) size 5x11 backgroundClip at (36,517) size 5x11 clip at (36,517) size 5x11 outlineClip at (36,517) size 5x11
454454 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
455455 RenderText {mo} at (0,-3) size 5x17
456456 text run at (0,-3) width 5: "\x{23A3}"
457 layer at (120,460) size 5x14 backgroundClip at (120,459) size 5x10 clip at (120,459) size 5x10 outlineClip at (120,459) size 5x10
 457layer at (120,460) size 5x11 backgroundClip at (120,459) size 5x10 clip at (120,459) size 5x10 outlineClip at (120,459) size 5x10
458458 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
459459 RenderText {mo} at (0,-3) size 5x17
460460 text run at (0,-3) width 5: "\x{23A4}"
461 layer at (120,514) size 5x14 backgroundClip at (120,517) size 5x11 clip at (120,517) size 5x11 outlineClip at (120,517) size 5x11
 461layer at (120,514) size 5x11 backgroundClip at (120,517) size 5x11 clip at (120,517) size 5x11 outlineClip at (120,517) size 5x11
462462 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
463463 RenderText {mo} at (0,-3) size 5x17
464464 text run at (0,-3) width 5: "\x{23A6}"
73334

LayoutTests/platform/mac/mathml/presentation/row-expected.txt

@@layer at (157,579) size 5x8 scrollHeight
12181218 text run at (0,-3) width 5: "\x{239F}"
12191219layer at (157,587) size 5x11 scrollHeight 14
12201220 RenderBlock {mo} at (0,38) size 5x11
1221 layer at (49,95) size 7x14 backgroundClip at (49,94) size 7x9 clip at (49,94) size 7x9 outlineClip at (49,94) size 7x9
 1221layer at (49,95) size 7x11 backgroundClip at (49,94) size 7x9 clip at (49,94) size 7x9 outlineClip at (49,94) size 7x9
12221222 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12231223 RenderText {mo} at (0,-3) size 7x17
12241224 text run at (0,-3) width 7: "\x{23A7}"
1225 layer at (49,102) size 7x14 backgroundClip at (49,103) size 7x10 clip at (49,103) size 7x10 outlineClip at (49,103) size 7x10
 1225layer at (49,102) size 7x11 backgroundClip at (49,103) size 7x10 clip at (49,103) size 7x10 outlineClip at (49,103) size 7x10
12261226 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12271227 RenderText {mo} at (0,-3) size 7x17
12281228 text run at (0,-3) width 7: "\x{23A8}"
1229 layer at (49,110) size 7x14 backgroundClip at (49,113) size 7x11 clip at (49,113) size 7x11 outlineClip at (49,113) size 7x11
 1229layer at (49,110) size 7x11 backgroundClip at (49,113) size 7x11 clip at (49,113) size 7x11 outlineClip at (49,113) size 7x11
12301230 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12311231 RenderText {mo} at (0,-3) size 7x17
12321232 text run at (0,-3) width 7: "\x{23A9}"
1233 layer at (88,95) size 7x14 backgroundClip at (88,94) size 7x9 clip at (88,94) size 7x9 outlineClip at (88,94) size 7x9
 1233layer at (88,95) size 7x11 backgroundClip at (88,94) size 7x9 clip at (88,94) size 7x9 outlineClip at (88,94) size 7x9
12341234 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12351235 RenderText {mo} at (0,-3) size 7x17
12361236 text run at (0,-3) width 7: "\x{23AB}"
1237 layer at (88,102) size 7x14 backgroundClip at (88,103) size 7x10 clip at (88,103) size 7x10 outlineClip at (88,103) size 7x10
 1237layer at (88,102) size 7x11 backgroundClip at (88,103) size 7x10 clip at (88,103) size 7x10 outlineClip at (88,103) size 7x10
12381238 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12391239 RenderText {mo} at (0,-3) size 7x17
12401240 text run at (0,-3) width 7: "\x{23AC}"
1241 layer at (88,110) size 7x14 backgroundClip at (88,113) size 7x11 clip at (88,113) size 7x11 outlineClip at (88,113) size 7x11
 1241layer at (88,110) size 7x11 backgroundClip at (88,113) size 7x11 clip at (88,113) size 7x11 outlineClip at (88,113) size 7x11
12421242 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
12431243 RenderText {mo} at (0,-3) size 7x17
12441244 text run at (0,-3) width 7: "\x{23AD}"
1245 layer at (102,95) size 5x14 backgroundClip at (102,94) size 5x10 clip at (102,94) size 5x10 outlineClip at (102,94) size 5x10
 1245layer at (102,95) size 5x11 backgroundClip at (102,94) size 5x10 clip at (102,94) size 5x10 outlineClip at (102,94) size 5x10
12461246 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12471247 RenderText {mo} at (0,-3) size 5x17
12481248 text run at (0,-3) width 5: "\x{23A1}"
1249 layer at (102,109) size 5x14 backgroundClip at (102,112) size 5x11 clip at (102,112) size 5x11 outlineClip at (102,112) size 5x11
 1249layer at (102,109) size 5x11 backgroundClip at (102,112) size 5x11 clip at (102,112) size 5x11 outlineClip at (102,112) size 5x11
12501250 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12511251 RenderText {mo} at (0,-3) size 5x17
12521252 text run at (0,-3) width 5: "\x{23A3}"
1253 layer at (139,95) size 5x14 backgroundClip at (139,94) size 5x10 clip at (139,94) size 5x10 outlineClip at (139,94) size 5x10
 1253layer at (139,95) size 5x11 backgroundClip at (139,94) size 5x10 clip at (139,94) size 5x10 outlineClip at (139,94) size 5x10
12541254 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12551255 RenderText {mo} at (0,-3) size 5x17
12561256 text run at (0,-3) width 5: "\x{23A4}"
1257 layer at (139,109) size 5x14 backgroundClip at (139,112) size 5x11 clip at (139,112) size 5x11 outlineClip at (139,112) size 5x11
 1257layer at (139,109) size 5x11 backgroundClip at (139,112) size 5x11 clip at (139,112) size 5x11 outlineClip at (139,112) size 5x11
12581258 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12591259 RenderText {mo} at (0,-3) size 5x17
12601260 text run at (0,-3) width 5: "\x{23A6}"
1261 layer at (151,95) size 5x14 backgroundClip at (151,94) size 5x10 clip at (151,94) size 5x10 outlineClip at (151,94) size 5x10
 1261layer at (151,95) size 5x11 backgroundClip at (151,94) size 5x10 clip at (151,94) size 5x10 outlineClip at (151,94) size 5x10
12621262 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12631263 RenderText {mo} at (0,-3) size 5x17
12641264 text run at (0,-3) width 5: "\x{239B}"
1265 layer at (151,109) size 5x14 backgroundClip at (151,112) size 5x11 clip at (151,112) size 5x11 outlineClip at (151,112) size 5x11
 1265layer at (151,109) size 5x11 backgroundClip at (151,112) size 5x11 clip at (151,112) size 5x11 outlineClip at (151,112) size 5x11
12661266 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12671267 RenderText {mo} at (0,-3) size 5x17
12681268 text run at (0,-3) width 5: "\x{239D}"
1269 layer at (188,95) size 5x14 backgroundClip at (188,94) size 5x10 clip at (188,94) size 5x10 outlineClip at (188,94) size 5x10
 1269layer at (188,95) size 5x11 backgroundClip at (188,94) size 5x10 clip at (188,94) size 5x10 outlineClip at (188,94) size 5x10
12701270 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12711271 RenderText {mo} at (0,-3) size 5x17
12721272 text run at (0,-3) width 5: "\x{239E}"
1273 layer at (188,109) size 5x14 backgroundClip at (188,112) size 5x11 clip at (188,112) size 5x11 outlineClip at (188,112) size 5x11
 1273layer at (188,109) size 5x11 backgroundClip at (188,112) size 5x11 clip at (188,112) size 5x11 outlineClip at (188,112) size 5x11
12741274 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
12751275 RenderText {mo} at (0,-3) size 5x17
12761276 text run at (0,-3) width 5: "\x{23A0}"
1277 layer at (200,95) size 8x14 backgroundClip at (200,94) size 8x10 clip at (200,94) size 8x10 outlineClip at (200,94) size 8x10
 1277layer at (200,95) size 8x11 backgroundClip at (200,94) size 8x10 clip at (200,94) size 8x10 outlineClip at (200,94) size 8x10
12781278 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
12791279 RenderText {mo} at (0,-3) size 8x17
12801280 text run at (0,-3) width 8: "\x{23D0}"
1281 layer at (200,109) size 8x14 backgroundClip at (200,112) size 8x11 clip at (200,112) size 8x11 outlineClip at (200,112) size 8x11
 1281layer at (200,109) size 8x11 backgroundClip at (200,112) size 8x11 clip at (200,112) size 8x11 outlineClip at (200,112) size 8x11
12821282 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
12831283 RenderText {mo} at (0,-3) size 8x17
12841284 text run at (0,-3) width 8: "\x{23D0}"
1285 layer at (240,95) size 8x14 backgroundClip at (240,94) size 8x10 clip at (240,94) size 8x10 outlineClip at (240,94) size 8x10
 1285layer at (240,95) size 8x11 backgroundClip at (240,94) size 8x10 clip at (240,94) size 8x10 outlineClip at (240,94) size 8x10
12861286 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
12871287 RenderText {mo} at (0,-3) size 8x17
12881288 text run at (0,-3) width 8: "\x{23D0}"
1289 layer at (240,109) size 8x14 backgroundClip at (240,112) size 8x11 clip at (240,112) size 8x11 outlineClip at (240,112) size 8x11
 1289layer at (240,109) size 8x11 backgroundClip at (240,112) size 8x11 clip at (240,112) size 8x11 outlineClip at (240,112) size 8x11
12901290 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
12911291 RenderText {mo} at (0,-3) size 8x17
12921292 text run at (0,-3) width 8: "\x{23D0}"
1293 layer at (255,95) size 10x14 backgroundClip at (255,94) size 10x10 clip at (255,94) size 10x10 outlineClip at (255,94) size 10x10
 1293layer at (255,95) size 10x11 backgroundClip at (255,94) size 10x10 clip at (255,94) size 10x10 outlineClip at (255,94) size 10x10
12941294 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
12951295 RenderText {mo} at (0,-3) size 10x17
12961296 text run at (0,-3) width 10: "\x{2320}"
1297 layer at (255,109) size 10x14 backgroundClip at (255,112) size 10x11 clip at (255,112) size 10x11 outlineClip at (255,112) size 10x11
 1297layer at (255,109) size 10x11 backgroundClip at (255,112) size 10x11 clip at (255,112) size 10x11 outlineClip at (255,112) size 10x11
12981298 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
12991299 RenderText {mo} at (0,-3) size 10x17
13001300 text run at (0,-3) width 10: "\x{2321}"
1301 layer at (49,152) size 7x14 backgroundClip at (49,151) size 7x10 clip at (49,151) size 7x10 outlineClip at (49,151) size 7x10
 1301layer at (49,152) size 7x11 backgroundClip at (49,151) size 7x10 clip at (49,151) size 7x10 outlineClip at (49,151) size 7x10
13021302 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13031303 RenderText {mo} at (0,-3) size 7x17
13041304 text run at (0,-3) width 7: "\x{23A7}"
1305 layer at (49,164) size 7x14 backgroundClip at (49,165) size 7x10 clip at (49,165) size 7x10 outlineClip at (49,165) size 7x10
 1305layer at (49,164) size 7x11 backgroundClip at (49,165) size 7x10 clip at (49,165) size 7x10 outlineClip at (49,165) size 7x10
13061306 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13071307 RenderText {mo} at (0,-3) size 7x17
13081308 text run at (0,-3) width 7: "\x{23A8}"
1309 layer at (49,176) size 7x14 backgroundClip at (49,179) size 7x11 clip at (49,179) size 7x11 outlineClip at (49,179) size 7x11
 1309layer at (49,176) size 7x11 backgroundClip at (49,179) size 7x11 clip at (49,179) size 7x11 outlineClip at (49,179) size 7x11
13101310 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13111311 RenderText {mo} at (0,-3) size 7x17
13121312 text run at (0,-3) width 7: "\x{23A9}"
1313 layer at (96,152) size 7x14 backgroundClip at (96,151) size 7x10 clip at (96,151) size 7x10 outlineClip at (96,151) size 7x10
 1313layer at (96,152) size 7x11 backgroundClip at (96,151) size 7x10 clip at (96,151) size 7x10 outlineClip at (96,151) size 7x10
13141314 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13151315 RenderText {mo} at (0,-3) size 7x17
13161316 text run at (0,-3) width 7: "\x{23AB}"
1317 layer at (96,164) size 7x14 backgroundClip at (96,165) size 7x10 clip at (96,165) size 7x10 outlineClip at (96,165) size 7x10
 1317layer at (96,164) size 7x11 backgroundClip at (96,165) size 7x10 clip at (96,165) size 7x10 outlineClip at (96,165) size 7x10
13181318 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13191319 RenderText {mo} at (0,-3) size 7x17
13201320 text run at (0,-3) width 7: "\x{23AC}"
1321 layer at (96,176) size 7x14 backgroundClip at (96,179) size 7x11 clip at (96,179) size 7x11 outlineClip at (96,179) size 7x11
 1321layer at (96,176) size 7x11 backgroundClip at (96,179) size 7x11 clip at (96,179) size 7x11 outlineClip at (96,179) size 7x11
13221322 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13231323 RenderText {mo} at (0,-3) size 7x17
13241324 text run at (0,-3) width 7: "\x{23AD}"
1325 layer at (110,152) size 5x14 backgroundClip at (110,151) size 5x10 clip at (110,151) size 5x10 outlineClip at (110,151) size 5x10
 1325layer at (110,152) size 5x11 backgroundClip at (110,151) size 5x10 clip at (110,151) size 5x10 outlineClip at (110,151) size 5x10
13261326 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13271327 RenderText {mo} at (0,-3) size 5x17
13281328 text run at (0,-3) width 5: "\x{23A1}"
1329 layer at (110,176) size 5x14 backgroundClip at (110,179) size 5x11 clip at (110,179) size 5x11 outlineClip at (110,179) size 5x11
 1329layer at (110,176) size 5x11 backgroundClip at (110,179) size 5x11 clip at (110,179) size 5x11 outlineClip at (110,179) size 5x11
13301330 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13311331 RenderText {mo} at (0,-3) size 5x17
13321332 text run at (0,-3) width 5: "\x{23A3}"
1333 layer at (155,152) size 5x14 backgroundClip at (155,151) size 5x10 clip at (155,151) size 5x10 outlineClip at (155,151) size 5x10
 1333layer at (155,152) size 5x11 backgroundClip at (155,151) size 5x10 clip at (155,151) size 5x10 outlineClip at (155,151) size 5x10
13341334 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13351335 RenderText {mo} at (0,-3) size 5x17
13361336 text run at (0,-3) width 5: "\x{23A4}"
1337 layer at (155,176) size 5x14 backgroundClip at (155,179) size 5x11 clip at (155,179) size 5x11 outlineClip at (155,179) size 5x11
 1337layer at (155,176) size 5x11 backgroundClip at (155,179) size 5x11 clip at (155,179) size 5x11 outlineClip at (155,179) size 5x11
13381338 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13391339 RenderText {mo} at (0,-3) size 5x17
13401340 text run at (0,-3) width 5: "\x{23A6}"
1341 layer at (167,152) size 5x14 backgroundClip at (167,151) size 5x10 clip at (167,151) size 5x10 outlineClip at (167,151) size 5x10
 1341layer at (167,152) size 5x11 backgroundClip at (167,151) size 5x10 clip at (167,151) size 5x10 outlineClip at (167,151) size 5x10
13421342 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13431343 RenderText {mo} at (0,-3) size 5x17
13441344 text run at (0,-3) width 5: "\x{239B}"
1345 layer at (167,176) size 5x14 backgroundClip at (167,179) size 5x11 clip at (167,179) size 5x11 outlineClip at (167,179) size 5x11
 1345layer at (167,176) size 5x11 backgroundClip at (167,179) size 5x11 clip at (167,179) size 5x11 outlineClip at (167,179) size 5x11
13461346 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13471347 RenderText {mo} at (0,-3) size 5x17
13481348 text run at (0,-3) width 5: "\x{239D}"
1349 layer at (212,152) size 5x14 backgroundClip at (212,151) size 5x10 clip at (212,151) size 5x10 outlineClip at (212,151) size 5x10
 1349layer at (212,152) size 5x11 backgroundClip at (212,151) size 5x10 clip at (212,151) size 5x10 outlineClip at (212,151) size 5x10
13501350 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13511351 RenderText {mo} at (0,-3) size 5x17
13521352 text run at (0,-3) width 5: "\x{239E}"
1353 layer at (212,176) size 5x14 backgroundClip at (212,179) size 5x11 clip at (212,179) size 5x11 outlineClip at (212,179) size 5x11
 1353layer at (212,176) size 5x11 backgroundClip at (212,179) size 5x11 clip at (212,179) size 5x11 outlineClip at (212,179) size 5x11
13541354 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
13551355 RenderText {mo} at (0,-3) size 5x17
13561356 text run at (0,-3) width 5: "\x{23A0}"
1357 layer at (224,152) size 8x14 backgroundClip at (224,151) size 8x10 clip at (224,151) size 8x10 outlineClip at (224,151) size 8x10
 1357layer at (224,152) size 8x11 backgroundClip at (224,151) size 8x10 clip at (224,151) size 8x10 outlineClip at (224,151) size 8x10
13581358 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
13591359 RenderText {mo} at (0,-3) size 8x17
13601360 text run at (0,-3) width 8: "\x{23D0}"
1361 layer at (224,176) size 8x14 backgroundClip at (224,179) size 8x11 clip at (224,179) size 8x11 outlineClip at (224,179) size 8x11
 1361layer at (224,176) size 8x11 backgroundClip at (224,179) size 8x11 clip at (224,179) size 8x11 outlineClip at (224,179) size 8x11
13621362 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
13631363 RenderText {mo} at (0,-3) size 8x17
13641364 text run at (0,-3) width 8: "\x{23D0}"
1365 layer at (272,152) size 8x14 backgroundClip at (272,151) size 8x10 clip at (272,151) size 8x10 outlineClip at (272,151) size 8x10
 1365layer at (272,152) size 8x11 backgroundClip at (272,151) size 8x10 clip at (272,151) size 8x10 outlineClip at (272,151) size 8x10
13661366 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
13671367 RenderText {mo} at (0,-3) size 8x17
13681368 text run at (0,-3) width 8: "\x{23D0}"
1369 layer at (272,176) size 8x14 backgroundClip at (272,179) size 8x11 clip at (272,179) size 8x11 outlineClip at (272,179) size 8x11
 1369layer at (272,176) size 8x11 backgroundClip at (272,179) size 8x11 clip at (272,179) size 8x11 outlineClip at (272,179) size 8x11
13701370 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
13711371 RenderText {mo} at (0,-3) size 8x17
13721372 text run at (0,-3) width 8: "\x{23D0}"
1373 layer at (287,152) size 10x14 backgroundClip at (287,151) size 10x10 clip at (287,151) size 10x10 outlineClip at (287,151) size 10x10
 1373layer at (287,152) size 10x11 backgroundClip at (287,151) size 10x10 clip at (287,151) size 10x10 outlineClip at (287,151) size 10x10
13741374 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
13751375 RenderText {mo} at (0,-3) size 10x17
13761376 text run at (0,-3) width 10: "\x{2320}"
1377 layer at (287,176) size 10x14 backgroundClip at (287,179) size 10x11 clip at (287,179) size 10x11 outlineClip at (287,179) size 10x11
 1377layer at (287,176) size 10x11 backgroundClip at (287,179) size 10x11 clip at (287,179) size 10x11 outlineClip at (287,179) size 10x11
13781378 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
13791379 RenderText {mo} at (0,-3) size 10x17
13801380 text run at (0,-3) width 10: "\x{2321}"
1381 layer at (49,229) size 7x14 backgroundClip at (49,228) size 7x10 clip at (49,228) size 7x10 outlineClip at (49,228) size 7x10
 1381layer at (49,229) size 7x11 backgroundClip at (49,228) size 7x10 clip at (49,228) size 7x10 outlineClip at (49,228) size 7x10
13821382 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13831383 RenderText {mo} at (0,-3) size 7x17
13841384 text run at (0,-3) width 7: "\x{23A7}"
1385 layer at (49,250) size 7x14 backgroundClip at (49,251) size 7x10 clip at (49,251) size 7x10 outlineClip at (49,251) size 7x10
 1385layer at (49,250) size 7x11 backgroundClip at (49,251) size 7x10 clip at (49,251) size 7x10 outlineClip at (49,251) size 7x10
13861386 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13871387 RenderText {mo} at (0,-3) size 7x17
13881388 text run at (0,-3) width 7: "\x{23A8}"
1389 layer at (49,272) size 7x14 backgroundClip at (49,275) size 7x11 clip at (49,275) size 7x11 outlineClip at (49,275) size 7x11
 1389layer at (49,272) size 7x11 backgroundClip at (49,275) size 7x11 clip at (49,275) size 7x11 outlineClip at (49,275) size 7x11
13901390 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13911391 RenderText {mo} at (0,-3) size 7x17
13921392 text run at (0,-3) width 7: "\x{23A9}"
1393 layer at (112,229) size 7x14 backgroundClip at (112,228) size 7x10 clip at (112,228) size 7x10 outlineClip at (112,228) size 7x10
 1393layer at (112,229) size 7x11 backgroundClip at (112,228) size 7x10 clip at (112,228) size 7x10 outlineClip at (112,228) size 7x10
13941394 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13951395 RenderText {mo} at (0,-3) size 7x17
13961396 text run at (0,-3) width 7: "\x{23AB}"
1397 layer at (112,250) size 7x14 backgroundClip at (112,251) size 7x10 clip at (112,251) size 7x10 outlineClip at (112,251) size 7x10
 1397layer at (112,250) size 7x11 backgroundClip at (112,251) size 7x10 clip at (112,251) size 7x10 outlineClip at (112,251) size 7x10
13981398 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
13991399 RenderText {mo} at (0,-3) size 7x17
14001400 text run at (0,-3) width 7: "\x{23AC}"
1401 layer at (112,272) size 7x14 backgroundClip at (112,275) size 7x11 clip at (112,275) size 7x11 outlineClip at (112,275) size 7x11
 1401layer at (112,272) size 7x11 backgroundClip at (112,275) size 7x11 clip at (112,275) size 7x11 outlineClip at (112,275) size 7x11
14021402 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14031403 RenderText {mo} at (0,-3) size 7x17
14041404 text run at (0,-3) width 7: "\x{23AD}"
1405 layer at (126,229) size 5x14 backgroundClip at (126,228) size 5x10 clip at (126,228) size 5x10 outlineClip at (126,228) size 5x10
 1405layer at (126,229) size 5x11 backgroundClip at (126,228) size 5x10 clip at (126,228) size 5x10 outlineClip at (126,228) size 5x10
14061406 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14071407 RenderText {mo} at (0,-3) size 5x17
14081408 text run at (0,-3) width 5: "\x{23A1}"
1409 layer at (126,272) size 5x14 backgroundClip at (126,275) size 5x11 clip at (126,275) size 5x11 outlineClip at (126,275) size 5x11
 1409layer at (126,272) size 5x11 backgroundClip at (126,275) size 5x11 clip at (126,275) size 5x11 outlineClip at (126,275) size 5x11
14101410 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14111411 RenderText {mo} at (0,-3) size 5x17
14121412 text run at (0,-3) width 5: "\x{23A3}"
1413 layer at (187,229) size 5x14 backgroundClip at (187,228) size 5x10 clip at (187,228) size 5x10 outlineClip at (187,228) size 5x10
 1413layer at (187,229) size 5x11 backgroundClip at (187,228) size 5x10 clip at (187,228) size 5x10 outlineClip at (187,228) size 5x10
14141414 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14151415 RenderText {mo} at (0,-3) size 5x17
14161416 text run at (0,-3) width 5: "\x{23A4}"
1417 layer at (187,272) size 5x14 backgroundClip at (187,275) size 5x11 clip at (187,275) size 5x11 outlineClip at (187,275) size 5x11
 1417layer at (187,272) size 5x11 backgroundClip at (187,275) size 5x11 clip at (187,275) size 5x11 outlineClip at (187,275) size 5x11
14181418 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14191419 RenderText {mo} at (0,-3) size 5x17
14201420 text run at (0,-3) width 5: "\x{23A6}"
1421 layer at (199,229) size 5x14 backgroundClip at (199,228) size 5x10 clip at (199,228) size 5x10 outlineClip at (199,228) size 5x10
 1421layer at (199,229) size 5x11 backgroundClip at (199,228) size 5x10 clip at (199,228) size 5x10 outlineClip at (199,228) size 5x10
14221422 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14231423 RenderText {mo} at (0,-3) size 5x17
14241424 text run at (0,-3) width 5: "\x{239B}"
1425 layer at (199,272) size 5x14 backgroundClip at (199,275) size 5x11 clip at (199,275) size 5x11 outlineClip at (199,275) size 5x11
 1425layer at (199,272) size 5x11 backgroundClip at (199,275) size 5x11 clip at (199,275) size 5x11 outlineClip at (199,275) size 5x11
14261426 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14271427 RenderText {mo} at (0,-3) size 5x17
14281428 text run at (0,-3) width 5: "\x{239D}"
1429 layer at (260,229) size 5x14 backgroundClip at (260,228) size 5x10 clip at (260,228) size 5x10 outlineClip at (260,228) size 5x10
 1429layer at (260,229) size 5x11 backgroundClip at (260,228) size 5x10 clip at (260,228) size 5x10 outlineClip at (260,228) size 5x10
14301430 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14311431 RenderText {mo} at (0,-3) size 5x17
14321432 text run at (0,-3) width 5: "\x{239E}"
1433 layer at (260,272) size 5x14 backgroundClip at (260,275) size 5x11 clip at (260,275) size 5x11 outlineClip at (260,275) size 5x11
 1433layer at (260,272) size 5x11 backgroundClip at (260,275) size 5x11 clip at (260,275) size 5x11 outlineClip at (260,275) size 5x11
14341434 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14351435 RenderText {mo} at (0,-3) size 5x17
14361436 text run at (0,-3) width 5: "\x{23A0}"
1437 layer at (272,229) size 8x14 backgroundClip at (272,228) size 8x10 clip at (272,228) size 8x10 outlineClip at (272,228) size 8x10
 1437layer at (272,229) size 8x11 backgroundClip at (272,228) size 8x10 clip at (272,228) size 8x10 outlineClip at (272,228) size 8x10
14381438 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
14391439 RenderText {mo} at (0,-3) size 8x17
14401440 text run at (0,-3) width 8: "\x{23D0}"
1441 layer at (272,272) size 8x14 backgroundClip at (272,275) size 8x11 clip at (272,275) size 8x11 outlineClip at (272,275) size 8x11
 1441layer at (272,272) size 8x11 backgroundClip at (272,275) size 8x11 clip at (272,275) size 8x11 outlineClip at (272,275) size 8x11
14421442 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
14431443 RenderText {mo} at (0,-3) size 8x17
14441444 text run at (0,-3) width 8: "\x{23D0}"
1445 layer at (336,229) size 8x14 backgroundClip at (336,228) size 8x10 clip at (336,228) size 8x10 outlineClip at (336,228) size 8x10
 1445layer at (336,229) size 8x11 backgroundClip at (336,228) size 8x10 clip at (336,228) size 8x10 outlineClip at (336,228) size 8x10
14461446 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
14471447 RenderText {mo} at (0,-3) size 8x17
14481448 text run at (0,-3) width 8: "\x{23D0}"
1449 layer at (336,272) size 8x14 backgroundClip at (336,275) size 8x11 clip at (336,275) size 8x11 outlineClip at (336,275) size 8x11
 1449layer at (336,272) size 8x11 backgroundClip at (336,275) size 8x11 clip at (336,275) size 8x11 outlineClip at (336,275) size 8x11
14501450 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
14511451 RenderText {mo} at (0,-3) size 8x17
14521452 text run at (0,-3) width 8: "\x{23D0}"
1453 layer at (351,229) size 10x14 backgroundClip at (351,228) size 10x10 clip at (351,228) size 10x10 outlineClip at (351,228) size 10x10
 1453layer at (351,229) size 10x11 backgroundClip at (351,228) size 10x10 clip at (351,228) size 10x10 outlineClip at (351,228) size 10x10
14541454 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
14551455 RenderText {mo} at (0,-3) size 10x17
14561456 text run at (0,-3) width 10: "\x{2320}"
1457 layer at (351,272) size 10x14 backgroundClip at (351,275) size 10x11 clip at (351,275) size 10x11 outlineClip at (351,275) size 10x11
 1457layer at (351,272) size 10x11 backgroundClip at (351,275) size 10x11 clip at (351,275) size 10x11 outlineClip at (351,275) size 10x11
14581458 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
14591459 RenderText {mo} at (0,-3) size 10x17
14601460 text run at (0,-3) width 10: "\x{2321}"
1461 layer at (57,373) size 7x14 backgroundClip at (57,372) size 7x10 clip at (57,372) size 7x10 outlineClip at (57,372) size 7x10
 1461layer at (57,373) size 7x11 backgroundClip at (57,372) size 7x10 clip at (57,372) size 7x10 outlineClip at (57,372) size 7x10
14621462 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14631463 RenderText {mo} at (0,-3) size 7x17
14641464 text run at (0,-3) width 7: "\x{23A7}"
1465 layer at (57,438) size 7x14 backgroundClip at (57,439) size 7x10 clip at (57,439) size 7x10 outlineClip at (57,439) size 7x10
 1465layer at (57,438) size 7x11 backgroundClip at (57,439) size 7x10 clip at (57,439) size 7x10 outlineClip at (57,439) size 7x10
14661466 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14671467 RenderText {mo} at (0,-3) size 7x17
14681468 text run at (0,-3) width 7: "\x{23A8}"
1469 layer at (57,503) size 7x14 backgroundClip at (57,506) size 7x11 clip at (57,506) size 7x11 outlineClip at (57,506) size 7x11
 1469layer at (57,503) size 7x11 backgroundClip at (57,506) size 7x11 clip at (57,506) size 7x11 outlineClip at (57,506) size 7x11
14701470 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14711471 RenderText {mo} at (0,-3) size 7x17
14721472 text run at (0,-3) width 7: "\x{23A9}"
1473 layer at (120,373) size 7x14 backgroundClip at (120,372) size 7x10 clip at (120,372) size 7x10 outlineClip at (120,372) size 7x10
 1473layer at (120,373) size 7x11 backgroundClip at (120,372) size 7x10 clip at (120,372) size 7x10 outlineClip at (120,372) size 7x10
14741474 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14751475 RenderText {mo} at (0,-3) size 7x17
14761476 text run at (0,-3) width 7: "\x{23AB}"
1477 layer at (120,438) size 7x14 backgroundClip at (120,439) size 7x10 clip at (120,439) size 7x10 outlineClip at (120,439) size 7x10
 1477layer at (120,438) size 7x11 backgroundClip at (120,439) size 7x10 clip at (120,439) size 7x10 outlineClip at (120,439) size 7x10
14781478 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14791479 RenderText {mo} at (0,-3) size 7x17
14801480 text run at (0,-3) width 7: "\x{23AC}"
1481 layer at (120,503) size 7x14 backgroundClip at (120,506) size 7x11 clip at (120,506) size 7x11 outlineClip at (120,506) size 7x11
 1481layer at (120,503) size 7x11 backgroundClip at (120,506) size 7x11 clip at (120,506) size 7x11 outlineClip at (120,506) size 7x11
14821482 RenderBlock (relative positioned) {mo} at (0,0) size 7x11
14831483 RenderText {mo} at (0,-3) size 7x17
14841484 text run at (0,-3) width 7: "\x{23AD}"
1485 layer at (134,373) size 5x14 backgroundClip at (134,372) size 5x10 clip at (134,372) size 5x10 outlineClip at (134,372) size 5x10
 1485layer at (134,373) size 5x11 backgroundClip at (134,372) size 5x10 clip at (134,372) size 5x10 outlineClip at (134,372) size 5x10
14861486 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14871487 RenderText {mo} at (0,-3) size 5x17
14881488 text run at (0,-3) width 5: "\x{23A1}"
1489 layer at (134,503) size 5x14 backgroundClip at (134,506) size 5x11 clip at (134,506) size 5x11 outlineClip at (134,506) size 5x11
 1489layer at (134,503) size 5x11 backgroundClip at (134,506) size 5x11 clip at (134,506) size 5x11 outlineClip at (134,506) size 5x11
14901490 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14911491 RenderText {mo} at (0,-3) size 5x17
14921492 text run at (0,-3) width 5: "\x{23A3}"
1493 layer at (195,373) size 5x14 backgroundClip at (195,372) size 5x10 clip at (195,372) size 5x10 outlineClip at (195,372) size 5x10
 1493layer at (195,373) size 5x11 backgroundClip at (195,372) size 5x10 clip at (195,372) size 5x10 outlineClip at (195,372) size 5x10
14941494 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14951495 RenderText {mo} at (0,-3) size 5x17
14961496 text run at (0,-3) width 5: "\x{23A4}"
1497 layer at (195,503) size 5x14 backgroundClip at (195,506) size 5x11 clip at (195,506) size 5x11 outlineClip at (195,506) size 5x11
 1497layer at (195,503) size 5x11 backgroundClip at (195,506) size 5x11 clip at (195,506) size 5x11 outlineClip at (195,506) size 5x11
14981498 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
14991499 RenderText {mo} at (0,-3) size 5x17
15001500 text run at (0,-3) width 5: "\x{23A6}"
1501 layer at (207,373) size 5x14 backgroundClip at (207,372) size 5x10 clip at (207,372) size 5x10 outlineClip at (207,372) size 5x10
 1501layer at (207,373) size 5x11 backgroundClip at (207,372) size 5x10 clip at (207,372) size 5x10 outlineClip at (207,372) size 5x10
15021502 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15031503 RenderText {mo} at (0,-3) size 5x17
15041504 text run at (0,-3) width 5: "\x{239B}"
1505 layer at (207,503) size 5x14 backgroundClip at (207,506) size 5x11 clip at (207,506) size 5x11 outlineClip at (207,506) size 5x11
 1505layer at (207,503) size 5x11 backgroundClip at (207,506) size 5x11 clip at (207,506) size 5x11 outlineClip at (207,506) size 5x11
15061506 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15071507 RenderText {mo} at (0,-3) size 5x17
15081508 text run at (0,-3) width 5: "\x{239D}"
1509 layer at (268,373) size 5x14 backgroundClip at (268,372) size 5x10 clip at (268,372) size 5x10 outlineClip at (268,372) size 5x10
 1509layer at (268,373) size 5x11 backgroundClip at (268,372) size 5x10 clip at (268,372) size 5x10 outlineClip at (268,372) size 5x10
15101510 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15111511 RenderText {mo} at (0,-3) size 5x17
15121512 text run at (0,-3) width 5: "\x{239E}"
1513 layer at (268,503) size 5x14 backgroundClip at (268,506) size 5x11 clip at (268,506) size 5x11 outlineClip at (268,506) size 5x11
 1513layer at (268,503) size 5x11 backgroundClip at (268,506) size 5x11 clip at (268,506) size 5x11 outlineClip at (268,506) size 5x11
15141514 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15151515 RenderText {mo} at (0,-3) size 5x17
15161516 text run at (0,-3) width 5: "\x{23A0}"
1517 layer at (280,373) size 8x14 backgroundClip at (280,372) size 8x10 clip at (280,372) size 8x10 outlineClip at (280,372) size 8x10
 1517layer at (280,373) size 8x11 backgroundClip at (280,372) size 8x10 clip at (280,372) size 8x10 outlineClip at (280,372) size 8x10
15181518 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
15191519 RenderText {mo} at (0,-3) size 8x17
15201520 text run at (0,-3) width 8: "\x{23D0}"
1521 layer at (280,503) size 8x14 backgroundClip at (280,506) size 8x11 clip at (280,506) size 8x11 outlineClip at (280,506) size 8x11
 1521layer at (280,503) size 8x11 backgroundClip at (280,506) size 8x11 clip at (280,506) size 8x11 outlineClip at (280,506) size 8x11
15221522 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
15231523 RenderText {mo} at (0,-3) size 8x17
15241524 text run at (0,-3) width 8: "\x{23D0}"
1525 layer at (344,373) size 8x14 backgroundClip at (344,372) size 8x10 clip at (344,372) size 8x10 outlineClip at (344,372) size 8x10
 1525layer at (344,373) size 8x11 backgroundClip at (344,372) size 8x10 clip at (344,372) size 8x10 outlineClip at (344,372) size 8x10
15261526 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
15271527 RenderText {mo} at (0,-3) size 8x17
15281528 text run at (0,-3) width 8: "\x{23D0}"
1529 layer at (344,503) size 8x14 backgroundClip at (344,506) size 8x11 clip at (344,506) size 8x11 outlineClip at (344,506) size 8x11
 1529layer at (344,503) size 8x11 backgroundClip at (344,506) size 8x11 clip at (344,506) size 8x11 outlineClip at (344,506) size 8x11
15301530 RenderBlock (relative positioned) {mo} at (0,0) size 8x11
15311531 RenderText {mo} at (0,-3) size 8x17
15321532 text run at (0,-3) width 8: "\x{23D0}"
1533 layer at (359,373) size 10x14 backgroundClip at (359,372) size 10x10 clip at (359,372) size 10x10 outlineClip at (359,372) size 10x10
 1533layer at (359,373) size 10x11 backgroundClip at (359,372) size 10x10 clip at (359,372) size 10x10 outlineClip at (359,372) size 10x10
15341534 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
15351535 RenderText {mo} at (0,-3) size 10x17
15361536 text run at (0,-3) width 10: "\x{2320}"
1537 layer at (359,503) size 10x14 backgroundClip at (359,506) size 10x11 clip at (359,506) size 10x11 outlineClip at (359,506) size 10x11
 1537layer at (359,503) size 10x11 backgroundClip at (359,506) size 10x11 clip at (359,506) size 10x11 outlineClip at (359,506) size 10x11
15381538 RenderBlock (relative positioned) {mo} at (0,0) size 10x11
15391539 RenderText {mo} at (0,-3) size 10x17
15401540 text run at (0,-3) width 10: "\x{2321}"
1541 layer at (9,550) size 5x14 backgroundClip at (9,549) size 5x10 clip at (9,549) size 5x10 outlineClip at (9,549) size 5x10
 1541layer at (9,550) size 5x11 backgroundClip at (9,549) size 5x10 clip at (9,549) size 5x10 outlineClip at (9,549) size 5x10
15421542 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15431543 RenderText {mo} at (0,-3) size 5x17
15441544 text run at (0,-3) width 5: "\x{239B}"
1545 layer at (9,584) size 5x14 backgroundClip at (9,587) size 5x11 clip at (9,587) size 5x11 outlineClip at (9,587) size 5x11
 1545layer at (9,584) size 5x11 backgroundClip at (9,587) size 5x11 clip at (9,587) size 5x11 outlineClip at (9,587) size 5x11
15461546 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15471547 RenderText {mo} at (0,-3) size 5x17
15481548 text run at (0,-3) width 5: "\x{239D}"
1549 layer at (157,550) size 5x14 backgroundClip at (157,549) size 5x10 clip at (157,549) size 5x10 outlineClip at (157,549) size 5x10
 1549layer at (157,550) size 5x11 backgroundClip at (157,549) size 5x10 clip at (157,549) size 5x10 outlineClip at (157,549) size 5x10
15501550 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15511551 RenderText {mo} at (0,-3) size 5x17
15521552 text run at (0,-3) width 5: "\x{239E}"
1553 layer at (157,584) size 5x14 backgroundClip at (157,587) size 5x11 clip at (157,587) size 5x11 outlineClip at (157,587) size 5x11
 1553layer at (157,584) size 5x11 backgroundClip at (157,587) size 5x11 clip at (157,587) size 5x11 outlineClip at (157,587) size 5x11
15541554 RenderBlock (relative positioned) {mo} at (0,0) size 5x11
15551555 RenderText {mo} at (0,-3) size 5x17
15561556 text run at (0,-3) width 5: "\x{23A0}"
73334

LayoutTests/platform/mac/printing/return-from-printing-mode-expected.txt

11layer at (0,0) size 1656x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1656x48
 3layer at (0,0) size 800x48
44 RenderBlock {HTML} at (0,0) size 800x48
55 RenderBody {BODY} at (8,16) size 784x16
66 RenderBlock {P} at (0,0) size 784x16
73334

LayoutTests/platform/mac/svg/custom/altglyph-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {html} at (0,0) size 800x585
55 RenderBody {body} at (8,16) size 784x565
66 RenderBlock {p} at (0,0) size 784x36
73334

LayoutTests/platform/mac/svg/custom/getscreenctm-in-mixed-content-expected.txt

@@layer at (0,0) size 800x52
1313 RenderBR {br} at (507,0) size 0x18
1414 RenderText {#text} at (0,18) size 315x18
1515 text run at (0,18) width 315: "If the test passes you should see a green rectangle."
16 layer at (30,100) size 400x204
 16layer at (30,100) size 400x200
1717 RenderBlock (positioned) {div} at (30,100) size 400x200
1818 RenderSVGRoot {svg} at (30,100) size 400x200
1919 RenderSVGPath {rect} at (30,100) size 400x200 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=200.00] [height=100.00]
73334

LayoutTests/platform/mac/svg/custom/path-bad-data-expected.txt

11layer at (0,0) size 808x778
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 808x778
 3layer at (0,0) size 785x778
44 RenderBlock {html} at (0,0) size 785x778
55 RenderBody {body} at (8,16) size 769x754
66 RenderBlock {parsererror} at (16,0) size 737x134 [bgcolor=#FFDDDD] [border: (2px solid #CC7777)]
73334

LayoutTests/platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt

11layer at (0,0) size 1026x1014
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1026x1014
 3layer at (0,0) size 785x1014
44 RenderBlock {HTML} at (0,0) size 785x1014
55 RenderBody {BODY} at (8,16) size 769x994
66 RenderBlock {DIV} at (16,0) size 737x60
73334

LayoutTests/platform/mac/svg/custom/svg-fonts-in-html-expected.txt

@@layer at (173,32) size 453x453
1919 RenderInline {SPAN} at (0,0) size 0x0
2020 RenderBlock {DIV} at (0,0) size 453x0
2121 RenderInline {SPAN} at (0,0) size 0x0
22 layer at (173,47) size 453x189
 22layer at (173,47) size 453x188
2323 RenderBlock (positioned) {H1} at (0,15) size 453x188 [color=#DD9955]
2424 RenderInline {SPAN} at (0,0) size 340x190
2525 RenderText {#text} at (63,-1) size 340x190

@@layer at (173,351) size 453x134
8080 text run at (11,98) width 431: "Learn to use the (yet to be) time-honored techniques in new"
8181 text run at (11,112) width 350: "and invigorating fashion. Become one with the web."
8282 RenderText {#text} at (0,0) size 0x0
83 layer at (322,236) size 304x82
 83layer at (322,236) size 304x80
8484 RenderBlock (positioned) {H3} at (149,-115) size 304x80 [color=#CCCC77] [bgcolor=#888811] [border: (3px solid #888811) none (3px solid #888811)]
8585 RenderInline {SPAN} at (0,0) size 277x83
8686 RenderText {#text} at (44,-1) size 277x83
73334

LayoutTests/platform/mac/svg/custom/text-xy-updates-SVGList-expected.txt

11layer at (0,0) size 808x620
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 808x620
 3layer at (0,0) size 785x620
44 RenderBlock {html} at (0,0) size 785x620
55 RenderBody {body} at (8,8) size 769x604
66 RenderSVGRoot {svg:svg} at (208,14) size 166x18
73334

LayoutTests/platform/mac/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.txt

11layer at (0,0) size 800x604
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 800x604
 3layer at (0,0) size 785x604
44 RenderBlock {html} at (0,0) size 785x604
55 RenderInline {body} at (0,0) size 800x18
66 RenderText {#text} at (0,0) size 0x0
73334

LayoutTests/platform/mac/svg/text/foreignObject-text-clipping-bug-expected.txt

@@layer at (0,0) size 800x292
1414 RenderText {#text} at (0,0) size 24x13
1515 text run at (0,0) width 24: "TEST"
1616 RenderText {#text} at (0,0) size 0x0
17 layer at (18,182) size 390x115
 17layer at (18,182) size 390x110
1818 RenderBlock (relative positioned) {div} at (0,162) size 390x110 [color=#000080] [bgcolor=#D3D3D3]
1919 RenderBlock {div} at (0,0) size 390x115
2020 RenderText {#text} at (0,0) size 239x115
73334

LayoutTests/platform/mac/svg/text/kerning-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {html} at (0,0) size 800x585
55 RenderBody {body} at (8,16) size 784x415
66 RenderBlock {p} at (0,0) size 784x36
73334

LayoutTests/platform/mac/svg/text/multichar-glyph-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {html} at (0,0) size 800x585
55 RenderBody {body} at (8,16) size 784x565
66 RenderBlock {p} at (0,0) size 784x36
73334

LayoutTests/platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt

@@layer at (0,0) size 800x536
66 RenderBlock {p} at (0,0) size 784x18
77 RenderText {#text} at (0,0) size 573x18
88 text run at (0,0) width 573: "CSS Transformed HTML div with SVG inside it. Animated SVG should repaint correctly."
9 layer at (58,84) size 402x405
 9layer at (58,84) size 402x402
1010 RenderBlock {div} at (50,68) size 402x402 [border: (1px solid #000000)]
1111 RenderSVGRoot {svg} at (148,144) size 358x419
1212 RenderSVGPath {rect} at (355,187) size 115x115 [stroke={[type=SOLID] [color=#FFC0CB] [stroke width=5.00]}] [fill={[type=SOLID] [color=#0000FF]}] [x=300.00] [y=0.00] [width=100.00] [height=100.00]
73334

LayoutTests/platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt

@@layer at (0,0) size 800x536
77 RenderText {#text} at (0,0) size 550x18
88 text run at (0,0) width 318: "CSS Transformed HTML div with SVG inside it. "
99 text run at (318,0) width 232: "objectBoundingBox patterns on text."
10 layer at (58,84) size 402x405
 10layer at (58,84) size 402x402
1111 RenderBlock {div} at (50,68) size 402x402 [border: (1px solid #000000)]
1212 RenderSVGRoot {svg} at (49,105) size 480x420
1313 RenderSVGResourcePattern {pattern} [id="pat1"] [patternUnits=objectBoundingBox] [patternContentUnits=userSpaceOnUse]
73334

LayoutTests/platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x348
 3layer at (0,0) size 800x312
44 RenderBlock {html} at (0,0) size 800x312
55 RenderBody {body} at (8,10) size 784x292
66 RenderBlock {p} at (0,0) size 784x26 [color=#000080]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug625-expected.txt

11layer at (0,0) size 1012x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1012x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock {HR} at (0,0) size 1004x4 [border: (2px solid #000000)]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug5797-expected.txt

11layer at (0,0) size 866x990
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 866x990
 3layer at (0,0) size 785x990
44 RenderBlock {HTML} at (0,0) size 785x990
55 RenderBody {BODY} at (8,8) size 769x974
66 RenderTable {TABLE} at (0,0) size 769x28 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug23151-expected.txt

11layer at (0,0) size 1264x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1264x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 1256x34 [bgcolor=#FFFFFF]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug29314-expected.txt

11layer at (0,0) size 1009x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 1009x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 1001x226
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug43039-expected.txt

11layer at (0,0) size 16468x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 16468x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 16460x108
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug43854-1-expected.txt

11layer at (0,0) size 942x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 942x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (0,0) size 800x585 [color=#FFFF00] [bgcolor=#000000]
66 RenderBlock {P} at (40,40) size 720x18
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug45055-2-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x136
 3layer at (0,0) size 800x8
44 RenderBlock {HTML} at (0,0) size 800x8
55 RenderBody {BODY} at (8,8) size 784x0 [bgcolor=#FFFFFF]
66 RenderTable {TABLE} at (0,0) size 86x123
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug72359-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x62
 3layer at (0,0) size 800x8
44 RenderBlock {html} at (0,0) size 800x8
55 RenderBody {body} at (8,8) size 784x0
66 RenderBlock (floating) {float} at (0,0) size 157x54 [bgcolor=#FF0000]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug83786-expected.txt

@@layer at (0,0) size 800x600
33layer at (0,0) size 800x136
44 RenderBlock {HTML} at (0,0) size 800x136
55 RenderBody {BODY} at (0,0) size 800x136
6 layer at (0,0) size 266x136 clip at (3,3) size 260x130 scrollWidth 324 scrollHeight 144
 6layer at (0,0) size 266x136 clip at (3,3) size 260x130 scrollHeight 144
77 RenderBlock {DIV} at (0,0) size 266x136 [border: (3px solid #008000)]
88 RenderTable {TABLE} at (16,3) size 64x143
99 RenderTableSection {TBODY} at (0,0) size 64x143
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug92143-expected.txt

11layer at (0,0) size 2410x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 2410x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderBlock (anonymous) at (0,0) size 784x18
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug96334-expected.txt

11layer at (0,0) size 999x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 999x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 991x147 [border: (2px solid #0000FF)]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug120364-expected.txt

11layer at (0,0) size 785x1813
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x1813
 3layer at (0,0) size 785x600
44 RenderBlock {HTML} at (0,0) size 785x600
55 RenderBody {BODY} at (8,8) size 769x584
66 RenderText {#text} at (0,0) size 21x18
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug131020-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 800x569 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/bugs/bug196870-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x92
 3layer at (0,0) size 800x47
44 RenderBlock {HTML} at (0,0) size 800x47
55 RenderBody {BODY} at (8,8) size 784x31
66 RenderTable {TABLE} at (0,0) size 130x31
73334

LayoutTests/platform/mac/tables/mozilla/core/nested1-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 193x34 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/marvin/backgr_index-expected.txt

11layer at (0,0) size 827x1744
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 827x1744
 3layer at (0,0) size 785x1744
44 RenderBlock {HTML} at (0,0) size 785x1744
55 RenderBody {BODY} at (8,17) size 769x1714 [color=#00FF00] [bgcolor=#333333]
66 RenderBlock {H1} at (0,0) size 769x30
73334

LayoutTests/platform/mac/tables/mozilla/marvin/x_table_align_left-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x36
 3layer at (0,0) size 800x8
44 RenderBlock {html} at (0,0) size 800x8
55 RenderBody {body} at (8,8) size 784x0
66 RenderTable {table} at (0,0) size 288x28 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/marvin/x_table_align_right-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x36
 3layer at (0,0) size 800x8
44 RenderBlock {html} at (0,0) size 800x8
55 RenderBody {body} at (8,8) size 784x0
66 RenderTable {table} at (487,0) size 297x28 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/marvin/x_td_nowrap-expected.txt

11layer at (0,0) size 908x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 908x68
 3layer at (0,0) size 800x68
44 RenderBlock {html} at (0,0) size 800x68
55 RenderBody {body} at (8,8) size 784x52
66 RenderTable {table} at (0,0) size 900x52 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla/marvin/x_th_nowrap-expected.txt

11layer at (0,0) size 932x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 932x68
 3layer at (0,0) size 800x68
44 RenderBlock {html} at (0,0) size 800x68
55 RenderBody {body} at (8,8) size 784x52
66 RenderTable {table} at (0,0) size 924x52 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt

1 layer at (0,0) size 785x1415
 1layer at (0,0) size 785x1407
22 RenderView at (0,0) size 785x600
33layer at (8,8) size 769x1399
44 RenderBlock {HTML} at (8,8) size 769x1399 [bgcolor=#008000] [border: (16px solid #00FF00)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug67915-2-expected.txt

11layer at (0,0) size 948x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 948x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 940x28 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug85016-expected.txt

11layer at (0,0) size 982x3040
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 982x3040
 3layer at (0,0) size 785x3040
44 RenderBlock {HTML} at (0,0) size 785x3040
55 RenderBody {BODY} at (32,32) size 721x2976
66 RenderBlock {DIV} at (32,0) size 657x668 [border: (1px solid #008000)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug220653-expected.txt

11layer at (0,0) size 808x585
22 RenderView at (0,0) size 800x585
3 layer at (0,0) size 808x585
 3layer at (0,0) size 800x585
44 RenderBlock {HTML} at (0,0) size 800x585
55 RenderBody {BODY} at (8,8) size 784x569
66 RenderTable {TABLE} at (0,0) size 800x36 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt

11layer at (0,0) size 1544x1673
22 RenderView at (0,0) size 785x585
3 layer at (0,0) size 1544x1673
 3layer at (0,0) size 785x1673
44 RenderBlock {HTML} at (0,0) size 785x1673
55 RenderBody {BODY} at (8,17) size 769x1643 [color=#00FF00] [bgcolor=#333333]
66 RenderBlock {H1} at (0,0) size 769x30
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x411
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderTable {TABLE} at (0,0) size 200x122 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x521
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderTable {TABLE} at (0,0) size 200x122 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_left-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x411
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderTable {TABLE} at (0,0) size 200x122 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_right-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x411
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderTable {TABLE} at (0,0) size 200x122 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_top-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x411
 3layer at (0,0) size 800x138
44 RenderBlock {HTML} at (0,0) size 800x138
55 RenderBody {BODY} at (8,8) size 784x122
66 RenderTable {TABLE} at (0,0) size 200x122 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x308
 3layer at (0,0) size 800x116
44 RenderBlock {HTML} at (0,0) size 800x116
55 RenderBody {BODY} at (8,8) size 784x100
66 RenderTable {TABLE} at (0,0) size 200x100 [bgcolor=#0000FF]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.txt

11layer at (0,0) size 785x612
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x612
 3layer at (0,0) size 785x416
44 RenderBlock {HTML} at (0,0) size 785x416
55 RenderBody {BODY} at (8,8) size 769x400
66 RenderTable {TABLE} at (0,0) size 229x400 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_table-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x578
 3layer at (0,0) size 800x356
44 RenderBlock {HTML} at (0,0) size 800x356
55 RenderBody {BODY} at (8,8) size 784x340
66 RenderTable {TABLE} at (0,0) size 200x340 [bgcolor=#0000FF]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.txt

11layer at (0,0) size 785x728
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x728
 3layer at (0,0) size 785x532
44 RenderBlock {HTML} at (0,0) size 785x532
55 RenderBody {BODY} at (8,8) size 769x516
66 RenderTable {TABLE} at (0,0) size 229x516 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_hidden_tr-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x516
 3layer at (0,0) size 800x38
44 RenderBlock {HTML} at (0,0) size 800x38
55 RenderBody {BODY} at (8,8) size 784x22
66 RenderTable {TABLE} at (0,0) size 22x22 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x549
 3layer at (0,0) size 800x397
44 RenderBlock {HTML} at (0,0) size 800x397
55 RenderBody {BODY} at (8,8) size 784x381
66 RenderTable {TABLE} at (0,0) size 200x381 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell_sibling-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x597
 3layer at (0,0) size 800x386
44 RenderBlock {HTML} at (0,0) size 800x386
55 RenderBody {BODY} at (8,8) size 784x370
66 RenderTable {TABLE} at (0,0) size 200x370 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x597
 3layer at (0,0) size 800x386
44 RenderBlock {HTML} at (0,0) size 800x386
55 RenderBody {BODY} at (8,8) size 784x370
66 RenderTable {TABLE} at (0,0) size 200x370 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.txt

11layer at (0,0) size 785x685
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x685
 3layer at (0,0) size 785x474
44 RenderBlock {HTML} at (0,0) size 785x474
55 RenderBody {BODY} at (8,8) size 769x458
66 RenderTable {TABLE} at (0,0) size 200x458 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x404
 3layer at (0,0) size 800x163
44 RenderBlock {HTML} at (0,0) size 800x163
55 RenderBody {BODY} at (8,8) size 784x147
66 RenderTable {TABLE} at (0,0) size 200x147 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table_caption-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x445
 3layer at (0,0) size 800x234
44 RenderBlock {HTML} at (0,0) size 800x234
55 RenderBody {BODY} at (8,8) size 784x218
66 RenderTable {TABLE} at (0,0) size 200x218 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x597
 3layer at (0,0) size 800x386
44 RenderBlock {HTML} at (0,0) size 800x386
55 RenderBody {BODY} at (8,8) size 784x370
66 RenderTable {TABLE} at (0,0) size 200x370 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling-expected.txt

11layer at (0,0) size 785x724
22 RenderView at (0,0) size 785x600
3 layer at (0,0) size 785x724
 3layer at (0,0) size 785x513
44 RenderBlock {HTML} at (0,0) size 785x513
55 RenderBody {BODY} at (8,8) size 769x497
66 RenderTable {TABLE} at (0,0) size 200x497 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x460
 3layer at (0,0) size 800x126
44 RenderBlock {HTML} at (0,0) size 800x126
55 RenderBody {BODY} at (8,8) size 784x110
66 RenderTable {TABLE} at (0,0) size 200x110 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_bottom-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x504
 3layer at (0,0) size 800x126
44 RenderBlock {HTML} at (0,0) size 800x126
55 RenderBody {BODY} at (8,8) size 784x110
66 RenderTable {TABLE} at (0,0) size 200x110 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_middle-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x460
 3layer at (0,0) size 800x126
44 RenderBlock {HTML} at (0,0) size 800x126
55 RenderBody {BODY} at (8,8) size 784x110
66 RenderTable {TABLE} at (0,0) size 200x110 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_top-expected.txt

11layer at (0,0) size 800x600
22 RenderView at (0,0) size 800x600
3 layer at (0,0) size 800x416
 3layer at (0,0) size 800x126
44 RenderBlock {HTML} at (0,0) size 800x126
55 RenderBody {BODY} at (8,8) size 784x110
66 RenderTable {TABLE} at (0,0) size 200x110 [border: (1px outset #808080)]
73334

LayoutTests/platform/mac/transforms/svg-vs-css-expected.txt

@@layer at (0,0) size 800x578
2929 RenderText {#text} at (0,0) size 116x28
3030 text run at (0,0) width 116: "CSSMatrix"
3131 RenderText {#text} at (0,0) size 0x0
32 layer at (28,84) size 201x205
 32layer at (28,84) size 200x200
3333 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
3434 RenderSVGRoot {svg} at (29,108) size 196x174
3535 RenderSVGContainer {g} at (29,108) size 196x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}]

@@layer at (30,352) size 60x60
4646 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px dotted #000000)]
4747layer at (31,353) size 60x60
4848 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px solid #0000FF)]
49 layer at (272,84) size 201x205
 49layer at (272,84) size 200x200
5050 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
5151 RenderSVGRoot {svg} at (273,108) size 162x174
5252 RenderSVGPath {rect} at (273,107) size 163x176 [transform={m=((1.41,1.41)(-1.41,1.41)) t=(75.00,25.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]

@@layer at (272,350) size 200x200
5555 RenderBlock (relative positioned) {div} at (10,332) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
5656layer at (273,351) size 60x60
5757 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px solid #0000FF)]
58 layer at (516,84) size 201x205
 58layer at (516,84) size 200x200
5959 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
6060 RenderSVGRoot {svg} at (517,108) size 162x174
6161 RenderSVGPath {rect} at (517,107) size 163x176 [transform={m=((1.41,1.41)(-1.41,1.41)) t=(75.00,25.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]
73334

LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt

@@layer at (351,85) size 90x90
5252 RenderBlock {DIV} at (21,1) size 90x90 [bgcolor=#0000FF] [border: (1px solid #000000)]
5353layer at (534,42) size 140x140
5454 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
55 layer at (555,63) size 121x121
 55layer at (555,63) size 100x100
5656 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#81AA8A] [border: (1px solid #000000)]
5757 RenderBlock {DIV} at (21,21) size 100x100 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
5858layer at (597,85) size 90x90
73334

LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt

@@layer at (63,63) size 100x100
6060 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
6161layer at (288,42) size 140x140
6262 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
63 layer at (309,63) size 121x121
 63layer at (309,63) size 100x100
6464 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
6565 RenderBlock {DIV} at (21,21) size 100x100 [bgcolor=#0000FF] [border: (1px solid #000000)]
6666layer at (42,288) size 140x140

@@layer at (84,330) size 100x100
7171 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#0000FF] [border: (1px solid #000000)]
7272layer at (288,288) size 140x140
7373 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
74 layer at (309,309) size 121x121
 74layer at (309,309) size 100x100
7575 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
7676 RenderBlock {DIV} at (21,21) size 100x100 [bgcolor=#C0D69E] [border: (1px solid #000000)]
7777layer at (351,351) size 100x100
73334

LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt

@@layer at (63,63) size 100x100
6060 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
6161layer at (288,42) size 140x140
6262 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
63 layer at (309,63) size 121x121
 63layer at (309,63) size 100x100
6464 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
6565 RenderBlock {DIV} at (21,21) size 100x100 [bgcolor=#0000FF] [border: (1px solid #000000)]
6666layer at (42,288) size 140x140

@@layer at (84,330) size 100x100
7171 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#0000FF] [border: (1px solid #000000)]
7272layer at (288,288) size 140x140
7373 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
74 layer at (309,309) size 121x121
 74layer at (309,309) size 100x100
7575 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#AAAAAA] [border: (1px solid #000000)]
7676 RenderBlock {DIV} at (21,21) size 100x100 [bgcolor=#C0D69E] [border: (1px solid #000000)]
7777layer at (351,351) size 100x100
73334

LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt

@@layer at (63,63) size 100x100
9898 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#81AA8A] [border: (1px solid #000000)]
9999layer at (288,42) size 140x140
100100 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
101 layer at (309,63) size 111x111
 101layer at (309,63) size 100x100
102102 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#81AA8A] [border: (1px solid #000000)]
103103 RenderBlock {DIV} at (21,21) size 90x90 [bgcolor=#0000FF] [border: (1px solid #000000)]
104104layer at (534,42) size 140x140

@@layer at (288,288) size 140x140
117117 RenderBlock {DIV} at (21,21) size 140x140 [bgcolor=#DDDDDD] [border: (1px solid #000000)]
118118layer at (309,309) size 100x100
119119 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#81AA8A] [border: (1px solid #000000)]
120 layer at (350,350) size 111x111
 120layer at (350,350) size 100x100
121121 RenderBlock (relative positioned) {DIV} at (41,41) size 100x100 [border: (1px solid #000000)]
122122 RenderBlock {DIV} at (21,21) size 90x90 [bgcolor=#0000FF] [border: (1px solid #000000)]
123123layer at (534,288) size 140x140

@@layer at (555,309) size 100x100
126126 RenderBlock (relative positioned) {DIV} at (21,21) size 100x100 [bgcolor=#81AA8A] [border: (1px solid #000000)]
127127layer at (596,350) size 100x100
128128 RenderBlock (relative positioned) {DIV} at (41,41) size 100x100 [border: (1px solid #000000)]
129 layer at (637,391) size 111x111
 129layer at (637,391) size 100x100
130130 RenderBlock (relative positioned) {DIV} at (41,41) size 100x100 [bgcolor=#AA7994] [border: (1px solid #000000)]
131131 RenderBlock {DIV} at (21,21) size 90x90 [bgcolor=#0000FF] [border: (1px solid #000000)]
73334

LayoutTests/svg/custom/text-zoom-expected.txt

@@layer at (0,0) size 800x8
55 RenderBody {body} at (8,8) size 784x0
66layer at (0,30) size 100x100
77 RenderBlock (positioned) {div} at (0,30) size 100x100 [bgcolor=#FF0000]
8 layer at (0,30) size 200x205
 8layer at (0,30) size 200x200
99 RenderBlock (positioned) {div} at (0,30) size 200x200
1010 RenderSVGRoot {svg} at (0,30) size 100x100
1111 RenderSVGPath {rect} at (0,30) size 100x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=50.00] [height=50.00]
73334

LayoutTests/platform/mac/fast/overflow/overflow-rtl-vertical-expected.png

INVALID: Image lacks a checksum. This will fail with a MISSING error in run-webkit-tests. Always generate new png files using run-webkit-tests.

LayoutTests/platform/mac/fast/repaint/box-shadow-h-expected.png

INVALID: Image lacks a checksum. This will fail with a MISSING error in run-webkit-tests. Always generate new png files using run-webkit-tests.

LayoutTests/platform/mac/fast/repaint/transform-replaced-shadows-expected.png

INVALID: Image lacks a checksum. This will fail with a MISSING error in run-webkit-tests. Always generate new png files using run-webkit-tests.