WebKit-https.git
3 years agoREGRESSION (r196383): Drop down CSS menus not working on cnet.com, apmex.com
antti@apple.com [Mon, 1 Aug 2016 18:00:48 +0000 (18:00 +0000)]
REGRESSION (r196383): Drop down CSS menus not working on cnet.com, apmex.com
https://bugs.webkit.org/show_bug.cgi?id=160390

Reviewed by Simon Fraser.

Source/WebCore:

The case here is that we have a rule like

    .enableHover:hover .child { ... }

and the "enableHover" class is added dynamically. The class change invalidation optimization code would figure out
that nothing needs to be invalidated as the class change doesn't make the rule match (since :hover doesn't match).

However for event driven hover to actually work the hover element needs to have its childrenAffectedByHover bit set.
This bits is set when the selector match is attempted, whether it actually matches or not. Since we optimized away
the style invalidation we never set the bit either.

Fix by treating :hover as always matching (==ignored) when collecting rules for invalidation optimization purposes.
Dynamic pseudo elements are already treated this way for similar reasons.

Test: fast/selectors/hover-invalidation-descendant-dynamic.html

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):

    Match always in CollectingRulesIgnoringVirtualPseudoElements mode (now slightly misnamed).

    This mode is used for optimization purposes in StyleInvalidationAnalysis (which we care about here) and
    StyleSharingResolver. The change is fine for both.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):

    Same change for the slow path selector checker.

LayoutTests:

* fast/selectors/hover-invalidation-descendant-dynamic-expected.txt: Added.
* fast/selectors/hover-invalidation-descendant-dynamic.html: Added.

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

3 years agoFunction Call on NULL Object
commit-queue@webkit.org [Mon, 1 Aug 2016 17:49:57 +0000 (17:49 +0000)]
Function Call on NULL Object
https://bugs.webkit.org/show_bug.cgi?id=160325

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-01
Reviewed by Darin Adler.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage): Changed removeAllWebNotificationPermissions() call to static function call.
* WebKitTestRunner/InjectedBundle/TestRunner.h: Made all web-notification functions static.

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

3 years ago[Cocoa] Freeze Objective-C bindings and stop autogenerating them: Step 1 - Convert...
darin@apple.com [Mon, 1 Aug 2016 17:49:50 +0000 (17:49 +0000)]
[Cocoa] Freeze Objective-C bindings and stop autogenerating them: Step 1 - Convert a single file
https://bugs.webkit.org/show_bug.cgi?id=160386

Reviewed by Anders Carlsson.

No behavior change, no tests changed. I tested this locally by putting "#error" into the
files in the DerivedSources directory to make sure the build doesn't use those files even
if there are stale copies still sitting there.

Moving the bindings from WebCore to the legacy part of WebKit is something we also want to
do, but that is quite challenging to do one file at a time, so we will do that later.

For this first file, I did some hand edits to make the code in a the file a little less
peculiar. It's still awkward to have all those JSMainThreadNullState in there; should double
check that we really need them.

An important follow up step will be to cut down on the bindings. We have lots of bindings
that are only in the Private.h header, and it would be good to find a way to cut down on those.
And on iOS we would like eliminate these bindings entirely since they are not API there.

* DerivedSources.make: Moved HTMLTextAreaElement from a list we use for both JavaScript and
Objective-C DOM bindings to a list we use only for JavaScript bindings.
* WebCore.xcodeproj/project.pbxproj: Removed references to generated DOMHTMLTextAreaElement
files and instead reference the checked-in copies.
* bindings/objc/DOMHTMLTextAreaElement.h: Added.
* bindings/objc/DOMHTMLTextAreaElement.mm: Added.
* bindings/objc/DOMHTMLTextAreaElementInternal.h: Added.
* bindings/objc/DOMHTMLTextAreaElementPrivate.h: Added.

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

3 years agoIntroduce a RenderMathMLFencedOperator class
fred.wang@free.fr [Mon, 1 Aug 2016 07:44:20 +0000 (07:44 +0000)]
Introduce a RenderMathMLFencedOperator class
https://bugs.webkit.org/show_bug.cgi?id=160245

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-01
Reviewed by Darin Adler.

We introduce a class to handle all the code specific to anonymous mfenced operators. In
particular many members of the RenderMathMLOperator class are going to be removed while
fixing bug 156537 but they may still need to stored and exposed in some way by mfenced
operators.

No new tests, behavior is unchanged.

* CMakeLists.txt: Add RenderMathMLFencedOperator.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLFencedOperator): Function to allow casting to
RenderMathMLFencedOperator.
* rendering/mathml/RenderMathMLFenced.cpp: Use RenderMathMLFencedOperator instead of
RenderMathMLOperator and use the new name updateOperatorContent.
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h: Use RenderMathMLFencedOperator instead of
RenderMathMLOperator.
* rendering/mathml/RenderMathMLFencedOperator.cpp: New class derived from RenderMathMLOperator
(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Init form and operator
flags with the specified parameters and init the text content.
(WebCore::RenderMathMLFencedOperator::updateOperatorContent): We move the
RenderMathMLOperator::updateTokenContent function used by anonymous operators here. It is
renamed to avoid build errors due to conflicts with the other
RenderMathMLOperator::updateTokenContent function.
* rendering/mathml/RenderMathMLFencedOperator.h: New class for anonymous mfenced operators
with getter and setter for the m_textContent. Also override RenderMathMLFencedOperator to
allow casting to RenderMathMLFencedOperator.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator): Simplify the constructors. Some
initializations is moved in RenderMathMLOperator.h while other code is moved to
RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::textContent): No need to handle the anonymous case here since
it is handled in RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::updateTokenContent): We delete the version used for anonymous
operators and move it into RenderMathMLFencedOperator.
* rendering/mathml/RenderMathMLOperator.h: Make the class and some members overridable and
exposed to the derived RenderMathMLFencedOperator class. We also move initialization of some
members here.

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

3 years agoWe should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
keith_miller@apple.com [Mon, 1 Aug 2016 07:28:55 +0000 (07:28 +0000)]
We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
https://bugs.webkit.org/show_bug.cgi?id=160372

Rubber stamped by Geoffrey Garen.

This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
a new top level directory, JSTests. Having the tests in the Source directory
was both confusing and inconvenient for people that just want to checkout the
source code of WebKit. Since there is no other obvious place to put all the
JavaScript tests a new top level directory seemed the most sensible.

* JSTests/: Copied from Source/JavaScriptCore/tests.
* Source/JavaScriptCore/tests/: Deleted.
* Scripts/import-test262-tests:
* Scripts/run-javascriptcore-tests:
* Scripts/update-javascriptcore-test-res:

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

3 years agoReduce the number of ResourceRequest copies in DocumentThreadableLoader
commit-queue@webkit.org [Mon, 1 Aug 2016 07:02:35 +0000 (07:02 +0000)]
Reduce the number of ResourceRequest copies in DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160338

Patch by Youenn Fablet <youennf@gmail.com> on 2016-08-01
Reviewed by Darin Adler.

No observable change of behavior.

Updating one of CachedResourceReques constructor to take a ResourceRequest&&.
This allows reducing a ResourceRequest copy in DocumentThreadableLoader.
Updating DocumentLoader and MediaResourceLoader accordingly (future optimization steps may look at making these
two loaders more efficient with regards to Resource Request).

Updating ThreadableLoader to take a ResourceRequest&&.
This allows reducing the number of copies in DocumentThreadableLoader.
Updating clients of ThreadableLoader accordingly.

* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start):
* dom/Document.cpp:
(WebCore::Document::didLoadResourceSynchronously):
* dom/Document.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):
* dom/ScriptExecutionContext.h:
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start):
* inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/DocumentThreadableLoader.h:
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):
* loader/ThreadableLoader.cpp:
(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):
* loader/ThreadableLoader.h:
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
* loader/WorkerThreadableLoader.h:
(WebCore::WorkerThreadableLoader::create):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::CachedResourceRequest):
* loader/cache/CachedResourceRequest.h:
* page/EventSource.cpp:
(WebCore::EventSource::connect):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):

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

3 years agoFetch Response built-ins should use @makeThisTypeError
commit-queue@webkit.org [Mon, 1 Aug 2016 06:00:56 +0000 (06:00 +0000)]
Fetch Response built-ins should use @makeThisTypeError
https://bugs.webkit.org/show_bug.cgi?id=160290

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-31
Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

Fixed type error checks.
Making use of @makeThisTypeError to have the correct error message.
Updating arrayBuffer, blob, json and text to return rejected promises in lieu of throwing
in case the 'this' value is not q Response object.

* Modules/fetch/FetchResponse.js:
(clone): Updated instanceof check and making use of @makeThisTypeError.
(arrayBuffer): Ditto.
(blob): Ditto.
(formData): Ditto.
(json): Ditto.
(text): Ditto.

LayoutTests:

* fetch/fetch-error-messages-expected.txt:
* fetch/fetch-error-messages.html:

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

3 years ago[GTK] Implement missing WebCore::moveFile() using GLib functions
commit-queue@webkit.org [Mon, 1 Aug 2016 05:43:57 +0000 (05:43 +0000)]
[GTK] Implement missing WebCore::moveFile() using GLib functions
https://bugs.webkit.org/show_bug.cgi?id=160363

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2016-07-31
Reviewed by Carlos Garcia Campos.

* platform/glib/FileSystemGlib.cpp:
(WebCore::moveFile): Function added.

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

3 years ago[JSC] Should check Test262Error correctly
utatane.tea@gmail.com [Mon, 1 Aug 2016 00:37:14 +0000 (00:37 +0000)]
[JSC] Should check Test262Error correctly
https://bugs.webkit.org/show_bug.cgi?id=159862

Reviewed by Saam Barati.

Test262Error in the harness does not have "name" property.
Rather than checking "name" property, peforming `instanceof` is better to check the class of the exception.

* jsc.cpp:
(checkUncaughtException):
* runtime/JSObject.h:
* tests/test262.yaml:

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

3 years agoDrop [StrictTypeChecking] in cases where it is a no-op
cdumez@apple.com [Sun, 31 Jul 2016 23:36:20 +0000 (23:36 +0000)]
Drop [StrictTypeChecking] in cases where it is a no-op
https://bugs.webkit.org/show_bug.cgi?id=160387

Reviewed by Darin Adler.

Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
[StrictTypeChecking] only has an impact when used on operation parameters of
string types and is currently used as a workaround for bugs in our overload
resolution algorithm.

* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCRtpSender.idl:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/TestTypedefs.idl:
* html/canvas/ANGLEInstancedArrays.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGL2RenderingContext.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLLoseContext.idl:
* html/canvas/WebGLRenderingContextBase.idl:
* svg/SVGAngle.idl:
* svg/SVGColor.idl:
* svg/SVGLength.idl:
* svg/SVGLengthList.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumberList.idl:
* svg/SVGPaint.idl:
* svg/SVGPathSegList.idl:
* svg/SVGPoint.idl:
* svg/SVGPointList.idl:
* svg/SVGStringList.idl:
* svg/SVGTransform.idl:
* svg/SVGTransformList.idl:

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

3 years agoAX: Add a check for touch event listener on iOS accessibility object
n_wang@apple.com [Sun, 31 Jul 2016 20:02:54 +0000 (20:02 +0000)]
AX: Add a check for touch event listener on iOS accessibility object
https://bugs.webkit.org/show_bug.cgi?id=160388

Reviewed by Chris Fleizach.

Source/WebCore:

dispatchTouchEvent() is not working correctly within AXPress() sometimes. Need to
investigate it more in the future. Now, adding a check for the touch event listener
on the object's node so that iOS can handle dispatching the touch event instead.

