Commit Graph

2740 Commits

Author SHA1 Message Date
Ciure Andrei
6e585d494e Backed out changeset 51cd668c0e87 (bug 1459890) dev request a=backout CLOSED TREE 2018-05-17 01:29:54 +03:00
Botond Ballo
c0aecaaa0f Bug 1459890 - Do not clip mask for clip path to bbox of clipped content. r=mstange
MozReview-Commit-ID: 9yZ1ziiDAKa
2018-05-11 18:55:30 -04:00
Matt Woodrow
4181f9131f Bug 1459997 - Add much more rigorous assertions for retained-dl assumptions. r=miko
This adds an assertion checking for duplicate items whenever we create an item, and when we merge an item into the final list.

I had to disable tracking for the anonymous inner list for nsDisplayPerspective and nsDisplayTransform (and manually forward RemoveFrame to them), as well as skipping the assertion for multi-page (since we can end up duplicating wrap lists, but isn't a problem, since we don't retain these).

MozReview-Commit-ID: 4n6rx9bQNan
2018-05-01 11:56:40 -04:00
Andreea Pavel
73ba3c9cc3 Backed out changeset ff93cd94b7c5 (bug 1459997) for assertion failures at builds/worker/workspace/build/src/layout/painting/nsDisplayList.cpp:141 on a CLOSED TREE 2018-05-16 09:48:56 +03: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
Matt Woodrow
b346e4815d Bug 1459997 - Add much more rigorous assertions for retained-dl assumptions. r=miko
This adds an assertion checking for duplicate items whenever we create an item, and when we merge an item into the final list.

I had to disable tracking for the anonymous inner list for nsDisplayPerspective and nsDisplayTransform (and manually forward RemoveFrame to them), as well as skipping the assertion for multi-page (since we can end up duplicating wrap lists, but isn't a problem, since we don't retain these).

MozReview-Commit-ID: 4n6rx9bQNan
2018-05-01 11:56:40 -04:00
Csoregi Natalia
191ee42f1d Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-05-15 12:56:29 +03:00
Emilio Cobos Álvarez
7a446e2848 Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-15 10:43:46 +02:00
Brindusan Cristian
a3da3bf341 Backed out 3 changesets (bug 1461299, bug 1460101) for reftest failures on events/EventStateManager.cpp CLOSED TREE
Backed out changeset fe2b8fcd7a47 (bug 1461299)
Backed out changeset 9a0ca81ddbce (bug 1461299)
Backed out changeset 783cf8b58ba4 (bug 1460101)
2018-05-15 03:13:29 +03:00
Emilio Cobos Álvarez
6be39c842b Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-15 01:17:34 +02:00
Brindusan Cristian
1c1780e937 Backed out 2 changesets (bug 1461299) for debug crashtest failures on crashtests/626014.xhtml CLOSED TREE
Backed out changeset 699e9816b7ff (bug 1461299)
Backed out changeset 48f01ac94137 (bug 1461299)
2018-05-15 01:31:13 +03:00
Emilio Cobos Álvarez
b3ebc1ca40 Bug 1461299: Make ESM not point to unbound NAC in the hover / active chain. r=smaug
MozReview-Commit-ID: 8mL7Yv3TwQM
2018-05-14 21:55:09 +02:00
Matt Woodrow
564efc2f1d Bug 1459441 - Make sure we build the full display list when we have blend containers in order to get the correct sorting for them. r=mstange
MozReview-Commit-ID: ECTU7enMb1r
2018-05-10 11:39:12 +12:00
Robert Longson
37d39787fb Bug 1422226 - Don't build display lists for NONDISPLAY content. r=jwatt 2018-05-13 19:16:26 +01:00
Emilio Cobos Álvarez
3c6e3ea3a0 Bug 509958: Unprefix :-moz-selection. r=dbaron,xidorn
Our implementation is totally not what the spec says, but totally what other
UAs do, see https://github.com/w3c/csswg-drafts/issues/2474.

So given this is causing webcompat pain, I think we should be pragmatic and just
unprefix this.

We could keep serialization and getComputedStyle with ::selection working with a
bit more effort, like we do for :-moz-placeholder, but I'd prefer not doing at
least the serialization bit, and just alias in nsCSSPseudoElements
:-moz-selection to selection too.

