Commit Graph

61 Commits

Author SHA1 Message Date
Jonathan Watt
7532be254f Bug 1931736. Add missing braces around if/loop statements in layout/generic/. r=layout-reviewers,emilio
Depends on D229247

Differential Revision: https://phabricator.services.mozilla.com/D229248
2024-11-17 05:03:58 +00:00
Stanca Serban
deedaaf8c2 Backed out changeset 41ffc2364844 (bug 1913951) for causing reftests failures in 1133905-1-vh-rtl.html. CLOSED TREE 2024-11-15 02:15:05 +02:00
Hiroyuki Ikezoe
184ff7c2d4 Bug 1913951 - Ignore __underflow__ area for the minimum scale size calculation. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D228270
2024-11-14 22:42:42 +00:00
Alexandru Marc
e5fac45584 Backed out changeset c1acf137ed79 (bug 1913951) for causing reftest failures @ 1166147.html . CLOSED TREE 2024-11-14 11:15:01 +02:00
Hiroyuki Ikezoe
9473e2d395 Bug 1913951 - Ignore __underflow__ area for the minimum scale size calculation. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D228270
2024-11-14 06:23:00 +00:00
David Shin
c35c146cbd Bug 1768921 - Ensure that padding inflated bounds of in-flow children are included in the scrollable element's overflow area. r=dholbert
This means that when users scroll to the inline-end of a scroller, they will
see that the inline-end padding of that scroller is added in.

This is achieved by unioning an additional rect into the scrollable element's
overflow area (Which is an accumulation of the recursive overflow-area
contributions from its subtree).

This additional rect is calculated as follows:
- In-flow children and float's margin boxes are unioned (including zero-size boxes)
- The unioned rect is then inflated by the scrollable element's padding

Note: The bounds of zero-area in-flow-child rects are included in this rect,
in both block- and inline- directions. This is a change in behavior; Divs of
huge inline size and zero block size used to not affect the scrollable overflow,
where divs with huge block size and zero inline size did, as a side effect of now
removed `nsBlockFrame::ConsiderBlockEndEdgeOfChildren`.

Note on WPT change sizing-orthog-(vlr|vrl)-in-htb-(008|020)-ref.xht - the padding existed
to force empty space below `p#sentence-after`. However, this only applies to previous
Firefox. Any combination of browser + default font (+ its default size) causing a scroll
would cause the test to fail as false positive (According to wpt.fyi, this is what happens
with sizing-orthog-(vlr|vrl)-008.xht tests). This change brings Firefox's scroll behaviour
inline with other browsers.

Differential Revision: https://phabricator.services.mozilla.com/D151310
2024-11-13 20:29:13 +00:00
Jonathan Kew
d76851fee6 Bug 1929445 - Use CSSMinMax rather than std::clamp to avoid assertion & undefined behavior on bad arguments. r=dholbert
This is just a band-aid to avoid the undefined behavior of std::clamp;
our CSSMinMax handles the case in a predictable way.

The real issue here must be that the frame has reported a "negative"
block-size, presumably due to integer overflow during nscoord arithmetic.
If we get a pernosco trace of the assertion, perhaps we can identify the
source of the overflow and correct/clamp it earlier to avoid this.

Differential Revision: https://phabricator.services.mozilla.com/D228595
2024-11-12 11:10:58 +00:00
Norisz Fay
07ccada8ce Backed out changeset 1445e1cfc71f (bug 1768921) for causing multiple failures CLOSED TREE 2024-11-08 00:09:56 +02:00
David Shin
361dd30414 Bug 1768921 - Ensure that padding inflated bounds of in-flow children are included in the scrollable element's overflow area. r=dholbert
This means that when users scroll to the inline-end of a scroller, they will
see that the inline-end padding of that scroller is added in.

This is achieved by unioning an additional rect into the scrollable element's
overflow area (Which is an accumulation of the recursive overflow-area
contributions from its subtree).

This additional rect is calculated as follows:
- In-flow children and float's margin boxes are unioned (including zero-size boxes)
- The unioned rect is then inflated by the scrollable element's padding

Note: The bounds of zero-area in-flow-child rects are included in this rect,
in both block- and inline- directions. This is a change in behavior; Divs of
huge inline size and zero block size used to not affect the scrollable overflow,
where divs with huge block size and zero inline size did, as a side effect of now
removed `nsBlockFrame::ConsiderBlockEndEdgeOfChildren`.

Note on WPT change sizing-orthog-(vlr|vrl)-in-htb-(008|020)-ref.xht - the padding existed
to force empty space below `p#sentence-after`. However, this only applies to previous
Firefox. Any combination of browser + default font (+ its default size) causing a scroll
would cause the test to fail as false positive (According to wpt.fyi, this is what happens
with sizing-orthog-(vlr|vrl)-008.xht tests). This change brings Firefox's scroll behaviour
inline with other browsers.

Differential Revision: https://phabricator.services.mozilla.com/D151310
2024-11-07 21:03:05 +00:00
longsonr
843d861ed7 Bug 1929338 - convert more mozilla:clamped to std:clamp r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D228069
2024-11-05 18:52:41 +00:00
Hiroyuki Ikezoe
e38ad9d39d Bug 1922904 - Fix bug 1780701 in a different approach. r=botond
In bug 1780701, we changed ScrollSnapUtils::GetSnapPointForDestination not to
return a valid SnapDestination if the snap position is equal to the original
scroll destination. But it has a bad side-effect on wheel scrolling.

While wheel scrolling, there are multiple wheel inputs comming from OS, in every
wheel input we do use the destination of the animation running at that moment
[1].  So if in the first wheel input we created a smooth animation for snapping
to the SnapDestination, and then in the second wheel input
GetSnapPointForDestination doesn't return any valid SnapDestination so that the
smooth animation is clobbered [2].

To avoid this bad side-effect, we do skip scroll snapping in the call site,
ScrollContainerFrame::ScrollSnap, if the snap position equals to the original
scroll destination.

[1] https://searchfox.org/mozilla-central/rev/53e8dfd81c32f1ab275516406ec06a68136aaef0/gfx/layers/apz/src/AsyncPanZoomController.cpp#2585-2586
[2] https://searchfox.org/mozilla-central/rev/53e8dfd81c32f1ab275516406ec06a68136aaef0/gfx/layers/apz/src/AsyncPanZoomController.cpp#2603

Differential Revision: https://phabricator.services.mozilla.com/D227409
2024-11-02 06:37:14 +00:00
Goloman Adrian
9d883be990 Backed out changeset 5b6fb5d517d3 (bug 1922904) for causing wpt failures at prefer-targeted-element-positioned.html. CLOSED TREE 2024-11-02 06:23:09 +02:00
Hiroyuki Ikezoe
7ba69c6d21 Bug 1922904 - Fix bug 1780701 in a different approach. r=botond
In bug 1780701, we changed ScrollSnapUtils::GetSnapPointForDestination not to
return a valid SnapDestination if the snap position is equal to the original
scroll destination. But it has a bad side-effect on wheel scrolling.

While wheel scrolling, there are multiple wheel inputs comming from OS, in every
wheel input we do use the destination of the animation running at that moment
[1].  So if in the first wheel input we created a smooth animation for snapping
to the SnapDestination, and then in the second wheel input
GetSnapPointForDestination doesn't return any valid SnapDestination so that the
smooth animation is clobbered [2].

To avoid this bad side-effect, we do skip scroll snapping in the call site,
ScrollContainerFrame::ScrollSnap, if the snap position equals to the original
scroll destination.

[1] https://searchfox.org/mozilla-central/rev/53e8dfd81c32f1ab275516406ec06a68136aaef0/gfx/layers/apz/src/AsyncPanZoomController.cpp#2585-2586
[2] https://searchfox.org/mozilla-central/rev/53e8dfd81c32f1ab275516406ec06a68136aaef0/gfx/layers/apz/src/AsyncPanZoomController.cpp#2603

