Commit graph

1800 commits

Author SHA1 Message Date
Ting-Yu Lin
19a0c5fb59 Bug 1819211 - Export Baseline.h under mozilla. r=emilio
It is because `Baseline` is a utility class under `namespace mozilla`.

Also change the include guard to match the coding style.
https://firefox-source-docs.mozilla.org/code-quality/coding-style/coding_style_cpp.html#header-files

Differential Revision: https://phabricator.services.mozilla.com/D171162
2023-03-01 03:50:03 +00:00
David Shin
e9eaa316b3 Bug 1815729: Replace GetCaretBaseline with GetCaretBlockAxisMetrics. r=emilio
Callers of `GetCaretBaseline` just use it to get offset and size of the caret, so
refactor the shared logic. In the call sites, delay conversion of logical to physical
rect to reduce variable shuffling.

Differential Revision: https://phabricator.services.mozilla.com/D169210
2023-02-24 17:26:44 +00:00
David Shin
f5a42005e2 Bug 1811311 - Part 3: Refactor GetNaturalBaselineBOffset to return Maybe<nscoord>. r=layout-reviewers,emilio
Changed from returning `bool` & taking an out parameter.

Differential Revision: https://phabricator.services.mozilla.com/D168998
2023-02-23 14:53:27 +00:00
David Shin
e02d078c12 Bug 1811311 - Part 2: Extract SynthesizeBaselineBOffsetFrom* out of nsIFrame. r=emilio
These functions work fine as static functions, and `nsIFrame` is pretty overloaded.

Differential Revision: https://phabricator.services.mozilla.com/D167991
2023-02-23 14:53:27 +00:00
David Shin
5c7c22165f Bug 1811311 - Part 1: Unite baseline-related functions in nsIFrame into one. r=emilio
Before, there existed 3 virtual functions that calculated baselines:

- `GetLogicalBaseline`
- `GetVerticalAlignBaseline`
- `GetNaturalBaselineBOffset`

Each of them had slightly different behaviours:

- `GetLogicalBaseline` would synthesize a baseline if there is no baseline.
  Others would simply return `false`.
- `GetNaturalBaselineBOffset` requires the caller to pick which of first/last
  baseline to calculate. Others pick on on their own.
- `GetNaturalBaselineBOffset`'s result can be either offset from border box
   start/end edge, depending on the caller-supplied baseline. Others always
   return offset from border box start edge.

Now:

- `GetNaturalBaselineBOffset` is the sole virtual function.
- `GetLogicalBaseline` exists to support its use, with 2 virtual helper functions:
  - `SynthesizeFallbackBaseline` to generate a baseline for elements that
    doesn't have one.
  - `GetBaselineSharingGroup` to preserve the default baseline picking behaviour.

Differential Revision: https://phabricator.services.mozilla.com/D167990
2023-02-23 14:53:26 +00:00
Robert Longson
824c238c5e Bug 1817413 - add const to various method signatures or allow them to be given const pointers r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D170188
2023-02-17 12:47:27 +00:00
Robert Longson
2ec308723b Bug 1651129 - Convert uses of mState to various StateBits methods and make mState private r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D169943
2023-02-15 21:35:46 +00:00
James Teh
8cd27f807a Bug 1775684 part 1: Ignore frame visibility when caching focusable state for a11y. r=morgan,emilio
See the code comment in LocalAccessible::NativeInteractiveState for explanation.

Differential Revision: https://phabricator.services.mozilla.com/D168910
2023-02-09 04:50:53 +00:00
Emilio Cobos Álvarez
cfc856d950 Bug 1814047 - Make buttons not ignore the "print backgrounds" setting. r=jfkthame,layout-reviewers
We were ignoring print backgrounds, but still darkening colors, which
obviously breaks.

I tracked this down to bug 191574 /
https://searchfox.org/mozilla-central/commit/0757c0a5b18b646554969a67eedf2bcb0ad41b63

> Make sure all caller have to pass in the "ignore 'print backgrounds'
> Make block/inline _not_ ignore that pref

Which was just preserving behavior. So this seems all rather accidental.

Implement backgrounds for page / page sequence frame using
print-color-adjust, and remove the virtual method.

The XUL box removal stuff seems harmless. The only XUL boxes we have
around in content are scrollbars, and we don't have scrollbars when
printing.

