Commit Graph
507 Commits
Author SHA1 Message Date
Eugeniusz Lewandowski fc8097fcc3 Bug 1650944 - Remove ReflowInput.h include from nsIFrame.h r=firefox-style-system-reviewers,layout-reviewers,emilio
Removed the Reflow Input in nsIFrame. Added includes for ReflowInput as
necessary in cpp files. Also Forward Declared nsLineLayout in 3 header
files.

Differential Revision: https://phabricator.services.mozilla.com/D298203
2026-05-04 12:06:23 +00:00
James Teh 66110424ce Bug 1657973 part 5: Hook up PdfStructTreeBuilder to the layout and gfx code. r=emilio,lsalzman,layout-reviewers
In order for the struct tree to be useful, we need to associate printed content with the various nodes in the struct tree.

1. Add an AccessibleId command to DrawTarget.
2. Add a nsDisplayAccessibleId display list item.
3. Make layout frames output nsDisplayAccessibleId items to associate painted content with accessibility tree nodes.
4. Support plumbing the AccessibleId DrawTarget command from the content process to the parent process.
5. Implement AccessibleId for DrawTargetSkia, associating subsequent content drawn to the canvas with the relevant node in the struct tree built by PdfStructTreeBuilder.

Differential Revision: https://phabricator.services.mozilla.com/D285961
2026-03-20 07:00:43 +00:00
Atila Butkovits 18fc13f54e Revert "Bug 1657973 part 6: Add tests for tagged PDF generation. r=eeejay" for causing bustages in SkPDF.
This reverts commit 864e3ed1ca.

Revert "Bug 1657973 part 5: Hook up PdfStructTreeBuilder to the layout and gfx code. r=emilio,lsalzman,layout-reviewers"

This reverts commit 50abf9d6c3.

Revert "Bug 1657973 part 4: Hook up PdfStructTreeBuilder to the printing and PDF code. r=layout-reviewers,dshin"

This reverts commit f600fda75a.

Revert "Bug 1657973 part 3: Accessibility engine changes required for PdfStructTreeBuilder. r=eeejay"

This reverts commit 5a036cc26e.

Revert "Bug 1657973 part 2: Add PdfStructTreeBuilder. r=eeejay"

This reverts commit 8d98b7bed1.

Revert "Bug 1657973 part 1: Plumb BrowsingContext id to PrintTargetSkPDF::BeginPrinting and make it available to nsDeviceContext::End/AbortDocument. r=emilio,geckoview-reviewers,win-reviewers,layout-reviewers,gstoll,m_kato"

This reverts commit cc79f1945a.
2026-03-19 05:08:17 +00:00
James Teh 50abf9d6c3 Bug 1657973 part 5: Hook up PdfStructTreeBuilder to the layout and gfx code. r=emilio,lsalzman,layout-reviewers
In order for the struct tree to be useful, we need to associate printed content with the various nodes in the struct tree.

1. Add an AccessibleId command to DrawTarget.
2. Add a nsDisplayAccessibleId display list item.
3. Make layout frames output nsDisplayAccessibleId items to associate painted content with accessibility tree nodes.
4. Support plumbing the AccessibleId DrawTarget command from the content process to the parent process.
5. Implement AccessibleId for DrawTargetSkia, associating subsequent content drawn to the canvas with the relevant node in the struct tree built by PdfStructTreeBuilder.

Differential Revision: https://phabricator.services.mozilla.com/D285961
2026-03-19 04:09:22 +00:00
Sylvestre Ledru 55481ac4b5 Bug 2023419 - Remove Emacs/Vim modelines from layout/ r=emilio,firefox-style-system-reviewers,layout-reviewers
replaced by .editorconfig

Differential Revision: https://phabricator.services.mozilla.com/D287852
2026-03-17 12:05:43 +00:00
Ting-Yu Lin 19124a708f Bug 2009647 Part 2 - Add measuring reflow in printing scenarios for fragmentainer-aware abspos positioning. r=layout-reviewers,dshin
This extends the measuring reflow mechanism from multicol (Bug 1994346) to
printing scenarios. When absolutely positioned elements exist, we now perform
an initial measuring reflow with an unconstrained page height to compute
unfragmented positions, sizes, etc.

