| OLD | NEW |
| 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. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. |
| 7 * All rights reserved. | 7 * All rights reserved. |
| 8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 static OverrideSizeMap* gExtraInlineOffsetMap = nullptr; | 78 static OverrideSizeMap* gExtraInlineOffsetMap = nullptr; |
| 79 static OverrideSizeMap* gExtraBlockOffsetMap = nullptr; | 79 static OverrideSizeMap* gExtraBlockOffsetMap = nullptr; |
| 80 | 80 |
| 81 // Size of border belt for autoscroll. When mouse pointer in border belt, | 81 // Size of border belt for autoscroll. When mouse pointer in border belt, |
| 82 // autoscroll is started. | 82 // autoscroll is started. |
| 83 static const int autoscrollBeltSize = 20; | 83 static const int autoscrollBeltSize = 20; |
| 84 static const unsigned backgroundObscurationTestMaxDepth = 4; | 84 static const unsigned backgroundObscurationTestMaxDepth = 4; |
| 85 | 85 |
| 86 struct SameSizeAsLayoutBox : public LayoutBoxModelObject { | 86 struct SameSizeAsLayoutBox : public LayoutBoxModelObject { |
| 87 LayoutRect frameRect; | 87 // LayoutRect frameRect; |
| 88 LayoutSize previousSize; | 88 LayoutSize previousSize; |
| 89 LayoutUnit intrinsicContentLogicalHeight; | 89 LayoutUnit intrinsicContentLogicalHeight; |
| 90 LayoutRectOutsets marginBoxOutsets; | 90 LayoutRectOutsets marginBoxOutsets; |
| 91 LayoutUnit preferredLogicalWidth[2]; | 91 LayoutUnit preferredLogicalWidth[2]; |
| 92 void* pointers[3]; | 92 void* pointers[3]; |
| 93 RefPtr<NGPhysicalBoxFragment> transitionToLayoutNG; |
| 93 }; | 94 }; |
| 94 | 95 |
| 95 static_assert(sizeof(LayoutBox) == sizeof(SameSizeAsLayoutBox), | 96 static_assert(sizeof(LayoutBox) == sizeof(SameSizeAsLayoutBox), |
| 96 "LayoutBox should stay small"); | 97 "LayoutBox should stay small"); |
| 97 | 98 |
| 98 LayoutBox::LayoutBox(ContainerNode* node) | 99 LayoutBox::LayoutBox(ContainerNode* node) |
| 99 : LayoutBoxModelObject(node), | 100 : LayoutBoxModelObject(node), |
| 101 m_ngPhysicalBoxFragment(adoptRef(new NGPhysicalBoxFragment())), |
| 100 m_intrinsicContentLogicalHeight(-1), | 102 m_intrinsicContentLogicalHeight(-1), |
| 101 m_minPreferredLogicalWidth(-1), | 103 m_minPreferredLogicalWidth(-1), |
| 102 m_maxPreferredLogicalWidth(-1), | 104 m_maxPreferredLogicalWidth(-1), |
| 103 m_inlineBoxWrapper(nullptr) { | 105 m_inlineBoxWrapper(nullptr) { |
| 104 setIsBox(); | 106 setIsBox(); |
| 105 } | 107 } |
| 106 | 108 |
| 107 PaintLayerType LayoutBox::layerTypeRequired() const { | 109 PaintLayerType LayoutBox::layerTypeRequired() const { |
| 108 // hasAutoZIndex only returns true if the element is positioned or a flex-item | 110 // hasAutoZIndex only returns true if the element is positioned or a flex-item |
| 109 // since position:static elements that are not flex-items get their z-index | 111 // since position:static elements that are not flex-items get their z-index |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 } | 506 } |
| 505 | 507 |
| 506 // More IE extensions. clientWidth and clientHeight represent the interior of | 508 // More IE extensions. clientWidth and clientHeight represent the interior of |
| 507 // an object excluding border and scrollbar. | 509 // an object excluding border and scrollbar. |
| 508 DISABLE_CFI_PERF | 510 DISABLE_CFI_PERF |
| 509 LayoutUnit LayoutBox::clientWidth() const { | 511 LayoutUnit LayoutBox::clientWidth() const { |
| 510 // We need to clamp negative values. The scrollbar may be wider than the | 512 // We need to clamp negative values. The scrollbar may be wider than the |
| 511 // padding box. Another reason: While border side values are currently limited | 513 // padding box. Another reason: While border side values are currently limited |
| 512 // to 2^20px (a recent change in the code), if this limit is raised again in | 514 // to 2^20px (a recent change in the code), if this limit is raised again in |
| 513 // the future, we'd have ill effects of saturated arithmetic otherwise. | 515 // the future, we'd have ill effects of saturated arithmetic otherwise. |
| 514 return (m_frameRect.width() - borderLeft() - borderRight() - | 516 return (m_ngPhysicalBoxFragment->Width() - borderLeft() - borderRight() - |
| 515 verticalScrollbarWidth()) | 517 verticalScrollbarWidth()) |
| 516 .clampNegativeToZero(); | 518 .clampNegativeToZero(); |
| 517 } | 519 } |
| 518 | 520 |
| 519 DISABLE_CFI_PERF | 521 DISABLE_CFI_PERF |
| 520 LayoutUnit LayoutBox::clientHeight() const { | 522 LayoutUnit LayoutBox::clientHeight() const { |
| 521 // We need to clamp negative values. The scrollbar may be wider than the | 523 // We need to clamp negative values. The scrollbar may be wider than the |
| 522 // padding box. Another reason: While border side values are currently limited | 524 // padding box. Another reason: While border side values are currently limited |
| 523 // to 2^20px (a recent change in the code), if this limit is raised again in | 525 // to 2^20px (a recent change in the code), if this limit is raised again in |
| 524 // the future, we'd have ill effects of saturated arithmetic otherwise. | 526 // the future, we'd have ill effects of saturated arithmetic otherwise. |
| 525 return (m_frameRect.height() - borderTop() - borderBottom() - | 527 return (m_ngPhysicalBoxFragment->Height() - borderTop() - borderBottom() - |
| 526 horizontalScrollbarHeight()) | 528 horizontalScrollbarHeight()) |
| 527 .clampNegativeToZero(); | 529 .clampNegativeToZero(); |
| 528 } | 530 } |
| 529 | 531 |
| 530 int LayoutBox::pixelSnappedClientWidth() const { | 532 int LayoutBox::pixelSnappedClientWidth() const { |
| 531 return snapSizeToPixel(clientWidth(), location().x() + clientLeft()); | 533 return snapSizeToPixel(clientWidth(), location().x() + clientLeft()); |
| 532 } | 534 } |
| 533 | 535 |
| 534 DISABLE_CFI_PERF | 536 DISABLE_CFI_PERF |
| 535 int LayoutBox::pixelSnappedClientHeight() const { | 537 int LayoutBox::pixelSnappedClientHeight() const { |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 const LayoutPoint& accumulatedOffset) const { | 727 const LayoutPoint& accumulatedOffset) const { |
| 726 rects.push_back(pixelSnappedIntRect(accumulatedOffset, size())); | 728 rects.push_back(pixelSnappedIntRect(accumulatedOffset, size())); |
| 727 } | 729 } |
| 728 | 730 |
| 729 void LayoutBox::absoluteQuads(Vector<FloatQuad>& quads, | 731 void LayoutBox::absoluteQuads(Vector<FloatQuad>& quads, |
| 730 MapCoordinatesFlags mode) const { | 732 MapCoordinatesFlags mode) const { |
| 731 if (LayoutFlowThread* flowThread = flowThreadContainingBlock()) { | 733 if (LayoutFlowThread* flowThread = flowThreadContainingBlock()) { |
| 732 flowThread->absoluteQuadsForDescendant(*this, quads, mode); | 734 flowThread->absoluteQuadsForDescendant(*this, quads, mode); |
| 733 return; | 735 return; |
| 734 } | 736 } |
| 735 quads.push_back( | 737 quads.push_back(localToAbsoluteQuad( |
| 736 localToAbsoluteQuad(FloatRect(0, 0, m_frameRect.width().toFloat(), | 738 FloatRect(0, 0, m_ngPhysicalBoxFragment->Width().toFloat(), |
| 737 m_frameRect.height().toFloat()), | 739 m_ngPhysicalBoxFragment->Height().toFloat()), |
| 738 mode)); | 740 mode)); |
| 739 } | 741 } |
| 740 | 742 |
| 741 FloatRect LayoutBox::localBoundingBoxRectForAccessibility() const { | 743 FloatRect LayoutBox::localBoundingBoxRectForAccessibility() const { |
| 742 return FloatRect(0, 0, m_frameRect.width().toFloat(), | 744 return FloatRect(0, 0, m_ngPhysicalBoxFragment->Width().toFloat(), |
| 743 m_frameRect.height().toFloat()); | 745 m_ngPhysicalBoxFragment->Height().toFloat()); |
| 744 } | 746 } |
| 745 | 747 |
| 746 void LayoutBox::updateLayerTransformAfterLayout() { | 748 void LayoutBox::updateLayerTransformAfterLayout() { |
| 747 // Transform-origin depends on box size, so we need to update the layer | 749 // Transform-origin depends on box size, so we need to update the layer |
| 748 // transform after layout. | 750 // transform after layout. |
| 749 if (hasLayer()) | 751 if (hasLayer()) |
| 750 layer()->updateTransformationMatrix(); | 752 layer()->updateTransformationMatrix(); |
| 751 } | 753 } |
| 752 | 754 |
| 753 LayoutUnit LayoutBox::logicalHeightWithVisibleOverflow() const { | 755 LayoutUnit LayoutBox::logicalHeightWithVisibleOverflow() const { |
| (...skipping 4960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5714 | 5716 |
| 5715 void LayoutBox::MutableForPainting:: | 5717 void LayoutBox::MutableForPainting:: |
| 5716 savePreviousContentBoxSizeAndLayoutOverflowRect() { | 5718 savePreviousContentBoxSizeAndLayoutOverflowRect() { |
| 5717 auto& rareData = layoutBox().ensureRareData(); | 5719 auto& rareData = layoutBox().ensureRareData(); |
| 5718 rareData.m_hasPreviousContentBoxSizeAndLayoutOverflowRect = true; | 5720 rareData.m_hasPreviousContentBoxSizeAndLayoutOverflowRect = true; |
| 5719 rareData.m_previousContentBoxSize = layoutBox().contentBoxRect().size(); | 5721 rareData.m_previousContentBoxSize = layoutBox().contentBoxRect().size(); |
| 5720 rareData.m_previousLayoutOverflowRect = layoutBox().layoutOverflowRect(); | 5722 rareData.m_previousLayoutOverflowRect = layoutBox().layoutOverflowRect(); |
| 5721 } | 5723 } |
| 5722 | 5724 |
| 5723 } // namespace blink | 5725 } // namespace blink |
| OLD | NEW |