Differential Revision: https://phabricator.services.mozilla.com/D168382
2023-01-31 22:22:58 +00:00
Robert Longson
7e999d0a90 Bug 1814026 - Remove IsSVGGeometryFrameOrSubclass and improve SVGGeometryFrame::IsInvisible r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D168367
2023-01-31 21:26:19 +00:00
Jan-Niklas Jaeschke
fa75d3a60f Bug 1803355: Basic implementation of Custom Highlight API. r=edgar,emilio
Added WebIDL interfaces as per spec, added some necessary changes to support maplike and setlike structures to be accessed from C++.

Added `::highlight(foo)` pseudo element to CSS engine.

Implemented Highlight as new kind of `Selection` using `HighlightType::eHighlight`. This implies Selections being added/removed during runtime (one `Selection` object per highlight identifier), therefore a dynamic container for highlight `Selection` objects was added to `nsFrameSelection`. Also, the painting code queries the highlight style for highlight Selections.

Implementation is currently hidden behind a pref `dom.customHighlightAPI.enabled`.

Differential Revision: https://phabricator.services.mozilla.com/D164203
2023-01-27 11:42:18 +00:00
James Teh
ed23883a3a Bug 1812208: Push a cache update if bounds change as a result of a frame moving even though it wasn't reflowed. r=morgan,emilio
A frame doesn't have to be reflowed to change its position.
For example, if there is a container c followed by a node outside the container o, inserting a node into c reflows c, but moves o down the page without reflowing o.
In this case, we previously weren't being notified that there was a possible bounds change, which meant we weren't updating the cache.
Now, we get notified about frames moving regardless of reflow.
Since this notification includes changes to CSS left/right/top/bottom, we can also remove the code added in bug 1774705 to explicitly watch for changes to these properties.

Differential Revision: https://phabricator.services.mozilla.com/D167645
2023-01-25 03:03:53 +00:00
Sandor Molnar
4c4d29b581 Backed out changeset d7f27aa40260 (bug 1803355) for causing win build bustage. 2023-01-24 18:07:50 +02:00
Jan-Niklas Jaeschke
1b3bff372b Bug 1803355: Basic implementation of Custom Highlight API. r=edgar,emilio
Added WebIDL interfaces as per spec, added some necessary changes to support maplike and setlike structures to be accessed from C++.

Added `::highlight(foo)` pseudo element to CSS engine.

Implemented Highlight as new kind of `Selection` using `HighlightType::eHighlight`. This implies Selections being added/removed during runtime (one `Selection` object per highlight identifier), therefore a dynamic container for highlight `Selection` objects was added to `nsFrameSelection`. Also, the painting code queries the highlight style for highlight Selections.

Implementation is currently hidden behind a pref `dom.customHighlightAPI.enabled`.

Differential Revision: https://phabricator.services.mozilla.com/D164203
2023-01-24 11:46:28 +00:00
Sandor Molnar
a610ef723a Backed out changeset 54771a1963b6 (bug 1803355) for causing win build bustage. CLOSED TREE 2023-01-24 12:17:49 +02:00
Jan-Niklas Jaeschke
99eb703228 Bug 1803355: Basic implementation of Custom Highlight API. r=edgar,emilio
Added WebIDL interfaces as per spec, added some necessary changes to support maplike and setlike structures to be accessed from C++.

Added `::highlight(foo)` pseudo element to CSS engine.

Implemented Highlight as new kind of `Selection` using `HighlightType::eHighlight`. This implies Selections being added/removed during runtime (one `Selection` object per highlight identifier), therefore a dynamic container for highlight `Selection` objects was added to `nsFrameSelection`. Also, the painting code queries the highlight style for highlight Selections.

Implementation is currently hidden behind a pref `dom.customHighlightAPI.enabled`.

Differential Revision: https://phabricator.services.mozilla.com/D164203
2023-01-24 07:36:13 +00:00
Noemi Erli
aec839cbc8 Backed out changeset 759d4948ed8b (bug 1803355) for causing build bustages CLOSED TREE 2023-01-22 05:03:04 +02:00
Jan-Niklas Jaeschke
0a52844148 Bug 1803355: Basic implementation of Custom Highlight API. r=edgar,emilio
Added WebIDL interfaces as per spec, added some necessary changes to support maplike and setlike structures to be accessed from C++.

Added `::highlight(foo)` pseudo element to CSS engine.

Implemented Highlight as new kind of `Selection` using `HighlightType::eHighlight`. This implies Selections being added/removed during runtime (one `Selection` object per highlight identifier), therefore a dynamic container for highlight `Selection` objects was added to `nsFrameSelection`. Also, the painting code queries the highlight style for highlight Selections.

