Commit Graph

276 Commits

Author SHA1 Message Date
Ting-Yu Lin
3b9a7090d9 Bug 1277129 Part 6b - Rename rendContext to mRenderingContext in SizeComputationInput. r=dbaron
MozReview-Commit-ID: LczLJDtDncy
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
a16062e5d0 Bug 1277129 Part 6a - Rename frame to mFrame in SizeComputationInput. r=dbaron
MozReview-Commit-ID: 3SXZ4qEZJc
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
bb0825b5c7 Bug 1277129 Part 5c - Rename nsHTMLReflowMetrics to ReflowOutput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename "nsHTMLReflowMetrics" "ReflowOutput"

MozReview-Commit-ID: 2HBb7DkooH5
2016-07-21 18:36:38 +08:00
Ting-Yu Lin
0623510910 Bug 1277129 Part 1d - Rename nsCSSOffsetState to SizeComputationInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsCSSOffsetState SizeComputationInput

MozReview-Commit-ID: GUJ99qNiSwD
2016-07-21 18:36:35 +08:00
Ting-Yu Lin
10912a51e3 Bug 1277129 Part 1c - Rename nsHTMLReflowState to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsHTMLReflowState ReflowInput

MozReview-Commit-ID: 9r9vdVv1pXc
2016-07-21 18:36:35 +08:00
Brad Werth
3a43ab0c26 Bug 1241932 - Expose decoded CSS grid line properties via a Chrome API. r=mats 2016-07-07 11:38:12 -07:00
Brad Werth
adc62526b9 Bug 1241932 - Expose decoded CSS grid track properties in a Chrome API. r=heycam, r=khuey 2016-07-06 11:45:18 -07:00
Carsten "Tomcat" Book
9a37bd4379 Backed out changeset 3de5b79d7373 (bug 1241932) for bustage 2016-07-06 06:00:03 +02:00
Carsten "Tomcat" Book
01cccf1928 Backed out changeset e98d1ac584d6 (bug 1241932) 2016-07-06 05:59:52 +02:00
Brad Werth
c553a45f33 Bug 1241932 - Expose decoded CSS grid line properties via a Chrome API. r=mats 2016-07-05 13:35:52 -07:00
Brad Werth
0c294da58f Bug 1241932 - Expose decoded CSS grid track properties in a Chrome API. r=heycam, r=khuey 2016-06-24 12:20:05 -07:00
Brad Werth
69ccb7e3db Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07:00
Phil Ringnalda
ae1f6b874d Back out changeset 0bb00282a4c2 (bug 1243559) for widespread SVG assertion failures
CLOSED TREE
2016-06-22 18:45:08 -07:00
Brad Werth
665cd94da6 Bug 1243559 - Removes static casts from calls to FrameProperties::Get, ::Set, and ::Remove, and forces callers to use the type associated with the property. r=dbaron 2016-06-21 13:17:11 -07:00
Mats Palmgren
a5d840bd7c Bug 1174569 - [css-grid] Use the resolved column sizes to guide intrinsic row sizing. r=dholbert 2016-06-20 13:28:03 +02:00
Jonathan Watt
9c5b8de022 Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Mats Palmgren
fac498f05e Bug 1278429 - [css-grid] Align a fragmented grid item with 'align-self' that is anchored at the end ('last-baseline', 'end', etc) at the end of its last track. r=dholbert 2016-06-10 02:56:23 +02:00
Mats Palmgren
b796f2d937 Bug 1278007 - [css-grid] Reset all baseline bits when we decide a grid item doesn't participate in [first|last]-baseline alignment. r=dholbert 2016-06-03 17:30:00 +02:00
Mats Palmgren
3cceaca087 Bug 1256429 part 2 - [css-grid] Implement Grid layout for align|justify-content:baseline|last-baseline (aka "Baseline Content-Alignment"). r=dholbert 2016-06-02 17:46:59 +02:00
Mats Palmgren
d07221713b Bug 1221525 part 4 - [css-grid] Implement Grid layout for align|justify-self:baseline|last-baseline (aka "Baseline Self-Alignment"). r=dholbert 2016-06-02 17:46:58 +02:00
Mats Palmgren
ccde7a70c4 Bug 1221525 part 3 - [css-grid] Caclulate the baseline offset values and baseline subtree alignment. r=dholbert 2016-06-02 17:46:58 +02:00
Mats Palmgren
bd13ef6292 Bug 1221525 part 2 - [css-grid] Add GridItemInfo::mState member (for each axis) and make the mIsFlexing bool into a state flag, and add baseline state flags. Also add a baseline offset member. r=dholbert 2016-06-02 17:46:58 +02:00
Mats Palmgren
55b6b9f698 Bug 1221525 part 1 - [css-grid] Break out the grid item measuring reflow code to a separate function. Also, make the size contribution functions take a GridItemInfo instead of a frame, for use in later parts (idempotent patch). r=dholbert 2016-06-02 17:46:58 +02:00
Mats Palmgren
607a612a69 Bug 1266268 - [css-grid] Implement <percentage> for grid gap properties. r=dholbert 2016-05-25 10:48:52 +02:00
Mats Palmgren
1f89536089 Bug 1271392 part 6 - [css-grid] Remove now dead code. r=dholbert 2016-05-18 13:49:33 +02:00
Mats Palmgren
b0713aff57 Bug 1271392 part 4 - [css-grid] Make sure a grid item's last fragment fills its grid area. r=dholbert 2016-05-18 13:49:33 +02:00
Mats Palmgren
0c1d803abf Bug 1271392 part 2 - [css-grid] When pulling up grid item, make sure its next-in-flow (if any) is in our next-in-flow. r=dholbert 2016-05-18 13:49:33 +02:00
Mats Palmgren
a8557e4839 Bug 1271392 part 1 - [css-grid] Make grid item 'stretch' not require an extra reflow. r=dholbert
This part removes the 'stretch' logic in AlignJustifySelf and implements
it in nsLayoutUtils::ComputeSizeWithIntrinsicDimensions /
nsFrame::ComputeSize instead.
2016-05-18 13:49:33 +02:00
Mats Palmgren
bd8f5a44e6 Bug 1267555 part 1 - [css-grid] Make grid-aligned abs.pos. descendants that span from 'auto' to the first/last line stretch to the outer edge of the first/last track respectively. r=dholbert 2016-04-28 21:21:19 +02:00
Mats Palmgren
3b186e2538 Bug 1266131 part 1 - [css-grid] 'order' doesn't apply to grid-aligned abs.pos. descendants (anymore). r=dholbert 2016-04-25 18:43:04 +02:00
Mats Palmgren
ba912aa93a Bug 1264067 - [css-grid] 'fr' min-sizing is now invalid. r=dholbert 2016-04-25 18:43:04 +02:00
Mats Palmgren
c15da82fa3 Bug 1264607 - Treat track size <percentage> values as 'auto' when the grid container size is indefinite. r=dholbert 2016-04-16 18:16:24 +02:00
Mats Palmgren
f7956eacdd Bug 1260614 - Cleanup grid item iterator Reset() calls. r=dholbert 2016-04-01 02:08:15 +02:00
Mats Palmgren
4335b255b0 Bug 1233191 part 1 - Implement sanity checks on the flex/grid container child frame list. Remove the anon grid item sanity checks that the frame constructor now does instead. r=dholbert 2016-03-18 19:52:08 +01:00
Mats Palmgren
230cb075bb Bug 1256040 - Bustage fix. r=me 2016-03-13 00:47:41 +01:00
Mats Palmgren
dfdc2a07be Bug 1256040 - Fix some nsGridContainerFrame.h/cpp compile errors in non-unified build. r=dholbert 2016-03-13 00:30:36 +01:00
Mats Palmgren
18ebf44783 Bug 1144096 part 25 - [css-grid] Enable fragmentation to occur by reporting our actual reflow status. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
562ae29032 Bug 1144096 part 24 - [css-grid] Move the child frame merging code at the start of ReflowOverflowContainerChildren into a new method: DrainExcessOverflowContainersList. Make both take a param so that we can override how the OC child lists are merged together (normally just an Append; MergeSortedFrameLists for Grid). r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
a8fc081d26 Bug 1144096 part 23 - [css-grid] A grid container fragment that is an overflow container can't be INCOMPLETE, only OVERFLOW_INCOMPLETE and it should always have zero BSize. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
3b2dcdc462 Bug 1144096 part 22 - [css-grid] Check NS_INLINE_IS_BREAK_BEFORE before checking other completion status. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
d580a9b157 Bug 1144096 part 21 - [css-grid] Deal with dynamically inserted/appended/removed child frames. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
f0ace1cd6f Bug 1144096 part 20 - [css-grid] Sanity check our child lists before starting a Reflow (DEBUG only). r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
1fdb60ad8b Bug 1144096 part 19 - [css-grid] Sanity check the initial child lists we get from the frame constructor (DEBUG only). r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
21bdfc0c59 Bug 1144096 part 18 - [css-grid] Fix a couple of bugs in how we handle child existing continuations when pushing/pulling children. r=dholbert
There were two problems in the existing code (which was exposed by tests
that dynamically insert/remove items).  First, the situation when
we have some pushed items two or more fragments away and then pull up
those.  This creates a "hole" in the child next-in-flow chain like so:
grid-container-frag-0
  child1-frag-0
  ...
