[CSS Shaders] Implement color and luminosity non-separable blend modes
https://bugs.webkit.org/show_bug.cgi?id=106226

Source/WebCore:

Added the following GLSL helper functions to the CustomFilterValidatedProgram:

    - css_Lum(C): returns the luminosity for the color C
    - css_ClipColor(C): clips color C
    - css_SetLum(C, l): sets the luminosity l on the color C

The above functions are being used for the "color" and "luminosity" non-separable
blend modes, the relevant spec for such modes is at URL:
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable

Reviewed by Dean Jackson.

Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html
       css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html

* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::blendFunctionString):

LayoutTests:

Added relevant tests for the "color" and "luminosity" non-separable blend modes.
These tests are currently skipped on Mac due to a slight color difference; please
see relevant bug: http://webkit.org/b/107487.

Reviewed by Dean Jackson.

* css3/filters/custom/custom-filter-nonseparable-blend-mode-color-expected.html: Added.
* css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html: Added.
* css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity-expected.html: Added.
* css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a couple of symbols needed by WebKit2.

* WebCore.exp.in:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144119 268f45cc-cd09-0410-ab3c-d52691b4dbfc