Commit Graph
51 Commits
Author SHA1 Message Date
Andrew Osmond 05c5851941 Bug 1870970 - Ensure we call DrawEventRecorder::DetachResources to avoid memory leaks. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D196936
2023-12-20 12:59:26 +00:00
Noemi Erli 0340d8233c Backed out 12 changesets (bug 1795296, bug 1855742) as requested by aosmond a=backout
Backed out changeset 05b607c3bbe6 (bug 1795296)
Backed out changeset 7704291111b4 (bug 1855742)
Backed out changeset db60743295fb (bug 1855742)
Backed out changeset 8ed51e7d1c98 (bug 1855742)
Backed out changeset 40cba2c51b1c (bug 1855742)
Backed out changeset d4bfe15c07ec (bug 1855742)
Backed out changeset 2061271c53e8 (bug 1855742)
Backed out changeset 5b2a89a61f7f (bug 1855742)
Backed out changeset 2028c7018977 (bug 1855742)
Backed out changeset 13e806495fb8 (bug 1855742)
Backed out changeset 4bfa0d4913a2 (bug 1855742)
Backed out changeset 711b3f47e380 (bug 1855742)
2023-12-19 17:25:55 +02:00
Andrew Osmond 88718c7bcf Bug 1855742 - Part 9. Allow CanvasDrawEventRecorder to be created on DOM workers. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D189530
2023-12-19 05:10:34 +00:00
Jonathan Watt 05e63b3bcb Bug 1833244 p1. Create infrastructure to pass page dimensions to PrintTarget::BeginPage. r=dholbert,geckoview-reviewers,jonalmeida
OS print drivers/devices know nothing about page dimensions unless we tell
them. Previously, the physical page dimensions (including orientation) have
always been the same, so communicating their dimensions once at the start of
a print has been enough. In preparation for supporting different "physical"
page dimensions (in the immediate future only different page orientations) when
we save to PDF, we need to have the infrastructure to pass dimensions through
on a page-by-page basis. This patch adds that.

None of the PrintTarget subclasses do anything with this extra information yet,
but in a follow-up patch PrintTargetPDF will use this information to create
PDFs with mixed page orientations.

Differential Revision: https://phabricator.services.mozilla.com/D179423
2023-07-10 14:26:12 +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 8bf72ebc46 Bug 1833244 p2. Create infrastructure to pass page dimensions to PrintTarget::BeginPage. r=dholbert
OS print drivers/devices know nothing about page dimensions unless we tell
them. Previously, the physical page dimensions (including orientation) have
always been the same, so communicating their dimensions once at the start of
a print has been enough. In preparation for supporting different "physical"
page dimensions (in the immediate future only different page orientations) when
we save to PDF, we need to have the infrastructure to pass dimensions through
on a page-by-page basis. This patch adds that.

None of the PrintTarget subclasses do anything with this extra information yet,
but in a follow-up patch PrintTargetPDF will use this information to create
PDFs with mixed page orientations.

Differential Revision: https://phabricator.services.mozilla.com/D179423
2023-06-03 14:21:37 +00:00
Iulian Moraru 083e1115f0 Backed out changeset 9fce1abd1c50 (bug 1833244) for causing build bustages on nsDeviceContextAndroid.h. CLOSED TREE 2023-05-31 16:31:53 +03:00
Jonathan Watt abac61f9ca Bug 1833244 p1. Create infrastructure to pass page dimensions to PrintTarget::BeginPage. r=dholbert
OS print drivers/devices know nothing about page dimensions unless we tell
them. Previously, the physical page dimensions (including orientation) have
always been the same, so communicating their dimensions once at the start of
a print has been enough. In preparation for supporting different "physical"
page dimensions (in the immediate future only different page orientations) when
we save to PDF, we need to have the infrastructure to pass dimensions through
on a page-by-page basis. This patch adds that.

None of the PrintTarget subclasses do anything with this extra information yet,
but in a follow-up patch PrintTargetPDF will use this information to create
PDFs with mixed page orientations.

Depends on D179395

Differential Revision: https://phabricator.services.mozilla.com/D179423
2023-05-31 13:02:26 +00:00
David Shin 1a90bf740e Bug 1785046 - Part 3: Let nsIDeviceContextSpec::EndDocument & nsDeviceContext::EndDocument return MozPromise. r=nika,emilio,geckoview-reviewers,m_kato
All implementors currently simply resolve the promise right away, using
crutch code. Asynchronous usage will be added in the changeset that follows.

Differential Revision: https://phabricator.services.mozilla.com/D163508
2022-12-19 15:42:48 +00:00
Sylvestre Ledru 9ffafce8cc Bug 1519636 - Reformat recent changes to the Google coding style r=andi,media-playback-reviewers,necko-reviewers,padenot,dragana
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D148375
2022-06-07 12:32:55 +00:00
Dmitrij Feller 26d5b8b017 Bug 370035 - Remove the aWidget parameter from nsIDeviceContextSpec::Init.r=spohl
Differential Revision: https://phabricator.services.mozilla.com/D145841
2022-05-23 19:34:40 +00:00
Jonathan Watt 617874fc11 Bug 1754308 p1 - Stop sending nsIPrintSettings.toFileName to content processes. r=bobowen
This avoids exposing the path to potentially compromised content processes.

