Commit Graph

277 Commits

Author SHA1 Message Date
Chris Peterson
f7ceeaf5cf Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr
2018-06-17 22:43:11 -07:00
Cameron McCormack
322d7ed5cb Bug 1466448 - Part 2: Remove unused ReflowOutput::mFlags. r=mats 2018-06-04 16:22:10 +10:00
Matt Woodrow
b64969f18b Bug 1460491 - Part 1: Split nsDisplayItem::mVisibleRect into two members, one for each stated purpose. Gets rid of the save/restore since we no longer modify the building rect. r=jnicol
MozReview-Commit-ID: 5wcsSoZRN44
2018-05-16 15:56:32 +12:00
Mats Palmgren
9b444b6c41 Bug 1398482 part 2 - [css-grid][css-flexbox][css-multicol] Add 'row-gap' and 'gap' properties; make 'grid-[column|row]-gap' and 'grid-gap' alias the respective unprefixed properties (Gecko part). r=dholbert 2018-04-24 01:52:51 +02:00
Mats Palmgren
9214eecbed Bug 1398537 part 2 - [css-multicol] Implement percentages for 'column-gap' (Gecko part). r=dholbert 2018-04-02 01:56:19 +02:00
Emilio Cobos Álvarez
1d4859a89a Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt on a CLOSED TREE
MozReview-Commit-ID: JPopq0LudD
2018-03-22 20:06:24 +01:00
Emilio Cobos Álvarez
97286b35c8 Back out changeset b683bb3f22a1 (Bug 1447483) for not landing with all the files. r=me on a CLOSED TREE
This reverts commit 1808914126bb9f9e4a82d2c3d7ac961885fe7d62.

MozReview-Commit-ID: 5skESBseEvo
2018-03-22 20:05:22 +01:00
Emilio Cobos Álvarez
1f5d8de5cc Bug 1447483: Merge nsStyleContext and ServoStyleContext, rename to ComputedStyle. r=jwatt
MozReview-Commit-ID: JPopq0LudD
2018-03-22 19:48:42 +01:00
Ryan Hunt
b419c79ff5 Remove DisplayItemLayer and corresponding layers.advanced prefs. (bug 1439960, r=mstange)
MozReview-Commit-ID: FAWTC1Llu31
2018-02-21 09:29:49 -06:00
Cosmin Sabou
4e421f7abe Backed out 3 changesets (bug 1439960) for build bustages on APZInputBridgeChild.cpp and FrameBuilder.cpp. CLOSED TREE
Backed out changeset b8057c06fc4c (bug 1439960)
Backed out changeset c8d6b0fa1447 (bug 1439960)
Backed out changeset e6bd6ebc8597 (bug 1439960)
2018-03-20 23:18:44 +02:00
Ryan Hunt
df90830506 Remove DisplayItemLayer and corresponding layers.advanced prefs. (bug 1439960, r=mstange)
MozReview-Commit-ID: FAWTC1Llu31
2018-02-21 09:29:49 -06:00
Matt Woodrow
6f1864699b Bug 1436904 - Part 1: Add a static constructor function for display items. r=Bas 2018-02-13 13:43:28 +13:00
Dorel Luca
3276af0faa Backed out 3 changesets (bug 1436904) for many crashes see bugs: 1440281, 1440302, 1440303, 1440313. a=backout
Backed out changeset 27f0762d4472 (bug 1436904)
Backed out changeset 27640f52e188 (bug 1436904)
Backed out changeset 2b4d117c27dc (bug 1436904)
2018-02-22 17:28:59 +02:00
Matt Woodrow
2bcbca93c9 Bug 1436904 - Part 1: Add a static constructor function for display items. r=Bas 2018-02-13 13:43:28 +13:00
Daniel Holbert
1e1ae954dd Bug 1437623 part 1: (layout/generic) Add missing includes/namespaces to preemptively fix unified bustage. r=mats
MozReview-Commit-ID: GyFPLOsPWt3
2018-02-13 09:08:41 -08:00
L. David Baron
04e6183eb0 Bug 1432341 - Draw column-rules with border-code in box-decoration-break: clone mode, rather than slice. r=mattwoodrow
This fixes the bug.  The underlying problem was that we were hitting the
case where ConstructBorderRenderer sets aNeedsClip to true, but nothing
in the column-rule drawing path was honoring that.

