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

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

Issue 2304143002: Add speculative CHECKs to track down a failing ASSERT (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 1156
1157 void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc ope& layoutScope, LayoutUnit beforeEdge, LayoutUnit afterEdge) 1157 void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc ope& layoutScope, LayoutUnit beforeEdge, LayoutUnit afterEdge)
1158 { 1158 {
1159 dirtyForLayoutFromPercentageHeightDescendants(layoutScope); 1159 dirtyForLayoutFromPercentageHeightDescendants(layoutScope);
1160 1160
1161 BlockChildrenLayoutInfo layoutInfo(this, beforeEdge, afterEdge); 1161 BlockChildrenLayoutInfo layoutInfo(this, beforeEdge, afterEdge);
1162 MarginInfo& marginInfo = layoutInfo.marginInfo(); 1162 MarginInfo& marginInfo = layoutInfo.marginInfo();
1163 1163
1164 LayoutObject* childToExclude = layoutSpecialExcludedChild(relayoutChildren, layoutScope); 1164 LayoutObject* childToExclude = layoutSpecialExcludedChild(relayoutChildren, layoutScope);
1165 1165
1166 LayoutBox* next = firstChildBox(); 1166 LayoutBox* next = firstChildBox();
mstensho (USE GERRIT) 2016/09/02 18:10:35 I don't have permission to see the bug report, but
foolip 2016/09/02 18:59:48 Yeah, I had CHECK(slowFirstChild->isBox()) here, b
1167 LayoutBox* lastNormalFlowChild = nullptr; 1167 LayoutBox* lastNormalFlowChild = nullptr;
1168 1168
1169 while (next) { 1169 while (next) {
1170 LayoutBox* child = next; 1170 LayoutBox* child = next;
1171 // TODO(foolip): Speculative CHECK to crash if any non-LayoutBox
1172 // children ever appear, the childrenInline() check at the call site
1173 // should make this impossible. crbug.com/632848
1174 CHECK(child->nextSibling()->isBox());
1171 next = child->nextSiblingBox(); 1175 next = child->nextSiblingBox();
1172 1176
1173 child->setMayNeedPaintInvalidation(); 1177 child->setMayNeedPaintInvalidation();
1174 1178
1175 if (childToExclude == child) 1179 if (childToExclude == child)
1176 continue; // Skip this child, since it will be positioned by the spe cialized subclass (ruby runs). 1180 continue; // Skip this child, since it will be positioned by the spe cialized subclass (ruby runs).
1177 1181
1178 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *child); 1182 updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, *child);
1179 1183
1180 if (child->isOutOfFlowPositioned()) { 1184 if (child->isOutOfFlowPositioned()) {
(...skipping 2562 matching lines...) Expand 10 before | Expand all | Expand 10 after
3743 3747
3744 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState); 3748 return LayoutBlock::invalidatePaintIfNeeded(paintInvalidationState);
3745 } 3749 }
3746 3750
3747 void LayoutBlockFlow::invalidateDisplayItemClients(PaintInvalidationReason inval idationReason) const 3751 void LayoutBlockFlow::invalidateDisplayItemClients(PaintInvalidationReason inval idationReason) const
3748 { 3752 {
3749 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients(invalidationRe ason); 3753 BlockFlowPaintInvalidator(*this).invalidateDisplayItemClients(invalidationRe ason);
3750 } 3754 }
3751 3755
3752 } // namespace blink 3756 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698