DescriptionA new LayoutState should never locate a containing flow thread on its own.
If the parent (m_next) LayoutState doesn't have a containing flow thread set,
and the child doesn't establish one, the child shouldn't have one either. This
is crucial when doing subtree layouts directly from a FrameView, skipping any
ancestor fragmentation contexts that might be there. Changing the contents of
an INPUT element triggers this.
The bottom line here is: If we really want to re-lay out parts of a multicol
container, we better pretend that we're not inside a fragmentation context at
all.
This is perfectly safe, as long as the object we're laying out is unsplittable
and hasn't changed its own dimensions (which is true when changing the value of
an INPUT element). We have been doing this for a long time, but there was a bug
hidden in there, that got more easily exposed by
https://codereview.chromium.org/1387553002 , where we disallow strut propagation
to flex boxes, and INPUT type="number" is implemented using flexbox.
R=leviw@chromium.org
Committed: https://crrev.com/0c6ee20854e81554570cf439836af9f9be9c9ce5
Cr-Commit-Position: refs/heads/master@{#353291}
Patch Set 1 #Patch Set 2 : code review. More ahem, more hotpink, slightly less random numbers. #
Messages
Total messages: 7 (2 generated)
|