(Choosing clone rather than slice may make a difference for dotted and
dashed column-rules, but I think the clone behavior is preferable.)

MozReview-Commit-ID: 7YYzyxYjhsV
2018-01-31 07:18:49 +00:00
L. David Baron
8ce18023d2 Bug 1432341 - Rename functions that relate to column rules to have clearer names. r=mattwoodrow
This is followup to bug 1361668, and is just cleanup in advance of the
patch to fix this bug.

MozReview-Commit-ID: 4HOKLA5WYNq
2018-01-31 07:18:49 +00:00
L. David Baron
33e79ca064 Bug 1432341 - Simplify by using GetContentRectRelativeToSelf. r=mattwoodrow
This is just cleanup in advance of the patch to fix this bug.

MozReview-Commit-ID: 1pzauGix51m
2018-01-31 07:18:49 +00:00
Emilio Cobos Álvarez
288d5f47ef Bug 1429723: Graphics cleanup. r=jrmuizel
MozReview-Commit-ID: LHo9K4lLtah
2018-01-22 18:14:19 +01:00
Miko Mynttinen
896b0f3d84 Bug 1425078 - Remove nsDisplayList::AppendNewToTop and nsDisplayList::AppendNewToBottom r=mattwoodrow
MozReview-Commit-ID: E3neKT2sV4Q
2017-12-13 11:23:04 -06:00
Samathy Barratt
6e82a231e6 Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel
Renamed to imgDrawResult

MozReview-Commit-ID: 5ESSgIhhU41
2017-12-11 15:37:59 +00:00
Ciure Andrei
d5988c3191 Backed out changeset 8e33d0ce108c (bug 1351447) for failing /builds/worker/workspace/build/src/widget/cocoa/nsCocoaUtils on OS X r=backout a=backout on a CLOSED TREE 2017-12-12 09:49:59 +02:00
Samathy Barratt
54acaa2cd8 Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r=tnikkel
Renamed to imgDrawResult

MozReview-Commit-ID: 5ESSgIhhU41
2017-12-11 15:37:59 +00:00
Ethan Lin
c0c5398eaa Bug 1413397 - Avoid empty border's fallback. r=kats
MozReview-Commit-ID: 1KXYjcObJdi
2017-11-01 17:30:04 +08:00
Daniel Holbert
8fea3c215f Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK
2017-10-27 10:33:53 -07:00
Kartikaya Gupta
01510dec8a Bug 1409446 - Modify the extra-clip flag to instead track more useful information. r=ethlin,mstange
Instead of just keeping a count of how many "extra clips" (aka
out-of-band clips) we have pushed, track more complex information for
each clip. In particular, track the display item's normal clip chain, as
well as the clip id of the extra clip that was pushed. This will be
needed to override clip cache information in the next patch.

MozReview-Commit-ID: AWKDTkelhyL
2017-10-24 15:45:59 -04:00
Ethan Lin
8f09899a64 Bug 1394309 - Part2. We don't need to fall back if there is no border renderer. r=kats
This part is not necessary for fixing the reftests. But it would be better to just
return true if we don't want to render this item.

MozReview-Commit-ID: 6w6MCUAFPj6
2017-10-11 16:34:37 +08:00
Kartikaya Gupta
cbacb77052 Bug 1403915 - Remove the IsLayersFreeTransaction() machinery and assume it's always true. r=jrmuizel
MozReview-Commit-ID: 7FYVirQ5pal
2017-10-03 16:31:07 -04:00
Nicolas Silva
3c8f9ba825 Bug 1393031 - Remove unused nsTArray<WebRenderParentCommand>& parameter all over the place. r=jrmuizel 2017-09-20 13:36:53 +02:00
Ting-Yu Lin
d93880e505 Bug 1341009 - Add nsReflowStatus::IsEmpty() assertions to all nsIFrame::Reflow() methods and some reflow helpers, and remove unneeded Reset(). r=dholbert
nsReflowStatus::IsEmpty() assertions are added after DISPLAY_REFLOW in the
beginning of the Reflow().