Each frame type (nsPageSequenceFrame, nsPageFrame, PrintedSheetFrame,
nsPageContentFrame) has their own logic to calculate the available size for its
child, and they do not derive the size from their own reflow input's available
size. To avoid substantial refactoring, this patch checks
`mIsInFragmentainerMeasuringReflow` and overrides the available block-size to
unconstrained when running a measuring reflow.

Differential Revision: https://phabricator.services.mozilla.com/D284550
2026-02-25 05:20:37 +00:00
Emilio Cobos Álvarez 30b7a3d89a Bug 2014922 - Untangle pseudo-element and anon box definitions. r=firefox-style-system-reviewers,xpcom-reviewers,layout-reviewers,dshin,nika
I looked at this because in bug 2014331 I need to mark more pseudos as
element-backed, and it's kinda silly the state our setup is in right
now.

This is all a somewhat historical mess, because in the old style system
pseudo-elements were just atoms, and we had that different types of atom
setup. The source of truth for these right now lives in a header macro
file, which isn't very flexible.

But now we have PseudoStyleType which represents both pseudos and anon
boxes, and is similar to the rust side PseudoElement enum.

Plus, the ::-moz-tree pseudo-elements are defined as anon boxes which
doesn't make any sense, so move them to pseudo-elements while at it.

Unify this in a similar way we treat CSS properties: Source of truth is
in pseudo_elements.toml / anon_boxes.toml, and we generate Rust and C++
as needed. This allows removing the nsStaticAtom subclass thing from
XPCOM, too.

This avoids some nasty duplication around which pseudos are pref-gated
and what not as well.

Differential Revision: https://phabricator.services.mozilla.com/D282076
2026-02-06 07:39:54 +00:00
Norisz Fay 27f4694604 Revert "Bug 2014922 - Untangle pseudo-element and anon box definitions. r=firefox-style-system-reviewers,xpcom-reviewers,layout-reviewers,dshin,nika" for causing bustage @ ElementAnimationData.h
This reverts commit c70290c619.
2026-02-06 05:34:42 +00:00
Emilio Cobos Álvarez c70290c619 Bug 2014922 - Untangle pseudo-element and anon box definitions. r=firefox-style-system-reviewers,xpcom-reviewers,layout-reviewers,dshin,nika
I looked at this because in bug 2014331 I need to mark more pseudos as
element-backed, and it's kinda silly the state our setup is in right
now.

This is all a somewhat historical mess, because in the old style system
pseudo-elements were just atoms, and we had that different types of atom
setup. The source of truth for these right now lives in a header macro
file, which isn't very flexible.

But now we have PseudoStyleType which represents both pseudos and anon
boxes, and is similar to the rust side PseudoElement enum.

Plus, the ::-moz-tree pseudo-elements are defined as anon boxes which
doesn't make any sense, so move them to pseudo-elements while at it.

Unify this in a similar way we treat CSS properties: Source of truth is
in pseudo_elements.toml / anon_boxes.toml, and we generate Rust and C++
as needed. This allows removing the nsStaticAtom subclass thing from
XPCOM, too.

This avoids some nasty duplication around which pseudos are pref-gated
and what not as well.

Differential Revision: https://phabricator.services.mozilla.com/D282076
2026-02-06 03:42:45 +00:00
Jonathan Kew ea2ead431c Bug 1971028 - Wrap the replacement texts for special header/footer codes with Unicode bidi-isolation controls. r=dshin
Differential Revision: https://phabricator.services.mozilla.com/D257993
2025-07-21 16:38:16 +00:00
David Shin e68ac5eb03 Bug 1969305: Pass anchor resolution params for margin. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D256289
2025-07-14 21:28:20 +00:00
pstanciu 7a21072acf Revert "Bug 1969305: Adjust WPT expectations. r=layout-reviewers,emilio" for causing failures @ anchor-name-003.html
This reverts commit 5e12720896.

