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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp

Issue 2877703003: Improve LayoutMultiColumnFlowThread::IsPageLogicalHeightKnown(). (Closed)
Patch Set: Created 3 years, 7 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 if (!preferred_logical_widths_were_dirty && PreferredLogicalWidthsDirty()) { 438 if (!preferred_logical_widths_were_dirty && PreferredLogicalWidthsDirty()) {
439 // The only thing that should dirty preferred widths at this point is the 439 // The only thing that should dirty preferred widths at this point is the
440 // addition of overflow:auto scrollbars in a descendant. To avoid a 440 // addition of overflow:auto scrollbars in a descendant. To avoid a
441 // potential infinite loop, run layout again with auto scrollbars frozen 441 // potential infinite loop, run layout again with auto scrollbars frozen
442 // in their current state. 442 // in their current state.
443 PaintLayerScrollableArea::FreezeScrollbarsScope freeze_scrollbars; 443 PaintLayerScrollableArea::FreezeScrollbarsScope freeze_scrollbars;
444 relayout_children |= UpdateLogicalWidthAndColumnWidth(); 444 relayout_children |= UpdateLogicalWidthAndColumnWidth();
445 LayoutChildren(relayout_children, layout_scope); 445 LayoutChildren(relayout_children, layout_scope);
446 } 446 }
447 447
448 if (flow_thread && flow_thread->ColumnHeightsChanged()) { 448 if (flow_thread && !flow_thread->FinishLayout()) {
449 SetChildNeedsLayout(kMarkOnlyThis); 449 SetChildNeedsLayout(kMarkOnlyThis);
450 continue; 450 continue;
451 } 451 }
452 452
453 if (ShouldBreakAtLineToAvoidWidow()) { 453 if (ShouldBreakAtLineToAvoidWidow()) {
454 SetEverHadLayout(); 454 SetEverHadLayout();
455 continue; 455 continue;
456 } 456 }
457 break; 457 break;
458 } while (true); 458 } while (true);
(...skipping 4210 matching lines...) Expand 10 before | Expand all | Expand 10 after
4669 return LayoutBlock::DeprecatedInvalidatePaint(paint_invalidation_state); 4669 return LayoutBlock::DeprecatedInvalidatePaint(paint_invalidation_state);
4670 } 4670 }
4671 4671
4672 void LayoutBlockFlow::InvalidateDisplayItemClients( 4672 void LayoutBlockFlow::InvalidateDisplayItemClients(
4673 PaintInvalidationReason invalidation_reason) const { 4673 PaintInvalidationReason invalidation_reason) const {
4674 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients( 4674 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients(
4675 invalidation_reason); 4675 invalidation_reason);
4676 } 4676 }
4677 4677
4678 } // namespace blink 4678 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698