Test: accessibility/ios-simulator/has-touch-event-listener.html

* accessibility/AccessibilityObject.h:
* accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
(WebCore::AccessibilityObject::hasTouchEventListener):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(appendStringToResult):
(-[WebAccessibilityObjectWrapper _accessibilityHasTouchEventListener]):
(-[WebAccessibilityObjectWrapper _accessibilityValueIsAutofilled]):

Tools:

* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::boolAttributeValue):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::boolAttributeValue):

LayoutTests:

* accessibility/ios-simulator/has-touch-event-listener-expected.txt: Added.
* accessibility/ios-simulator/has-touch-event-listener.html: Added.

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

3 years ago[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
commit-queue@webkit.org [Sun, 31 Jul 2016 08:31:14 +0000 (08:31 +0000)]
[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
https://bugs.webkit.org/show_bug.cgi?id=160364

Patch by Adrian Perez de Castro <aperez@igalia.com> on 2016-07-31
Reviewed by Carlos Garcia Campos.

The WebKit::SharedMemory::create() function is missing for the Unix
platform, which is also used by the GTK+ port. The latter is going
to need this in place to use the common content filtering code.

* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::accessModeMMap): Added helper function to convert a
SharedMemory::Protection value into flags useable with mmap().
(WebKit::SharedMemory::create): Added. Implementation reuses code
existing in the SharedMemory::allocate() function.
(WebKit::SharedMemory::allocate): Reimplemented in terms of
SharedMemory::create().

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

3 years ago[ES6] Module binding can be exported by multiple names
utatane.tea@gmail.com [Sun, 31 Jul 2016 07:04:57 +0000 (07:04 +0000)]
[ES6] Module binding can be exported by multiple names
https://bugs.webkit.org/show_bug.cgi?id=160343

Reviewed by Saam Barati.

ES6 Module can export the same local binding by using multiple names.
For example,

    ```
    var value = 42;

    export { value };
    export { value as value2 };
    ```

Currently, we only allowed one local binding to be exported with one name. So, in the above case,
the local binding "value" is exported as "value2" and "value" name is not exported. This is wrong.

To fix this issue, we collect the correspondence (local name => exported name) to the local bindings
in the parser. Previously, we only maintained the exported local bindings in the parser. And utilize
this information when creating the export entries in ModuleAnalyzer.

And this patch also moves ModuleScopeData from the Scope object to the Parser class since exported
names should be managed per-module, not per-scope.

This change fixes several test262 failures.

* JavaScriptCore.xcodeproj/project.pbxproj:
* parser/ModuleAnalyzer.cpp:
(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):
(JSC::ModuleAnalyzer::exportedBinding): Deleted.
(JSC::ModuleAnalyzer::declareExportAlias): Deleted.
* parser/ModuleAnalyzer.h:
* parser/ModuleScopeData.h: Copied from Source/JavaScriptCore/parser/ModuleAnalyzer.h.
(JSC::ModuleScopeData::create):
(JSC::ModuleScopeData::exportedBindings):
(JSC::ModuleScopeData::exportName):
(JSC::ModuleScopeData::exportBinding):
* parser/Nodes.cpp:
(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):
* parser/Nodes.h:
(JSC::ModuleProgramNode::moduleScopeData):
* parser/NodesAnalyzeModule.cpp:
(JSC::ExportDefaultDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule): Deleted.
* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):
* parser/Parser.h:
(JSC::Parser::exportName):
(JSC::Parser<LexerType>::parse):
(JSC::ModuleScopeData::create): Deleted.
(JSC::ModuleScopeData::exportedBindings): Deleted.
(JSC::ModuleScopeData::exportName): Deleted.
(JSC::ModuleScopeData::exportBinding): Deleted.
(JSC::Scope::Scope): Deleted.
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::moduleScopeData): Deleted.
(JSC::Scope::setIsModule): Deleted.
* tests/modules/aliased-names.js: Added.
* tests/modules/aliased-names/main.js: Added.
(change):
* tests/stress/modules-syntax-error-with-names.js:
(export.Cocoa):
(SyntaxError.Cannot.export.a.duplicate.name):
* tests/test262.yaml:

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

3 years agoAssertion failure while setting the length of an ArrayClass array.
mark.lam@apple.com [Sun, 31 Jul 2016 01:08:37 +0000 (01:08 +0000)]
Assertion failure while setting the length of an ArrayClass array.
https://bugs.webkit.org/show_bug.cgi?id=160381
<rdar://problem/27328703>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

When setting large length values, we're currently treating ArrayClass as a
ContiguousIndexingType array.  This results in an assertion failure.  This is
now fixed.

There are currently only 2 places where we create arrays with indexing type
ArrayClass: ArrayPrototype and RuntimeArray.  The fix in JSArray:;setLength()
takes care of ArrayPrototype.

RuntimeArray already checks for the setting of its length property, and will
throw a RangeError.  Hence, there's no change is needed for the RuntimeArray.
Instead, I added some test cases ensure that the check and throw behavior does
not change without notice.

* runtime/JSArray.cpp:
(JSC::JSArray::setLength):
* tests/stress/array-setLength-on-ArrayClass-with-large-length.js: Added.
(toString):
(assertEqual):
* tests/stress/array-setLength-on-ArrayClass-with-small-length.js: Added.
(toString):
(assertEqual):

LayoutTests:

Test that RuntimeArrays will throw an error if we try to set its length.

* platform/mac/fast/dom/wrapper-classes-objc.html:
* platform/mac/fast/dom/wrapper-classes-objc-expected.txt:

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

3 years agoUnreviewed, rebaseline bindings tests.
cdumez@apple.com [Sun, 31 Jul 2016 00:46:03 +0000 (00:46 +0000)]
Unreviewed, rebaseline bindings tests.

* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_set_property): Deleted.
(webkit_dom_test_obj_get_property): Deleted.
(webkit_dom_test_obj_class_init): Deleted.
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::jsTestObjStrictFloat): Deleted.
(WebCore::setJSTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::setJSTestObjStrictFloat): Deleted.
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj strictTypeCheckingAttribute]): Deleted.
(-[DOMTestObj setStrictTypeCheckingAttribute:]): Deleted.
(-[DOMTestObj strictFloat]): Deleted.
(-[DOMTestObj setStrictFloat:]): Deleted.

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

3 years agoEnable strict type checking for Window dictionary members
cdumez@apple.com [Sun, 31 Jul 2016 00:29:19 +0000 (00:29 +0000)]
Enable strict type checking for Window dictionary members
https://bugs.webkit.org/show_bug.cgi?id=160356

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:

Source/WebCore:

Enable strict type checking for Window dictionary members. Technically,
we should do strict type checking of all wrapper types but this patch
focuses on Window because it is common to pass a Window dictionary
member to Event constructors.

By strict type checking, I mean that we should throw a TypeError is
the value is not null/undefined and does not implement the Window
interface:
- http://heycam.github.io/webidl/#es-interface

Firefox and Chrome comply with the specification already.

No new tests, updated / rebaselined existing tests.

* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):

LayoutTests:

Update existing tests to reflect behavior change.

* fast/events/constructors/composition-event-constructor-expected.txt:
* fast/events/constructors/composition-event-constructor.html:
* fast/events/constructors/focus-event-constructor-expected.txt:
* fast/events/constructors/focus-event-constructor.html:
* fast/events/constructors/keyboard-event-constructor-expected.txt:
* fast/events/constructors/keyboard-event-constructor.html:
* fast/events/constructors/mouse-event-constructor.html:
* fast/events/constructors/ui-event-constructor-expected.txt:
* fast/events/constructors/ui-event-constructor.html:
* fast/events/constructors/wheel-event-constructor.html:
* platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
* platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:

* resources/js-test-pre.js:
Add a shouldThrowErrorName() utility function that is similar to shouldThrow()
but only checks the error name instead of the full error message. Checking
only the error name has the benefit of working across browsers and facilitating
refactoring of error messages.

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

3 years ago[WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
cdumez@apple.com [Sun, 31 Jul 2016 00:23:21 +0000 (00:23 +0000)]
[WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160375

Reviewed by Darin Adler.

Source/WebCore:

Enable strict type checking for nullable attribute setters of wrapper types:
- http://heycam.github.io/webidl/#es-nullable-type
- http://heycam.github.io/webidl/#es-interface

For such attributes, if the JS tries to assign a value that is not null /
undefined and does not have the expected wrapper type, then we now throw a
TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps identify
bugs in JavaScript code.

No new tests, updated existing tests.

* Modules/webaudio/AudioBufferSourceNode.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjTestNullableObjAttr):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
* bindings/scripts/test/TestObj.idl:
* dom/Document.idl:
* html/HTMLTableElement.idl:
* svg/SVGAngle.idl:
* svg/SVGAnimatedBoolean.idl:
* svg/SVGAnimatedEnumeration.idl:
* svg/SVGAnimatedInteger.idl:
* svg/SVGAnimatedNumber.idl:
* svg/SVGLength.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumber.idl:
* svg/SVGPathSegArcAbs.idl:
* svg/SVGPathSegArcRel.idl:
* svg/SVGPathSegCurvetoCubicAbs.idl:
* svg/SVGPathSegCurvetoCubicRel.idl:
* svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
* svg/SVGPathSegCurvetoCubicSmoothRel.idl:
* svg/SVGPathSegCurvetoQuadraticAbs.idl:
* svg/SVGPathSegCurvetoQuadraticRel.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
* svg/SVGPathSegLinetoAbs.idl:
* svg/SVGPathSegLinetoHorizontalAbs.idl:
* svg/SVGPathSegLinetoHorizontalRel.idl:
* svg/SVGPathSegLinetoRel.idl:
* svg/SVGPathSegLinetoVerticalAbs.idl:
* svg/SVGPathSegLinetoVerticalRel.idl:
* svg/SVGPathSegMovetoAbs.idl:
* svg/SVGPathSegMovetoRel.idl:
* svg/SVGPoint.idl:
* svg/SVGPreserveAspectRatio.idl:
* svg/SVGRect.idl:

LayoutTests:

Rebaseline / update existing tests to reflect behavior change.

* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
* fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
* webaudio/convolver-setBuffer-null-expected.txt:
* webaudio/convolver-setBuffer-null.html:

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

3 years agomacOS Sierra test result gardening for media/video-loop.html.
ap@apple.com [Sat, 30 Jul 2016 21:08:57 +0000 (21:08 +0000)]
macOS Sierra test result gardening for media/video-loop.html.

* platform/mac/TestExpectations:

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

3 years agomacOS Sierra test result gardening.
ap@apple.com [Sat, 30 Jul 2016 20:30:01 +0000 (20:30 +0000)]
macOS Sierra test result gardening.

* platform/mac-wk1/TestExpectations:

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

3 years ago[Xcode] WebKit.framework is touched on incremental build even if nothing’s changed
mitz@apple.com [Sat, 30 Jul 2016 19:27:23 +0000 (19:27 +0000)]
[Xcode] WebKit.framework is touched on incremental build even if nothing’s changed
https://bugs.webkit.org/show_bug.cgi?id=160383

Reviewed by Tim Horton.

* WebKit2.xcodeproj/project.pbxproj: Removed the output files listed under the
  Copy iOS Sandbox Profiles for Manual Sandboxing script build phase, because it doesn’t
  produce those files on macOS. With no outputs listed, the script will still run every
  time, but the fact that it has run won’t trigger touching the framework.

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

3 years agoSynchronous preflight should check for successful responses
commit-queue@webkit.org [Sat, 30 Jul 2016 19:27:09 +0000 (19:27 +0000)]
Synchronous preflight should check for successful responses
https://bugs.webkit.org/show_bug.cgi?id=159350

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-30
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/xmlhttprequest/access-control-preflight-not-successful.html

* loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::doPreflight): Adding successful response check for synchronous
preflighting.

