Use -webkit-clip-path shapes to clip HTML elements
https://bugs.webkit.org/show_bug.cgi?id=95646

Reviewed by Dean Jackson.

Source/WebCore:

-webkit-clip-path creates a new layer for HTML elements now. The border,
background and content gets clipped by the clip path after any filter was
applied.

Tests: css3/masking/clip-path-circle-filter.html
       css3/masking/clip-path-circle-overflow.html
       css3/masking/clip-path-circle-overflow-hidden.html
       css3/masking/clip-path-circle-relative-overflow.html
       css3/masking/clip-path-circle.html
       css3/masking/clip-path-ellipse.html
       css3/masking/clip-path-polygon-evenodd.html
       css3/masking/clip-path-polygon-nonzero.html
       css3/masking/clip-path-polygon.html
       css3/masking/clip-path-rectangle.html

* rendering/RenderBox.h: Create new layer on clip-path.
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::requiresLayer): Create new layer on clip-path.
* rendering/RenderInline.h:
(WebCore::RenderInline::requiresLayer): Create new layer on clip-path.
* rendering/RenderLayer.cpp: Apply clip-path on context of object.
(WebCore::RenderLayer::paintLayerContents): Create new layer on clip-path.
* rendering/RenderObject.h:
(WebCore::RenderObject::hasClipPath): Indicates that renderer needs to be clipped by clip-path.
* rendering/RenderTableRow.h: Create new layer on clip-path.

LayoutTests:

Added new tests for the -webkit-clip-path property applied to HTML content.

* css3/masking/clip-path-circle-filter.html: Added.
* css3/masking/clip-path-circle-overflow.html: Added.
* css3/masking/clip-path-circle-relative-overflow.html: Added.
* css3/masking/clip-path-circle-overflow-hidden.html: Added.
* css3/masking/clip-path-circle.html: Added.
* css3/masking/clip-path-ellipse.html: Added.
* css3/masking/clip-path-polygon-evenodd.html: Added.
* css3/masking/clip-path-polygon-nonzero.html: Added.
* css3/masking/clip-path-polygon.html: Added.
* css3/masking/clip-path-rectangle.html: Added.
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/css3/masking/clip-path-circle-expected.png: Added.
* platform/mac/css3/masking/clip-path-circle-expected.txt: Added.
* platform/mac/css3/masking/clip-path-circle-filter-expected.png: Added.
* platform/mac/css3/masking/clip-path-circle-filter-expected.txt: Added.
* platform/mac/css3/masking/clip-path-circle-overflow-expected.png: Added.
* platform/mac/css3/masking/clip-path-circle-overflow-expected.txt: Added.
* platform/mac/css3/masking/clip-path-circle-overflow-hidden-expected.png: Added.
* platform/mac/css3/masking/clip-path-circle-overflow-hidden-expected.txt: Added.
* platform/mac/css3/masking/clip-path-circle-relative-overflow-expected.png: Added.
* platform/mac/css3/masking/clip-path-circle-relative-overflow-expected.txt: Added.
* platform/mac/css3/masking/clip-path-ellipse-expected.png: Added.
* platform/mac/css3/masking/clip-path-ellipse-expected.txt: Added.
* platform/mac/css3/masking/clip-path-polygon-evenodd-expected.png: Added.
* platform/mac/css3/masking/clip-path-polygon-evenodd-expected.txt: Added.
* platform/mac/css3/masking/clip-path-polygon-expected.png: Added.
* platform/mac/css3/masking/clip-path-polygon-expected.txt: Added.
* platform/mac/css3/masking/clip-path-polygon-nonzero-expected.png: Added.
* platform/mac/css3/masking/clip-path-polygon-nonzero-expected.txt: Added.
* platform/mac/css3/masking/clip-path-rectangle-expected.png: Added.
* platform/mac/css3/masking/clip-path-rectangle-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MediaStream API: Add the local and remote description functionality to RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=95839

Reviewed by Adam Barth.

Source/Platform:

* Platform.gypi:
* chromium/public/WebRTCPeerConnectionHandler.h:
(WebKit):
(WebRTCPeerConnectionHandler):
* chromium/public/WebRTCVoidRequest.h: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
(WebCore):
(WebKit):
(WebRTCVoidRequest):
(ExtraData):
(WebKit::WebRTCVoidRequest::ExtraData::~ExtraData):
(WebKit::WebRTCVoidRequest::WebRTCVoidRequest):
(WebKit::WebRTCVoidRequest::~WebRTCVoidRequest):
(WebKit::WebRTCVoidRequest::operator=):
(WebKit::WebRTCVoidRequest::isNull):

Source/WebCore:

As well as adding the local/remote descriptions stuff, I removed the source attribute from
RTCSessionDescriptionCallback and RTCErrorCallback since it has been removed from the draft.

