Commit Graph

323 Commits

Author SHA1 Message Date
Jonathan Watt
fa1fc32c8b Bug 1748188 - Remove nsIPrintSettings.setupSilentPrinting. r=emilio
The background we have on why this exists is in the code comments of the code
that's being removed, and in:
https://bugzilla.mozilla.org/show_bug.cgi?id=193001#c91

It seems very unlikely that this code is necessary. It's run for silent
printing when the new UI is enabled and E10s is disabled. If it was really
necessary it seems likely we'd have seen breakage in our much more common use
cases.

Differential Revision: https://phabricator.services.mozilla.com/D134936
2022-01-03 10:55:04 +00:00
Butkovits Atila
a16a79e9b3 Backed out changeset 1de6f3bfb971 (bug 1748188) for causing bustages at nsPrintSettingsGTK.cpp. CLOSED TREE 2022-01-03 03:54:41 +02:00
Jonathan Watt
7b88e078a9 Bug 1748188 - Remove nsIPrintSettings.setupSilentPrinting. r=emilio
The background we have on why this exists is in the code comments of the code
that's being removed, and in:
https://bugzilla.mozilla.org/show_bug.cgi?id=193001#c91

It seems very unlikely that this code is necessary. It's run for silent
printing when the new UI is enabled and E10s is disabled. If it was really
necessary it seems likely we'd have seen breakage in our much more common use
cases.

Differential Revision: https://phabricator.services.mozilla.com/D134936
2022-01-03 01:33:18 +00:00
Butkovits Atila
5d88149fa4 Backed out changeset fe90fc6b12b5 (bug 1741698) for causing failures at delayed_window_print.html. CLOSED TREE 2021-12-24 00:31:23 +02:00
Jonathan Watt
d1811d01d1 Bug 1741698 - Revert 1fb0f7dc84a9 (part of bug 1669149) since it broke silent printing. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D134621
2021-12-23 18:32:40 +00:00
Jonathan Watt
d70db9baf8 Bug 1745452 - Remove the print progress dialog code. r=mstriemer,bobowen,webdriver-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D133500
2021-12-16 15:12:33 +00:00
Butkovits Atila
6c14d03852 Backed out changeset 51d7c5d96ceb (bug 1745452) for causing failures at browser_all_files_referenced.js. CLOSED TREE 2021-12-16 15:13:34 +02:00
Jonathan Watt
260ef48d25 Bug 1745452 - Remove the print progress dialog code. r=mstriemer,bobowen,webdriver-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D133500
2021-12-16 11:45:59 +00:00
Masayuki Nakano
daf79ccd1e Bug 1735446 - part 4: Make Selection::GetRangeAt() take uint32_t instead of int32_t r=smaug
It's an internal API corresponding to `Selection.getRangeAt` DOM API.
I think that it should use `uint32_t` rather than `size_t` because of the
consistency with the DOM API and `Selection::RangeCount()`.

This patch fixes all callers of `GetRangeAt()`, and rewrites it with ranged-
loops unless original ones do not refer `RangeCount()` every time and may run
script in the loop.

Differential Revision: https://phabricator.services.mozilla.com/D128848
2021-12-09 07:35:09 +00:00
Bob Owen
08fe1fa3be Bug 1669149 p3: Never go back to the parent for print settings with tab modal print UI. r=jwatt
Depends on D105824

Differential Revision: https://phabricator.services.mozilla.com/D99806
2021-11-16 08:17:03 +00:00
Dsmith
f24d446ce1 Bug 1732383 Removing unused assignment in DoCommonPrint function from fx-scan-build list. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D126559
2021-09-29 09:46:14 +00:00
Emily McDonough
70a94c12b5 Bug 1721265 Part 3 - Use page-size orientation information in print preview r=emilio,emalysz
When a page-size that is not auto or square exists the print preview will use
the orientation of this page-size when doing initial reflow. The frontend
applies the orientation to the print settings without updating settings and
causing a second reflow, and the orientation selector is hidden.

Differential Revision: https://phabricator.services.mozilla.com/D124976
2021-09-21 16:38:54 +00:00
Emily McDonough
b297a4713c Bug 1721265 Part 2 - Send information about CSS page-size values to the print frontend through FinishPrintPreview r=emilio
This adds an optional paper orientation to PrintPreviewResultInfo populates it
from the CSS page size when finishing print preview. The value is then placed
in the PrintPreviewSuccessInfo to be sent to the frontend.

Differential Revision: https://phabricator.services.mozilla.com/D124248
2021-09-21 16:38:53 +00:00
Emilio Cobos Álvarez
93dbe4e2fe Bug 1721952 - Don't let nsTextFragment::IsBidi get out of sync even if the document has already enabled bidi. r=smaug
It's not a sound optimization in presence of adoption.