Differential Revision: https://phabricator.services.mozilla.com/D227409
2024-11-01 22:23:07 +00:00
Hiroyuki Ikezoe
f49f73072b Bug 1858798 - Ignore any target snap points in the case of empty snapport. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D226574
2024-10-25 21:13:34 +00:00
Hiroyuki Ikezoe
0f8e5e370e Bug 1911457 - Do a reflow on the root scroll container when the horizontal overflow area is changed to recompute minimum-scale size. r=layout-reviewers,emilio
On mobile environments, the `minimum-scale` size, which allows users to zoom
out to scales less than 1.0, should include the ICB's overflow, even when
`overflow-x:hidden` is specified on the root element.

This change ensures that we update the `minimum-scale` size when the overflow
of the ICB changes.

Differential Revision: https://phabricator.services.mozilla.com/D226416
2024-10-23 07:01:27 +00:00
Tamas Szentpeteri
e1227b3ba7 Backed out changeset 3033cffb3c50 (bug 1911457) for causing Wr failures on transform-3d-scales-different-x-y-dynamic-002.html. CLOSED TREE 2024-10-23 09:42:33 +03:00
Hiroyuki Ikezoe
3687fc5869 Bug 1911457 - Do a reflow on the root scroll container when the horizontal overflow area is changed to recompute minimum-scale size. r=layout-reviewers,emilio
On mobile environments, the `minimum-scale` size, which allows users to zoom
out to scales less than 1.0, should include the ICB's overflow, even when
`overflow-x:hidden` is specified on the root element.

This change ensures that we update the `minimum-scale` size when the overflow
of the ICB changes.

Differential Revision: https://phabricator.services.mozilla.com/D226416
2024-10-23 02:22:02 +00:00
Alexandru Marc
9d18bfafd9 Backed out changeset e88ac6f27379 (bug 1925476) as requested by Emilio for causing wpt failures. CLOSED TREE 2024-10-18 16:32:55 +03:00
Emilio Cobos Álvarez
9b80f0fb36 Bug 1925476 - Remove ScrollContainerFrame::DidReflow. r=jwatt
It's not needed, ReflowFinished runs less often but still
unconditionally for scroll containers when we reflow, so it's a fine
place to post async work.

Differential Revision: https://phabricator.services.mozilla.com/D226116
2024-10-18 12:09:37 +00:00
Florian Quèze
d15ab35ea1 Bug 1921237 - Remove the FX_REFRESH_DRIVER_SYNC_SCROLL_FRAME_DELAY_MS telemetry histogram, r=botond.
Differential Revision: https://phabricator.services.mozilla.com/D223750
2024-10-10 18:40:00 +00:00
Botond Ballo
a85f935913 Bug 1922865 - Define ScrollContainerFrame::GetScrollPortRectAccountingForMaxDynamicToolbar() out of line. r=hiro,TYLin
Differential Revision: https://phabricator.services.mozilla.com/D224619
2024-10-08 00:21:10 +00:00
Emilio Cobos Álvarez
1b1dfeb153 Bug 1922571 - Remove some unneeded use of compiler_specific.h outside of ipc. r=nika
We don't build with MSVC, so no need for any of this.

Differential Revision: https://phabricator.services.mozilla.com/D224503
2024-10-04 08:00:42 +00:00
Emilio Cobos Álvarez
8b9e0c00d4 Bug 1914154 - Fix how we deal with APZ scrollbar activity. r=hiro
For the vertical tab bar, probably due to how it re-implements
scrolling[1], we get multiple eTransformBegin state changes, but a
single eTransformEnd.

That ends up with a permanently-positive activity counter, which leaves
the scrollbar visible.

There might be an underlying APZ bug here, not sure if mismatched events
are expected, but it seems other handlers deal with this mostly
correctly, and the fix on layout's end is rather trivial, too, so this
seems worth doing.