MozReview-Commit-ID: 6lxctozRDqv
2018-05-10 17:19:25 +02:00
Boris Zbarsky
586f4fc92c Bug 1387143 part 24. Remove nsISelection::ContainsNode. r=mats 2018-05-08 13:52:42 -04:00
Boris Zbarsky
3d7e344fa9 Bug 1387143 part 20. Remove nsISelectionPrivate. r=mats 2018-05-08 13:52:38 -04:00
Boris Zbarsky
9f543072ec Bug 1387143 part 7. Move the TABLESELECTION_* constants from nsISelectionPrivate to a TableSelection enum. r=mats 2018-05-08 13:52:36 -04:00
Boris Zbarsky
9e4bb5315f Bug 1387143 part 3. Stop using nsISelection in nsISelectionController. r=mats 2018-05-08 13:52:36 -04:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Neil Deakin
caf5cbe37b Bug 1444920, remove the debug='true' flag from xul elements and the corresponding debug frame flags, r=dholbert 2018-05-02 10:32:54 -04:00
Boris Zbarsky
2a98278cfd Bug 644603 part 1. Introduce nsIFrame::GetOffsetToIgnoringScrolling. r=dbaron 2018-04-26 17:53:05 -04:00
Matt Woodrow
3d7d775d08 Bug 1452805 - Make sure we rebuild contents infront and behind stacking contexts if their size might have changed. r=miko
The test invalidates the z-index element, so that we do a partial build with just that and the DAG no longer knows the relative ordering between it and the other blue elements.
We then expand the size of the 'first' elements stacking context, and ensure that we provide enough intersecting items to know that we're on top of the z-index element.

MozReview-Commit-ID: KP7c3bnwfBd
* * *
[mq]: fix

MozReview-Commit-ID: EuraqvaUS35
2018-04-15 16:38:45 +12:00
Daniel Holbert
9b4532a877 Bug 1455976: Give table wrapper boxes a special case during flex base size resolution, so that percent main-sizes can be respected. r=mats
MozReview-Commit-ID: GB3SCaj9cv1
2018-04-23 12:05:40 -07:00
Botond Ballo
10f3ea256b Bug 1443424 - Only set eScrollbarThumb on a CompositorHitTestInfo item if the thumb is being layerized. r=kats
MozReview-Commit-ID: CvngEy9ZsUD
2018-04-17 18:58:42 -04:00
Matt Woodrow
f7000f41e5 Bug 1406727 - Improve diagnostics in BuildDisplayList. r=froydnj
MozReview-Commit-ID: Ctb7HFxgPac
2018-02-06 12:21:31 +13:00
Daniel Zielas
09c4bc2cb0 Bug 1453469 - Remove nsDisplayOwnLayer::mScrollTarget. r=botond
MozReview-Commit-ID: 1LAWH96mm5m
2018-04-14 09:42:45 +02:00
Andrew McCreight
7a07e0c48b Bug 1449670, part 1 - Convert IsNodeOfType(nsINode::eTEXT) to IsText(). r=bz
This method is not a virtual call, and also looks nicer.

This patch was mostly generated by a Python script, but I manually
cleaned up the code in a few places where statements didn't need to be
split across multiple lines any more.

MozReview-Commit-ID: 8JExxqSRc59
2018-04-12 15:41:00 -07:00
Daniel Holbert
f7514050d1 Bug 1374540 part 4: Change nsFrame::ComputeSize to treat used flex-basis:content as 'max-content'. r=mats
This brings us into alignment with the spec and makes us pass some web-platform
tests, along with the reftests that I've included for this bug.

MozReview-Commit-ID: KoKPi18svGE
2018-04-13 12:17:51 -07:00
Daniel Holbert
bd66c7df60 Bug 1374540 part 3: Refactor nsFrame::ComputeSize methods to handle the two "used flex-basis of content" scenarios with a consistent codepath. r=mats
This patch doesn't change behavior.

It simply makes us share code/data for two different cases that both ended up
producing mainAxisCoord->GetUnit() == eStyleUnit_Auto.  Now, they'll *both* use
the same static nsStyleCoord to represent this "auto" value.

