WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
42214
chromium/skia: Fix canvas.toDataURL in the presence of transparency
https://bugs.webkit.org/show_bug.cgi?id=42214
Summary
chromium/skia: Fix canvas.toDataURL in the presence of transparency
Nico Weber
Reported
2010-07-13 17:02:08 PDT
chromium/skia: Fix canvas.toDataURL in the presence of transparency
Attachments
Patch
(5.00 KB, patch)
2010-07-13 17:09 PDT
,
Nico Weber
no flags
Details
Formatted Diff
Diff
Patch
(16.62 KB, patch)
2010-07-13 18:15 PDT
,
Nico Weber
no flags
Details
Formatted Diff
Diff
Patch
(16.65 KB, patch)
2010-07-15 11:17 PDT
,
Nico Weber
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Nico Weber
Comment 1
2010-07-13 17:09:21 PDT
Created
attachment 61436
[details]
Patch
Nico Weber
Comment 2
2010-07-13 17:53:43 PDT
The patch still needs a test case (despite claim in the changelog), but the code change is complete. Comments?
Nico Weber
Comment 3
2010-07-13 17:54:25 PDT
Oh, this is
http://crbug.com/26456
, and I need to credit deanm in the changelog as well.
Nico Weber
Comment 4
2010-07-13 18:15:23 PDT
Created
attachment 61446
[details]
Patch
Nico Weber
Comment 5
2010-07-13 18:18:36 PDT
Now with tests and attribution.
Adam Langley
Comment 6
2010-07-15 08:52:32 PDT
LGTM
Ojan Vafai
Comment 7
2010-07-15 11:11:02 PDT
Comment on
attachment 61446
[details]
Patch Code changes look fine. Just a few test comments.
> diff --git a/LayoutTests/fast/canvas/toDataURL-alpha.html b/LayoutTests/fast/canvas/toDataURL-alpha.html > + var d = document; > + var c = d.getElementById("c").getContext("2d"); > + c.fillStyle = "rgba(200, 255, 200, 0.7)"; > + c.fillRect(0, 0, c.canvas.width, c.canvas.height); > + d.getElementById("d").style.backgroundImage = ["url(", c.canvas.toDataURL("image/png"), ")"].join("");
Short variable names are generally frowned upon in WebKit code. I know this is just a test, but it makes this hard to read. Can you s/c/context and either not alias document or s/d/doc?
> diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.checksum b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.checksum > diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png
These should be in platform/mac or next to the test. Snow Leopard, for example, won't know to find the expected results in this directory.
Nico Weber
Comment 8
2010-07-15 11:17:12 PDT
Created
attachment 61690
[details]
Patch
Nico Weber
Comment 9
2010-07-15 11:18:15 PDT
> Short variable names are generally frowned upon in WebKit code. I know this is just a test, but it makes this hard to read. Can you s/c/context and either not alias document or s/d/doc?
Don.
> > diff --git a/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png b/LayoutTests/platform/mac-leopard/fast/canvas/toDataURL-alpha-expected.png > > These should be in platform/mac or next to the test. Snow Leopard, for example, won't know to find the expected results in this directory.
jamesr told me to put them there because text rendering is different on Snow Leopard, which would cause this to turn the 10.6 bot red.
Ojan Vafai
Comment 10
2010-07-15 11:26:14 PDT
(In reply to
comment #9
)
> > These should be in platform/mac or next to the test. Snow Leopard, for example, won't know to find the expected results in this directory. > > jamesr told me to put them there because text rendering is different on Snow Leopard, which would cause this to turn the 10.6 bot red.
If this were a test where pixel results were different on Snow Leopard, then it would make sense to do this, then grab the pixel results for Snow Leopard off the bot (assuming we had webkit pixel bots anymore) and put them in platform/mac. But, not all text rendering is different. I think that most of the time Leopard matches Snow Leopard. I'd be surprised to find that this test rendered differently on Snow Leopard than Leopard. Maybe I'm missing something though.
James Robinson
Comment 11
2010-07-15 11:57:51 PDT
Text _always_ renders differently on Leopard vs Snow Leopard due to subpixel AA differences. Thus pixel results for tests with text on mac are always Leopard or Snow Leopard specific. In this case, as the test exists now someone running with -p on Snow Leopard would not see any expected results. If the results were in platform/mac then someone running with -p on Snow Leopard would see small pixel diffs (if they had fuzzy matching enabled) or get a pixel failure (if they didn't have fuzzy matching enabled). Currently nobody runs pixel tests in an automated fashion except for Chromium and Chromium only runs them on Leopard, so this won't break anyone either way. However since we know that these results are going to only be valid on Leopard I'd much rather put them in mac-leopard now instead of having to move them manually later.
James Robinson
Comment 12
2010-07-15 11:58:36 PDT
Naturally adding Snow Leopard specific results to platform/mac in addition to the Leopard specific results in platform/mac-leopard is the best option of them all :)
WebKit Commit Bot
Comment 13
2010-07-15 16:47:30 PDT
Comment on
attachment 61690
[details]
Patch Clearing flags on attachment: 61690 Committed
r63494
: <
http://trac.webkit.org/changeset/63494
>
WebKit Commit Bot
Comment 14
2010-07-15 16:47:40 PDT
All reviewed patches have been landed. Closing bug.
WebKit Review Bot
Comment 15
2010-07-15 17:11:00 PDT
http://trac.webkit.org/changeset/63494
might have broken GTK Linux 32-bit Release and Qt Linux Release The following changes are on the blame list:
http://trac.webkit.org/changeset/63494
http://trac.webkit.org/changeset/63495
Nico Weber
Comment 16
2010-07-15 17:19:01 PDT
gtk/qt guys: That was probably me. Looks like minor, non-important differences. Could that be caused by fonts? How is this usually handled? Do you just add platform-specific expectations?
Ojan Vafai
Comment 17
2010-07-15 17:31:15 PDT
(In reply to
comment #16
)
> gtk/qt guys: That was probably me. Looks like minor, non-important differences. Could that be caused by fonts? How is this usually handled? Do you just add platform-specific expectations?
The chromium-win/chromium-linux bots are not finding the expected png. Looking at the code, they don't check mac-leopard. They only fallback to mac.
Nico Weber
Comment 18
2010-07-15 17:47:27 PDT
ojan: jamesr told me the usual procedure is to check in an expected failure for chromium (which I think I did, see my change to LayoutTests/platform/chromium/test_expectations.txt), then grab baselines from the bots later and check them in together with a change that removes the expected failure. This is my first time doing this, so chances are I screwed something up, but that was my plan :-)
Ojan Vafai
Comment 19
2010-07-15 18:00:22 PDT
(In reply to
comment #18
)
> ojan: jamesr told me the usual procedure is to check in an expected failure for chromium (which I think I did, see my change to LayoutTests/platform/chromium/test_expectations.txt), then grab baselines from the bots later and check them in together with a change that removes the expected failure.
Ah right. That is the right thing to do. The only catch is that the expectations file differentiates between a pixel failure and a missing result. So, instead of IMAGE here, you should have put MISSING...I think. :) This stuff is unfortunately very complicated.
Ojan Vafai
Comment 20
2010-07-15 18:10:54 PDT
I went ahead and marked it as MISSING.
Adam Barth
Comment 21
2010-07-15 21:21:51 PDT
This patch is wrong. LayoutTests/fast/canvas/toDataURL-alpha-expected.txt is a render tree dump. It should be in the platform/mac directory. In this patch, it's in the place where a text result should be, which is confusing all the tools. Will fix.
Adam Barth
Comment 22
2010-07-15 21:28:11 PDT
Result moved in
http://trac.webkit.org/changeset/63512
Adam Barth
Comment 23
2010-07-15 21:35:00 PDT
Gtk and Qt baselines in
http://trac.webkit.org/changeset/63513
The lesson here is the render tree dumps are very platform specific because of font metrics. Expected render tree dumps go in the platform folder for the appropriate port. Text expected results are much more likely to be cross-port, so they go in the main LayoutTest tree. When you land a render tree dump in the cross-port folder, every port thinks that it should work for it, but it doesn't. If you landed the results in the platform/mac folder, Qt and Gtk would know that the expected results were missing for them and the builders wouldn't get red and unhappy.
Nico Weber
Comment 24
2010-07-15 22:07:33 PDT
Thanks, Adam. Sorry for the nuisance :-/
Adam Barth
Comment 25
2010-07-15 22:16:13 PDT
(In reply to
comment #24
)
> Thanks, Adam. Sorry for the nuisance :-/
No problem. Sorry I was distracted in the channel and couldn't answer you questions in real time.
Nico Weber
Comment 26
2010-07-16 17:02:38 PDT
Baselines for win and linux for this patch are at
https://bugs.webkit.org/show_bug.cgi?id=42488
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug