[GTK] [EFL] Enable tiled shadow blur for the inset shadows.
https://bugs.webkit.org/show_bug.cgi?id=119078

Reviewed by Martin Robinson.

Already covered in the tests.

* platform/graphics/GraphicsContext.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::fillCurrentCairoPath): Added to allow fill the path
without the shadow.
(WebCore::shadowAndFillCurrentCairoPath):
(WebCore::GraphicsContext::fillRectWithRoundedHole): Added cairo
implementation.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make DOMImplementation::hasFeature() behave according to specification
https://bugs.webkit.org/show_bug.cgi?id=119329

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make DOMImplementation::hasFeature() behave according to the latest specification:
http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature

Specifically, the function should now return true unconditionally for any non-SVG feature.
This behavior is consistent with Firefox and since recently Blink.

hasFeature() originally would report whether the user agent claimed to support a
given DOM feature, but experience proved it was not nearly as reliable or granular
as simply checking whether the desired interfaces, attributes, or methods existed.
As such, it should no longer be used, but continues to exist (and simply returns
true) so that old pages don't stop working.

No new tests, covered by existing tests.

* dom/DOMImplementation.cpp:
(WebCore::isSupportedSVG10Feature):
(WebCore::isSupportedSVG11Feature):
(WebCore::DOMImplementation::hasFeature):

LayoutTests:

Rebaseline several test cases now that DOMImplementation::hasFeature() returns
true unconditionally for non-SVG features.

Also use a valid svg prefix for unknown features in SVG tests so that they are
properly recognized as SVG features and so that hasFeature() returns false as
expected.

* dom/xhtml/level3/core/hasFeature01-expected.txt:
* dom/xhtml/level3/core/hasFeature02-expected.txt:
* dom/xhtml/level3/core/hasFeature03-expected.txt:
* dom/xhtml/level3/core/hasFeature04-expected.txt:
* fast/dom/features-expected.txt:
* platform/efl/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
* platform/efl/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
* platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
* platform/gtk/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
* platform/qt-mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
* platform/qt/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
* svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
* svg/custom/outer-svg-unknown-feature.svg:
* svg/dynamic-updates/script-tests/SVGCircleElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGCircleElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGEllipseElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGEllipseElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGForeignObjectElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGForeignObjectElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGGElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGGElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGImageElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGImageElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGLineElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGLineElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPathElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPathElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPolygonElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPolygonElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPolylineElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGPolylineElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGRectElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGRectElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGSVGElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGSVGElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGTextElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGTextElement-svgdom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGUseElement-dom-requiredFeatures.js:
(repaintTest):
* svg/dynamic-updates/script-tests/SVGUseElement-svgdom-requiredFeatures.js:
(repaintTest):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153901 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modify the existing canvas blending test suite to test both
accelerated and non accelerated modes.
https://bugs.webkit.org/show_bug.cgi?id=119628

Patch by Mihai Tica <mitica@adobe.com> on 2013-08-09
Reviewed by Dirk Schulze.