Implementation is currently hidden behind a pref `dom.customHighlightAPI.enabled`.

Differential Revision: https://phabricator.services.mozilla.com/D164203
2023-01-22 02:04:43 +00:00
Martin Robinson
162cce2f3e Bug 1663685 - Do not apply content-visibility to elements with a principal internal table box r=emilio
The code for determining this is now shared with that for `contain: size`,
since the specification says that `content-visibility` follows `contain:
size` in determining applicability.

Differential Revision: https://phabricator.services.mozilla.com/D166689
2023-01-13 09:13:58 +00:00
Oriol Brufau
9faf37cc47 Bug 1806902 - Avoid assert failure in LastRememberedSizeCallback. r=emilio
HandleLastRememberedSize() only observes an element when HidesContent()
is false, so LastRememberedSizeCallback() expects it to still be false.

The problem was that it could change due to nsIFrame::Init() doing
ClearContentRelevancy().

It seems weird to use ClearContentRelevancy() for non-primary frames,
so this patch adds a InitPrimaryFrame() method which is called when a
frame becomes primary, and takes care of ClearContentRelevancy() and
HandleLastRememberedSize().

Differential Revision: https://phabricator.services.mozilla.com/D165463
2022-12-27 01:50:41 +00:00
Emily McDonough
b010741cdc Bug 1804772 - Make nsIFrame::GetStartPageValue/nsIFrame::GetEndPageValue constant complexity by copying over the PageValuesProperty value when creating frame continuations. r=dholbert
This was causing layout/generic/crashtests/1683126.html to timeout with named
pages enabled.

It is possible for a frame's PageValues struct to have both the start and end
values be set to null as further children are added. In that case, we can
avoid doing an extra allocation for each of that frame's continuations, as a
small optimization.

Differential Revision: https://phabricator.services.mozilla.com/D164266
2022-12-09 21:01:53 +00:00
Butkovits Atila
d2cbc72bd6 Backed out changeset 4af3a83487c7 (bug 1804772) for causing build bustages at nsCSSFrameConstructor.cpp. CLOSED TREE 2022-12-09 01:17:36 +02:00
Emily McDonough
e7f6b82578 Bug 1804772 - Make nsIFrame::GetStartPageValue/nsIFrame::GetEndPageValue constant complexity by copying over the PageValuesProperty value when creating frame continuations. r=dholbert
This was causing layout/generic/crashtests/1683126.html to timeout with named
pages enabled.

It is possible for a frame's PageValues struct to have both the start and end
values be set to null as further children are added. In that case, we can
avoid doing an extra allocation for each of that frame's continuations, as a
small optimization.

Differential Revision: https://phabricator.services.mozilla.com/D164266
2022-12-08 22:04:14 +00:00
Oriol Brufau
8503cb2ad0 Bug 1803928 - Make mContain and mEffectiveContainment private. r=emilio
Depends on D163779

Differential Revision: https://phabricator.services.mozilla.com/D163783
2022-12-05 11:59:38 +00:00
Csoregi Natalia
331968b159 Backed out 2 changesets (bug 1803928) for causing content-visibility failures. CLOSED TREE
Backed out changeset dcabb419cdbe (bug 1803928)
Backed out changeset 5b1393c957ab (bug 1803928)
2022-12-05 00:24:24 +02:00
Oriol Brufau
bf4845408c Bug 1803928 - Make mContain and mEffectiveContainment private. r=emilio
Depends on D163779

Differential Revision: https://phabricator.services.mozilla.com/D163783
2022-12-04 20:36:08 +00:00
Martin Robinson
281ff8ade5 Bug 1791759 - Add support for content-visibility: auto r=emilio
This change adds support for `content-visibilty: auto` as well as
showing and hiding content based on the relevancy of the content as
defined in the specification. Changes to relevancy are handled by
triggering updates in a set of `content-visibility: auto` frames stored
in PresShell at the appropriate time in the document lifecycle.

Some tests are now failing due to this feature exposing the failures,
but they will be fixed in later changes.

This change is a reland of an earlier version that properly updates
intrinsic sizes and triggers an update of remembered size for the
purposes of contain-intrinsic-size when content relevancy changes.

Co-authored-by: Jihye Hong <jihye@igalia.com>

Differential Revision: https://phabricator.services.mozilla.com/D159693
2022-11-30 18:00:27 +00:00
Emilio Cobos Álvarez
af7548c6d5 Bug 1802142 - Remove layer="" attribute support from XUL elements. r=tnikkel,layout-reviewers
No remaining users.