LayoutTests:

* http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
* http/tests/xmlhttprequest/access-control-preflight-not-successful.html: Added, not all tests are passing as CORS checks.
for redirections are not well supported for synchronous loading.
* http/tests/xmlhttprequest/resources/status-404-without-body.php:

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

3 years agoUnreviewed: add myself to the reviewers list.
rego@igalia.com [Sat, 30 Jul 2016 14:16:37 +0000 (14:16 +0000)]
Unreviewed: add myself to the reviewers list.

* Scripts/webkitpy/common/config/contributors.json:

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

3 years ago[WebIDL] Enable strict type checking for operations' nullable parameters of wrapper...
cdumez@apple.com [Sat, 30 Jul 2016 08:35:06 +0000 (08:35 +0000)]
[WebIDL] Enable strict type checking for operations' nullable parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160374

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Enable strict type checking for operations' nullable parameters of
wrapper types to comply with the Web IDL specification:
- http://heycam.github.io/webidl/#es-nullable-type
- http://heycam.github.io/webidl/#es-interface

For such parameters, if the JS passes a value that is not null /
undefined and does not have the expected wrapper type, then we now
throw a TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps
identify bugs in JavaScript code.

No new tests, rebaselined existing tests.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapper):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolver):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod): Deleted.
(WebCore::jsTestObjPrototypeFunctionOrange): Deleted.

LayoutTests:

Update / rebaseline existing tests to reflect behavior change. Also fix
several bugs in tests that became obvious now that we throw.

* editing/execCommand/indent-pre-expected.txt:
* editing/execCommand/indent-pre.html:
* editing/selection/4895428-2.html:
* editing/selection/move-by-word-visually-null-box.html:
* fast/dom/DOMImplementation/detached-doctype.html:
* fast/dom/MutationObserver/observe-attributes.html:
* fast/dom/Node/contains-method-expected.txt:
* fast/dom/Node/script-tests/contains-method.js:
* fast/dom/Window/webkitConvertPoint.html:
* fast/dom/adopt-node-crash-2.html:
* fast/dom/incompatible-operations-expected.txt:
* fast/dom/incompatible-operations.html:
* fast/events/selectstart-by-arrow-keys.html:
* fast/images/image-copy-memory-usage.html:
* fast/xsl/xslt-processor-expected.txt:
* http/tests/misc/webtiming-cross-origin-and-back1.html:
* platform/mac/fast/dom/Window/webkitConvertPoint-expected.txt:
* svg/custom/unicode-in-tspan-multi-svg-crash.html:

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

3 years agoUndo r203939, and copy over a rule that clips the logos.
ap@apple.com [Sat, 30 Jul 2016 06:39:37 +0000 (06:39 +0000)]
Undo r203939, and copy over a rule that clips the logos.

Sierra wasn't the only logo without transparency.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

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

3 years agoThe Sierra asset at build.webkit.org/dashboard/images/Sierra*.png has a white background
commit-queue@webkit.org [Sat, 30 Jul 2016 04:42:09 +0000 (04:42 +0000)]
The Sierra asset at build.webkit.org/dashboard/images/Sierra*.png has a white background
https://bugs.webkit.org/show_bug.cgi?id=160377

Patch by Alan Sien Wei Hshieh <hshieh@apple.com> on 2016-07-29
Reviewed by Brian Weinstein.

Update assets to remove the white background and use a transparent background instead.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:

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

3 years agoANGLE: Fix global constructors and exit-time destructors
ddkilzer@apple.com [Sat, 30 Jul 2016 03:22:19 +0000 (03:22 +0000)]
ANGLE: Fix global constructors and exit-time destructors
<https://webkit.org/b/160332>

Reviewed by Darin Adler.

* Configurations/Base.xcconfig:
- Add warning flags.

* src/common/angleutils.cpp:
(FormatString):
* src/common/angleutils.h:
(MakeStaticString):
* src/common/debug.cpp:
* src/common/mathutil.cpp:
(gl::g_sharedexp_max):
(gl::convertRGBFloatsTo999E5):
* src/compiler/translator/ShaderLang.cpp:
(ShGetUniformRegisterMap):
* src/libANGLE/Caps.cpp:
(gl::TextureCapsMap::get):
* src/libANGLE/Device.cpp:
(egl::GetDeviceSet):
* src/libANGLE/Display.cpp:
(egl::Display::getClientExtensionString):
* src/libANGLE/formatutils.cpp:
(gl::BuildFormatMap):
(gl::BuildInternalFormatInfoMap):
(gl::GetInternalFormatMap):
(gl::BuildAllSizedInternalFormatSet):
(gl::GetSizedInternalFormat):
(gl::GetAllSizedInternalFormats):
* src/libANGLE/validationES3.cpp:
(gl::BuildES3FormatSet):
(gl::ValidateTexImageFormatCombination):
(gl::BuildSizedEffectiveInternalFormatList):
(gl::BuildUnsizedEffectiveInternalFormatList):
(gl::GetEffectiveInternalFormat):
(gl::BuildValidES3CopyTexImageCombinations):
(gl::IsValidES3CopyTexImageCombination):
- Fix global constructors and exit-time destructors.

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

3 years agoTypedArray super constructor has some incompatabilities
keith_miller@apple.com [Sat, 30 Jul 2016 02:02:48 +0000 (02:02 +0000)]
TypedArray super constructor has some incompatabilities
https://bugs.webkit.org/show_bug.cgi?id=160369

Reviewed by Filip Pizlo.

This patch fixes the length proprety of the TypedArray super constructor.
Additionally, the TypedArray super constructor should no longer be callable.

Also, this patch fixes the expected result of some test262 tests.

* runtime/JSTypedArrayViewConstructor.cpp:
(JSC::JSTypedArrayViewConstructor::finishCreation):
(JSC::constructTypedArrayView):
(JSC::JSTypedArrayViewConstructor::getCallData):
* tests/test262.yaml:

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

3 years agoIgnore most check-webkit-style checks for ANGLE project
ddkilzer@apple.com [Sat, 30 Jul 2016 01:25:31 +0000 (01:25 +0000)]
Ignore most check-webkit-style checks for ANGLE project
<https://webkit.org/b/160333>

Reviewed by Daniel Bates.

* Scripts/webkitpy/style/checker.py: Ignore all checkers except:
- No tabs.
- No spaces at the end of lines.
- No carriage returns (DOS line endings).

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

3 years agoWindow's named properties should be exposed on a WindowProperties object in its prototype
cdumez@apple.com [Sat, 30 Jul 2016 01:08:41 +0000 (01:08 +0000)]
Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:
- http://heycam.github.io/webidl/#named-properties-object

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.
* bindings/js/JSDOMWindowProperties.cpp: Added.
(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):
* bindings/js/JSDOMWindowProperties.h: Added.
(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

* fast/dom/Window/es52-globals-expected.txt:
Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

* fast/loader/window-clearing-expected.txt:
Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

* http/tests/security/window-named-proto-expected.txt:
* http/tests/security/window-named-valueOf-expected.txt:
Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

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

3 years agoMarking http/tests/xmlhttprequest/workers/methods-async.html as flaky on ios-simulato...
ryanhaddad@apple.com [Sat, 30 Jul 2016 00:54:10 +0000 (00:54 +0000)]
Marking http/tests/xmlhttprequest/workers/methods-async.html as flaky on ios-simulator release WK2
https://bugs.webkit.org/show_bug.cgi?id=160368

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

3 years agoRebaseline fast/block/float/overhanging-tall-block.html for Sierra.
ryanhaddad@apple.com [Sat, 30 Jul 2016 00:39:43 +0000 (00:39 +0000)]
Rebaseline fast/block/float/overhanging-tall-block.html for Sierra.

Unreviewed test gardening.

* platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.png: Renamed from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.png.
* platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.txt.
* platform/mac/TestExpectations:
* platform/mac/fast/block/float/overhanging-tall-block-expected.txt:

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

3 years agoCrash under HTMLMediaElement::{resolve, reject}PendingPlayPromises() when playback...
dbates@webkit.org [Sat, 30 Jul 2016 00:30:13 +0000 (00:30 +0000)]
Crash under HTMLMediaElement::{resolve, reject}PendingPlayPromises() when playback is interrupted
https://bugs.webkit.org/show_bug.cgi?id=160366
<rdar://problem/27317407>

Reviewed by Eric Carlson.

Source/WebCore:

Fixes a crash/assertion failure in DeferredWrapper::{resolve, rejectWithValue}() caused by a Promise
being settled twice. In particular, if a system interruption occurs when media.play() is invoked
the returned Promise may ultimately be settled twice upon cessation of the interruption.

A Promise can be settled (resolved) exactly once. When a system interruption occurs media
playback is paused and resumes on cessation of the interruption. Currently we also immediately
reject the Promise p retuned by media.play() if the interruption occurs during its invocation.
So, when we resume playback on cessation of an interruption we try to resolve p again. But a
Promise can only be resolved once and hence we violate the assertions that p has both a valid
reference to a JSPromiseDeferred object and a reference to the global object of the page.

Tests: media/non-existent-video-playback-interrupted.html
       media/video-playback-interrupted.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play): Modified to reject the Promise and return immediately if
playInternal() returns false.
(WebCore::HTMLMediaElement::playInternal): Treat an interruption as success and return true
so that HTMLMediaElement::play() adds the Promise to the end of the list of pending promises.
We treat an interruption as a success because we will resume playback (assuming the media
can be loaded and is well-formed) upon cessation of the interruption and therefore can either
fulfill or reject the Promise object returned by media.play().

LayoutTests:

* media/non-existent-video-playback-interrupted-expected.txt: Added.
* media/non-existent-video-playback-interrupted.html: Added.
* media/video-playback-interrupted-expected.txt: Added.
* media/video-playback-interrupted.html: Added.

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

3 years ago[iOS] HTMLMediaElement::updateVolume() calls MediaPlayer::volume() on null media...
dbates@webkit.org [Sat, 30 Jul 2016 00:13:49 +0000 (00:13 +0000)]
[iOS] HTMLMediaElement::updateVolume() calls MediaPlayer::volume() on null media player
https://bugs.webkit.org/show_bug.cgi?id=160353

Reviewed by Eric Carlson.

Using testing functions HTMLMediaElement::updateVolume() can be called on a <video> element
without an associated video. We should support this usage on iOS just as we do for non-iOS
ports.

The use of testing functions to call HTMLMediaElement::updateVolume() on a <video> element
without an associated video is demonstrated by the test LayoutTests/media/video-muted-after-setting-page-muted-state.html.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateVolume):

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

3 years agoLand test expectations for rdar://problem/27611932.
ryanhaddad@apple.com [Sat, 30 Jul 2016 00:11:32 +0000 (00:11 +0000)]
Land test expectations for rdar://problem/27611932.

* platform/mac-wk1/TestExpectations:

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

3 years agoMedia controls are not displayed for some autoplaying videos at certain browser dimen...
wenson_hsieh@apple.com [Sat, 30 Jul 2016 00:11:27 +0000 (00:11 +0000)]
Media controls are not displayed for some autoplaying videos at certain browser dimensions
https://bugs.webkit.org/show_bug.cgi?id=160360
<rdar://problem/27179484>

Reviewed by Myles C. Maxfield.

Source/WebCore:

Previously, if a video's aspect ratio fell outside of the range [0.5, 1.8], we would
not consider it main content and would subsequently not show media controls for it.
This meant that on many websites that scale video dimensions to match the mainframe,
if the mainframe is too wide (e.g. full bounds on a widescreen display) we would not
consider the video to be main content. To fix this, we only consider aspect ratio to
be a requirement if the video does not already take up most of the space in the
mainframe.