Revert "Bug 1969305: Pass anchor resolution params for maxsize. r=layout-reviewers,emilio"

This reverts commit 27a56d04a1.

Revert "Bug 1969305: Pass anchor resolution params for size. r=layout-reviewers,emilio"

This reverts commit 69b2bd0242.

Revert "Bug 1969305: Pass anchor resolution params for margin. r=layout-reviewers,emilio"

This reverts commit 23c707d5a7.

Revert "Bug 1969305: Implement anchor size resolution. r=layout-reviewers,emilio"

This reverts commit c0d1d8808d.
2025-07-12 02:02:55 +00:00
David Shin 23c707d5a7 Bug 1969305: Pass anchor resolution params for margin. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D256289
2025-07-11 15:21:39 +00:00
Atila Butkovits 0b2944a3d2 Revert "Bug 1969305: Adjust WPT expectations. r=layout-reviewers,emilio" for causing bustages at GeckoBindings.cpp.
This reverts commit 49a7b8afce.

Revert "Bug 1969305: Pass anchor resolution params for maxsize. r=layout-reviewers,emilio"

This reverts commit 0b615836cf.

Revert "Bug 1969305: Pass anchor resolution params for size. r=layout-reviewers,emilio"

This reverts commit 359badb60e.

Revert "Bug 1969305: Pass anchor resolution params for margin. r=layout-reviewers,emilio"

This reverts commit 17f7f64cd8.

Revert "Bug 1969305: Implement anchor size resolution. r=layout-reviewers,emilio"

This reverts commit 47197ef7ab.
2025-07-11 01:18:14 +00:00
David Shin 17f7f64cd8 Bug 1969305: Pass anchor resolution params for margin. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D256289
2025-07-10 20:58:18 +00:00
Emilio Cobos Álvarez a8a2311474 Bug 1976457 - Sort includes in layout/. r=janv,dshin
Interesting bit is layout/.clang-format, the rest is all automated.

Differential Revision: https://phabricator.services.mozilla.com/D256616
2025-07-09 13:24:00 +00:00
David Shin 8897bdc924 Bug 1971135: Use anchor resolution params in place of position property. r=TYLin
... The full resolution that makes use of additional parameters will follow
shortly.

Differential Revision: https://phabricator.services.mozilla.com/D253175
2025-06-16 20:35:30 +00:00
Jonathan Watt 2badd6312e Bug 1962615. Remove pref layout.css.allow-mixed-page-sizes. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D246715
2025-04-25 11:59:04 +00:00
Jonathan Watt 70466896b1 Bug 1962604. Remove pref layout.css.page-orientation.enabled. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D246712
2025-04-25 11:59:04 +00:00
David Shin 40e6a5c66e Bug 1923959: Resolve anchor for margins. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D240863
2025-04-08 02:29:18 +00:00
Timothy Nikkel 292af322c3 Bug 1933440. Make all display item destructors default and mark all display items final that can be. r=layout-reviewers,jfkthame
This just makes things nice and consistent and lets the compiler optimize if it can.

Differential Revision: https://phabricator.services.mozilla.com/D230249
2024-12-06 13:22:11 +00:00
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
serge-sans-paille 262f78c07f Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-28 08:21:19 +00:00
Alexandru Marc a5eb905bf4 Backed out changeset d92f391b3b0c (bug 1922838) for backing out bug 1915351 2024-10-25 16:42:33 +03:00
serge-sans-paille 07101ac24d Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-24 09:06:01 +00:00
Alexandru Marc 004e704b22 Backed out changeset 448597bce69d (bug 1922838) for causing build bustages. CLOSED TREE 2024-10-24 11:37:49 +03:00
serge-sans-paille 2c916d4973 Bug 1922838 - Replace ArrayLength, ArrayEnd and MOZ_ARRAY_LENGTH by standard alternative r=glandium,necko-reviewers,jgilbert,application-update-reviewers,media-playback-reviewers,credential-management-reviewers,anti-tracking-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,bytesized,janv,dimi,daisuke,karlt,gstoll,canaltinova,timhuang
Namely std::size, std::end and std::size. This drops C support for
MOZ_ARRAY_LENGTH but it wasn't used anyway.