grid-container-frag-1
  ...
grid-container-frag-2
  child1-frag-1

After we reflow grid-container-frag-0 and it's still incomplete we will
reflow its NIF, grid-container-frag-1, but it will "stall" since it
doesn't have a continuation for child1.  We need to make sure to
always pull up a fragment for that child.  That's what the first hunk
is about in the patch.

Second problem is the opposite problem of pushing a child into a NIF
container that already has an OC child continuation, like so:
grid-container-frag-0
  OverflowList = { child1-frag-0 }
grid-container-frag-1
  OverflowContinuationsList = { child1-frag-1 }

When we reflow grid-container-frag-1 we'll pull in child1-frag-0
like so:
grid-container-frag-0
 ...
grid-container-frag-1
  PrincipalList = { child1-frag-0 }
  OverflowContinuationsList = { child1-frag-1 }

This is bad since we'll consume BSize twice here.  The fix is
to move it our ExcessOverflowContinuationsList instead, like so:
grid-container-frag-0
 ...
grid-container-frag-1
  PrincipalList = { child1-frag-0 }
  ExcessOverflowContinuationsList = { child1-frag-1 }

That's what the second hunk in this patch does.
2016-03-11 17:39:27 +01:00
Mats Palmgren
2565e9aa37 Bug 1144096 part 17 - [css-grid] Add helper methods that add a sorted list of child frames to the Overflow and ExcessOverflowContainers child lists. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
f9c033b9c3 Bug 1144096 part 16 - [css-grid] Implement fragmentation. r=dholbert 2016-03-11 17:39:27 +01:00
Mats Palmgren
2d6db6ec82 Bug 1144096 part 15 - [css-grid] Compute our pre-reflow logical skip sides and cache the result of ComputedLogicalBorderPadding() with that applied. r=dholbert
Our "pre-reflow logical skip sides" assumes each fragment will be
the last and have a block-end border.  We then skip the block-end
side at the end of Reflow if we're INCOMPLETE.  This simplifies
the logic that checks how many rows fits in this fragment.
2016-03-11 17:39:26 +01:00
Mats Palmgren
7830a2f346 Bug 1144096 part 14 - [css-grid] Make ReflowInFlowChild() deal with a constrained available block-size. r=dholbert 2016-03-11 17:39:26 +01:00
Mats Palmgren
32ffc181b5 Bug 1144096 part 13 - [css-grid] Refactor ReflowChildren() by separating out the code that reflows normal flow children (grid items and placeholders) into a new method ReflowInFlowChild(). r=dholbert 2016-03-11 17:39:26 +01:00
Mats Palmgren
93af165b37 Bug 1144096 part 12 - [css-grid] Collect and merge child frames we need for reflow. r=dholbert 2016-03-11 17:39:26 +01:00