Covered by two new TestWebKitAPI unit tests.

* html/MediaElementSession.cpp:
(WebCore::isElementLargeRelativeToMainFrame):
(WebCore::isElementLargeEnoughForMainContent):

Tools:

Adds two tests verifying that videos may be considered main content as long as they
are large enough and cover a majority of the mainframe's viewport.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/full-size-autoplaying-video-with-audio.html: Added.
* TestWebKitAPI/Tests/WebKit2Cocoa/skinny-autoplaying-video-with-audio.html: Added.

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

3 years agoTest gardening on ios-simualtor after some media tests were unskipped in r203906.
ryanhaddad@apple.com [Sat, 30 Jul 2016 00:07:37 +0000 (00:07 +0000)]
Test gardening on ios-simualtor after some media tests were unskipped in r203906.

Unreviewed test gardening.

* platform/ios-simulator/TestExpectations:
* platform/ios-simulator/media/audio-controls-rendering-expected.txt: Added.
* platform/ios-simulator/media/audio-repaint-expected.txt: Added.
* platform/ios-simulator/media/controls-strict-expected.txt: Added.
* platform/ios-simulator/media/controls-styling-strict-expected.txt: Added.
* platform/ios-simulator/media/controls-without-preload-expected.txt: Added.
* platform/ios-simulator/media/media-controls-clone-expected.txt: Added.
* platform/ios-simulator/media/track/track-cue-rendering-horizontal-expected.txt: Added.
* platform/ios-simulator/media/track/track-cue-rendering-vertical-expected.txt: Added.
* platform/ios-simulator/media/video-aspect-ratio-expected.txt: Added.
* platform/ios-simulator/media/video-controls-captions-trackmenu-expected.txt: Added.
* platform/ios-simulator/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Added.
* platform/ios-simulator/media/video-controls-captions-trackmenu-localized-expected.txt: Added.
* platform/ios-simulator/media/video-controls-captions-trackmenu-sorted-expected.txt: Added.
* platform/ios-simulator/media/video-controls-rendering-expected.txt: Added.
* platform/ios-simulator/media/video-display-toggle-expected.txt: Added.
* platform/ios-simulator/media/video-empty-source-expected.txt: Added.
* platform/ios-simulator/media/video-layer-crash-expected.txt: Added.
* platform/ios-simulator/media/video-no-audio-expected.txt: Added.
* platform/ios-simulator/media/video-transformed-expected.txt: Added.
* platform/ios-simulator/media/video-volume-slider-expected.txt: Added.
* platform/ios-simulator/media/video-zoom-controls-expected.txt: Added.
* platform/ios-simulator/media/video-zoom-expected.txt: Added.

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

3 years agoUndefined Behavior in JSValue cast from NaN
commit-queue@webkit.org [Fri, 29 Jul 2016 23:42:08 +0000 (23:42 +0000)]
Undefined Behavior in JSValue cast from NaN
https://bugs.webkit.org/show_bug.cgi?id=160322

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-07-29
Reviewed by Mark Lam.

JSValues can be constructed from doubles, and in some cases, are deliberately constructed with NaN values.

In circumstances where NaN is bound through the default JSValue constructor, however, an undefined conversion
to int32_t occurs.  While the subsequent if statement should fail and construct the JSValue through the explicit
double constructor, given that the deliberate use of NaN is fairly common, it seems that the jsNaN() function
should immediately call the explicit double constructor both for efficiency and to prevent inadvertent
suppressing of any other bugs which may be instantiating a JSValue with a NaN double.

* runtime/JSCJSValueInlines.h:
(JSC::jsNaN): Explicit double construction for NaN JSValues to avoid undefined behavior.

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

3 years agoDo not set negative rate on AVSampleBufferRenderSynchronizer.
zalan@apple.com [Fri, 29 Jul 2016 23:41:54 +0000 (23:41 +0000)]
Do not set negative rate on AVSampleBufferRenderSynchronizer.
https://bugs.webkit.org/show_bug.cgi?id=160326
<rdar://problem/27355214>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble):

LayoutTests:

Negative rate is not supported at the moment.

* http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control-expected.txt: Added.
* http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html: Added.

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

3 years agoRefactor DFG::Node::hasLocal() to accessesStack()
msaboff@apple.com [Fri, 29 Jul 2016 22:04:02 +0000 (22:04 +0000)]
Refactor DFG::Node::hasLocal() to accessesStack()
https://bugs.webkit.org/show_bug.cgi?id=160357

Reviewed by Filip Pizlo.

Refactoring in preparation for using register arguments for JavaScript calls.

Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
use guards stack operation logic associated with the Node's VariableAccessData.

The hasVariableAccessData() check now implies no more than the node has a
VariableAccessData and nothing about its use of that data to coordinate stack
accesses.

* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
* dfg/DFGLiveCatchVariablePreservationPhase.cpp:
(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):
* dfg/DFGMaximalFlushInsertionPhase.cpp:
(JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):
* dfg/DFGNode.h:
(JSC::DFG::Node::containsMovHint):
(JSC::DFG::Node::accessesStack):
(JSC::DFG::Node::hasLocal): Deleted.
* dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
* dfg/DFGValidate.cpp:

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

3 years ago[macOS Sierra] Test gardening after r198859
mmaxfield@apple.com [Fri, 29 Jul 2016 22:01:03 +0000 (22:01 +0000)]
[macOS Sierra] Test gardening after r198859
https://bugs.webkit.org/show_bug.cgi?id=160358
<rdar://problem/26422274>

Reviewed by Zalan Bujtas.

RTL Scrollbars are not enabled on WK1, so this test should be marked in the
same way as all the other RTL scrollbars tests.

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

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

3 years ago[JSC] Use the same data structures for DFG and Air Liveness Analysis
benjamin@webkit.org [Fri, 29 Jul 2016 20:58:35 +0000 (20:58 +0000)]
[JSC] Use the same data structures for DFG and Air Liveness Analysis
https://bugs.webkit.org/show_bug.cgi?id=160346

Reviewed by Geoffrey Garen.

In Air, we minimized memory accesses during liveness analysis
with a couple of tricks:
-Use a single Sparse Set ADT for the live value of each block.
-Manipulate compact positive indices instead of hashing values.

This patch brings the same ideas to DFG.

This patch still uses the same fixpoint algorithms.
The reason is Edge's KillStatus used by other phases. We cannot
use a block-boundary liveness algorithm and update KillStatus
simultaneously. It's something I'll probably revisit at some point.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):
* dfg/DFGBasicBlock.h:
* dfg/DFGGraph.h:
(JSC::DFG::Graph::maxNodeCount):
(JSC::DFG::Graph::nodeAt):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::setLiveValues):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):
* dfg/DFGLivenessAnalysisPhase.cpp:
(JSC::DFG::LivenessAnalysisPhase::LivenessAnalysisPhase):
(JSC::DFG::LivenessAnalysisPhase::run):
(JSC::DFG::LivenessAnalysisPhase::processBlock):
(JSC::DFG::LivenessAnalysisPhase::addChildUse):
(JSC::DFG::LivenessAnalysisPhase::process): Deleted.

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

3 years agoWeb Inspector: Inactive/active network bar segments overlap when latency is zero
mattbaker@apple.com [Fri, 29 Jul 2016 20:43:42 +0000 (20:43 +0000)]
Web Inspector: Inactive/active network bar segments overlap when latency is zero
https://bugs.webkit.org/show_bug.cgi?id=160147
<rdar://problem/27516007>

Reviewed by Joseph Pecoraro.

TimelineRecordBar should hide the inactive segment when its duration
is less than the minimum displayable size. The active segment can
assume the whole width of the bar.

* UserInterface/Views/TimelineOverviewGraph.js:
(WebInspector.TimelineOverviewGraph.prototype.get secondsPerPixel):
Make secondsPerPixel available during TimelineRecordBars.refresh.

* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.refresh):
Check inactive duration against the minimum display size,
and add/remove DOM nodes and bar styles as needed.

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

3 years agoRemove a Sierra specific expectation for http/tests/navigation/forward-and-cancel...
ap@apple.com [Fri, 29 Jul 2016 20:29:20 +0000 (20:29 +0000)]
Remove a Sierra specific expectation for http/tests/navigation/forward-and-cancel.html,
we already have an identical one in platform/mac.

* platform/mac-wk1/TestExpectations:

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

3 years agoSkip some media tests that fail on iOS
dbates@webkit.org [Fri, 29 Jul 2016 20:18:32 +0000 (20:18 +0000)]
Skip some media tests that fail on iOS

* platform/ios-simulator/TestExpectations:

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

3 years ago[macOS Sierra] Unskip new emoji group candidates tests
mmaxfield@apple.com [Fri, 29 Jul 2016 19:46:33 +0000 (19:46 +0000)]
[macOS Sierra] Unskip new emoji group candidates tests
https://bugs.webkit.org/show_bug.cgi?id=160351
<rdar://problem/27430381>

Reviewed by Alexey Proskuryakov.

* platform/mac/TestExpectations:

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

3 years agoBackspace key removes only the rainbow from the rainbow flag
mmaxfield@apple.com [Fri, 29 Jul 2016 19:45:50 +0000 (19:45 +0000)]
Backspace key removes only the rainbow from the rainbow flag
https://bugs.webkit.org/show_bug.cgi?id=160349
<rdar://problem/27594995>

Reviewed by Dean Jackson.

Source/WebCore:

In r203330 I added support for new emoji group candidates. I accidentally
missed one of the new emoji code points.

Test: editing/deleting/delete-emoji.html

* platform/text/CharacterProperties.h:
(WebCore::isEmojiGroupCandidate):

LayoutTests:

* platform/mac/editing/deleting/delete-emoji-expected.txt:
* platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
* platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:

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

3 years agoGardening: removed unused variable.
mark.lam@apple.com [Fri, 29 Jul 2016 19:27:17 +0000 (19:27 +0000)]
Gardening: removed unused variable.

Not reviewed.

* TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::TEST):

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

3 years agoAX: Media controls accessibility improvement
n_wang@apple.com [Fri, 29 Jul 2016 19:11:29 +0000 (19:11 +0000)]
AX: Media controls accessibility improvement
https://bugs.webkit.org/show_bug.cgi?id=160223
<rdar://problem/27558003>

Reviewed by Eric Carlson.

Source/WebCore:

Changes in this patch:
1. Added a change observer for volume slider so that it will handle accessibility
   increment/decrement functions correctly.
2. Update the timer div's aria-label when time changes.
3. Added a keydown handler for left/right arrow adjusting the timeline, so that the
   value increment/decrement in a reasonable way.
4. Changed the mute button's role to checkbox since it only has on/off states.

Test: media/media-controls-accessibility.html

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.updatePictureInPictureButton):
(Controller.prototype.timelineStepFromVideoDuration):
(Controller.prototype.incrementTimelineValue):
(Controller.prototype.decrementTimelineValue):
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe):
(Controller.prototype.handleTimelineMouseUp):
(Controller.prototype.handleTimelineKeyDown):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMinButtonClicked):
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.updateVideoVolume):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.handleVolumeSliderChange):
(Controller.prototype.handleVolumeSliderMouseDown):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):
(Controller.prototype.updateVolume):

LayoutTests:

* accessibility/mac/video-volume-slider-accessibility-expected.txt:
* accessibility/mac/video-volume-slider-accessibility.html:
* accessibility/media-emits-object-replacement-expected.txt:
* media/media-controls-accessibility-expected.txt: Added.
* media/media-controls-accessibility.html: Added.
* platform/efl/accessibility/media-element-expected.txt:
* platform/efl/accessibility/media-emits-object-replacement-expected.txt:
* platform/gtk/accessibility/media-element-expected.txt:
* platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
* platform/mac/accessibility/media-element-expected.txt:

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

3 years agoREGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change...
nvasilyev@apple.com [Fri, 29 Jul 2016 18:58:23 +0000 (18:58 +0000)]
REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
https://bugs.webkit.org/show_bug.cgi?id=159646
<rdar://problem/27286338>

Reviewed by Brian Burg.

Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
share its width Element tab's sidebar.

TabContentView stores the width but TabBrowser manages saving and restoring it.
The same way collapsed sidebar state is handled.

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.set collapsed):
Don't change sidebar's width when sidebar panels change.

(WebInspector.Sidebar.prototype._recalculateWidth):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
Pass newWidth as an argument so it can be saved in TabBrowser.

* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel): Deleted.
(WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
(WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
Remove the per sidebar panel width setting that was added in r195456.

* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
Store details sidebar width on TabContentView.

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

3 years agoMake StringView capable of being passed or returned in only 2 registers.
mark.lam@apple.com [Fri, 29 Jul 2016 18:52:53 +0000 (18:52 +0000)]
Make StringView capable of being passed or returned in only 2 registers.
https://bugs.webkit.org/show_bug.cgi?id=160344

Reviewed by Geoffrey Garen.

We just need to #if out copy and move constructors and assignment operators.

After this change, the following test code:

    JS_EXPORT_PRIVATE StringView returnStringView(StringView sv)
    {
        return sv;
    }

... compiles to the following for x86_64:

    __ZN3JSC16returnStringViewEN3WTF10StringViewE:
    000000000093fb20        pushq   %rbp
    000000000093fb21        movq    %rsp, %rbp
    000000000093fb24        movq    %rdi, %rax // Copy from arg word 0 to ret word 0.
    000000000093fb27        movq    %rsi, %rdx // Copy from arg word 1 to ret word 1.
    000000000093fb2a        popq    %rbp
    000000000093fb2b        retq

... and this for arm64:

    __ZN3JSC16returnStringViewEN3WTF10StringViewE:
    0000000000818504        ret // arg word 0 and 1 are in the same regs as ret word 0 and 1.

* wtf/text/StringView.h:
(WTF::StringView::StringView):
(WTF::StringView::~StringView):
(WTF::StringView::operator=):

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

3 years agoRemove an unused line of code.
mark.lam@apple.com [Fri, 29 Jul 2016 18:47:52 +0000 (18:47 +0000)]
Remove an unused line of code.
https://bugs.webkit.org/show_bug.cgi?id=160350

Reviewed by Simon Fraser.

No new tests because there's no behavior change.  Just removing dead code.

SVGInlineTextBox::paintText() instantiates a local variable selectionTextRun.
Thanks to analysis by Said Abou-Hallawa, we know that selectionTextRun
was introduced in https://trac.webkit.org/changeset/61393, but was later
rendered unused in https://trac.webkit.org/changeset/62099 because we
switched to using paintTextWithShadows() with the selectionStyle.  Hence,
selectionTextRun can be removed.

* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintText):

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

3 years agoCrash with an Invalid Web Process IPC Message ID: WebPageProxy.AttributedStringForCha...
rniwa@webkit.org [Fri, 29 Jul 2016 18:45:15 +0000 (18:45 +0000)]
Crash with an Invalid Web Process IPC Message ID: WebPageProxy.AttributedStringForCharacterRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=160334
<rdar://problem/27078089>

Reviewed by Alexey Proskuryakov.

The crash is most likely caused by an MESSAGE_CHECK failure in WebPageProxy::attributedStringForCharacterRangeCallback
which marks the currently dispatching message was invalid inside the macro.

Make sure we never fail this check by sending an empty EditingRange in attributedSubstringForCharacterRangeAsync when
the editing range we're about to send to the UIProcess is invalid in WebProcess.

Unfortunately, no new tests since we don't have any reproduction and I couldn't spot any code path in which we end up
with an invalid EditingRage here with multiple inspection of the relevant code.

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):

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

3 years agoWeb Inspector: Assertion in NetworkGridContentView when updating data grid for the...
mattbaker@apple.com [Fri, 29 Jul 2016 18:40:27 +0000 (18:40 +0000)]
Web Inspector: Assertion in NetworkGridContentView when updating data grid for the first time
https://bugs.webkit.org/show_bug.cgi?id=160330
<rdar://problem/27600905>

Reviewed by Brian Burg.

When the first grid node is added, a view layout and current time update
are scheduled. A view layout occurring before the current time is updated
should be skipped, since the ruler end time hasn't been set.

* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.layout):
Skip layout until current time is updated.
(WebInspector.NetworkGridContentView.prototype._update):
Remove unused variables `startTime` and `endTime`. Don't force a layout
if the elapsed time is zero.

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

3 years agoRemove PassRef.h after r177259
ossy@webkit.org [Fri, 29 Jul 2016 18:38:58 +0000 (18:38 +0000)]
Remove PassRef.h after r177259
https://bugs.webkit.org/show_bug.cgi?id=160348

Reviewed by Andreas Kling.

Source/WebKit/win:

* WebCoreSupport/WebVisitedLinkStore.h:

Source/WTF:

* wtf/PassRef.h: Removed.

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

3 years agoUnskip some media tests on iOS when run in WebKitTestRunner
dbates@webkit.org [Fri, 29 Jul 2016 17:54:56 +0000 (17:54 +0000)]
Unskip some media tests on iOS when run in WebKitTestRunner

As a step towards running the various media tests on iOS, unskip LayoutTests/media
when run in WebKitTestRunner in the iOS Simulator. Incorporate the reasons we skip some
of the iOS tests from r189372. For now continue to skip LayoutTest/media when run in
DumpRenderTree in the iOS Simulator as many tests crash and are otherwise flaky. Further
investigation is required.

* platform/ios-simulator-wk1/TestExpectations:
* platform/ios-simulator/TestExpectations:

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

3 years agoAdd TestWebKitAPI support for interacting with media controls
wenson_hsieh@apple.com [Fri, 29 Jul 2016 17:49:03 +0000 (17:49 +0000)]
Add TestWebKitAPI support for interacting with media controls
https://bugs.webkit.org/show_bug.cgi?id=160342
<rdar://problem/27610246>

Reviewed by Beth Dakin.

Adds support for testing interaction with some media controls, as well as a basic test
verifying that media control teardown after interaction does not result in a crash.

* TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(-[WKWebView mouseDownAtPoint:]):
(-[WKWebView performAfterLoading:]):
(TestWebKitAPI::TEST):

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

3 years agoChange internal AVCaptureDeviceType typedef name
eric.carlson@apple.com [Fri, 29 Jul 2016 17:47:35 +0000 (17:47 +0000)]
Change internal AVCaptureDeviceType typedef name
https://bugs.webkit.org/show_bug.cgi?id=160345
<rdar://problem/27610935>

Reviewed by Dean Jackson.

* platform/mediastream/mac/AVAudioCaptureSource.mm:
(WebCore::AVAudioCaptureSource::create): AVCaptureDeviceType -> AVCaptureDeviceTypedef
(WebCore::AVAudioCaptureSource::AVAudioCaptureSource): Ditto.

* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::captureDeviceList): Ditto.
(WebCore::shouldConsiderDeviceInDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints): Ditto.
(WebCore::AVCaptureDeviceManager::deviceConnected): Ditto.
(WebCore::AVCaptureDeviceManager::deviceDisconnected): Ditto.
(-[WebCoreAVCaptureDeviceManagerObserver deviceDisconnected:]): Ditto.

* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::globaVideoCaptureSerialQueue): Ditto.
(WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Ditto.

* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.

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

3 years agocolor-gamut media query returns incorrect results
dino@apple.com [Fri, 29 Jul 2016 17:38:47 +0000 (17:38 +0000)]
color-gamut media query returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=160166
<rdar://problem/27537577>

Reviewed by Darin Adler.

While I was unable to reproduce the originator's issue,
we communicated via email and it might have been related
to a customized color space calibration on an external
display.

Anyway, I took this opportunity to update to use the
more appropriate API for detection on macOS Sierra.

Covered by the existing fast/media/mq-color-gamut.html test.

* platform/mac/PlatformScreenMac.mm:
(WebCore::screenSupportsExtendedColor): Use NSScreen canRepresentDisplayGamut.

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

3 years agoCrash Log Clobbering on Unbound Crashes
commit-queue@webkit.org [Fri, 29 Jul 2016 17:19:17 +0000 (17:19 +0000)]
Crash Log Clobbering on Unbound Crashes
https://bugs.webkit.org/show_bug.cgi?id=160198
<rdar://problem/27472618>

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-07-29
Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs): Fix header order.
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(TestResultWriter.output_filename): Only remove file extension if it is clearly a file extension.

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

3 years agoHTMLVideoElement with MediaStream src shows paused image when all video tracks are...
commit-queue@webkit.org [Fri, 29 Jul 2016 17:00:00 +0000 (17:00 +0000)]
HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-29
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
       fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

* fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks
that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the
frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.
* platform/mac-wk2/TestExpectations: MediaStream-video-element-video-tracks-disabled.html fails on El
Capitan due to incorrect behavior of AVSampleBufferDisplayLayer's API call flushAndRemoveImage.

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

3 years ago[Fetch API] Activate credentials mode
commit-queue@webkit.org [Fri, 29 Jul 2016 14:12:03 +0000 (14:12 +0000)]
[Fetch API] Activate credentials mode
https://bugs.webkit.org/show_bug.cgi?id=160292

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-29
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
* web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
* web-platform-tests/fetch/api/cors/cors-cookies.js: Fixin otherRemote computation.
(corsCookies): ensuring cookie clean-up is done in case of error before going to the next test.
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
* web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
* web-platform-tests/fetch/api/credentials/cookies-expected.txt:
* web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt:

Source/WebCore:

Covered by updated and rebased tests.

Previously the allowCredentials option was computed by DocumentThreadableLoader clients.
This option is really similar to the credentials flag in the fetch specification and should be handled at lower levels.
In the future, it might be good to retire that option.

In case of Omit mode, we need to explicitely disable cookies in DocumentThreadableLoader.
This should be updated so that ResourceLoader does it, depending on credential flag being set or not.

Updated DocumentThreadableLoader clients to only use FetchOptions::Credentials.
This allows to link code more easely to specification.

* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::start): Ditto.
* inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource): Ditto.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Computing allowCredentials from FetchOptions::Credentials.
(WebCore::DocumentThreadableLoader::loadRequest): Enabling cookie only if allowed to use credentials. This is in
particular useful for FetchOptions::Credentials::Omit mode.
* page/EventSource.cpp:
(WebCore::EventSource::connect): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.
* xml/XMLHttpRequest.cpp: Ditto.
(WebCore::XMLHttpRequest::createRequest):

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

3 years agoCrossOrigin preflight checker should compute the right Access-Control-Request-Headers...
commit-queue@webkit.org [Fri, 29 Jul 2016 11:08:04 +0000 (11:08 +0000)]
CrossOrigin preflight checker should compute the right Access-Control-Request-Headers value
https://bugs.webkit.org/show_bug.cgi?id=160028

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-29
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt:
* web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt:
* web-platform-tests/fetch/api/cors/cors-no-preflight.js:
(corsNoPreflight): fixing bugs in that test and adding new test to cover mime type checking that should ignore case.
* web-platform-tests/fetch/api/cors/cors-preflight-worker.html:
* web-platform-tests/fetch/api/cors/cors-preflight.html:
* web-platform-tests/fetch/api/cors/cors-preflight.js:
(corsPreflight): Adding safe headers to the request and checking more precisely sent Access-Control-Request-Headers header value.

