Chromium Code Reviews| 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. 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 126 | 126 |
| 127 void LayoutBox::willBeDestroyed() | 127 void LayoutBox::willBeDestroyed() |
| 128 { | 128 { |
| 129 clearOverrideSize(); | 129 clearOverrideSize(); |
| 130 clearContainingBlockOverrideSize(); | 130 clearContainingBlockOverrideSize(); |
| 131 clearExtraInlineAndBlockOffests(); | 131 clearExtraInlineAndBlockOffests(); |
| 132 | 132 |
| 133 if (isOutOfFlowPositioned()) | 133 if (isOutOfFlowPositioned()) |
| 134 LayoutBlock::removePositionedObject(this); | 134 LayoutBlock::removePositionedObject(this); |
| 135 removeFromPercentHeightContainer(); | 135 removeFromPercentHeightContainer(); |
| 136 if (!documentBeingDestroyed() && isOrthogonalWritingModeRoot()) | |
| 137 unmarkOrthogonalWritingModeRoot(); | |
| 136 | 138 |
| 137 ShapeOutsideInfo::removeInfo(*this); | 139 ShapeOutsideInfo::removeInfo(*this); |
| 138 | 140 |
| 139 LayoutBoxModelObject::willBeDestroyed(); | 141 LayoutBoxModelObject::willBeDestroyed(); |
| 140 } | 142 } |
| 141 | 143 |
| 144 void LayoutBox::insertedIntoTree() | |
| 145 { | |
| 146 LayoutBoxModelObject::insertedIntoTree(); | |
| 147 | |
| 148 if (isOrthogonalWritingModeRoot()) | |
| 149 markOrthogonalWritingModeRoot(); | |
| 150 } | |
| 151 | |
| 152 void LayoutBox::willBeRemovedFromTree() | |
| 153 { | |
| 154 if (!documentBeingDestroyed() && isOrthogonalWritingModeRoot()) | |
|
leviw_travelin_and_unemployed
2016/02/02 05:03:40
May be worth switching this ordering? I think it's
kojii
2016/02/02 23:32:50
Done.
| |
| 155 unmarkOrthogonalWritingModeRoot(); | |
| 156 | |
| 157 LayoutBoxModelObject::willBeRemovedFromTree(); | |
| 158 } | |
| 159 | |
| 142 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() | 160 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() |
| 143 { | 161 { |
| 144 ASSERT(isFloatingOrOutOfFlowPositioned()); | 162 ASSERT(isFloatingOrOutOfFlowPositioned()); |
| 145 | 163 |
| 146 if (documentBeingDestroyed()) | 164 if (documentBeingDestroyed()) |
| 147 return; | 165 return; |
| 148 | 166 |
| 149 if (isFloating()) { | 167 if (isFloating()) { |
| 150 LayoutBlockFlow* parentBlockFlow = nullptr; | 168 LayoutBlockFlow* parentBlockFlow = nullptr; |
| 151 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr = curr->parent()) { | 169 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr = curr->parent()) { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 216 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we can safely cache the horizontal | 234 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we can safely cache the horizontal |
| 217 // writing mode value before style change here. | 235 // writing mode value before style change here. |
| 218 bool oldHorizontalWritingMode = isHorizontalWritingMode(); | 236 bool oldHorizontalWritingMode = isHorizontalWritingMode(); |
| 219 | 237 |
| 220 LayoutBoxModelObject::styleDidChange(diff, oldStyle); | 238 LayoutBoxModelObject::styleDidChange(diff, oldStyle); |
| 221 | 239 |
| 222 const ComputedStyle& newStyle = styleRef(); | 240 const ComputedStyle& newStyle = styleRef(); |
| 223 if (needsLayout() && oldStyle) | 241 if (needsLayout() && oldStyle) |
| 224 removeFromPercentHeightContainer(); | 242 removeFromPercentHeightContainer(); |
| 225 | 243 |
| 226 if (oldHorizontalWritingMode != isHorizontalWritingMode()) | 244 if (oldHorizontalWritingMode != isHorizontalWritingMode()) { |
| 245 if (parent()) { | |
| 246 if (isOrthogonalWritingModeRoot()) | |
| 247 markOrthogonalWritingModeRoot(); | |
| 248 else | |
| 249 unmarkOrthogonalWritingModeRoot(); | |
| 250 } | |
| 251 | |
| 227 clearPercentHeightDescendants(); | 252 clearPercentHeightDescendants(); |
| 253 } | |
| 228 | 254 |
| 229 // If our zoom factor changes and we have a defined scrollLeft/Top, we need to adjust that value into the | 255 // If our zoom factor changes and we have a defined scrollLeft/Top, we need to adjust that value into the |
| 230 // new zoomed coordinate space. | 256 // new zoomed coordinate space. |
| 231 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e ffectiveZoom() && layer()) { | 257 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e ffectiveZoom() && layer()) { |
| 232 if (int left = layer()->scrollableArea()->scrollXOffset()) { | 258 if (int left = layer()->scrollableArea()->scrollXOffset()) { |
| 233 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom() ; | 259 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom() ; |
| 234 layer()->scrollableArea()->scrollToXOffset(left); | 260 layer()->scrollableArea()->scrollToXOffset(left); |
| 235 } | 261 } |
| 236 if (int top = layer()->scrollableArea()->scrollYOffset()) { | 262 if (int top = layer()->scrollableArea()->scrollYOffset()) { |
| 237 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); | 263 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); |
| (...skipping 3689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3927 | 3953 |
| 3928 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop e) | 3954 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop e) |
| 3929 { | 3955 { |
| 3930 ASSERT(!needsLayout()); | 3956 ASSERT(!needsLayout()); |
| 3931 // If fragmentation height has changed, we need to lay out. No need to enter the layoutObject if it | 3957 // If fragmentation height has changed, we need to lay out. No need to enter the layoutObject if it |
| 3932 // is childless, though. | 3958 // is childless, though. |
| 3933 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) | 3959 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) |
| 3934 layoutScope.setChildNeedsLayout(this); | 3960 layoutScope.setChildNeedsLayout(this); |
| 3935 } | 3961 } |
| 3936 | 3962 |
| 3963 void LayoutBox::markOrthogonalWritingModeRoot() | |
| 3964 { | |
| 3965 ASSERT(frameView()); | |
| 3966 frameView()->addOrthogonalWritingModeRoot(*this); | |
| 3967 } | |
| 3968 | |
| 3969 void LayoutBox::unmarkOrthogonalWritingModeRoot() | |
| 3970 { | |
| 3971 ASSERT(frameView()); | |
| 3972 frameView()->removeOrthogonalWritingModeRoot(*this); | |
| 3973 } | |
| 3974 | |
| 3937 void LayoutBox::addVisualEffectOverflow() | 3975 void LayoutBox::addVisualEffectOverflow() |
| 3938 { | 3976 { |
| 3939 if (!style()->hasVisualOverflowingEffect()) | 3977 if (!style()->hasVisualOverflowingEffect()) |
| 3940 return; | 3978 return; |
| 3941 | 3979 |
| 3942 // Add in the final overflow with shadows, outsets and outline combined. | 3980 // Add in the final overflow with shadows, outsets and outline combined. |
| 3943 LayoutRect visualEffectOverflow = borderBoxRect(); | 3981 LayoutRect visualEffectOverflow = borderBoxRect(); |
| 3944 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); | 3982 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); |
| 3945 addVisualOverflow(visualEffectOverflow); | 3983 addVisualOverflow(visualEffectOverflow); |
| 3946 } | 3984 } |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4640 | 4678 |
| 4641 void LayoutBox::clearPercentHeightDescendants() | 4679 void LayoutBox::clearPercentHeightDescendants() |
| 4642 { | 4680 { |
| 4643 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { | 4681 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde r(this)) { |
| 4644 if (curr->isBox()) | 4682 if (curr->isBox()) |
| 4645 toLayoutBox(curr)->removeFromPercentHeightContainer(); | 4683 toLayoutBox(curr)->removeFromPercentHeightContainer(); |
| 4646 } | 4684 } |
| 4647 } | 4685 } |
| 4648 | 4686 |
| 4649 } // namespace blink | 4687 } // namespace blink |
| OLD | NEW |