Differential Revision: https://phabricator.services.mozilla.com/D123524
2021-08-25 11:07:40 +00:00
Emilio Cobos Álvarez
f36d3ee88e Bug 1699837 - Make sure that remote iframes honor print settings. r=mattwoodrow
This fixes it since we honor the print resolution properly now.

Differential Revision: https://phabricator.services.mozilla.com/D115263
2021-06-13 09:16:53 +00:00
Dorel Luca
4e5b843ad3 Backed out changeset 43a82597dade (bug 1699837) for Crashtest in layout/printing/crashtests/1671503.html. CLOSED TREE 2021-06-11 19:48:10 +03:00
Emilio Cobos Álvarez
4a29358676 Bug 1699837 - Make sure that remote iframes honor print settings. r=mattwoodrow
This fixes it since we honor the print resolution properly now.

Differential Revision: https://phabricator.services.mozilla.com/D115263
2021-06-11 13:07:55 +00:00
Emilio Cobos Álvarez
518c095aeb Bug 1712130 - Make print.print_via_parent a static pref. r=layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D115612
2021-05-20 17:05:33 +00:00
Emma Malysz
8226b79c1a Bug 1675965, do not store file name in preference value for save to pdf printers r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D113413
2021-04-29 17:42:54 +00:00
Emilio Cobos Álvarez
2a74451ca0 Bug 1707977 - Null-check print data in nsPrintJob::DoPrint. r=layout-reviewers,dholbert
It's unclear how this can happen (the caller also null-checks, but then
again it also reconstructs a bunch of stuff, so...).

Differential Revision: https://phabricator.services.mozilla.com/D113815
2021-04-29 17:03:00 +00:00
Simon Giesecke
6d4c161445 Bug 1679522 - Use <> style for including windows system headers. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D98895
2021-03-25 10:19:44 +00:00
Simon Giesecke
c7a36b5d58 Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Simon Giesecke
7c2f4b7743 Bug 1693306 - Simplify some uses of LookupOrInsertWith by GetOrInsertNew. r=xpcom-reviewers,necko-reviewers,dragana,nika
Differential Revision: https://phabricator.services.mozilla.com/D105479
2021-02-26 09:22:54 +00:00
Simon Giesecke
7c075f27d9 Bug 1691913 - Rename nsBaseHashtable::GetOrInsert(With) to LookupOrInsert(With). r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
The functions should be called "Lookup" rather than "Get" because they return
a DataType& (rather than UserDataType).

Differential Revision: https://phabricator.services.mozilla.com/D105472
2021-02-26 09:11:45 +00:00
Simon Giesecke
9d60f9c227 Bug 1691894 - Simplify uses of WithEntryHandle that only use OrInsert(With) by using GetOrInsertWith. r=xpcom-reviewers,necko-reviewers,jgilbert,nika
Differential Revision: https://phabricator.services.mozilla.com/D104676
2021-02-22 12:07:46 +00:00
Alexis Beingessner
b376547204 Bug 1686616 - make StringBundle use Components instead of Services. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D105531
2021-02-18 13:26:32 +00:00
Simon Giesecke
1d1b935551 Bug 1688833 - Migrate LookupForAdd to WithEntryHandle in layout. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D104202
2021-02-09 18:19:39 +00:00
Daniel Holbert
f190e410a2 Bug 1669905 part 2: Add nsIPrintSettings APIs to handle the possibility that pages and sheets may have orthogonal orientation, in pages-per-sheet printouts. r=jfkthame
This patch does three things, all centered around these new APIs:

 (1) Add the APIs themselves -- some nsIPrintSettings methods to reason about
the sheet-orientation being potentially flipped to accomodate 2 and 6
pages-per-sheet.

 (2) Use these new APIs, where appropriate, in places where we previously used
the page-orientation to set up the platform-native print-settings objects and
print-target. Now, we'll use the *sheet* orientation instead of the page
orientation, to be sure we produce the appropriately-oriented platform-native
surfaces.  Also, for symmetry, this patch adds similar logic to the reverse
codepaths, where we update an existing nsIPrintSettings object based on a
platform-native print-settings object.

 (3) Update nsPrintJob's code that informs nsPresContext about the page-size.
This patch makes sure that this code uses the *page* size, rather than the
*sheet* size, in cases where they differ.  (The code that consumes this
nsPresContext::GetPageSize API, e.g. our CSS media-query code, really does want
the page size, not the sheet size.)

Differential Revision: https://phabricator.services.mozilla.com/D100372
2021-01-05 02:24:00 +00:00
Emilio Cobos Álvarez
65db183611 Bug 1681095 - Add a privileged API to tell the print dialog whether a selection belongs to the previewed page vs. an iframe. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D98991
2020-12-10 10:52:41 +00:00
Emilio Cobos Álvarez
61547ab65a Bug 1679706 - Fix an obvious typo in nsPrintJob::GetIsEmpty().
This will get tested when the front-end uses the value.