Source/WebCore:

Covered by updated test.

Computing Access-Control-Request-Headers value according https://fetch.spec.whatwg.org/#cors-preflight-fetch:
- Remove safe headers
- lowercase header names
- sort lexicographically header names
The only difference is that we keep separating headers with ', ' instead of ',' as per the spec.
Also, some headers that might be safe are still marked as unsafe (DPR, Downlink...).

Moved setting of Origin header after preflighting, consistently with fetch spec.

* loader/CrossOriginAccessControl.cpp:
(WebCore::createAccessControlPreflightRequest): Implementing new computation of Access-Control-Request-Headers.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): Removing call to updateRequestForAccessControl (which sets Origin header value).
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Adding call to updateRequestForAccessControl.
(WebCore::DocumentThreadableLoader::preflightSuccess): Ditto.
* platform/network/HTTPParsers.cpp:
(WebCore::isCrossOriginSafeRequestHeader): Helper routine to implement https://fetch.spec.whatwg.org/#cors-safelisted-request-header.
* platform/network/HTTPParsers.h:

LayoutTests:

Rebasing regular tests. Also updating skipped worker tests.

* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
* platform/mac/TestExpectations:

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

3 years agoUpdate for contributors.json
ossy@webkit.org [Fri, 29 Jul 2016 09:58:41 +0000 (09:58 +0000)]
Update for contributors.json
https://bugs.webkit.org/show_bug.cgi?id=160294

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2016-07-29

* Scripts/webkitpy/common/config/contributors.json:

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

3 years agoUnreviewed, ByValInfo is only used in JIT enabled environments
utatane.tea@gmail.com [Fri, 29 Jul 2016 07:59:29 +0000 (07:59 +0000)]
Unreviewed, ByValInfo is only used in JIT enabled environments
https://bugs.webkit.org/show_bug.cgi?id=158908

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::stronglyVisitStrongReferences):

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

3 years agoParse the operator text on the MathMLOperatorElement class.
fred.wang@free.fr [Fri, 29 Jul 2016 07:21:57 +0000 (07:21 +0000)]
Parse the operator text on the MathMLOperatorElement class.
https://bugs.webkit.org/show_bug.cgi?id=160241

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-29
Reviewed by Darin Adler.

The text of the MathML operators is important to determine form or dictionary properties and
hence provide default values when no explicit attributes are privided. Since that text only
depends on the MathML DOM content, it makes sense to move its parsing into
MathMLOperatorElement. Anonymous operators created by the mfenced elements still need to be
handled specially and this will be true for all the operator properties that can just be
determined in MathMLOperatorElement. Hence in a follow-up patch we will introduce a class
to move all the code specific to mfenced in a class derived from RenderMathMLOperator while
we continue to move the corresponding code for non-anonymous into MathMLOperatorElement.

No new tests, behavior is unchanged.

* mathml/MathMLOperatorElement.cpp: Include header for hyphenMinus/minusSign characters.
(WebCore::MathMLOperatorElement::parseOperatorText): Move that code from rebuildTokenContent
(WebCore::MathMLOperatorElement::operatorText): Helper function to get the cached text.
(WebCore::MathMLOperatorElement::childrenChanged): Make the cached text dirty.
* mathml/MathMLOperatorElement.h: Update defitions and add a member for the operator text.
* mathml/MathMLTextElement.h: Make childrenChanged overridable.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::element): Helper function to cast to a MathMLOperatorElement.
(WebCore::RenderMathMLOperator::textContent): Helper function to call
MathMLOperatorElement::operatorText or fallback to m_textContent for anonymous operators.
m_textContent and this special case can be moved into a derived class later.
(WebCore::RenderMathMLOperator::setOperatorProperties): Call textContent().
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Ditto.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Remove the string parameter and the
parsing of the operator text.
(WebCore::RenderMathMLOperator::updateTokenContent): Call textContent(). The special function
for anonymous operators also parses the text content but this could be moved into a derived
class later.
(WebCore::RenderMathMLOperator::shouldAllowStretching): Call textContent().
(WebCore::RenderMathMLOperator::useMathOperator): Ditto.
(WebCore::RenderMathMLOperator::RenderMathMLOperator): No need to initialize m_textContent
as it is not used anymore for non-anonymous renderers.
* rendering/mathml/RenderMathMLOperator.h: Update definitions and call textContent().

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

3 years agoJSC::Symbol should be hash-consed
utatane.tea@gmail.com [Fri, 29 Jul 2016 07:15:01 +0000 (07:15 +0000)]
JSC::Symbol should be hash-consed
https://bugs.webkit.org/show_bug.cgi?id=158908

Reviewed by Filip Pizlo.

Previously, SymbolImpls held by symbols represent identity of symbols.
When we check the equality between symbols, we need to load SymbolImpls of symbols and compare them.

This patch performs hash-consing onto the symbols. We cache symbols in per-VM's SymbolImpl-keyed WeakGCMap.
When creating a new symbol from SymbolImpl, we first query to this map and reuse the previously created symbol
if it is found. This ensures that one-on-one correspondence between SymbolImpl and symbol. So now, we can use
pointer-comparison to query the equality of symbols.

This change drops SymbolImpl loads when checking the equality. Furthermore, we can use DFG CheckCell to symbol
when we would like to ensure that the given value is the expected symbol. This cleans up GetByVal's symbol-keyd
caching. Then, we changed CheckIdent to CheckStringIdent since it only checks the string case now. The symbol
case is handled by CheckCell.

Additionally, this patch also cleans up Map / Set implementation since we can use the logic for JSCell to symbols.

The performance effects in the related benchmarks are the followings.

                                                       baseline                   patch

    bigswitch-indirect-symbol-or-undefined         85.6214+-1.0063     ^     63.0522+-0.8615        ^ definitely 1.3579x faster
    bigswitch-indirect-symbol                      84.9653+-0.6258     ^     80.4900+-0.8008        ^ definitely 1.0556x faster
    fold-put-by-val-with-symbol-to-multi-put-by-offset
                                                    9.4396+-0.3726            9.2941+-0.3311          might be 1.0157x faster
    inlined-put-by-val-with-symbol-transition
                                                   49.5477+-0.2401     ?     49.7533+-0.3369        ?
    get-by-val-with-symbol-self-or-proto           11.9740+-0.0798     ?     12.1706+-0.2723        ? might be 1.0164x slower
    get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple
                                                    4.1364+-0.0841            4.0872+-0.0925          might be 1.0120x faster
    put-by-val-with-symbol                         11.3709+-0.0223           11.3613+-0.0264
    get-by-val-with-symbol-proto-or-self           11.8984+-0.0706     ?     11.9030+-0.0787        ?
    polymorphic-put-by-val-with-symbol             31.4176+-0.0558           31.3825+-0.0447
    implicit-bigswitch-indirect-symbol             61.3115+-0.6577     ^     58.0098+-0.1212        ^ definitely 1.0569x faster
    get-by-val-with-symbol-bimorphic-check-structure-elimination-simple
                                                    3.3139+-0.0565     ^      2.9947+-0.0732        ^ definitely 1.1066x faster
    get-by-val-with-symbol-chain-from-try-block
                                                    2.2316+-0.0179            2.2137+-0.0210
    get-by-val-with-symbol-bimorphic-check-structure-elimination
                                                   10.6031+-0.2216     ^     10.0939+-0.1977        ^ definitely 1.0504x faster
    get-by-val-with-symbol-check-structure-elimination
                                                    8.5576+-0.1521     ^      7.7107+-0.1308        ^ definitely 1.1098x faster
    put-by-val-with-symbol-slightly-polymorphic
                                                    3.1957+-0.0538     ^      2.9181+-0.0708        ^ definitely 1.0951x faster
    put-by-val-with-symbol-replace-and-transition
                                                   11.8253+-0.0757     ^     11.6590+-0.0351        ^ definitely 1.0143x faster

    <geometric>                                    13.3911+-0.0527     ^     12.7376+-0.0457        ^ definitely 1.0513x faster

* bytecode/ByValInfo.h:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::stronglyVisitStrongReferences):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasUidOperand):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSymbolEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleSymbolEquality):
(JSC::DFG::SpeculativeJIT::compileCheckStringIdent):
(JSC::DFG::SpeculativeJIT::extractStringImplFromBinarySymbols): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality): Deleted.
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality):
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLAbstractHeapRepository.h:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID): Deleted.
* jit/JIT.h:
* jit/JITOperations.cpp:
(JSC::tryGetByValOptimize):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
(JSC::JIT::emitIdentifierCheck): Deleted.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
* runtime/JSCJSValue.cpp:
(JSC::JSValue::dumpInContextAssumingStructure):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline): Deleted.
* runtime/JSFunction.cpp:
(JSC::JSFunction::setFunctionName):
* runtime/MapData.h:
* runtime/MapDataInlines.h:
(JSC::JSIterator>::clear): Deleted.
(JSC::JSIterator>::find): Deleted.
(JSC::JSIterator>::add): Deleted.
(JSC::JSIterator>::remove): Deleted.
(JSC::JSIterator>::replaceAndPackBackingStore): Deleted.
* runtime/Symbol.cpp:
(JSC::Symbol::finishCreation):
(JSC::Symbol::create):
* runtime/Symbol.h:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:
* tests/stress/symbol-equality-over-gc.js: Added.
(shouldBe):
(test):

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

3 years agoBinding generator should expose the visible interface name in error messages
commit-queue@webkit.org [Fri, 29 Jul 2016 06:45:21 +0000 (06:45 +0000)]
Binding generator should expose the visible interface name in error messages
https://bugs.webkit.org/show_bug.cgi?id=160192

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Darin Adler.

Covered by updated layout and binding tests.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Using visibleInterfaceName instead of interfaceName.
(GenerateFunctionCastedThis): Ditto.
(GenerateParametersCheck): Ditto.
(GenerateConstructorDefinition): Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Rebased.
* bindings/scripts/test/TestObj.idl: Adding ConstructorCallWith to exercice change in GenerateConstructorDefinition.

LayoutTests:

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-28
Reviewed by Darin Adler.

* editing/selection/extend-expected.txt:
* fast/dom/Window/getComputedStyle-missing-parameter-expected.txt:
* fast/dom/Window/getComputedStyle-missing-parameter.html:
* fetch/fetch-error-messages-expected.txt:
* fetch/fetch-error-messages.html: Adding test for Request.
* js/dom/toString-and-valueOf-override-expected.txt:
* js/getOwnPropertyDescriptor-unforgeable-attributes-expected.txt:
* js/getOwnPropertyDescriptor-window-attributes-expected.txt:
* media/encrypted-media/encrypted-media-v2-syntax-expected.txt:
* media/encrypted-media/encrypted-media-v2-syntax.html:
* webaudio/createMediaStreamSource-null-expected.txt:
* webaudio/createMediaStreamSource-null.html:
* webaudio/decode-audio-data-basic-expected.txt:
* webaudio/decode-audio-data-basic.html:
* webaudio/mediaelementaudiosourcenode-expected.txt:
* webaudio/mediaelementaudiosourcenode.html:

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

3 years agoSplit calculateCacheSizes in two methods
carlosgc@webkit.org [Fri, 29 Jul 2016 05:22:14 +0000 (05:22 +0000)]
Split calculateCacheSizes in two methods
https://bugs.webkit.org/show_bug.cgi?id=160237

Reviewed by Darin Adler.

Source/WebCore:

Rename getVolumeFreeSizeForPath as volumeFreeSizeForPath and make it available to all platforms adding an
implementation for mac.

