element with partial opacity is missing from printed output

RESOLVED FIXED in Firefox 48

Status

()

RESOLVED FIXED
3 years ago
2 years ago

People

(Reporter: alice0775, Assigned: bas.schouten)

Tracking

(Blocks: 1 bug, {regression})

46 Branch
mozilla49
regression
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox46 wontfix, firefox47+ wontfix, firefox48+ fixed, firefox49+ fixed, firefox-esr38 unaffected, firefox-esr45 unaffected)

Details

Attachments

(2 attachments)

(Reporter)

Description

3 years ago
[Tracking Requested - why for this release]: Print output regression since Firefox46

This is regression since Firefox46.

Steps to reproduce:
1. Open http://www.htmq.com/css3/opacity.shtml
2. Print

Actual Results:
Printed only a frog image.

Expected results:
4 frogs should be printed.

Regression window:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=36c1e4eb0c9141aae4071a917ce4e3a59f5a79c6&tochange=d74084d072f0b5dfb00e3fbc103bef0a3fecbf85

Regressed by: Bug 1220629
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(bas)
I can reproduce on 64-bit Ubuntu Linux 16.04, with latest Nightly (using the system-provided "Print to File" fake PDF/PS printer that shows up in our print dialog).
OS: Windows 10 → All
Hardware: x86 → All
Summary: Not print opacity element → element with partial opacity is missing from printed output
Tracking for 47/48/49. Won't fix for 47 due to the fact it is too late in the cycle. Bas - can you take this on or help us find an owner? Thanks!
status-firefox47: affected → wontfix
tracking-firefox47: ? → +
tracking-firefox48: ? → +
tracking-firefox49: ? → +
(Assignee)

Comment 3

3 years ago
I can confirm the issue. If we have a reduced test case I suspect this won't be too hard to debug, I'd say probably 1-2 days. I could fix it or I could provide someone else in gfx some pointers on where to look. However I'm not sure how high the priority of this is. I'll leave it to Milan to give an indication of that.
Flags: needinfo?(bas) → needinfo?(milan)
Flags: needinfo?(milan)
Flags: needinfo?(jmuizelaar)
(Assignee)

Comment 4

3 years ago
Created attachment 8753922 [details]
Reduced test case

Some experimentation and reduction of the test case shows this is a transform problem, likely somehow related to cairo recording surfaces. Notice how in the test case I've offset the transparent element down somewhat and the offset is applied -twice- to the content of the transparent element.
(Assignee)

Comment 5

3 years ago
Created attachment 8756156 [details] [diff] [review]
Do not let cairo-surface-wrapper apply the device transform a second time

The functions in cairo_surface_wrapper are a surface backend, the source patterns passed to surface backends have already had their device transforms applied if applicable. This prevents them from being applied twice.
Assignee: nobody → bas
Status: NEW → ASSIGNED
Attachment #8756156 - Flags: review?(jmuizelaar)
Comment on attachment 8756156 [details] [diff] [review]
Do not let cairo-surface-wrapper apply the device transform a second time