Differential Revision: https://phabricator.services.mozilla.com/D98575
2020-12-03 10:33:06 +00:00
Emilio Cobos Álvarez
4a92eafa04 Bug 1679706 - Communicate to the front-end whether there are no visible pages at all. r=jfkthame
This will allow them to react however they want to empty page ranges as
a result of another setting change.

Differential Revision: https://phabricator.services.mozilla.com/D98183
2020-12-02 21:48:03 +00:00
Emilio Cobos Álvarez
4d696fad54 Bug 1679706 - Cleanup a bit the page-sequence-using methods in nsPrintJob. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D98182
2020-12-02 17:17:17 +00:00
Emilio Cobos Álvarez
d1c43878e6 Bug 1669854 - Add a single pageRanges print setting. r=nordzilla
... which is an array of pairs of ranges, and use it instead of the
existing printRange / startPage / endPage settings.

Differential Revision: https://phabricator.services.mozilla.com/D96093
2020-11-07 16:01:57 +00:00
Emilio Cobos Álvarez
407e21a810 Bug 1672864 - Don't resume printing too early. r=jfkthame
When we do the initial reflow, we remove nodes from the document if
we're printing the selection. If these operations cause one iframe to be
removed, for example, then we may get hit with an nsIWebProgress
notification synchronously, which may cause us to go through
MaybeResumePrintAfterResourcesLoaded too early (and thus twice), which
messes up our state.

The ideal solution would be to add us as a listener a bit later, but we
can't because we need to know whether we did load anything during the
initial reflow.

So instead of that, just avoid resuming print while we're doing the
reflow. We'll call MaybeResumePrintAfterResourcesLoaded a few lines
below.

Differential Revision: https://phabricator.services.mozilla.com/D94586
2020-10-23 18:34:05 +00:00
Emilio Cobos Álvarez
c57dd3fcc8 Bug 1671503 - Handle documents from iframes that haven't changed remoteness yet correctly. r=nordzilla
See the comment. A bit racy, but some of the time crashtest crashes
without the patch.

Null-check is just paranoia.

Differential Revision: https://phabricator.services.mozilla.com/D93756
2020-10-16 20:46:00 +00:00
Dorel Luca
4d060a40e1 Backed out changeset 6d63e8bc04bf (bug 1671503) for Crashtest failures in layout/printing/crashtests/1671503.html. CLOSED TREE 2020-10-16 22:13:43 +03:00
Emilio Cobos Álvarez
f7cc4219e2 Bug 1670876 - Add support for printing selection in shadow dom. r=nordzilla
Recursive the things all :^)

The fix to the "corresponding node" bits in Document.cpp should be
pretty straight-forward. The fix in nsPrintJob is a bit more subtle:

The way printing selection works is literally "select everything else,
then call Selection.deleteFromDocument on that". We need to do the same
with shadow DOM, which involves skipping over shadow trees, and dealing
with selecting bits in ancestor trees as needed.

Note that for multi-range-selection case this technically relies on the
order of the ranges being shadow-tree-inclusive. We don't support
multi-range selection in shadow dom well, afaict, but I've added a
comment to the code to that effect.

Differential Revision: https://phabricator.services.mozilla.com/D93357
2020-10-16 17:36:37 +00:00
Emilio Cobos Álvarez
d55a9aa8a4 Bug 1671503 - Handle documents from iframes that haven't changed remoteness yet correctly. r=nordzilla
See the comment. A bit racy, but some of the time crashtest crashes
without the patch.

Null-check is just paranoia.

Differential Revision: https://phabricator.services.mozilla.com/D93756
2020-10-16 17:37:00 +00:00
Emilio Cobos Álvarez
007e69445f Bug 1670816 - Handle remote subframe clones slightly earlier. r=nika
Otherwise we end up creating an in-process docshell and an initial,
non-static subdocument. This usually won't cause badness, but is wrong
and _can_ cause badness when printing selection etc.

The assertion I added is hit on existing tests and would've caught this.

Also fix another violation by grabbing the original docshell to clone
from before actually performing the clone, which could be null (and we'd
leave an initial document there). That would cause failures in
layout/printing/crashtests/1662259.html.

Differential Revision: https://phabricator.services.mozilla.com/D93279
2020-10-13 18:13:30 +00:00
Daniel Holbert
27ad0428d8 Bug 1669774 part 2: Rename some APIs and variables for accuracy (s/page/sheet/) in nsPrintJob, nsPagePrintTimer, and nsDocumentViewer. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D92791
2020-10-07 21:00:26 +00:00
Daniel Holbert
4226a791d3 Bug 1669774 part 1: Rename some nsPageSequenceFrame APIs and vars with s/page/sheet/for accuracy. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D92789
2020-10-07 20:59:05 +00:00
Daniel Holbert
b85e4e71b3 Bug 1661868 part 2: Unify page-range handling logic, to assume all PrintedSheetFrames should be printed (and let them manage page-range-based skipping during layout). r=TYLin
This patch does the following things:

