WebKit.git
4 years agoNode.prototype.rootNode is not Web compatible
rniwa@webkit.org [Sat, 30 Apr 2016 21:58:41 +0000 (21:58 +0000)]
Node.prototype.rootNode is not Web compatible
https://bugs.webkit.org/show_bug.cgi?id=157233

Reviewed by Chris Dumez.

Source/WebCore:

Turns out that the name rootNode is not Web compatible. Remove the method for now
until we can come up with a better name in https://github.com/whatwg/dom/issues/241.

No new tests since we're just removing a method.

* dom/Node.idl:

LayoutTests:

Removed tests for Node.prototype.rootNode.

* fast/dom/Node/rootNode-expected.txt: Removed.
* fast/dom/Node/rootNode.html: Removed.
* fast/shadow-dom/Node-interface-rootNode-expected.txt: Removed.
* fast/shadow-dom/Node-interface-rootNode.html: Removed.
* js/dom/dom-static-property-for-in-iteration-expected.txt:

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

4 years agoTry to fix GTK build.
darin@apple.com [Sat, 30 Apr 2016 21:41:11 +0000 (21:41 +0000)]
Try to fix GTK build.

* testing/Internals.h: Added conditional around include of
MediaSessionInterruptionProvider.h.

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

4 years agoGuard ObjC-specific code in Heap.cpp with USE(FOUNDATION)
annulen@yandex.ru [Sat, 30 Apr 2016 21:21:22 +0000 (21:21 +0000)]
Guard ObjC-specific code in Heap.cpp with USE(FOUNDATION)
https://bugs.webkit.org/show_bug.cgi?id=157236

Reviewed by Darin Adler.

This also fixes build with GCC 4.8 which does not provide
__has_include.

* heap/Heap.cpp:

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

4 years agoStop using old-style string-based enums in Internals.idl
darin@apple.com [Sat, 30 Apr 2016 20:26:35 +0000 (20:26 +0000)]
Stop using old-style string-based enums in Internals.idl
https://bugs.webkit.org/show_bug.cgi?id=157235

Reviewed by Chris Dumez.

* bindings/scripts/CodeGenerator.pm: Removed the six enumeration names
that are used in Internals.idl.
(GenerateCompileTimeCheckForEnumsIfNeeded): Unrelated cleanup. Tighten
code and use static_assert instead of COMPILE_ASSERT.
(IsStringType): Marked this function as deprecated. Calling a function
just to check if something is specifically "DOMString" isn't a good pattern.
Lots of call sites were checking "DOMString" directly and there is no
reason to mix the two different idioms.

* bindings/scripts/CodeGeneratorJS.pm:
(GetEnumerationImplementationContent): Use GenerateConditionalString.
(GenerateImplementation): Use static_assert instead of COMPILE_ASSERT.
(GenerateCallbackHeader): Tighten code. Remove peculiar code that was
trying to emit COMPILE_ASSERT(false); not an important case to detect, and
if we did want to detect it, then having the code generator report an error
is better than COMPILE_ASSERT when compiling the output.
(NativeToJSValue): Stop using IsStringType.

* bindings/scripts/CodeGeneratorObjC.pm:
(GetClassName): Stop using IsStringType.
(GetPropertyAttributes): Ditto.
(ConversionNeeded): Ditto.
(GetObjCTypeGetter): Ditto.
(AddIncludesForType): Ditto.
(GenerateImplementation): Removed unused @needsAssert. It was a write-only
variable.

* bindings/scripts/IDLParser.pm:
(parseEnum): Put the extended attributes into the enumeration object.

* bindings/scripts/test/TestObj.idl: Added test cases for the Conditional
extended attribute, used with enumerations.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallback.h:
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
Regenerated.

* testing/Internals.cpp:
(WebCore::toResourceRequestCachePolicy): Take enum instead of string.
(WebCore::Internals::setOverrideCachePolicy): Ditto.
(WebCore::toResourceLoadPriority): Ditto.
(WebCore::Internals::setOverrideResourceLoadPriority): Ditto.
(WebCore::toAutoFillButtonType): Ditto.
(WebCore::Internals::setShowAutoFillButton): Ditto.
(WebCore::interruptingCategoryFromString): Deleted.
(WebCore::Internals::sendMediaSessionStartOfInterruptionNotification): Ditto.
(WebCore::Internals::sendMediaSessionEndOfInterruptionNotification): Ditto.
(WebCore::Internals::sendMediaControlEvent): Ditto.
(WebCore::Internals::installMockPageOverlay): Ditto.

* testing/Internals.h: Added enum class and use those instead of strings for
enumerations defined in the IDL.

* testing/Internals.idl: Renamed enumerations that conflict with ones that already
exist in WebCore; added Internals prefix. Made MediaSessionInterruptingCategory and
MediaControlEvent conditional to match the functions they are used on. Added some
FIXMEs about peculiarities of some of the enumerations.

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

4 years agoAssertion failure for destructuring assignment with new.target and unary operator
utatane.tea@gmail.com [Sat, 30 Apr 2016 20:05:13 +0000 (20:05 +0000)]
Assertion failure for destructuring assignment with new.target and unary operator
https://bugs.webkit.org/show_bug.cgi?id=157149

Reviewed by Saam Barati.

The caller of parseDefaultValueForDestructuringPattern() should propagate errors.
And this patch also cleans up createSavePoint and createSavePointForError; introducing SavePointWithError.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseDestructuringPattern):
Add propagateErorr() for parseDefaultValueForDestructuringPattern.

(JSC::Parser<LexerType>::parseAssignmentExpression):
* parser/Parser.h:
(JSC::Parser::restoreLexerState):
(JSC::Parser::internalSaveState):
(JSC::Parser::createSavePointForError):
(JSC::Parser::createSavePoint):
(JSC::Parser::internalRestoreState):
(JSC::Parser::restoreSavePointWithError):
(JSC::Parser::restoreSavePoint):
* tests/stress/default-value-parsing-should-propagate-error.js: Added.
(testSyntaxError):
(testSyntaxError.f):

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

4 years agoFixed expected results from bindings tests.
darin@apple.com [Sat, 30 Apr 2016 19:34:01 +0000 (19:34 +0000)]
Fixed expected results from bindings tests.

* bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.

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

4 years agoNext batch of conversions to use C++ enum class instead of strings for enumerations
darin@apple.com [Sat, 30 Apr 2016 19:16:00 +0000 (19:16 +0000)]
Next batch of conversions to use C++ enum class instead of strings for enumerations
https://bugs.webkit.org/show_bug.cgi?id=157232

Reviewed by Chris Dumez.

Source/WebCore:

* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::error): Use ResponseType.
(WebCore::FetchResponse::redirect): Ditto.
(WebCore::FetchResponse::FetchResponse): Ditto.
(WebCore::FetchResponse::clone): Ditto.
(WebCore::FetchResponse::type): Return ResponseType.
(WebCore::FetchResponse::startFetching): Use auto.
* Modules/fetch/FetchResponse.h: Added ResponseType and used it for the return value
of the type function, and also to replace FetchResponse::Type.

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::externalDeviceType): Return DeviceType.
* Modules/mediacontrols/MediaControlsHost.h: Added DeviceType and use it for the
return value for the externalDeviceType function.

* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::parseKind): Deleted.
(WebCore::MediaSession::MediaSession): Use MediaSessionKind.
(WebCore::MediaSession::kind): Deleted.
* Modules/mediasession/MediaSession.h: Added MediaSessionKind and use it as the
argument to MediaSession::create and the return type for the kind function.
Probably didn't get this 100% right because this code does not seem to be compiled.
* Modules/mediasession/MediaSession.idl: Added default value for kind, as specified
in the current version of the specification for this class.
* Modules/mediasession/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::didReceiveStartOfInterruptionNotification):
Tried to update for changes above.
(WebCore::MediaSessionManager::didReceiveEndOfInterruptionNotification): Ditto.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::endOfStream): Changed to take Optional<EndOfStreamError>
instead of overloading and taking const AtomicString&.
(WebCore::MediaSource::streamEndedWithError): Ditto. Also removed exception code.
(WebCore::MediaSource::addSourceBuffer): Updated to use EndOfStreamError. Also
used an if statement.
(WebCore::MediaSource::sourceBufferDidChangeActiveState): Updated to take a reference
instead of a pointer.
* Modules/mediasource/MediaSource.h: Added EndOfStreamError and changed as above.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::segmentsKeyword): Deleted.
(WebCore::SourceBuffer::sequenceKeyword): Deleted.
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Initialize booleans where they are
defined rather than in this constructor.
(WebCore::SourceBuffer::create): Use Ref instead of RefPtr.
(WebCore::SourceBuffer::SourceBuffer): Initialize many data members where they are
defined rather than in this constructor.
(WebCore::SourceBuffer::setTimestampOffset): Use AppendMode.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Ditto.
(WebCore::SourceBuffer::decodeError): Deleted.
(WebCore::SourceBuffer::networkError): Deleted.
(WebCore::SourceBuffer::setActive): Pass reference instead of pointer.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Deleted. No callers.
(WebCore::SourceBuffer::appendError): Use AppendMode.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::setMode): Take AppendMode.
* Modules/mediasource/SourceBuffer.h: Added AppendMode, removed various string
constant functions, initialize more data emebers in this header. Removed unused
sourceBufferPrivateDidEndStream function.

* Modules/mediastream/MediaDeviceInfo.cpp:
(WebCore::MediaDeviceInfo::MediaDeviceInfo): Take MediaDeviceKind instead of string.
(WebCore::MediaDeviceInfo::create): Ditto.
(WebCore::MediaDeviceInfo::audioInputType): Deleted.
(WebCore::MediaDeviceInfo::audioOutputType): Deleted.
(WebCore::MediaDeviceInfo::videoInputType): Deleted.
* Modules/mediastream/MediaDeviceInfo.h: Aedded MediaDeviceKind and used it.
* Modules/mediastream/MediaDeviceInfo.idl: Changed type of the kind attribute
to be MediaDeviceKind as in the specification.

* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Fix loop to not
churn the reference countds. Also updated to use String instead of AtomicString for
label, and MediaDeviceKind instead of string for kind.

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState): Return MediaStreamTrackState.
* Modules/mediastream/MediaStreamTrack.h: Added MediaStreamTrackState and used it
for the return value from the readyState function.

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::state): Return AudioContextState.
* Modules/webaudio/AudioContext.h: Added AudioContextState and used it.

* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::processorType): Added.
(WebCore::WaveShaperNode::setOversample): Take OverSampletype instead of a string.
(WebCore::WaveShaperNode::oversample): Return OverSampleType.
* Modules/webaudio/WaveShaperNode.h: Added OverSampleType and used it.
* Modules/webaudio/WaveShaperNode.idl: Removed unneeded [SetterRaisesException].

* bindings/scripts/CodeGenerator.pm: Removed special cases for 18 enumerations that
either don't exist or were converted to no longer pass strings in to the C++ DOM.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeaderContentHeader): Use #pragma once instead of header guards.
(GetEnumerationValueName): Added logic to handle names with "-" and starting with
a numeric digit.
(GetEnumerationImplementationContent): Changed functions so they do more of the
binding work. Added JSValueTraits specialization so we can generate bindings for
a vector of any enumeration. Added special cases for null string. Removed special
case to keep the style checker happy.
(GenerateHeader): Removed the #endif that matched the header guards in
GenerateHeaderContentHeader.
(GenerateImplementation): Use the $type local variable rather than writing out
$attribute->signature->type or $attributeType. Fixed code path that checks for
valid enumeration values to work for non-string-based enumerations.
(CanUseWTFOptionalForParameter): Turn this function off for the new enumerations.
For now, leave it on for the old string-based enumerations.
(GenerateParametersCheck): Added appropriate parameter checking for the new
enumerations.
(GenerateCallbackHeader): Removed the #endif that matched the header guards in
GenerateHeaderContentHeader.
(GetNativeType): Use "auto" instead of the enumeration name in generated code.
(JSValueToNative): Updated since the name of enumerationValueMyEnum was changed
to parseMyEnum.
(NativeToJSValue): Took out call to stringValue, since we now overload the
jsStringWithCache function instead.

* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCallback.h:
* bindings/scripts/test/JS/JSTestCallbackFunction.h:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestGlobalObject.h:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestNondeterministic.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.h:
Regenerated.

* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::type): Use CryptoKeyType.
(WebCore::CryptoKey::usages): Use KeyUsage.
* crypto/CryptoKey.h: Added KeyUsage and use CryptoKeyType.

* css/FontFaceSet.cpp:
(WebCore::FontFaceSet::status): Use FontFaceSetLoadStatus.
* css/FontFaceSet.h: Added FontFaceSetLoadStatus and used it.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::playInternal): Use kind instead of kindEnum.

* html/HTMLVideoElement.cpp:
(WebCore::presentationModeFullscreen): Deleted.
(WebCore::presentationModePictureInPicture): Deleted.
(WebCore::presentationModeInline): Deleted.
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Use VideoPresentationMode.
(WebCore::toFullscreenMode): Ditto.
(WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
(WebCore::toPresentationMode): Ditto.
(WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.
* html/HTMLVideoElement.h: Added VideoPresentationMode and used it.

* html/canvas/CanvasRenderingContext2D.cpp: Tweaked formatting. Changed
DefaultSmoothingQuality macro to a constant.
(WebCore::toWindRule): Replaces parseWinding.
(WebCore::CanvasRenderingContext2D::fill): Use CanvasWindingRule instead of string.
(WebCore::CanvasRenderingContext2D::clip): Ditto.
(WebCore::CanvasRenderingContext2D::fillInternal): Ditto.
(WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPath): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInStroke): Ditto.
(WebCore::CanvasRenderingContext2D::isPointInPathInternal): Ditto.
(WebCore::smoothingToInterpolationQuality): Ditto.
(WebCore::CanvasRenderingContext2D::imageSmoothingQuality): Ditto.
(WebCore::CanvasRenderingContext2D::setImageSmoothingQuality): Ditto.
* html/canvas/CanvasRenderingContext2D.h: Added CanvasWindingRule and
ImageSmoothingQuality, and use them throughout the class.

* platform/graphics/SourceBufferPrivateClient.h: Removed unused
sourceBufferPrivateDidEndStream function.

Tools:

* Scripts/webkitpy/style/checker.py: Skip the bindings script tests when doing style
checking. We don't want to waste time trying to make our generated code match our style.

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

4 years agoAX: @aria-label attribute should work on <label> element
n_wang@apple.com [Sat, 30 Apr 2016 18:06:47 +0000 (18:06 +0000)]
AX: @aria-label attribute should work on <label> element
https://bugs.webkit.org/show_bug.cgi?id=157219

Reviewed by Chris Fleizach.

Source/WebCore:

When there's aria-label on a <label> element, we shouldn't expose it
as the titleUIElement. Instead, we return its aria-label as a title.

Test: accessibility/mac/aria-label-on-label-element.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::exposesTitleUIElement):

LayoutTests:

* accessibility/mac/aria-label-on-label-element-expected.txt: Added.
* accessibility/mac/aria-label-on-label-element.html: Added.

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

4 years ago[Web IDL] Specify default parameter values for callback parameters
cdumez@apple.com [Sat, 30 Apr 2016 05:40:57 +0000 (05:40 +0000)]
[Web IDL] Specify default parameter values for callback parameters
https://bugs.webkit.org/show_bug.cgi?id=157188

Reviewed by Darin Adler.

Specify default parameter values for callback parameters.

* Modules/geolocation/Geolocation.idl:
* Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
* Modules/notifications/Notification.h:
* Modules/notifications/Notification.idl:
* Modules/notifications/NotificationCenter.idl:
* Modules/quota/StorageInfo.cpp:
(WebCore::StorageInfo::queryUsageAndQuota):
(WebCore::StorageInfo::requestQuota):
* Modules/quota/StorageInfo.h:
* Modules/quota/StorageInfo.idl:
* Modules/quota/StorageQuota.h:
* Modules/quota/StorageQuota.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* Modules/webdatabase/DOMWindowWebDatabase.h:
(WebCore::DOMWindowWebDatabase::DOMWindowWebDatabase):
(WebCore::DOMWindowWebDatabase::~DOMWindowWebDatabase):
* Modules/webdatabase/DOMWindowWebDatabase.idl:
* Modules/webdatabase/Database.cpp:
(WebCore::Database::runTransaction):
(WebCore::Database::changeVersion):
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):
* Modules/webdatabase/Database.h:
* Modules/webdatabase/Database.idl:
* Modules/webdatabase/SQLTransaction.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.
* bindings/scripts/test/TestObj.idl:
* dom/DataTransferItem.h:
* dom/DataTransferItem.idl:

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

4 years agoFirst step in using "enum class" instead of "String" for enumerations in DOM
darin@apple.com [Sat, 30 Apr 2016 05:09:10 +0000 (05:09 +0000)]
First step in using "enum class" instead of "String" for enumerations in DOM
https://bugs.webkit.org/show_bug.cgi?id=157163

Reviewed by Chris Dumez.

Source/JavaScriptCore:

* runtime/JSString.h:
(JSC::jsStringWithCache): Deleted unneeded overload for AtomicString.

Source/WebCore:

This patch adds the basic support for using "enum class" to implement enumerations
in the C++ DOM. This is enough so we can use it for one case, but not enough for
others. For example, it correctly generates code to get an attribute, but likely
does not correctly generate code to set an attribute or call a function with an
argument type that is the new style of enum.

* bindings/scripts/CodeGenerator.pm: Cleaned up the formatting of the hashes
at the start of this file. Added a new one named stringBasedEnumerationHash
and a comment explaining that we need to eventually make it empty.
(ProcessDocument): Pass the enumerations into the GenerateInterface function.
(IsStringBasedEnumType): Added. Returns 1 for the old-style string-based enumerations,
as opposed to enumerations we use "enum class" for.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateInterface): Take the enumerations argument and pass it along to the
functions that generate headers and implementation files.
(EnumerationClassName): Added. Maps from an enumeration type name as seen
in the IDL file to the enumeration class name used in the C++ DOM implementation.
(EnumerationValueName): Added. Maps from an anumeration string value as seen
in the IDL file to an enumeration value name used in the C++ DOM implementatino.
(EnumerationImplementationContent): Added. Generates a string with all the content
needed in the implementation file to define the helper functions for enumerations.
(GenerateHeader): Tweak.
(GenerateImplementation): Added call to EnumerationImplementationContent.
(GenerateParametersCheck): Use toWTFString instead of toString/value, which is a
longer way of writing out the same thing.
(GenerateCallbackHeader): Tweak.
(GenerateCallbackImplementation): Added call to EnumerationImplementationContent.
(GetNativeType): Continue to return String for string-based enum types, but for
other enum types, return the result of EnumerationClassName instead.
(JSValueToNative): Use toWTFString instead of toString/value (see above), convert
to a string only for string-based enum types, and add a preliminary, probably not
yet working, version of the code for non-string-based enum types. Will finish this
in the next patch when we are trying to use one of the new enumerations for a setter
or a function argument.
(NativeToJSValue): Call the stringValue function to convert an enumeration value
into a string when it's not a string-based enumeration.

* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
Regenerated.

* css/FontFace.cpp:
(WebCore::FontFace::status): Updated to return enum values rather than strings.

* css/FontFace.h: Removed unneeded forward declaration of Deprecated::ScriptValue.
Added enum class for FontFaceLoadStatus, with names that match the names from the
enumeration in the IDL, but with our standard enum capitalization style. Changed
the return value of the status function to FontFaceLoadStatus.

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

4 years agoGet rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
cdumez@apple.com [Sat, 30 Apr 2016 04:51:31 +0000 (04:51 +0000)]
Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
https://bugs.webkit.org/show_bug.cgi?id=157224

Reviewed by Ryosuke Niwa.

Get rid of unnecessary null check in wrap(JSDOMGlobalObject*, DOMClass*)
since all the call sites already do a null check. Also update the function
to take the implementation object by reference instead of pointer. Finally,
use is<>() / downcast<>() more at the call sites.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):
* Modules/indexeddb/IDBCursor.h:
(WebCore::IDBCursor::isKeyCursorWithValue):
(WebCore::IDBCursor::isKeyCursor): Deleted.
* Modules/indexeddb/IDBCursorWithValue.h:
(isType):
* bindings/js/JSBlobCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDOMBinding.h:
(WebCore::wrap):
* bindings/js/JSIDBCursorCustom.cpp:
(WebCore::toJS):
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
(WebCore::toJS):
* bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJS):
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLRenderingContext.h:
* page/PerformanceMark.h:
(isType):
(WebCore::PerformanceMark::isMark): Deleted.
* page/PerformanceMeasure.h:
(isType):
(WebCore::PerformanceMeasure::isMeasure): Deleted.
* page/PerformanceResourceTiming.h:
(isType):
(WebCore::PerformanceResourceTiming::isResource): Deleted.

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

4 years agoUse LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings
cdumez@apple.com [Sat, 30 Apr 2016 04:48:34 +0000 (04:48 +0000)]
Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings
https://bugs.webkit.org/show_bug.cgi?id=157210

Reviewed by Darin Adler.

Use LIKELY() / UNLIKELY() hints when suitable in the JavaScript bindings.
We already make use of them in the JS bindings but they are some cases
where we don't and they may be useful.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateOverloadedFunction):
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(GenerateOverloadedConstructorDefinition):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfaceConstructor):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::jsTestNamedConstructorConstructor):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeConstructor):
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::JSTestObj::getOwnPropertySlotByIndex):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjConstructor):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::JSTestOverloadedConstructorsConstructor::construct):
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):

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

4 years agoRename getAssignedNodes to assignedNodes and support flattened option
rniwa@webkit.org [Sat, 30 Apr 2016 04:19:00 +0000 (04:19 +0000)]
Rename getAssignedNodes to assignedNodes and support flattened option
https://bugs.webkit.org/show_bug.cgi?id=157225

Reviewed by Antti Koivisto.

Source/WebCore:

Renamed getAssignedNodes and added the the support for {flattened: true/false} as spec'ed at
http://w3c.github.io/webcomponents/spec/shadow/#widl-HTMLSlotElement-assignedNodes-sequence-Node--AssignedNodesOptions-options

Test: fast/shadow-dom/HTMLSlotElement-interface.html

* html/HTMLSlotElement.cpp:
(WebCore::flattenAssignedNodes): Added.
(WebCore::HTMLSlotElement::assignedNodesForBindings): Added.
* html/HTMLSlotElement.h:
* html/HTMLSlotElement.idl:

LayoutTests:

* fast/shadow-dom/HTMLSlotElement-interface-expected.txt:
* fast/shadow-dom/HTMLSlotElement-interface.html:

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

4 years agoMake clipToRect() and restoreClip() have similar signatures
simon.fraser@apple.com [Sat, 30 Apr 2016 04:13:22 +0000 (04:13 +0000)]
Make clipToRect() and restoreClip() have similar signatures
https://bugs.webkit.org/show_bug.cgi?id=157229

Reviewed by Zalan Bujtas.

clipToRect() and restoreClip() are always called in pairs, but had different
parameter order, and parameter types. So make them more similar.

In future we could use them in a stack-based class.

No behavior change.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:

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

4 years agoBlur filter escapes an enclosing overflow:hidden
simon.fraser@apple.com [Sat, 30 Apr 2016 04:13:16 +0000 (04:13 +0000)]
Blur filter escapes an enclosing overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=155029

Reviewed by Zalan Bujtas.

Source/WebCore:

The clipping that was applied when drawing the results of filters was wrong for two reasons.

First, it used localPaintingInfo which has already been contaminated when setting up the filters.
When painting the result, we need to use the original paintingInfo, to get the right paintDirtyRect.

Secondly, when setting up the clip to paint the filter result, it was relying on layerFragments[0].backgroundRect.
However, that was also contaminated by filter setup, since calculateRects() intersects with paintDirtyRect to
compute that backgroundRect, and that paintDirtyRect came from filterPainter->repaintRect().

Fix this second issue by re-running collectFragments(), which computes a fragment backgroundRect using
the original paintDirtyRect.

Tests: css3/filters/blur-clipped-by-ancestor.html
       css3/filters/blur-clipped-with-overflow.html
       css3/filters/drop-shadow-with-overflow-hidden.html
       css3/filters/drop-shadow.html

* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::clearResult): Unconditionally null these out.
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Typo fix.
* rendering/FilterEffectRenderer.h:
(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper): C++11 initialization.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
* rendering/RenderLayer.h: const

LayoutTests:

* css3/filters/blur-clipped-by-ancestor-expected.html: Added.
* css3/filters/blur-clipped-by-ancestor.html: Added.
* css3/filters/blur-clipped-with-overflow-expected.html: Added.
* css3/filters/blur-clipped-with-overflow.html: Added.
* css3/filters/drop-shadow-expected.html: Added.
* css3/filters/drop-shadow-with-overflow-hidden-expected.html: Added.
* css3/filters/drop-shadow-with-overflow-hidden.html: Added.
* css3/filters/drop-shadow.html: Added.

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

4 years agoREGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when...
mmaxfield@apple.com [Sat, 30 Apr 2016 03:54:41 +0000 (03:54 +0000)]
REGRESSION(194502): overflow: scroll; direction: rtl; divs jump horizontally when scrolled vertically
https://bugs.webkit.org/show_bug.cgi?id=157201

Reviewed by Simon Fraser.

Source/WebCore:

ScrollableArea::scrollToOffsetWithoutAnimation() was mistakenly conflating scroll offsets with
scroll positions.

Test: fast/scrolling/rtl-drag-vertical-scroller.html

* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

LayoutTests:

* fast/scrolling/rtl-drag-vertical-scroller-expected.txt: Added.
* fast/scrolling/rtl-drag-vertical-scroller.html: Added.

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

4 years agoDrop useless check in SpeculativeLoadManager::registerLoad()
cdumez@apple.com [Sat, 30 Apr 2016 03:36:48 +0000 (03:36 +0000)]
Drop useless check in SpeculativeLoadManager::registerLoad()
https://bugs.webkit.org/show_bug.cgi?id=157204

Reviewed by Antti Koivisto.

Drop useless check in SpeculativeLoadManager::registerLoad(). There is
no way to end up this code path with a non-HTTP family request.

* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):

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

4 years agoWeb Automation: add SPI to mark an existing NSEvent as synthesized for automation
bburg@apple.com [Sat, 30 Apr 2016 03:21:14 +0000 (03:21 +0000)]
Web Automation: add SPI to mark an existing NSEvent as synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157221
<rdar://problem/26019356>

Reviewed by Timothy Hatcher.

In cases where an NSEvent is duplicated, clients need to re-mark an NSEvent
as synthesized for automation if the original NSEvent was marked as such.

* UIProcess/API/Cocoa/_WKAutomationSession.h:
* UIProcess/API/Cocoa/_WKAutomationSession.mm:
(-[_WKAutomationSession markEventAsSynthesizedForAutomation:]):
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::sendSynthesizedEventsToPage):
(WebKit::WebAutomationSession::markEventAsSynthesizedForAutomation):

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

4 years agoClean up GraphicsContext use in RenderLayer::paintLayerContents()
simon.fraser@apple.com [Sat, 30 Apr 2016 02:55:01 +0000 (02:55 +0000)]
Clean up GraphicsContext use in RenderLayer::paintLayerContents()
https://bugs.webkit.org/show_bug.cgi?id=157193

Reviewed by Zalan Bujtas.

Make the lifetime of the temporary GraphicsContext used to paint filters more explicit
by putting it in an inner scope.

Make currentContext a reference.

transparencyLayerContext was a confusing name (it doens't mean we've started a
transparency layer), so just use "context" to refer to the original context. When
passed to other functions, this is called "contextForTransparencyLayer".

No longer leaves "context" as a null pointer if filterPainter->filterContext() returns
a null pointer. It's unclear if this ever happened.

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::filterContext):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
* rendering/RenderLayer.h:

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

4 years agoWeb Automation: use a magic eventNumber as a fallback for detecting NSEvents synthesi...
bburg@apple.com [Sat, 30 Apr 2016 02:37:01 +0000 (02:37 +0000)]
Web Automation: use a magic eventNumber as a fallback for detecting NSEvents synthesized for automation
https://bugs.webkit.org/show_bug.cgi?id=157222

Reviewed by Timothy Hatcher.

Sometimes events are copied and redelivered in a way that can't be reliably intercepted,
so use eventNumber as an alternate means of detecting synthesized mouse NSEvents.

* UIProcess/Cocoa/WebAutomationSessionCocoa.mm:
(WebKit::WebAutomationSession::wasEventSynthesizedForAutomation):
If it's a mouse-related event, check the eventNumber if the associated object was missing.

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
Most real events from input devices fill in eventNumber with a non-zero value.
In my testing, using zero did not seem to adversely affect event delivery.

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

4 years ago[JSC][ARMv7S] Arithmetic module results change when tiering up to DFG
commit-queue@webkit.org [Sat, 30 Apr 2016 01:50:42 +0000 (01:50 +0000)]
[JSC][ARMv7S] Arithmetic module results change when tiering up to DFG
https://bugs.webkit.org/show_bug.cgi?id=157217
rdar://problem/24733432

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-29
Reviewed by Mark Lam.

ARMv7's fmod() returns less accurate results than an integer division.
Since we have integer div on ARMv7s, the results start changing when
we reach DFG.

In this patch, I change our fmod slow path to behave like the fast path
on ARMv7s.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::fmodAsDFGOperation): Deleted.
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/MathCommon.cpp:
(JSC::isStrictInt32):
* runtime/MathCommon.h:

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

