Commit Graph

1294 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
9a603e108d Bug 1471174 - Constify nsIFrame::IsScrolledOutOfView. r=birtles
The reason why const_cast is used for nsLayoutUtils::GetNearestScrollableFrame
is that if we changed the function as well, it ends up scattering const_cast
in most call sites of the function.  That's because GetNearestScrollableFrame
has a do_QueryFrame call for the given nsIFrame* and returns the queried frame,
so it will be like this;

 const nsIScrollableFrame* GetNearestScrollableFrame(const nsIFrame*, ..)

Most call sites of this function are then calls do_QueryFrame for the returned
nsIScrollableFrame*.

MozReview-Commit-ID: EwccKUITL89
2018-06-27 09:08:36 +09:00
Matt Woodrow
6f2ab3ef8e Bug 1464290 - Merge nsIFrame::IsVisuallyAtomic and IsStackingContext since the conclusion is that we want their behaviour to be identical. r=dbaron
MozReview-Commit-ID: A97NejkGoTr
2018-06-25 15:47:16 +12:00
Botond Ballo
f8a0761e22 Bug 1459696 - Improve const-correctness of nsIFrame methods and functions that accept an nsIFrame* argument. r=mstange
MozReview-Commit-ID: 9IcL8kfMdIH
2018-05-28 19:58:25 -04:00
Yusuf Sermet
e79170eb25 Bug 1465250 - Make contain:paint trigger clipping independent of the overflow property. r=mattwoodrow
MozReview-Commit-ID: 2QbfZD1jnWX
2018-05-30 14:28:53 -07:00
Gurzau Raul
c6efd9228c Backed out changeset 9bdd12949711 (bug 1465250) for multiple failures on /css-contain/contain-paint-002.html on a CLOSED TREE 2018-06-07 06:40:03 +03:00
Yusuf Sermet
ad57afee29 Bug 1465250 - Make contain:paint trigger clipping independent of the overflow property. r=mattwoodrow
MozReview-Commit-ID: 2QbfZD1jnWX
2018-05-30 14:28:53 -07:00
Cameron McCormack
c3fde9a6c4 Bug 1464967 - Part 2: Fix nsReflowStatus dumping when REALLY_NOISY_REFLOW is defined. r=gerald
MozReview-Commit-ID: JPN7i5z5IeX
2018-05-29 14:08:01 +10:00
Matt Woodrow
7c0d7d8f07 Bug 1436505. r=mats, a=abillings 2018-05-28 12:42:54 +12:00
Matt Woodrow
135bfc272b Bug 1462412 - Correctly ignore the perspective property for frames that aren't transformable. r=dbaron 2018-05-23 10:41:19 +12:00
Emilio Cobos Álvarez
d3d78dc6a7 Bug 1463138: Remove unused nsIFrame::GetPseudoElement. r=mats
MozReview-Commit-ID: 4LFZibUS9DP
2018-05-21 20:03:36 +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
Boris Zbarsky
586f4fc92c Bug 1387143 part 24. Remove nsISelection::ContainsNode. r=mats 2018-05-08 13:52:42 -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
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
0d637cadcb Bug 1434478 part 4 - Factor out constants like NS_UNCONSTRAINEDSIZE so they can be used in headers without needing nsIFrame.h (idempotent patch). r=dholbert 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
2183d84858 Bug 1452080: Rename ComputedStyle::PresContext to PresContextForFrame. r=xidorn
And make nsIFrame its only caller, modulo a safety assertion.

The safety assertion will be removed at the same time as the pres context
member, since the only purpose of it is to ensure we don't keep a pres context
reference for too long.

MozReview-Commit-ID: CD5zOHVO9ub
2018-04-09 11:19:50 +02:00
Noemi Erli
b15aabf388 Backed out 3 changesets (bug 1452080) for bustage in /builds/worker/workspace/build/src/layout/base/nsCSSFrameConstructor.cpp on a CLOSED TREE
Backed out changeset 7f5104c7a242 (bug 1452080)
Backed out changeset 806a9c95a243 (bug 1452080)
Backed out changeset bffebe8aa254 (bug 1452080)
2018-04-09 11:18:12 +03:00
Emilio Cobos Álvarez
263ba5ae8f Bug 1452080: Rename ComputedStyle::PresContext to PresContextForFrame. r=xidorn
And make nsIFrame its only caller, modulo a safety assertion.

The safety assertion will be removed at the same time as the pres context
member, since the only purpose of it is to ensure we don't keep a pres context
reference for too long.

