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

Side by Side Diff: Source/core/layout/LayoutFlowThread.h

Issue 1328923002: Avoid stack overflow triggered by out-of-band layout of flexbox child. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update test. The previous one started to pass, because of https://codereview.chromium.org/129593300… Created 5 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. 2 * Copyright (C) 2011 Adobe Systems Incorporated. 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above 8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following 9 * copyright notice, this list of conditions and the following
10 * disclaimer. 10 * disclaimer.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 bool supportsPaintInvalidationStateCachedOffsets() const override { return f alse; } 57 bool supportsPaintInvalidationStateCachedOffsets() const override { return f alse; }
58 58
59 static LayoutFlowThread* locateFlowThreadContainingBlockOf(const LayoutObjec t&); 59 static LayoutFlowThread* locateFlowThreadContainingBlockOf(const LayoutObjec t&);
60 60
61 void layout() override; 61 void layout() override;
62 62
63 // Always create a Layer for the LayoutFlowThread so that we 63 // Always create a Layer for the LayoutFlowThread so that we
64 // can easily avoid drawing the children directly. 64 // can easily avoid drawing the children directly.
65 DeprecatedPaintLayerType layerTypeRequired() const final { return NormalDepr ecatedPaintLayer; } 65 DeprecatedPaintLayerType layerTypeRequired() const final { return NormalDepr ecatedPaintLayer; }
66 66
67 // Skip past a column spanner during flow thread layout. Spanners are not la id out inside the
68 // flow thread, since the flow thread is not in a spanner's containing block chain (since the
69 // containing block is the multicol container).
70 virtual void skipColumnSpanner(LayoutBox*, LayoutUnit logicalTopInFlowThread ) { }
71
72 virtual void flowThreadDescendantWasInserted(LayoutObject*) { } 67 virtual void flowThreadDescendantWasInserted(LayoutObject*) { }
73 virtual void flowThreadDescendantWillBeRemoved(LayoutObject*) { } 68 virtual void flowThreadDescendantWillBeRemoved(LayoutObject*) { }
74 virtual void flowThreadDescendantStyleWillChange(LayoutObject*, StyleDiffere nce, const ComputedStyle& newStyle) { } 69 virtual void flowThreadDescendantStyleWillChange(LayoutObject*, StyleDiffere nce, const ComputedStyle& newStyle) { }
75 virtual void flowThreadDescendantStyleDidChange(LayoutObject*, StyleDifferen ce, const ComputedStyle& oldStyle) { } 70 virtual void flowThreadDescendantStyleDidChange(LayoutObject*, StyleDifferen ce, const ComputedStyle& oldStyle) { }
76 71
77 bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) final; 72 bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) final;
78 73
79 virtual void addColumnSetToThread(LayoutMultiColumnSet*) = 0; 74 virtual void addColumnSetToThread(LayoutMultiColumnSet*) = 0;
80 virtual void removeColumnSetFromThread(LayoutMultiColumnSet*); 75 virtual void removeColumnSetFromThread(LayoutMultiColumnSet*);
81 76
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 }; 154 };
160 155
161 template <> struct ValueToString<LayoutMultiColumnSet*> { 156 template <> struct ValueToString<LayoutMultiColumnSet*> {
162 static String string(const LayoutMultiColumnSet* value) { return String::for mat("%p", value); } 157 static String string(const LayoutMultiColumnSet* value) { return String::for mat("%p", value); }
163 }; 158 };
164 #endif 159 #endif
165 160
166 } // namespace blink 161 } // namespace blink
167 162
168 #endif // LayoutFlowThread_h 163 #endif // LayoutFlowThread_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutBlockFlow.cpp ('k') | Source/core/layout/LayoutMultiColumnFlowThread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698