A few Reflow() implementations have Reset() calls at the end which are left
in place by this patch (with an explanatory comment added to each). These
ending Reset()s are only needed for cases where a non-splittable frame
passes its own nsReflowStatus to a child's reflow method. Just in case the
child leaves a "not fully complete" value in the nsReflowStatus, the
non-splittable parent frame must clear out the nsReflowStatus before
returning, so that its own parent doesn't then try to split it.

MozReview-Commit-ID: 6Jj3jfMAqj4
2017-09-13 18:00:25 +08:00
Ting-Yu Lin
89d0f62aaa Bug 1341009 - Reset aStatus before calling nsContainerFrame::ReflowChild(). r=dholbert
This ensures the Reflow() call in nsContainerFrame::ReflowChild() is using
an empty reflow status.

MozReview-Commit-ID: K2Ln2i4XkB5
2017-09-14 14:15:03 +08:00
Sebastian Hengst
fc53f3bd53 Backed out changeset f34a52244cf9 (bug 1393031) 2017-09-14 23:17:35 +02:00
Nicolas Silva
8c829d94a4 Bug 1393031 - Remove unused nsTArray<WebRenderParentCommand>& parameter all over the place. r=jrmuizel 2017-09-14 20:21:54 +02:00
Nicolas Silva
7100d343f6 Bug 1393031 - Use shared memory to pass resource update data. r=jrmuizel 2017-09-14 18:48:55 +02:00
Miko Mynttinen
1d15e14450 Bug 1359584 - Part 3: Improve nsDisplayItem const correctness and fix surrounding whitespace r=mstange
MozReview-Commit-ID: 3GkWiu6C4Zo
2017-08-24 17:09:44 +02:00
Kevin Chen
0403a71b83 Bug 1362321 - Do not crash in gfxPlatform:Init if there is a TDR happening; r=bas
MozReview-Commit-ID: 9gJCErHosg1
2017-08-09 18:00:01 +08:00
Matt Woodrow
8370362323 Bug 1388162 - Add a Destroy function to nsDisplayItem to use instead of manually invoking the destructor, this will allow us to recycle them in the future. r=mstange
* * *
[mq]: fix

MozReview-Commit-ID: LUXZAIL73BJ
2017-08-07 16:07:43 +12:00
Matt Woodrow
e62cf6dd69 Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
Sebastian Hengst
2e92d940f4 Backed out changeset 8f2dd8f13b53 (bug 1388161) for failing chrome's test_animation_performance_warning.html | preserve-3d transform. r=backout 2017-08-10 14:40:21 +02:00
Sebastian Hengst
1e52933103 Backed out changeset e9985564e081 (bug 1388162) for failing chrome's test_animation_performance_warning.html | preserve-3d transform. r=backout 2017-08-10 14:40:20 +02:00
Matt Woodrow
b0bdae09c7 Bug 1388162 - Add a Destroy function to nsDisplayItem to use instead of manually invoking the destructor, this will allow us to recycle them in the future. r=mstange 2017-08-07 16:07:43 +12:00
Matt Woodrow
61b7fddb66 Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
L. David Baron
545506d86c Bug 1308876 - Mark child frames as dirty before starting reflow of the parent, so that if we reflow a child twice, it's only dirty the first time. r=dholbert
This is the primary patch in this bug, and makes the performance
improvement that fixes this bug.

The assertion count increase for layout/generic/crashtests/1015844.html
is accompanied by a layout change in the testcase as well.  However, I'm
not planning to fix it in this sequence; fundamentally columnsets with
specified heights inside a paginated context (like another columnset) do
not work in any reasonable way, and changing the number of times we
reflow them can change the layout.  At least, assuming I didn't lose
something in the process of simplifying the testcase.

ISSUES:
 - may make block inside XUL worse in performance by marking dirty more (see subdoc in Firefox UI, or text control innards?)