Depends on D162851

Differential Revision: https://phabricator.services.mozilla.com/D162852
2022-11-29 04:52:33 +00:00
Botond Ballo
5ed0b2dc47 Bug 1802225 - Remove class Layer. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D162930
2022-11-29 01:52:01 +00:00
Marian-Vasile Laza
f4d4ce0e21 Backed out changeset c428c3ad7725 (bug 1791759) for causing wpt failures on auto-012.html. CLOSED TREE 2022-11-28 13:31:05 +02:00
Martin Robinson
e26b2a32b9 Bug 1791759 - Add support for content-visibility: auto r=emilio
This change adds support for `content-visibilty: auto` as well as
showing and hiding content based on the relevancy of the content as
defined in the specification. Changes to relevancy are handled by
triggering updates in a set of `content-visibility: auto` frames stored
in PresShell at the appropriate time in the document lifecycle.

Some tests are now failing due to this feature exposing the failures,
but they will be fixed in later changes.

Co-authored-by: Jihye Hong <jihye@igalia.com>

Differential Revision: https://phabricator.services.mozilla.com/D159693
2022-11-28 09:53:06 +00:00
Ting-Yu Lin
514d412f9b Bug 1799732 Part 3 - Convert FrameChildListID to enum class. r=emilio
This patch is first generated by the following script under gecko root folder.

```
#!/bin/bash

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "kPrincipalList" "FrameChildListID::Principal"
rename "kPopupList" "FrameChildListID::Popup"
rename "kCaptionList" "FrameChildListID::Caption"
rename "kColGroupList" "FrameChildListID::ColGroup"
rename "kAbsoluteList" "FrameChildListID::Absolute"
rename "kFixedList" "FrameChildListID::Fixed"
rename "kOverflowList" "FrameChildListID::Overflow"
rename "kOverflowContainersList" "FrameChildListID::OverflowContainers"
rename "kExcessOverflowContainersList" "FrameChildListID::ExcessOverflowContainers"
rename "kOverflowOutOfFlowList" "FrameChildListID::OverflowOutOfFlow"
rename "kFloatList" "FrameChildListID::Float"
rename "kBulletList" "FrameChildListID::Bullet"
rename "kPushedFloatsList" "FrameChildListID::PushedFloats"
rename "kBackdropList" "FrameChildListID::Backdrop"
rename "kNoReflowPrincipalList" "FrameChildListID::NoReflowPrincipal"
```

And then:
1. Manually fix `FrameChildListID` definition in nsFrameList.h.
2. Apply clang-format.

Differential Revision: https://phabricator.services.mozilla.com/D161864
2022-11-12 04:38:53 +00:00
Ting-Yu Lin
c565d29604 Bug 1799732 Part 2 - Flatten the namespace for FrameChildList and co. by removing namespace layout. r=emilio
After moving FrameChildListID into mozilla namespace, `kPrincipalList` etc. are
also exposed in the mozilla namespace. In the next part, I'll convert
FrameChildListID enum into an enum class, so the naming pollution shouldn't be
an issue.

This patch has a nice side effect that it is now easier to remove all the
aliases of FrameChildListID (`kPrincipalList` etc.) defined in multiple places
since it is confusion to have the same thing written in different ways, e.g.
`nsIFrame::kPrincipalList`, `mozilla::layout::kPrincipalList`,
`FrameChildListID::kPrincipalList`, `kPrincipalList`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D161863
2022-11-12 04:38:53 +00:00
Noemi Erli
7c40c0e983 Backed out 3 changesets (bug 1799732) for causing build bustages in nsIFrame.cpp CLOSED TREE
Backed out changeset e559f9dbc76f (bug 1799732)
Backed out changeset c40fda7a8b0b (bug 1799732)
Backed out changeset 1f84bfb41ab8 (bug 1799732)
2022-11-12 02:16:45 +02:00
Ting-Yu Lin
192956df1b Bug 1799732 Part 3 - Convert FrameChildListID to enum class. r=emilio
This patch is first generated by the following script under gecko root folder.

