Closed Bug 799775 Opened 7 years ago Closed 7 years ago

"-moz-order" needs to be inherited by ::-moz-table-outer in ua.css

Categories

(Core :: Layout, defect)

x86_64
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla19

People

(Reporter: dholbert, Assigned: dholbert)

References

Details

Attachments

(2 files)

ua.css needs to make table-outer frames inherit "-moz-order", alongside the existing rule to inherit "-moz-align-self".

This is necessary for table frames to obey "order" inside of a flexbox, for reordering purposes.

DETAILS:
The outermost frame on a table -- the frame that a flex container interacts with -- is the special "table-outer" frame,  which isn't directly stylable by content.  Its style-context's parent is the table element's style-context (though the parent/child relationship is reversed in the frame tree, paradoxically).

So, if we specify "order" on a table element and we want that to have a visible effect, we need the table-outer frame to inherit that "order" value, since that's the frame that the flex container ultimately interacts with.
Flags: in-testsuite?
Depends on: css3-flexbox
First part: just a mochitest for general "order" behavior (reordering content within a flexbox).  (Wrote this as part of bug 666041, but didn't land it yet.)  The test reorders flex items with a variety of "order" values and compares their rendering against a reference case using WindowSnapshot.js.

I'm including this mochitest here (on this bug) because the *actual* regression-test here will depend on this mochitest. (I'll create a copy of the mochitest, using tables instead of blocks as flex items.)
Assignee: nobody → dholbert
Status: NEW → ASSIGNED
Attachment #670107 - Flags: review?(dbaron)
Attachment #670107 - Attachment description: part 1: mochitest for 'order' → part 1: general mochitest for 'order'
Here's the fix (adding a line to ua.css), and an "hg cp" of the other patch's mochitest into a table-specific one.

I've made this patch's table-specific mochitest finish early if it detects that the flexbox pref isn't already enabled (i.e. at startup).  I did this because because this test relies on the ua.css tweak, which only takes effect if the flexbox pref is enabled at startup (when ua.css is parsed).
Attachment #670155 - Flags: review?(dbaron)
Comment on attachment 670107 [details] [diff] [review]
part 1: general mochitest for 'order'

Was including property_database.js a mistake?

r=dbaron (rubber-stamp)
Attachment #670107 - Flags: review?(dbaron) → review+
Attachment #670155 - Flags: review?(dbaron) → review+
Maybe we could do something to always enable the parsing of the flexbox properties in the UA sheet so that we don't have the weird problems here?
(In reply to David Baron [:dbaron] (recovering from illness; hopefully back Oct 8, but with backlog) from comment #3)
> Comment on attachment 670107 [details] [diff] [review]
> part 1: general mochitest for 'order'
> 
> Was including property_database.js a mistake?

You're right, property_database.js isn't needed -- thanks, removed.

Landed:
  https://hg.mozilla.org/integration/mozilla-inbound/rev/7e4cdcd41798
  https://hg.mozilla.org/integration/mozilla-inbound/rev/f858236f4e62
https://hg.mozilla.org/mozilla-central/rev/7e4cdcd41798
https://hg.mozilla.org/mozilla-central/rev/f858236f4e62
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla19
You need to log in before you can comment on or make changes to this bug.