* fast/canvas/canvas-blending-clipping-expected.txt:
* fast/canvas/canvas-blending-clipping.html:
* fast/canvas/canvas-blending-color-over-color-expected.txt:
* fast/canvas/canvas-blending-color-over-color.html:
* fast/canvas/canvas-blending-color-over-gradient-expected.txt:
* fast/canvas/canvas-blending-color-over-gradient.html:
* fast/canvas/canvas-blending-color-over-image-expected.txt:
* fast/canvas/canvas-blending-color-over-image.html:
* fast/canvas/canvas-blending-color-over-pattern-expected.txt:
* fast/canvas/canvas-blending-color-over-pattern.html:
* fast/canvas/canvas-blending-fill-style-expected.txt:
* fast/canvas/canvas-blending-fill-style.html:
* fast/canvas/canvas-blending-global-alpha-expected.txt:
* fast/canvas/canvas-blending-global-alpha.html:
* fast/canvas/canvas-blending-gradient-over-color-expected.txt:
* fast/canvas/canvas-blending-gradient-over-color.html:
* fast/canvas/canvas-blending-gradient-over-gradient-expected.txt:
* fast/canvas/canvas-blending-gradient-over-gradient.html:
* fast/canvas/canvas-blending-gradient-over-image-expected.txt:
* fast/canvas/canvas-blending-gradient-over-image.html:
* fast/canvas/canvas-blending-gradient-over-pattern-expected.txt:
* fast/canvas/canvas-blending-gradient-over-pattern.html:
* fast/canvas/canvas-blending-image-over-color-expected.txt:
* fast/canvas/canvas-blending-image-over-color.html:
* fast/canvas/canvas-blending-image-over-gradient-expected.txt:
* fast/canvas/canvas-blending-image-over-gradient.html:
* fast/canvas/canvas-blending-image-over-image-expected.txt:
* fast/canvas/canvas-blending-image-over-image.html:
* fast/canvas/canvas-blending-image-over-pattern-expected.txt:
* fast/canvas/canvas-blending-image-over-pattern.html:
* fast/canvas/canvas-blending-pattern-over-color-expected.txt:
* fast/canvas/canvas-blending-pattern-over-color.html:
* fast/canvas/canvas-blending-pattern-over-gradient-expected.txt:
* fast/canvas/canvas-blending-pattern-over-gradient.html:
* fast/canvas/canvas-blending-pattern-over-image-expected.txt:
* fast/canvas/canvas-blending-pattern-over-image.html:
* fast/canvas/canvas-blending-pattern-over-pattern-expected.txt:
* fast/canvas/canvas-blending-pattern-over-pattern.html:
* fast/canvas/canvas-blending-shadow-expected.txt:
* fast/canvas/canvas-blending-shadow.html:
* fast/canvas/canvas-blending-text-expected.txt:
* fast/canvas/canvas-blending-text.html:
* fast/canvas/canvas-blending-transforms-expected.txt:
* fast/canvas/canvas-blending-transforms.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153902 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<unknown> is often dumped instead of path in test output
https://bugs.webkit.org/show_bug.cgi?id=119590

Reviewed by Anders Carlsson.

Tools:

There were two reasons for <unknown>:
1. When delegate logging is enabled via a testRunner call, that obviously happens
after main resource load starts, so we don't record its URL.
2. Authentication delegate logging relied on URL recording, but it's only turned on
when enabling resource loading delegate logging, not auth one.

URL recording was made conditional in <http://trac.webkit.org/r19316>, which was
landed without posted rationale and unreviewed. Just undoing that change now.

* DumpRenderTree/mac/ResourceLoadDelegate.mm:
(-[ResourceLoadDelegate webView:identifierForInitialRequest:fromDataSource:]):
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didInitiateLoadForResource):

LayoutTests:

Updating test results.

* fast/loader/file-protocol-fragment-expected.txt:
* fast/loader/main-document-url-for-non-http-loads-expected.txt:
* http/tests/cache/iframe-304-crash-expected.txt:
* http/tests/cache/willsendrequest-returns-null-for-memory-cache-load-expected.txt:
* http/tests/loading/307-after-303-after-post-expected.txt:
* http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
* http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
* http/tests/loading/basic-credentials-sent-automatically-expected.txt:
* http/tests/loading/redirect-methods-expected.txt:
* http/tests/misc/401-alternative-content-expected.txt:
* http/tests/misc/authentication-redirect-1/authentication-sent-to-redirect-cross-origin-expected.txt:
* http/tests/misc/authentication-redirect-2/authentication-sent-to-redirect-same-origin-expected.txt:
* http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url-expected.txt:
* http/tests/misc/favicon-loads-with-images-disabled-expected.txt:
* http/tests/misc/link-rel-icon-beforeload-expected.txt:
* http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt:
* http/tests/misc/window-dot-stop-expected.txt:
* http/tests/security/401-logout/401-logout-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt:
* http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
* http/tests/xmlhttprequest/failed-auth-expected.txt:
* http/tests/xmlhttprequest/remember-bad-password-expected.txt:
* loader/go-back-cached-main-resource-expected.txt:
* platform/efl-wk2/loader/go-back-cached-main-resource-expected.txt:
* platform/mac/fast/images/support-broken-image-delegate-expected.txt:
* platform/mac/security/block-test-expected.txt:
* platform/mac/security/block-test-no-port-expected.txt:
* platform/mac/webarchive/loading/cache-expired-subresource-expected.txt:
* webarchive/loading/test-loading-archive-expected.txt:
* webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153903 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make atob() throw an InvalidCharacterError on excess padding characters
https://bugs.webkit.org/show_bug.cgi?id=118898

