Граф коммитов

47 Коммитов

Автор SHA1 Сообщение Дата
Jonathan Watt 88c85e4536 Bug 499025 - Don't open an error pop-up if the user cancels printing. r=bobowen
This fixes PrintTargetWindows::BeginPrinting to detect when the
user cancels and have it return NS_ERROR_ABORT in that case.

The rest of the changes are simply making sure that the various
call points up the call stack don't print a warning message if
NS_ERROR_ABORT is returned up from
PrintTargetWindows::BeginPrinting.

MozReview-Commit-ID: 6xZ5SPje6TT
2018-02-06 20:14:47 +00:00
Jonathan Watt 176a890dbf Bug 1432409 part 2 - Make RemotePrintJobChild::OnStatusChange no-op if initialization failed. r=dholbert
After the part 1 fix, we can still (asynchronously) call some generic cleanup
code that tries to let the parent process's RemotePrintJobParent know that
printing failed under the stack:

  RemotePrintJobChild::OnStatusChange
  nsPrintData::DoOnStatusChange
  nsPrintJob::FirePrintingErrorEvent
  nsPrintJob::CleanupOnFailure

We crash on trying to use the RemotePrintJobChild to message the parent process
since the delete message from the parent has been processed.  This change makes
RemotePrintJobChild::OnStatusChange check that it's initialized before trying
to send any messages.

Pushing to CLOSED TREE since this passed a full Try build and is a topcrash
we want to land for beta ASAP.

MozReview-Commit-ID: FfizRMj2s2m
2018-02-19 23:25:30 +00:00
Chris Peterson d09123f248 Bug 1436263 - Part 1: Replace `final override` virtual function specifiers with just `final`. r=froydnj
MozReview-Commit-ID: DE5HkIhsZ6D

--HG--
extra : rebase_source : 94831c1e13a840dd2ea0600f64bcf70c2bf938d9
extra : source : cf9283bf1b0bca3a6311c98e227329d451f80ecb
2018-02-05 22:46:57 -08:00
Chris Peterson 37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Mantaroh Yoshinaga b43ceba6b4 Bug 1419775 - Part 2.Notify closing IPC connection to PrintProgressService. r=bobowen
If the content process which is printing target content is closed
during printing, PrintProgressService will continue to display
progress dialog even if Cancel is clicked.

This patch will:
 * If IPC connection is closed, notify to PrintProgressService via
   nsIWebProgressListener.

MozReview-Commit-ID: DoOfJjnk1wJ

--HG--
extra : rebase_source : 861d36fca15fe156645235cdc77bc9461363a0b0
2018-01-10 09:02:45 +09:00
Jonathan Watt f239219d4f Bug 1425178 - Rename nsPrintEngine to nsPrintJob. r=bobowen
MozReview-Commit-ID: 2HCNmeOLPd3

--HG--
rename : layout/printing/nsPrintEngine.cpp => layout/printing/nsPrintJob.cpp
rename : layout/printing/nsPrintEngine.h => layout/printing/nsPrintJob.h
2017-12-04 11:44:17 -06:00
cku 1d858e08d2 Bug 1399787 - Part 14. Prevent RemotePrintJobChild using ipc calls after the channel was destroyed. r=jwatt
If in the future nsDeviceContextSpecWin::BeginDocument was to return
NS_ERROR_FAILURE, then the channel between RemotePrintJobParent and
RemotePrintJobChild will be close at [1]. RemotePrintJobChild keep using ipc
calls after the channel is broken and hits assertions.

PS:
We always hits this assertion by forcing nsDeviceContextSpecWin::BeginDocument
returning NS_ERROR_FAILURE. It's not relative to the change we made in
previous patches.

[1]
https://hg.mozilla.org/mozilla-central/file/b186fddce27f/layout/printing/ipc/RemotePrintJobParent.cpp#l44
MozReview-Commit-ID: 79mZBf301nb