4 years agoWeb Inspector: Issues inspecting the inspector, pausing on breakpoints causes content...
commit-queue@webkit.org [Sat, 30 Apr 2016 01:47:22 +0000 (01:47 +0000)]
Web Inspector: Issues inspecting the inspector, pausing on breakpoints causes content to not load
https://bugs.webkit.org/show_bug.cgi?id=157198
<rdar://problem/26011049>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-29
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/InspectorBackendDispatcher.cpp:
(Inspector::BackendDispatcher::sendResponse):
While auditing the code, add a WTFMove.

Source/WebCore:

No new tests. This only affects inspecting an inspector.

* inspector/InspectorController.h:
* inspector/InspectorFrontendClient.h:
(WebCore::InspectorFrontendClient::pagePaused):
(WebCore::InspectorFrontendClient::pageUnpaused):
* inspector/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::setJavaScriptPaused):
Inform a frontend client if the frontend page itself pauses/unpauses.

Source/WebInspectorUI:

* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
While auditing, use simpler check.

* UserInterface/Proxies/FormatterWorkerProxy.js:
(WebInspector.FormatterWorkerProxy.canFormat): Deleted.
While auditing, remove dead code.

Source/WebKit2:

* WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h:
* WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp:
(WebKit::WebInspectorFrontendAPIDispatcher::reset):
(WebKit::WebInspectorFrontendAPIDispatcher::frontendLoaded):
(WebKit::WebInspectorFrontendAPIDispatcher::suspend):
(WebKit::WebInspectorFrontendAPIDispatcher::unsuspend):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
(WebKit::WebInspectorFrontendAPIDispatcher::dispatchMessageAsync):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):
Avoid evaluating expressions when the page is paused. Generalize the
message queueing and dispatching for pause/suspend that we already
had for waiting for the frontend page to be loaded.

* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::pagePaused):
(WebKit::WebInspectorUI::pageUnpaused):
When the frontend page pauses/unpauses, suspend/resume the dispatcher.

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

4 years agoRemove unnecessary isolated String copying from one of NetworkCache::Key's constructor
cdumez@apple.com [Sat, 30 Apr 2016 01:28:22 +0000 (01:28 +0000)]
Remove unnecessary isolated String copying from one of NetworkCache::Key's constructor
https://bugs.webkit.org/show_bug.cgi?id=157207

Reviewed by Antti Koivisto.

Remove unnecessary isolated String copying from one of NetworkCache::Key's
constructor. We are anyway going to create isolated copies if the Key ends
up getting copied.

* NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::Key):

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

4 years agoWeb Automation: performMouseInteraction command computes mouse event coordinates...
bburg@apple.com [Sat, 30 Apr 2016 01:14:39 +0000 (01:14 +0000)]
Web Automation: performMouseInteraction command computes mouse event coordinates incorrectly
https://bugs.webkit.org/show_bug.cgi?id=157218
<rdar://problem/26018230>

Reviewed by Timothy Hatcher.

This patch fixes two issues: the min/max clamp was in the wrong order,
and the y-value did not account for the window's top content inset.

* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performMouseInteraction):

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

4 years ago[iOS] do not exit AirPlay when the screen locks
eric.carlson@apple.com [Sat, 30 Apr 2016 00:52:55 +0000 (00:52 +0000)]
[iOS] do not exit AirPlay when the screen locks
https://bugs.webkit.org/show_bug.cgi?id=156502
<rdar://problem/24616592>

Reviewed by Dean Jackson

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pendingActionTimerFired): Use m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
(WebCore::HTMLMediaElement::wirelessRoutesAvailableDidChange): Set m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Use
  m_isPlayingToWirelessTarget.
(WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::configureMediaControls): Ditto.
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Add logging.
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): Don't tell the media engine to purge
  data if it is playing to a wireless target because that will drop the connection.
* html/HTMLMediaElement.h:

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackPermitted): Add logging.
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget): Drive by fix: iOS doesn't
  have an explicit playbackTarget, don't test for it.
(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget): Ditto.

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

4 years agoMake RegExp.prototype.test spec compliant.
mark.lam@apple.com [Sat, 30 Apr 2016 00:34:01 +0000 (00:34 +0000)]
Make RegExp.prototype.test spec compliant.
https://bugs.webkit.org/show_bug.cgi?id=155862

Reviewed by Saam Barati.

Source/JavaScriptCore:

* builtins/RegExpPrototype.js:
(intrinsic.RegExpTestIntrinsic.test):

* create_hash_table:
- Delete obsoleted code.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- We now have 2 intrinsics for RegExp.prototype.test:
  RegExpTestIntrinsic and RegExpTestFastIntrinsic.

  RegExpTestIntrinsic maps to the entry at the top of the builtin ES6
  RegExp.prototype.test.
  RegExpTestFastIntrinsic maps to the fast path in the builtin ES6
  RegExp.prototype.test.

  Both will end up using the RegExpTest DFG node to implement the fast path
  of RegExp.prototype.test.  RegExpTestIntrinsic will have some additional checks
  before the RegExpTest node.  Those checks are for speculating that it is ok for
  us to take the fast path.

* runtime/CommonIdentifiers.h:
* runtime/Intrinsic.h:

* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- Added the regExpTestFast function.
- Also fixed the parameter length on 2 other functions that were erroneous.

* runtime/RegExpPrototype.cpp:
(JSC::RegExpPrototype::finishCreation):
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncTest): Deleted.
* runtime/RegExpPrototype.h:
* tests/es6.yaml:

LayoutTests:

* js/regress/regexp-prototype-test-observable-side-effects-expected.txt: Added.
* js/regress/regexp-prototype-test-observable-side-effects.html: Added.
* js/regress/regexp-prototype-test-observable-side-effects2-expected.txt: Added.
* js/regress/regexp-prototype-test-observable-side-effects2.html: Added.
* js/regress/script-tests/regexp-prototype-test-observable-side-effects.js: Added.
* js/regress/script-tests/simple-regexp-test-folding-fail-with-hoisted-regexp.js: Added.
* js/regress/script-tests/simple-regexp-test-folding-with-hoisted-regexp.js: Added.
* js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp-expected.txt: Added.
* js/regress/simple-regexp-test-folding-fail-with-hoisted-regexp.html: Added.
* js/regress/simple-regexp-test-folding-with-hoisted-regexp-expected.txt: Added.
* js/regress/simple-regexp-test-folding-with-hoisted-regexp.html: Added.

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

4 years agoNode.nodeName should not be nullable
cdumez@apple.com [Sat, 30 Apr 2016 00:12:35 +0000 (00:12 +0000)]
Node.nodeName should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=157211

Reviewed by Ryosuke Niwa.

Node.nodeName should not be nullable as per the specification:
https://dom.spec.whatwg.org/#interface-node

Our implementation never returns null anyway. However, having
it as nullable in the IDL means we use jsStringOrNull() instead
of jsStringWithCache(), thus doing an unnecessary null check.

This should not be observable by JS.

* dom/Node.idl:

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

4 years agoWeb Inspector: Scrolling in Timelines causes flashing of the DataGrid
timothy@apple.com [Sat, 30 Apr 2016 00:10:16 +0000 (00:10 +0000)]
Web Inspector: Scrolling in Timelines causes flashing of the DataGrid
https://bugs.webkit.org/show_bug.cgi?id=157212
rdar://problem/25994717

Listen for mousewheel events too so we can update the visible rows sooner.

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid): Call _updateScrollListeners.
(WebInspector.DataGrid.prototype.set inline): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype.set variableHeightRows): Use _updateScrollListeners.
(WebInspector.DataGrid.prototype._updateScrollListeners): Added. Listen for mousewheel too.

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

4 years agoUnreviewed, rolling out r200150 and r200256.
ryanhaddad@apple.com [Fri, 29 Apr 2016 23:56:32 +0000 (23:56 +0000)]
Unreviewed, rolling out r200150 and r200256.
https://bugs.webkit.org/show_bug.cgi?id=157216

This change introduced flakiness in existing CJK LayoutTests.
Also reverting the change that marked the tests as flaky.
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Clean up Font::removeFromSystemFallbackCache()"
https://bugs.webkit.org/show_bug.cgi?id=157093
http://trac.webkit.org/changeset/200150

"Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-
expansion-cjk-4.html as flaky on Mac"
https://bugs.webkit.org/show_bug.cgi?id=157197
http://trac.webkit.org/changeset/200256

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

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

4 years agoRTL <select> popup menu is in the wrong location
dino@apple.com [Fri, 29 Apr 2016 23:54:35 +0000 (23:54 +0000)]
RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>

Reapply http://trac.webkit.org/changeset/200217
but with changes that will allow it to build on Yosemite.

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

4 years agoChange ios-simulator expectation for tests added with r200265 from ImageOnlyFailure...
ryanhaddad@apple.com [Fri, 29 Apr 2016 23:43:29 +0000 (23:43 +0000)]
Change ios-simulator expectation for tests added with r200265 from ImageOnlyFailure to Failure

Unreviewed test gardening.

* platform/ios-simulator/TestExpectations:

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

4 years ago[Mac] AirPlay fails if target is set before AVPlayer has been created
eric.carlson@apple.com [Fri, 29 Apr 2016 22:40:05 +0000 (22:40 +0000)]
[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Unreviewed, update test so the results are consistent on different machines.

* media/media-source/media-source-airplay-expected.txt:
* media/media-source/media-source-airplay.html:

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

4 years ago<select multiple> padding should react when scrolling
tonikitoo@webkit.org [Fri, 29 Apr 2016 21:48:43 +0000 (21:48 +0000)]
<select multiple> padding should react when scrolling
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=156590
https://bugs.webkit.org/show_bug.cgi?id=156591

Reviewed by Reviewed by Darin Adler.

Tests: fast/forms/listbox-respects-padding-bottom.html
       fast/forms/listbox-top-padding-do-not-clip-items.html

Non-dropdown listboxes have support to padding-{top,bottom} implemented similarly
to the border model: the padding area does not move when the listbox' content gets scrolled,
but instead it clips out its content.
This is not consistent with other browsers and is not consistent with the CSS box model.

This in practice, if a <select> has padding-top set, the padding-top area will clip out listbox'
content as one scrolls upwards.
It also means that if padding-bottom is set, when one scrolls all the way to the bottom
of the listbox content, padding-bottom is not respected.

In order to fix these two problems, and make WebKit match Blink with respect to the the way
padding-{top,bottom} are handled, patch adds two class member variables that control the number
of list items (i.e. <option>s) that can be painted over the current listbox' padding area.

In short, depending on the scroll position and the amount of space available in the padding top/bottom
areas, items are painted or not on top of it, mimic'ing the CSS box model behavior of other browsers.

Note that this is specific solution is worth it to pursue on the short/mid term, but a long-term solution
to this problem and many other listbox discrepancies on WebKit's implementation, would be to reimplement
RenderListBox class in terms of RenderLayer. This will be a follow up work.

* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::numVisibleItems):
(WebCore::RenderListBox::paintObject):
(WebCore::RenderListBox::scrollToRevealElementAtListIndex):
(WebCore::RenderListBox::listIndexIsVisible):
(WebCore::RenderListBox::maximumNumberOfItemsThatFitInPaddingBottomArea):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingTop):
(WebCore::RenderListBox::numberOfVisibleItemsInPaddingBottom):
(WebCore::RenderListBox::computeFirstIndexesVisibleInPaddingTopBottomAreas):
(WebCore::RenderListBox::scrollTo):
* rendering/RenderListBox.h:

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=156590
https://bugs.webkit.org/show_bug.cgi?id=156591

Reviewed by Reviewed by Darin Adler.

* fast/forms/listbox-respects-padding-bottom-expected.txt: Added.
* fast/forms/listbox-respects-padding-bottom.html: Added.
* fast/forms/listbox-top-padding-do-not-clip-items-expected.txt: Added.
* fast/forms/listbox-top-padding-do-not-clip-items.html: Added.

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

4 years ago[Mac] AirPlay fails if target is set before AVPlayer has been created
eric.carlson@apple.com [Fri, 29 Apr 2016 21:29:01 +0000 (21:29 +0000)]
[Mac] AirPlay fails if target is set before AVPlayer has been created
https://bugs.webkit.org/show_bug.cgi?id=157147
<rdar://problem/24197592>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-airplay.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Clear flag before calling
  setShouldPlayToPlaybackTarget so it does the necessary setup.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Return false if the mock
  MSE source has been registered.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Return 'not supported' if
  isAvailable is false.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Fail if isAvailable is false.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless): Cleanup.

* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::registered): Global accessor.
(WebCore::MockMediaPlayerMediaSource::isRegistered):
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine): Set registered to true.
(WebCore::MockMediaPlayerMediaSource::setWirelessPlaybackTarget): New, remember the target.
(WebCore::MockMediaPlayerMediaSource::setShouldPlayToPlaybackTarget): New, remember the setting.
(WebCore::MockMediaPlayerMediaSource::isCurrentPlaybackTargetWireless):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:

* testing/Internals.cpp:
(WebCore::Internals::initializeMockMediaSource): Don't disable AVFoundation.

LayoutTests:

* media/media-source/media-source-airplay-expected.txt: Added.
* media/media-source/media-source-airplay.html: Added.
* platform/efl/TestExpectations: Skip Mac-only test.
* platform/gtk/TestExpectations: Ditto.
* platform/ios-simulator/TestExpectations: Ditto.
* platform/mac/TestExpectations: Skipped new tests on older versions of OS X.
* platform/win/TestExpectations: Skip Mac-only test.

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

4 years agoExtend math-pow-stable-results.js to get more information about the failure
benjamin@webkit.org [Fri, 29 Apr 2016 21:17:44 +0000 (21:17 +0000)]
Extend math-pow-stable-results.js to get more information about the failure

* tests/stress/math-pow-stable-results.js:

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

4 years agoWeb Inspector: Jump to Line in auto formatted JavaScript does not work the first...
commit-queue@webkit.org [Fri, 29 Apr 2016 21:08:43 +0000 (21:08 +0000)]
Web Inspector: Jump to Line in auto formatted JavaScript does not work the first time
https://bugs.webkit.org/show_bug.cgi?id=157194
<rdar://problem/26008471>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-29
Reviewed by Timothy Hatcher.

When doing asynchronous formatting we set the content of the editor
twice. First to prime the editors back/foward list with the original
content, and then again after we get the formatted content from the
Worker, and then display the content.

The TextEditor attempts to reveal a position when the initial string
has been set. Back when autoformatting was synchronous this was fine.
Asynchronously however, this ends up happening between the original
and formatted value. Also, the TextEditor has no idea that the
SourceCodeTextEditor is going to format / defer displaying the
contents. Add a "defer" property to the TextEditor that the
SourceCodeTextEditor can use in this circumstance.

* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
Avoid revealing a position when setting the original content. We will
be formatting and we will want to reveal the position afterwards.

* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.set deferReveal):
Provide another reason to defer revealing.

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

4 years ago[RTL Scrollbars] REGRESSION(r200116): Positioned contents can overlap RTL scrollbars
mmaxfield@apple.com [Fri, 29 Apr 2016 20:33:48 +0000 (20:33 +0000)]
[RTL Scrollbars] REGRESSION(r200116): Positioned contents can overlap RTL scrollbars
https://bugs.webkit.org/show_bug.cgi?id=157164
<rdar://problem/25993610>

Reviewed by Darin Adler.

Source/WebCore:

There was some code left over from the old implementation of RTL_SCROLLBARS
which had some faulty assumptions about the interaction between direction
and scrollbar placement. In particular, once we began obeying the "dir"
attribute in r200116, these assumptions were no longer valid.

Test: fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html
      scrollbars/rtl/div-absolute.html
      scrollbars/rtl/div-horizontal.html

* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::layoutOverflowRect):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow): Deleted.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeScrollDimensions):

LayoutTests:

* TestExpectations:
* fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars-expected.html: Added.
* fast/scrolling/rtl-scrollbars-positioned-intersect-scrollbars.html: Added.

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

4 years ago[GTK] r65681 broke a couple GTK+ a11y tests
jdiggs@igalia.com [Fri, 29 Apr 2016 20:29:18 +0000 (20:29 +0000)]
[GTK] r65681 broke a couple GTK+ a11y tests
https://bugs.webkit.org/show_bug.cgi?id=44316

Reviewed by Martin Robinson.

The original regression has apparently been fixed, possibly quite some time
ago. Updating both tests and associated expectations to reflect what has
changed over the years. Leaving title-and-alt.html as skipped, but marked
as failing due to a different bug (157187).

* accessibility/gtk/object-attributes-expected.txt:
* accessibility/gtk/object-attributes.html:
* accessibility/gtk/title-and-alt-expected.txt:
* accessibility/gtk/title-and-alt.html:
* platform/gtk/TestExpectations:

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

4 years agoFix a typo in r200255.
rniwa@webkit.org [Fri, 29 Apr 2016 20:11:12 +0000 (20:11 +0000)]
Fix a typo in r200255.

* resources/testharnessreport.js:
(self.testRunner.add_completion_callback):

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

4 years agoAX: CharacterOffset not working correctly with composed characters and collapsed...
n_wang@apple.com [Fri, 29 Apr 2016 20:05:07 +0000 (20:05 +0000)]
AX: CharacterOffset not working correctly with composed characters and collapsed white spaces
https://bugs.webkit.org/show_bug.cgi?id=157190

Reviewed by Chris Fleizach.

Source/WebCore:

When navigating emoji, next/previous text marker call is only moving by one character. Fixed it by
using the helper function in Position to get the real character count for the composed character sequence.
Also there's another issue with collapsed white spaces, TextIterator emits only one space. So we have to
use the actual space length to create the CharacterOffset in order to generate valid Range object from it.

New test cases in accessibility/text-marker/text-marker-previous-next.html.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset):
(WebCore::AXObjectCache::nextNode):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::nextCharacterOffset):
(WebCore::AXObjectCache::previousCharacterOffset):
(WebCore::AXObjectCache::startCharacterOffsetOfWord):

LayoutTests:

* accessibility/mac/text-marker-word-nav.html:
* accessibility/text-marker/text-marker-previous-next-expected.txt:
* accessibility/text-marker/text-marker-previous-next.html:

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

4 years agoAssertion failure for exception in "prototype" property getter and Reflect.construct
utatane.tea@gmail.com [Fri, 29 Apr 2016 20:01:42 +0000 (20:01 +0000)]
Assertion failure for exception in "prototype" property getter and Reflect.construct
https://bugs.webkit.org/show_bug.cgi?id=157084

Reviewed by Mark Lam.

InternalFunction::createSubclassStrucuture may throw exceptions because it performs [[Get]] to
look up the "prototype" object. The current assertion is invalid.
We also found that Object constructor is not aware of new.target. This is filed[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=157196

* runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):
* tests/stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Added.
(shouldThrow):
(bf):

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

4 years agoMarking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-expansion-cjk-4.html...
ryanhaddad@apple.com [Fri, 29 Apr 2016 19:58:58 +0000 (19:58 +0000)]
Marking fast/ruby/ruby-expansion-cjk.html and fast/ruby/ruby-expansion-cjk-4.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=157197

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

4 years agotest harness tests complain about testRunner not being declared inside a browser
rniwa@webkit.org [Fri, 29 Apr 2016 19:39:44 +0000 (19:39 +0000)]
test harness tests complain about testRunner not being declared inside a browser
https://bugs.webkit.org/show_bug.cgi?id=157056

Reviewed by Alex Christensen.

Don't run the code meant to re-format results for DRT/WTR when testRunner is not defined (i.e. inside a browser).
Also fixed various styling issues with this JavaScript file and removed useless comments.

* resources/testharnessreport.js:

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

4 years agoWebPlaybackControlsManager should not be owned by the WebPlaybackSessionInterfaceMac.
jer.noble@apple.com [Fri, 29 Apr 2016 18:24:57 +0000 (18:24 +0000)]
WebPlaybackControlsManager should not be owned by the WebPlaybackSessionInterfaceMac.
https://bugs.webkit.org/show_bug.cgi?id=157155
<rdar://problem/25991724>

Reviewed by Beth Dakin.

Move the WebPlaybackControlsManager class into its own header and implementation files.

* WebCore.xcodeproj/project.pbxproj:
* platform/mac/WebPlaybackControlsManager.h: Added.
* platform/mac/WebPlaybackControlsManager.mm: Added.
(-[WebPlaybackControlsManager timing]): Moved from WebPlaybackSessionInterfaceMac.
(-[WebPlaybackControlsManager setTiming:]): Ditto.
(-[WebPlaybackControlsManager seekableTimeRanges]): Ditto.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Ditto.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Ditto.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Ditto.
* platform/mac/WebPlaybackSessionInterfaceMac.h:
* platform/mac/WebPlaybackSessionInterfaceMac.mm:
(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):
(-[WebPlaybackControlsManager initWithWebPlaybackSessionInterfaceMac:]): Deleted.
(-[WebPlaybackControlsManager timing]): Deleted.
(-[WebPlaybackControlsManager setTiming:]): Deleted.
(-[WebPlaybackControlsManager seekableTimeRanges]): Deleted.
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Deleted.
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]): Deleted.
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]): Deleted.
(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager): Deleted.

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

4 years agoAdd JSC test results in JSON format to a Buildbot log.
commit-queue@webkit.org [Fri, 29 Apr 2016 18:23:40 +0000 (18:23 +0000)]
Add JSC test results in JSON format to a Buildbot log.
https://bugs.webkit.org/show_bug.cgi?id=156920

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-04-29
Reviewed by Daniel Bates.

Generate JSON results for JSC tests and upload them to the master
using Buildbot's logfiles machinery.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(RunJavaScriptCoreTests): Use --json-output option when invoking the
run-javascriptcore-tests Perl script, and expose this JSON output as a
Buildbot log.
* Scripts/run-javascriptcore-tests:
(runJSCStressTests): Change key names and remove redundant count key.

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

4 years agoUnreviewed, rolling out r200232.
ryanhaddad@apple.com [Fri, 29 Apr 2016 17:44:25 +0000 (17:44 +0000)]
Unreviewed, rolling out r200232.
https://bugs.webkit.org/show_bug.cgi?id=157189

This change broke the Mac CMake build and its LayoutTest is
failing and/or flaky on all platforms (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"Move ResourceTiming behind a runtime flag"
https://bugs.webkit.org/show_bug.cgi?id=157133
http://trac.webkit.org/changeset/200232

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

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

4 years agoIndicate we are processing user gesture when handling messages from WebPlaybackSessio...
adachan@apple.com [Fri, 29 Apr 2016 17:29:23 +0000 (17:29 +0000)]
Indicate we are processing user gesture when handling messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager
https://bugs.webkit.org/show_bug.cgi?id=157151

Reviewed by Jer Noble.

Messages from WebPlaybackSessionManagerProxy to WebPlaybackSessionManager are triggered by
user actions, so add a UserGestureIndicator in the methods that handle those messages.

* WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):

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

4 years ago[GTK] Fix build failure introduced by r199738
commit-queue@webkit.org [Fri, 29 Apr 2016 17:20:08 +0000 (17:20 +0000)]
[GTK] Fix build failure introduced by r199738
https://bugs.webkit.org/show_bug.cgi?id=157182

Patch by Jeremy Huddleston Sequoia <jeremyhu@apple.com> on 2016-04-29
Reviewed by Alex Christensen.

* CMakeLists.txt:

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

4 years agoAdd a default ".isolatedCopy()" specialization to CrossThreadCopier, and other small...
beidson@apple.com [Fri, 29 Apr 2016 17:05:46 +0000 (17:05 +0000)]
Add a default ".isolatedCopy()" specialization to CrossThreadCopier, and other small cleanup.
https://bugs.webkit.org/show_bug.cgi?id=157185

Reviewed by Anders Carlsson.

Source/WebCore:

No new tests (Code cleanup, no change in behavior).

* platform/CrossThreadCopier.cpp:
(WebCore::IndexedDB::TransactionMode>::copy): Deleted.
(WebCore::IndexedDB::CursorDirection>::copy): Deleted.
(WebCore::IndexedDB::CursorType>::copy): Deleted.
(WebCore::IDBGetResult>::copy): Deleted.
(WebCore::IDBKeyData>::copy): Deleted.
(WebCore::IDBKeyRangeData>::copy): Deleted.
(WebCore::IDBDatabaseInfo>::copy): Deleted.
(WebCore::IDBDatabaseIdentifier>::copy): Deleted.
(WebCore::IDBTransactionInfo>::copy): Deleted.
(WebCore::IDBResourceIdentifier>::copy): Deleted.
(WebCore::IDBError>::copy): Deleted.
(WebCore::IDBObjectStoreInfo>::copy): Deleted.
(WebCore::IDBIndexInfo>::copy): Deleted.
(WebCore::IDBCursorInfo>::copy): Deleted.
(WebCore::IDBValue>::copy): Deleted.

* platform/CrossThreadCopier.h:
(WebCore::AllowCrossThreadAccessWrapper::AllowCrossThreadAccessWrapper): Deleted dead code.
(WebCore::AllowCrossThreadAccessWrapper::value): Deleted dead code.
(WebCore::AllowCrossThreadAccess): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::AllowAccessLaterWrapper): Deleted dead code.
(WebCore::AllowAccessLaterWrapper::value): Deleted dead code.
(WebCore::AllowAccessLater): Deleted dead code.

Source/WebKit2:

* Shared/WebCrossThreadCopier.cpp:
(WebCore::Vector<char>>::copy): reserveInitialCapacity() before creating the copy.
(WebCore::Vector<int64_t>>::copy): Ditto.
(WebCore::Vector<uint8_t>>::copy): Ditto.
(WebCore::Vector<Vector<IDBKeyData>>>::copy): Deleted dead code.
* Shared/WebCrossThreadCopier.h:

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

4 years ago[GTK] Unreviewed gardening: update expectations after r200234
commit-queue@webkit.org [Fri, 29 Apr 2016 16:54:36 +0000 (16:54 +0000)]
[GTK] Unreviewed gardening: update expectations after r200234
https://bugs.webkit.org/show_bug.cgi?id=157181

Unreviewed gardening.

Patch by Miguel Gomez <magomez@igalia.com> on 2016-04-29

* platform/gtk/TestExpectations:

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

4 years agoWheel Event Not Fired For `body,html { height:100% }`
simon.fraser@apple.com [Fri, 29 Apr 2016 16:54:04 +0000 (16:54 +0000)]
Wheel Event Not Fired For `body,html { height:100% }`
https://bugs.webkit.org/show_bug.cgi?id=148450

Reviewed by Brent Fulgham.

Source/WebCore:

EventHandler::handleWheelEvent() didn't pass the Active flag in the HitTestRequest,
which causes code in RenderLayer::hitTest() to fail to fall back to returning the
root layer if no other element is hit. "Active" is in the default flags,
so just create the HitTestRequest with the default flags.

Test: fast/events/wheel-event-outside-body.html

* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):

LayoutTests:

Testcase, skipped on iOS which doesn't support wheel events.

* fast/events/wheel-event-outside-body-expected.txt: Added.
* fast/events/wheel-event-outside-body.html: Added.
* platform/ios-simulator/TestExpectations:

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

4 years ago[Web IDL] Specify default values for optional parameters of wrapper types
cdumez@apple.com [Fri, 29 Apr 2016 16:51:58 +0000 (16:51 +0000)]
[Web IDL] Specify default values for optional parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=157161

Reviewed by Darin Adler.

Source/WebCore:

Specify default values for optional parameters of wrapper types.

* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::count): Deleted.
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::count): Deleted.
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createDataChannel): Deleted.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:

* bindings/scripts/CodeGeneratorJS.pm:
(WillConvertUndefinedToDefaultParameterValue):
Optimization to avoid generating a ternary if the default
value of a wrapper type parameter is null, since undefined
will already convert to null for those.

(GenerateParametersCheck):
Use null as implicit default value for nullable parameters, given that Web IDL
converts undefined to null for such parameters:
http://heycam.github.io/webidl/#es-nullable-type

(CanUseWTFOptionalForParameter):
Drop the check for wrapper types.

