Bug 6022

Summary: SVG Filters do not support source images besides "sourceGraphic" and "sourceAlpha"
Product: WebKit Reporter: Eric Seidel (no email) <eric>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: agomez, emacemac7, grebenshikov.n, ian, jeffschiller, jonlee, krit, webkit-bug-importer
Priority: P2 Keywords: InRadar, NeedsReduction, SVGHitList
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
URL: http://www.w3.org/TR/SVG/filters.html#CommonAttributes
See Also: https://bugs.webkit.org/show_bug.cgi?id=150257
https://bugs.webkit.org/show_bug.cgi?id=150258
Bug Depends on: 19835, 19991, 33320    
Bug Blocks: 68469, 26389    
Attachments:
Description Flags
testcase showing a related bug
none
Support for FilterEffect SourceAlpha none

Description Eric Seidel (no email) 2005-12-09 00:19:57 PST
WebKit+SVG does not support any source images besides "sourceGraphic"
http://www.w3.org/TR/SVG/filters.html#CommonAttributes

We need to add support for:
SourceAlpha | BackgroundImage | BackgroundAlpha | FillPaint | StrokePaint | <filter-primitive-reference>
Comment 1 Eric Seidel (no email) 2005-12-09 00:23:53 PST
Sorry, we already (clearly!) support <filter-primitive-reference>, just not the rest.  None of these should 
be hard to do (with the possible exception of BackgroundImage/BackgroundAlpha.

FillPaint and StrokePaint should probably be implemented as CIImages with ImageProviders, so they can 
lazily create the bits as needed.

SourceAlpha is just SourceGraphic w/ an alpha-only filter applied.

All of these should be lazily generated on demand.
Comment 2 Eric Seidel (no email) 2006-01-26 15:45:44 PST
This is one of our two most basic SVG filter support bugs.  Shipping SVG with filter support would require solving this bug.  Adding SVGHitList keyword and bumping to p2.  I've included instructions above on how we might implement these.
Comment 3 Alexander Kellett 2006-01-28 01:33:38 PST
Created attachment 6036 [details]
testcase showing a related bug

i've attached a reduced testcase showing a bug in the current sourcealpha support
Comment 4 Eric Seidel (no email) 2006-08-11 23:30:24 PDT
Oh, those above numbers were using 5 runs each, cached content.
Comment 5 Eric Seidel (no email) 2007-10-28 04:01:10 PDT
We really need some test cases for these various modes.
Comment 6 Dirk Schulze 2009-10-03 14:24:40 PDT
Created attachment 40584 [details]
Support for FilterEffect SourceAlpha

Support for FilterEffect SourceAlpha.
Comment 7 Nikolas Zimmermann 2009-10-05 08:02:38 PDT
Comment on attachment 40584 [details]
Support for FilterEffect SourceAlpha

Looks great, r=me.
Comment 8 Dirk Schulze 2009-10-05 23:02:04 PDT
Comment on attachment 40584 [details]
Support for FilterEffect SourceAlpha

Clering review flag. Landed in r49153.
Comment 9 Andres Gomez Garcia 2015-10-16 08:44:02 PDT
Just adding a reference test, in case it is useful:
https://rawgit.com/tanty/design-hodgepodge/master/svg/filter/feBlend-backgroundimage-tests.html

Notice that for SVG 2 the "enable-background" is deprecated and the blending is governed by the isolation property:
http://dev.w3.org/fxtf/compositing-1/#isolation

Also, notice that, if I'm understanding correctly how the isolation property works, when using a SVG filter we shouldn't worry about what it is behind the SVG document since the filter makes a mandatory isolated group:
https://drafts.fxtf.org/compositing-1/#csscompositingrules_SVG

Similar issues from other web engines:
https://bugzilla.mozilla.org/show_bug.cgi?id=437554
https://code.google.com/p/chromium/issues/detail?id=137230
https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/10238658-implement-backgroundimage-backgroundalpha-input-so
Comment 10 Radar WebKit Bug Importer 2016-04-13 20:05:39 PDT
<rdar://problem/25719215>