--HG--
extra : rebase_source : 58076a18be56d7eea37ea2f5a147db0048e3493f
extra : intermediate-source : 88df2caad42694dd77f2a518ea8d460d6c88b8c6
extra : source : b920088860904c5d28f3dd2f6eda790dc09be003
2017-10-23 15:57:18 +08:00
cku 7f167d3fc5 Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. r=jwatt
MozReview-Commit-ID: FsDqjpy2wtR

--HG--
extra : rebase_source : 76a77c2f1f1ca54e3b8dec53581e1ba9a0e71b03
2017-11-30 11:55:12 +08:00
cku 3654a24e84 Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. r=jwatt
Before we introduce PrintTargetEMF, all PrintTargets finish page printing task
before the end of PrintTarget::EndPage(). Unlike others, a page printing
in PrintTargetEMF is done after receiving an async callback from the pdfium
process. So we have both async and sync page printing behavior now. This patch
is trying to make both of them work correctly while priting a content document.

MozReview-Commit-ID: 2PHJToFlvtu

--HG--
extra : rebase_source : 9d2d7cf7330a157a0e5c6a414c75de94ca3fb5a1
extra : source : f61eb00f83acf45511d8448922212dccb12b05aa
2017-11-05 04:36:37 +08:00
Cosmin Sabou 79d933ec34 Backed out 22 changesets (bug 1399787) for shutdown leaks on windows 7 debug tc-M without e10s r=backout on a CLOSED TREE
Backed out changeset 463d676df5da (bug 1399787)
Backed out changeset fc9776a2605d (bug 1399787)
Backed out changeset 2e91a90dfbc3 (bug 1399787)
Backed out changeset e82ab72f71ee (bug 1399787)
Backed out changeset d7fef200e8b9 (bug 1399787)
Backed out changeset a7d70f7f3335 (bug 1399787)
Backed out changeset 2800f9d20d96 (bug 1399787)
Backed out changeset 9dfa404abf9d (bug 1399787)
Backed out changeset 09b3c172a01e (bug 1399787)
Backed out changeset f9fd3e750636 (bug 1399787)
Backed out changeset 01284c55bf8a (bug 1399787)
Backed out changeset c2ab1b454283 (bug 1399787)
Backed out changeset e7bfa51404c5 (bug 1399787)
Backed out changeset 3fd2a734f887 (bug 1399787)
Backed out changeset ef21f295db3f (bug 1399787)
Backed out changeset c186893ce0fc (bug 1399787)
Backed out changeset 323da3bddaaa (bug 1399787)
Backed out changeset 3b89f189edff (bug 1399787)
Backed out changeset a47bd86c35ee (bug 1399787)
Backed out changeset 558526301a4c (bug 1399787)
Backed out changeset baa99fb50ba9 (bug 1399787)
Backed out changeset 6d82ed0ba805 (bug 1399787)
2017-12-08 13:09:56 +02:00
cku 843516539c Bug 1399787 - Part 14. Prevent RemotePrintJobChild using ipc calls after the channel was destroyed. r=jwatt
If in the future nsDeviceContextSpecWin::BeginDocument was to return
NS_ERROR_FAILURE, then the channel between RemotePrintJobParent and
RemotePrintJobChild will be close at [1]. RemotePrintJobChild keep using ipc
calls after the channel is broken and hits assertions.

PS:
We always hits this assertion by forcing nsDeviceContextSpecWin::BeginDocument
returning NS_ERROR_FAILURE. It's not relative to the change we made in
previous patches.

[1]
https://hg.mozilla.org/mozilla-central/file/b186fddce27f/layout/printing/ipc/RemotePrintJobParent.cpp#l44
MozReview-Commit-ID: 79mZBf301nb

