Closed Bug 738007 Opened 13 years ago Closed 13 years ago

Non-functional tweaks to nsCSSFrameConstructor::FlushAccumulatedBlock

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla14

People

(Reporter: dholbert, Assigned: dholbert)

References

Details

Attachments

(1 file)

Attached patch patch v1Splinter Review
I'll be customizing nsCSSFrameConstructor::FlushAccumulatedBlock() to work for flexbox as well as MathML. I made a few non-flexbox-related (non-functional) tweaks to that function & its caller, and I figured it'd be good to make that its own patch, so that the flexbox patches can stay flexbox-specific. Patch attached. The changes are: (a) s/currentBlock/currentBlockItems/ to make it clear it's a nsFrameItems instance (b) Make FlushAccumulatedBlock take nsFrameItems& instead of nsFrameItems*, to match the convention. (No one else takes a nsFrameItems*, and FlushAccumulatedBlock was actually having to dereference the pointer to pass it to other functions) (c) Use a local variable for the anon pseudoclass. (I'll change this variable's value to something flexbox-specific in the flexbox patch) (d) indentation cleanup
Attachment #608066 - Flags: review?(bzbarsky)
Assignee: nobody → dholbert
Status: NEW → ASSIGNED
OS: Linux → All
Hardware: x86_64 → All
Comment on attachment 608066 [details] [diff] [review] patch v1 r=me I just realized that this function wraps up the block of an {ib} split with the inlines. I'm pretty sure that's not the behavior you want for flexbox; I'm not sure why mathml is doing it (and I would argue that mathml is wrong to do it, but check the blame on that IsFrameSpecial check?).
Attachment #608066 - Flags: review?(bzbarsky) → review+
(In reply to Boris Zbarsky (:bz) from comment #1) > Comment on attachment 608066 [details] [diff] [review] > patch v1 > > r=me > > I just realized that this function wraps up the block of an {ib} split with > the inlines. I'm pretty sure that's not the behavior you want for flexbox; I think it is what the spec calls for, actually. See this example in the spec: <div style="display:flexbox"> [...SNIP...] <!-- flexbox item: anonymous block around inline content --> anonymous item 7.1 <span id="item7.1"> text 7.2 <div id="not-an-item7.3">block</div> text 7.4 </span> with this description: Notice that block element "not-an-item7.3" is not a separate flexbox item, because it is contained inside an inline element which is being wrapped into an anonymous flexbox item. (^ I fixed a typo in the prose manually, per http://lists.w3.org/Archives/Public/www-style/2012Mar/0523.html so that it makes sense) So: if we have <span>, we want to wrap it & its entire contents in a single anonymous block. Its block-level children do not create their own flexbox items.
> See this example in the spec The example contradicts the normative spec text. Please raise a spec issue? If that's the behavior we want for {ib} splits, then we should be able to do the block-wrapping on the frame construction item list instead, which would solve the float problems completely, assuming we want the spec-described float behavior.
(Landed this bug's patch in any case, since it's not flexbox-specific: https://hg.mozilla.org/integration/mozilla-inbound/rev/149297a4bbc2 )
Target Milestone: --- → mozilla14
(In reply to Boris Zbarsky (:bz) from comment #3) > > See this example in the spec > > The example contradicts the normative spec text. Please raise a spec issue? Done: http://lists.w3.org/Archives/Public/www-style/2012Mar/0528.html
I also filed a spec bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=16483 (overkill perhaps)
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: