OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
10 * | 10 * |
(...skipping 1761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1772 void FrameView::layoutOrthogonalWritingModeRoots() | 1772 void FrameView::layoutOrthogonalWritingModeRoots() |
1773 { | 1773 { |
1774 for (auto& root : m_orthogonalWritingModeRootList.ordered()) { | 1774 for (auto& root : m_orthogonalWritingModeRootList.ordered()) { |
1775 ASSERT(root->isBox() && toLayoutBox(*root).isOrthogonalWritingModeRoot() ); | 1775 ASSERT(root->isBox() && toLayoutBox(*root).isOrthogonalWritingModeRoot() ); |
1776 if (!root->needsLayout() | 1776 if (!root->needsLayout() |
1777 || root->isOutOfFlowPositioned() | 1777 || root->isOutOfFlowPositioned() |
1778 || root->isColumnSpanAll() | 1778 || root->isColumnSpanAll() |
1779 || !root->styleRef().logicalHeight().isIntrinsicOrAuto()) { | 1779 || !root->styleRef().logicalHeight().isIntrinsicOrAuto()) { |
1780 continue; | 1780 continue; |
1781 } | 1781 } |
1782 LayoutState layoutState(*root); | 1782 |
1783 root->layout(); | 1783 // Floating objects are cached and re-created when containing block |
1784 // layouts. At this point, it may contain old or even detached objects. | |
1785 if (LayoutBlock* cb = root->containingBlock()) { | |
1786 if (cb->isLayoutBlockFlow()) | |
1787 toLayoutBlockFlow(cb)->removeFloatingObjects(); | |
rhogan
2016/06/06 09:41:02
Per my note on the bug, we should skip orthogonal
| |
1788 } | |
1789 | |
1790 layoutFromRootObject(*root); | |
1784 } | 1791 } |
1785 } | 1792 } |
1786 | 1793 |
1787 void FrameView::scheduleRelayout() | 1794 void FrameView::scheduleRelayout() |
1788 { | 1795 { |
1789 ASSERT(m_frame->view() == this); | 1796 ASSERT(m_frame->view() == this); |
1790 RELEASE_ASSERT(!isInPerformLayout()); | 1797 RELEASE_ASSERT(!isInPerformLayout()); |
1791 | 1798 |
1792 if (!m_layoutSchedulingEnabled) | 1799 if (!m_layoutSchedulingEnabled) |
1793 return; | 1800 return; |
(...skipping 2321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4115 return m_subtreeThrottled || (m_hiddenForThrottling && m_crossOriginForThrot tling); | 4122 return m_subtreeThrottled || (m_hiddenForThrottling && m_crossOriginForThrot tling); |
4116 } | 4123 } |
4117 | 4124 |
4118 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const | 4125 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const |
4119 { | 4126 { |
4120 ASSERT(!layoutViewItem().isNull()); | 4127 ASSERT(!layoutViewItem().isNull()); |
4121 return *layoutView(); | 4128 return *layoutView(); |
4122 } | 4129 } |
4123 | 4130 |
4124 } // namespace blink | 4131 } // namespace blink |
OLD | NEW |