```
#!/bin/bash

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "kPrincipalList" "FrameChildListID::Principal"
rename "kPopupList" "FrameChildListID::Popup"
rename "kCaptionList" "FrameChildListID::Caption"
rename "kColGroupList" "FrameChildListID::ColGroup"
rename "kAbsoluteList" "FrameChildListID::Absolute"
rename "kFixedList" "FrameChildListID::Fixed"
rename "kOverflowList" "FrameChildListID::Overflow"
rename "kOverflowContainersList" "FrameChildListID::OverflowContainers"
rename "kExcessOverflowContainersList" "FrameChildListID::ExcessOverflowContainers"
rename "kOverflowOutOfFlowList" "FrameChildListID::OverflowOutOfFlow"
rename "kFloatList" "FrameChildListID::Float"
rename "kBulletList" "FrameChildListID::Bullet"
rename "kPushedFloatsList" "FrameChildListID::PushedFloats"
rename "kBackdropList" "FrameChildListID::Backdrop"
rename "kNoReflowPrincipalList" "FrameChildListID::NoReflowPrincipal"
```

And then:
1. Manually fix `FrameChildListID` definition in nsFrameList.h.
2. Apply clang-format.

Differential Revision: https://phabricator.services.mozilla.com/D161864
2022-11-11 23:44:17 +00:00
Ting-Yu Lin
75940b1777 Bug 1799732 Part 2 - Flatten the namespace for FrameChildList and co. by removing namespace layout. r=emilio
After moving FrameChildListID into mozilla namespace, `kPrincipalList` etc. are
also exposed in the mozilla namespace. In the next part, I'll convert
FrameChildListID enum into an enum class, so the naming pollution shouldn't be
an issue.

This patch has a nice side effect that it is now easier to remove all the
aliases of FrameChildListID (`kPrincipalList` etc.) defined in multiple places
since it is confusion to have the same thing written in different ways, e.g.
`nsIFrame::kPrincipalList`, `mozilla::layout::kPrincipalList`,
`FrameChildListID::kPrincipalList`, `kPrincipalList`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D161863
2022-11-11 23:44:16 +00:00
Emily McDonough
d146c1f89b Bug 1740365 Part 1 - Use CSS page name when constructing nsPageContentFrames and computed page content style r=dholbert,emilio
This works with margin and page-size, though we can't properly test mixed
page-size yet due to limitations in both print preview testing (which does not
handle multiple pages) and paged reftests (which ignore page-size).

It may be appropriate to remove the @page { margin } propagation from Servo
after this change.

Differential Revision: https://phabricator.services.mozilla.com/D158227
2022-11-10 23:43:48 +00:00
Cosmin Sabou
9909a4a8bb Backed out 2 changesets (bug 1740365) for causing bp-hybrid bustages on PresShell.h. CLOSED TREE
Backed out changeset b52bc7d5cf65 (bug 1740365)
Backed out changeset 5ba5fdd07fe0 (bug 1740365)
2022-11-10 18:06:51 +02:00
Emily McDonough
3a6ac592fe Bug 1740365 Part 1 - Use CSS page name when constructing nsPageContentFrames and computed page content style r=dholbert,emilio
This works with margin and page-size, though we can't properly test mixed
page-size yet due to limitations in both print preview testing (which does not
handle multiple pages) and paged reftests (which ignore page-size).

It may be appropriate to remove the @page { margin } propagation from Servo
after this change.

Differential Revision: https://phabricator.services.mozilla.com/D158227
2022-11-10 15:30:39 +00:00
Ting-Yu Lin
6992561e6b Bug 1799407 - Move definitions in FrameChildList.h/cpp into nsFrameList.h/cpp. r=emilio
There shouldn't be any circular dependency that requires putting definitions in
FrameChildList.h/cpp.

Differential Revision: https://phabricator.services.mozilla.com/D161426
2022-11-07 18:59:10 +00:00
Emilio Cobos Álvarez
078a10f45f Bug 1798830 - Clean up DisplayFlagForFlexOrGridItem. r=dholbert
No need to be an out of band member function given the only callers are
in flex / grid code.

I was looking at this in the context of bug 1798396. This probably
doesn't matter for PGO, but it being a static method helps reason about
the flags being the same for all items.

Differential Revision: https://phabricator.services.mozilla.com/D161102
2022-11-03 02:32:47 +00:00
Daniel Holbert
707a9a407d Bug 1797148: Simplify checkVisibility API (on nsISelectionController and nsIFrame) into a single nsTextFrame::HasVisibleText method. r=masayuki
Before this patch, we had two `checkVisibilty` methods on the
nsISelectionController interface, backed by several layers of implementation,
ultimately backed by a single function on nsTextFrame (which didn't actually
do anything meaningful with any of the parameters).