--HG--
extra : rebase_source : a2de88bb45bc2fe8cbe9a0ca5327f09268a34b6d
extra : intermediate-source : 88df2caad42694dd77f2a518ea8d460d6c88b8c6
extra : source : b920088860904c5d28f3dd2f6eda790dc09be003
2017-10-23 15:57:18 +08:00
cku 9d58eb170e Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. r=jwatt
MozReview-Commit-ID: FsDqjpy2wtR

--HG--
extra : rebase_source : 3c1db998b483e7eaea3c6ffae8fdea139fed32b7
2017-11-30 11:55:12 +08:00
cku 8d5d5ad437 Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. r=jwatt
Before we introduce PrintTargetEMF, all PrintTargets finish page printing task
before the end of PrintTarget::EndPage(). Unlike others, a page printing
in PrintTargetEMF is done after receiving an async callback from the pdfium
process. So we have both async and sync page printing behavior now. This patch
is trying to make both of them work correctly while priting a content document.

MozReview-Commit-ID: 2PHJToFlvtu

--HG--
extra : rebase_source : ee691497bd439c6505f1f92898a667a9e972fff3
extra : source : f61eb00f83acf45511d8448922212dccb12b05aa
2017-11-05 04:36:37 +08:00
Bogdan Tara e882c9b394 Backed out 22 changesets (bug 1399787) for failing on mozmake.EXE r=backout a=backout on a CLOSED TREE
Backed out changeset 0afbd07d8219 (bug 1399787)
Backed out changeset 80c062fd58fb (bug 1399787)
Backed out changeset b1457eabd34e (bug 1399787)
Backed out changeset d875e45f591e (bug 1399787)
Backed out changeset 8f600ac930ec (bug 1399787)
Backed out changeset c478fb75f5cb (bug 1399787)
Backed out changeset c995f4e18724 (bug 1399787)
Backed out changeset 0b75ef19e695 (bug 1399787)
Backed out changeset 2382a348a6c1 (bug 1399787)
Backed out changeset 93f9a5e253d8 (bug 1399787)
Backed out changeset 5c50bbde0950 (bug 1399787)
Backed out changeset 67e530c129c7 (bug 1399787)
Backed out changeset 682c60e52749 (bug 1399787)
Backed out changeset ff1436ae1ef7 (bug 1399787)
Backed out changeset cb3ae1dc20b2 (bug 1399787)
Backed out changeset bc52b1781641 (bug 1399787)
Backed out changeset d165846cb5e1 (bug 1399787)
Backed out changeset 185368267354 (bug 1399787)
Backed out changeset c385d0f60f8a (bug 1399787)
Backed out changeset 364b5b44932b (bug 1399787)
Backed out changeset 98758e79710d (bug 1399787)
Backed out changeset d56497aa5390 (bug 1399787)
2017-12-07 19:16:08 +02:00
cku 2f6efc5efb Bug 1399787 - Part 14. Prevent RemotePrintJobChild using ipc calls after the channel was destroyed. r=jwatt
If in the future nsDeviceContextSpecWin::BeginDocument was to return
NS_ERROR_FAILURE, then the channel between RemotePrintJobParent and
RemotePrintJobChild will be close at [1]. RemotePrintJobChild keep using ipc
calls after the channel is broken and hits assertions.

PS:
We always hits this assertion by forcing nsDeviceContextSpecWin::BeginDocument
returning NS_ERROR_FAILURE. It's not relative to the change we made in
previous patches.

[1]
https://hg.mozilla.org/mozilla-central/file/b186fddce27f/layout/printing/ipc/RemotePrintJobParent.cpp#l44
MozReview-Commit-ID: 79mZBf301nb

--HG--
extra : rebase_source : 6b84da35fdc96ae8161552fe5d0764b0c2c0f3ee
extra : intermediate-source : 88df2caad42694dd77f2a518ea8d460d6c88b8c6
extra : source : b920088860904c5d28f3dd2f6eda790dc09be003
2017-10-23 15:57:18 +08:00
cku f07e4b883f Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. r=jwatt
MozReview-Commit-ID: FsDqjpy2wtR