(1) It removes the legacy page-range-handling function
"DetermineWhetherToPrintPage()", and it now will always print every
PrintedSheetFrame.

(2) It activates PrintedSheetFrame's page-range handling function so that it
can take over responsibility for skipping pages during print operations.

(3) It adjusts the nsPrintJob code that kicks off individual asynchronous
"print the next page" operations (which is now really "print the next
PrintedSheetFrame).  This nsPrintJob code used to have page-range-related
handling interwoven into it, and that handling isn't necessary anymore now that
we're handling page-skipping up front at layout time.

(4) It replaces the mPageNum member-var (which tracks which page we're about to
print or are currently printing) with mCurrentSheetIdx, which is now a 0-based
index into the list of PrintedSheetFrame instances.

(5) It removes nsPrintData:mNumPagesPrinted, which was only used for
progress-bar-completion updates & which basically tracked the same information
that I'm tracking in the new mCurrentSheetIdx variable.

There's some additional cleanup that we should do after this lands (e.g. some
s/page/sheet/ renamings) but I'm holding off on that for now, to keep this
patch relatively targeted.

Differential Revision: https://phabricator.services.mozilla.com/D92660
2020-10-07 20:51:56 +00:00
Daniel Holbert
20af406349 Bug 1669409: Convert the nsIPrintSettings:kEnableSelectionRB flag into a boolean, since it's the only entry in a bitfield. r=jwatt,emilio
This was the last flag that the PrintOptions bitfield was tracking.

So, this patch is effectively converting that bitfield (and its alias
"PrintOptionsBits") into a new, simpler boolean field named
"isPrintSelectionRBEnabled".

Differential Revision: https://phabricator.services.mozilla.com/D92542
2020-10-07 00:36:51 +00:00
Jonathan Watt
c46eaa7ea0 Bug 1669390. Fix silent printing telemetry when print.tab_modal.enabled is true. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D92531
2020-10-06 10:02:49 +00:00
Emilio Cobos Álvarez
3f7cf49848 Bug 1668767 - Make "print selection" setting independent of page range. r=jfkthame
It conceptually is, and this will allow to have UI independent of the
page range in bug 140718.

Differential Revision: https://phabricator.services.mozilla.com/D92201
2020-10-02 13:59:48 +00:00
Edgar Chen
ed7c6f194b Bug 1667081 - Part 1: Replace usage of nsIFocusManager with nsFocusManager; r=hsivonen
This patch is bascially done by:
perl -p -i -e "s/nsIFocusManager\* /nsFocusManager* /g;" $( find . -name *.cpp )
perl -p -i -e "s/nsCOMPtr<nsIFocusManager>/RefPtr<nsFocusManager>/g;" $( find . -name *.cpp )

Differential Revision: https://phabricator.services.mozilla.com/D91287
2020-09-29 07:21:09 +00:00
Bogdan Tara
65af1066d4 Backed out 9 changesets (bug 1667081) for assertion failure on nsFocusManager CLOSED TREE
Backed out changeset 156ab3eba505 (bug 1667081)
Backed out changeset 2e37f347082c (bug 1667081)
Backed out changeset 8f59cef879ae (bug 1667081)
Backed out changeset 1298ff140218 (bug 1667081)
Backed out changeset 91342c822425 (bug 1667081)
Backed out changeset aafb1878c590 (bug 1667081)
Backed out changeset 2252e975f0d7 (bug 1667081)
Backed out changeset c3bac5f407d2 (bug 1667081)
Backed out changeset b1e6e81396ae (bug 1667081)
2020-09-28 20:02:52 +03:00
Edgar Chen
0d9571517d Bug 1667081 - Part 1: Replace usage of nsIFocusManager with nsFocusManager; r=hsivonen
This patch is bascially done by:
perl -p -i -e "s/nsIFocusManager\* /nsFocusManager* /g;" $( find . -name *.cpp )
perl -p -i -e "s/nsCOMPtr<nsIFocusManager>/RefPtr<nsFocusManager>/g;" $( find . -name *.cpp )

Differential Revision: https://phabricator.services.mozilla.com/D91287
2020-09-28 14:04:12 +00:00
Jonathan Kew
4d33447c61 Bug 1666110 - Add telemetry for paper size used when printing. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D91105
2020-09-25 22:19:40 +00:00
Emilio Cobos Álvarez
fa9c2aa5b1 Bug 1667400 - Remove PrintPreviewUserEventSuppressor. r=jwatt
Doesn't work at all with e10s / fission.

Differential Revision: https://phabricator.services.mozilla.com/D91440
2020-09-25 14:58:17 +00:00