Source/WebCore: Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582

Add 'edgeMode' attribute to the SVGFEGaussianBlur element. This attribute
allows users to define the behavior on edges with the values 'none' where
pixel values outside the input image are treated as transparent black. (The
current blurring behavior.) 'duplicate' which repeats the values on the
nearest edge and 'warp', which takes the pixel of the opposite site of
the input image.
Beside the attribute, this patch implements the behavior of 'duplicate'.

http://dev.w3.org/fxtf/filters/#feGaussianBlurEdgeModeAttribute

Reviewed by Rob Buis.

Tests: svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html
       svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html
       svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg
       svg/filters/svg-gaussianblur-edgeMode-duplicate.svg

* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::FEGaussianBlur):
(WebCore::FEGaussianBlur::create):
(WebCore::FEGaussianBlur::edgeMode):
(WebCore::FEGaussianBlur::setEdgeMode):
(WebCore::boxBlur):
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
* platform/graphics/filters/FEGaussianBlur.h:
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::build):
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEGaussianBlurElement.idl:

LayoutTests: Add edgeMode attribtue.

Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582

Added DOM and SVGDOM tests for the attribute 'edgeMode'.
Also added a reftest to test edgeMode='duplicate'.

Reviewed by Rob Buis.

* platform/mac/svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.png: Added.
* svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html: Added.
* svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html: Added.
* svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-dom-edgeMode-attr.js: Added.
(repaintTest):
* svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.js: Added.
(repaintTest):
* svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg: Added.
* svg/filters/svg-gaussianblur-edgeMode-duplicate.svg: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2][Mac] Drag and drop tests interfere with user's UI
        https://bugs.webkit.org/show_bug.cgi?id=120538

        Reviewed by Dan Bernstein.

        This makes running WebKit2 regression tests locally more viable. The patch doesn't
        fix drag and drop tests to work as expected, I posted some thought about that in
        <https://bugs.webkit.org/show_bug.cgi?id=68552>.

        * WebKitTestRunner/EventSenderProxy.h:
        (WTR::EventSenderProxy::position):
        * WebKitTestRunner/TestController.h:
        (WTR::TestController::eventSenderProxy):
        Expose a way to get current mouse position from anywhere in WKTR code.

        * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added new files.

        * WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseUp):
        Copied a FIXME comment from DumpRenderTree.

        * WebKitTestRunner/mac/PlatformWebViewMac.mm:
        (-[TestRunnerWKView dragImage:at:offset:event:pasteboard:source:slideBack:]):
        Override drag initiation, using a custom NSDraggingInfo implementation.

        * WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitialize):
        Replace NSEvent with a custom class.

        * WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h: Added.
        * WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm: Added.
        * WebKitTestRunner/mac/WebKitTestRunnerEvent.h: Added.
        * WebKitTestRunner/mac/WebKitTestRunnerEvent.mm: Added.
        Largely a copy of DumpRenderTree classes, modified to not use global variables.
        We should consider making these variables static in EventSenderProxy though, as
        it's strange that mouse state in WKTR is reset between tests without WebKit ever
        being told about that.



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