[1]: https://searchfox.org/mozilla-central/rev/26a98a7ba56f315df146512c43449412f0592942/toolkit/content/widgets/arrowscrollbox.js#640-718

Differential Revision: https://phabricator.services.mozilla.com/D222431
2024-09-18 15:01:19 +00:00
Emilio Cobos Álvarez
117a44742f Bug 1918762 - Use ElementState rather than the hover attribute to determine scrollbar hover state. r=mac-reviewers,mstange
That's what we use for painting in all platforms except macOS with
overlay scrollbars, where we make it sticky. Make the stickiness more
explicit (this also fixes the sticky state getting cleaned up too
early).

Differential Revision: https://phabricator.services.mozilla.com/D222161
2024-09-17 08:08:20 +00:00
Ting-Yu Lin
6af05a0977 Bug 1909761 Part 2 - Create a helper struct IntrinsicSizeInput to aggregate needed data when computing intrinsic inline size. r=dholbert
This patch changes the signature to `GetMinISize()`, `GetPrefISize()`,
`IntrinsicISize` by adding a helper struct as a preparation. Then we can just
add more data such as a percentage basis to the struct without altering the
signature in the future.

When passing `IntrinsicSizeInput` struct down to another helper method, we
generally just pass the original one if the method is computing the intrinsic
size of our own or our anonymous children. If the method is computing our
children's intrinsic contribution, we'll need to create a brand new
`IntrinsicSizeInput` for our children.

Differential Revision: https://phabricator.services.mozilla.com/D219521
2024-09-03 04:25:41 +00:00
Butkovits Atila
4d06404349 Backed out 6 changesets (bug 1909761) for causing failures at test_contextmenu_rtl.xhtml. CLOSED TREE
Backed out changeset 1e9f47784a54 (bug 1909761)
Backed out changeset d2dcf159185b (bug 1909761)
Backed out changeset 3f48c106bff9 (bug 1909761)
Backed out changeset 38d1e5eda09d (bug 1909761)
Backed out changeset 8de556490289 (bug 1909761)
Backed out changeset 4e7f22f43bb4 (bug 1909761)
2024-08-28 10:44:09 +03:00
Ting-Yu Lin
f0ff97db90 Bug 1909761 Part 2 - Create a helper struct IntrinsicSizeInput to aggregate needed data when computing intrinsic inline size. r=dholbert
This patch changes the signature to `GetMinISize()`, `GetPrefISize()`,
`IntrinsicISize` by adding a helper struct as a preparation. Then we can just
add more data such as a percentage basis to the struct without altering the
signature in the future.

When passing `IntrinsicSizeInput` struct down to another helper method, we
generally just pass the original one if the method is computing the intrinsic
size of our own or our anonymous children. If the method is computing our
children's intrinsic contribution, we'll need to create a brand new
`IntrinsicSizeInput` for our children.

Differential Revision: https://phabricator.services.mozilla.com/D219521
2024-08-28 06:18:44 +00:00
Ting-Yu Lin
a024d0e616 Bug 1914661 Part 3 - Add ReflowInput::SetBResizeForPercentages(). r=dholbert
We have `SetBResize()`, so it would be useful to add a method to set
`mIsBResizeForPercentages` flag for consistency.

Differential Revision: https://phabricator.services.mozilla.com/D220023
2024-08-23 19:52:50 +00:00
Emilio Cobos Álvarez
a012cd6770 Bug 1906475 - Improve scroll{Width,Height} implementation for overflow: visible frames. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D218782
2024-08-15 15:02:00 +00:00
Ting-Yu Lin
2969a5e0cb Bug 1909995 Part 2 - Add IntrinsicISize() as a helper to implement GetMinISize() and GetPrefISize(). r=layout-reviewers,emilio
Most frame types have identical or very similar implementation for GetMinISize()
and GetPrefISize(), and many of them already have `IntrinsicISize()` to unify
the implementation. This patch introduces nsIFrame::IntrinsicISize() so that
derived classes only need to override one method.