As it turns out, this API only had one caller, in HTMLEditUtils.cpp.

This patch converts that caller to directly query nsTextFrame (if the given
node's primary frame is indeed a nsTextFrame).  The direct function-call is
renamed to HasVisibleText(), to be a bit clearer about it being text-specific
and also to avoid confusion with the (unrelated) recently-specified HTML
checkVisibility() API.

With these changes, we can remove the API from the nsISelectionController
interface and its implementations.

This patch also updates the HTMLEditUtils::IsInVisibleTextFrames documentation
(with s/all/any/) to reflect the reality of what the nsTextFrame impl actually
does.

Differential Revision: https://phabricator.services.mozilla.com/D160563
2022-10-28 17:56:04 +00:00
Emilio Cobos Álvarez
766fb1725c Bug 1679797 - The containing block of a subgridded item is the root grid container. r=dholbert
We reflow subgrid items with a ParentReflowInput from the grid
container.

Note I'm not the most familiar with subgrid, though this does fix the
crash. Maybe we should just build the right reflow input here for
subgrid items (by building a stack of them or so on)?

  https://searchfox.org/mozilla-central/rev/c5c002f81f08a73e04868e0c2bf0eb113f200b03/layout/generic/nsGridContainerFrame.cpp#4981,5018-5026,5053-5054

Differential Revision: https://phabricator.services.mozilla.com/D159901
2022-10-20 23:02:25 +00:00
Ting-Yu Lin
3bb8ea5ca6 Bug 1794456 Part 4 - Remove unused nsFrameList::Enumerator. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D158987
2022-10-11 21:01:28 +00:00
Ting-Yu Lin
2b63e9580c Bug 1794456 Part 1 - Reimplement reverse iterator for nsFrameList. r=emilio
If we traverse a frame list via Iterator::operator--() repeatedly, when it
reaches the beginning of the list (mCurrent's previous sibiling is null), it
will start over from the end of the list. This behavior can be surprising, so it
is removed. Also, remove Iterator::mList since it's no longer needed.

We don't really need to rely on mozilla::ReverseIterator to implement
nsFrameList::reverse_iterator. We can abstract frame traversal operations as a
template parameter, and implement reverse_iterator directly. This is more
performant since mozilla::ReverseIterator makes a copy of the original iterator
when dereferencing the reverse iterator.

Iterator(nullptr) is now served as a end iterator for both the iterator and
reverse_iterator.

Differential Revision: https://phabricator.services.mozilla.com/D158984
2022-10-11 21:01:27 +00:00
Ting-Yu Lin
296fa869bc Bug 1793826 Part 2 - Remove nsFrameList::FrameLinkEnumerator. r=emilio
Change the last caller of FrameLinkEnumerator to use Iterator instead, and we
are ready to remove it.

Differential Revision: https://phabricator.services.mozilla.com/D158701
2022-10-06 06:47:25 +00:00
Csoregi Natalia
eb363bd64e Backed out 2 changesets (bug 1793826) for causing build bustages. CLOSED TREE
Backed out changeset 9e398426c46f (bug 1793826)
Backed out changeset 01820845ab62 (bug 1793826)
2022-10-06 03:41:00 +03:00
Ting-Yu Lin
1d1bc48ebc Bug 1793826 Part 2 - Remove nsFrameList::FrameLinkEnumerator. r=emilio
Change the last caller of FrameLinkEnumerator to use Iterator instead, and we
are ready to remove it.

Differential Revision: https://phabricator.services.mozilla.com/D158701
2022-10-06 00:19:42 +00:00
Emily McDonough
1f2d745a94 Bug 1782597 Part 2 - Use null to indicate page value equal to the auto value for CSS named pages r=dholbert
This applies both to the individual mStartPageValue and mEndPageValue fields
of the nsIFrame::PageValues struct, and for the nsIFrame::PageValuesProperty
being null to indicate both mStartPageValue and mEndPageValue are auto.

Fetching this is handled by nsIFrame::GetStartPageValue and
nsIFrame::GetEndPageValue, which also ensure the use of first-in-flow frames.

Differential Revision: https://phabricator.services.mozilla.com/D157873
2022-10-05 22:07:47 +00:00
Emily McDonough
be4dd4a026 Bug 1782597 Part 1 - Store auto page value on each frame when in a paginated context. r=dholbert,emilio
Differential Revision: https://phabricator.services.mozilla.com/D157872
2022-10-05 22:07:46 +00:00