Differential Revision: https://phabricator.services.mozilla.com/D224611
2024-10-24 07:38:30 +00:00
David Shin 1fad4eeb43 Bug 1900232: Part 4 - Add anchor-size() to margin properties. r=firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D222533
2024-09-23 13:58:38 +00:00
Ting-Yu Lin 4ef20f0ad7 Bug 1906792 Part 1 - Let nsLeafFrame and subclasses override GetIntrinsicSize(). r=layout-reviewers,emilio
`nsIFrame` already provides `GetIntrinsicSize()` for subclasses to override.
Therefore, `nsLeafFrame` doesn't need to introduce another version for its
subclasses.

This patch (hopefully) shouldn't change the behavior.

Differential Revision: https://phabricator.services.mozilla.com/D215998
2024-07-09 18:49:32 +00:00
Ting-Yu Lin 8a77ebbb16 Bug 1888535 Part 5 - Remove DISPLAY_REFLOW. r=layout-reviewers,emilio
It is used in `Reflow()` implementations.

Differential Revision: https://phabricator.services.mozilla.com/D206317
2024-04-02 19:03:05 +00:00
Emily McDonough 82706767b1 Bug 1882890 Part 1 - When page scaling in nsPageFrame is small, center the content instead of putting in the upper left. r=dholbert,layout-reviewers,emilio
This is controlled by the pref print.center_page_on_sheet

Differential Revision: https://phabricator.services.mozilla.com/D203195
2024-03-28 19:00:51 +00:00
Norisz Fay 5747c02b72 Backed out 2 changesets (bug 1882890) for causing failures on test_printpreview.xhtml CLOSED TREE
Backed out changeset 08c947500cfc (bug 1882890)
Backed out changeset 6dfb0be3d0a0 (bug 1882890)
2024-03-28 04:03:07 +02:00
Emily McDonough 9ab114fa2f Bug 1882890 Part 1 - When page scaling in nsPageFrame is small, center the content instead of putting in the upper left. r=dholbert,layout-reviewers,emilio
This is controlled by the pref print.center_page_on_sheet

Differential Revision: https://phabricator.services.mozilla.com/D203195
2024-03-27 18:56:19 +00:00
Ting-Yu Lin 3676762a28 Bug 1865012 Part 3 - Remove FirstContinuation overrides for nsPageFrame and nsPageContentFrame. r=dholbert
The overrides were added in bug 1803861. With Part 1 , they are no longer
needed.

Actually, without this patch, the assertion "First descendent of
nsPageSequenceFrame should not have a previous continuation" in
`nsPageFrame::FirstContinuation` will be triggered when constructing frame tree,
because `nsSplittableFrame::SetPrevContinuation` now accesses
`FirstContinuation()`, but the parent-child relationship might not properly set
up yet.

Differential Revision: https://phabricator.services.mozilla.com/D197758
2024-01-23 23:15:02 +00:00
Norisz Fay a7b0088da8 Backed out 4 changesets (bug 1865012) for causing mochitest failure on test_gencontent.html CLOSED TREE
Backed out changeset 95d920859b91 (bug 1865012)
Backed out changeset 26f6c2765cb5 (bug 1865012)
Backed out changeset 30a3c356ebc9 (bug 1865012)
Backed out changeset 4fb71ff990ae (bug 1865012)
2024-01-23 02:17:49 +02:00
Ting-Yu Lin 43d19da8ac Bug 1865012 Part 3 - Remove FirstContinuation overrides for nsPageFrame and nsPageContentFrame. r=dholbert
The overrides were added in bug 1803861. With Part 1 , they are no longer
needed.