MozReview-Commit-ID: CD5zOHVO9ub
2018-04-09 09:57:57 +02:00
Emilio Cobos Álvarez
3284a9dda8 Bug 1447827: Remove ServoRestyleManager. r=xidorn
MozReview-Commit-ID: CFafQsb4rQn
2018-04-07 15:50:06 +02: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
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
Ryan VanderMeulen
93ffd60378 Backed out 11 changesets (bug 1404222) for static analysis failures on a CLOSED TREE.
Backed out changeset a6a99136300c (bug 1404222)
Backed out changeset 7183b8104399 (bug 1404222)
Backed out changeset a1e4294c1c59 (bug 1404222)
Backed out changeset b79d6e8318db (bug 1404222)
Backed out changeset 0450620fdabd (bug 1404222)
Backed out changeset 026c74a92d04 (bug 1404222)
Backed out changeset 50ac4167f702 (bug 1404222)
Backed out changeset 59038f2db68a (bug 1404222)
Backed out changeset f6b9096da915 (bug 1404222)
Backed out changeset 4e0baffdd79b (bug 1404222)
Backed out changeset 57eeb849ab88 (bug 1404222)
2018-04-02 17:57:27 -04:00
Ting-Yu Lin
e4c387c16b Bug 1404222 Part 3: Block onload when shape-outside images are requested for a frame, and keep it blocked until the frame is removed 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
Emilio Cobos Álvarez
3cf86a54cf Bug 1449010: Respect ::selection background styles for image overlays. r=mattwoodrow
I don't have a strong preference about blending with white vs. just doing alpha
0.5, so I kept doing what we were doing, since Blink and WebKit also apply the
blending to the text background, and I'm not sure that's particularly desirable.

MozReview-Commit-ID: AwYtAgdlcxj
2018-03-29 02:53:02 +02:00
Xidorn Quan
e74c1e1696 Bug 1448526 part 2 - Make nsStyleStructList.h not generated. r=emilio
nsStyleStructList.h was initially made generated in bug 873368 to avoid
manually maintaining boilerplate for if-dispatch, while the if-dispatch
was replaced by jump table in bug 1171842, so the boilerplate went away.

However, in bug 1122781 (before bug 1171842), boilerplate for dependency
check, so it still needs to be generated.

The dependency table is removed in the previous patch, so we no longer
have any boilerplate in the style struct list, and thus it doesn't need
to be generated anymore.

MozReview-Commit-ID: GkbJZ98ojbE
2018-03-26 20:09:17 +11: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
Jeff Muizelaar
3370a80065 Bug 1439006. Allow multiple kinds of WebRenderUserData on a DisplayItem. r=mstange
Currently we can only have one type of WebRenderUserData on an Item. We already
have a hash table of WebRenderUserData so it's not hard to include type in the
hash to support one per type.

MozReview-Commit-ID: geJ0BeWv8b
2018-03-16 19:15:27 -04:00
Emilio Cobos Álvarez
7a79ccba52 Bug 1441547: Make character data change notifications use a const reference for the info parameter. r=smaug
It's not intended to be mutated.

MozReview-Commit-ID: 5nkD1YkidlV
2018-02-27 15:30:27 +01:00
Bas Schouten
6045a3bb22 Bug 1437492 - Part 2: Based on profile data, use the simple-matrix optimized matrix class in some places. r=mattwoodrow
MozReview-Commit-ID: EBRrGXc2wEj
2018-02-17 00:43:38 +01:00
Emilio Cobos Álvarez
d6211e6535 Bug 1405087: Don't use -moz-user-input: disabled to decide event handling stuff. r=smaug
We only set it on disabled form controls anyway, so use the content state
directly.

MozReview-Commit-ID: 7jJ75dvszyC
2018-02-15 21:48:58 +01:00
Hiroyuki Ikezoe
af98d2cc14 Bug 1237454 - Throttle animations on visibility:hidden element. r=birtles,boris,emilio
This patch does basically throttle animations on visibility:hidden element
and unthrottle it once the animating element became visible or a child of the
animating element became visible.  But still there are some cases that we don't
throttle such animations perfectly.  For example;

  div.style.visibility = 'hidden'; // the 'div' has no children at this moment
  div.animate(..);
  // The animation is throttled

  div.appendChild(visibleChild);
  // The animation isn't throttled

  visibleChild.style.visibility = 'hidden';
  // Now the animation should be throttled again, but actually it's not.

To throttle this case properly, when the |visibleChild|'s visibility changed
to hidden, we would need to do either

 1) Check all siblings of the |visibleChild| have no visible children

or

 2) The parent element stores visible children count somewhere and decrease it
    and check whether the count is zero

