WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
18445
Assertion failure in CSSGradientValue::image() when the body element has a background gradient
https://bugs.webkit.org/show_bug.cgi?id=18445
Summary
Assertion failure in CSSGradientValue::image() when the body element has a ba...
mitz
Reported
2008-04-12 15:31:01 PDT
Failing the ASSERT(m_clients.contains(renderer)) in CSSGradientValue::image() because the body's background propagates to the root. See attached test case.
Attachments
Test case (will ASSERT)
(114 bytes, text/html)
2008-04-12 15:33 PDT
,
mitz
no flags
Details
testcases for gradient and canvas on body
(1.33 KB, patch)
2008-12-03 18:14 PST
,
Dean Jackson
no flags
Details
Formatted Diff
Diff
Change paintFillLayerExtended() to use body's renderer as the StyleImage client when the background is propagated from body to root
(155.19 KB, patch)
2009-05-30 00:04 PDT
,
mitz
simon.fraser
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
mitz
Comment 1
2008-04-12 15:33:58 PDT
Created
attachment 20494
[details]
Test case (will ASSERT)
mitz
Comment 2
2008-05-13 08:40:38 PDT
***
Bug 19030
has been marked as a duplicate of this bug. ***
Adam Roben (:aroben)
Comment 3
2008-05-13 08:41:39 PDT
<
rdar://problem/5931174
>
Dean Jackson
Comment 4
2008-12-03 18:12:38 PST
Note that -webkit-canvas has the same problem. ASSERT(m_clients.contains(renderer)); in CSSCanvasValue::image There are a few options. 1. add the canvas and gradient as clients before asking for the images. I expect this wastes memory in the case where a canvas/gradient is set on the body, then removed. 2. remove the asserts. Since gradient calls getImage and it causes the renderer to be added as a client I don't think it is a big deal, but I didn't investigate much. I didn't try this with canvas. 3. Work out why body elements are not doing the right thing with updateFillImages from RenderObject::setStyle, which is where other elements add gradients and canvas as clients.
Dean Jackson
Comment 5
2008-12-03 18:14:55 PST
Created
attachment 25730
[details]
testcases for gradient and canvas on body here are two layout tests that will trigger the assert
mitz
Comment 6
2008-12-03 18:33:11 PST
(In reply to
comment #4
)
> 3. Work out why body elements are not doing the right thing with > updateFillImages from RenderObject::setStyle, which is where other elements add > gradients and canvas as clients.
I think this is the first option to pursue. If I am not mistaken, it has to do with the special rules for background-image propagation from <body> to <html>.
mitz
Comment 7
2009-05-30 00:04:01 PDT
Created
attachment 30802
[details]
Change paintFillLayerExtended() to use body's renderer as the StyleImage client when the background is propagated from body to root
Simon Fraser (smfr)
Comment 8
2009-05-30 08:44:06 PDT
Comment on
attachment 30802
[details]
Change paintFillLayerExtended() to use body's renderer as the StyleImage client when the background is propagated from body to root r=me
mitz
Comment 9
2009-05-30 10:58:04 PDT
Fixed in <
http://trac.webkit.org/changeset/44285
>.
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