* bindings/scripts/test/*:
Improve bindings tests coverage / rebaseline.

* css/MediaQueryList.idl:
* css/MediaQueryListListener.idl:
* dom/Document.idl:

* html/canvas/DOMPath.idl:
The previous syntax was working because the bindings was generating an early
return if addPath() was called with only one parameter, calling the
implementation method with only 1 parameter. However, since we no longer
generate early returns for optional parameters, we now have to use a slightly
different syntax to maintain the previous behavior. This is only temporary,
I just did not want to deal with SVG tear off types in this patch since they
are very special in the bindings generator.

* page/DOMSelection.idl:
The node parameter to extend() was confusingly marked as optional. However,
when omitted, it would get translated into null, which would throw an
exception since the type is not nullable. Since the specification says 'node'
should not be optional, and since there is no behavior change, I dropped
the 'optional'. The only web-exposed difference is the message provided with
the TypeError that is thrown when called without enough parameters. The new
message is more accurate (see rebaselined layout test).

* svg/SVGMarkerElement.idl:
The parameter for setOrientToAngle() was confusingly marked as optional and
having a default value of null. However, the bindings would throw a TypeError
if called with no parameters or when calling it with null. This is because
this is an SVG Tear off type and the bindings always throw when passing null
for an SVG Tear off type. I therefore updated the IDL to reflect the actual
behavior (no actual behavior change). The new IDL also now matches the spec:
http://www.w3.org/TR/SVG2/painting.html#InterfaceSVGMarkerElement

* svg/SVGSVGElement.idl:
Same comments as for SVGMarkerElement. The new IDL matches the actual
behavior and is closer to the specification. I added FIXME comments for when
it does not match the specification:
http://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement
I did not change web-exposed behavior in this patch.

* svg/SVGTextContentElement.idl:
Same as above. No actual behavior change.

* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
* xml/XPathEvaluator.idl:

LayoutTests:

Rebaseline as a different exception message is now given when calling
Selection.extend() without enough parameters.

* editing/selection/extend-expected.txt:

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

4 years ago[ATK] Expose the value of aria-roledescription via an AtkObject attribute
jdiggs@igalia.com [Fri, 29 Apr 2016 16:44:30 +0000 (16:44 +0000)]
[ATK] Expose the value of aria-roledescription via an AtkObject attribute
https://bugs.webkit.org/show_bug.cgi?id=146719

Reviewed by Chris Fleizach.

Source/WebCore:

The author-provided value is now exposed via an AtkObject attribute.

Implementation is already covered by aria-roledescription.html. The ATK
expectations are slightly different than those for AX API because falling
back on the default role description is done by assistive technologies.
That this fall back is needed is identified by the lack of an author-
provided value. Thus we do not wish to expose the default role description
in our implementation.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):

Tools:

Implement roleDescription() so that the implementation can be tested.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::roleDescription):

LayoutTests:

Platform-specific expectations are needed because falling back on the default
role description is done by assistive technologies. That this fall back is needed
is identified by the lack of an author-provided value. Thus we do not wish to
expose the default role description in our implementation.

* platform/gtk/TestExpectations: Unskipped the failing test.
* platform/gtk/accessibility/aria-roledescription-expected.txt: Added.

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

4 years ago[ATK] accessibility/aria-current-global-attribute.html has been failed since r198303
jdiggs@igalia.com [Fri, 29 Apr 2016 16:39:02 +0000 (16:39 +0000)]
[ATK] accessibility/aria-current-global-attribute.html has been failed since r198303
https://bugs.webkit.org/show_bug.cgi?id=155935

Reviewed by Chris Fleizach.

Source/WebCore:

In ATK, the text of span elements is typically exposed through the parent
element, unless the span has some attribute requiring inclusion in the
accessibility tree. We were not checking for the presence of global ARIA
attributes (including aria-current), other than describedby and role.
The fix is to also check AccessibilityObject::supportsARIAAttributes().

No new tests. This issue was caught as a result of a failing test.

* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

LayoutTests:

* platform/efl/TestExpectations: Unskipped the failing test.

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

4 years agoUnreviewed, rolling out r200217.
ryanhaddad@apple.com [Fri, 29 Apr 2016 16:35:00 +0000 (16:35 +0000)]
Unreviewed, rolling out r200217.
https://bugs.webkit.org/show_bug.cgi?id=157183

This change broke the Yosemite build. (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"RTL <select> popup menu is in the wrong location"
https://bugs.webkit.org/show_bug.cgi?id=157159
http://trac.webkit.org/changeset/200217

Patch by Commit Queue <commit-queue@webkit.org> on 2016-04-29

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

4 years ago[Web IDL] Drop 'any' type handling from CanUseWTFOptionalForParameter()
cdumez@apple.com [Fri, 29 Apr 2016 16:08:00 +0000 (16:08 +0000)]
[Web IDL] Drop 'any' type handling from CanUseWTFOptionalForParameter()
https://bugs.webkit.org/show_bug.cgi?id=157152

Reviewed by Darin Adler.

Drop 'any' type handling from CanUseWTFOptionalForParameter(). Always
use undefined as default value for parameters of type 'any' unless
specified otherwise.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction): Deleted.
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::add): Deleted.
(WebCore::IDBObjectStore::putOrAdd): Deleted.
* Modules/indexeddb/IDBObjectStore.h:
* bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
Fix optimization for optional DOMString attributes whose default value
is the string "undefined". I also added bindings test coverage for it.

(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_method_with_optional_string_is_undefined):
(webkit_dom_test_obj_method_with_optional_any):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAny):
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj methodWithOptionalStringIsUndefined:]):
(-[DOMTestObj methodWithOptionalAny:]):
* bindings/scripts/test/TestObj.idl:
* testing/Internals.h:

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

4 years ago[ATK] accessibility/double-nested-inline-element-missing-from-tree.html has been...
jdiggs@igalia.com [Fri, 29 Apr 2016 13:10:04 +0000 (13:10 +0000)]
[ATK] accessibility/double-nested-inline-element-missing-from-tree.html has been failed since r198219
https://bugs.webkit.org/show_bug.cgi?id=155939

Reviewed by Darin Adler.

Platform-specific expectations were needed because the ATK accessibility tree folds
certain elements, including spans, into the parent element.

* platform/efl/TestExpectations: Unskipped the failing test.
* platform/efl/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.
* platform/gtk/accessibility/double-nested-inline-element-missing-from-tree-expected.txt: Added.

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

4 years agoAX: [ATK] Expose elements with ARIA's "text" role
jdiggs@igalia.com [Fri, 29 Apr 2016 13:08:03 +0000 (13:08 +0000)]
AX: [ATK] Expose elements with ARIA's "text" role
https://bugs.webkit.org/show_bug.cgi?id=157160

Reviewed by Chris Fleizach.

Source/WebCore:

WebCore Accessibility's StaticTextRole is used for exposed RenderText
objects and for the ARIA "text" role. The former should be folded into
the parent element; the latter should not be, but was. Now we check to
see which type we have when building the accessibility tree. Also map
the "text" role to ATK_ROLE_STATIC.

We already have sufficient test coverage. Three previously-failing tests
are now passing.

* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

* accessibility/aria-text-role.html: Modified to do platform-specific role checks.
* platform/gtk/TestExpectations: Unskipped three previously-failing tests.
* platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.

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

4 years ago[ES6] RegExp.prototype.@@replace should use @isObject instead of `instanceof` for...
utatane.tea@gmail.com [Fri, 29 Apr 2016 11:36:26 +0000 (11:36 +0000)]
[ES6] RegExp.prototype.@@replace should use @isObject instead of `instanceof` for object guard
https://bugs.webkit.org/show_bug.cgi?id=157124

Reviewed by Keith Miller.

Use @isObject instead of `instanceof @Object`.
The `instanceof` check is not enough to check Object Type.
This fix itself is the same to r199647, and this patch is for RegExp.prototype.@@replace.

* builtins/RegExpPrototype.js:
(replace):
* tests/stress/regexp-replace-in-other-realm-should-work.js: Added.
(shouldBe):
* tests/stress/regexp-replace-should-work-with-objects-not-inheriting-object-prototype.js: Added.
(shouldBe):
(regexp.exec):

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

4 years agoRegnerate w3c-import.log files after r200109
youenn.fablet@crf.canon.fr [Fri, 29 Apr 2016 11:27:14 +0000 (11:27 +0000)]
Regnerate w3c-import.log files after r200109
https://bugs.webkit.org/show_bug.cgi?id=157171

Unreviewed.

Changing only log files.

* web-platform-tests/XMLHttpRequest/resources/auth1/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/auth2/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/auth3/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/auth4/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/auth5/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/auth6/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/nocors/w3c-import.log:
* web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
* web-platform-tests/XMLHttpRequest/w3c-import.log:
* web-platform-tests/common/w3c-import.log:
* web-platform-tests/dom/collections/w3c-import.log:
* web-platform-tests/dom/events/w3c-import.log:
* web-platform-tests/dom/lists/w3c-import.log:
* web-platform-tests/dom/nodes/Document-contentType/contentType/w3c-import.log:
* web-platform-tests/dom/nodes/Document-contentType/resources/w3c-import.log:
* web-platform-tests/dom/nodes/Document-contentType/support/w3c-import.log:
* web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
* web-platform-tests/dom/nodes/w3c-import.log:
* web-platform-tests/dom/ranges/w3c-import.log:
* web-platform-tests/dom/traversal/w3c-import.log:
* web-platform-tests/dom/w3c-import.log:
* web-platform-tests/domparsing/w3c-import.log:
* web-platform-tests/fetch/api/basic/w3c-import.log:
* web-platform-tests/fetch/api/cors/w3c-import.log:
* web-platform-tests/fetch/api/credentials/w3c-import.log:
* web-platform-tests/fetch/api/headers/w3c-import.log:
* web-platform-tests/fetch/api/policies/w3c-import.log:
* web-platform-tests/fetch/api/redirect/w3c-import.log:
* web-platform-tests/fetch/api/request/w3c-import.log:
* web-platform-tests/fetch/api/resources/w3c-import.log:
* web-platform-tests/fetch/api/response/w3c-import.log:
* web-platform-tests/fetch/nosniff/resources/w3c-import.log:
* web-platform-tests/fetch/nosniff/w3c-import.log:
* web-platform-tests/fetch/w3c-import.log:
* web-platform-tests/fonts/w3c-import.log:
* web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/w3c-import.log:
* web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
* web-platform-tests/html/dom/documents/resource-metadata-management/w3c-import.log:
* web-platform-tests/html/dom/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log:
* web-platform-tests/html/dom/dynamic-markup-insertion/document-write/w3c-import.log:
* web-platform-tests/html/dom/dynamic-markup-insertion/document-writeln/w3c-import.log:
* web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log:
* web-platform-tests/html/dom/elements/content-models/w3c-import.log:
* web-platform-tests/html/dom/elements/element-definitions/w3c-import.log:
* web-platform-tests/html/dom/elements/elements-in-the-dom/w3c-import.log:
* web-platform-tests/html/dom/elements/global-attributes/w3c-import.log:
* web-platform-tests/html/dom/elements/wai-aria/w3c-import.log:
* web-platform-tests/html/dom/w3c-import.log:
* web-platform-tests/html/resources/w3c-import.log:
* web-platform-tests/html/semantics/disabled-elements/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/styling/support/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/styling/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-style-element/w3c-import.log:
* web-platform-tests/html/semantics/document-metadata/the-title-element/w3c-import.log:
* web-platform-tests/html/semantics/edits/the-del-element/w3c-import.log:
* web-platform-tests/html/semantics/edits/the-ins-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/image-maps/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCueList/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackList/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TrackEvent/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/resources/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/media-elements/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-area-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-area-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-audio-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-video-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/attributes-common-to-form-controls/w3c-import.log:
* web-platform-tests/html/semantics/forms/constraints/support/w3c-import.log:
* web-platform-tests/html/semantics/forms/constraints/w3c-import.log:
* web-platform-tests/html/semantics/forms/form-control-infrastructure/w3c-import.log:
* web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
* web-platform-tests/html/semantics/forms/introduction-1/w3c-import.log:
* web-platform-tests/html/semantics/forms/resetting-a-form/w3c-import.log:
* web-platform-tests/html/semantics/forms/textfieldselection/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-datalist-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-legend-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-meter-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-option-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-output-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-select-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-dd-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-div-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-dl-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-dt-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-figcaption-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-figure-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-hr-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-li-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-ol-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-p-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-pre-element/w3c-import.log:
* web-platform-tests/html/semantics/grouping-content/the-ul-element/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/commands/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-menu-element/w3c-import.log:
* web-platform-tests/html/semantics/links/downloading-resources/w3c-import.log:
* web-platform-tests/html/semantics/links/linktypes/w3c-import.log:
* web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
* web-platform-tests/html/semantics/sections/headings-and-sections/w3c-import.log:
* web-platform-tests/html/semantics/sections/the-h1-h2-h3-h4-h5-and-h6-elements/w3c-import.log:
* web-platform-tests/html/semantics/selectors/pseudo-classes/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/attributes-common-to-td-and-th-elements/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/processing-model-1/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-caption-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-table-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-tbody-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-tfoot-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-thead-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/the-tr-element/w3c-import.log:
* web-platform-tests/html/semantics/tabular-data/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-a-element/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-bdi-element/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-bdo-element/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-br-element/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-time-element/w3c-import.log:
* web-platform-tests/html/semantics/text-level-semantics/the-wbr-element/w3c-import.log:
* web-platform-tests/html/semantics/w3c-import.log:
* web-platform-tests/html/w3c-import.log:
* web-platform-tests/images/w3c-import.log:
* web-platform-tests/media/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/resources/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/script-tests/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/serviceworker/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/window/w3c-import.log:
* web-platform-tests/service-workers/cache-storage/worker/w3c-import.log:
* web-platform-tests/service-workers/service-workers/resources/w3c-import.log:
* web-platform-tests/service-workers/tools/w3c-import.log:
* web-platform-tests/service-workers/w3c-import.log:
* web-platform-tests/streams/readable-streams/w3c-import.log:
* web-platform-tests/streams/resources/w3c-import.log:
* web-platform-tests/streams/w3c-import.log:
* web-platform-tests/w3c-import.log:

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

4 years ago[FreeType] ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second...
carlosgc@webkit.org [Fri, 29 Apr 2016 09:57:49 +0000 (09:57 +0000)]
[FreeType] ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second in FontCache::getVerticalData()
https://bugs.webkit.org/show_bug.cgi?id=157132

Reviewed by Darin Adler.

I've noticed that some tests fail randomly in the GTK+ debug bot due to an assertion in HashMap when getting
vertical data from the FontCache. I don't know exactly what's wrong, but looks like a problem with the
FontVerticalDataCache hash traits implementation. Looking at the code, I've realized that we could simplify
everything by reusing the FontDataCache hash and traits, since we are actually using the
FontPlatformData::hash() in the end in both cases. Also, I don't see why we need to get the vertical data from
the FontPlatformData while it's actually cached by the font cache. We could just use the FontCache directly
passing only the FontPlatformData. These changes seem to fix the crashes and make the code a lot simpler.

* platform/graphics/Font.cpp:
(WebCore::Font::Font): Use FontCache::verticalData().
* platform/graphics/FontCache.cpp:
(WebCore::fontVerticalDataCache):
(WebCore::FontCache::verticalData):
(WebCore::FontCache::purgeInactiveFontData): Also remove the cached vertical data when removing a font.
(WebCore::FontCache::invalidate): Clear also the vertical data.
* platform/graphics/FontCache.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::openTypeTable): Deleted.
* platform/graphics/opentype/OpenTypeVerticalData.h: Remove the m_inFontCache member that is now unused.

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

4 years agoRemove UsePointersEvenForNonNullableObjectArguments keyword
youenn.fablet@crf.canon.fr [Fri, 29 Apr 2016 08:29:13 +0000 (08:29 +0000)]
Remove UsePointersEvenForNonNullableObjectArguments keyword
https://bugs.webkit.org/show_bug.cgi?id=156844

Reviewed by Darin Adler.

No change of behavior.

* bindings/scripts/CodeGenerator.pm:
(ShouldPassWrapperByReference): Removed UsePointersEvenForNonNullableObjectArguments support.
* bindings/scripts/IDLAttributes.txt: Removed UsePointersEvenForNonNullableObjectArguments.

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

4 years agoFetchResponse should return a ReadableStream even if disturbed
youenn.fablet@crf.canon.fr [Fri, 29 Apr 2016 08:15:10 +0000 (08:15 +0000)]
FetchResponse should return a ReadableStream even if disturbed
https://bugs.webkit.org/show_bug.cgi?id=156911

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/response/response-stream-disturbed-5-expected.txt: Rebasing test.

Source/WebCore:

Covered by rebased test.

* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::createReadableStreamSource): Asserting in case response is disturbed.
* bindings/js/JSFetchResponseCustom.cpp:
(WebCore::JSFetchResponse::body): Creating a locked empty readable stream if response is disturbed.
* bindings/js/ReadableStreamController.cpp:
(WebCore::createReadableStream): Constructing a readable stream even if source is null.
(WebCore::getReadableStreamReader): Retrieving the reader from a readable stream. Stream must not be locked.
* bindings/js/ReadableStreamController.h:

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

4 years agoImport W3C CSS WG tests for shadow DOM
rniwa@webkit.org [Fri, 29 Apr 2016 08:09:36 +0000 (08:09 +0000)]
Import W3C CSS WG tests for shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=157063

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported CSS WG's Scoping Level 1 tests from https://github.com/w3c/csswg-test
as of b2daa426addd5ccb8e9ce1c5d800f9d82603f1ec. Most of these tests are actually ours
except shadow-cascade-order-001.html.

* csswg-test: Added.
* csswg-test/css-scoping-1: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-rule-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-rule.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slot.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-rules-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak-expected.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html: Added.
* csswg-test/css-scoping-1/css-scoping-shadow-with-rules.html: Added.
* csswg-test/css-scoping-1/shadow-cascade-order-001-expected.txt: Added.
* csswg-test/css-scoping-1/shadow-cascade-order-001.html: Added.
* csswg-test/css-scoping-1/w3c-import.log: Added.

LayoutTests:

Remove tests that have been upstreamed and imported under imported/w3c/csswg-test/css-scoping-1.

* fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-assigned-node-with-before-after.html: Removed.
* fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-assigned-node-with-rules.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-functional-rule-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-functional-rule.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-rule-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-rule.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-with-before-after-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-host-with-before-after.html: Removed.
* fast/shadow-dom/css-scoping-shadow-invisible-slot-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-invisible-slot.html: Removed.
* fast/shadow-dom/css-scoping-shadow-root-hides-children-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-root-hides-children.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot-display-override-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot-display-override.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot-fallback-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot-fallback.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slot.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slotted-nested-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slotted-nested.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slotted-rule-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-slotted-rule.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-outside-rules-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-outside-rules.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-rules-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak-expected.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-rules-no-style-leak.html: Removed.
* fast/shadow-dom/css-scoping-shadow-with-rules.html: Removed.

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

4 years ago[GTK] Move WK2 shareable code out from gtk directories
csaavedra@igalia.com [Fri, 29 Apr 2016 07:46:11 +0000 (07:46 +0000)]
[GTK] Move WK2 shareable code out from gtk directories
https://bugs.webkit.org/show_bug.cgi?id=157135

Reviewed by Darin Adler.

Both NetworkProcessMain and InjectedBundle can go out from their respective gtk directories.

* NetworkProcess/gtk/NetworkProcessMainGtk.cpp:
(WebKit::NetworkProcessMainUnix): Deleted.
* NetworkProcess/soup/NetworkProcessMainSoup.cpp: Renamed from Source/WebKit2/NetworkProcess/gtk/NetworkProcessMainGtk.cpp.
(WebKit::NetworkProcessMainUnix):
* PlatformGTK.cmake: Update.
* WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: Renamed from Source/WebKit2/WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp.
(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):
* WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
(WebKit::InjectedBundle::initialize): Deleted.
(WebKit::InjectedBundle::setBundleParameter): Deleted.
(WebKit::InjectedBundle::setBundleParameters): Deleted.

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

4 years agoMove ResourceTiming behind a runtime flag
yoav@yoav.ws [Fri, 29 Apr 2016 07:33:02 +0000 (07:33 +0000)]
Move ResourceTiming behind a runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157133

Reviewed by Alex Christensen.

.:

* Source/cmake/WebKitFeatures.cmake: Remove the PERFORMANCE_TIMELINE build flag.

Source/JavaScriptCore:

* runtime/CommonIdentifiers.h: Added PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming as property names.

Source/WebCore:

Move the ResourceTiming API from being behind a build time flag to be behind an
off-by-default runtime flag, that can be turned on using internals.

Tests: fast/dom/Window/window-properties-performance-resource-timing.html
       http/tests/performance/performance-resource-timing-entries.html

* DerivedSources.make: Added idl files for PerformanceEntry, PerformanceEntryList and PerformanceResourceTiming.
* WebCore.xcodeproj/project.pbxproj: Added the various Performance* files to the project.
* bindings/generic/RuntimeEnabledFeatures.cpp: Added ResourceTiming as a runtime flag.
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h: Added ResourceTiming as a runtime flag.
(WebCore::RuntimeEnabledFeatures::setResourceTimingEnabled):
(WebCore::RuntimeEnabledFeatures::resourceTimingEnabled):
* bindings/js/JSPerformanceEntryCustom.cpp: Removed #if for ResourceTiming. Added build flag around UserTiming related h files.
(WebCore::toJS): Deleted.
* dom/EventNames.h: Renamed webkitresourcetimingbufferfull to resourcetimingbufferfull.
* loader/DocumentThreadableLoader.cpp: Replace #if for ResourceTiming with runtime flag.
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/ResourceLoadNotifier.cpp: Replace #if for ResourceTiming with runtime flag.
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
* loader/cache/CachedResourceLoader.cpp: Replace #if for ResourceTiming with runtime flag.
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::storeResourceTimingInitiatorInformation):
(WebCore::CachedResourceLoader::loadDone):
* loader/cache/CachedResourceLoader.h: Remove #if for ResourceTiming.
* page/Performance.cpp: Remove #if for ResourceTiming.
(WebCore::Performance::Performance): Removed #if for ResourceTiming related initialization.
(WebCore::Performance::webkitGetEntries): Renamed to getEntries.
(WebCore::Performance::webkitGetEntriesByType): Renamed to getEntriesByType.
(WebCore::Performance::webkitGetEntriesByName): Renamed to getEntriesByName.
* page/Performance.h: Remove #if for ResourceTiming.
* page/Performance.idl: Replace #if for ResourceTiming with runtime flag.
* page/PerformanceEntry.cpp: Remove the PERFORMANCE_TIMELINE build flag.
* page/PerformanceEntry.h: Remove the PERFORMANCE_TIMELINE build flag.
* page/PerformanceEntry.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
* page/PerformanceEntryList.cpp: Remove the PERFORMANCE_TIMELINE build flag.
* page/PerformanceEntryList.h: Remove the PERFORMANCE_TIMELINE build flag.
* page/PerformanceEntryList.idl: Replace the PERFORMANCE_TIMELINE build flag with runtime flag.
* page/PerformanceResourceTiming.cpp: Remove the RESOURCE_TIMING build flag.
* page/PerformanceResourceTiming.h: Remove the RESOURCE_TIMING build flag.
* page/PerformanceResourceTiming.idl: Replace the RESOURCE_TIMING build flag with runtime flag.
* testing/Internals.cpp: Add a method that enables ResourceTiming.
(WebCore::Internals::setResourceTimingSupport):
* testing/Internals.h: Add a method that enables ResourceTiming.
* testing/Internals.idl: Add a method that enables ResourceTiming.

LayoutTests:

Added tests that make sure ResourceTiming APIs are exposed and that resources
show up as entries in the performance timeline.

* fast/dom/Window/window-properties-performance-resource-timing-expected.txt: Added.
* fast/dom/Window/window-properties-performance-resource-timing.html: Added.
* fast/dom/Window/window-properties-performance.html: Removed "//;".
* http/tests/performance/performance-resource-timing-entries-expected.txt: Added.
* http/tests/performance/performance-resource-timing-entries.html: Added.

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

4 years agoDrop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
youenn.fablet@crf.canon.fr [Fri, 29 Apr 2016 07:18:30 +0000 (07:18 +0000)]
Drop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
https://bugs.webkit.org/show_bug.cgi?id=156905

Reviewed by Darin Adler.

Source/WebCore:

Removing UsePointersEvenForNonNullableObjectArguments from MediaStream, RTCPeerConnection and RTCRtpSender.
Updating methods to take references and making some related refactoring.

Test: fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html
Changes also covered by updated tests.

* Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::didAddTrack):
(WebCore::MediaStream::didRemoveTrack):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::send):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCDataChannel.idl:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::queuedSetLocalDescription):
(WebCore::RTCPeerConnection::queuedSetRemoteDescription):
(WebCore::RTCPeerConnection::queuedAddIceCandidate):
(WebCore::RTCPeerConnection::privateGetStats):
(WebCore::RTCPeerConnection::queuedCreateOffer): Deleted.
(WebCore::RTCPeerConnection::localDescription): Deleted.
(WebCore::RTCPeerConnection::currentLocalDescription): Deleted.
(WebCore::RTCPeerConnection::remoteDescription): Deleted.
(WebCore::RTCPeerConnection::currentRemoteDescription): Deleted.
(WebCore::RTCPeerConnection::signalingState): Deleted.
(WebCore::RTCPeerConnection::createDataChannel): Deleted.
(WebCore::RTCPeerConnection::close): Deleted.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCRtpReceiver.cpp:
(WebCore::RTCRtpReceiver::RTCRtpReceiver):
* Modules/mediastream/RTCRtpReceiver.h:
(WebCore::RTCRtpReceiver::create):
* Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::replaceTrack):
* Modules/mediastream/RTCRtpSender.h:
(WebCore::RTCRtpSender::create):
* Modules/mediastream/RTCRtpSender.idl:
* Modules/mediastream/RTCRtpSenderReceiverBase.h:
(WebCore::RTCRtpSenderReceiverBase::track):
(WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):

LayoutTests:

* fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt: Added.
* fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html: Added.
* fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebasing.
* fast/mediastream/RTCPeerConnection-add-removeTrack.html: Adding null/undefined tests for addTrack/removeTrack.
* fast/mediastream/RTCPeerConnection-datachannel.html: Adding test for send() method.
Test expectation is not rebased as test is timing out and marked as skip.

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

4 years agoRemove extraneous space characters from parameter list for RenderListBox::paintItem()
dbates@webkit.org [Fri, 29 Apr 2016 06:04:06 +0000 (06:04 +0000)]
Remove extraneous space characters from parameter list for RenderListBox::paintItem()
that were added in r200190 (https://bugs.webkit.org/show_bug.cgi?id=157117).

* rendering/RenderListBox.h:

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

4 years agoWeb Inspector: FormatterWorker fails to find "External/Esprima.js" in Production...
commit-queue@webkit.org [Fri, 29 Apr 2016 05:23:46 +0000 (05:23 +0000)]
Web Inspector: FormatterWorker fails to find "External/Esprima.js" in Production builds
https://bugs.webkit.org/show_bug.cgi?id=157162
<rdar://problem/25996556>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Timothy Hatcher.

Workers have relative include paths. FormatterWorker has an includes
that looks like:

    importScripts(...[
        "../../External/Esprima/esprima.js",
        ...
    ]);

In optimized builds (Production) the esprima resources are combined
and moved out of an External directory to "Esprima.js". We need to
update the path of this include in optimized builds.

This adds a script to do some basic rewrites of paths. It will also
produce a build error if there are any other External paths that
may have been unhandled.

* Scripts/copy-user-interface-resources.pl:
Run a new script to fix up the Worker imports for new pathes.

* Scripts/fix-worker-imports-for-optimized-builds.pl: Added.
(fixWorkerImportsInFile):
(fixWorkerImportsInDirectory):
Replace "/External/Esprima/esprima.js" with "/Esprima.js" in imports.
Fatal error for any unhandled "/External" lines that were not replaced.

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

4 years agoAX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRI...
jdiggs@igalia.com [Fri, 29 Apr 2016 01:30:34 +0000 (01:30 +0000)]
AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRIPT and ATK_ROLE_SUPERSCRIPT
https://bugs.webkit.org/show_bug.cgi?id=157158

Reviewed by Chris Fleizach.

Source/WebCore:

r200214 caused the sup and sub elements to be exposed as ATK_ROLE_STATIC.
While this exposure is much better than folding the text into the parent
element, ATK has roles for subscript and superscript, so use them instead.

The roles-exposed.html and roles-computedRoleString.html tests were updated
to reflect the new behavior.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isSubscriptStyleGroup):
(WebCore::AccessibilityObject::isSuperscriptStyleGroup):
* accessibility/AccessibilityObject.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

* platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated for new behavior.
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated for new behavior.

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

4 years agoUpdate WebKitSystemInterface to internal version 82799.
dino@apple.com [Fri, 29 Apr 2016 01:13:23 +0000 (01:13 +0000)]
Update WebKitSystemInterface to internal version 82799.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceElCapitan.a:
* libWebKitSystemInterfaceIOSDevice9.2.a:
* libWebKitSystemInterfaceIOSSimulator9.2.a:
* libWebKitSystemInterfaceYosemite.a:

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

4 years agoContent disappears on mouse over.
zalan@apple.com [Fri, 29 Apr 2016 01:11:17 +0000 (01:11 +0000)]
Content disappears on mouse over.
https://bugs.webkit.org/show_bug.cgi?id=157073
<rdar://problem/24389168>

Reviewed by Simon Fraser.

When a redundant inlinebox is found after constructing the line, we remove it from the tree.
The remove operation marks the ancestor tree dirty (and this newly constructed line is supposed to be clean).
This patch resets this dirty flag on the boxes all the way up to the rootlinebox.
Previously we only cleared the rootinlinebox and we ended up with dirty inlineflowboxes.

Source/WebCore:

Test: fast/text/text-node-remains-dirty-after-calling-surroundContents.html

* rendering/BidiRun.h:
(WebCore::BidiRun::setBox):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::constructLine):
(WebCore::RenderBlockFlow::removeLineBoxIfNeeded):
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionLineBox): Deleted.
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
(WebCore::RenderText::positionLineBox): Deleted.

LayoutTests:

* fast/text/text-node-remains-dirty-after-calling-surroundContents-expected.html: Added.
* fast/text/text-node-remains-dirty-after-calling-surroundContents.html: Added.

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

4 years agoAllow non-standard HTTP headers in WebSocket handshake
commit-queue@webkit.org [Fri, 29 Apr 2016 01:07:38 +0000 (01:07 +0000)]
Allow non-standard HTTP headers in WebSocket handshake
https://bugs.webkit.org/show_bug.cgi?id=157157

Patch by John Wilander <wilander@apple.com> on 2016-04-28
Reviewed by Brent Fulgham.

No new tests since https://bugs.webkit.org/show_bug.cgi?id=157095
tests that non-standard headers are allowed.

* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::readHTTPHeaders):
    Changed from fail to allow for unrecognized headers.
    This was the behavior before https://bugs.webkit.org/show_bug.cgi?id=155602.
* platform/network/HTTPHeaderNames.in:
    Removed whitelisted legacy headers since we now allow all non-standard headers.

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

4 years agoRemove unused bool parameter in CodeCache::getGlobalCodeBlock
commit-queue@webkit.org [Fri, 29 Apr 2016 00:53:30 +0000 (00:53 +0000)]
Remove unused bool parameter in CodeCache::getGlobalCodeBlock
https://bugs.webkit.org/show_bug.cgi?id=157156

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Mark Lam.

The bool parameter appears to be isArrowFunctionContext, but the method's
contents just get that property from the Executable, so the parameter is
unnecessary and unused.

* runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
* runtime/CodeCache.h:
* runtime/Executable.cpp:
(JSC::EvalExecutable::create):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createEvalCodeBlock):
* runtime/JSGlobalObject.h:

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

4 years agoRTL <select> popup menu is in the wrong location
dino@apple.com [Fri, 29 Apr 2016 00:41:32 +0000 (00:41 +0000)]
RTL <select> popup menu is in the wrong location
https://bugs.webkit.org/show_bug.cgi?id=157159
<rdar://problem/25894451>

Reviewed by Simon Fraser.

Source/WebKit/mac:

Make sure both the NSPopupMenuCell and the NSPopupMenu take
the text direction into account, and offset the position
of the menu slightly if we're in RTL mode.

Unfortunately our test infrastructure is unable to exercise
this because it runs without a window, and the popup menu
is not captured in the screenshot.

* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):

Source/WebKit2:

Make sure the NSPopupMenu takes the text direction
into account, and offset the position
of the menu slightly if we're in RTL mode.

Unfortunately our test infrastructure is unable to exercise
this because it runs without a window, and the popup menu
is not captured in the screenshot.

* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):

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

4 years agoMake sure we don't mishandle HTMLFrameOwnerElement lifecycle
bfulgham@apple.com [Thu, 28 Apr 2016 23:38:09 +0000 (23:38 +0000)]
Make sure we don't mishandle HTMLFrameOwnerElement lifecycle
https://bugs.webkit.org/show_bug.cgi?id=157040

Reviewed by Chris Dumez.

Source/WebCore:

Protect a couple of sites where event handling could result in the owning frame
being destroyed during execution.

Tested by fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html.

* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCommitLoad):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):

LayoutTests:

* fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash-expected.txt: Added.
* fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html: Added.
* fast/dom/HTMLAnchorElement/resources/iframe-with-anchor-crash.html: Added.

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

4 years ago[css-grid] Add CSS Grid Layout runtime flag
rego@igalia.com [Thu, 28 Apr 2016 23:13:59 +0000 (23:13 +0000)]
[css-grid] Add CSS Grid Layout runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157134

Reviewed by Simon Fraser.

Source/WebCore:

Add CSS Grid Layout runtime flag enabled by default.
Disable parsing of CSS Grid Layout properties
if the runtime flag is not enabled.
Expose runtime flag through internals to verify that
it's working as expected.

Test: fast/css-grid-layout/grid-disable.html

* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSGridLayoutEnabled):
(WebCore::RuntimeEnabledFeatures::isCSSGridLayoutEnabled):
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition):
(WebCore::CSSParser::parseGridPosition):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridGapShorthand):
(WebCore::CSSParser::parseGridTemplateColumns):
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns):
(WebCore::CSSParser::parseGridTemplateShorthand):
(WebCore::CSSParser::parseGridShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseSingleGridAreaLonghand):
(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::parseGridAutoFlow):
(WebCore::CSSParser::parseGridTemplateAreasRow):
(WebCore::CSSParser::parseGridTemplateAreas):
(WebCore::CSSParser::iscSSGridLayoutEnabled):
* css/CSSParser.h:
* css/CSSParserMode.h:
* dom/Document.cpp:
(WebCore::Document::isCSSGridLayoutEnabled):
* dom/Document.h:
* testing/Internals.cpp:
(WebCore::Internals::setCSSGridLayoutEnabled):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit/mac:

Add CSS Grid Layout runtime flag based on preferences,
enabled by default.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences isCSSGridLayoutEnabled]):
(-[WebPreferences setCSSGridLayoutEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add CSS Grid Layout runtime flag based on preferences,
enabled by default.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSGridLayoutEnabled):
(WKPreferencesGetCSSGridLayoutEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

LayoutTests:

Add test to verify that CSS Grid Layout is disabled if the flag is off.

* fast/css-grid-layout/grid-disable-expected.txt: Added.
* fast/css-grid-layout/grid-disable.html: Added.

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

4 years agoAX: superscript content exposed as plain text; VoiceOver does not speak or pause...
cfleizach@apple.com [Thu, 28 Apr 2016 23:12:37 +0000 (23:12 +0000)]
AX: superscript content exposed as plain text; VoiceOver does not speak or pause to make this understandable
https://bugs.webkit.org/show_bug.cgi?id=157122
<rdar://problem/21231487>

Reviewed by Daniel Bates.

Expose role types for subscript and superscript.

Modified: accessibility/mac/subroles-for-formatted-groups.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isStyleFormatGroup):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:
AX: superscript content exposed as plain text; VoiceOver does not speak or pause to make this understandable
https://bugs.webkit.org/show_bug.cgi?id=157122
<rdar://problem/21231487>

Reviewed by Daniel Bates.

* accessibility/mac/subroles-for-formatted-groups-expected.txt:
* accessibility/mac/subroles-for-formatted-groups.html:
* platform/mac/accessibility/accessibility/roles-exposed-expected.txt:
* accessibility/roles-computedRoleString-expected.txt:

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

4 years agohttps://bugs.webkit.org/show_bug.cgi?id=157140
simon.fraser@apple.com [Thu, 28 Apr 2016 22:55:27 +0000 (22:55 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=157140

Attempted to reduce the flakiness of this test by making the animation longer, to give
enough time for the iteration event to fire.

* animations/animation-events-not-cancelable.html:

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

4 years agoinspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
beidson@apple.com [Thu, 28 Apr 2016 22:10:59 +0000 (22:10 +0000)]
inspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
https://bugs.webkit.org/show_bug.cgi?id=157141

Reviewed by Alex Christensen.

Source/WebCore:

Test: inspector/indexeddb/deleteDatabaseNamesWithSpace.html

* platform/FileSystem.cpp:
(WebCore::decodeFromFilename): Advance iterator after decoding.

LayoutTests:

* inspector/indexeddb/deleteDatabaseNamesWithSpace-expected.txt: Added.
* inspector/indexeddb/deleteDatabaseNamesWithSpace.html: Added.

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

4 years agoAnother fix for the Apple Internal OS X build
dbates@webkit.org [Thu, 28 Apr 2016 21:41:19 +0000 (21:41 +0000)]
Another fix for the Apple Internal OS X build
<rdar://problem/25989808>

Reviewed by Anders Carlsson.

* WebView/WebPDFView.h:

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

4 years ago[JSC] re-implement String#padStart and String#padEnd in JavaScript
caitp@igalia.com [Thu, 28 Apr 2016 21:39:34 +0000 (21:39 +0000)]
[JSC] re-implement String#padStart and String#padEnd in JavaScript
https://bugs.webkit.org/show_bug.cgi?id=157146

Reviewed by Saam Barati.

* builtins/StringPrototype.js:
(repeatCharactersSlowPath):
(padStart):
(padEnd):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation): Deleted.
(JSC::repeatStringPattern): Deleted.
(JSC::padString): Deleted.
(JSC::stringProtoFuncPadEnd): Deleted.
(JSC::stringProtoFuncPadStart): Deleted.

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

4 years agoWeb Inspector: Tweak auto attach initialization on some platforms
commit-queue@webkit.org [Thu, 28 Apr 2016 21:28:10 +0000 (21:28 +0000)]
Web Inspector: Tweak auto attach initialization on some platforms
https://bugs.webkit.org/show_bug.cgi?id=157150
<rdar://problem/21222045>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-04-28
Reviewed by Timothy Hatcher.

* inspector/EventLoop.cpp:
(Inspector::EventLoop::cycle):
* inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):

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

4 years ago[JSC] Unify Math.pow() accross all tiers
benjamin@webkit.org [Thu, 28 Apr 2016 20:50:08 +0000 (20:50 +0000)]
[JSC] Unify Math.pow() accross all tiers
https://bugs.webkit.org/show_bug.cgi?id=157121

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-04-28
Reviewed by Geoffrey Garen.

My previous optimizations of DFG compile time have slowly
regressed Sunspider's math-partial-sums.

What is happenning is baseline used a thunk for Math.pow()
that has a special case for an exponent of -0.5, while
DFG/FTL have other special cases for other exponents.
The faster we get to DFG, the less time we spend in that fast
case for -0.5.

While looking into this, I discovered some correctness issues. Baseline
optimizes y=-0.5 by turning it into 1/sqrt(). DFG/FTL optimize constant
y=0.5 by turning it into sqrt(). The problem is sqrt() behaves differently
for -0 and -Infinity. With sqrt(), negative numbers are undefined,
and the result is NaN. With pow(), they have a result.

Something else that has bothered me for a while is that Math.pow()
with the same arguments give you different results in LLINT, Baseline,
and DFG/FTL. This seems a bit dangerous for numerical stability.

With this patch, I unify the behaviors for all tiers while keeping
the "special cases".

We have pow() that is super slow, but most callers don't need the
full power. We have:
-pow() with an exponent between 0 and 1000 is a fast path implemented
 by multiplication only.
-pow(x, 0.5) is sqrt with special checks for negative values.
-pow(x, -0.5) is sqrt with special checks for negative values.

The C++ implementation handles all those optimizations too. This ensure
you get the same results from LLINT to FTL.

The thunk is eliminated, it was producing incorrect results and only
optimized Sunspider's partial-sums.

DFG gets the optimized integer, 0.5 and -0.5 cases since those are important
for somewhat-hot code. DFG falls back to the C++ code for any non-obvious case.

FTL gets the full C++ implementation inlined in B3. B3 knows how to eliminate
all the dead cases so you get the best if your code is hot enough to reach FTL.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode): Deleted.
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToArithSqrt): Deleted.
* dfg/DFGNodeType.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::compileArithPowIntegerFastPath):
(JSC::DFG::SpeculativeJIT::compileArithPow):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArithPow):
* jit/ThunkGenerators.cpp:
(JSC::powThunkGenerator): Deleted.
* jit/ThunkGenerators.h:
* runtime/MathCommon.cpp:
(JSC::operationMathPow):
* runtime/MathCommon.h:
* runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic): Deleted.
* tests/stress/math-pow-stable-results.js: Added.
Getting consistent results when tiering up is new.
This test verify that results always remains the same as LLINT.

* tests/stress/math-pow-with-constants.js:
(testPowUsedAsSqrt):
(powUsedAsOneOverSqrt):
(testPowUsedAsOneOverSqrt):
(powUsedAsSquare):
(testPowUsedAsSquare):

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

4 years agoAdd ios-simulator baseline for fast/forms/select-non-native-rendering-direction.html
ryanhaddad@apple.com [Thu, 28 Apr 2016 20:31:12 +0000 (20:31 +0000)]
Add ios-simulator baseline for fast/forms/select-non-native-rendering-direction.html
https://bugs.webkit.org/show_bug.cgi?id=157112

Unreviewed test gardening.

* platform/ios-simulator/fast/forms/select-non-native-rendering-direction-expected.txt: Added.

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

4 years ago<rdar://problem/25986324> WebKit build broken with error: undeclared selector 'childV...
mitz@apple.com [Thu, 28 Apr 2016 19:52:16 +0000 (19:52 +0000)]
<rdar://problem/25986324> WebKit build broken with error: undeclared selector 'childViewControllerForWhitePointAdaptivityStyle'

Fixed the build by removing use of API that no longer does anything.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setupFullscreen): Revert to using a plain UIViewController.
(createFullScreenVideoRootViewControllerClass): Deleted.
(allocWebFullScreenVideoRootViewControllerInstance): Deleted.

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

4 years agoimported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html is failing on some...
youenn.fablet@crf.canon.fr [Thu, 28 Apr 2016 19:35:30 +0000 (19:35 +0000)]
imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html is failing on some bots
https://bugs.webkit.org/show_bug.cgi?id=157145

Unreviewed.

* TestExpectations: Marking imported/w3c/web-platform-tests/fetch/nosniff/stylesheet.html as failing and passing.

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

4 years agoREGRESSION(r200163): inspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
beidson@apple.com [Thu, 28 Apr 2016 19:22:21 +0000 (19:22 +0000)]
REGRESSION(r200163): inspector/indexeddb/requestDatabaseNames.html is flaky on Mac.
https://bugs.webkit.org/show_bug.cgi?id=157141

Unreviewed.

Add one more chunk of logging here to add even more supporting evidence to our theory.

* inspector/indexeddb/requestDatabaseNames-expected.txt:
* inspector/indexeddb/requestDatabaseNames.html:

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

4 years agoModern IDB: Reimplement Web Inspector code that was tied to Legacy IDB.
beidson@apple.com [Thu, 28 Apr 2016 18:47:20 +0000 (18:47 +0000)]
Modern IDB: Reimplement Web Inspector code that was tied to Legacy IDB.
https://bugs.webkit.org/show_bug.cgi?id=154686

Reviewed by Alex Christensen.

No new tests (Inspector folks will have to write them if they're possible).

* inspector/InspectorIndexedDBAgent.cpp: Reimplement missing functionality mostly with code that was
  removed in http://trac.webkit.org/changeset/197131/trunk/Source/WebCore/inspector/InspectorIndexedDBAgent.cpp

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

4 years agoFix the Apple Internal OS X build
dbates@webkit.org [Thu, 28 Apr 2016 18:41:50 +0000 (18:41 +0000)]
Fix the Apple Internal OS X build

Source/WebCore:

* platform/graphics/mac/PDFDocumentImageMac.mm:
(WebCore::PDFDocumentImage::drawPDFPage): Ignore deprecation warning for -[PDFPage drawWithBox:].

Source/WebKit/mac:

* WebView/WebPDFView.h: Import PDFKit for definition of protocol PDFViewDelegate.
Forward declare protocol PDFViewDelegate as appropriate. Mark WebPDFView as implementing
protocol PDFViewDelegate.
* WebView/WebPDFView.mm: Move import of PDFKit from here to the header.

Source/WebKit2:

* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPDFDocument:page:atPoint:]): Ignore deprecation warning for -[PDFPage drawWithBox:].
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage): Ditto.

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

4 years agoDebuggerScope::className() should not assert scope->isValid().
mark.lam@apple.com [Thu, 28 Apr 2016 18:18:58 +0000 (18:18 +0000)]
DebuggerScope::className() should not assert scope->isValid().
https://bugs.webkit.org/show_bug.cgi?id=157143

Reviewed by Keith Miller.

DebuggerScope::className() should not assert scope->isValid() because the
TypeProfiler logs objects it encounters, and may indirectly call
JSObject::calculatedClassName() on those objects later, thereby calling
DebuggerScope::className() on an invalidated DebuggerScope.

The existing handling in DebuggerScope::className() for an invalidated scope
(that returns a null string) is sufficient.

* debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::className):

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

4 years agoSkipping media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSec...
ryanhaddad@apple.com [Thu, 28 Apr 2016 17:58:12 +0000 (17:58 +0000)]
Skipping media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html
https://bugs.webkit.org/show_bug.cgi?id=155196

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

4 years agoDrop [UsePointersEvenForNonNullableObjectArguments] from MediaSource interfaces
youenn.fablet@crf.canon.fr [Thu, 28 Apr 2016 17:36:33 +0000 (17:36 +0000)]
Drop [UsePointersEvenForNonNullableObjectArguments] from MediaSource interfaces
https://bugs.webkit.org/show_bug.cgi?id=156904

Reviewed by Darin Adler.

Source/WebCore:

MediaSource::addSourceBuffer will now throw a TypeError if a null parameter is passed.
MediaSource::removeSourceBuffer will now throw a TypeError if a null parameter is passed.
SourceBuffer::appendBuffer will now throw a TypeError if a null parameter is passed.

Did some refactoring to use more references.

Covered by updated test.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::endOfStream):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBuffer):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::add):
(WebCore::SourceBufferList::remove):
* Modules/mediasource/SourceBufferList.h:

LayoutTests:

* http/tests/media/media-source/mediasource-addsourcebuffer.html: Changing expected exception to TypeError.
* http/tests/media/media-source/mediasource-append-buffer-expected.txt:
* http/tests/media/media-source/mediasource-append-buffer.html: Checking passing null or undefined to
appendBuffer, addSourceBuffer and removeSourceBuffer.
* media/media-source/media-source-addsourcebuffer-expected.txt:
* media/media-source/media-source-addsourcebuffer.html: Removing redundant test.

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

4 years agoDrop [UsePointersEvenForNonNullableObjectArguments] from Node
youenn.fablet@crf.canon.fr [Thu, 28 Apr 2016 17:35:45 +0000 (17:35 +0000)]
Drop [UsePointersEvenForNonNullableObjectArguments] from Node
https://bugs.webkit.org/show_bug.cgi?id=156978

Reviewed by Chris Dumez.

No change of behavior.

* dom/Node.idl: Marking some parameters nullable.

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

4 years agoSet overflow: hidden on ::-webkit-media-controls in mediaControlsApple.css
adachan@apple.com [Thu, 28 Apr 2016 17:34:24 +0000 (17:34 +0000)]
Set overflow: hidden on ::-webkit-media-controls in mediaControlsApple.css
https://bugs.webkit.org/show_bug.cgi?id=157110

Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html

This matches what we do in mediaControlsiOS.css.

* Modules/mediacontrols/mediaControlsApple.css:
(::-webkit-media-controls):

LayoutTests:

The style change caused an image only failure for fast/regions/inline-block-inside-anonymous-overflow.html.
Mark that test as image-failure-only and add a new test that's basically a copy of inline-block-inside-anonymous-overflow.html
with the default controls covered so we can still catch layout regressions related to flowing content from region to region.

* fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls-expected.html: Added.
* fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html: Added.
* platform/ios-simulator/TestExpectations:
fast/regions/inline-block-inside-anonymous-overflow.html is already marked as image-failure-only
so this new test needs to be marked too.
* platform/mac/TestExpectations:
* platform/mac/media/media-document-audio-repaint-expected.txt:
* platform/mac/media/video-zoom-controls-expected.txt:
Rebaseline test due to style change in mediaControlsApple.css.

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

4 years ago[Fetch API] Import remaining fetch tests
youenn.fablet@crf.canon.fr [Thu, 28 Apr 2016 17:12:42 +0000 (17:12 +0000)]
[Fetch API] Import remaining fetch tests
https://bugs.webkit.org/show_bug.cgi?id=156914

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* resources/ImportExpectations:
* web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-basic-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-basic.html: Added.
* web-platform-tests/fetch/api/cors/cors-basic.js: Added.
* web-platform-tests/fetch/api/cors/cors-cookies-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-cookies-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-cookies.html: Added.
* web-platform-tests/fetch/api/cors/cors-cookies.js: Added.
* web-platform-tests/fetch/api/cors/cors-filtering-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-filtering-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-filtering.html: Added.
* web-platform-tests/fetch/api/cors/cors-filtering.js: Added.
* web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-multiple-origins-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-multiple-origins.html: Added.
* web-platform-tests/fetch/api/cors/cors-multiple-origins.js: Added.
* web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-no-preflight-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-no-preflight.html: Added.
* web-platform-tests/fetch/api/cors/cors-no-preflight.js: Added.
* web-platform-tests/fetch/api/cors/cors-origin-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-origin-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-origin-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-origin.html: Added.
* web-platform-tests/fetch/api/cors/cors-origin.js: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-redirect-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-redirect.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-redirect.js: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-referrer.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-referrer.js: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-status-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-status-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-status.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-status.js: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-preflight-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight.html: Added.
* web-platform-tests/fetch/api/cors/cors-preflight.js: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials.html: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials.js: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-worker-expected.txt: Added.
* web-platform-tests/fetch/api/cors/cors-redirect-worker.html: Added.
* web-platform-tests/fetch/api/cors/cors-redirect.html: Added.
* web-platform-tests/fetch/api/cors/cors-redirect.js: Added.
* web-platform-tests/fetch/api/cors/w3c-import.log: Added.
* web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Added.
* web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt: Added.
* web-platform-tests/fetch/api/credentials/authentication-basic-worker.html: Added.
* web-platform-tests/fetch/api/credentials/authentication-basic.html: Added.
* web-platform-tests/fetch/api/credentials/authentication-basic.js: Added.
* web-platform-tests/fetch/api/credentials/cookies-expected.txt: Added.
* web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt: Added.
* web-platform-tests/fetch/api/credentials/cookies-worker.html: Added.
* web-platform-tests/fetch/api/credentials/cookies.html: Added.
* web-platform-tests/fetch/api/credentials/cookies.js: Added.
* web-platform-tests/fetch/api/credentials/w3c-import.log: Added.
* web-platform-tests/fetch/api/policies/csp-blocked-expected.txt: Added.
* web-platform-tests/fetch/api/policies/csp-blocked-worker-expected.txt: Added.
* web-platform-tests/fetch/api/policies/csp-blocked-worker.html: Added.
* web-platform-tests/fetch/api/policies/csp-blocked.html: Added.
* web-platform-tests/fetch/api/policies/csp-blocked.html.headers: Added.
* web-platform-tests/fetch/api/policies/csp-blocked.js: Added.
* web-platform-tests/fetch/api/policies/csp-blocked.js.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer-worker-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer-worker.html: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer.html: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer.html.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer.js: Added.
* web-platform-tests/fetch/api/policies/referrer-no-referrer.js.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-origin-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-origin-worker.html: Added.
* web-platform-tests/fetch/api/policies/referrer-origin.html: Added.
* web-platform-tests/fetch/api/policies/referrer-origin.html.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-origin.js: Added.
* web-platform-tests/fetch/api/policies/referrer-origin.js.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker-expected.txt: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url-worker.html: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url.html: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url.html.headers: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url.js: Added.
* web-platform-tests/fetch/api/policies/referrer-unsafe-url.js.headers: Added.
* web-platform-tests/fetch/api/policies/w3c-import.log: Added.
* web-platform-tests/fetch/api/redirect/redirect-count-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-count-worker.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-count.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-count.js: Added.
* web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-location-worker.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-location.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-location.js: Added.
* web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-method-worker.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-method.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-method.js: Added.
* web-platform-tests/fetch/api/redirect/redirect-mode-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-mode-worker-expected.txt: Added.
* web-platform-tests/fetch/api/redirect/redirect-mode-worker.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-mode.html: Added.
* web-platform-tests/fetch/api/redirect/redirect-mode.js: Added.
* web-platform-tests/fetch/api/redirect/w3c-import.log: Added.
* web-platform-tests/fetch/nosniff/image-expected.txt: Added.
* web-platform-tests/fetch/nosniff/image.html: Added.
* web-platform-tests/fetch/nosniff/importscripts-expected.txt: Added.
* web-platform-tests/fetch/nosniff/importscripts.html: Added.
* web-platform-tests/fetch/nosniff/importscripts.js: Added.
* web-platform-tests/fetch/nosniff/parsing-nosniff-expected.txt: Added.
* web-platform-tests/fetch/nosniff/parsing-nosniff.html: Added.
* web-platform-tests/fetch/nosniff/resources/css.py: Added.
* web-platform-tests/fetch/nosniff/resources/image.py: Added.
* web-platform-tests/fetch/nosniff/resources/js.py: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-first.asis: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-last.asis: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-no-x.asis: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-quoted-single.asis: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-quoted.asis: Added.
* web-platform-tests/fetch/nosniff/resources/nosniff-uppercase.asis: Added.
* web-platform-tests/fetch/nosniff/resources/w3c-import.log: Added.
* web-platform-tests/fetch/nosniff/resources/worker.py: Added.
* web-platform-tests/fetch/nosniff/script-expected.txt: Added.
* web-platform-tests/fetch/nosniff/script.html: Added.
* web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Added.
* web-platform-tests/fetch/nosniff/stylesheet.html: Added.
* web-platform-tests/fetch/nosniff/w3c-import.log: Added.
* web-platform-tests/fetch/nosniff/worker.html: Added.

LayoutTests:

* TestExpectations: Skipping new fetch worker tests as they are
causing other tests to crash (see bug 156737 and bug 157068).
* platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Added.
* platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Added.

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

4 years ago[JSC] implement spec changes for String#padStart and String#padEnd
caitp@igalia.com [Thu, 28 Apr 2016 17:05:17 +0000 (17:05 +0000)]
[JSC] implement spec changes for String#padStart and String#padEnd
https://bugs.webkit.org/show_bug.cgi?id=157139

Reviewed by Keith Miller.

Previously, if the fill string was the empty string, it was treated as a
single U+0020 SPACE character. Now, if this occurs, the original string
is returned instead.

Change was discussed at TC39 in March [1], and is reflected in new
test262 tests for the feature.

[1] https://github.com/tc39/tc39-notes/blob/master/es7/2016-03/march-29.md#stringprototypepadstartpadend

* runtime/StringPrototype.cpp:
(JSC::padString):
* tests/es6/String.prototype_methods_String.prototype.padEnd.js:
(TestFillerToString):
(TestFillerEmptyString):
* tests/es6/String.prototype_methods_String.prototype.padStart.js:
(TestFillerToString):
(TestFillerEmptyString):

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

4 years agoFix mistake in custom elements runtime flag
rego@igalia.com [Thu, 28 Apr 2016 17:03:14 +0000 (17:03 +0000)]
Fix mistake in custom elements runtime flag
https://bugs.webkit.org/show_bug.cgi?id=157130

Reviewed by Chris Dumez.

The methods for the custom elements runtime flag were using
the Shadow DOM flag instead.
These methods were introduced in r197921,
it seems it was just a copy&paste mistake.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCustomElementsEnabled):
(WKPreferencesGetCustomElementsEnabled):

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

4 years ago[Web IDL] Specify default values for optional parameters of type 'DOMString'
cdumez@apple.com [Thu, 28 Apr 2016 15:41:46 +0000 (15:41 +0000)]
[Web IDL] Specify default values for optional parameters of type 'DOMString'
https://bugs.webkit.org/show_bug.cgi?id=157116

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack-expected.txt:

Source/WebCore:

Specify default values for optional parameters of type 'DOMString' so
that this default value is used if the parameter is either omitted or
undefined. For parameters of type DOMString and that are not nullable,
the bindings generator now uses the null string as implicit default
value (unless explicitely specified otherwise in the IDL). This
simplifies the IDL a little and makes it a bit less confusing (it is
a bit weird to see something like "optional DOMString param = null",
considering the parameter is not nullable). I also think it makes
more sense to use the null String() rather than Optional<String> in
this case.

No new tests, existing tests were rebaselined.

* Modules/encryptedmedia/MediaKeys.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor): Deleted.
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/websockets/WebSocket.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(CanUseWTFOptionalForParameter): Deleted.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue): Deleted.
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
* bindings/scripts/test/TestNamedConstructor.idl:
* css/FontFaceSet.cpp:
* css/FontFaceSet.h:
* css/FontFaceSet.idl:
* css/WebKitCSSMatrix.idl:
* dom/Comment.idl:
* dom/DOMImplementation.idl:
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::clearData):
(WebCore::DataTransfer::getData): Deleted.
* dom/DataTransfer.h:
* dom/Document.idl:
* dom/Text.idl:
* fileapi/FileReader.cpp:
(WebCore::FileReader::readAsDataURL): Deleted.
* fileapi/FileReader.h:
* fileapi/FileReaderSync.h:
* fileapi/FileReaderSync.idl:
* html/HTMLAudioElement.idl:
* html/HTMLInputElement.idl:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addTextTrack):
Throw a TypeError if the 'kind' parameter is not a valid string in the
TextTrackKind enum:
https://html.spec.whatwg.org/multipage/embedded-content.html#htmlmediaelement

We previously threw a SYNTAX_ERR instead of a TypeError in such case,
which was not correct as per Web IDL specification.

* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setShadow):
* html/canvas/CanvasRenderingContext2D.h:
* page/Performance.idl:

LayoutTests:

* media/track/w3c/interfaces/HTMLMediaElement/addTextTrack.html:
Resync test from upstream so that it expects a TypeError to be thrown if a
wrong 'kind' parameter is passed, and so that it expects the label / language
parameter to have the empty string as default value.

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

4 years agoCrash for non-static super property call in derived class constructor
gskachkov@gmail.com [Thu, 28 Apr 2016 15:12:10 +0000 (15:12 +0000)]
Crash for non-static super property call in derived class constructor
https://bugs.webkit.org/show_bug.cgi?id=157089

Reviewed by Darin Adler.
Source/JavaScriptCore:

Added tdz check of the 'this' before access to the 'super' for FunctionCallBracketNode,
the same as it was done for FunctionCallDotNode.

* bytecompiler/NodesCodegen.cpp:
(JSC::FunctionCallBracketNode::emitBytecode):

LayoutTests:

* js/class-syntax-super-expected.txt:
* js/script-tests/class-syntax-super.js:

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