Actually, without this patch, the assertion "First descendent of
nsPageSequenceFrame should not have a previous continuation" in
`nsPageFrame::FirstContinuation` will be triggered when constructing frame tree,
because `nsSplittableFrame::SetPrevContinuation` now accesses
`FirstContinuation()`, but the parent-child relationship might not properly set
up yet.

Differential Revision: https://phabricator.services.mozilla.com/D197758
2024-01-22 19:50:49 +00:00
Jonathan Watt b9e6418c12 Bug 1833244 p2. Implement sheet orientation switching/rotation for page-orientation. r=AlaskanEmily,dholbert
Where supported (print preview and print-to-PDF), this implements changing the
orientation and/or rotation of print sheets, as appropriate, in response to CSS
`page-orientation`. When supported we:

- in the single page-per-sheet case, rotate the sheet in order to implement
  any `page-orientation` rotation on the sheet. Rotating the sheet is necessary
  so that when we output PDF files the pages visually have the correct
  orientation.

- in the multiple pages-per-sheet case, we already rotate individual pages in
  their grid cell. This commit keeps such pages rotated, as appropriate, but
  augments that behavior by switching the orientation of the sheet (based on
  the first page on the sheet), if necessary, to make best use of the space on
  the sheet. (We can't know what orientation any subsequent pages on the sheet
  will have, so we assume the same orientation as the first one.)

Depends on D179423

Differential Revision: https://phabricator.services.mozilla.com/D179448
2023-08-22 10:57:55 +00:00
Iulian Moraru 6e0f98f12e Backed out changeset 6db2de19f043 (bug 1833244) for causing wp failures on page-size-006-print.html. CLOSED TREE 2023-08-22 05:05:53 +03:00
Jonathan Watt 613c8a80dc Bug 1833244 p2. Implement sheet orientation switching/rotation for page-orientation. r=AlaskanEmily,dholbert
Where supported (print preview and print-to-PDF), this implements changing the
orientation and/or rotation of print sheets, as appropriate, in response to CSS
`page-orientation`. When supported we:

- in the single page-per-sheet case, rotate the sheet in order to implement
  any `page-orientation` rotation on the sheet. Rotating the sheet is necessary
  so that when we output PDF files the pages visually have the correct
  orientation.

- in the multiple pages-per-sheet case, we already rotate individual pages in
  their grid cell. This commit keeps such pages rotated, as appropriate, but
  augments that behavior by switching the orientation of the sheet (based on
  the first page on the sheet), if necessary, to make best use of the space on
  the sheet. (We can't know what orientation any subsequent pages on the sheet
  will have, so we assume the same orientation as the first one.)

Depends on D179423

Differential Revision: https://phabricator.services.mozilla.com/D179448
2023-08-21 21:55:17 +00:00
Cristian Tuns 66c26a8a3e Backed out changeset bc3dcd234d91 (bug 1833244) for causing multiple failures with *page_size* CLOSED TREE 2023-08-21 11:15:08 -04:00
Jonathan Watt ec68cae310 Bug 1833244 p2. Implement sheet orientation switching/rotation for page-orientation. r=AlaskanEmily,dholbert
Where supported (print preview and print-to-PDF), this implements changing the
orientation and/or rotation of print sheets, as appropriate, in response to CSS
`page-orientation`. When supported we:

- in the single page-per-sheet case, rotate the sheet in order to implement
  any `page-orientation` rotation on the sheet. Rotating the sheet is necessary
  so that when we output PDF files the pages visually have the correct
  orientation.

- in the multiple pages-per-sheet case, we already rotate individual pages in
  their grid cell. This commit keeps such pages rotated, as appropriate, but
  augments that behavior by switching the orientation of the sheet (based on
  the first page on the sheet), if necessary, to make best use of the space on
  the sheet. (We can't know what orientation any subsequent pages on the sheet
  will have, so we assume the same orientation as the first one.)

Depends on D179423

