Summary: | <svg> with opacity and compositing double-applies its opacity | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Tim Horton <thorton> | ||||||||||||||
Component: | SVG | Assignee: | Philip Rogers <pdr> | ||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||
Severity: | Normal | CC: | commit-queue, d-r, esprehn+autocc, fmalita, glenn, gyuyoung.kim, kondapallykalyan, krit, pdr, schenney, sergio, simon.fraser, webkit-bug-importer, zimmermann | ||||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||||
Hardware: | Unspecified | ||||||||||||||||
OS: | Unspecified | ||||||||||||||||
Attachments: |
|
Created attachment 203030 [details]
screenshot
We create a transparency layer on all SVG elements if opacity was specified. Looks like creating a compositing layer does it in GraphicsLayer as well? A simple check in RenderSVGRoot should prevent this, no? Created attachment 231316 [details]
Patch
Patch
Comment on attachment 231316 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=231316&action=review > Source/WebCore/rendering/svg/SVGRenderingContext.cpp:104 > + float opacity = isRenderingMask || (renderer.hasLayer() && renderer.enclosingLayer()->isComposited()) ? 1 : style.opacity(); You should do hasLayer() && toRenderLayerModelObject(renderer)->layer()->isComposited()). Created attachment 231318 [details]
Patch for landing
Created attachment 231329 [details]
Patch for landing
Comment on attachment 231329 [details] Patch for landing Clearing flags on attachment: 231329 Committed r168651: <http://trac.webkit.org/changeset/168651> All reviewed patches have been landed. Closing bug. Reopening to attach new patch. Created attachment 232105 [details]
Patch
Comment on attachment 232105 [details] Patch Clearing flags on attachment: 232105 Committed r169368: <http://trac.webkit.org/changeset/169368> All reviewed patches have been landed. Closing bug. |
Created attachment 203029 [details] testcase See attached testcase; the <svg> that has both opacity: 0.5 and -webkit-transform: translateZ(0); is lighter in color than the others.