0b75ef19e695bfa9c38a0d480626f6423542d5be: Bug 1399787 - Part 11.c. Add assertions to make sure no page-done callback from the PrintTarget after the print job done. r=jwatt
cku <cku@mozilla.com> - Thu, 30 Nov 2017 11:55:12 +0800 - rev 709210
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
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
2382a348a6c1882e2d721d5b613275efba5f51af: Bug 1399787 - Part 11.b. Use PrintTargetEMF to print chrome documents. r=jwatt
cku <cku@mozilla.com> - Mon, 13 Nov 2017 15:29:32 +0800 - rev 709209
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 11.b. Use PrintTargetEMF to print chrome documents. r=jwatt MozReview-Commit-ID: 9BjQ8PIZAWL
93f9a5e253d8a4a59bf9e9ae1c1394d4d0409632: Bug 1399787 - Part 11.a. Use PrintTargetEMF to print content documents. r=jwatt
cku <cku@mozilla.com> - Sun, 05 Nov 2017 04:36:37 +0800 - rev 709208
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
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
5c50bbde0950ce2770e70faf04d53f004cc45e28: Bug 1399787 - Part 10. Make PrintTargetEMF use the PDFium process to convert to EMF. r=jwatt
cku <cku@mozilla.com> - Sun, 05 Nov 2017 03:06:04 +0800 - rev 709207
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 10. Make PrintTargetEMF use the PDFium process to convert to EMF. r=jwatt We integrate PrintTargetEMF with the PDFium process to convert PDF into EMF in this patch. MozReview-Commit-ID: 5F0setrL94n
67e530c129c786084f5d4162a8b424b7a5877ac1: Bug 1399787 - Part 9. Sandbox the PDFium process. r=bobowen,jwatt
cku <cku@mozilla.com> - Wed, 18 Oct 2017 20:52:45 +0800 - rev 709206
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 9. Sandbox the PDFium process. r=bobowen,jwatt MozReview-Commit-ID: 6ED7EPZvOMR
682c60e5274907e33c6243bc4240ab29393c2520: Bug 1399787 - Part 8. Open PDFium protocol channel. r=jwatt
cku <cku@mozilla.com> - Tue, 17 Oct 2017 12:48:30 +0800 - rev 709205
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 8. Open PDFium protocol channel. r=jwatt MozReview-Commit-ID: F9W9ykEtVmK
ff1436ae1ef7e38f8946a14d7899cf8c7af05da6: Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. r=jwatt
cku <cku@mozilla.com> - Wed, 29 Nov 2017 17:15:31 +0800 - rev 709204
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 7. Have PrintTargetEMF launch the PDFium process. r=jwatt MozReview-Commit-ID: CVfB81ifV2p
cb3ae1dc20b26d284f28de140fb2afe7d461302c: Bug 1399787 - Part 6. Implement the bulk of a new PrintTargetEMF. r=jwatt
cku <cku@mozilla.com> - Sun, 05 Nov 2017 02:05:25 +0800 - rev 709203
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 6. Implement the bulk of a new PrintTargetEMF. r=jwatt 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
bc52b17816410be51ac941f524e3793ed7a8b4c7: Bug 1399787 - Part 5. Implement the PDFium process. r=jwatt
cku <cku@mozilla.com> - Mon, 16 Oct 2017 16:22:07 +0800 - rev 709202
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 5. Implement the PDFium process. r=jwatt MozReview-Commit-ID: 502jB9DAeIC
d165846cb5e146b021c62557b4db0758d3ca2756: Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. r=jwatt
cku <cku@mozilla.com> - Sun, 05 Nov 2017 00:53:05 +0800 - rev 709201
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 4. Take out the code we landed in bug 1370488. r=jwatt 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
18536826735456ebddb4ddc4b71bba009d8a4eaf: Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. r=jwatt
cku <cku@mozilla.com> - Fri, 13 Oct 2017 16:58:07 +0800 - rev 709200
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 3. Create a top level protocol for the PDFium process. r=jwatt 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
c385d0f60f8a36f4731cc4947b882e6008a8800e: Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. r=jwatt
cku <cku@mozilla.com> - Thu, 02 Nov 2017 20:19:30 +0800 - rev 709199
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 2.c. Rename DrawPageToFile to SavePageToFile. r=jwatt This is to make the naming more consistent with SavePageToBuffer. MozReview-Commit-ID: 5miYvv9yFFR
364b5b44932bfd9a2583c9f1f5e0bf7f3a820c7b: Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. r=jwatt
cku <cku@mozilla.com> - Wed, 01 Nov 2017 20:27:17 +0800 - rev 709198
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 2.b. Add functions to read/write EMF content from/to a buffer. r=jwatt With the help of these new function, we can serialize/deserialize EMF content in/out a share memory object. MozReview-Commit-ID: Dm45xEXmMqS
98758e79710d08ac39b81db5b21707c70adaef33: Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. r=jwatt
cku <cku@mozilla.com> - Wed, 01 Nov 2017 21:33:28 +0800 - rev 709197
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 2.a. Add functions to load the content of a PDF from a FileDescriptor. r=jwatt All the functions added in Part 2 are utilities for sharing EMF/PDF contents between processes. MozReview-Commit-ID: 3qKosXH56kY
d56497aa53900e0c4e2ed87b7c79fd47c9611f30: Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. r=jwatt
cku <cku@mozilla.com> - Fri, 06 Oct 2017 22:01:22 +0800 - rev 709196
Push 92569 by bmo:ted@mielczarek.org at Thu, 07 Dec 2017 18:41:02 +0000
Bug 1399787 - Part 1. Fix namespacing and include issues hidden by unified compilation. r=jwatt 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
6b81cb89658c875028744454745e06e6301a37a8: Bug 1417232 - Post: Add gradle.configure to android-* tasks. r=ted.mielczarek draft
Nick Alexander <nalexander@mozilla.com> - Tue, 14 Nov 2017 10:15:30 -0800 - rev 709195
Push 92568 by nalexander@mozilla.com at Thu, 07 Dec 2017 18:39:28 +0000
Bug 1417232 - Post: Add gradle.configure to android-* tasks. r=ted.mielczarek With Gradle integration centralized in gradle.configure, changing these integration points will need to trigger the android-* tasks. MozReview-Commit-ID: DuOuW1RIgCh
0b777b45ef9b29991ad1165c8a77557e73152998: Bug 1417232 - Part 4: Tweak Gradle targets. r=ted.mielczarek draft
Nick Alexander <nalexander@mozilla.com> - Fri, 10 Nov 2017 11:38:39 -0800 - rev 709194
Push 92568 by nalexander@mozilla.com at Thu, 07 Dec 2017 18:39:28 +0000
Bug 1417232 - Part 4: Tweak Gradle targets. r=ted.mielczarek These were just incorrect or unnecessary. MozReview-Commit-ID: AH6z70e4ErF
5721e9158b2bc9f664b4bf72d61c9e1d77727870: Bug 1417232 - Part 3: Extract magic Gradle configuration from |mach android *|. r=ted.mielczarek draft
Nick Alexander <nalexander@mozilla.com> - Fri, 10 Nov 2017 15:39:09 -0800 - rev 709193
Push 92568 by nalexander@mozilla.com at Thu, 07 Dec 2017 18:39:28 +0000
Bug 1417232 - Part 3: Extract magic Gradle configuration from |mach android *|. r=ted.mielczarek This pushes all of the magic Gradle targets into gradle.configure, which is the most accessible central place for them. Some impact the build, so they almost certainly need to be in moz.configure; and its better to have one central place to update than many places. Gradle has a notion of configurations. Fennec determines many configurations, only one of which is used in automation; and right now, that one is "officialPhotonDebug". Evolving the "one true" configuration is frustrating, and this helps with that. Post Android-Gradle plugin 3.0+, we can do better and also extract the configuration details for the :geckoview and :geckoview_example Gradle projects, but right now they are ad-hoc and can't really be improved. MozReview-Commit-ID: LdGE05zn2H1
dd349d4c91733a5d5bc25683f78c490fb3c2b807: Bug 1417232 - Part 2: Extract magic Gradle configuration from build into |mach android assemble-app|. r=ted.mielczarek draft
Nick Alexander <nalexander@mozilla.com> - Wed, 08 Nov 2017 15:27:36 -0800 - rev 709192
Push 92568 by nalexander@mozilla.com at Thu, 07 Dec 2017 18:39:28 +0000
Bug 1417232 - Part 2: Extract magic Gradle configuration from build into |mach android assemble-app|. r=ted.mielczarek These magic locations evolve over time. Baking them into moz.configure is the easiest way to share them across the build system, and pushing them into a new |mach android *| command continues a pattern that has been very successful. MozReview-Commit-ID: CyxVQ0LHHgl
794aac9e17597dfcd2bd693c398ac6019f693cf3: Bug 1417232 - Part 1: Move Treeherder report logging to mach command. r=ted.mielczarek draft
Nick Alexander <nalexander@mozilla.com> - Thu, 07 Dec 2017 10:14:57 -0800 - rev 709191
Push 92568 by nalexander@mozilla.com at Thu, 07 Dec 2017 18:39:28 +0000
Bug 1417232 - Part 1: Move Treeherder report logging to mach command. r=ted.mielczarek This was in Gradle due to history. When this first landed, we invoked Gradle directly from the mozharness, and the best way to print the report URLs was from Gradle itself. When the Android Gradle suites were made tier 1, little harnesses (|mach android {checkstyle,findbugs,lint,test}|) were written and invoked locally and in automation. This functionality should have migrated with them. This removes the special Gradle target names from the Gradle configuration, making it easier to change them in the future. MozReview-Commit-ID: 1KPd3J5t82Q
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip