Index: third_party/WebKit/Source/core/layout/ng/ng_units.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_units.h b/third_party/WebKit/Source/core/layout/ng/ng_units.h |
index 02774a38c2412371d75d6f23bc351e41b5e1ae3b..2c515e39626d53f217f2a3fc456c0756f13eaaaa 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_units.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_units.h |
@@ -184,6 +184,24 @@ struct CORE_EXPORT NGExclusion { |
Type type; |
}; |
+struct CORE_EXPORT NGExclusions { |
+ Vector<std::unique_ptr<const NGExclusion>> storage; |
+ |
+ // Last left/right float exclusions are used to enforce the top edge alignment |
+ // rule for floats and for the support of CSS "clear" property. |
+ const NGExclusion* last_left_float; // Owned by storage. |
+ const NGExclusion* last_right_float; // Owned by storage. |
+ |
+ void Add(const NGExclusion& exclusion) { |
+ storage.append(makeUnique<NGExclusion>(exclusion)); |
+ if (exclusion.type == NGExclusion::NG_FLOAT_LEFT) { |
+ last_left_float = storage.rbegin()->get(); |
+ } else if (exclusion.type == NGExclusion::NG_FLOAT_RIGHT) { |
+ last_right_float = storage.rbegin()->get(); |
+ } |
+ } |
+}; |
+ |
struct NGPixelSnappedPhysicalRect { |
int top; |
int left; |