To achieve 1) we need to walk up ancestors and their siblings, actually it's
inefficient.

2) is somewhat similar to what we already do for animating images but it's hard
to reuse it for CSS animations since it does not take into account that
descendants' visibilities.

Another example that this patch does not optimize is the the case where
animating element has children whose visibility is inherited and the element
itself initially visible something like this;

  let child = document.createElement('div'); // child visibility is 'inherit'
  div.appendChild(child);

  div.animate(..); // the 'div' is visible
  // The animation isn't throttled since the animating element is visible

  div.style.visiblily = 'hidden';
  // Now the animation should be throttled, but it's not since this patch does
  // not descend down all descendants to check they are invisible or not when the
  // animating element visibility changed to hidden.

This patch adds a test case for this case introduced with todo_is().

Another test case added in this patch fails if we don't use
nsPlaceholderFrame::GetRealFrameFor() in HasNoVisibleDescendants().

MozReview-Commit-ID: BJwzQvP9Yc4
2018-02-09 10:43:10 +09:00
Matt Woodrow
b578051cd0 Bug 1435643 - Remove no longer needed layer flattening code. r=mstange 2018-02-12 19:03:09 +13:00
Boris Zbarsky
831a04431e Bug 1436508 part 14. Remove nsIDOMMutationEvent. r=masayuki
MozReview-Commit-ID: Gf59kFSIuaK
2018-02-09 11:17:10 -05:00
Timothy Nikkel
b643b723bd Bug 1417358. Make sure that the override dirty rect that we set when a displayport changes gets cleared even if we don't perform a partial display list update. r=mattwoodrow
We do this by tracking them as a property on the root frame the same way we do for modified frames.

We also set the property in ProcessFrame but that is okay because we are guaranteed to finish the partial update at that point.
2018-01-25 23:42:44 -06:00
Emilio Cobos Álvarez
7d01091273 Bug 1420722: Just use GetInFlowParent for now. r=mattwoodrow
display: contents is about to ship in other engines, let's prevent subtle bugs.

MozReview-Commit-ID: C8saQnRvRuI
2018-01-16 11:19:36 +01:00
Emilio Cobos Álvarez
67ff299508 Bug 1429961: Destroy continuations last-to-first. r=mats
MozReview-Commit-ID: Ftc8NJLTaAw
2018-01-15 21:39:03 +01:00
Emilio Cobos Álvarez
f2359082ee Bug 1429961: Make sure to remove all the continuations with the same PostDestroyData. r=mats
If we remove the first continuation of the ::after content before the last,
before this patch unbind the generated content ASAP. Part of the generated
content (the second counter) in the test-case ends up in a continuation of that
frame.

That text node would already be unbound from the tree when destroying its
frame.

MozReview-Commit-ID: 4VtVRSoGxCT
2018-01-15 16:40:26 +01:00
KuoE0
4f1ce32982 Bug 1428276 - Make ExpectedOwnerForChild deal with abs.pos. anon boxes. r=heycam
For an OOF frame, the parent frame that's associated with our parent
style context is the *placeholder's* parent -- not the OOF frame's
parent.

MozReview-Commit-ID: CUSBkWDqxWz
2018-01-05 16:26:01 +08:00
Emilio Cobos Álvarez
7f2020dd53 Bug 1428144: Remove some dead nsIFrame code. r=mats
MozReview-Commit-ID: Aaj6XLp3LnA
2018-01-04 20:37:11 +01:00
Mats Palmgren
301f9d8c6d Bug 1424528 part 4 - Remove the nsDidReflowStatus enum type. r=dholbert
MozReview-Commit-ID: 3QFWSlQ84fF
2017-12-14 16:21:49 +01:00
Mats Palmgren
430070c174 Bug 1424528 part 2 - Remove nsDidReflowStatus param in DidReflow declarations (automated change). r=dholbert
MozReview-Commit-ID: 44pchGXzYL7
2017-12-14 16:21:49 +01:00
Eric Rahm
b80a434a68 Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium
This removes an unnecessary level of indirection by replacing all
nsStringGlue.h instances with just nsString.h.
2017-12-06 16:52:51 -08:00
Xidorn Quan
94949d28e0 Bug 1420525 - Initialize nsIFrame::Cursor to avoid uninitialized value inside. r=tnikkel
MozReview-Commit-ID: EjAUocKMwl9
2017-11-28 17:28:37 -06:00
Kartikaya Gupta
be81b0e821 Bug 1418387 - Add CompositorHitTestInfo bits for scrollbars. r=mstange
MozReview-Commit-ID: KTfpXoESOxF
2017-11-24 16:23:06 -05:00