Tests: fast/mediastream/RTCPeerConnection-localDescription.html
       fast/mediastream/RTCPeerConnection-remoteDescription.html

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCErrorCallback.h:
(RTCErrorCallback):
* Modules/mediastream/RTCErrorCallback.idl:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore):
(WebCore::RTCPeerConnection::localDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::remoteDescription):
* Modules/mediastream/RTCPeerConnection.h:
(WebCore):
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCSessionDescriptionCallback.h:
(RTCSessionDescriptionCallback):
* Modules/mediastream/RTCSessionDescriptionCallback.idl:
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
(WebCore::RTCSessionDescriptionRequestImpl::create):
(WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
(WebCore::RTCSessionDescriptionRequestImpl::requestSucceeded):
(WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
(WebCore::RTCSessionDescriptionRequestImpl::clear):
* Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
(RTCSessionDescriptionRequestImpl):
* Modules/mediastream/RTCVoidRequestImpl.cpp: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp.
(WebCore):
(WebCore::RTCVoidRequestImpl::create):
(WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
(WebCore::RTCVoidRequestImpl::~RTCVoidRequestImpl):
(WebCore::RTCVoidRequestImpl::requestSucceeded):
(WebCore::RTCVoidRequestImpl::requestFailed):
(WebCore::RTCVoidRequestImpl::stop):
(WebCore::RTCVoidRequestImpl::clear):
* Modules/mediastream/RTCVoidRequestImpl.h: Copied from Source/WebCore/Modules/mediastream/RTCSessionDescriptionCallback.h.
(WebCore):
(RTCVoidRequestImpl):
* WebCore.gypi:
* platform/chromium/support/WebRTCVoidRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
(WebKit):
(WebKit::WebRTCVoidRequest::WebRTCVoidRequest):
(WebKit::WebRTCVoidRequest::assign):
(WebKit::WebRTCVoidRequest::reset):
(WebKit::WebRTCVoidRequest::requestSucceeded):
(WebKit::WebRTCVoidRequest::requestFailed):
(ExtraDataContainer):
(WebKit::ExtraDataContainer::ExtraDataContainer):
(WebKit::ExtraDataContainer::extraData):
(WebKit::WebRTCVoidRequest::extraData):
(WebKit::WebRTCVoidRequest::setExtraData):
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::setLocalDescription):
(WebCore):
(WebCore::RTCPeerConnectionHandlerDummy::setRemoteDescription):
(WebCore::RTCPeerConnectionHandlerDummy::localDescription):
(WebCore::RTCPeerConnectionHandlerDummy::remoteDescription):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/RTCVoidRequest.h: Copied from Source/WebCore/Modules/mediastream/RTCErrorCallback.h.
(WebCore):
(RTCVoidRequest):
(ExtraData):
(WebCore::RTCVoidRequest::ExtraData::~ExtraData):
(WebCore::RTCVoidRequest::~RTCVoidRequest):
(WebCore::RTCVoidRequest::extraData):
(WebCore::RTCVoidRequest::setExtraData):
(WebCore::RTCVoidRequest::RTCVoidRequest):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
(WebCore):
(WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
(WebCore::RTCPeerConnectionHandlerChromium::localDescription):
(WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):

Tools:

In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned
up the task definitions a bit. There was no need to have them in the header file.

* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
(RTCSessionDescriptionRequestSuccededTask):
(RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask):
(RTCSessionDescriptionRequestFailedTask):
(RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask):
(RTCVoidRequestTask):
(RTCVoidRequestTask::RTCVoidRequestTask):
(MockWebRTCPeerConnectionHandler::createOffer):
(MockWebRTCPeerConnectionHandler::setLocalDescription):
(MockWebRTCPeerConnectionHandler::setRemoteDescription):
(MockWebRTCPeerConnectionHandler::localDescription):
(MockWebRTCPeerConnectionHandler::remoteDescription):
* DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h:
(MockWebRTCPeerConnectionHandler):

LayoutTests:

* fast/mediastream/RTCPeerConnection-createOffer.html:
* fast/mediastream/RTCPeerConnection-localDescription-expected.txt: Added.
* fast/mediastream/RTCPeerConnection-localDescription.html: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html.
* fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt: Added.
* fast/mediastream/RTCPeerConnection-remoteDescription.html: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-createOffer.html.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127612 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] PlatformKeyboardEvent::getCurrentModifierState should initialize values.
https://bugs.webkit.org/show_bug.cgi?id=95773

Reviewed by Rob Buis.

Properly initialize the passed variables even
though we haven't implemented the modifier state
to ensure the values are deterministic.

* platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
(WebCore::PlatformKeyboardEvent::getCurrentModifierState):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        [WK2] Make visited link tracking work in multi-process mode
        https://bugs.webkit.org/show_bug.cgi?id=95869

        Reviewed by Dan Bernstein.

        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::VisitedLinkProvider): m_webProcessHasVisitedLinkState
        was making no sense in multi-process world, so it was let go.
        (WebKit::VisitedLinkProvider::processDidFinishLaunching): Track new processes.
        (WebKit::VisitedLinkProvider::processDidClose): Clean up pointers that are going
        to become stale.
        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): Added comments. Fixed
        a bug where we would churn table size in some cases. Added debug logging in failure
        case. Re-implemented messaging code to work with multiple web processes.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::processDidFinishLaunching): Pass process proxy pointer to
        m_visitedLinkProvider, as it now needs to track processes.
        (WebKit::WebContext::disconnectProcess): Ditto. Also re-enabled visited link provider
        cleanup in multi-process mode.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shaders] Update custom filter tests to use the new security model
