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

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2025543002: Fix when orthogonal writing mode roots have floating siblings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix removeFloatingOrPositionedChildFromBlockLists Created 4 years, 6 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698