Originally, in one of these cases ("flex-basis:auto;[main-size-property]:auto),
we left the mainAxisCoord untouched. Now we'll point it at this dummy 'auto'
value. Either way we end up with mainAxisCoord->GetUnit() == eStyleUnit_Auto,
so the behavior doesn't change.

The next patch in this series will make further changes to one of these spots,
as noted in the "XXXdholbert" code-comment included here.

MozReview-Commit-ID: 5ClfbNHuKhO
2018-04-13 12:17:51 -07:00
Matt Woodrow
3ae7a838dd Bug 1451971 - Rebuild the whole page when we have perspective or preserve-3d. r=miko
MozReview-Commit-ID: 2SkKvpdLWMi
2018-04-11 21:49:30 +12:00
Daniel Zielas
2af458e291 Bug 1420512 - Try unifying data structures for scrollbar container and scrollbar thumb info. r=botond
MozReview-Commit-ID: 9zPkrA3CwsN
2018-03-02 19:00:03 +01:00
Mats Palmgren
f3a0c9e1e8 Bug 1434478 part 6 - Propagate a percentage basis to nsIFrame::IntrinsicISizeOffsets for resolving padding/margin. r=dholbert
This is needed only for CSS Grid since in other cases we're
only using IntrinsicISizeOffsets in the inline-axis and
the percentage basis is always indefinite for *intrinsic
sizing*.  When calculating the intrinsic size of grid items
in the grid container's block axis however, we do have
a definite size for the grid area in the inline-axis and it
should be used per:
https://drafts.csswg.org/css-grid/#algo-overview
"2. Next, the track sizing algorithm resolves the sizes of
the grid rows, using the grid column sizes calculated in
the previous step."

(Percentage padding/margin for grid items is always resolved
against the grid area's inline-size nowadays.)
2018-04-10 00:16:58 +02:00
Mats Palmgren
0eee70c35a Bug 1434478 part 3 - Remove IntrinsicISizeOffsetData::hPctPadding/hPctMargin members since they are now unused. r=dholbert 2018-04-10 00:16:58 +02:00
Emilio Cobos Álvarez
3284a9dda8 Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02:00
Emilio Cobos Álvarez
95a825cbf6 Bug 1303605: Remove the undisplayed maps. r=bz,mats
This is mostly code removal, changing GetDisplayContentsStyle(..) checks by an
FFI call to Servo.

The tricky parts are:

 * MaybeCreateLazily, which I fixed to avoid setting bits under display: none
   stuff. This was a pre-existing problem, which was wallpapered by the
   sc->IsInDisplayNoneSubtree() check, which effectively made the whole
   assertion useless (see bug 1381017 for the only crashtest that hit this
   though).

 * ContentRemoved, where we can no longer know for sure whether the element is
   actually display: contents if we're removing it as a response to a style
   change. See the comment there. That kinda sucks, but that case is relatively
   weird, and it's better than adding tons of complexity to handle that.

 * GetParentComputedStyle, which also has a comment there. Also, this function
   has only one caller now, so we should maybe try to remove it.

The different assertions after DestroyFramesForAndRestyle are changed for a
single assertion in the function itself, and the node bit used as an
optimization to avoid hashtable lookups is taken back.

MozReview-Commit-ID: AZm822QnhF9
2018-04-07 15:21:56 +02:00
Emilio Cobos Álvarez
bf9e6bc798 Bug 1451217: Remove VerifyStyleTree stuff. r=xidorn
MozReview-Commit-ID: DDXMq9WkUkE
2018-04-04 13:34:11 +02:00
Margareta Eliza Balazs
4a65daf2b1 Merge inbound to mozilla-central. a=merge 2018-04-04 12:43:55 +03:00
Matt Woodrow
4e885ca8c2 Bug 1370575 - Do less manual invalidation when tables changes, and rely on DLBI instead. r=mstange 2018-04-04 16:17:49 +12:00
Matt Woodrow
e037d14d46 Bug 1450189 - Don't invalidate display items when we get a new style context. r=miko 2018-04-04 16:17:25 +12:00
Matt Woodrow
2fd4b8810a Bug 1442844 - Don't mark display items invalid when temporarily setting the frame size in FinishAndStoreOverflow. r=dbaron 2018-04-04 16:17:01 +12:00
Matt Woodrow
3a11330208 Bug 1443380 - Don't mark all descendant frames modified for display list building when invalidating a frame subtree since marking just the root is sufficient. r=miko 2018-04-04 16:15:49 +12:00
Matt Woodrow
e5353835c2 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test
2018-03-23 16:47:37 +13:00
Ting-Yu Lin
53f9fd2dce Bug 1404222 Part 3: Block onload when shape-outside images are requested for a frame, and keep it blocked until the frame is removed, the image fails to load, or reflow is complete. r=dbaron,dholbert
When we finish decoding an image frame, we need to trigger reflow for the
frame containing a float with shape-outside: <image>, and delay the firing
of the document's onload event until that reflow is complete.
2018-01-25 14:56:43 +08:00
Sebastian Hengst
6cc69993bd Backed out 2 changesets (bug 1443027) for frequent crashes on OS X. a=backout
Backed out changeset 1e3dc6112e76 (bug 1443027)
Backed out changeset d2734042605a (bug 1443027)
2018-04-03 19:51:49 +03:00
Matt Woodrow
21e0c0a201 Bug 1443027 - Fix the merging algorithm to pass the new tests correctly. r=mstange
MozReview-Commit-ID: JnglCbdhZzE
* * *
[mq]: update-test
2018-03-23 16:47:37 +13:00
Hiroyuki Ikezoe
b7f506f202 Bug 1443358 - Consider that the target frame is scrolled out if scrollable parent frame size is empty. r=birtles
This patch adds three test cases;

1) Animation on position:absolute element in a zero-height iframe
  This animation should be throttled.
2) Animation on a non-zero width and hight position:absolute element but whose
   parent has a zero height
  This animation should NOT be throttled since the animation is visible