`nsBlockFrame`, `ColumnSetWrapperFrame`, and `nsColumnSetFrame` are the only
three classes where their `GetMinISize()` and `GetPrefISize()` have significant
differences. Therefore, we rename `GetMinISize()` and `GetPrefISize()` to
`MinISize()` and `PrefISize`, respectively, and use them as helpers to implement
their `IntrinsicISize()`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D217790
2024-07-26 20:54:56 +00:00
Emilio Cobos Álvarez
d25d53b6fc Bug 1909311 - Remove nsIFormControlFrame and nsITextControlFrame. r=masayuki,layout-reviewers,dholbert
It's a rather useless interface:

 * nsITextControlFrame is only implemented by nsTextControlFrame, so we
   can just use that.
 * nsIFormControlFrame had very few actual functionality, mostly
   scattered around:
    * SetFormProperty(select) was only useful for nsTextControlFrame.
    * SetFormProperty(value) was only called on file controls.
    * SetFocus() did mostly nothing, or things that can be done in
      ElementStateChanged instead.

There are some do_QueryFrame calls that I replaced for better checks in
font inflation and nsIFrame, but I'll adjust to preserve behavior if you
insist (it just such a somewhat-random check).

Differential Revision: https://phabricator.services.mozilla.com/D217322
2024-07-23 16:16:18 +00:00
Emilio Cobos Álvarez
cf22f69bc6 Bug 1908242 - Make sure that sticky items are processed in the right order. r=TYLin
We rely on positioning ancestors before descendants to get the right
position. This was very implicitly enforced before the regressing bug,
by reframing on position changes (due to the order
StickyScrollContainer::AddFrame was called, ancestors before children).

In order to support dynamic sticky changes without reframing, we need to
handle the case of an existing ancestor switching position to sticky
dynamically.

Luckily we already have the right data-structure for that, so the change
is rather trivial.

Write a testharness test for this because APZ does get the position
right, so it's more future-proof against regressions to just test the
raw layout values.

Differential Revision: https://phabricator.services.mozilla.com/D216858
2024-07-18 20:54:13 +00:00
Emilio Cobos Álvarez
9b231b189e Bug 1788504 - Account for current dynamic toolbar state in IntersectionObserver. r=emilio
Chrome uses bimodal layout viewport for IntersectionObserver;

a) While the dynamic toolbar is visible, Chrome uses the layout viewport
   (which doesn't include the dynamic toolbar area)
b) While the dynamic toolbar is completely hidden, Chrome uses the layout
  viewport + the height that the dynamic toolbar was originally occupied.

In this change we align the behavior with Chrome's behavior.

Differential Revision: https://phabricator.services.mozilla.com/D212920
2024-07-18 07:08:16 +00:00
Hiroyuki Ikezoe
022e99a431 Bug 1905247 - Clamp scroll-snap-align: start snap points inside the scroll range. r=emilio
This change is basically equivalent with what we did for bug 1788029 but for
`scroll-snap-align: start` cases.

The test case was originally written by Daniel Holbert.

Differential Revision: https://phabricator.services.mozilla.com/D215315
2024-07-02 21:53:14 +00:00
Hiroyuki Ikezoe
44d88fd9fa Bug 1905247 - Convert logicalScrollRange into writingMode. r=emilio
`logicalScrollRange` is used to clamp each candidate snap position inside the
scroll range. If we used `aWritingModeOnScroller` for `logicalScrollRange`,
clamping will be done in a wrong axis in some cases.

With the next commit but without this change running
scroll-snap-writing-mode-000.html [1] causes a lot of
"ASSERTION: writing-mode mismatch" warnings.

[1] https://searchfox.org/mozilla-central/rev/16a5f0e868a01d3f3a4a7364206bef2a64e80735/testing/web-platform/tests/css/css-scroll-snap/snap-after-initial-layout/scroll-snap-writing-mode-000.html