* platform/FileSystem.h:
* platform/efl/FileSystemEfl.cpp:
(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.
* platform/glib/FileSystemGlib.cpp:
(WebCore::volumeFreeSizeForPath):
(WebCore::getVolumeFreeSizeForPath): Deleted.
* platform/mac/FileSystemMac.mm:
(WebCore::volumeFreeSizeForPath):
* platform/win/FileSystemWin.cpp:
(WebCore::volumeFreeSizeForPath):

Source/WebKit2:

It's used to calculate memory and disk cache sizes, but only the web process is interested in memory caches, and
the network process in disk cache. We can also avoid a lot of duplicated code between ports to set the cache model.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setCacheModel): Use calculateURLCacheSizes to set the disk cache size and call
platformSetURLCacheSize if not set to allow ports to setup platform specific cache.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformSetURLCacheSize): Remove common code that is now in cross-platform file.
(WebKit::getCacheDiskFreeSize): Deleted.
(WebKit::NetworkProcess::platformSetCacheModel): Renamed to platformSetURLCacheSize().
* Shared/CacheModel.cpp:
(WebKit::calculateMemoryCacheSizes): Calculate the memory and page cache sizes.
(WebKit::calculateURLCacheSizes): Calculate the disk cache size.
(WebKit::calculateCacheSizes): Deleted.
* Shared/CacheModel.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess): Tell the page cache to clear backing stores for GTK+ port too. This was done before when
setting the cache model.
(WebKit::WebProcess::setCacheModel): Use calculateMemoryCacheSizes to setup memory caches and call
platformSetCacheModel to allow ports do more setup according to the cache model.
(WebKit::WebProcess::clearResourceCaches): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::volumeFreeSize): Deleted.
(WebKit::WebProcess::platformClearResourceCaches): Deleted.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformSetCacheModel): Remove common code that is now in cross-platform file.
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformClearResourceCaches): Deleted.

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

3 years agoDatabase Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTEN...
carlosgc@webkit.org [Fri, 29 Jul 2016 05:16:01 +0000 (05:16 +0000)]
Database Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160188

Reviewed by Sergio Villar Senin.

This happens in ports with sandbox extensions disabled, and it's making several tests to crash in debug
builds. The SandboxExtension implementation is empty in case of building with sandbox extensions disabled, so
that we are actually allocating no extensions at all in
NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs(). When the message arrives to database
process, we have a list of paths, but an empty list of hanldes which causes the assertion. We can just avoid
that message entirely in case of building without sandbox extensions.

* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):

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

3 years agoRemove deprecated SPI for video inline / fullscreen controls
mmaxfield@apple.com [Fri, 29 Jul 2016 03:03:21 +0000 (03:03 +0000)]
Remove deprecated SPI for video inline / fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=160318

Reviewed by Tim Horton.

Source/WebCore:

r203752 deprecated the SPI allowsInlineMediaPlaybackWithPlaysInlineAttribute
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute (in favor of
inlineMediaPlaybackRequiresPlaysInlineAttribute). This patch removes the
deprecated SPI symbols.

No new tests because there is no behavior change.

* page/Settings.cpp:
* page/Settings.in:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting): Deleted.
* TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
(RequiresUserActionForPlaybackTest::SetUp): Deleted.
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues): Deleted.
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration): Deleted.

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

3 years ago[iOS] TestWebKitAPI bundle targets are not code signed
commit-queue@webkit.org [Fri, 29 Jul 2016 02:09:38 +0000 (02:09 +0000)]
[iOS] TestWebKitAPI bundle targets are not code signed
https://bugs.webkit.org/show_bug.cgi?id=160328
<rdar://problem/27409246>

Patch by Daniel Bates <dabates@apple.com> on 2016-07-28
Reviewed by Andy Estes.

Workaround <rdar://problem/27459890> by explicitly defining Xcode build settings
CODE_SIGNING_ALLOWED and AD_HOC_CODE_SIGNING_ALLOWED to be YES so as to allow the
the TestWebKitAPI bundle targets to be code signed when building for the iOS simulator.

* TestWebKitAPI/Configurations/Base.xcconfig:

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

3 years agoASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
mark.lam@apple.com [Fri, 29 Jul 2016 01:23:27 +0000 (01:23 +0000)]
ASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
https://bugs.webkit.org/show_bug.cgi?id=160324
<rdar://problem/27389572>

Reviewed by Keith Miller.

The issue is that errorProtoFuncToString() was using jsNontrivialString() to
generate the error string even when the name string can be a single character
string.  This is incorrect.  We should be using jsString() instead.

* runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
* tests/stress/errors-with-simple-names-or-messages-should-not-crash-toString.js: Added.

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

3 years agoAdd support for Element.getAttributeNames()
cdumez@apple.com [Fri, 29 Jul 2016 01:19:41 +0000 (01:19 +0000)]
Add support for Element.getAttributeNames()
https://bugs.webkit.org/show_bug.cgi?id=160327

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/dom/nodes/attributes-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Add support for Element.getAttributeNames():
- https://dom.spec.whatwg.org/#dom-element-getattributenames

Firefox already supports this, Chrome 52 does not yet.

Test: fast/dom/Element/getAttributeNames.html

* bindings/js/JSDOMBinding.h:
(WebCore::JSValueTraits<AtomicString>::arrayJSValue):
* dom/Element.cpp:
(WebCore::Element::getAttributeNames):
* dom/Element.h:
* dom/Element.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
Firefox 47.

* fast/dom/Element/getAttributeNames-expected.txt: Added.
* fast/dom/Element/getAttributeNames.html: Added.

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

3 years agoARM64: Fused left shift with a right shift can create NaNs from integers
msaboff@apple.com [Fri, 29 Jul 2016 00:30:32 +0000 (00:30 +0000)]
ARM64: Fused left shift with a right shift can create NaNs from integers
https://bugs.webkit.org/show_bug.cgi?id=160329

Reviewed by Geoffrey Garen.

When we fuse a left shift and a right shift of integers where the shift amounts
are the same and the size of the quantity being shifted is 8 bits, we rightly
generate a sign extend byte instruction.  On ARM64, we were sign extending
to a 64 bit quantity, when we really wanted to sign extend to a 32 bit quantity.

Checking the ARM64 marco assembler and we were extending to 64 bits for all
four combinations of zero / sign and 8 / 16 bits.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::signExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::signExtend8To32):
* tests/stress/regress-160329.js: New test added.
(narrow):

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

3 years agoDisable WebKit2.ResizeWithHiddenContentDoesNotHang for now
timothy_horton@apple.com [Thu, 28 Jul 2016 23:52:42 +0000 (23:52 +0000)]
Disable WebKit2.ResizeWithHiddenContentDoesNotHang for now

* TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:
(animatedResizeWebView):
(TEST):
This test times out only when run in the WebKit Testing simulator environment,
but not in a fresh simulator. Disabling to keep the bots green while under investigation.

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

3 years agowindow.open.length should be 0
cdumez@apple.com [Thu, 28 Jul 2016 23:29:37 +0000 (23:29 +0000)]
window.open.length should be 0
https://bugs.webkit.org/show_bug.cgi?id=160323

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

window.open.length should be 0 as all its parameters are optional:
- https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

It is 2 in WebKit. Firefox and Chrome agree with the specification and return 0.

No new tests, rebaselined existing test.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::open):
Minor code optimization.

* page/DOMWindow.idl:
Update IDL to match the specification and our custom implementation.
This makes us return the right "length" value.

LayoutTests:

Update existing test to reflect behavior change.

* js/dom/function-length-expected.txt:
* js/dom/function-length.html:

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

3 years agoParameters to Event.initEvent() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 23:15:07 +0000 (23:15 +0000)]
Parameters to Event.initEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160320

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to Event.initEvent() should be mandatory:
- https://dom.spec.whatwg.org/#interface-event

Firefox agrees with the specification. Chrome does not.

No new tests, rebaselined existing tests.

* dom/Event.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing tests to make sure they call initEvent() will all 3
parameters.

* fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml:
* fast/forms/form-submission-create-crash.xhtml:
* js/arity-mismatch-at-vmentry.html:

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

3 years agoMove a Mail.app workaround closer to where it's actually needed
andersca@apple.com [Thu, 28 Jul 2016 22:21:03 +0000 (22:21 +0000)]
Move a Mail.app workaround closer to where it's actually needed
https://bugs.webkit.org/show_bug.cgi?id=160317

Reviewed by Tim Horton.

Source/WebCore:

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive):
* platform/network/cf/ResourceRequest.h:
* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSendRequest):
* WebView/WebFrame.mm:
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]): Deleted.

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

3 years ago2 first parameters to window.postMessage() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 22:17:49 +0000 (22:17 +0000)]
2 first parameters to window.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160319

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to window.postMessage() should be mandatory:
- https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):

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

3 years agoFirst parameter to canvas.getContext() / probablySupportsContext() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 22:05:49 +0000 (22:05 +0000)]
First parameter to canvas.getContext() / probablySupportsContext() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160312

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing-expected.txt:

Source/WebCore:

First parameter to canvas.getContext() / probablySupportsContext()
should be mandatory:
- http://w3c.github.io/html/semantics-scripting.html#the-canvas-element

Firefox and Chrome agree with the specification for getContext().
Neither of them supports probablySupportsContext().

No new tests, rebaselined existing tests.

* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):
* html/HTMLCanvasElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/canvas/webgl/canvas-supports-context-expected.txt:
* fast/canvas/webgl/canvas-supports-context.html:

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

3 years agoWeb Inspector: Hiding a column which contains a TimelineRuler as the headerview,...
mattbaker@apple.com [Thu, 28 Jul 2016 21:51:50 +0000 (21:51 +0000)]
Web Inspector: Hiding a column which contains a TimelineRuler as the headerview, doesn't hide the headerView
https://bugs.webkit.org/show_bug.cgi?id=160093
<rdar://problem/27499300>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._positionHeaderViews):
Remove early return so that a header view in a hidden column will have
its width resized to zero, matching the column.

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

3 years agoWeb Inspector: Waterfall view should be visible in Network tab and Network Timeline
commit-queue@webkit.org [Thu, 28 Jul 2016 21:38:50 +0000 (21:38 +0000)]
Web Inspector: Waterfall view should be visible in Network tab and Network Timeline
https://bugs.webkit.org/show_bug.cgi?id=160061

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-07-28
Reviewed by Joseph Pecoraro.

Adds a Timeline-column (waterfall) to the Network tab and Network Timeline.

* Localizations/en.lproj/localizedStrings.js:
Add "Timeline" localized string.

* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
Add the Timeline-column with a TimelineRuler as the headerview,
and properties for updating current time.

(WebInspector.NetworkGridContentView.prototype.get secondsPerPixel):
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get currentTime):
(WebInspector.NetworkGridContentView.prototype.get endTime):
Acting as a graphDataSource used by TimelineDataGridNode.

(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype.layout):
Refresh graphs and update the TimelineRuler on layout changes.