Review of attachment 8756156 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/cairo/cairo/src/cairo-surface-wrapper.c
@@ +48,5 @@
>  			   const cairo_matrix_t  *ctm_inverse)
>  {
>      _cairo_pattern_init_static_copy (pattern, original);
>  
> +    /* Device transform should already have been applied before cairo_surface_wrapper_* functions are called*/

You should say where this happens.
Attachment #8756156 - Flags: review?(jmuizelaar) → review+

Comment 7

3 years ago
Pushed by bschouten@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/eb3d041b34c2
Make cairo-surface-wrapper not double-apply device transform. r=jrmuizel

Comment 8

3 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/eb3d041b34c2
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox49: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
(Reporter)

Updated

3 years ago
Blocks: 1277850
Bas, do you think it is worth uplifting it to beta? Thanks
Flags: needinfo?(bas)
Bas is out until mid next week, so to speed things up - this shipped in 46 and 47, and since it's printing, it'd be good if we can get into 48 - printing is important.  We haven't seen any fallout from the fix in three weeks on nightly and aurora, but I can't comment on the level of risk of the patch itself - Jeff, you reviewed it, if the risk is acceptable, could you request the 48 uplift?
Flags: needinfo?(jmuizelaar)
I think this should be ok to uplift to 48.
Flags: needinfo?(jmuizelaar)
Comment on attachment 8756156 [details] [diff] [review]
Do not let cairo-surface-wrapper apply the device transform a second time

Approval Request Comment
[Feature/regressing bug #]: bug 1220629
[User impact if declined]: Some bad printing
[Describe test coverage new/current, TreeHerder]: Has been in Aurora and Nightly for a while.
[Risks and why]: Could conceivably break printing in a different way.
Attachment #8756156 - Flags: approval-mozilla-beta?
Comment on attachment 8756156 [details] [diff] [review]
Do not let cairo-surface-wrapper apply the device transform a second time

Review of attachment 8756156 [details] [diff] [review]:
-----------------------------------------------------------------

This patch fixes a regression. Take it in 48 beta 4.
Attachment #8756156 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment 14

3 years ago
bugherderuplift
https://hg.mozilla.org/releases/mozilla-beta/rev/29268ff33b0e
status-firefox48: affected → fixed
QA Whiteboard: [good first verify]
(Assignee)

Updated

3 years ago
Flags: needinfo?(bas)
I have reproduced this bug with Nightly 49.0a1 (2016-05-12) on Ubuntu 14.04, 64 bit!

The bug's fix is now verified on latest Beta 49.0b3.

Beta 49.0b3:
Build ID 	20160811031722
User Agent 	Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0

[testday-20160812]

Comment 16

2 years ago
I have reproduced this bug with Firefox nightly 49.0a1 (2016-05-12) on Windows 10, 64 Bit.

The Bug's fix is now verified on latest Beta 49.0b3 .

Build ID 	20160811031722
User Agent 	Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 .

[testday-20160812]
I have reproduced this bug with Firefox nightly 49.0b3 ( 2016-08-12 ) on Ubuntu 16.04.1 , 64 Bit.
This Bug's fix is now verified on latest Beta 49.0b3.

Build ID    20160811031722
User Agent  Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0
Thanks for all the verifications, everyone!

One clarification / correction, though -- I think Mr. Alam got some language flipped or maybe mis-pasted a build ID. Quoting:

(In reply to Md Shahbaz Alam [:shahbaz17] from comment #17)
> I have reproduced this bug with Firefox nightly 49.0b3 ( 2016-08-12 )

"Reproduced this bug" means you *experienced the broken behavior* with that build (a build from yesterday, which is supposed to have the bug-fix!)  So -- if that part of 17 *were true*, it would be very bad because it'd mean the bug isn't actually fixed!

But, I'm guessing this was just a typo, though, since later you said:
> This Bug's fix is now verified on latest Beta 49.0b3.
...and also earlier comments from other people seem to indicate that it's indeed fixed in recent builds.

Anyway, just a heads-up to be careful not accidentally say the opposite you mean to say. :)  Thanks for helping out with verification, in any case!
(In reply to Daniel Holbert [:dholbert] (recovering from vacation reviews/bugmail) from comment #18)
> Thanks for all the verifications, everyone!
> 
> One clarification / correction, though -- I think Mr. Alam got some language
> flipped or maybe mis-pasted a build ID. Quoting:
> 
> (In reply to Md Shahbaz Alam [:shahbaz17] from comment #17)
> > I have reproduced this bug with Firefox nightly 49.0b3 ( 2016-08-12 )
> 
> "Reproduced this bug" means you *experienced the broken behavior* with that
> build (a build from yesterday, which is supposed to have the bug-fix!)  So
> -- if that part of 17 *were true*, it would be very bad because it'd mean
> the bug isn't actually fixed!
> 
> But, I'm guessing this was just a typo, though, since later you said:
> > This Bug's fix is now verified on latest Beta 49.0b3.
> ...and also earlier comments from other people seem to indicate that it's
> indeed fixed in recent builds.
> 
> Anyway, just a heads-up to be careful not accidentally say the opposite you
> mean to say. :)  Thanks for helping out with verification, in any case!

Sorry for that i didn't wrote that first line. I was using add-on grammarly. While i was writing the post, the firefox crashed. I didn't know when it was posted. Get to know about this through a mail in gmail.

And this bug is fixed now. I tested and got all the pictures.

I'll make sure this won't happen next time.
Flags: needinfo?(dholbert)
Flags: needinfo?(dholbert)
You need to log in before you can comment on or make changes to this bug.