The roundtripping of the toFileName value from RemotePrintJobParent's
mPrintSettings to the content process and then back to
RemotePrintJobParent::InitializePrintDevice was silly anyway.

Differential Revision: https://phabricator.services.mozilla.com/D146867
2022-05-20 22:50:59 +00:00
Jonathan Watt 96ddaee248 Bug 1770211 p5 - Stop creating platform specific nsIDeviceContextSpec objects in content processes. r=bobowen
Depends on D146860

Differential Revision: https://phabricator.services.mozilla.com/D146861
2022-05-20 17:33:23 +00:00
Jonathan Watt 1592fc4878 Bug 1432651 p2 - Remove nsIPrintSession and all the code that uses it. r=emilio,geckoview-reviewers,m_kato
Lately nsIPrintSession was only used to pass around RemotePrintJobChild objects.
Now that we pass those objects explicitly where needed (part 1), this class
serves no purpose.

Another reason to want to get rid of this class is that having it as a member
of nsIPrintSettings made no sense and was confusing.

Differential Revision: https://phabricator.services.mozilla.com/D146381
2022-05-16 08:38:02 +00:00
Jonathan Watt e5a8eb1650 Bug 1432651 p1 - Pass RemotePrintJobChild through to the places where it's needed. r=emilio
Given how nsIPrintSettings is passed around, stored and copied all over the
place, it's very hard to reason about where and when a RemotePrintJobChild is
needed or valid. This patch avoids all that by explicitly passing a
RemotePrintJobChild when it's needed.

Another reason to make this change is because RemotePrintJobChild really does
not belong on nsIPrintSettings. That interface is supposed to represent a
collection of settings for laying out the document that is to be printed.

Differential Revision: https://phabricator.services.mozilla.com/D146380
2022-05-16 08:38:01 +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
Mats Palmgren 0da9ff06a8 Bug 1698235 - Add some error handling when using RemotePrintJobChild which may be destroyed. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D108711
2021-03-18 19:39:09 +00:00
Mats Palmgren 925174e044 Bug 1689789 part 2 - Use Ceil instead of Truncate the ensure the print surface is large enough for the requested paper size. r=jfkthame
Also, for GTK, request the paper size in millimeter for
millimeter based paper units to avoid depending on GTK's
rounding behavior.

Differential Revision: https://phabricator.services.mozilla.com/D103609
2021-02-06 00:28:29 +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
Matt Woodrow c99aff0bd8 Bug 1662336 - Pass print recording dependency list across to parent process and use CrossProcessPaint to resolve it. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D90807
2020-10-08 08:40:15 +00:00
Gabriele Svelto f03cdb2b2d Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55444
2019-12-06 09:17:57 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Boris Zbarsky 0b17fcf81f Bug 1507540 part 5. Use more notxpcom attributes in widget/. r=ehsan 2018-11-19 20:17:54 -05:00
Brendan Dahl f0ed4840a3 Bug 221706 - Use unwritable region when printing on Windows. r=jimm
Read more information from the printing device to setup the unwritable region.
Translate the printing context's coordinate system so that the point (0,0)
refers to the top-left of the physical paper instead of the top-left of the
printable region.

MozReview-Commit-ID: 9ei2FgEUDyO
2018-03-28 17:13:10 -07:00
Jonathan Watt e4af39a2f9 Bug 1432409 part 1 - Prevent nsDeviceContextSpecProxy using RemotePrintJobChild if initialization fails. r=dholbert
When RemotePrintJobChild::InitializePrint sends a message to the parent
process to ask it to initialize printing it spins the event loop and
waits for a reply.  If the parent fails to initialize printing it will
send back an error message followed immediately by a second message
telling the child process to delete its RemotePrintJobChild.  The error
message causes the nested event loop to terminate and blocks
RemotePrintJobChild::InitializePrint.  We then do various async things
to clean up, some of which can try to post messages to the parent
process's RemotePrintJobParent.  This is a problem since the delete
message is pending in the child process's event loop resulting in a
race between the code that wants to use the RemotePrintJobChild to send
a message to the parent process, and the delete event that will make us
crash if anyone tries to use the RemotePrintJobChild.

This patch makes sure that if nsDeviceContextSpecProxy's BeginDocument
returns failure (remote print job initialization failed) that its
EndDocument and AbortDocument methods are then no-ops and will not try
to use its RemotePrintJobChild.  (BeginPage and EndPage are not changed
since they are not called if BeginDocument returns an error result.)