Differential Revision: https://phabricator.services.mozilla.com/D215314
2024-07-02 21:53:14 +00:00
Tamas Szentpeteri
46bb293ba2 Backed out 2 changesets (bug 1905247) for causing wpt failures on unreachable-snap-positions-003.html. CLOSED TREE
Backed out changeset 9345fa484aa6 (bug 1905247)
Backed out changeset 667e49b7e734 (bug 1905247)
2024-07-02 11:44:03 +03:00
Hiroyuki Ikezoe
0d71b901ca Bug 1905247 - Clamp scroll-snap-align: start snap points inside the scroll range. r=emilio
This change is basically equivalent with what we did for bug 1788029 but for
`scroll-snap-align: start` cases.

The test case was originally written by Daniel Holbert.

Differential Revision: https://phabricator.services.mozilla.com/D215315
2024-07-02 06:58:25 +00:00
Hiroyuki Ikezoe
ba2379cc52 Bug 1905247 - Convert logicalScrollRange into writingMode. r=emilio
`logicalScrollRange` is used to clamp each candidate snap position inside the
scroll range. If we used `aWritingModeOnScroller` for `logicalScrollRange`,
clamping will be done in a wrong axis in some cases.

With the next commit but without this change running
scroll-snap-writing-mode-000.html [1] causes a lot of
"ASSERTION: writing-mode mismatch" warnings.

[1] https://searchfox.org/mozilla-central/rev/16a5f0e868a01d3f3a4a7364206bef2a64e80735/testing/web-platform/tests/css/css-scroll-snap/snap-after-initial-layout/scroll-snap-writing-mode-000.html

Differential Revision: https://phabricator.services.mozilla.com/D215314
2024-07-02 06:58:25 +00:00
Emilio Cobos Álvarez
4dd10dfc9b Bug 1900223 - Remove no longer used function on android.
MANUAL PUSH: Trivial android bustage fix CLOSED TREE.
2024-06-04 01:07:09 +02:00
Emilio Cobos Álvarez
dfa0126958 Bug 1900223 - Remove ScrollContainerFrame::IsForTextControlWithNoScrollbars. r=TYLin,layout-reviewers
We can just use CSS for these nowadays.

Differential Revision: https://phabricator.services.mozilla.com/D212372
2024-06-03 22:38:33 +00:00
Gregory Pappas
43aeadda35 Bug 1898445 - Add new pref for presence of overflow/underflow events in extension documents r=extension-reviewers,emilio,willdurand
Differential Revision: https://phabricator.services.mozilla.com/D211324
2024-06-03 20:22:12 +00:00
Ting-Yu Lin
c199401870 Bug 1899345 Part 2 - Rename GetOverflowState() and use PhysicalAxes as its return type. r=layout-reviewers,emilio
`OverflowState` is equivalent to `PhysicalAxes`. We really don't need a separate
type.

Differential Revision: https://phabricator.services.mozilla.com/D211942
2024-05-30 17:58:25 +00:00
Ting-Yu Lin
b1f98ce7d1 Bug 1896516 Part 13 - Remove nsIScrollableFrame completely. r=layout-reviewers,emilio
This patch moves the documentation from `nsIScrollableFrame.h` to
`ScrollContainerFrame.h`. We keep methods in the original order as they were in
`nsIScrollableFrame`.

Differential Revision: https://phabricator.services.mozilla.com/D211500
2024-05-30 06:32:23 +00:00
Ting-Yu Lin
a9397b0f0a Bug 1896516 Part 12 - Tidy up ScrollContainerFrame's interface. r=layout-reviewers,emilio
The motivation of this patch is that we've now switched all the callers from
`nsIScrollableFrame` to `ScrollContainerFrame`, and it is better to audit the
access control of `ScrollContainerFrame`'s interface, and I notice almost all
the member variables are public!

This patch shuffle the interface so that there are only one public, protected,
and private section, and all the member variables are moved to the private
section.