Differential Revision: https://phabricator.services.mozilla.com/D179448
2023-08-21 14:21:49 +00:00
Stanca Serban c012a11e13 Backed out 3 changesets (bug 1833244) for causing multiple failures.
Backed out changeset 7bc8c25b2935 (bug 1833244)
Backed out changeset 4576af83a4ec (bug 1833244)
Backed out changeset 90a5bbba7b9c (bug 1833244)
2023-06-03 18:36:21 +03:00
Jonathan Watt 006c723c50 Bug 1833244 p3. Implement sheet orientation switching/rotation for page-orientation. r=AlaskanEmily,dholbert
Where supported (print preview and print-to-PDF), this implements changing the
orientation and/or rotation of print sheets, as appropriate, in response to CSS
`page-orientation`. When supported we:

- in the single page-per-sheet case, rotate the sheet in order to implement
  any `page-orientation` rotation on the sheet. Rotating the sheet is necessary
  so that the pages in the PDF files that we output are correct.

- in the multiple pages-per-sheet case, we already rotate individual pages in
  their grid cell. This change keeps such pages rotated, as appropriate, but
  augments that behavior by switching the orientation of the sheet (based on
  the first page on the sheet) if necessary to best place the page to make
  maximum use of the space.

Depends on D179423

Differential Revision: https://phabricator.services.mozilla.com/D179448
2023-06-03 14:21:38 +00:00
Jonathan Watt 777bf674bc Bug 1835713. Change the print code to not assume that sheets all have the same dimensions. r=dholbert
This code doesn't change behavior itself. The same sheet size is cached on all
sheets. Patches for future bugs will change that.

Differential Revision: https://phabricator.services.mozilla.com/D179395
2023-05-30 12:09:04 +00:00
Norisz Fay b6c759299b Backed out changeset b448658be51d (bug 1835713) for causing build bustages on PrintedSheetFrame.cpp CLOSED TREE 2023-05-30 13:58:26 +03:00
Jonathan Watt ed4deffe81 Bug 1835713. Change the print code to not assume that sheets all have the same dimensions. r=dholbert
This code doesn't change behavior itself. The same sheet size is cached on all
sheets. Patches for future bugs will change that.

Differential Revision: https://phabricator.services.mozilla.com/D179395
2023-05-30 10:40:58 +00:00
Jonathan Watt 93540964c2 Bug 1835475. Only use nsPageFrame::ComputePageSizeScale when pps==1. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D179296
2023-05-29 00:14:58 +00:00
Jonathan Watt bceccce8ff Bug 1833239. Change the multiple pages-per-sheet printing code to center pages in the grid cells. r=AlaskanEmily,dholbert
Prior to this patch, we would place the pages edge-to-edge, then center that
collection of pages in the sheet. Now we create a grid of equally sized cells
that uses as much of the sheet as possible. Each page is then centered in its
grid cell.

Differential Revision: https://phabricator.services.mozilla.com/D179092
2023-05-27 01:13:53 +00:00
Jonathan Watt b6f3cdafda Bug 1833688. Simplify ComputePagesPerSheetAndPageSizeTransform. r=dholbert
Prior to this change, it wasn't at all clear that the single page-per-sheet
calculations are actually very simple. This makes it a lot clearer. It also
changes the transform code to avoid unnecessary mixing of Pre* and Post*
operations, which was making the code more difficult to reason about.

Separating out this change also makes the changes that will be introduced in
bug 1833239 a lot easier to understand.

Differential Revision: https://phabricator.services.mozilla.com/D178351
2023-05-17 20:51:48 +00:00
Jonathan Watt 97a4bc93ce Bug 1830900. Move multiple pages-per-sheet grid calculations to be per-sheet, not per-print. r=AlaskanEmily
To support mixed sheet orientations when printing, these calculations need to
be per-sheet. (This change will also be necessary further in the future when we
support saving to PDF with different sheet sizes.)

Differential Revision: https://phabricator.services.mozilla.com/D176914
2023-05-04 22:49:01 +00:00