--HG--
extra : rebase_source : 40b66df0674e5a571e647e17957032c6bfedd28e
2017-11-30 11:55:12 +08:00
cku bfe3b297fb Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. r=jwatt
Before we introduce PrintTargetEMF, all PrintTargets finish page printing task
before the end of PrintTarget::EndPage(). Unlike others, a page printing
in PrintTargetEMF is done after receiving an async callback from the pdfium
process. So we have both async and sync page printing behavior now. This patch
is trying to make both of them work correctly while priting a content document.

MozReview-Commit-ID: 2PHJToFlvtu

--HG--
extra : rebase_source : 3531dd6a100e9518d8cb9904326250a8318cdad2
extra : source : f61eb00f83acf45511d8448922212dccb12b05aa
2017-11-05 04:36:37 +08:00
Alex Gaynor 8cb6e552a8 Bug 1414834 - re-land print IPC changes from bug 1319423; r=bobowen
With this patch print IPC no longer requires the child process to create files.
Instead files are opened by the parent and a file descriptor is sent to the
child. This will allow us to sandbox child processes more aggressively.

MozReview-Commit-ID: GQWTYLV01kj

--HG--
extra : rebase_source : 9b91e9b01708d73915a49684c2cec96457650e45
2017-11-03 14:37:15 -04:00
Alex Gaynor 016a127546 Bug 1412643 - revert part 3 of the changes from 1319423 to fix print selection; r=bobowen
This will be re-landed with a real fix for print-selection after we branch for 58.

MozReview-Commit-ID: JjhBEiEviVB

--HG--
extra : rebase_source : 15b9a2eccdc5ce001bacb776e15f98f4d368c436
2017-11-03 14:03:02 -04:00
Alex Gaynor e6c660f838 Bug 1319423 - Part 3 - Change the print IPC to not require the content process to create a temporary file; r=bobowen
MozReview-Commit-ID: GLhTbfREk0n

--HG--
extra : rebase_source : f8f94b222fffa16ab973d07c940bfd64b5407440
2017-10-03 16:34:18 -04:00
Alex Gaynor b00c32c807 Bug 1319423 - Part 2 - Switch away from std::ifstream to PRFileDesc in PrintTranslator; r=jrmuizel
MozReview-Commit-ID: 6ucwbGkqOQ0

--HG--
extra : rebase_source : ab0540e2b7d61108c8c550d8bf8b8a594364f90a
2017-10-03 13:23:57 -04:00
Nathan Froyd c1d1748428 Bug 1359490 - add an event loop spinning abstraction function; r=gerald
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
2017-05-15 09:34:19 -04:00
Andrew McCreight fccb0645ed Bug 1323042 - forbid MOZ_COUNT_{CTOR,DTOR} for nsISupports classes; r=froydnj 2016-12-12 09:27:58 -05:00
Nathan Froyd 826598caba Backout aba6c73511a2 (bug 1307961) for massive test bustage resulting in a CLOSED TREE; r=alltheorange 2016-12-12 08:45:46 -05:00
Andrew McCreight e31b5489da Bug 1307961 - require consistent bloatview reporting for nsISupports classes; r=froydnj 2016-12-12 07:58:33 -05:00
Bob Owen 8565d5695d Bug 1279699: Use temporary files instead of shared memory to store the page recordings when printing via parent. r=bas, r=froydnj, r=jimm 2016-11-22 14:06:46 +00:00
Ryan VanderMeulen 21ece8d83a Backed out changeset a4b0052954d2 (bug 1279699) for causing various crash regressions.
--HG--
extra : rebase_source : bf9223381149f34a7b3513eda05fe197ae2db876
2016-12-01 15:25:25 -05:00
Bob Owen 58e9c2a82f Bug 1279699: Use temporary files instead of shared memory to store the page recordings when printing via parent. r=bas, r=froydnj 2016-11-22 14:06:46 +00:00
Kan-Ru Chen f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00
Nicholas Nethercote 34dcc7b852 Bug 1299384 - Use MOZ_MUST_USE with NS_warn_if_impl(). r=erahm.
This change avoids lots of false positives for Coverity's CHECKED_RETURN
warning, caused by NS_WARN_IF's current use in both statement-style and
expression-style.

