The CSS FilterOperations have a hierarchy of base and super classes. Instead of having static createEffect functions in CSSFilter.cpp for every FilterOperation we can make them virtual functions and call them through the base class FilterOperation. The only exception is ReferenceFilterOperation which requires access to the renderer and the filterElement. Accessing these classes from a platform file is a layering violation. So we still need to call createReferenceFilter() from CSSFilter::buildFilterFunctions() as a special case.
Pull request: https://github.com/WebKit/WebKit/pull/3165
<rdar://problem/98745167>