MozReview-Commit-ID: GdOvPynqcFP
2017-07-12 19:37:12 -07:00
L. David Baron
92447679ce Bug 1308876 - Reflow all kids when column-fill is auto and height has changed. r=dholbert
This fixes the regression in
layout/reftests/columns/column-balancing-nested-001.html from the
primary patch in this bug, for which a simplified testcase is
https://bugzilla.mozilla.org/attachment.cgi?id=8848293 .  I believe it's
simply a pre-existing bug that wasn't previously exposed.  I suspect
it may be possible to write a test that shows the bug prior to the
patch.  However, it's difficult, since it requires triggering height
changes in a multicol with an 'auto' height (since a non-'auto' height
would cause the multicol to have NS_FRAME_CONTAINS_RELATIVE_BSIZE set by
nsColumnSetFrame::Reflow, which would make skipIncremental false because
ShouldReflowAllKids returns true).  I suspect any working testcase would
likely be rather brittle, so I haven't pursued it further (particularly
given the complexity of the minimal testcase).

MozReview-Commit-ID: Gve3XKEPSxL
2017-07-12 19:37:12 -07:00
L. David Baron
fbed112a76 Bug 1308876 - Fix ColumnSet to reflow a non-dirty column when the block-size has shrunk and the column might need to push some children to the next column. r=dholbert
This fixes (confirmed by testing locally) a regression in
layout/reftests/w3c-css/received/css-multicol-1/multicol-nested-margin-004.xht
resulting from the primary patch in this bug, which tends to make frames
dirty less often.  The problem with that test is that (at least in a
simplified form), in the final reflow of the inner ColumnSet in the
first column of the outer ColumnSet, the inner ColumnSet chooses not to
reflow its first column, thus leaving that first column having a height
that is too large for the inner ColumnSet to fit in the first column of
the outer ColumnSet, causing the entire inner ColumnSet (rather than
just part of it) to be pushed to the next column.

I believe this existing incremental reflow code just doesn't make sense.
The code I'm modifying dates back primarily to:
c237520c89 (October 2004, initial columns implementation)
ee070ec95f (March 2005)
31e3540d1e (November 2006)

The first thing that doesn't make sense is the condition modified at the
end of this patch:
  (!reflowNext && (skipIncremental || skipResizeBSizeShrink))
There's simply no reason that that || isn't required to be an &&, as far
as I can tell.  Even if we don't need to reflow due to any of the
standard incremental reflow conditions, we can need to reflow because
the block size is shrinking and the column no longer fits.

Note that things were already OK when we required reflow due to
NS_SUBTREE_DIRTY(this), because of the way shrinkingBSizeOnly was
initialized using !NS_SUBTREE_DIRTY(this), thus excluding such cases
from the optimization.

The rest of the patch falls out of turning the || into an && in an
efficient way (i.e., without the extra !NS_SUBTREE_DIRTY(this) test, and
avoiding doing extra tests that we know we're not going to need by
coalescing all the incremental reflow tests into a single variable).

I tested that this patch passes try on its own (on 64-bit Linux debug):
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a279023fb7e8f3349d5ecbfb95807d6b097cdbcb

MozReview-Commit-ID: BD3ofmWN5Wl
2017-07-12 19:37:12 -07:00
Sylvestre Ledru
9d4a84d778 Bug 1378712 - Remove all trailing whitespaces r=Ehsan
MozReview-Commit-ID: Kdz2xtTF9EG
2017-07-06 14:00:35 +02:00
Ethan Lin
596418d7bd Bug 1372118 - Part2. Use new interface of CreateWebRenderCommands for non-image display items. r=jrmuizel, r=kats
MozReview-Commit-ID: BcmRjQhDEyf
2017-06-30 17:23:20 -07:00
Sebastian Hengst
f1f93715f4 Backed out changeset 4b74f07a39bb (bug 1308876) 2017-06-28 02:58:08 +02:00
Sebastian Hengst
8ac8dc3e01 Backed out changeset 67c036d54d3e (bug 1308876) 2017-06-28 02:58:04 +02:00
Sebastian Hengst
2935decc9a Backed out changeset b6f51232167c (bug 1308876) 2017-06-28 02:57:52 +02:00