Reviewed by Darin Adler.

Source/WebCore:

According to the latest specification, window.atob() should throw an
InvalidCharacterError on excess padding characters:
http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#dom-windowbase64-atob

This behavior is consistent with both Firefox, IE10 and recently Blink.

No new tests, already covered by:
fast/dom/Window/atob-btoa.html

* page/DOMWindow.cpp:
(WebCore::DOMWindow::atob):

Source/WTF:

Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy
enumeration so that the caller can request strict padding validation in addition
to strict character validation. This is needed so that we can use
WTF::base64Decode() for window.atob().

* wtf/text/Base64.cpp:
(WTF::base64DecodeInternal):
* wtf/text/Base64.h:

LayoutTests:

Update and rebaseline fast/dom/Window/atob-btoa.html now that window.atob()'s
behavior has changed and now that we throw an InvalidCharacterError on excess
pad characters.

* fast/dom/Window/atob-btoa-expected.txt:
* fast/dom/Window/atob-btoa.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for KeyboardEvent.location attribute
https://bugs.webkit.org/show_bug.cgi?id=119326

Reviewed by Benjamin Poulain.

Source/WebCore:

Add support for KeyboardEvent.location attribute as per the latest specification:
http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-KeyboardEvent

IE10, Firefox 22 and recently Blink all support KeyboardEvent.location already.

The deprecated 'keyLocation' attribute was not removed to maintain backward
compatibility.

No new tests, covered by existing tests.

* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorDefinition):
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEventInit::KeyboardEventInit):
(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::initKeyboardEvent):
* dom/KeyboardEvent.h:
(WebCore::KeyboardEvent::location):
* dom/KeyboardEvent.idl:

Source/WebKit/win:

Add new location attribute to DOMKeyboardEvent.

* DOMEventsClasses.cpp:
(DOMKeyboardEvent::location):
* DOMEventsClasses.h:
* Interfaces/DOMEvents.idl:

Tools:

Rename the deprecated 'keyLocation' to 'location' in Mac's DRT code.

* DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController keyDown:withModifiers:withLocation:]):
(-[EventSendingController keyDownWrapper:withModifiers:withLocation:]):
(-[EventSendingController scheduleAsynchronousKeyDown:withModifiers:withLocation:]):
(-[EventSendingController handleEvent:]):
(-[EventSendingController fireKeyboardEventsToElement:]):

LayoutTests:

Rename KeyboardEvent.keyLocation to KeyboardEvent.location in the
tests and add test cases to make sure that the deprecated
KeyboardEvent.keyLocation still works.

* fast/events/arrow-keys-on-body-expected.txt:
* fast/events/arrow-keys-on-body.html:
* fast/events/constructors/keyboard-event-constructor-expected.txt:
* fast/events/constructors/keyboard-event-constructor.html:
* fast/events/init-events-expected.txt:
* fast/events/js-keyboard-event-creation.html:
* fast/events/keydown-leftright-keys-expected.txt:
* fast/events/keydown-leftright-keys.html:
* fast/events/keydown-numpad-keys-expected.txt:
* fast/events/script-tests/init-events.js:
* fast/events/script-tests/keydown-numpad-keys.js:
(recordKeyEvent):
(testKeyEventWithLocation):
* platform/mac/fast/events/objc-keyboard-event-creation.html:
* platform/win/fast/events/keyLocation-numpad.html:


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