`AutoMinimumScaleSizeChangeDetector` and `RemoveDisplayPortCallback` need to
access member variables, so by declaring them under `ScrollContainerFrame`, they
have the privilege to do so.

Ideally, the caller only need to access what are already in
`nsIScrollableFrame`, so currently we might expose more methods than necessary.
We can audit that in a later part.

Differential Revision: https://phabricator.services.mozilla.com/D211499
2024-05-30 06:32:22 +00:00
Ting-Yu Lin
5cdee429ce Bug 1896516 Part 11 - Remove nsIScrollableFrame usages under layout/, widget/, and toolkit/. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D211498
2024-05-30 06:32:22 +00:00
Ting-Yu Lin
f59e487e79 Bug 1896516 Part 5 - Fix build errors after including ScrollContainerFrame.h under dom/animation/. r=layout-reviewers,boris
This is a preparation to remove `#include "nsIScrollableFrame.h"` for
ScrollTimeline.cpp and ViewTimeline.cpp.

Move the implementation of `nsListControlFrame::GetMultiple()` to cpp. Keeping
it inline requires adding `#include "mozilla/dom/Element.h"` in the header, and
I don't feel the method is hot enough to be inlined.

Differential Revision: https://phabricator.services.mozilla.com/D211492
2024-05-30 06:32:19 +00:00
Ting-Yu Lin
14aebc5bf9 Bug 1896516 Part 1 - Rename PresShell::GetRootScrollFrame(), and make it return ScrollContainerFrame. r=layout-reviewers,emilio
In theory, changing the return type from `nsIFrame*` to `ScrollContainerFrame*`
exposes `ScrollContainerFrame` to the callers who might not needed, but almost
all of the callers in cpp files are already exposed to `nsIScrollableFrame`, as
demonstrated in this patch via replacing the #include from
"nsIScrollableFrame.h" to "ScrollContainerFrame.h", so this is OK.

Some callers can be simplified since we no longer need `do_QueryFrame` to
`nsIScrollableFrame`.

Differential Revision: https://phabricator.services.mozilla.com/D211488
2024-05-30 06:32:17 +00:00
Sebastian Hengst
bf4dfe53f8 Backed out 15 changesets (bug 1896516) for causing scrolling crashes on macOS. a=backout
Backed out changeset fd6904338812 (bug 1896516)
Backed out changeset 2977ff81a23e (bug 1896516)
Backed out changeset c8a6b0e526d6 (bug 1896516)
Backed out changeset 3c06f22da72b (bug 1896516)
Backed out changeset f63b0c4335fe (bug 1896516)
Backed out changeset 6f7ab8adfa6e (bug 1896516)
Backed out changeset 997c9249dbed (bug 1896516)
Backed out changeset c964fccd5180 (bug 1896516)
Backed out changeset 7b481b747b7a (bug 1896516)
Backed out changeset 42e1bbe0ecb6 (bug 1896516)
Backed out changeset 717dac08b607 (bug 1896516)
Backed out changeset 2f0817331dbe (bug 1896516)
Backed out changeset b765169a7a8f (bug 1896516)
Backed out changeset a2d37b98273c (bug 1896516)
Backed out changeset ea9ecb543e66 (bug 1896516)
2024-05-29 11:22:52 +02:00
Sebastian Hengst
18041c50bb Backed out 2 changesets (bug 1899345) for conflicting with backout of bug 1896516
Backed out changeset b96c165e9ab4 (bug 1899345)
Backed out changeset 01a540f73690 (bug 1899345)
2024-05-29 11:21:39 +02:00
Ting-Yu Lin
a05644f95e Bug 1899345 Part 2 - Rename GetOverflowState() and use PhysicalAxes as its return type. r=layout-reviewers,emilio
`OverflowState` is equivalent to `PhysicalAxes`. We really don't need a separate
type.

Differential Revision: https://phabricator.services.mozilla.com/D211942
2024-05-29 05:10:38 +00:00