In the case where the code within the NS_WARN_IF has side-effects, I made the
following change.

> NS_WARN_IF(NS_FAILED(FunctionWithSideEffects()));
> -->
> Unused << NS_WARN_IF(NS_FAILED(FunctionWithSideEffects()));

In the case where the code within the NS_WARN_IF lacks side-effects, I made the
following change.

> NS_WARN_IF(!condWithoutSideEffects);
> -->
> NS_WARNING_ASSERTION(condWithoutSideEffects, "msg");

This has two improvements.
- The condition is not evaluated in non-debug builds.
- The sense of the condition is inverted to the familiar "this condition should
  be true" sense used in assertions.

A common variation on the side-effect-free case is the following.

> nsresult rv = Fn();
> NS_WARN_IF_(NS_FAILED(rv));
> -->
> DebugOnly<nsresult rv> = Fn();
> NS_WARNING_ASSERTION(NS_SUCCEEDED(rv), "Fn failed");

--HG--
extra : rebase_source : 58788245021096efa8372a9dc1d597a611d45611
2016-09-02 17:12:24 +10:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Bob Owen 0671a5539a Bug 1285942 Part 1: Make RecordedEvent::PlayEvent return a bool and null check DrawTarget creation. r=bas
MozReview-Commit-ID: 8tm7rjFEbw0

--HG--
extra : rebase_source : 5a85bec626644515ef5a261c4cba076bcddf136c
2016-07-18 12:13:04 +01:00
Bob Owen 9cf07da276 Bug 1270447 Part 1: Use the RemotePrintJob's print settings in the parent when available. r=jimm
MozReview-Commit-ID: 4PnVf4pzHWr