https://bugs.webkit.org/show_bug.cgi?id=95760

Patch by Max Vujovic <mvujovic@adobe.com> on 2012-09-05
Reviewed by Dirk Schulze.

This patch updates the custom filter tests to not sample u_texture and not write
to gl_FragColor. Now, the tests use the new security model by writing to
css_MixColor and indirectly blending with the DOM element texture.

This patch prepares us to remove direct DOM texture access via "u_texture":
https://bugs.webkit.org/show_bug.cgi?id=93871

* css3/filters/custom/custom-filter-css-keyword-as-parameter-name-expected.png:
* css3/filters/custom/custom-filter-shader-cache-expected.png:
* css3/filters/custom/custom-filter-shader-cache.html:
    Use the CSS mix function with the updated color-offset.fs.
* css3/filters/custom/effect-color-check-expected.png:
* css3/filters/custom/effect-color-check.html:
    Use the CSS mix function with the updated color-fill.fs.
* css3/filters/custom/effect-custom-combined-missing-expected.png:
* css3/filters/custom/effect-custom-combined-missing.html:
    Use the CSS mix function with the updated color-offset.fs.
* css3/filters/custom/effect-custom-expected.png:
* css3/filters/custom/effect-custom-parameters-expected.png:
* css3/filters/custom/effect-custom-parameters.html:
    Use the mix-color.fs shader instead of color-offset-parameters.fs.
* css3/filters/custom/effect-custom.html:
    Use the CSS mix function with the updated color-offset.fs.
* css3/filters/custom/filter-repaint-custom-clipped-expected.png:
* css3/filters/custom/filter-repaint-custom-clipped.html:
    Use the mix-color.fs shader instead of color-add.fs.
* css3/filters/custom/filter-repaint-custom-expected.png:
* css3/filters/custom/filter-repaint-custom-rotated-expected.png:
* css3/filters/custom/filter-repaint-custom-rotated.html:
    Use the mix-color.fs shader instead of color-add.fs. Fix a small typo in a comment.
* css3/filters/custom/filter-repaint-custom.html:
    Use the mix-color.fs shader instead of color-add.fs.
* css3/filters/custom/invalid-custom-filter-shader.html:
    Use the CSS mix function with the updated color-offset.fs.
* css3/filters/custom/missing-custom-filter-shader-expected.png:
* css3/filters/custom/missing-custom-filter-shader.html:
    Use the CSS mix function with the updated color-offset.fs.
* css3/filters/resources/color-add.fs:
    Removed. The mix-color.fs shader can perform this shader's function.
* css3/filters/resources/color-fill.fs:
    Rewrote this shader to write to css_MixColor instead of sampling u_texture and writing
    to gl_FragColor.
* css3/filters/resources/color-offset-parameters.fs:
    Removed. The mix-color.fs shader can perform this shader's function.
* css3/filters/resources/color-offset.fs:
    Rewrote this shader to write to css_MixColor instead of sampling u_texture and writing
    to gl_FragColor.
* platform/chromium-mac/css3/filters/custom/custom-filter-shader-cache-expected.png:
* platform/chromium-mac/css3/filters/custom/effect-color-check-expected.png:
* platform/chromium-mac/css3/filters/custom/effect-custom-combined-missing-expected.png:
* platform/chromium-mac/css3/filters/custom/effect-custom-expected.png:
* platform/chromium-mac/css3/filters/custom/effect-custom-parameters-expected.png:
* platform/chromium-mac/css3/filters/custom/filter-repaint-custom-clipped-expected.png:
* platform/chromium-mac/css3/filters/custom/filter-repaint-custom-expected.png:
* platform/chromium-mac/css3/filters/custom/filter-repaint-custom-rotated-expected.png:
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed test fix.

Including a plugin source file into the build that was added in r127595.

* GNUmakefile.am:


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