(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Add listeners for when resources are finished to stop the timer.

(WebInspector.NetworkGridContentView.prototype._update):
(WebInspector.NetworkGridContentView.prototype._startUpdatingCurrentTime):
(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Adding a timer which updates the TimelineRuler and the layout
if any non-finished requests are running.

* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Add the Timeline-column with a TimelineRuler as the headerview.

(WebInspector.NetworkTimelineView.prototype.get secondsPerPixel):
(WebInspector.NetworkTimelineView.prototype.layout):
Refresh graphs on layout changes.

* UserInterface/Views/TimelineDataGrid.css:
(.tree-outline.timeline-data-grid .item:hover .subtitle):
(.data-grid.timeline th):
(.data-grid.timeline th.graph-column > .timeline-ruler):
(.data-grid.timeline td.graph-column):
(.data-grid.timeline td.graph-column > .cell-content):
(.data-grid.timeline td.graph-column .timeline-record-bar):

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

3 years agoFrequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
timothy_horton@apple.com [Thu, 28 Jul 2016 21:19:06 +0000 (21:19 +0000)]
Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
https://bugs.webkit.org/show_bug.cgi?id=160289
<rdar://problem/27553464>

Reviewed by Simon Fraser.

API Tests: WebKit2.AnimatedResizeDoesNotHang, WebKit2.ResizeWithHiddenContentDoesNotHang

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
Avoid calling _endAnimatedResize when a commit comes in when we haven't yet received
a dynamic viewport update reply (and thus don't have a transaction ID to wait on).
Previously, in this case, _resizeAnimationTransformTransactionID would be 0,
and *any* commit would cause _endAnimatedResize to be called, causing us to always
fall into the worst-case sync wait.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
Make use of waitForDidUpdateViewState instead of having a separate waitForAndDispatchImmediately
here, because it knows to do things like dispatch the didUpdate message if it's still
pending. This also shortens the sync wait timeout from 1s to 500ms, which makes it
consistent with e.g. the newly-parented-view timeout duration, and should be nothing
but positive.

* Platform/IPC/Connection.cpp:
(IPC::Connection::timeoutRespectingIgnoreTimeoutsForTesting):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::ignoreTimeoutsForTesting):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration ignoreSynchronousMessagingTimeoutsForTesting]):
(-[_WKProcessPoolConfiguration setIgnoreSynchronousMessagingTimeoutsForTesting:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
Add a mechanism for clients to cause all synchronous message timeouts to be effectively infinite.
The new API tests use this to ensure that the test will time out if they ever enter
the bad state (otherwise, the shorter sync wait timeout could make the test still pass).

* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: Added.
(-[AnimatedResizeNavigationDelegate _webView:renderingProgressDidChange:]):
(-[AnimatedResizeWebView _endAnimatedResize]):
(animatedResizeWebView):
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/blinking-div.html: Added.
Add two tests that ensure that hidden-content and animated resizes
don't cause unnecessary synchronous waits. Only the hidden-content
one fails before my patch, but it seemed reasonable to add both anyway.

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

3 years agoUse a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
andersca@apple.com [Thu, 28 Jul 2016 21:17:58 +0000 (21:17 +0000)]
Use a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
https://bugs.webkit.org/show_bug.cgi?id=160315

Reviewed by Tim Horton.

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::assignIdentifierToInitialRequest):

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

3 years agoParameter to table.deleteRow() / body.deleteRow() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 21:07:22 +0000 (21:07 +0000)]
Parameter to table.deleteRow() / body.deleteRow() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160307

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to table.deleteRow() / body.deleteRow() should be mandatory:
- https://html.spec.whatwg.org/multipage/tables.html#the-table-element
- https://html.spec.whatwg.org/multipage/tables.html#htmltablesectionelement

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* html/HTMLTableElement.idl:
* html/HTMLTableSectionElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoUnreviewed, rolling out r203826.
ryanhaddad@apple.com [Thu, 28 Jul 2016 21:02:30 +0000 (21:02 +0000)]
Unreviewed, rolling out r203826.
https://bugs.webkit.org/show_bug.cgi?id=160314

The test added with this change fails on El Capitan WK2.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"HTMLVideoElement with MediaStream src shows paused image when
all video tracks are disabled"
https://bugs.webkit.org/show_bug.cgi?id=160222
http://trac.webkit.org/changeset/203826

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-28

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

3 years agomacOS Sierra test result gardening.
ap@apple.com [Thu, 28 Jul 2016 20:55:35 +0000 (20:55 +0000)]
macOS Sierra test result gardening.

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

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

3 years ago2 first parameters to input.setSelectionRange() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 20:54:03 +0000 (20:54 +0000)]
2 first parameters to input.setSelectionRange() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160310

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to input.setSelectionRange() should be mandatory:
- https://html.spec.whatwg.org/multipage/forms.html#htmlinputelement

Calling this method without the 2 first parameters makes little
sense.

Firefox agrees with the specification, Chrome does not.

No new tests, rebaselined existing test.

* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionRange):
* html/HTMLInputElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoRemove an unnecessary comment from UUID.h
andersca@apple.com [Thu, 28 Jul 2016 20:40:24 +0000 (20:40 +0000)]
Remove an unnecessary comment from UUID.h
https://bugs.webkit.org/show_bug.cgi?id=160313

Reviewed by Simon Fraser.

* platform/UUID.h:

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

3 years agoStringView should have an explicit m_is8Bit field.
mark.lam@apple.com [Thu, 28 Jul 2016 20:28:47 +0000 (20:28 +0000)]
StringView should have an explicit m_is8Bit field.
https://bugs.webkit.org/show_bug.cgi?id=160282
<rdar://problem/27327943>

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* tests/stress/string-joining-long-strings-should-not-crash.js: Added.
(catch):

Source/WTF:

The current implementation reserves 1 bit in the 32-bit m_length field as an
is16Bit flag.  As a result, a StringView is incapable of handling strings that
have a length of 32-bit in size.  This results in a mismatch with the
expectations of String, StringImpl, and JavaScriptCore's JSString which all
support a 32-bit unsigned length.

This patch fixes this issue by introducing an explicit m_is8Bit field, thereby
allowing m_length to be a full 32-bit again.

We also introduced a clear() convenience method to set the fields of StringView
to empty values.  Previously, we were duplicating the code for clearing those
fields.  We now call clear() in all those places instead.

Note: in clear(), we set m_is8Bit to true because we want an empty StringView
to be 8-bit rather than 16-bit.  This is consistent with what the empty() method
returns.

* wtf/text/StringView.h:
(WTF::StringView::setUnderlyingString):
(WTF::StringView::StringView):
(WTF::StringView::operator=):
(WTF::StringView::initialize):
(WTF::StringView::clear):
(WTF::StringView::empty):
(WTF::StringView::length):
(WTF::StringView::operator bool):
(WTF::StringView::is8Bit):
(WTF::StringView::substring):
(WTF::StringView::getCharactersWithUpconvert):
(WTF::StringView::toString):
(WTF::StringView::toAtomicString):
(WTF::StringView::toFloat):
(WTF::StringView::toInt):
(WTF::StringView::toIntStrict):
(WTF::StringView::toStringWithoutCopying):
(WTF::StringView::find):

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

3 years agoParameter to tr.deleteCell() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 20:21:33 +0000 (20:21 +0000)]
Parameter to tr.deleteCell() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160308

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to tr.deleteCell() should be mandatory:
- https://html.spec.whatwg.org/multipage/tables.html#htmltablerowelement

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

* html/HTMLTableRowElement.idl:

Source/WebInspectorUI:

Report tr.deleteCell() parameter as mandatory.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agowebkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted...
ddkilzer@apple.com [Thu, 28 Jul 2016 20:21:02 +0000 (20:21 +0000)]
webkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted or moved files
<https://webkit.org/b/83342>

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.revisions_changing_file): Remove code to raise an exception
when the file doesn't exist.  If a file was moved or renamed,
then this caused the script to terminate, which was very
frustrating when you wanted a list of reviewers.
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(SCMTest._shared_test_revisions_changing_file): Update test
expectation to return an empty list of revisions.
(test_create_patch_is_full_patch): Drive-by fix when running all
webkitpy tests (including scm tests).
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.revisions_changing_file): Catch ScriptError exceptions and
return an empty array of revisions if this occurs.

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

3 years ago[Bindings] "length" value of overloaded operations may be wrong
cdumez@apple.com [Thu, 28 Jul 2016 20:18:42 +0000 (20:18 +0000)]
[Bindings] "length" value of overloaded operations may be wrong
https://bugs.webkit.org/show_bug.cgi?id=160303

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

"length" value of overloaded operations may be wrong because we fail to
account for overloads when computing the length of a function:
- https://heycam.github.io/webidl/#es-operations

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GetFunctionLength):
* bindings/scripts/test/JS/JSTestObj.cpp:

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

3 years agoEWS error message "Error: * did not process patch" should include explanation
aakash_jain@apple.com [Thu, 28 Jul 2016 20:12:31 +0000 (20:12 +0000)]
EWS error message "Error: * did not process patch" should include explanation
https://bugs.webkit.org/show_bug.cgi?id=159903
<rdar://problem/27410788>

Reviewed by Alexey Proskuryakov.

* QueueStatusServer/handlers/statusbubble.py:
(StatusBubble._build_bubble): Display more detailed error message on bubbles when patch
is not processed.
* QueueStatusServer/handlers/processingtimesjson.py:
(ProcessingTimesJSON._resultFromFinalStatus): Updated error message to match with rest
of the code.
* Scripts/webkitpy/tool/bot/commitqueuetask.py:
(CommitQueueTask.validate): Add more information about validation failure.
(CommitQueueTask.run): Pass the error details in the PatchIsNotValid exception.
* Scripts/webkitpy/tool/bot/earlywarningsystemtask.py:
(EarlyWarningSystemTask.validate): Add more information about validation failure.
(EarlyWarningSystemTask.run): Pass the error details in the PatchIsNotValid exception.
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchIsNotValid.__init__): Add the failure_message argument.
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem.review_patch): Re-word the error message and include
failure details.
* Scripts/webkitpy/tool/commands/queues.py:
(CommitQueue.process_work_item): Same.
(StyleQueue.review_patch): Same.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_non_valid_patch): Updated test-cases messages to match the above changes.

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

3 years agoMarking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
ryanhaddad@apple.com [Thu, 28 Jul 2016 19:50:45 +0000 (19:50 +0000)]
Marking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=160309

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoHTMLVideoElement with MediaStream src shows paused image when all video tracks are...
ryanhaddad@apple.com [Thu, 28 Jul 2016 18:26:21 +0000 (18:26 +0000)]
HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-28
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
       fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

* fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks
that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the
frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.

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

3 years agoREGRESSION (r202880): Default controls pip glyph inverted
dino@apple.com [Thu, 28 Jul 2016 18:19:22 +0000 (18:19 +0000)]
REGRESSION (r202880): Default controls pip glyph inverted
https://bugs.webkit.org/show_bug.cgi?id=160304
<rdar://problem/27578447>

Reviewed by Eric Carlson.

I accidentally committed the "Exit Picture-in-picture" glyph
for the "Enter Picture-in-picture" buttons :(

* Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-panel .picture-in-picture-button):
Use the correct artwork.

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

3 years agoVersioning.
bshafiei@apple.com [Thu, 28 Jul 2016 18:17:54 +0000 (18:17 +0000)]
Versioning.

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

3 years agoUnskip some CSS tests that previously timed out on ios-simulator.
ryanhaddad@apple.com [Thu, 28 Jul 2016 18:17:49 +0000 (18:17 +0000)]
Unskip some CSS tests that previously timed out on ios-simulator.

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

3 years agoFirst parameter to SVGDocument.createEvent() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 18:14:18 +0000 (18:14 +0000)]
First parameter to SVGDocument.createEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160296

Reviewed by Alex Christensen.

Source/WebCore:

First parameter to SVGDocument.createEvent() should be mandatory:
- https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentExtensions
- https://dom.spec.whatwg.org/#document

This patch drops createEvent() from SVGDocument so that the spec-compliant
Document.createEvent() is used instead. In the specification, SVGDocument
no longer exists and is a simple Document.

Firefox and Chrome agree with the specification.

Test: svg/dom/SVGDocument-createEvent.html

* svg/SVGDocument.idl:

LayoutTests:

Add test coverage.

* svg/dom/SVGDocument-createEvent-expected.txt: Added.
* svg/dom/SVGDocument-createEvent.html: Added.

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