3) Animation on a zero-height position:absolute element whose parent also has
   zero height.
  This animation should be throttled since the animation is invisible

The first test fails without this fix and passes with the fix.
The second one passes regardless of the fix
The third one is marked as 'todo' since it doesn't pass with this fix.

MozReview-Commit-ID: 8pNUFQ71ivj
2018-04-02 13:34:14 +09:00
Daniel Holbert
3555fe34a3 Bug 1105111 part 3: Add support for 'flex-basis:content' in layout. r=mats
BACKGROUND:
Early in flex layout, we have to resolve the 'flex-basis' value to produce the
"flex base size" (basically, the flex-basis resolved to an absolute length).

This resolution happens in two "phases" (which both happen within
nsFlexContainer::GenerateFlexItemForChild()):

First phase: we try to resolve the flex-basis by creating a ReflowInput for the
flex item (which gets us some other things as well).  Under the hood, we use
the flex-basis when resolving this ReflowInput's main-axis size.  The code for
this lives in nsFrame::ComputeSize (and in
nsFrame::ComputeSizeWithIntrinsicDimensions, via some frame classes' overrides of
ComputeSize).

Second phase: If the first phase didn't get us a definite size, then that means
we have to do reflow to measure the content size & produce a resolved flex base
size, which we do via ResolveAutoFlexBasisAndMinSize().

NOTES ON THIS PATCH:
To add 'flex-basis:content' support to layout, this patch only needs to modify
the first phase discussed above. If it turns out we also have some second-phase
work to do (i.e. if we need to do reflow to resolve 'flex-basis:content'), this
patch causes that reflow to happen by simply making us use eStyleUnit_Auto in
the main axis's nsStyleCoord in the first phase.  (And then, if that 'auto'
nsStyleCoord really does require reflow, then that first phase will end up
producing an unconstrained main-size in the flex item's ReflowInput, which will
automatically trigger the second phase.)

MozReview-Commit-ID: 2nH4Fh78C81
2018-04-02 04:30:38 +02:00
Cosmin Sabou
6a78c2895e Merge central to autoland. a=merge CLOSED TREE 2018-03-30 21:46:52 +03:00
Noemi Erli
0ca6532065 Backed out 2 changesets (bug 1443027) for breacking Gmail on OSX r=pascalc a=backout
Backed out changeset 5deb310542a9 (bug 1443027)
Backed out changeset e04979dd66be (bug 1443027)
2018-03-30 19:08:30 +03:00