5e248d356b4dfe5686e219f8b7977e17a8eb950c: Bug 1399787 - Part 12. Delay dispatching FinalizePrint message until the last page was processed. draft
cku <cku@mozilla.com> - Mon, 06 Nov 2017 16:28:51 +0800 - rev 709060
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 12. Delay dispatching FinalizePrint message until the last page was processed. For the last page, here is the final three messages sent between the content process, RemotePrintJobChild, and the chrome process, RemotePrintJobParent, for printing: 1. The content process sends *ProcessPage* to the chrome process via SendProcessPrint to request the chrome process print the last page. 2. The content process sends *FinalizePrint* to the chrome process via SendFinalizePrint to notify the chrome that there are no more outstanding print requests, and that the chrome process can release interal resource now. 3. The content process receive PageProcessed message from the chrome process. This calling sequence is fine for sync style PrintTarget (even though the FinalizePrint message is sent out a bit ealy). Since a sync PrintTarget completes its print task right after receiving *ProcessPage* message in #1, sending FinalizePrint before getting PageProcessed response is harmless. But this message dispatching sequence does cause a problem for async style PrintTargetEMF. After getting a message sent in #2, PrintTargetEMF release all resources before getting a EMF conversion response from the PDFium process. So the last page can not be printed correctly. This patch reorder the #2 and #3 message, that is to send FinalizePrint after the content process received PageProcessed message of the last page. MozReview-Commit-ID: 9ZVSrFnuHBU
cbbcef476eaedd6f01ba81facf74477a83c53732: Bug 1399787 - Part 11.d. Using PrintTargetEMF on windows if skia-pdf is enable. draft
cku <cku@mozilla.com> - Tue, 14 Nov 2017 13:57:11 +0800 - rev 709059
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 11.d. Using PrintTargetEMF on windows if skia-pdf is enable. MozReview-Commit-ID: Hx94fqGJFz6
5db82860ef86d91bb293b6d2d49e7492676302bb: Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. draft
cku <cku@mozilla.com> - Thu, 30 Nov 2017 11:55:12 +0800 - rev 709058
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. MozReview-Commit-ID: FsDqjpy2wtR
b6b4a83683db738c0b4c951de7f0d6a3d7a67497: Bug 1399787 - Part 11.b. Use PrintTargetEMF to print chrome documents. draft
cku <cku@mozilla.com> - Mon, 13 Nov 2017 15:29:32 +0800 - rev 709057
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 11.b. Use PrintTargetEMF to print chrome documents. MozReview-Commit-ID: 9BjQ8PIZAWL
a496255faf6f704bfe4c56df92410b06e428e63f: Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. draft
cku <cku@mozilla.com> - Sun, 05 Nov 2017 04:36:37 +0800 - rev 709056
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. 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
69cd2b837d00bcb76aad6c10799241ac8cdb82db: Bug 1399787 - Part 10. Make PrintTargetEMF use the PDFium process to convert to EMF. draft
cku <cku@mozilla.com> - Sun, 05 Nov 2017 03:06:04 +0800 - rev 709055
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 10. Make PrintTargetEMF use the PDFium process to convert to EMF. We integrate PrintTargetEMF with the PDFium process to convert PDF into EMF in this patch. MozReview-Commit-ID: 5F0setrL94n
0059b5ddb1342a3c440da9bccb9bd53a457c0487: Bug 1399787 - Part 9. Sandbox the PDFium process. draft
cku <cku@mozilla.com> - Wed, 18 Oct 2017 20:52:45 +0800 - rev 709054
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 9. Sandbox the PDFium process. MozReview-Commit-ID: 6ED7EPZvOMR
688f46422faacc14e641d7cd69e7b023b906b8fc: Bug 1399787 - Part 8. Open PDFium protocol channel. draft
cku <cku@mozilla.com> - Tue, 17 Oct 2017 12:48:30 +0800 - rev 709053
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 8. Open PDFium protocol channel. MozReview-Commit-ID: F9W9ykEtVmK
b6b80592876afb6440eab8cfd733d370aa860497: Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. draft
cku <cku@mozilla.com> - Wed, 29 Nov 2017 17:15:31 +0800 - rev 709052
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. MozReview-Commit-ID: CVfB81ifV2p
4227181e538e3718194f243b9283410cb1c9174f: Bug 1399787 - Part 6. Implement the bulk of a new PrintTargetEMF. draft
cku <cku@mozilla.com> - Sun, 05 Nov 2017 02:05:25 +0800 - rev 709051
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 6. Implement the bulk of a new PrintTargetEMF. A new subclass of PrintTarget. 1. It uses PrintTargetSkPDF to generate one PDF FileDescriptor for one page. 2. In a later patch, it then passes that FD to PDFium process for converting a PDF page to EMF contents. Implementation of integration with PDFium actor is added the subsequent patches. MozReview-Commit-ID: EcuBJHRW8Wk
42df7b2dbcc2e2ade3d6bee4f9b913766f0f3692: Bug 1399787 - Part 5. Implement the PDFium process. draft
cku <cku@mozilla.com> - Mon, 16 Oct 2017 16:22:07 +0800 - rev 709050
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 5. Implement the PDFium process. MozReview-Commit-ID: 502jB9DAeIC
1eb4a3b262f5b12253f4dfd73e50f6805dc5d9f0: Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. draft
cku <cku@mozilla.com> - Sun, 05 Nov 2017 00:53:05 +0800 - rev 709049
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. To move EMF conversion job to a dedicated process, I will implement a new PrintTarget subclass, named PrintTargetEMF, to coordinate tasks among the content process, chrome process and PDFium process. All the code that we change in nsDeviceContextSpecWin is no longer needed. MozReview-Commit-ID: GgKZoB92WYE
64460d2efcaabb04cefd01f6bfc6526229aa91ec: Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. draft
cku <cku@mozilla.com> - Fri, 13 Oct 2017 16:58:07 +0800 - rev 709048
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. Define ipdl and actor classes. Implementation of actors is added in subsequent patches. Control flow: 1. A user starts a printing job. 2. We create a PrintTarget to print web content page by page. 3. When printing pages: a. PrintTarget, who lives in the chrome process, create a new FileDescriptor and pass that FD to the content process. b. The content process renders page contents into the given FD. c. PrintTarget render that FD, which contains only one page, into a PDF file. d. PrintTaget asks PDFium process to convert that PDF file into EMF contents by *ConvertToEMF* e. The PDFium process converts the given PDF into EMF contents and send back EMF contents by *ConvertToEMFDone* f. PrintTaget playbacks that EMF onto a printer DC. One page is printed! f. If all pages are printed, then finalize print job; Otherwise, loop back to #a. The control flow that we landed in bug 1370488 does not work like the flow I described above. In [1], we paint all pages into one single PDF file. After all pages are rendered into this PDF file, we finalize the current print job, which means the printing progress dialog is close. *Then* we start to convert that PDF into EMF and print each EMF page onto printer DC. We can not cancel this conversion task since the printing dialog is close, there is no UI allow us to do that. One more serious problem is: since the printing progress dialog is close, people think that printing is done, but actually it's not. Except move EMF conversion to a dedicated process, named PDFium process, I will also fix the behavior we landed in bug 1370488. [1] https://hg.mozilla.org/mozilla-central/rev/b611ec2a42bf MozReview-Commit-ID: JAnmNc3gAVK
2c466eb4af740a1d2d74f92eca31a85295a1319a: Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. draft
cku <cku@mozilla.com> - Thu, 02 Nov 2017 20:19:30 +0800 - rev 709047
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. This is to make the naming more consistent with SavePageToBuffer. MozReview-Commit-ID: 5miYvv9yFFR
c6dcce3127fefc3bea9ee95b383c34389f62d0d7: Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. draft
cku <cku@mozilla.com> - Wed, 01 Nov 2017 20:27:17 +0800 - rev 709046
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. With the help of these new function, we can serialize/deserialize EMF content in/out a share memory object. MozReview-Commit-ID: Dm45xEXmMqS
a565fda4b6ca421eac92b45ab30812cf51ccd24b: Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. draft
cku <cku@mozilla.com> - Wed, 01 Nov 2017 21:33:28 +0800 - rev 709045
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. All the functions added in Part 2 are utilities for sharing EMF/PDF contents between processes. MozReview-Commit-ID: 3qKosXH56kY
9106ae82cf4f7b72c39485d3cb634ae39cae0e40: Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. draft
cku <cku@mozilla.com> - Fri, 06 Oct 2017 22:01:22 +0800 - rev 709044
Push 92525 by cku@mozilla.com at Thu, 07 Dec 2017 14:36:53 +0000
Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. We will create several new files in the following patches for IPC and a new subprocess. Several already existed files will be shifted into new build units, we will meet several compile errors because of it. This patch fixes those compile error in advance. MozReview-Commit-ID: 5hd0sNYfBu0
2d5f332d7e0d22b8aeaa25f282cd1090ac649ff0: Bug 1423353 - Fix xperf intermittents r?jmaher draft
Ionut Goldan <igoldan@mozilla.com> - Thu, 07 Dec 2017 14:47:42 +0200 - rev 709043
Push 92524 by bmo:igoldan@mozilla.com at Thu, 07 Dec 2017 14:27:11 +0000
Bug 1423353 - Fix xperf intermittents r?jmaher MozReview-Commit-ID: FVhWEphTKrL
012dd324aa02990dab3c99d6cb941fe027e59d27: Bug 1423891 - Panel header is gone when going back from Bookmarks to Library. r=Gijs draft
Paolo Amadini <paolo.mozmail@amadzone.org> - Thu, 07 Dec 2017 14:24:12 +0000 - rev 709042
Push 92523 by paolo.mozmail@amadzone.org at Thu, 07 Dec 2017 14:26:23 +0000
Bug 1423891 - Panel header is gone when going back from Bookmarks to Library. r=Gijs MozReview-Commit-ID: Bfgg61BH9L8
b21d7f11b0523399553b31fb4b3542716d2282cc: Bug 1423869 - don't draw to mContainer when decorations are rendered by window manager, r?jhorak draft
Martin Stransky <stransky@redhat.com> - Thu, 07 Dec 2017 15:20:48 +0100 - rev 709041
Push 92522 by stransky@redhat.com at Thu, 07 Dec 2017 14:24:49 +0000
Bug 1423869 - don't draw to mContainer when decorations are rendered by window manager, r?jhorak Bug 1421974 introduced new mechanism to hide system titlebar by enabling client-side decorations for main Firefox window. It also causes a regression when the CSD window setup is enabled when system titlebar is hidden by window manager. This patch fixes that and enables the CSD window setup only for case when it's actualy used. MozReview-Commit-ID: 6OzoPyxlhCp
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip