Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: Source/core/rendering/RenderBox.cpp

Issue 23819007: Have Node::document() return a reference instead of a pointer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderBox.h ('k') | Source/core/rendering/RenderBoxModelObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 static const int autoscrollBeltSize = 20; 78 static const int autoscrollBeltSize = 20;
79 static const unsigned backgroundObscurationTestMaxDepth = 4; 79 static const unsigned backgroundObscurationTestMaxDepth = 4;
80 80
81 bool RenderBox::s_hadOverflowClip = false; 81 bool RenderBox::s_hadOverflowClip = false;
82 82
83 static bool skipBodyBackground(const RenderBox* bodyElementRenderer) 83 static bool skipBodyBackground(const RenderBox* bodyElementRenderer)
84 { 84 {
85 ASSERT(bodyElementRenderer->isBody()); 85 ASSERT(bodyElementRenderer->isBody());
86 // The <body> only paints its background if the root element has defined a b ackground independent of the body, 86 // The <body> only paints its background if the root element has defined a b ackground independent of the body,
87 // or if the <body>'s parent is not the document element's renderer (e.g. in side SVG foreignObject). 87 // or if the <body>'s parent is not the document element's renderer (e.g. in side SVG foreignObject).
88 RenderObject* documentElementRenderer = bodyElementRenderer->document()->doc umentElement()->renderer(); 88 RenderObject* documentElementRenderer = bodyElementRenderer->document().docu mentElement()->renderer();
89 return documentElementRenderer 89 return documentElementRenderer
90 && !documentElementRenderer->hasBackground() 90 && !documentElementRenderer->hasBackground()
91 && (documentElementRenderer == bodyElementRenderer->parent()); 91 && (documentElementRenderer == bodyElementRenderer->parent());
92 } 92 }
93 93
94 RenderBox::RenderBox(ContainerNode* node) 94 RenderBox::RenderBox(ContainerNode* node)
95 : RenderBoxModelObject(node) 95 : RenderBoxModelObject(node)
96 , m_minPreferredLogicalWidth(-1) 96 , m_minPreferredLogicalWidth(-1)
97 , m_maxPreferredLogicalWidth(-1) 97 , m_maxPreferredLogicalWidth(-1)
98 , m_intrinsicContentLogicalHeight(-1) 98 , m_intrinsicContentLogicalHeight(-1)
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 } 276 }
277 } 277 }
278 278
279 bool isBodyRenderer = isBody(); 279 bool isBodyRenderer = isBody();
280 bool isRootRenderer = isRoot(); 280 bool isRootRenderer = isRoot();
281 281
282 if (isRootRenderer || isBodyRenderer) { 282 if (isRootRenderer || isBodyRenderer) {
283 // Propagate the new writing mode and direction up to the RenderView. 283 // Propagate the new writing mode and direction up to the RenderView.
284 RenderView* viewRenderer = view(); 284 RenderView* viewRenderer = view();
285 RenderStyle* viewStyle = viewRenderer->style(); 285 RenderStyle* viewStyle = viewRenderer->style();
286 if (viewStyle->direction() != newStyle->direction() && (isRootRenderer | | !document()->directionSetOnDocumentElement())) { 286 if (viewStyle->direction() != newStyle->direction() && (isRootRenderer | | !document().directionSetOnDocumentElement())) {
287 viewStyle->setDirection(newStyle->direction()); 287 viewStyle->setDirection(newStyle->direction());
288 if (isBodyRenderer) 288 if (isBodyRenderer)
289 document()->documentElement()->renderer()->style()->setDirection (newStyle->direction()); 289 document().documentElement()->renderer()->style()->setDirection( newStyle->direction());
290 setNeedsLayoutAndPrefWidthsRecalc(); 290 setNeedsLayoutAndPrefWidthsRecalc();
291 } 291 }
292 292
293 if (viewStyle->writingMode() != newStyle->writingMode() && (isRootRender er || !document()->writingModeSetOnDocumentElement())) { 293 if (viewStyle->writingMode() != newStyle->writingMode() && (isRootRender er || !document().writingModeSetOnDocumentElement())) {
294 viewStyle->setWritingMode(newStyle->writingMode()); 294 viewStyle->setWritingMode(newStyle->writingMode());
295 viewRenderer->setHorizontalWritingMode(newStyle->isHorizontalWriting Mode()); 295 viewRenderer->setHorizontalWritingMode(newStyle->isHorizontalWriting Mode());
296 viewRenderer->markAllDescendantsWithFloatsForLayout(); 296 viewRenderer->markAllDescendantsWithFloatsForLayout();
297 if (isBodyRenderer) { 297 if (isBodyRenderer) {
298 document()->documentElement()->renderer()->style()->setWritingMo de(newStyle->writingMode()); 298 document().documentElement()->renderer()->style()->setWritingMod e(newStyle->writingMode());
299 document()->documentElement()->renderer()->setHorizontalWritingM ode(newStyle->isHorizontalWritingMode()); 299 document().documentElement()->renderer()->setHorizontalWritingMo de(newStyle->isHorizontalWritingMode());
300 } 300 }
301 setNeedsLayoutAndPrefWidthsRecalc(); 301 setNeedsLayoutAndPrefWidthsRecalc();
302 } 302 }
303 303
304 frame()->view()->recalculateScrollbarOverlayStyle(); 304 frame()->view()->recalculateScrollbarOverlayStyle();
305 } 305 }
306 306
307 updateShapeOutsideInfoAfterStyleChange(style()->shapeOutside(), oldStyle ? o ldStyle->shapeOutside() : 0); 307 updateShapeOutsideInfoAfterStyleChange(style()->shapeOutside(), oldStyle ? o ldStyle->shapeOutside() : 0);
308 updateGridPositionAfterStyleChange(oldStyle); 308 updateGridPositionAfterStyleChange(oldStyle);
309 } 309 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 setFloating(!isOutOfFlowPositioned() && styleToUse->isFloating()); 354 setFloating(!isOutOfFlowPositioned() && styleToUse->isFloating());
355 355
356 // We also handle <body> and <html>, whose overflow applies to the viewport. 356 // We also handle <body> and <html>, whose overflow applies to the viewport.
357 if (styleToUse->overflowX() != OVISIBLE && !isRootObject && isRenderBlock()) { 357 if (styleToUse->overflowX() != OVISIBLE && !isRootObject && isRenderBlock()) {
358 bool boxHasOverflowClip = true; 358 bool boxHasOverflowClip = true;
359 if (isBody()) { 359 if (isBody()) {
360 // Overflow on the body can propagate to the viewport under the foll owing conditions. 360 // Overflow on the body can propagate to the viewport under the foll owing conditions.
361 // (1) The root element is <html>. 361 // (1) The root element is <html>.
362 // (2) We are the primary <body> (can be checked by looking at docum ent.body). 362 // (2) We are the primary <body> (can be checked by looking at docum ent.body).
363 // (3) The root element has visible overflow. 363 // (3) The root element has visible overflow.
364 if (isHTMLHtmlElement(document()->documentElement()) 364 if (isHTMLHtmlElement(document().documentElement())
365 && document()->body() == node() 365 && document().body() == node()
366 && document()->documentElement()->renderer()->style()->overflowX () == OVISIBLE) 366 && document().documentElement()->renderer()->style()->overflowX( ) == OVISIBLE)
367 boxHasOverflowClip = false; 367 boxHasOverflowClip = false;
368 } 368 }
369 369
370 // Check for overflow clip. 370 // Check for overflow clip.
371 // It's sufficient to just check one direction, since it's illegal to ha ve visible on only one overflow value. 371 // It's sufficient to just check one direction, since it's illegal to ha ve visible on only one overflow value.
372 if (boxHasOverflowClip) { 372 if (boxHasOverflowClip) {
373 if (!s_hadOverflowClip) 373 if (!s_hadOverflowClip)
374 // Erase the overflow 374 // Erase the overflow
375 repaint(); 375 repaint();
376 setHasOverflowClip(); 376 setHasOverflowClip();
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 } 775 }
776 776
777 // There are two kinds of renderer that can autoscroll. 777 // There are two kinds of renderer that can autoscroll.
778 bool RenderBox::canAutoscroll() const 778 bool RenderBox::canAutoscroll() const
779 { 779 {
780 // Check for a box that can be scrolled in its own right. 780 // Check for a box that can be scrolled in its own right.
781 if (canBeScrolledAndHasScrollableArea()) 781 if (canBeScrolledAndHasScrollableArea())
782 return true; 782 return true;
783 783
784 // Check for a box that represents the top level of a web page. 784 // Check for a box that represents the top level of a web page.
785 if (node() != document()) 785 if (node() != &document())
786 return false; 786 return false;
787 Frame* frame = this->frame(); 787 Frame* frame = this->frame();
788 if (!frame) 788 if (!frame)
789 return false; 789 return false;
790 Page* page = frame->page(); 790 Page* page = frame->page();
791 return page && page->mainFrame() == frame && frame->view()->isScrollable(); 791 return page && page->mainFrame() == frame && frame->view()->isScrollable();
792 } 792 }
793 793
794 // If specified point is in border belt, returned offset denotes direction of 794 // If specified point is in border belt, returned offset denotes direction of
795 // scrolling. 795 // scrolling.
(...skipping 20 matching lines...) Expand all
816 if (point.y() < box.y() + autoscrollBeltSize) 816 if (point.y() < box.y() + autoscrollBeltSize)
817 point.move(0, -autoscrollBeltSize); 817 point.move(0, -autoscrollBeltSize);
818 else if (point.y() > box.maxY() - autoscrollBeltSize) 818 else if (point.y() > box.maxY() - autoscrollBeltSize)
819 point.move(0, autoscrollBeltSize); 819 point.move(0, autoscrollBeltSize);
820 return frameView->contentsToWindow(point) - windowPoint; 820 return frameView->contentsToWindow(point) - windowPoint;
821 } 821 }
822 822
823 RenderBox* RenderBox::findAutoscrollable(RenderObject* renderer) 823 RenderBox* RenderBox::findAutoscrollable(RenderObject* renderer)
824 { 824 {
825 while (renderer && !(renderer->isBox() && toRenderBox(renderer)->canAutoscro ll())) { 825 while (renderer && !(renderer->isBox() && toRenderBox(renderer)->canAutoscro ll())) {
826 if (!renderer->parent() && renderer->node() == renderer->document() && r enderer->document()->ownerElement()) 826 if (!renderer->parent() && renderer->node() == &renderer->document() && renderer->document().ownerElement())
827 renderer = renderer->document()->ownerElement()->renderer(); 827 renderer = renderer->document().ownerElement()->renderer();
828 else 828 else
829 renderer = renderer->parent(); 829 renderer = renderer->parent();
830 } 830 }
831 831
832 return renderer && renderer->isBox() ? toRenderBox(renderer) : 0; 832 return renderer && renderer->isBox() ? toRenderBox(renderer) : 0;
833 } 833 }
834 834
835 void RenderBox::panScroll(const IntPoint& source) 835 void RenderBox::panScroll(const IntPoint& source)
836 { 836 {
837 if (layer()) 837 if (layer())
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer * layers, bool drawingBackground) 1475 bool RenderBox::repaintLayerRectsForImage(WrappedImagePtr image, const FillLayer * layers, bool drawingBackground)
1476 { 1476 {
1477 LayoutRect rendererRect; 1477 LayoutRect rendererRect;
1478 RenderBox* layerRenderer = 0; 1478 RenderBox* layerRenderer = 0;
1479 1479
1480 for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer->next ()) { 1480 for (const FillLayer* curLayer = layers; curLayer; curLayer = curLayer->next ()) {
1481 if (curLayer->image() && image == curLayer->image()->data() && curLayer- >image()->canRender(this, style()->effectiveZoom())) { 1481 if (curLayer->image() && image == curLayer->image()->data() && curLayer- >image()->canRender(this, style()->effectiveZoom())) {
1482 // Now that we know this image is being used, compute the renderer a nd the rect 1482 // Now that we know this image is being used, compute the renderer a nd the rect
1483 // if we haven't already 1483 // if we haven't already
1484 if (!layerRenderer) { 1484 if (!layerRenderer) {
1485 bool drawingRootBackground = drawingBackground && (isRoot() || ( isBody() && !document()->documentElement()->renderer()->hasBackground())); 1485 bool drawingRootBackground = drawingBackground && (isRoot() || ( isBody() && !document().documentElement()->renderer()->hasBackground()));
1486 if (drawingRootBackground) { 1486 if (drawingRootBackground) {
1487 layerRenderer = view(); 1487 layerRenderer = view();
1488 1488
1489 LayoutUnit rw; 1489 LayoutUnit rw;
1490 LayoutUnit rh; 1490 LayoutUnit rh;
1491 1491
1492 if (FrameView* frameView = toRenderView(layerRenderer)->fram eView()) { 1492 if (FrameView* frameView = toRenderView(layerRenderer)->fram eView()) {
1493 rw = frameView->contentsWidth(); 1493 rw = frameView->contentsWidth();
1494 rh = frameView->contentsHeight(); 1494 rh = frameView->contentsHeight();
1495 } else { 1495 } else {
(...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after
2589 shouldFlipBeforeAfter ? computedValues.m_margins.m_after : c omputedValues.m_margins.m_before, 2589 shouldFlipBeforeAfter ? computedValues.m_margins.m_after : c omputedValues.m_margins.m_before,
2590 shouldFlipBeforeAfter ? computedValues.m_margins.m_before : computedValues.m_margins.m_after); 2590 shouldFlipBeforeAfter ? computedValues.m_margins.m_before : computedValues.m_margins.m_after);
2591 } 2591 }
2592 } 2592 }
2593 2593
2594 // WinIE quirk: The <html> block always fills the entire canvas in quirks mo de. The <body> always fills the 2594 // WinIE quirk: The <html> block always fills the entire canvas in quirks mo de. The <body> always fills the
2595 // <html> block in quirks mode. Only apply this quirk if the block is norma l flow and no height 2595 // <html> block in quirks mode. Only apply this quirk if the block is norma l flow and no height
2596 // is specified. When we're printing, we also need this quirk if the body or root has a percentage 2596 // is specified. When we're printing, we also need this quirk if the body or root has a percentage
2597 // height since we don't set a height in RenderView when we're printing. So without this quirk, the 2597 // height since we don't set a height in RenderView when we're printing. So without this quirk, the
2598 // height has nothing to be a percentage of, and it ends up being 0. That is bad. 2598 // height has nothing to be a percentage of, and it ends up being 0. That is bad.
2599 bool paginatedContentNeedsBaseHeight = document()->printing() && h.isPercent () 2599 bool paginatedContentNeedsBaseHeight = document().printing() && h.isPercent( )
2600 && (isRoot() || (isBody() && document()->documentElement()->renderer()-> style()->logicalHeight().isPercent())) && !isInline(); 2600 && (isRoot() || (isBody() && document().documentElement()->renderer()->s tyle()->logicalHeight().isPercent())) && !isInline();
2601 if (stretchesToViewport() || paginatedContentNeedsBaseHeight) { 2601 if (stretchesToViewport() || paginatedContentNeedsBaseHeight) {
2602 LayoutUnit margins = collapsedMarginBefore() + collapsedMarginAfter(); 2602 LayoutUnit margins = collapsedMarginBefore() + collapsedMarginAfter();
2603 LayoutUnit visibleHeight = viewLogicalHeightForPercentages(); 2603 LayoutUnit visibleHeight = viewLogicalHeightForPercentages();
2604 if (isRoot()) 2604 if (isRoot())
2605 computedValues.m_extent = max(computedValues.m_extent, visibleHeight - margins); 2605 computedValues.m_extent = max(computedValues.m_extent, visibleHeight - margins);
2606 else { 2606 else {
2607 LayoutUnit marginsBordersPadding = margins + parentBox()->marginBefo re() + parentBox()->marginAfter() + parentBox()->borderAndPaddingLogicalHeight() ; 2607 LayoutUnit marginsBordersPadding = margins + parentBox()->marginBefo re() + parentBox()->marginAfter() + parentBox()->borderAndPaddingLogicalHeight() ;
2608 computedValues.m_extent = max(computedValues.m_extent, visibleHeight - marginsBordersPadding); 2608 computedValues.m_extent = max(computedValues.m_extent, visibleHeight - marginsBordersPadding);
2609 } 2609 }
2610 } 2610 }
2611 } 2611 }
2612 2612
2613 LayoutUnit RenderBox::viewLogicalHeightForPercentages() const 2613 LayoutUnit RenderBox::viewLogicalHeightForPercentages() const
2614 { 2614 {
2615 if (document()->printing()) 2615 if (document().printing())
2616 return static_cast<LayoutUnit>(view()->pageLogicalHeight()); 2616 return static_cast<LayoutUnit>(view()->pageLogicalHeight());
2617 return view()->viewLogicalHeight(); 2617 return view()->viewLogicalHeight();
2618 } 2618 }
2619 2619
2620 LayoutUnit RenderBox::computeLogicalHeightUsing(const Length& height, LayoutUnit intrinsicContentHeight) const 2620 LayoutUnit RenderBox::computeLogicalHeightUsing(const Length& height, LayoutUnit intrinsicContentHeight) const
2621 { 2621 {
2622 LayoutUnit logicalHeight = computeContentAndScrollbarLogicalHeightUsing(heig ht, intrinsicContentHeight); 2622 LayoutUnit logicalHeight = computeContentAndScrollbarLogicalHeightUsing(heig ht, intrinsicContentHeight);
2623 if (logicalHeight != -1) 2623 if (logicalHeight != -1)
2624 logicalHeight = adjustBorderBoxLogicalHeightForBoxSizing(logicalHeight); 2624 logicalHeight = adjustBorderBoxLogicalHeightForBoxSizing(logicalHeight);
2625 return logicalHeight; 2625 return logicalHeight;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2665 return computePercentageLogicalHeight(height); 2665 return computePercentageLogicalHeight(height);
2666 if (height.isViewportPercentage()) 2666 if (height.isViewportPercentage())
2667 return valueForLength(height, 0, view()); 2667 return valueForLength(height, 0, view());
2668 return -1; 2668 return -1;
2669 } 2669 }
2670 2670
2671 bool RenderBox::skipContainingBlockForPercentHeightCalculation(const RenderBox* containingBlock) const 2671 bool RenderBox::skipContainingBlockForPercentHeightCalculation(const RenderBox* containingBlock) const
2672 { 2672 {
2673 // For quirks mode and anonymous blocks, we skip auto-height containingBlock s when computing percentages. 2673 // For quirks mode and anonymous blocks, we skip auto-height containingBlock s when computing percentages.
2674 // For standards mode, we treat the percentage as auto if it has an auto-hei ght containing block. 2674 // For standards mode, we treat the percentage as auto if it has an auto-hei ght containing block.
2675 if (!document()->inQuirksMode() && !containingBlock->isAnonymousBlock()) 2675 if (!document().inQuirksMode() && !containingBlock->isAnonymousBlock())
2676 return false; 2676 return false;
2677 return !containingBlock->isTableCell() && !containingBlock->isOutOfFlowPosit ioned() && containingBlock->style()->logicalHeight().isAuto() && isHorizontalWri tingMode() == containingBlock->isHorizontalWritingMode(); 2677 return !containingBlock->isTableCell() && !containingBlock->isOutOfFlowPosit ioned() && containingBlock->style()->logicalHeight().isAuto() && isHorizontalWri tingMode() == containingBlock->isHorizontalWritingMode();
2678 } 2678 }
2679 2679
2680 LayoutUnit RenderBox::computePercentageLogicalHeight(const Length& height) const 2680 LayoutUnit RenderBox::computePercentageLogicalHeight(const Length& height) const
2681 { 2681 {
2682 LayoutUnit availableHeight = -1; 2682 LayoutUnit availableHeight = -1;
2683 2683
2684 bool skippedAutoHeightContainingBlock = false; 2684 bool skippedAutoHeightContainingBlock = false;
2685 RenderBlock* cb = containingBlock(); 2685 RenderBlock* cb = containingBlock();
(...skipping 1679 matching lines...) Expand 10 before | Expand all | Expand 10 after
4365 } 4365 }
4366 4366
4367 bool RenderBox::percentageLogicalHeightIsResolvableFromBlock(const RenderBlock* containingBlock, bool isOutOfFlowPositioned) 4367 bool RenderBox::percentageLogicalHeightIsResolvableFromBlock(const RenderBlock* containingBlock, bool isOutOfFlowPositioned)
4368 { 4368 {
4369 // In quirks mode, blocks with auto height are skipped, and we keep looking for an enclosing 4369 // In quirks mode, blocks with auto height are skipped, and we keep looking for an enclosing
4370 // block that may have a specified height and then use it. In strict mode, t his violates the 4370 // block that may have a specified height and then use it. In strict mode, t his violates the
4371 // specification, which states that percentage heights just revert to auto i f the containing 4371 // specification, which states that percentage heights just revert to auto i f the containing
4372 // block has an auto height. We still skip anonymous containing blocks in bo th modes, though, and look 4372 // block has an auto height. We still skip anonymous containing blocks in bo th modes, though, and look
4373 // only at explicit containers. 4373 // only at explicit containers.
4374 const RenderBlock* cb = containingBlock; 4374 const RenderBlock* cb = containingBlock;
4375 bool inQuirksMode = cb->document()->inQuirksMode(); 4375 bool inQuirksMode = cb->document().inQuirksMode();
4376 while (!cb->isRenderView() && !cb->isBody() && !cb->isTableCell() && !cb->is OutOfFlowPositioned() && cb->style()->logicalHeight().isAuto()) { 4376 while (!cb->isRenderView() && !cb->isBody() && !cb->isTableCell() && !cb->is OutOfFlowPositioned() && cb->style()->logicalHeight().isAuto()) {
4377 if (!inQuirksMode && !cb->isAnonymousBlock()) 4377 if (!inQuirksMode && !cb->isAnonymousBlock())
4378 break; 4378 break;
4379 cb = cb->containingBlock(); 4379 cb = cb->containingBlock();
4380 } 4380 }
4381 4381
4382 // A positioned element that specified both top/bottom or that specifies hei ght should be treated as though it has a height 4382 // A positioned element that specified both top/bottom or that specifies hei ght should be treated as though it has a height
4383 // explicitly specified that can be used for any percentage computations. 4383 // explicitly specified that can be used for any percentage computations.
4384 // FIXME: We can't just check top/bottom here. 4384 // FIXME: We can't just check top/bottom here.
4385 // https://bugs.webkit.org/show_bug.cgi?id=46500 4385 // https://bugs.webkit.org/show_bug.cgi?id=46500
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
4734 } 4734 }
4735 4735
4736 if (didSplitParentAnonymousBoxes) 4736 if (didSplitParentAnonymousBoxes)
4737 markBoxForRelayoutAfterSplit(this); 4737 markBoxForRelayoutAfterSplit(this);
4738 4738
4739 ASSERT(beforeChild->parent() == this); 4739 ASSERT(beforeChild->parent() == this);
4740 return beforeChild; 4740 return beforeChild;
4741 } 4741 }
4742 4742
4743 } // namespace WebCore 4743 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBox.h ('k') | Source/core/rendering/RenderBoxModelObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698