MozReview-Commit-ID: 2H6GHjngX7R
2018-02-16 14:53:26 +00:00
Alex Gaynor e00d17e17c 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
2017-11-03 14:37:15 -04:00
Alex Gaynor dfbea0e70e 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
2017-11-03 14:03:02 -04:00
Alex Gaynor c4f22ca1b5 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
2017-10-03 16:34:18 -04:00
Alex Gaynor a86359f0e1 Bug 1319423 - Part 1 - Introduce DrawEventRecorderPRFileDesc to allow switching away from std::ofstream in printing; r=jrmuizel
MozReview-Commit-ID: 1gn8J2fhejS
2017-10-03 12:29:15 -04:00
Jeff Muizelaar fb2f684d18 Bug 1369552. Split out DrawTargetWrapAndRecord and DrawTargetRecording. r=Bas
DrawTargetRecording will stop playing back durin recording.
2017-06-12 16:52:29 -04:00
Bob Owen e9b98ecc4b Bug 1324064: Stop accessing printer devices in the child when printing via parent. r=jimm
This should remove all access to printer devices on Windows, there might by some other OS specific code which still does.
2017-01-06 11:29:11 +00:00
Bob Owen 18fc439891 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 78db149a55 Backed out changeset a4b0052954d2 (bug 1279699) for causing various crash regressions. 2016-12-01 15:25:25 -05:00
Bob Owen ceaaaa85f7 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 a9b19d0584 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
2016-08-24 14:47:04 +08:00
Nicolas Silva 3766bcc94a Bug 1284837 - Disallow implicit conversions from float to integer when creating IntPoint and IntSize objects. r=botond 2016-07-26 16:48:30 +02:00
Jonathan Watt b42afa509b Backed out changeset 1bd6da31483d (bug 1279654) 2016-06-16 17:28:50 +01:00
Jonathan Watt c4a20a411e Bug 1279654 - Create a PrintTargetRecording subclass of PrintTarget. r=mstange 2016-06-13 17:19:08 +01:00
Jonathan Watt daa8a9c2ed Bug 1278269 - Make a PrintTarget class and PrintTargetThebes subclass and convert all nsIDeviceContextSpec subclasses to use them. r=Bas 2016-06-03 11:27:31 +01:00
eyim c53a818ae3 Bug 1145085 - Move widget/ContentHelper.* to gfx/layers/apz/util/TouchActionHelper.*. r=BenWa,kats
r?BenWa,kats

MozReview-Commit-ID: 5snt3fIGnAS
2016-05-27 16:46:25 -04:00
Bob Owen 715daf4eb1 Bug 1257825: Remove checks for paper height and width <= 0 in nsPrintSettings. r=dvander
Also added the check for invalid width / height into nsDeviceContextSpecProxy that was added into nsDeviceContextSpecWin.
2016-03-19 11:07:16 +00:00
Bob Owen 4d819d2966 Bug 1253247: Return an error when trying to Init an nsDeviceContextSpecProxy without a RemotePrintJob. r=jimm 2016-03-05 18:25:14 +00:00
Bob Owen 1169d23daa Bug 1238964 Part 1: Hold new printable page sizes in print nsIPrintSettingsWin. r=jimm
This also holds the resolution in the print settings, so that we can start to
remove the access to the native Windows print devices in the child process.
2016-01-22 16:05:19 +00:00
Nicholas Nethercote f16ab43ac3 Bug 1209812 (part 6) - Convert all gfxImageFormat values to SurfaceFormat equivalents. r=jrmuizel.
This patch:

- Makes the following substitutions (plus necessary namespace qualifiers:

    gfxImageFormat::ARGB32      --> SurfaceFormat::A8R8G8B8_UINT32
    gfxImageFormat::RGB24       --> SurfaceFormat::X8R8G8B8_UINT32
    gfxImageFormat::A8          --> SurfaceFormat::A8
    gfxImageFormat::RGB16_565   --> SurfaceFormat::R5G6B5_UINT16
    gfxImageFormat::Unknown     --> SurfaceFormat::UNKNOWN

- Changes gfxImageFormat to be a typedef to gfx::SurfaceFormat. This will be
  removed soon.

- Removes gfxCairoFormatToImageFormat() and gfxImageFormatToCairoFormat() and
  replace calls to them with CairoFormatToGfxFormat() and
  GfxFormatToCairoFormat().

- Removes ParamTraits<gfxImageFormat>.

- Add namespace qualifiers to SurfaceFormat instances where necessary.
2016-01-07 20:57:38 -08:00
Bob Owen 4f71744c7e Bug 1156742 Part 14: Complete RemotePrintJob using PrintTranslator. r=mconley 2016-01-05 10:08:57 +00:00
Bob Owen b4f6f23c16 Bug 1156742 Part 9: Add a new nsIDeviceContextSpec for proxied printing. r=roc
This also changes aPrintToFileName parameter for BeginDocument to an nsAString& from char16_t*.
Having a char16_t* caused a pain with VS2105 where wchar_t != char16_t (as on VS2103), after it had been sent over IPDL.
This could have been worked around with casting, but this seemed like the tidier solution.
2016-01-05 10:08:57 +00:00
Wes Kocher 1a9a0126d8 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
2015-12-21 13:47:33 -08:00
Bob Owen 50c0511bc7 Bug 1156742 Part 14: Complete RemotePrintJob using PrintTranslator. r=mconley 2015-12-21 20:33:14 +00:00