--HG--
extra : rebase_source : 44f19893b27a2f2987cbd7f38d454f5d31aba5c3
2016-05-29 19:53:24 +01:00
Bob Owen 80ef8208d0 Bug 1189846 Part 8: Make RemotePrintJob a print progress listener forwarder. r=jimm
MozReview-Commit-ID: 4ADQ6Hx46fZ
2016-05-16 10:40:54 +01:00
Bob Owen 1fe62dee68 Bug 1156742 Part 24: Add new Recorded event to record font data. r=bas
We create and destroy ScaledFonts for every piece of text we write.
That causes a huge amount of duplicated data within the recording.
This splits out the recording of the font data itself from the ScaledFont.
The key generated to determine uniqueness could probably be fairly easily faked, but for our purposes that doesn't matter.
2016-01-05 10:08:58 +00:00
Bob Owen e1c9d379a7 Bug 1156742 Part 14: Complete RemotePrintJob using PrintTranslator. r=mconley 2016-01-05 10:08:57 +00:00
Bob Owen ffbb94296a Bug 1156742 Part 11: Allow RemotePrintJobChild to abort the print. r=roc
This is so the RemotePrintJobParent can abort the printing in the child when something goes wrong.
2016-01-05 10:08:57 +00:00
Bob Owen dd481e414a Bug 1156742 Part 10: Allow RemotePrintJob to influence nsPagePrintTimer. r=roc
Adds a new timer for the RemotePrintJob to notify the nsPagePrintTimer when the last page has finished printing in the parent.
Changed the page delay timer to reset the watch dog count on every page to prevent timeouts due to remote printing.
2016-01-05 10:08:57 +00:00
Bob Owen c38abff973 Bug 1156742 Part 6: Add RemotePrintJob to PrintSession and PrintData. r=roc, r=mconley
Someone knew that nsIPrintSession would come in handy one day.
2016-01-05 10:08:57 +00:00
Bob Owen 5f9cb1f258 Bug 1156742 Part 5: Add a skeleton RemotePrintJob. r=mconley
The methods will get filled out by later patches, this sets up the IPDL and lifetime management.
2016-01-05 10:08:57 +00:00
Wes Kocher a5249b6201 Backed out 25 changesets (bug 1156742) for build bustage in SkOSLibrary_win.cpp CLOSED TREE
Backed out changeset 31c0aadae8e7 (bug 1156742)
Backed out changeset f08df57ff700 (bug 1156742)
Backed out changeset 90c026d5dcb1 (bug 1156742)
Backed out changeset 8c6d14d80238 (bug 1156742)
Backed out changeset 72d86b0471c9 (bug 1156742)
Backed out changeset 363829accc09 (bug 1156742)
Backed out changeset 16360fe94d54 (bug 1156742)
Backed out changeset 5355c636a81a (bug 1156742)
Backed out changeset 18844d26b873 (bug 1156742)
Backed out changeset 99df86591613 (bug 1156742)
Backed out changeset 7ac1c7e15a11 (bug 1156742)
Backed out changeset de352000aae1 (bug 1156742)
Backed out changeset 4dd34ea230c6 (bug 1156742)
Backed out changeset 48c6ce65a5c2 (bug 1156742)
Backed out changeset dd52947f73c6 (bug 1156742)
Backed out changeset 5fe429ee880c (bug 1156742)
Backed out changeset dedca8fb19b0 (bug 1156742)
Backed out changeset d748b1354f92 (bug 1156742)
Backed out changeset 7f8e59588518 (bug 1156742)
Backed out changeset b90d302c57f6 (bug 1156742)
Backed out changeset 7a4da453572c (bug 1156742)
Backed out changeset a40eea914519 (bug 1156742)
Backed out changeset 99a8859afcdb (bug 1156742)
Backed out changeset 4934e88b2d7a (bug 1156742)
Backed out changeset 79733166f05e (bug 1156742) for build bustage in SkOSLibrary_win.cpp CLOSED TREE

--HG--
extra : amend_source : beeb6abbcc724b79ac166e828efa78dc4c5301da
2015-12-21 13:47:33 -08:00
Bob Owen fb35888c83 Bug 1156742 Part 24: Add new Recorded event to record font data. r=bas
We create and destroy ScaledFonts for every piece of text we write.
That causes a huge amount of duplicated data within the recording.
This splits out the recording of the font data itself from the ScaledFont.
The key generated to determine uniqueness could probably be fairly easily faked, but for our purposes that doesn't matter.
2015-12-21 20:33:14 +00:00
Bob Owen 7c7bc68d35 Bug 1156742 Part 14: Complete RemotePrintJob using PrintTranslator. r=mconley 2015-12-21 20:33:14 +00:00
Bob Owen b1c615dd5b Bug 1156742 Part 11: Allow RemotePrintJobChild to abort the print. r=roc
This is so the RemotePrintJobParent can abort the printing in the child when something goes wrong.
2015-12-21 20:33:13 +00:00
Bob Owen 48ebbb6b5a Bug 1156742 Part 10: Allow RemotePrintJob to influence nsPagePrintTimer. r=roc
Adds a new timer for the RemotePrintJob to notify the nsPagePrintTimer when the last page has finished printing in the parent.
Changed the page delay timer to reset the watch dog count on every page to prevent timeouts due to remote printing.
2015-12-21 20:33:13 +00:00
Bob Owen a3c64d5bb8 Bug 1156742 Part 6: Add RemotePrintJob to PrintSession and PrintData. r=roc, r=mconley
Someone knew that nsIPrintSession would come in handy one day.
2015-12-21 20:33:13 +00:00
Bob Owen 4797734560 Bug 1156742 Part 5: Add a skeleton RemotePrintJob. r=mconley
The methods will get filled out by later patches, this sets up the IPDL and lifetime management.
2015-12-21 20:33:13 +00:00