WebKit-https.git
15 months agoMake sure history navigations reuse the existing process when necessary.
beidson@apple.com [Fri, 11 May 2018 16:12:11 +0000 (16:12 +0000)]
Make sure history navigations reuse the existing process when necessary.
<rdar://problem/39746516> and https://bugs.webkit.org/show_bug.cgi?id=185532

Reviewed by Ryosuke Niwa.

Source/WebCore:

Covered by new API tests.

In WebCore-land, make sure *all* NavigationActions to a back/forward item are tagged with
the item identifier.

* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::logString const):
* history/HistoryItem.h:

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadDifferentDocumentItem):

* loader/NavigationAction.cpp:
(WebCore::NavigationAction::setTargetBackForwardItem):

* loader/NavigationAction.h:
(WebCore::NavigationAction::targetBackForwardItemIdentifier const):

Source/WebKit:

If a view navigates to either a data: or blob: URL, it reuses the existing process.

In such cases we need to also ensure that history navigations back will also reuse the existing process.

* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):
* Shared/NavigationActionData.h:

* UIProcess/API/APINavigation.h:
(API::Navigation::setTargetItem):

* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration pageCacheEnabled]):
(-[_WKProcessPoolConfiguration setPageCacheEnabled:]):

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigationInternal): If the current and target back/forward items both
  came from the same process, then reuse the existing process.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

15 months agoDon't use inferred types when the JIT is disabled
sbarati@apple.com [Fri, 11 May 2018 16:08:42 +0000 (16:08 +0000)]
Don't use inferred types when the JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=185539

Reviewed by Yusuke Suzuki.

There are many JSC API clients that run with the JIT disabled. They were
all allocating and tracking inferred types for no benefit. Inferred types
only benefit programs when they make it to the DFG/FTL. I was seeing cases
where the inferred type machinery used ~0.5MB. This patch makes is so we
don't allocate that machinery when the JIT is disabled.

* runtime/Structure.cpp:
(JSC::Structure::willStoreValueSlow):
* runtime/Structure.h:

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

15 months agoREGRESSION(r231057): Encrypted media content playback failures
bfulgham@apple.com [Fri, 11 May 2018 16:01:30 +0000 (16:01 +0000)]
REGRESSION(r231057): Encrypted media content playback failures
https://bugs.webkit.org/show_bug.cgi?id=185537
<rdar://problem/40038478>

Reviewed by Eric Carlson.

Put access to the SecurityServer back in the sandbox so we can validate the
signatures of media encoder/decoders.

* WebProcess/com.apple.WebProcess.sb.in:

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

15 months ago[GTK][a11y] Newly added accessibility/scroll-to-make-visible-iframe-offscreen.html...
csaavedra@igalia.com [Fri, 11 May 2018 13:09:27 +0000 (13:09 +0000)]
[GTK][a11y] Newly added accessibility/scroll-to-make-visible-iframe-offscreen.html fails

Unreviewed gardening. Added the failure.
* platform/gtk/TestExpectations:

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

15 months ago[GTK] media/video-playbackrate.html intermittently crashing
csaavedra@igalia.com [Fri, 11 May 2018 11:38:25 +0000 (11:38 +0000)]
[GTK] media/video-playbackrate.html intermittently crashing
https://bugs.webkit.org/show_bug.cgi?id=185546

Mark thet test, unreviewed gardening.
* platform/gtk/TestExpectations:

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

15 months ago[EME][GStreamer] Handle the protection event in MediaPlayerPrivate
commit-queue@webkit.org [Fri, 11 May 2018 10:50:37 +0000 (10:50 +0000)]
[EME][GStreamer] Handle the protection event in MediaPlayerPrivate
https://bugs.webkit.org/show_bug.cgi?id=185535

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-11
Reviewed by Xabier Rodriguez-Calvar.

This patch is based on this calvaris's commit
https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/d966168b0d2b65f9ca9415426e26d3752c78b03e

It adds a handler for the protection event in MediaPalyerPrivateGStreamerBase, it extracts the InitData from the event
and sends the encrypted event to JS via HTMLMediaElement.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h: Add a new type InitData.

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

15 months agoRebase some fetch API tests
youenn@apple.com [Fri, 11 May 2018 10:15:19 +0000 (10:15 +0000)]
Rebase some fetch API tests
https://bugs.webkit.org/show_bug.cgi?id=185544

Unreviewed.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/basic/integrity-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
* web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt:
* web-platform-tests/fetch/http-cache/partial-expected.txt:

LayoutTests:

* http/tests/fetch/fetching-same-resource-with-different-options-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:

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

15 months agoSkip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
youenn@apple.com [Fri, 11 May 2018 08:55:38 +0000 (08:55 +0000)]
Skip http/tests/appcache/load-from-appcache-defer-resume-crash.html for iOS sim WK2
https://bugs.webkit.org/show_bug.cgi?id=185430
<rdar://problem/40065118>

Unreviewed.

* platform/ios-wk2/TestExpectations: Precising the WK1 testRunner API used by the test.

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

15 months ago[Curl] Make the cipher suites, the signing algorithms and the curve lists configurable.
commit-queue@webkit.org [Fri, 11 May 2018 08:31:48 +0000 (08:31 +0000)]
[Curl] Make the cipher suites, the signing algorithms and the curve lists configurable.
https://bugs.webkit.org/show_bug.cgi?id=185139

Add interface to configure the cipher suites, the signing algorithms and the curve lists
used by OpenSSL and libcurl to exchange, to sign or to verify keys.

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-05-11
Reviewed by Youenn Fablet.

No new tests in public. Have tested internally.

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::setSslCipherList):
* platform/network/curl/CurlContext.h:
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::willSetupSslCtx):
* platform/network/curl/CurlSSLHandle.cpp:
(WebCore::CurlSSLHandle::getCACertPathEnv):
* platform/network/curl/CurlSSLHandle.h:
(WebCore::CurlSSLHandle::getCipherList const):
(WebCore::CurlSSLHandle::getSignatureAlgorithmsList const):
(WebCore::CurlSSLHandle::getCurvesList const):
(WebCore::CurlSSLHandle::setCipherList):
(WebCore::CurlSSLHandle::setSignatureAlgorithmsList):
(WebCore::CurlSSLHandle::setCurvesList):
(WebCore::CurlSSLHandle::getCACertPath const):
(WebCore::CurlSSLHandle::setCACertPath):
* platform/network/curl/CurlSSLVerifier.cpp:
(WebCore::CurlSSLVerifier::CurlSSLVerifier):

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

15 months agoDon't allocate value profiles when the JIT is disabled
sbarati@apple.com [Fri, 11 May 2018 07:57:21 +0000 (07:57 +0000)]
Don't allocate value profiles when the JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=185525

Reviewed by Michael Saboff.

Source/JavaScriptCore:

There are many JSC API clients that run with the JIT disabled. We were
still allocating a ton of value profiles in this use case even though
these clients get no benefit from doing value profiling. This patch makes
it so that we don't allocate value profiles or argument value profiles
when we're not using the JIT. We now just make all value profiles in
the instruction stream point to a global value profile that the VM owns.
And we make the argument value profile array have zero length and teach
the LLInt how to handle that. Heap clears the global value profile on each GC.

In an app that I'm testing this against, this saves ~1MB of memory.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setNumParameters):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitProfiledOpcode):
* heap/Heap.cpp:
(JSC::Heap::runEndPhase):
* llint/LowLevelInterpreter.asm:
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Source/WTF:

* wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):

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

15 months agoNetworkCORSPreflightChecker should proceed when having a ProtectionSpaceAuthenticatio...
youenn@apple.com [Fri, 11 May 2018 07:22:12 +0000 (07:22 +0000)]
NetworkCORSPreflightChecker should proceed when having a ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested challenge
https://bugs.webkit.org/show_bug.cgi?id=185522
<rdar://problem/39987152>

Reviewed by Brent Fulgham.

In case of such challenge, refuse to proceed with authentication since preflight is not using credentials.
Previously, we were failing right away which is not right in case preflight is the request triggering the connection.

Manually tested.

* NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

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

15 months ago[JSC][GLIB] Add introspectable alternatives to functions using vargars
carlosgc@webkit.org [Fri, 11 May 2018 06:56:57 +0000 (06:56 +0000)]
[JSC][GLIB] Add introspectable alternatives to functions using vargars
https://bugs.webkit.org/show_bug.cgi?id=185508

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

* API/glib/JSCClass.cpp:
(jscClassCreateConstructor):
(jsc_class_add_constructor):
(jsc_class_add_constructorv):
(jscClassAddMethod):
(jsc_class_add_method):
(jsc_class_add_methodv):
* API/glib/JSCClass.h:
* API/glib/JSCValue.cpp:
(jsObjectCall):
(jscValueCallFunction):
(jsc_value_object_invoke_methodv):
(jscValueFunctionCreate):
(jsc_value_new_function):
(jsc_value_new_functionv):
(jsc_value_function_callv):
(jsc_value_constructor_callv):
* API/glib/JSCValue.h:
* API/glib/docs/jsc-glib-4.0-sections.txt:

Tools:

Add test cases for the new API.

* TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(testJSCFunction):
(testJSCObject):

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

15 months agoUse PlatformStrategies to switch between WebKit and WebKitLegacy checking of CSP...
dbates@webkit.org [Fri, 11 May 2018 05:34:20 +0000 (05:34 +0000)]
Use PlatformStrategies to switch between WebKit and WebKitLegacy checking of CSP frame-ancestors and X-Frame-Options
https://bugs.webkit.org/show_bug.cgi?id=185412

Reviewed by Ryosuke Niwa.

Source/WebCore:

Consolidate the knowledge on how to determine whether security checks were performed on a ResourceResponse
into LoaderStrategy::havePerformedSecurityChecks() (default implementation returns false) and query it
to determine whether CSP frame-ancestors and X-Frame-Options need to be checked for a ResourceResponse.

Additionally, rename LoaderStrategy::isDoingLoadingSecurityChecks() to shouldPerformSecurityChecks()
for consistency with havePerformedSecurityChecks(). Querying shouldPerformSecurityChecks() answers the
question of whether the loader strategy is responsible for performing security checks when building up
a ResourceRequest to have the loader strategy load. And LoaderStrategy::havePerformedSecurityChecks()
is used to determine whether the loader strategy performed these security checks for a given ResourceResponse.

* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::didReceiveResponse):
(WebCore::InspectorNetworkAgent::didFinishLoading):
(WebCore::isResponseProbablyComingFromNetworkProcess): Deleted.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/DocumentThreadableLoader.cpp:
(WebCore::shouldPerformSecurityChecks):
(WebCore::DocumentThreadableLoader::shouldSetHTTPHeadersToKeep const):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::isDoingSecurityChecksInNetworkProcess): Deleted.
(WebCore::isResponseComingFromNetworkProcess): Deleted.
* loader/LoaderStrategy.cpp:
* loader/LoaderStrategy.h:
* page/Settings.yaml: Remove setting networkProcessCSPFrameAncestorsCheckingEnabled as we now make
use of the loader strategy to determine whether to perform CSP frame-ancestors and X-Frame-Options
checking in DocumentLoader.
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::setSource): Added an ASSERT to catch the programming error of setting
source to ResourceResponse::Source::Unknown. This source type represents an uninitialized ResourceResponse.

Source/WebKit:

Update code for renaming and write in terms of WebLoaderStrategy::shouldPerformSecurityChecks()
instead of explicitly querying RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess().

* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
(WebKit::WebLoaderStrategy::shouldPerformSecurityChecks const):
(WebKit::WebLoaderStrategy::havePerformedSecurityChecks const):
(WebKit::WebLoaderStrategy::isDoingLoadingSecurityChecks const): Deleted.
* WebProcess/Network/WebLoaderStrategy.h:
* WebProcess/WebPage/WebPage.cpp:

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

15 months agoLookup sometimes shows a second yellow highlight on top of WebKit's TextIndicator
timothy_horton@apple.com [Fri, 11 May 2018 05:30:43 +0000 (05:30 +0000)]
Lookup sometimes shows a second yellow highlight on top of WebKit's TextIndicator
https://bugs.webkit.org/show_bug.cgi?id=185538
<rdar://problem/38817825>

Reviewed by Sam Weinig.

* editing/mac/DictionaryLookup.mm:
(WebCore::showPopupOrCreateAnimationController):
Options can be nil, in which case we can't mutableCopy it and add
LUTermOptionDisableSearchTermIndicator. Instead, create a new dictionary,
and add the items from options, if it's not nil.

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

15 months agoREGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
rniwa@webkit.org [Fri, 11 May 2018 05:00:23 +0000 (05:00 +0000)]
REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182589

Reviewed by Wenson Hsieh.

This is a speculative fix for the test since I can't reproduce the flakiness locally. Because r227983 makes
the layout update async, I suspect the focus change which occurs to the keygen having autofocus attribute
isn't updating the layout in time for notifyDone call. Manually update the layout before/after the test.

Also wait for the load event to figure before starting the test since layout, etc... may not be updated
immediately after DOMContentLoaded.

* fast/dom/adopt-node-crash-2.html:

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

15 months agoFix the build after r231393
timothy_horton@apple.com [Fri, 11 May 2018 04:41:24 +0000 (04:41 +0000)]
Fix the build after r231393
​https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

* Configurations/WebKit.xcconfig:

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

15 months ago[JSC] Make return types of construction functions tight
utatane.tea@gmail.com [Fri, 11 May 2018 04:38:56 +0000 (04:38 +0000)]
[JSC] Make return types of construction functions tight
https://bugs.webkit.org/show_bug.cgi?id=185509

Reviewed by Saam Barati.

Array and Object construction functions should return strict types instead of returning JSObject*/JSValue.

* runtime/ArrayConstructor.cpp:
(JSC::constructArrayWithSizeQuirk):
* runtime/ArrayConstructor.h:
* runtime/ObjectConstructor.h:
(JSC::constructEmptyObject):

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

15 months ago[JSC] Object.assign for final objects should be faster
utatane.tea@gmail.com [Fri, 11 May 2018 03:38:10 +0000 (03:38 +0000)]
[JSC] Object.assign for final objects should be faster
https://bugs.webkit.org/show_bug.cgi?id=185348

Reviewed by Saam Barati.

JSTests:

* stress/object-assign-fast-path.js: Added.
(shouldBe):
(checkProperty):

Source/JavaScriptCore:

Object.assign is so heavily used to clone an object. For example, speedometer react-redux can be significantly
improved if Object.assign becomes fast. It is worth adding a complex fast path to accelerate the major use cases.

If enumerating properties of source objects and putting properties to target object are non observable,
we can avoid hash table looking up of source object properties. We can enumerate object property entries,
and put them to target object. This patch adds this fast path to Object.assign implementation.

When enumerating properties, we need to ensure that the given |source| object does not include "__proto__"
property since we cannot perform fast [[Put]] for the |target| object. We add a new flag
"HasUnderscoreProtoPropertyExcludingOriginalProto" to Structure to track this state.

This improves object-assign.es6 by 1.85x.

                                baseline                  patched

    object-assign.es6      368.6132+-8.3508     ^    198.8775+-4.9042        ^ definitely 1.8535x faster

And Speedometer2.0 React-Redux-TodoMVC's total time is improved from 490ms to 431ms.

* runtime/JSObject.h:
* runtime/JSObjectInlines.h:
(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::canPerformFastPutInline):
* runtime/ObjectConstructor.cpp:
(JSC::objectConstructorAssign):
* runtime/Structure.cpp:
(JSC::Structure::Structure):
* runtime/Structure.h:
* runtime/StructureInlines.h:
(JSC::Structure::forEachProperty):
(JSC::Structure::add):

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

15 months ago[Build Bot] Restore configuration options to the Test262 Runner
commit-queue@webkit.org [Fri, 11 May 2018 02:07:25 +0000 (02:07 +0000)]
[Build Bot] Restore configuration options to the Test262 Runner

During the switch from the previous Test262 runner to the new one,
a call for an extra configurations options got removed.

This call is important to inform the script to find the debug or
release build of JSC. It's being restored in this patch.

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

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-10
Reviewed by Yusuke Suzuki.

* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunTest262Tests):

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

15 months agoStorage Access API: Extend lifetime of cookies on successful user approval
wilander@apple.com [Fri, 11 May 2018 01:59:24 +0000 (01:59 +0000)]
Storage Access API: Extend lifetime of cookies on successful user approval
https://bugs.webkit.org/show_bug.cgi?id=185534
<rdar://problem/40064547>

Reviewed by Brent Fulgham.

* UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):
    Picks up the experimental feature flag.
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal):
    Now updates the domain's user interaction timestamp if the user was
    prompted for this access.
* UIProcess/WebResourceLoadStatisticsStore.h:

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

15 months agoREGRESSION (r230998): Cannot stream API test output
jbedard@apple.com [Fri, 11 May 2018 00:42:03 +0000 (00:42 +0000)]
REGRESSION (r230998): Cannot stream API test output
https://bugs.webkit.org/show_bug.cgi?id=185090

Reviewed by Ryosuke Niwa.

Change run-api-tests so that the stdout and stderr of a test will be printed
before it's result. If -v is passed, the output of single test runs will be
streamed.

* Scripts/webkitpy/api_tests/run_api_tests.py:
(run): Use print_timestamps flag.
(parse_args): Add timestamps option to print timestamps in the log.
* Scripts/webkitpy/api_tests/runner.py:
(Runner): Add running status.
(Runner.__init__): Add number of workers and a flag to detect if a newline
is needed at the beginning of a log line.
(Runner.run): Turn off most logging coming from server process since it is
not constructive for API tests.
(Runner.handle): Add new log message to stream stdout and stderr instead of
caching values until the test run finished.
(_Worker._run_single_test): Log stdout and stderr in real time.
(_Worker._run_shard_with_binary): Log stderr and stdout buffer before ending
the test.
(_Worker.post): Provide a post with explicitly enumerated argument names.
* Scripts/webkitpy/layout_tests/views/metered_stream.py:
(MeteredStream.__init__): Differentiate verbose logging and logging with timestamps.
(MeteredStream.write): Allow for verbose logging without timestamps.
* Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:
(RegularTest): Add print_timestamps flag.
(RegularTest.setUp):
(RegularTest.test_logging_not_included):
(VerboseTest.test_log_args):
(VerboseWithOutTimestamp):
(VerboseWithOutTimestamp.test_basic): Add test for verbose logging without timestamps.

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

15 months agobuild-webkit can erroneously warn about Xcode being too old
rniwa@webkit.org [Fri, 11 May 2018 00:06:32 +0000 (00:06 +0000)]
build-webkit can erroneously warn about Xcode being too old
https://bugs.webkit.org/show_bug.cgi?id=185533

Reviewed by Dan Bernstein.

Don't assume the version number is always a single digit.

* Scripts/webkitdirs.pm:
(determineXcodeVersion):

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

15 months ago[iOS] Release page load process assertion if the screen is locked
cdumez@apple.com [Thu, 10 May 2018 23:35:32 +0000 (23:35 +0000)]
[iOS] Release page load process assertion if the screen is locked
https://bugs.webkit.org/show_bug.cgi?id=185333

Reviewed by Geoff Garen.

We normally take a background process assertion during page loads to allow them to complete
even if the tab / app is backgrounded. We should however avoid doing so when the backgrounding
is caused by the screen locking. Keeping the process assertion in this case would prevent the
whole device from sleeping longer than it should, thus negatively impacting power.

* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationState):
(WebKit::NavigationState::releaseNetworkActivityToken):
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidEnterBackground):

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

15 months ago[WinCairo][Buildbot] Test bots need to acquire WinCairoRequirements.
ross.kirsling@sony.com [Thu, 10 May 2018 23:14:53 +0000 (23:14 +0000)]
[WinCairo][Buildbot] Test bots need to acquire WinCairoRequirements.
https://bugs.webkit.org/show_bug.cgi?id=185528

Reviewed by Lucas Forschler.

* BuildSlaveSupport/build.webkit.org-config/factories.py:
(TestFactory.__init__):
* BuildSlaveSupport/build.webkit.org-config/steps.py:
(InstallWinCairoDependencies):

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

15 months agoUpdate Test262 tests through the new import script - 20180509
commit-queue@webkit.org [Thu, 10 May 2018 22:29:29 +0000 (22:29 +0000)]
Update Test262 tests through the new import script - 20180509
https://bugs.webkit.org/show_bug.cgi?id=185482

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-10
Reviewed by Michael Saboff.

Also update the test262/expecatations.yaml with the recent imported files.

* test262/expectations.yaml:
* test262/harness/compareIterator.js: Added.
(assert.compareIterator):
* test262/harness/nativeFunctionMatcher.js:
(const.assertToStringOrNativeFunction):
(const.assertNativeFunction):
* test262/harness/regExpUtils.js:
* test262/harness/testIntl.js:
(getInvalidLanguageTags):
* test262/harness/testTypedArray.js:
* test262/harness/wellKnownIntrinsicObjects.js: Added.
(WellKnownIntrinsicObjects.forEach.wkio.catch):
* test262/latest-changes-summary.txt: Added.
* test262/test/annexB/language/eval-code/direct/block-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
(catch):
* test262/test/annexB/language/eval-code/direct/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.
(catch):
* test262/test/annexB/language/eval-code/direct/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
(catch):
* test262/test/annexB/language/function-code/block-decl-nested-blocks-with-fun-decl.js: Added.
(g.f):
(g):
* test262/test/annexB/language/function-code/block-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/block-decl-strict.js.
(catch):
(f):
* test262/test/annexB/language/function-code/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
(catch):
(switch.case.1):
(switch):
* test262/test/annexB/language/function-code/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
(catch):
(switch.default):
(switch):
* test262/test/built-ins/Array/prototype/filter/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
(r.a.filter):
* test262/test/built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
(allowProxyTraps.has):
(fromIndex.valueOf):
* test262/test/built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
(allowProxyTraps.has):
(fromIndex.valueOf):
* test262/test/built-ins/Array/prototype/map/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
(r.a.map):
* test262/test/built-ins/Array/prototype/slice/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Array/prototype/splice/property-traps-order-with-species.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Array/prototype/splice/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Atomics/Symbol.toStringTag.js:
* test262/test/built-ins/Atomics/add/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/non-views.js:
* test262/test/built-ins/Atomics/add/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/non-views.js:
* test262/test/built-ins/Atomics/and/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/good-views.js:
(testWithTypedArrayConstructors):
(view): Deleted.
* test262/test/built-ins/Atomics/compareExchange/non-views.js:
* test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/non-views.js:
* test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/isLockFree/corner-cases.js:
(hide):
* test262/test/built-ins/Atomics/isLockFree/value.js:
(testIsLockFree): Deleted.
* test262/test/built-ins/Atomics/load/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/non-views.js:
* test262/test/built-ins/Atomics/load/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/non-views.js:
* test262/test/built-ins/Atomics/or/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/prop-desc.js:
* test262/test/built-ins/Atomics/proto.js:
* test262/test/built-ins/Atomics/store/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/good-views.js:
(testWithTypedArrayConstructors):
(ToInteger):
* test262/test/built-ins/Atomics/store/non-views.js:
* test262/test/built-ins/Atomics/store/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/non-views.js:
* test262/test/built-ins/Atomics/sub/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wait/bad-range.js: Copied from JSTests/test262/test/built-ins/Atomics/wake/bad-range.js.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wait/cannot-suspend-throws.js:
* test262/test/built-ins/Atomics/wait/did-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/false-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/false-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/good-views.js:
(r.getReport):
(getReport):
* test262/test/built-ins/Atomics/wait/nan-for-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/negative-index-throws.js:
* test262/test/built-ins/Atomics/wait/negative-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-timeout.js.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/negative-timeout.js:
(262.agent.start.262.agent.receiveBroadcast): Deleted.
(getReport): Deleted.
* test262/test/built-ins/Atomics/wait/no-spurious-wakeup.js:
(getReport):
* test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js:
* test262/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
* test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js:
* test262/test/built-ins/Atomics/wait/not-an-object-throws.js:
* test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js:
* test262/test/built-ins/Atomics/wait/null-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/null-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/object-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/object-for-timeout.js:
(valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js:
* test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js:
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-index-throws.js:
(poisonedToPrimitive.Symbol.toPrimitive):
(poisoned.valueOf): Deleted.
(poisonedWithString.get valueOf): Deleted.
(poisonedToPrimitive.get Symbol): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js:
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-value-throws.js: Added.
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
* test262/test/built-ins/Atomics/wait/true-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/true-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/undefined-for-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
* test262/test/built-ins/Atomics/wait/value-not-equal.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js:
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/was-woken-before-timeout.js:
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/was-woken.js:
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wake/count-boundary-cases.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/counts.js.
* test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/count-from-nans.js: Added.
* test262/test/built-ins/Atomics/wake/count-symbol-throws.js: Added.
* test262/test/built-ins/Atomics/wake/count-tointeger-throws-then-wake-throws.js: Added.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/good-views.js:
* test262/test/built-ins/Atomics/wake/negative-count.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/wake-negative.js.
* test262/test/built-ins/Atomics/wake/negative-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-index-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/non-shared-bufferdata-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/non-views.js:
* test262/test/built-ins/Atomics/wake/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wake/not-a-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/not-an-object-throws.js: Added.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/null-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/out-of-range-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wake/symbol-for-index-throws.js: Added.
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
* test262/test/built-ins/Atomics/wake/undefined-index-defaults-to-zero.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js.
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
* test262/test/built-ins/Atomics/wake/wake-all-on-loc.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-all.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-in-order.js:
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-nan.js:
(getReport):
* test262/test/built-ins/Atomics/wake/wake-one.js:
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-rewake-noop.js: Added.
(getReport):
(waitUntil):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/wake-two.js:
(getReport):
* test262/test/built-ins/Atomics/wake/wake-with-no-agents-waiting.js: Added.
(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-with-no-matching-agents-waiting.js: Added.
(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-zero.js:
(i.262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/xor/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/non-views.js:
* test262/test/built-ins/Atomics/xor/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-errors.js:
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-toprimitive.js:
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-wrapped-values.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-errors.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-toprimitive.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-wrapped-values.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-errors.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-toprimitive.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-wrapped-values.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-errors.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-toprimitive.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-wrapped-values.js:
* test262/test/built-ins/BigInt/constructor-empty-string.js:
* test262/test/built-ins/BigInt/constructor-from-binary-string.js:
* test262/test/built-ins/BigInt/constructor-from-decimal-string.js:
* test262/test/built-ins/BigInt/constructor-from-hex-string.js:
* test262/test/built-ins/BigInt/constructor-from-octal-string.js:
* test262/test/built-ins/BigInt/constructor-from-string-syntax-errors.js:
* test262/test/built-ins/BigInt/constructor-integer.js: Added.
* test262/test/built-ins/BigInt/constructor-trailing-leading-spaces.js:
* test262/test/built-ins/BigInt/issafeinteger-true.js: Removed.
* test262/test/built-ins/BigInt/out-of-bounds-integer-rangeerror.js: Removed.
* test262/test/built-ins/BigInt/prototype/Symbol.toStringTag.js:
* test262/test/built-ins/BigInt/prototype/toString/default-radix.js: Added.
* test262/test/built-ins/BigInt/prototype/toString/thisbigintvalue-not-valid-throws.js:
* test262/test/built-ins/BigInt/prototype/valueOf/cross-realm.js: Added.
* test262/test/built-ins/BigInt/tostring-throws.js: Copied from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
* test262/test/built-ins/BigInt/valueof-throws.js: Renamed from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
(BigInt.valueOf):
* test262/test/built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js:
(values.forEach):
* test262/test/built-ins/Function/prototype/bind/length-exceeds-int32.js: Added.
(f):
* test262/test/built-ins/Function/prototype/toString/anonymous-intrinsics.js: Removed.
* test262/test/built-ins/Function/prototype/toString/bound-function.js:
(assertNativeFunction):
(let.f): Deleted.
* test262/test/built-ins/Function/prototype/toString/built-in-function-object.js: Added.
* test262/test/built-ins/Function/prototype/toString/intrinsics.js: Removed.
* test262/test/built-ins/Function/prototype/toString/proxy-arrow-function.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-async-function.js: Added.
(assertNativeFunction.new.Proxy.async):
* test262/test/built-ins/Function/prototype/toString/proxy-async-generator-function.js: Added.
(assertNativeFunction.new.Proxy.async):
* test262/test/built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js: Added.
(assertNativeFunction.new.Proxy.async.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-async-method-definition.js: Added.
(assertNativeFunction.new.Proxy.async.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-bound-function.js: Added.
(assertNativeFunction.new.Proxy):
(bind):
* test262/test/built-ins/Function/prototype/toString/proxy-class.js: Added.
(assertNativeFunction):
* test262/test/built-ins/Function/prototype/toString/proxy-function-expression.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-generator-function.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-method-definition.js: Added.
(assertNativeFunction.new.Proxy.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-non-callable-throws.js: Added.
* test262/test/built-ins/Function/prototype/toString/proxy.js: Removed.
* test262/test/built-ins/Function/prototype/toString/well-known-intrinsic-object-functions.js: Added.
(WellKnownIntrinsicObjects.forEach):
* test262/test/built-ins/JSON/prop-desc.js: Added.
* test262/test/built-ins/Math/acosh/nan-returns.js:
* test262/test/built-ins/Math/asinh/asinh-specialVals.js:
* test262/test/built-ins/Math/atanh/atanh-specialVals.js:
* test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
* test262/test/built-ins/Math/cbrt/prop-desc.js:
* test262/test/built-ins/Math/cosh/cosh-specialVals.js:
* test262/test/built-ins/Math/expm1/expm1-specialVals.js:
* test262/test/built-ins/Math/log10/Log10-specialVals.js:
* test262/test/built-ins/Math/log2/log2-basicTests.js:
* test262/test/built-ins/Math/prop-desc.js:
* test262/test/built-ins/Math/sign/sign-specialVals.js:
* test262/test/built-ins/Math/sinh/sinh-specialVals.js:
* test262/test/built-ins/Math/tanh/tanh-specialVals.js:
* test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
* test262/test/built-ins/Math/trunc/trunc-specialVals.js:
* test262/test/built-ins/Object/assign/strings-and-symbol-order.js: Added.
* test262/test/built-ins/Object/keys/property-traps-order-with-proxied-array.js: Added.
(get t):
* test262/test/built-ins/Reflect/Reflect.js: Removed.
* test262/test/built-ins/Reflect/prop-desc.js: Added.
* test262/test/built-ins/Reflect/properties.js: Removed.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-this-throws.js: Added.
(obj.get Symbol):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/length.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/name.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/prop-desc.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: Added.
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-species-throws.js: Added.
(regexp.get Symbol):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-undefined.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-not-constructor.js: Added.
(callMatchAll):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-null-or-undefined.js: Added.
(TestWithConstructor):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-throws.js: Added.
(regexp.Symbol.species):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor.js: Added.
(regexp.Symbol.species):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-global-throws.js: Added.
(regexp.Symbol.species):
(get assert):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-unicode-throws.js: Added.
(regexp.Symbol.species):
(get assert):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring-throws.js: Added.
(obj.valueOf):
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring.js: Added.
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-lastindex-cached.js: Added.
(regexp.lastIndex.valueOf):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-not-object-throws.js: Added.
(callMatchAll):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tolength-lastindex-throws.js: Added.
(regexp.lastIndex.valueOf):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags-throws.js: Added.
(value.valueOf):
(value.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags.js: Added.
(value.toString):
* test262/test/built-ins/RegExpStringIteratorPrototype/Symbol.toStringTag.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/ancestry.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-call-throws.js: Added.
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-get-throws.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js: Added.
(return.get string_appeared_here):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring-throws.js: Added.
(return.toString):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js: Added.
(execResult.get string_appeared_here):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-not-callable.js: Added.
(TestWithRegExpExec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec.js: Added.
(callNextWithExecReturnValue.RegExp.prototype.exec):
(callNextWithExecReturnValue):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/length.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/name.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration-global.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-missing-internal-slots.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/prop-desc.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/regexp-tolength-lastindex-throws.js: Added.
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js: Added.
(callNext):
* test262/test/built-ins/String/prototype/matchAll/length.js: Added.
* test262/test/built-ins/String/prototype/matchAll/name.js: Added.
* test262/test/built-ins/String/prototype/matchAll/prop-desc.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-is-null.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-is-undefined.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js: Added.
(obj.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js: Added.
(regexp.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js: Added.
(RegExp.prototype.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js: Added.
(RegExp.prototype.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js: Added.
* test262/test/built-ins/Symbol/matchAll/cross-realm.js: Added.
* test262/test/built-ins/Symbol/matchAll/prop-desc.js: Added.
* test262/test/harness/testTypedArray.js:
* test262/test/intl402/Array/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
* test262/test/intl402/Intl/getCanonicalLocales/invalid-tags.js:
* test262/test/intl402/Locale/constructor-newtarget-undefined.js: Added.
* test262/test/intl402/Locale/constructor-options-calendar-invalid.js: Added.
(const.invalidCalendarOption.of.invalidCalendarOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-calendar-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-language-invalid.js: Added.
(const.invalidLanguageOption.of.invalidLanguageOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-language-valid.js: Added.
(toString):
* test262/test/intl402/Locale/constructor-options-region-invalid.js: Added.
(const.invalidRegionOption.of.invalidRegionOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-region-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-script-invalid.js: Added.
(const.invalidScriptOption.of.invalidScriptOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-script-valid.js: Added.
(toString):
* test262/test/intl402/Locale/function-prototype.js: Added.
* test262/test/intl402/Locale/instance-extensibility.js: Added.
* test262/test/intl402/Locale/instance.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-boolean.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-null.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-number.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-symbol.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-undefined.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws.js: Added.
(const.invalidTag.of.getInvalidLanguageTags):
* test262/test/intl402/Locale/length.js: Added.
* test262/test/intl402/Locale/name.js: Added.
* test262/test/intl402/Locale/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/constructor.js: Added.
* test262/test/intl402/Locale/prototype/maximize/length.js: Added.
* test262/test/intl402/Locale/prototype/maximize/name.js: Added.
* test262/test/intl402/Locale/prototype/maximize/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/toStringTag.js: Added.
* test262/test/intl402/TypedArray/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
(testWithTypedArrayConstructors):
* test262/test/language/asi/S7.9_A11_T8.js:
(else.x.1): Deleted.
* test262/test/language/asi/S7.9_A4.js:
(catch):
* test262/test/language/asi/S7.9_A5.1_T1.js:
* test262/test/language/asi/S7.9_A5.3_T1.js:
* test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js: Added.
(g.f):
(g):
* test262/test/language/destructuring/binding/initialization-requires-object-coercible-null.js:
* test262/test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js:
* test262/test/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js:
* test262/test/language/destructuring/binding/syntax/array-elements-with-initializer.js:
* test262/test/language/destructuring/binding/syntax/array-elements-with-object-patterns.js:
* test262/test/language/destructuring/binding/syntax/array-elements-without-initializer.js:
* test262/test/language/destructuring/binding/syntax/array-pattern-with-elisions.js:
* test262/test/language/destructuring/binding/syntax/array-pattern-with-no-elements.js:
* test262/test/language/destructuring/binding/syntax/array-rest-elements.js:
* test262/test/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js:
* test262/test/language/destructuring/binding/syntax/property-list-bindings-elements.js:
* test262/test/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js:
* test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
* test262/test/language/destructuring/binding/syntax/property-list-with-property-list.js:
* test262/test/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js:
* test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.
* test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.
(catch):
* test262/test/language/eval-code/direct/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
* test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.
* test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.
(catch):
* test262/test/language/eval-code/direct/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.
* test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-source.js.
* test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
(catch):
* test262/test/language/eval-code/direct/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
* test262/test/language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-body-position.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js: Added.
(async.a):
* test262/test/language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js: Added.
(async.a):
* test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js: Added.
* test262/test/language/expressions/async-generator/generator-created-after-decl-inst.js: Added.
(g.async.a):
* test262/test/language/expressions/class/class-name-ident-await-escaped-module.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await-module.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-let-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-let.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-static-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-static.js: Added.
* test262/test/language/expressions/class/class-name-ident-yield-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-yield.js: Added.
(C):
* test262/test/language/expressions/class/constructor-this-tdz-during-initializers.js: Added.
(Base):
(C):
* test262/test/language/expressions/class/fields-run-once-on-double-super.js: Added.
(Base):
(C):
* test262/test/language/expressions/generators/generator-created-after-decl-inst.js: Added.
(g):
* test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-boolean.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-string.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-string.js: Added.
* test262/test/language/expressions/less-than/bigint-and-boolean.js: Added.
* test262/test/language/expressions/less-than/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/less-than/bigint-and-string.js: Added.
* test262/test/language/expressions/object/method-definition/generator-super-prop-param.js:
* test262/test/language/function-code/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/block-decl-strict.js.
* test262/test/language/function-code/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
* test262/test/language/function-code/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
* test262/test/language/line-terminators/S7.3_A2.3.js: Removed.
* test262/test/language/line-terminators/S7.3_A2.4.js: Removed.
* test262/test/language/literals/regexp/invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-negative-lookbehind.js: Renamed from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/string/line-separator-eval.js: Added.
* test262/test/language/literals/string/line-separator.js: Added.
* test262/test/language/literals/string/paragraph-separator-eval.js: Added.
* test262/test/language/literals/string/paragraph-separator.js: Added.
* test262/test/language/module-code/early-strict-mode.js:
* test262/test/language/statements/async-generator/generator-created-after-decl-inst.js: Added.
(async.g):
* test262/test/language/statements/break/S12.8_A8_T1.js:
(catch):
* test262/test/language/statements/break/S12.8_A8_T2.js:
(catch):
* test262/test/language/statements/class/class-name-ident-await-escaped-module.js: Added.
(aw):
* test262/test/language/statements/class/class-name-ident-await-escaped.js: Added.
(aw):
* test262/test/language/statements/class/class-name-ident-await-module.js: Added.
(await):
* test262/test/language/statements/class/class-name-ident-await.js: Added.
(await):
* test262/test/language/statements/class/class-name-ident-let-escaped.js: Added.
(l):
* test262/test/language/statements/class/class-name-ident-let.js: Added.
(let):
* test262/test/language/statements/class/class-name-ident-static-escaped.js: Added.
(st):
* test262/test/language/statements/class/class-name-ident-static.js: Added.
* test262/test/language/statements/class/class-name-ident-yield-escaped.js: Added.
(yi):
* test262/test/language/statements/class/class-name-ident-yield.js: Added.
(yield):
* test262/test/language/statements/continue/S12.7_A8_T1.js:
(catch):
* test262/test/language/statements/continue/S12.7_A8_T2.js:
(catch):
* test262/test/language/statements/generators/generator-created-after-decl-inst.js: Added.
(g):
* test262/test/language/statements/try/early-catch-duplicates.js:
* test262/test/language/statements/try/early-catch-function.js: Added.
(f.catch.e):
(f):
* test262/test/language/statements/try/early-catch-lex.js:
* test262/test/language/statements/try/early-catch-var.js:
* test262/test262-Revision.txt:

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

15 months agoDFG CFA should pick the right time to inject OSR entry data
fpizlo@apple.com [Thu, 10 May 2018 22:23:12 +0000 (22:23 +0000)]
DFG CFA should pick the right time to inject OSR entry data
https://bugs.webkit.org/show_bug.cgi?id=185530

Reviewed by Saam Barati.

Previously, we would do a bonus run of CFA to inject OSR entry data. This patch makes us inject
OSR entry data as part of the normal flow of CFA, which reduces the total number of CFA
reexecutions while minimizing the likelihood that we have CFA execute constants in paths that
would eventually LUB to non-constant.

This looks like almost a 1% speed-up on SunSpider-CompileTime. All of the logic for preventing
execution over constants is for V8Spider-CompileTime/regexp, which would otherwise do a lot of
useless regexp/string execution in the compiler.

* dfg/DFGBlockSet.h:
(JSC::DFG::BlockSet::remove):
* dfg/DFGCFAPhase.cpp:
(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::injectOSR):
(JSC::DFG::CFAPhase::performBlockCFA):

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

15 months agoRemove Unused Chinese/Japanese Reanalyze code
megan_gardner@apple.com [Thu, 10 May 2018 22:06:23 +0000 (22:06 +0000)]
Remove Unused Chinese/Japanese Reanalyze code
https://bugs.webkit.org/show_bug.cgi?id=185529

Reviewed by Wenson Hsieh.

The code for this has actually been completely removed from UIKit. This is unreachable
dead code that should be removed if just for cleanliness.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _reanalyzeForWebView:]): Deleted.

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

15 months ago[iOS] Apps that are not visible may not get suspended if they trigger page loads...
cdumez@apple.com [Thu, 10 May 2018 22:02:31 +0000 (22:02 +0000)]
[iOS] Apps that are not visible may not get suspended if they trigger page loads while in the background
https://bugs.webkit.org/show_bug.cgi?id=185318

Reviewed by Geoffrey Garen.

Whenever there is a page load going on, we take a background process assertion to delay process
suspension until this load completes. However, there is also a 3 seconds grace period after
a load is complete to allow the app to trigger a new load shortly after. This grace period was
introduced to support use cases where a visible app does loads in an offscreen view. However,
it can be abused by apps running in the background as they could trigger new page loads while
in the background to delay process suspension. This patch tightens the policy so that only
apps that are currently visible get to use this grace period. Apps that are in the background
get to finish their current load and will then get suspended.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):

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

15 months ago[Extra zoom mode] fast/visual-viewport/extrazoom/layout-viewport-after-scrolling...
wenson_hsieh@apple.com [Thu, 10 May 2018 21:56:58 +0000 (21:56 +0000)]
[Extra zoom mode] fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=185517
<rdar://problem/40112983>

Reviewed by Tim Horton.

Adjusts some existing layout tests — see below for more detail.

* fast/css/extrazoom/viewport-units-shrink-to-fit.html:

Remove calls to wait for the next presentation update which are no longer necessary after r231606.

* fast/viewport/extrazoom/viewport-change-min-device-width.html:

Wait for the next visible content rect update, when the unobscured content rect is guaranteed to be up to date.

* fast/visual-viewport/extrazoom/layout-viewport-after-scrolling-and-resizing.html:

Wait for the next visible content rect update rather than the next presentation update (i.e. remote layer tree
commit). This is because the layout viewport's custom fixed position rect is propagated in the visible content
rect update flow, and ensuring a presentation update is insufficient to guarantee that the layout viewport is up
to date.

* resources/ui-helper.js:
(window.UIHelper.ensureVisibleContentRectUpdate):

Add a new test helper to wait for the next presentation update.

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

15 months agoFix some -Wstring-op-truncation warnings
mcatanzaro@igalia.com [Thu, 10 May 2018 21:46:52 +0000 (21:46 +0000)]
Fix some -Wstring-op-truncation warnings
https://bugs.webkit.org/show_bug.cgi?id=185496

Reviewed by Alex Christensen.

Source/ThirdParty:

Disable this warning when building gtest.

* gtest/CMakeLists.txt:

Tools:

We have an off-by-one in the use of strncpy. The strings would not be null-terminated if
the input was too long. Ensure the buffers are zero-initialized so we don't need to manually
set the last bucket to NUL.

* TestWebKitAPI/Tests/WTF/AtomicString.cpp:
(TestWebKitAPI::testAtomicStringNumber):
* TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::testStringNumberFixedPrecision):
(TestWebKitAPI::testStringNumberFixedWidth):
(TestWebKitAPI::testStringNumber):

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

15 months agoInPlaceAbstractState::beginBasicBlock shouldn't copy all m_variables every time
fpizlo@apple.com [Thu, 10 May 2018 21:31:49 +0000 (21:31 +0000)]
InPlaceAbstractState::beginBasicBlock shouldn't copy all m_variables every time
https://bugs.webkit.org/show_bug.cgi?id=185452

Reviewed by Michael Saboff.

We were spending a lot of time in beginBasicBlock() just copying the state of all variables
from the block head to InPlaceAbstractState::m_variables. It is necessary for
InPlaceAbstractState to have its own copy since we need to mutate it separately from
block->valuesAtHead. But most variables are untouched by most basic blocks, so this was a lot
of superfluous work.

This change adds a bitvector called m_activeVariables that tracks which variables have been
copied. We lazily copy the variables on first use. Variables that were never copied also have
a simplified merging path, which just needs to consider if the variable got clobbered between
head and tail.

This is a 1.5% speed-up on SunSpider-CompileTime and a 1.7% speed-up on V8Spider-CompileTime.

* bytecode/Operands.h:
(JSC::Operands::argumentIndex const):
(JSC::Operands::localIndex const):
(JSC::Operands::argument):
(JSC::Operands::argument const):
(JSC::Operands::local):
(JSC::Operands::local const):
(JSC::Operands::operandIndex const):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::fastForwardFromTo):
* dfg/DFGCFAPhase.cpp:
(JSC::DFG::CFAPhase::performForwardCFA):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::variablesForDebugging):
(JSC::DFG::InPlaceAbstractState::activateAllVariables):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::InPlaceAbstractState::activateVariable):
(JSC::DFG::InPlaceAbstractState::mergeStateAtTail): Deleted.
* dfg/DFGInPlaceAbstractState.h:
(JSC::DFG::InPlaceAbstractState::variableAt):
(JSC::DFG::InPlaceAbstractState::operand):
(JSC::DFG::InPlaceAbstractState::local):
(JSC::DFG::InPlaceAbstractState::argument):
(JSC::DFG::InPlaceAbstractState::activateVariableIfNecessary):
(JSC::DFG::InPlaceAbstractState::variablesForDebugging): Deleted.

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

15 months agoWeb Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when...
mattbaker@apple.com [Thu, 10 May 2018 20:59:07 +0000 (20:59 +0000)]
Web Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when page adds attribute event listener
https://bugs.webkit.org/show_bug.cgi?id=181580
<rdar://problem/36461309>

Reviewed by Brian Burg.

Source/WebCore:

EventTarget should pass newly added EventListeners to InspectorInstrumentation,
instead of PageDebuggerAgent assuming the last item in the EventListenerVector
is the most recently added listener. This assumption does not hold when
the new listener replaces an existing listener.

* dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::setAttributeEventListener):

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didAddEventListenerImpl):

* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didAddEventListener):

* inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::didAddEventListener):
* inspector/agents/page/PageDebuggerAgent.h:

LayoutTests:

Add new test covering the case where adding an attribute event listener
causes an existing attribute event listener to be replaced.

* inspector/debugger/async-stack-trace-expected.txt:
* inspector/debugger/async-stack-trace.html:

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

15 months ago[Win][MiniBrowser] Add a separate WndProc for the layered window
Hironori.Fujii@sony.com [Thu, 10 May 2018 20:54:12 +0000 (20:54 +0000)]
[Win][MiniBrowser] Add a separate WndProc for the layered window
https://bugs.webkit.org/show_bug.cgi?id=185460

Reviewed by Brent Fulgham.

All WK1 related code should be moved into MiniBrowser for the
preparation of Bug 184770.

The layered window was using WndProc of the main window. The
layered window is specific only for WK1. the main window will be
shared among WK1 and WK2.

This change add a new WndProc for the layer window.

* MiniBrowser/win/Common.cpp:
(WndProc): Removed code for the layered windows.
(subclassForLayeredWindow): Moved into MiniBrowser.cpp.
* MiniBrowser/win/MiniBrowser.cpp:
(MiniBrowser::prepareViews): Removed the fourth argument `viewHwnd`.
(viewWndProc): New WndProc for the layered windows.
(MiniBrowser::subclassForLayeredWindow): Moved from Common.cpp.
* MiniBrowser/win/MiniBrowser.h:
(MiniBrowser::hwnd):
* MiniBrowser/win/WinMain.cpp:
(wWinMain): Added m_viewWnd.

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

15 months ago'Cross-Origin-Options header implementation follow-up
cdumez@apple.com [Thu, 10 May 2018 20:42:01 +0000 (20:42 +0000)]
'Cross-Origin-Options header implementation follow-up
https://bugs.webkit.org/show_bug.cgi?id=185520

Reviewed by Ryosuke Niwa.

Source/WebCore:

* dom/Document.cpp:
* dom/Document.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
Using isNull() check is sufficient here as the header parsing
function will do the right thing when passed the empty string.
Also set the options directly on the window instead of the
document. The window is guaranteed to have been constructed
by then because didBeginDocument() is called DocumentWriter::begin()
which calls Document::createDOMWindow() or Document::takeDOMWindowFrom().

* page/AbstractDOMWindow.cpp:
(WebCore::AbstractDOMWindow::AbstractDOMWindow):
* page/AbstractDOMWindow.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):
* page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::RemoteDOMWindow):
* page/RemoteDOMWindow.h:
CrossOriginOptions are now stored only on the Window, not the Document.

* platform/network/HTTPParsers.cpp:
(WebCore::parseCrossOriginOptionsHeader):
Drop strippedHeader local variable as it is not strictly needed.

Source/WebKit:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameBecameRemote):

LayoutTests:

Extend layout testing to cover mixed case, multiple values and no value.

* http/wpt/cross-origin-options/cross-origin-options-header-expected.txt:
* http/wpt/cross-origin-options/cross-origin-options-header.html:

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

15 months agoDrop-down Control borders missing.
pvollan@apple.com [Thu, 10 May 2018 19:38:05 +0000 (19:38 +0000)]
Drop-down Control borders missing.
https://bugs.webkit.org/show_bug.cgi?id=185500
<rdar://problem/40093461>

Reviewed by Brent Fulgham.

Open sandbox for reading of some files in temp folder.

* WebProcess/com.apple.WebProcess.sb.in:

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

15 months agoSupport --verbose in run-javascriptcore-tests
commit-queue@webkit.org [Thu, 10 May 2018 19:11:47 +0000 (19:11 +0000)]
Support --verbose in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=185492

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-05-10
Reviewed by Daniel Bates.

* Scripts/run-javascriptcore-tests:
(runJSCStressTests):

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

15 months agoFix the build after r231393
timothy_horton@apple.com [Thu, 10 May 2018 18:54:15 +0000 (18:54 +0000)]
Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

Reviewed by Simon Fraser.

Source/WebCore:

* Configurations/WebCore.xcconfig:

Source/WTF:

* wtf/Platform.h:

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

15 months ago[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock captur...
eric.carlson@apple.com [Thu, 10 May 2018 18:36:57 +0000 (18:36 +0000)]
[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices
https://bugs.webkit.org/show_bug.cgi?id=185516
<rdar://problem/36328191>

Reviewed by Youenn Fablet.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check
+[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices.

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

15 months agoREGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility...
bfulgham@apple.com [Thu, 10 May 2018 18:31:59 +0000 (18:31 +0000)]
REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes
https://bugs.webkit.org/show_bug.cgi?id=185515
<rdar://problem/39627764>

Reviewed by Chris Fleizach.

The UIProcess needs to register for relevant Accessibility preference updates so that it can notify the
WebContent processes that screen properties have changed.

This is represented by NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification.

Tested manually with the Accessibility preferences pane.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers): Add notification observer. When the notification
is received, call 'screenPropertiesStateChanged' to message the information to the WebContent processes.
(WebKit::WebProcessPool::unregisterNotificationObservers): Clean up observer.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::screenPropertiesStateChanged): Added helper function.
* UIProcess/WebProcessPool.h:

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

15 months ago[WinCairo] Unreviewed gardening.
ross.kirsling@sony.com [Thu, 10 May 2018 17:58:20 +0000 (17:58 +0000)]
[WinCairo] Unreviewed gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/editing/deleting/delete-emoji-expected.txt:

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

15 months agotest262/Runner.pm: --failing-files uses results file not expectations
commit-queue@webkit.org [Thu, 10 May 2018 17:37:43 +0000 (17:37 +0000)]
test262/Runner.pm: --failing-files uses results file not expectations
https://bugs.webkit.org/show_bug.cgi?id=185395

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-10
Reviewed by Michael Saboff.

--failing-files arg now uses results file to find failing tests
to rerun. It will look in the test262-results directory from whereever
the script is run, or a results.yaml file can be supplied via command
line argument.
--expectations arg added for suppling expectation file.

* Scripts/test262/Runner.pm:
(processCLI):
(main):
(loadImportFile):
(findAllFailing):

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

15 months agoLog missing cues correctly
eric.carlson@apple.com [Thu, 10 May 2018 17:02:19 +0000 (17:02 +0000)]
Log missing cues correctly
https://bugs.webkit.org/show_bug.cgi?id=185499
<rdar://problem/40113821>

Reviewed by Daniel Bates.

No new tests, tested manually.

* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::removeGenericCue): Log the cue we searched for, not
the NULL cue.

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

15 months ago[LFC] Implement height computation for non-replaced inflow elements.
zalan@apple.com [Thu, 10 May 2018 16:46:54 +0000 (16:46 +0000)]
[LFC] Implement height computation for non-replaced inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185474

Reviewed by Antti Koivisto.

Initial implementation. Does not cover all the cases.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeHeight const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedHeight const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::collapsedMarginBottomFromLastChild):
(WebCore::Layout::BlockMarginCollapse::isMarginBottomCollapsedWithParent):
(WebCore::Layout::BlockMarginCollapse::isMarginTopCollapsedWithParentMarginBottom):
(WebCore::Layout::isMarginBottomCollapsedWithParent): Deleted.
* layout/blockformatting/BlockMarginCollapse.h:
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const):
* layout/inlineformatting/InlineFormattingContext.h:
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isReplaced const):
* layout/layouttree/LayoutBox.h:

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

15 months ago[GTK] Implement ImageBuffer::toBGRAData
commit-queue@webkit.org [Thu, 10 May 2018 14:50:41 +0000 (14:50 +0000)]
[GTK] Implement ImageBuffer::toBGRAData
https://bugs.webkit.org/show_bug.cgi?id=185511

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-10
Reviewed by Michael Catanzaro.

This was never implemented but will be required for the MediaStream API
tests.

* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::toBGRAData const):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::toBGRAData const):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::ImageBuffer::toBGRAData const):

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

15 months ago[GTK] Add support for settings cookies policy and storage type in MiniBrowser
carlosgc@webkit.org [Thu, 10 May 2018 08:37:37 +0000 (08:37 +0000)]
[GTK] Add support for settings cookies policy and storage type in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=185506

Reviewed by Philippe Normand.

Useful for testing and debugging.

* MiniBrowser/gtk/main.c:
(main):

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

15 months ago[EME][GStreamer] Add a handler for GStreamer protection event
commit-queue@webkit.org [Thu, 10 May 2018 07:41:36 +0000 (07:41 +0000)]
[EME][GStreamer] Add a handler for GStreamer protection event
https://bugs.webkit.org/show_bug.cgi?id=185245

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Qtdemux sends the protection event when encountered a new PSSH box (encrypted content).

The Decryptor is moved from AppendPipeline to PlaybackPipeline (see https://bugs.webkit.org/show_bug.cgi?id=181855),
thus the protection event is no longer handled because the Decryptor is not in the same pipeline as qtdemux.

AppendPipeline: httpsrc-->qtdemux-->appsink
PlaybackPipeline: appsrc-->parser--> decryptor-->decoder-->sink

This patch attaches a probe to the sink pad of the appsink in the appendPipeline in order to
catch and manage the protection event.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::appendPipelineAppsinkPadEventProbe):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::playerPrivate):

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

15 months agoREGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView...
Hironori.Fujii@sony.com [Thu, 10 May 2018 07:15:42 +0000 (07:15 +0000)]
REGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView::notifyPreferencesChanged
https://bugs.webkit.org/show_bug.cgi?id=185505

Unreviewed serious crash fix

Windows port crashes soon since Bug 184996.

* WebPreferences.cpp:
(WebPreferences::QueryInterface): Added IID_IWebPreferencesPrivate7.
* WebPreferences.h: Inherit IWebPreferencesPrivate7 instead of IWebPreferencesPrivate6.

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

15 months ago[wpe] update the TestExpectations for encrypted-media after some fixes
calvaris@igalia.com [Thu, 10 May 2018 07:11:43 +0000 (07:11 +0000)]
[wpe] update the TestExpectations for encrypted-media after some fixes
https://bugs.webkit.org/show_bug.cgi?id=185277

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Once the decryptor moved from AppendPipeline to Playbackpipeline and the patches 185242, 185244
are fixed, the encrypted-media WPT LayoutTests will no longer crash and some one will pass.

* platform/wpe/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt:

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

15 months ago[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
calvaris@igalia.com [Thu, 10 May 2018 07:11:19 +0000 (07:11 +0000)]
[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
https://bugs.webkit.org/show_bug.cgi?id=181855

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

The goal of this move is to handle the limitation of SVP (Secure Video Path) memory size.

When the decryptor is in the AppendPipeline and we use SVP, we buffer in MediaSource queue
the decrypted GstBuffers that are in SVP memory.
This behavior cause an out-of-memory error, because we are limited in SVP memory size.

By moving the decryptor in PlaybackPipeline, we avoid to buffer the decrypted GstBuffers
which use the SVP memory and we buffer the encrypted GstBuffers that are in system memory.

This new architecture also allows to start the buffering before obtaining the DRM license
and it makes easier to manage dynamic change of the license or Key.

The decryptor is auto plugged by GStreamer playbin in PlaybackPipeline.

SVP: Secure Video Path also named trusted or protected video path, it is a memory which is
protected by a hardware access control engine, it is not accessible to other unauthorised
software or hardware components.

Tests:
    media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html
    media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html

* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptSinkEventHandler):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::dumpAppendState):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineElementMessageCallback): Deleted.
(WebCore::AppendPipeline::handleElementMessage): Deleted.
(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): Deleted.
(WebCore::AppendPipeline::dispatchDecryptionStructure): Deleted.
* platform/graphics/gstreamer/mse/AppendPipeline.h:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance):
* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

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

15 months agoWebDriver: implement advance user interactions
carlosgc@webkit.org [Thu, 10 May 2018 06:52:31 +0000 (06:52 +0000)]
WebDriver: implement advance user interactions
https://bugs.webkit.org/show_bug.cgi?id=174616

Reviewed by Brian Burg.

Source/WebDriver:

Add initial implementation of action commands.

* Actions.h: Added.
(WebDriver::Action::Action):
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle MoveTargetOutOfBounds error.
(WebDriver::CommandResult::httpStatusCode const): Ditto.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::webElementIdentifier): Helper to return the web element id.
(WebDriver::Session::createElement): Use webElementIdentifier().
(WebDriver::Session::extractElementID): Ditto.
(WebDriver::Session::virtualKeyForKeySequence): Add more kay codes includes in the spec.
(WebDriver::mouseButtonForAutomation): Helper to get the mouse button string to pass to automation.
(WebDriver::Session::performMouseInteraction): Use mouseButtonForAutomation().
(WebDriver::Session::getOrCreateInputSource): Ensure an input source for given id and add it to the active input
sources.
(WebDriver::Session::inputSourceState): Return the current input source state for the given id.
(WebDriver::Session::computeInViewCenterPointOfElements): Get the in view center point for the list of elements given.
(WebDriver::automationSourceType): Helper to get the input source type to pass to automation.
(WebDriver::Session::performActions): Process the list of action by tick and generate a list of states to pass
to automation.
(WebDriver::Session::releaseActions): Reset input sources and state table and send a message to automation.
* Session.h:
* WebDriverService.cpp:
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::actionMouseButton):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::releaseActions):
* WebDriverService.h:

Source/WebKit:

Handle origin in case of mouse move transitions.

* UIProcess/Automation/Automation.json: Add MouseMoveOrigin enum and pass it as parameter of InputSourceState
together with optional node handle. Also pass the frame handle to performInteractionSequence command to find the
node in the current browsing context.
* UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ensure we reset the location.
(WebKit::SimulatedInputDispatcher::resolveLocation): Helper to resolve destination location based on current
location and mouse move origin.
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Use resolveLocation() in mouse transitions.
(WebKit::SimulatedInputDispatcher::run): Receive and save the frame ID.
(WebKit::SimulatedInputDispatcher::finishDispatching): Reset the frame ID.
* UIProcess/Automation/SimulatedInputDispatcher.h:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::computeElementLayout): Use even numbers for the callback ID to not conflict with
viewportInViewCenterPointOfElement() callbacks.
(WebKit::WebAutomationSession::didComputeElementLayout): Handle computeElementLayout() or
viewportInViewCenterPointOfElement() requests by calling the right callback depending on whether the ID is odd
or even number.
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): Send ComputeElementLayout message to the
WebProcess using odd numbers for the callback ID to not conflict with computeElementLayout() callbacks.
(WebKit::WebAutomationSession::performInteractionSequence): Handle the mouse origin and element handle.
(WebKit::WebAutomationSession::cancelInteractionSequence): Pass the frame ID to the input dispatcher.
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Automation/WebAutomationSessionMacros.h:

WebDriverTests:

Update test expectations.

* TestExpectations.json:

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

15 months ago[GTK] gtk-doc installation subdir duplicated
commit-queue@webkit.org [Thu, 10 May 2018 06:44:00 +0000 (06:44 +0000)]
[GTK] gtk-doc installation subdir duplicated
https://bugs.webkit.org/show_bug.cgi?id=185468

Patch by Jan Alexander Steffens <jan.steffens@gmail.com> on 2018-05-09
Reviewed by Carlos Garcia Campos.

The GTK docs are installed into a duplicated subdir,
e.g. /usr/share/doc/gtk-doc/html/webkit2gtk-4.0/webkit2gtk-4.0.

* Source/PlatformGTK.cmake:

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

15 months agoMarkup.dump should dump selection focus & anchor at the root node
rniwa@webkit.org [Thu, 10 May 2018 06:39:01 +0000 (06:39 +0000)]
Markup.dump should dump selection focus & anchor at the root node
https://bugs.webkit.org/show_bug.cgi?id=185497

Reviewed by Wenson Hsieh.

Added the support for logging selection end points (anchor & focus) for when they're
anchored against the root node passed to Markup.dump.

* editing/deleting/delete-across-editable-content-boundaries-1-expected.txt:
* editing/deleting/delete-image-followed-by-two-br-expected.txt:
* editing/deleting/delete-start-block-expected.txt:
* editing/deleting/delete-word-from-unstyled-div-expected.txt:
* editing/deleting/deleting-relative-positioned-special-element-expected.txt:
* editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt:
* editing/deleting/smart-delete-across-editable-boundaries-expected.txt:
* editing/execCommand/break-non-editable-blockquote-expected.txt:
* editing/execCommand/format-block-table-expected.txt:
* editing/execCommand/indent-img-twice-expected.txt:
* editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt:
* editing/inserting/5607069-2-expected.txt:
* editing/inserting/5994480-2-expected.txt:
* editing/inserting/insert-list-in-table-cell-03-expected.txt:
* editing/inserting/insert-list-in-table-cell-04-expected.txt:
* editing/inserting/insert-list-in-table-cell-07-expected.txt:
* editing/inserting/insert-list-in-table-cell-08-expected.txt:
* editing/inserting/insert-table-in-paragraph-crash-expected.txt:
* editing/pasteboard/copy-null-characters-expected.txt:
* editing/pasteboard/copy-paste-content-starting-and-ending-canvas-expected.txt:
* editing/pasteboard/paste-blockquote-and-paragraph-break-expected.txt:
* editing/pasteboard/paste-table-with-unrendered-text-nodes-expected.txt:
* editing/pasteboard/pasting-into-h6-should-not-nest-h6-expected.txt:
* editing/pasteboard/pasting-into-p-should-not-nest-p-expected.txt:
* editing/style/apply-style-atomic-expected.txt:
* fast/events/5056619-expected.txt:
* platform/ios/editing/deleting/delete-emoji-1-expected.txt:
* platform/ios/editing/deleting/delete-emoji-2-expected.txt:
* platform/ios/editing/deleting/delete-emoji-3-expected.txt:
* platform/ios/editing/deleting/delete-emoji-4-expected.txt:
* platform/ios/editing/deleting/delete-emoji-5-expected.txt:
* platform/ios/editing/deleting/delete-emoji-6-expected.txt:
* platform/ios/editing/deleting/delete-emoji-7-expected.txt:
* platform/ios/editing/deleting/delete-emoji-8-expected.txt:
* platform/ios/editing/deleting/delete-emoji-9-expected.txt:
* platform/ios/editing/deleting/delete-emoji-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt:
* platform/mac/editing/deleting/delete-emoji-1-expected.txt:
* platform/mac/editing/deleting/delete-emoji-2-expected.txt:
* platform/mac/editing/deleting/delete-emoji-3-expected.txt:
* platform/mac/editing/deleting/delete-emoji-4-expected.txt:
* platform/mac/editing/deleting/delete-emoji-5-expected.txt:
* platform/mac/editing/deleting/delete-emoji-6-expected.txt:
* platform/mac/editing/deleting/delete-emoji-7-expected.txt:
* platform/mac/editing/deleting/delete-emoji-8-expected.txt:
* platform/mac/editing/deleting/delete-emoji-9-expected.txt:
* platform/mac/editing/deleting/delete-emoji-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
* resources/dump-as-markup.js:
(Markup): Added the logging of selection markers to the root node.ß∑
(Markup._get):
(Markup._getSelectionMarkerWithIdentation): Extracted out of Markup._get.

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

15 months ago[ESNext][BigInt] Implement support for "==" operation
ticaiolima@gmail.com [Thu, 10 May 2018 04:25:49 +0000 (04:25 +0000)]
[ESNext][BigInt] Implement support for "==" operation
https://bugs.webkit.org/show_bug.cgi?id=184474

Reviewed by Yusuke Suzuki.

JSTests:

* stress/big-int-equals-basic.js: Added.
* stress/big-int-equals-to-primitive-precedence.js: Added.
* stress/big-int-equals-wrapped-value.js: Added.

Source/JavaScriptCore:

This patch is implementing support of BigInt for equals operator
following the spec semantics[1].

[1] - https://tc39.github.io/proposal-bigint/#sec-abstract-equality-comparison

* runtime/JSBigInt.cpp:
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::stringToBigInt):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::setDigit):
(JSC::JSBigInt::equalsToNumber):
(JSC::JSBigInt::compareToDouble):
* runtime/JSBigInt.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):

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

15 months agoAX: VoiceOver iframe scrolling focus jumping bug
n_wang@apple.com [Thu, 10 May 2018 02:07:34 +0000 (02:07 +0000)]
AX: VoiceOver iframe scrolling focus jumping bug
https://bugs.webkit.org/show_bug.cgi?id=176615
<rdar://problem/34333067>

Reviewed by Chris Fleizach.

Source/WebCore:

Scrolling to make elements visible is not working correctly for elements inside an
offscreen iframe. Fixed it by using RenderLayer::scrollRectToVisible() to handle
scrolling more properly.

Test: accessibility/scroll-to-make-visible-iframe-offscreen.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::scrollToMakeVisible const):

LayoutTests:

* accessibility/resources/iframe.html: Added.
* accessibility/scroll-to-make-visible-iframe-offscreen-expected.txt: Added.
* accessibility/scroll-to-make-visible-iframe-offscreen.html: Added.
* platform/win/TestExpectations:

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

15 months agoAX: accessibleNameForNode should simplify whitespace when using innerText
jdiggs@igalia.com [Thu, 10 May 2018 01:49:54 +0000 (01:49 +0000)]
AX: accessibleNameForNode should simplify whitespace when using innerText
https://bugs.webkit.org/show_bug.cgi?id=185498

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/text-alternative-calculation-from-unrendered-table.html

Call simplifyWhiteSpace() before returning the innerText value.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::accessibleNameForNode):

LayoutTests:

* accessibility/text-alternative-calculation-from-unrendered-table-expected.txt: Added.
* accessibility/text-alternative-calculation-from-unrendered-table.html: Added.

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

15 months agoUnreviewed Windows build fix after r231622.
cdumez@apple.com [Thu, 10 May 2018 01:23:55 +0000 (01:23 +0000)]
Unreviewed Windows build fix after r231622.

* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):

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

15 months agoRemove the unused HAVE_OS_ACTIVITY
timothy_horton@apple.com [Thu, 10 May 2018 01:10:56 +0000 (01:10 +0000)]
Remove the unused HAVE_OS_ACTIVITY
https://bugs.webkit.org/show_bug.cgi?id=185501

Reviewed by Wenson Hsieh.

* config.h:

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

15 months agoAdd initial support for 'Cross-Origin-Options' HTTP response header
cdumez@apple.com [Thu, 10 May 2018 00:33:37 +0000 (00:33 +0000)]
Add initial support for 'Cross-Origin-Options' HTTP response header
https://bugs.webkit.org/show_bug.cgi?id=184996
<rdar://problem/39664620>

Reviewed by Geoff Garen.

Source/WebCore:

Add initial support for 'Cross-Origin-Options' HTTP response header behind an experimental
feature flag, on by default. When the HTTP server services this HTTP response header for a
main resource, we'll set these options on the corresponding Document. This will impact the
behavior of the Document's associated Window API when cross-origin.

The HTTP header has 3 possible values:
- allow: This is the default. Regular cross-origin Window API is available.
- allow-postmessage: Only postMessage() is available on a cross-origin window, trying to
  access anything else will throw a SecurityError.
- deny: Trying to do anything with a cross-origin window will throw a SecurityError.

The header has no effect when accessing same origin windows.

Note that on cross-origin access from Window A to Window B, we check the cross-origin
options for both Window A and Window B and use the lowest common denominator as effective
cross-origin options for the access. So if Window A has 'Cross-Origin-Options: deny' and
tries to call postMessage() on Window B which has 'Cross-Origin-Options: allow-postmessage',
we will throw a SecurityError. This is because Window A's more restrictive options (deny)
apply.

Tests: http/wpt/cross-origin-options/allow-postmessage-from-deny.html
       http/wpt/cross-origin-options/allow-postmessage.html
       http/wpt/cross-origin-options/cross-origin-options-header.html

* bindings/js/JSDOMBindingSecurity.cpp:
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindowGivenMinimumCrossOriginOptions):
* bindings/js/JSDOMBindingSecurity.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::effectiveCrossOriginOptionsForAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
* bindings/js/JSDOMWindowCustom.h:
* bindings/js/JSRemoteDOMWindowCustom.cpp:
(WebCore::JSRemoteDOMWindow::getOwnPropertySlot):
(WebCore::JSRemoteDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSRemoteDOMWindow::getOwnPropertyNames):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeGetterBodyDefinition):
(GetCrossOriginsOptionsFromExtendedAttributeValue):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
* bindings/scripts/IDLAttributes.json:
* dom/Document.cpp:
(WebCore::Document::setCrossOriginOptions):
* dom/Document.h:
(WebCore::Document::crossOriginOptions const):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
* page/AbstractDOMWindow.cpp:
(WebCore::AbstractDOMWindow::AbstractDOMWindow):
* page/AbstractDOMWindow.h:
(WebCore::AbstractDOMWindow::crossOriginOptions):
(WebCore::AbstractDOMWindow::setCrossOriginOptions):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):
* page/DOMWindow.idl:
* page/Frame.h:
* page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::RemoteDOMWindow):
* page/RemoteDOMWindow.h:
* page/Settings.yaml:
* platform/network/HTTPHeaderNames.in:
* platform/network/HTTPParsers.cpp:
(WebCore::parseCrossOriginOptionsHeader):
* platform/network/HTTPParsers.h:

Source/WebKit:

* Shared/WebPreferences.yaml:
Add this as an experimental feature, on by default.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameBecameRemote):
Make sure we pass the cross-origin options from the local Window
to the remote one when transitioning.

LayoutTests:

Add layout test coverage.

* http/wpt/cross-origin-options/allow-postmessage-expected.txt: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny.html: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Added.
* http/wpt/cross-origin-options/allow-postmessage.html: Added.
* http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Added.
* http/wpt/cross-origin-options/cross-origin-options-header.html: Added.
* http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html: Added.
* http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Added.
* http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py: Added.

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

15 months agoRelease assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
rniwa@webkit.org [Thu, 10 May 2018 00:08:40 +0000 (00:08 +0000)]
Release assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=185493

Reviewed by Brent Fulgham.

Source/WebCore:

Fixed the bug that HTMLImageElement::removedFromAncestor and HTMLMapElement::removedFromAncestor
were calling removeImageElementByUsemap on the document instead of the shadow tree from which it was removed.

Test: fast/images/imagemap-in-shadow-tree-removed.html

* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::removedFromAncestor):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::removedFromAncestor):

LayoutTests:

Added a regression test.

* fast/images/imagemap-in-shadow-tree-removed-expected.txt: Added.
* fast/images/imagemap-in-shadow-tree-removed.html: Added.

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

15 months agoAX: Hidden nodes which are not directly referenced should not participate name/descri...
jdiggs@igalia.com [Thu, 10 May 2018 00:06:49 +0000 (00:06 +0000)]
AX: Hidden nodes which are not directly referenced should not participate name/description from content
https://bugs.webkit.org/show_bug.cgi?id=185478

Reviewed by Chris Fleizach.

Source/WebCore:

Add a check to AccessibilityNodeObject::textUnderElement() and return early
if the node is hidden, not referenced by aria-labelledby or aria-describedby,
not an HTMLLabelElement, and not fallback content for an HTMLCanvasElement.

Test: accessibility/text-alternative-calculation-hidden-nodes.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::textUnderElement const):

LayoutTests:

* accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
* accessibility/text-alternative-calculation-hidden-nodes.html: Added.
* platform/gtk/accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.

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

15 months agoSpeed up AbstractInterpreter::executeEdges
fpizlo@apple.com [Wed, 9 May 2018 23:31:14 +0000 (23:31 +0000)]
Speed up AbstractInterpreter::executeEdges
https://bugs.webkit.org/show_bug.cgi?id=185457

Reviewed by Saam Barati.

This patch started out with the desire to make executeEdges() faster by making filtering faster.
However, when I studied the disassembly, I found that there are many opportunities for
improvement and I implemented all of them:

- Filtering itself now has an inline fast path for when the filtering didn't change the value or
  for non-cells.

- Edge execution doesn't fast-forward anything if the filtering fast path would have succeeded,
  since fast-forwarding is only interesting for cells and only if we have a clobbered value.

- Similarly, edge verification doesn't need to fast-forward in the common case.

- A bunch of stuff related to Graph::doToChildren is now inlined properly.

- The edge doesn't even have to be considered for execution if it's UntypedUse.

That last bit was the trickiest. We had gotten into a bad habit of using SpecFullNumber in the
abstract interpreter. It's not correct to use SpecFullNumber in the abstract interpreter, because
it means proving that the value could either be formatted as a double (with impure NaN values),
or as any JSValue, or as an Int52. There is no value that could possibly hold all of those
states. This "worked" before because UntypedUse would filter this down to SpecBytecodeNumber. To
make it work again, I needed to fix all of those uses of SpecFullNumber. In the future, we need
to be careful about picking either SpecFullDouble (if returning a DoubleRep) or
SpecBytecodeNumber (if returning a JSValueRep).

But that fix revealed an amazing timeout in
stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js. We were getting
stuck in an OSR loop (baseline->DFG->FTL->baseline), all involving the same bytecode, without
ever realizing that we should jettison something. The problem was with how
triggerReoptimizationNow was getting the optimizedCodeBlock. It was trying to guess it by using
baselineCodeBlock->replacement(), but that's wrong for FTL-for-OSR-entry code blocks.

This is a 1% improvement in V8Spider-CompileTime.

* bytecode/ExitKind.cpp:
(JSC::exitKindMayJettison):
* dfg/DFGAbstractInterpreter.h:
(JSC::DFG::AbstractInterpreter::filterEdgeByUse):
(JSC::DFG::AbstractInterpreter::filterByType): Deleted.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::AbstractInterpreterExecuteEdgesFunc):
(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::operator() const):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterByType):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::filterSlow):
(JSC::DFG::AbstractValue::fastForwardToAndFilterSlow):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::fastForwardToAndFilter):
(JSC::DFG::AbstractValue::fastForwardToAndFilterUnproven):
(JSC::DFG::AbstractValue::makeTop):
* dfg/DFGAtTailAbstractState.h:
(JSC::DFG::AtTailAbstractState::fastForward):
(JSC::DFG::AtTailAbstractState::forNodeWithoutFastForward):
(JSC::DFG::AtTailAbstractState::fastForwardAndFilterUnproven):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::doToChildren):
* dfg/DFGInPlaceAbstractState.h:
(JSC::DFG::InPlaceAbstractState::fastForward):
(JSC::DFG::InPlaceAbstractState::fastForwardAndFilterUnproven):
(JSC::DFG::InPlaceAbstractState::forNodeWithoutFastForward):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:

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

15 months ago[Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html somet...
wenson_hsieh@apple.com [Wed, 9 May 2018 23:15:49 +0000 (23:15 +0000)]
[Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=185490
<rdar://problem/40097629>

Reviewed by Tim Horton.

This test is currently flaky due to incorrect logic when computing the unobscured content rect, in the slice of
time after a frame load has been committed, and before the first visible content rect update from the UI process
after the frame load has been committed.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):

In the case where !m_hasReceivedVisibleContentRectsAfterDidCommitLoad, we try to set the unobscured content size
to be the view size divided by the initial scale. However, in extra zoom mode, `ViewportConfiguration`'s
`minimumLayoutSize()` is the layout size, which is larger than the size of the view by default, so dividing this
by the initial scale yields a bogus value. Instead, use `viewLayoutSize()` instead.

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

We also try to divide the view size by the initial scale when computing the effective viewport size for `vw` and
`vh`. Additionally, fix the misleading name of a variable (largestUnobscuredRect) that stores a size.

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

15 months agoLayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
youenn@apple.com [Wed, 9 May 2018 23:13:59 +0000 (23:13 +0000)]
LayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=185494

Reviewed by Geoffrey Garen.

Return the 404 to the manifest request after a delay so that aborting is done first.

* http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
* http/tests/appcache/abort-cache-onchecking-manifest-404.html:

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

15 months agoUpdate MediaSession to use release logging
eric.carlson@apple.com [Wed, 9 May 2018 23:02:29 +0000 (23:02 +0000)]
Update MediaSession to use release logging
https://bugs.webkit.org/show_bug.cgi?id=185376
<rdar://problem/40022203>

Reviewed by Youenn Fablet.

No new tests, tested manually.

* Modules/mediastream/MediaStream.h: hostingDocument() doesn't need to return a const Document.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::hostingDocument const): Ditto.
* Modules/webaudio/AudioContext.h:

* html/HTMLMediaElement.h: Ditto.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::addBehaviorRestriction):
(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::dataLoadingPermitted const):
(WebCore::MediaElementSession::fullscreenPermitted const):
(WebCore::MediaElementSession::pageAllowsDataLoading const):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming const):
(WebCore::MediaElementSession::canShowControlsManager const):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets const):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::willLog const): Deleted.
(WebCore::MediaElementSession::logger const): Deleted.
(WebCore::MediaElementSession::logIdentifier const): Deleted.
(WebCore::MediaElementSession::logChannel const): Deleted.
* html/MediaElementSession.h:

* platform/audio/PlatformMediaSession.cpp:
(WebCore::nextLogIdentifier):
(WebCore::convertEnumerationToString):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::beginInterruption):
(WebCore::PlatformMediaSession::endInterruption):
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::pauseSession):
(WebCore::PlatformMediaSession::stopSession):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::logChannel const):
(WebCore::stateName): Deleted.
(WebCore::interruptionName): Deleted.
* platform/audio/PlatformMediaSession.h:
(WTF::LogArgument<WebCore::PlatformMediaSession::State>::toString):
(WTF::LogArgument<WebCore::PlatformMediaSession::InterruptionType>::toString):

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

15 months agoUpdate WebKit.WebsiteDataStoreCustomPaths after r231536
commit-queue@webkit.org [Wed, 9 May 2018 22:35:38 +0000 (22:35 +0000)]
Update WebKit.WebsiteDataStoreCustomPaths after r231536
https://bugs.webkit.org/show_bug.cgi?id=185486
<rdar://problem/37214391>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-09
Reviewed by Chris Dumez.

Update WebKit.WebsiteDataStoreCustomPaths as _syncNetworkProcessCookies is async now.

* TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):

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

15 months agoTest262-Runner: Improve the verbose output
commit-queue@webkit.org [Wed, 9 May 2018 22:22:12 +0000 (22:22 +0000)]
Test262-Runner: Improve the verbose output
https://bugs.webkit.org/show_bug.cgi?id=185491

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Michael Saboff.

* Scripts/test262/Import.pm:
(transferFiles):
* Scripts/test262/Runner.pm:
(processResult):

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

15 months agoFix Test262 Runner to have DYLD_FRAMEWORK_PATH always set
commit-queue@webkit.org [Wed, 9 May 2018 22:18:36 +0000 (22:18 +0000)]
Fix Test262 Runner to have DYLD_FRAMEWORK_PATH always set
https://bugs.webkit.org/show_bug.cgi?id=185488

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Michael Saboff.

* Scripts/test262/Runner.pm:
(processCLI):
(getBuildPath):
(runTest):

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

15 months ago[GStreamer] Never call updateTracks if running on legacy pipeline
commit-queue@webkit.org [Wed, 9 May 2018 22:04:54 +0000 (22:04 +0000)]
[GStreamer] Never call updateTracks if running on legacy pipeline
https://bugs.webkit.org/show_bug.cgi?id=184581

Source/WebCore:

This makes sure failling code path is never reached in the conditions where it should not have been reached.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

Re enables all tests that were disabled after fixing.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

LayoutTests:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

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

* platform/gtk/TestExpectations:

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

15 months agoUnreviewed gardening for WinCairo LayoutTests.
ross.kirsling@sony.com [Wed, 9 May 2018 21:59:44 +0000 (21:59 +0000)]
Unreviewed gardening for WinCairo LayoutTests.

* platform/wincairo/TestExpectations:
* platform/wincairo/css3/filters/effect-brightness-clamping-expected.txt:
* platform/wincairo/css3/filters/effect-brightness-expected.txt:
* platform/wincairo/editing/deleting/5126166-expected.txt:
* platform/wincairo/editing/deleting/5206311-1-expected.txt:
* platform/wincairo/editing/deleting/5433862-2-expected.txt:
* platform/wincairo/editing/deleting/5483370-expected.txt:

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

15 months agoRestrict unarchiving of bundle parameters to a set of known classes
bfulgham@apple.com [Wed, 9 May 2018 21:55:25 +0000 (21:55 +0000)]
Restrict unarchiving of bundle parameters to a set of known classes
https://bugs.webkit.org/show_bug.cgi?id=185489
<rdar://problem/21912401>

Reviewed by Ryosuke Niwa.

Stop accepting anything derived from NSObject, and instead only agree to unarchive objects
from a set of things we actually pass as InjectedBundle parameters.

* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::setBundleParameter):

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

15 months agoREGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is...
dbates@webkit.org [Wed, 9 May 2018 21:48:38 +0000 (21:48 +0000)]
REGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is timing out
https://bugs.webkit.org/show_bug.cgi?id=185443
<rdar://problem/40100660>

Reviewed by Andy Estes.

Source/WebCore:

Following r231479 when using WebKit2 and Restricted HTTP Response Access is enabled (enabled in
WebKitTestRunner) we only check the CSP frame-ancestors directive and X-Frame-Options in
NetworkProcess. We need to check these security requirements in WebContent process whenever
we are performing a substitute data load, such as for app cache, as these loads do not go
through NetworkProcess.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):

LayoutTests:

Unskip test now that it no longer times out.

* platform/wk2/TestExpectations:

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

15 months agoRange bisector should check the commits for repositories without change in specified...
dewei_zhu@apple.com [Wed, 9 May 2018 20:58:27 +0000 (20:58 +0000)]
Range bisector should check the commits for repositories without change in specified range.
https://bugs.webkit.org/show_bug.cgi?id=185269

Reviewed by Ryosuke Niwa.

For repositories without a change in the specified range, we still need to use them to filter commit
sets. Before this change, code does not apply filtering by those repositories against commit set. As
a result, commit sets with different commits for those repositories may be chosen as bisecting commit set.

* public/v3/commit-set-range-bisector.js: Updated the logic to verify range for repositories without
change in range.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):
* unit-tests/commit-set-range-bisector-tests.js: Added a unit test to guard against this change.

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

15 months ago[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
commit-queue@webkit.org [Wed, 9 May 2018 20:31:13 +0000 (20:31 +0000)]
[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
https://bugs.webkit.org/show_bug.cgi?id=185260
<rdar://problem/39290394>

Source/WebKit:

INPUT element are not considered to be text fields when
calling -[WKWebProcessPlugInNodeHandle isTextField]
when they are of type number.

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isTextField const):

Tools:

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleNodeHandleIsTextField.mm: Added.
(-[InjectedBundleNodeHandleIsTextField isTextFieldForHTMLInputType:document:jsContext:]):
(-[InjectedBundleNodeHandleIsTextField webProcessPlugIn:didCreateBrowserContextController:]):
* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[InjectedBundleNodeHandleIsTextFieldDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

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

15 months agoSource/WebCore:
commit-queue@webkit.org [Wed, 9 May 2018 20:24:23 +0000 (20:24 +0000)]
Source/WebCore:
Hooked up ASTC support in WebGL; requires OpenGL ES 3 context to work.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

Patch by Justin Fan <justin_fan@apple.com> on 2018-05-09
Reviewed by Dean Jackson.

Also added in Khronos' ASTC test from version 1.0.4 beta of their conformance test suite,
although again, this requires OpenGL ES 3 context for WebKit to detect proper support.

Test: fast/canvas/webgl/webgl-compressed-texture-astc.html

* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):
* html/canvas/WebGLCompressedTextureASTC.cpp: Added.
(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):
(WebCore::WebGLCompressedTextureASTC::getName const):
(WebCore::WebGLCompressedTextureASTC::supported):
(WebCore::WebGLCompressedTextureASTC::getSupportedProfiles):
* html/canvas/WebGLCompressedTextureASTC.h: Added.
* html/canvas/WebGLCompressedTextureASTC.idl: Added.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions):
* html/canvas/WebGLRenderingContextBase.h:
* platform/graphics/Extensions3D.h:

LayoutTests:
Added Khronos conformance test for ASTC compressed texture support.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

Patch by Justin Fan <justin_fan@apple.com> on 2018-05-09
Reviewed by Dean Jackson.

This requires OpenGL ES 3 context for WebKit to detect proper support.

* fast/canvas/webgl/resources/js-test-post.js: Added.
* fast/canvas/webgl/resources/js-test-pre.js: Added.
* fast/canvas/webgl/resources/js-test-style.css: Added.
* fast/canvas/webgl/resources/webgl-test-utils-khr.js: Added.
* fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
* fast/canvas/webgl/webgl-compressed-texture-astc.html: Added.

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

15 months agoAdd JSVirtualMachine SPI to shrink the memory footprint of the VM
sbarati@apple.com [Wed, 9 May 2018 20:11:31 +0000 (20:11 +0000)]
Add JSVirtualMachine SPI to shrink the memory footprint of the VM
https://bugs.webkit.org/show_bug.cgi?id=185441
<rdar://problem/39999414>

Reviewed by Keith Miller.

This patch adds JSVirtualMachine SPI to release as much memory as possible.
The SPI does:
- Deletes all code caches.
- Synchronous GC.
- Run the scavenger.

* API/JSVirtualMachine.mm:
(-[JSVirtualMachine shrinkFootprint]):
* API/JSVirtualMachinePrivate.h: Added.
* API/tests/testapi.mm:
(testObjectiveCAPIMain):
* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/VM.cpp:
(JSC::VM::shrinkFootprint):
* runtime/VM.h:

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

15 months agoAllow WebResourceLoader to cancel a load served from a service worker
youenn@apple.com [Wed, 9 May 2018 19:59:46 +0000 (19:59 +0000)]
Allow WebResourceLoader to cancel a load served from a service worker
https://bugs.webkit.org/show_bug.cgi?id=185274

Reviewed by Chris Dumez.

Source/WebCore:

Add support for cancelling a fetch from WebProcess to service worker process.
Use FetchIdentifier instead of uint64_t.

* Modules/fetch/FetchIdentifier.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* workers/service/context/ServiceWorkerFetch.h:
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Use FetchIdentifier instead of uint64_t.
Add IPC support for cancelling a fetch from WebProcess to service worker process.
Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled.
No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed.
A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load
or to abort reading the readable stream.

* Scripts/webkit/messages.py:
* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didFailFetch):
(WebKit::StorageProcess::didNotHandleFetch):
(WebKit::StorageProcess::didReceiveFetchResponse):
(WebKit::StorageProcess::didReceiveFetchData):
(WebKit::StorageProcess::didReceiveFetchFormData):
(WebKit::StorageProcess::didFinishFetch):
* StorageProcess/StorageProcess.h:
* StorageProcess/StorageProcess.messages.in:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::remove):
* WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::create):
(WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch):
(WebKit::ServiceWorkerClientFetch::start):
(WebKit::ServiceWorkerClientFetch::cancel):
* WebProcess/Storage/ServiceWorkerClientFetch.h:
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
* WebProcess/Storage/WebSWClientConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::cancelFetch):
(WebKit::WebSWContextManagerConnection::startFetch):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.messages.in:
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::cancel):
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
* WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::handleFetch):
(WebKit::WebServiceWorkerProvider::cancelFetch):
(WebKit::WebServiceWorkerProvider::fetchFinished):
* WebProcess/Storage/WebServiceWorkerProvider.h:

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

15 months ago[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess
commit-queue@webkit.org [Wed, 9 May 2018 19:14:02 +0000 (19:14 +0000)]
[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess
https://bugs.webkit.org/show_bug.cgi?id=185481

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess

* Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_environ_for_server):

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

15 months ago[iOS] Consider the annotation bounds when positioning action sheets near long-pressed...
aestes@apple.com [Wed, 9 May 2018 19:08:30 +0000 (19:08 +0000)]
[iOS] Consider the annotation bounds when positioning action sheets near long-pressed PDF links
https://bugs.webkit.org/show_bug.cgi?id=185472
<rdar://problem/39967092>

Reviewed by Daniel Bates.

Adopted new PDFHostViewControllerDelegate methods that include annotation rects
when URLs and page indices are long-pressed. This allows us to avoid obscuring
annotations when positioning action sheet popovers.

We also no longer need to convert the press location into host view coordinate
space, as PDFKit now does that for us.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:withAnnotationRect:]):
(-[WKPDFView _showActionSheetForURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:]): Deleted.

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

15 months ago[GStreamer] Fix style issue in MediaPlayerPrivateGStreamer
commit-queue@webkit.org [Wed, 9 May 2018 19:01:44 +0000 (19:01 +0000)]
[GStreamer] Fix style issue in MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=185479

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-09
Reviewed by Philippe Normand.

ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:114:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:194:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:398:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:440:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:806:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:869:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:880:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:940:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1102:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1109:  Multi line control clauses should use braces.  [whitespace/braces] [4]

Indentation and style issue fixed only.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

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

15 months agoREGRESSION (r231479): com.apple.WebCore crash in WebCore::DocumentLoader::stopLoading...
dbates@webkit.org [Wed, 9 May 2018 18:42:05 +0000 (18:42 +0000)]
REGRESSION (r231479): com.apple.WebCore crash in WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied()
https://bugs.webkit.org/show_bug.cgi?id=185475
<rdar://problem/40093853>

Reviewed by Andy Estes.

DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() must extends its lifetime
until completion as dispatching a DOM load event at the associated frame can cause JavaScript execution
that can do anything, including destroying the loader that dispatched the event.

Following r231479 DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() is now
invoked by both DocumentLoader::responseReceived() and WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
The latter only can happen when using WebKit2 and the experimental feature Restricted HTTP Response Access
is enabled (RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess()). Unlike DocumentLoader::responseReceived()
WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() does not take out a ref
on the DocumentLoader before invoking DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
Therefore, DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() can cause its
own destruction as a result of dispatching a DOM load event at the frame. We should take out a ref on
the DocumentLoader when executing DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

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

15 months agoFix the build by ignoring some deprecation warnings
timothy_horton@apple.com [Wed, 9 May 2018 18:31:24 +0000 (18:31 +0000)]
Fix the build by ignoring some deprecation warnings

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

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

15 months agoUnflake some additional AppCache tests
youenn@apple.com [Wed, 9 May 2018 18:02:32 +0000 (18:02 +0000)]
Unflake some additional AppCache tests
https://bugs.webkit.org/show_bug.cgi?id=185467

Reviewed by Alex Christensen.

Remove JS console logging for two tests that are testing crash scenarios.
Increase the time it takes to load appcache entries so that aborting
is done prior entry loading completion for two other tests.

* TestExpectations:
* http/tests/appcache/deferred-events-delete-while-raising-expected.txt:
* http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt:
* http/tests/appcache/resources/abort-cache-onprogress.manifest:
* http/tests/appcache/resources/not-exist.vob.php:

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

15 months ago[iOS] Tell PDFHostViewController when animated resizes begin and end
aestes@apple.com [Wed, 9 May 2018 17:30:39 +0000 (17:30 +0000)]
[iOS] Tell PDFHostViewController when animated resizes begin and end
https://bugs.webkit.org/show_bug.cgi?id=185477
<rdar://problem/39875372>

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
* UIProcess/Cocoa/WKWebViewContentProvider.h:
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_beginAnimatedResize]):
(-[WKPDFView web_endAnimatedResize]):

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

15 months ago[JSC] Fix ArraySpeciesCreate to return a new Array when the given object is not an...
commit-queue@webkit.org [Wed, 9 May 2018 17:29:39 +0000 (17:29 +0000)]
[JSC] Fix ArraySpeciesCreate to return a new Array when the given object is not an array
Error found in the following Test262 tests:

- test/built-ins/Array/prototype/slice/create-non-array-invalid-len.js
- test/built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js
- test/built-ins/Array/prototype/splice/create-species-undef-invalid-len.js

The ArraySpeciesCreate should throw a RangeError with non-Array custom objects
presenting a length > 2**32-1
https://bugs.webkit.org/show_bug.cgi?id=185476

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

* runtime/ArrayPrototype.cpp:

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

15 months agoSet build.webkit.org to use the new Test262-runner
commit-queue@webkit.org [Wed, 9 May 2018 17:06:23 +0000 (17:06 +0000)]
Set build.webkit.org to use the new Test262-runner
https://bugs.webkit.org/show_bug.cgi?id=184933

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Aakash Jain.

* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunTest262Tests):
(RunTest262Tests.countFailures):
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

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

15 months ago[GTK][JHBuild] LLVM 3.7.0 build is broken with GCC 8.1
commit-queue@webkit.org [Wed, 9 May 2018 17:02:56 +0000 (17:02 +0000)]
[GTK][JHBuild] LLVM 3.7.0 build is broken with GCC 8.1
https://bugs.webkit.org/show_bug.cgi?id=185461

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-05-09
Reviewed by Michael Catanzaro.

JHBuild now compiles LLVM 6 and Mesa 18.0.3.

* gtk/jhbuild.modules:

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

15 months agoUnreviewed. Bump WPE soname for good measure.
mcatanzaro@igalia.com [Wed, 9 May 2018 16:43:08 +0000 (16:43 +0000)]
Unreviewed. Bump WPE soname for good measure.

* Source/cmake/OptionsWPE.cmake:

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

15 months agoUnreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release.
mcatanzaro@igalia.com [Wed, 9 May 2018 16:26:17 +0000 (16:26 +0000)]
Unreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release.

.:

* Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

* wpe/NEWS: Added. Add release notes for 2.21.1.

Tools:

* wpe/manifest.txt.in: Distribute the NEWS.

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

15 months ago[WPE] Build cleanly with GCC 8 and ICU 60
mcatanzaro@igalia.com [Wed, 9 May 2018 16:21:09 +0000 (16:21 +0000)]
[WPE] Build cleanly with GCC 8 and ICU 60
https://bugs.webkit.org/show_bug.cgi?id=185462

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

* API/glib/JSCClass.cpp: Silence many -Wcast-function-type warnings.
(jsc_class_add_constructor):
(jsc_class_add_method):
* API/glib/JSCValue.cpp: Silence many -Wcast-function-type warnings.
(jsc_value_object_define_property_accessor):
(jsc_value_new_function):
* CMakeLists.txt: Build BuiltinNames.cpp with -fno-var-tracking-assignments. This was a
problem with GCC 7 too, but might as well fix it now.
* assembler/ProbeContext.h:
(JSC::Probe::CPUState::gpr const): Silence a -Wclass-memaccess warning.
(JSC::Probe::CPUState::spr const): Ditto. Assume std::remove_const is safe to clobber.
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::isRepresentableAs): Silence -Wfallthrough warning.
* builtins/BuiltinNames.cpp:
(JSC::BuiltinNames::BuiltinNames): Moved from BuiltinNames.h so we can use a special flag.
* builtins/BuiltinNames.h:
(JSC::BuiltinNames::BuiltinNames): Moved to BuiltinNames.cpp.
* dfg/DFGDoubleFormatState.h:
(JSC::DFG::mergeDoubleFormatStates): Silence -Wfallthrough warnings.
* heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType): Silence -Wfallthrough warnings.
* runtime/ConfigFile.cpp:
(JSC::ConfigFile::canonicalizePaths): Here GCC found a genuine mistake, strncat is called
with the wrong length parameter and the result is not null-terminated. Also, silence a
-Wstringop-truncation warning as we intentionally truncate filenames that exceed PATH_MAX.
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::partTypeString): Avoid an ICU deprecation warning.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): We were unconditionally running some BigInt code by accident.
(JSC::JSGlobalObject::visitChildren): Probably a serious bug? Fixed.

Source/ThirdParty:

* xdgmime/CMakeLists.txt: Silence -Wno-cast-function-type. I'm not fighting xdg-mime.

Source/WebCore:

* PlatformGTK.cmake: Include directories are in the wrong place.
* accessibility/AXObjectCache.cpp: Silence -Wclass-memaccess problems and leave warnings.
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
* css/CSSFontFace.cpp: Silence -Wfallthrough
(WebCore::CSSFontFace::fontLoadTiming const):
* css/CSSSelectorList.cpp: Silence -Wclass-memaccess, this one is intentional.
(WebCore::CSSSelectorList::adoptSelectorVector):
* editing/TextIterator.cpp: Silence ICU deprecation warnings.
* platform/Length.h:
(WebCore::Length::operator=): More -Wclass-memaccess, looks benign.
* platform/graphics/Gradient.cpp:
(WebCore::Gradient::hash const): -Wclass-memaccess again. Leave a warning.
* platform/graphics/SurrogatePairAwareTextIterator.cpp: Silence ICU deprecation warnings.
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const): Silence ICU deprecation.
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData): Silence -Wcast-function-type.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::Font::canRenderCombiningCharacterSequence const): Silence ICU deprecation.
* platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:
(gstAllocatorFastMallocMemUnmap): Fix -Wcast-function-type.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Fix bad printf.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Another bad printf.
(WebCore::findHLSQueue): Fix -Wcast-function-type.
* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(webKitMediaClearKeyDecryptorDecrypt): Fix another bad printf.
* platform/network/soup/SocketStreamHandleImplSoup.cpp: Silence -Wcast-function-type.
(WebCore::SocketStreamHandleImpl::beginWaitingForSocketWritability):
* platform/text/TextEncoding.cpp: Silence ICU deprecration.

Source/WebKit:

* Platform/IPC/glib/GSocketMonitor.cpp:
(IPC::GSocketMonitor::start): Silence -Wcast-function-type warning.
* Shared/API/glib/WebKitContextMenu.cpp:
(webkit_context_menu_new_with_items): Ditto.

Source/WTF:

* wtf/HashTable.h:
(WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
is probably safe enough, since it's for an empty bucket.
* wtf/StdLibExtras.h:
(WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.
* wtf/Vector.h: Ditto, all uses are safe.
* wtf/glib/WTFGType.h: Silence -Wcast-function-type.

Tools:

* TestWebKitAPI/CMakeLists.txt: Fix weird build failure, we were missing a directory. Not
sure why this was never noticed until now or why the bots are OK.
* gtk/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
* gtk/patches/glib-cast-function-type.patch: Added.
* wpe/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
* wpe/patches/glib-cast-function-type.patch: Added.

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

15 months agoVersioning.
jmarcell@apple.com [Wed, 9 May 2018 16:19:55 +0000 (16:19 +0000)]
Versioning.

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

15 months ago[ARMv7] Drop ARMv7 disassembler in favor of capstone
utatane.tea@gmail.com [Wed, 9 May 2018 15:43:49 +0000 (15:43 +0000)]
[ARMv7] Drop ARMv7 disassembler in favor of capstone
https://bugs.webkit.org/show_bug.cgi?id=185423

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This patch removes ARMv7Disassembler in our tree.
We already adopted Capstone, and it is already used in ARMv7 JIT environments.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* disassembler/ARMv7/ARMv7DOpcode.cpp: Removed.
* disassembler/ARMv7/ARMv7DOpcode.h: Removed.
* disassembler/ARMv7Disassembler.cpp: Removed.

Source/WTF:

Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.

* wtf/Platform.h:

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

15 months agoSVG lighting colors need to be converted into linearSRGB
simon.fraser@apple.com [Wed, 9 May 2018 15:21:59 +0000 (15:21 +0000)]
SVG lighting colors need to be converted into linearSRGB
https://bugs.webkit.org/show_bug.cgi?id=181196

Reviewed by Darin Adler.

Address post-commit comments. Don't make a Color that contains linearRGB components,
but use FloatComponents instead. Since these FloatComponents are in the 0-1 range,
FELighting::setPixelInternal() needs to multiply by 255 since the output pixels are
8-bit 0-255.

Change linearToSRGBColorComponent() and sRGBToLinearColorComponent() to do math in
floats without promoting to doubles.

* platform/graphics/ColorUtilities.cpp:
(WebCore::FloatComponents::FloatComponents):
(WebCore::linearToSRGBColorComponent):
(WebCore::sRGBToLinearColorComponent):
(WebCore::sRGBColorToLinearComponents):
(WebCore::linearToSRGBColor): Deleted.
(WebCore::sRGBToLinearColor): Deleted.
* platform/graphics/ColorUtilities.h:
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::setPixelInternal):
(WebCore::FELighting::drawLighting):

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

15 months agoUse StyleColor::Options in more places.
timothy@apple.com [Wed, 9 May 2018 15:17:09 +0000 (15:17 +0000)]
Use StyleColor::Options in more places.

https://bugs.webkit.org/show_bug.cgi?id=185458
rdar://problem/39853798

Add UseDefaultAppearance to StyleColor::Options, to avoid passing yet another
boolean on some of these functions.

Reviewed by Tim Horton.

* css/MediaQueryEvaluator.cpp:
* css/StyleColor.h:
* dom/Document.cpp:
(WebCore::Document::useDefaultAppearance const):
(WebCore::Document::styleColorOptions const):
* dom/Document.h:
* platform/Theme.cpp:
(WebCore::Theme::paint):
* platform/Theme.h:
* platform/mac/LocalDefaultSystemAppearance.h:
* platform/mac/LocalDefaultSystemAppearance.mm:
(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
* platform/mac/ThemeMac.h:
* platform/mac/ThemeMac.mm:
(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::ensuredView):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::ThemeMac::paint):
(-[WebCoreThemeView initWithUseSystemAppearance:]): Deleted.
* platform/wpe/ThemeWPE.cpp:
(WebCore::ThemeWPE::paint):
* platform/wpe/ThemeWPE.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemBackground):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderTheme::platformInactiveListBoxSelectionBackgroundColor const):
* rendering/RenderTheme.h:
* rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor const):
* rendering/RenderThemeGtk.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor const):
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):

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

15 months ago[Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin...
pvollan@apple.com [Wed, 9 May 2018 14:27:46 +0000 (14:27 +0000)]
[Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=185471

Unreviewed test gardening.

* platform/win/TestExpectations:

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

15 months ago[MIPS] Optimize generated JIT code using r2
commit-queue@webkit.org [Wed, 9 May 2018 14:17:01 +0000 (14:17 +0000)]
[MIPS] Optimize generated JIT code using r2
https://bugs.webkit.org/show_bug.cgi?id=184584

Patch by Srdjan Lazarevic <srdjan.lazarevic@rt-rk.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

EXT and MFHC1 instructions from MIPSR2 implemented and used where it is possible.
Also, done some code size optimizations that were discovered in meantime.

* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::ext):
(JSC::MIPSAssembler::mfhc1):
* assembler/MacroAssemblerMIPS.cpp:
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::isPowerOf2):
(JSC::MacroAssemblerMIPS::bitPosition):
(JSC::MacroAssemblerMIPS::loadAddress):
(JSC::MacroAssemblerMIPS::getEffectiveAddress):
(JSC::MacroAssemblerMIPS::load8):
(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load32):
(JSC::MacroAssemblerMIPS::load16Unaligned):
(JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::store16):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::branchTest32):
(JSC::MacroAssemblerMIPS::loadFloat):
(JSC::MacroAssemblerMIPS::loadDouble):
(JSC::MacroAssemblerMIPS::storeFloat):
(JSC::MacroAssemblerMIPS::storeDouble):

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

15 months ago[JSC][GTK][JSCONLY] Use capstone disassembler
utatane.tea@gmail.com [Wed, 9 May 2018 11:42:09 +0000 (11:42 +0000)]
[JSC][GTK][JSCONLY] Use capstone disassembler
https://bugs.webkit.org/show_bug.cgi?id=185283

Reviewed by Michael Catanzaro.

.:

* Source/CMakeLists.txt:
* Source/cmake/FindLLVM.cmake: Removed.
* Source/cmake/OptionsCommon.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Instead of adding MIPS disassembler baked by ourselves, we import capstone disassembler.
And use capstone disassembler for MIPS, ARM, and ARMv7 in GTK, WPE, WinCairo and JSCOnly ports.

And we remove ARM LLVM disassembler.

Capstone is licensed under 3-clause BSD, which is acceptable in WebKit tree.

* CMakeLists.txt:
* Sources.txt:
* disassembler/ARMLLVMDisassembler.cpp: Removed.
* disassembler/CapstoneDisassembler.cpp: Added.
(JSC::tryToDisassemble):

Source/ThirdParty:

Add capstone to ThirdParty. We build capstone as a static library,
and link it against JSC. We only build disassembler for target architecture.
So for MIPS target, we only enable MIPS part of capstone.

We also remove unnecessary architectures in capstone, XCore, PowerPC, SystemZ, etc.
This is simply done by deleting these architecture directories.

We pick "next" branch instead of "master" branch since "next" branch is actively
developed.

* capstone/CMakeLists.txt: Added.
* capstone/Source/.appveyor.yml: Added.
* capstone/Source/.gitattributes: Added.
* capstone/Source/.gitignore: Added.
* capstone/Source/.travis.yml: Added.
* capstone/Source/CMakeLists.txt: Added.
* capstone/Source/COMPILE.TXT: Added.
* capstone/Source/COMPILE_CMAKE.TXT: Added.
* capstone/Source/COMPILE_MSVC.TXT: Added.
* capstone/Source/CREDITS.TXT: Added.
* capstone/Source/ChangeLog-capstone: Added.
* capstone/Source/HACK.TXT: Added.
* capstone/Source/LEB128.h: Added.
(decodeULEB128):
* capstone/Source/LICENSE.TXT: Added.
* capstone/Source/LICENSE_LLVM.TXT: Added.
* capstone/Source/MCDisassembler.h: Added.
* capstone/Source/MCFixedLenDisassembler.h: Added.
* capstone/Source/MCInst.c: Added.
(MCInst_Init):
(MCInst_clear):
(MCInst_insert0):
(MCInst_setOpcode):
(MCInst_setOpcodePub):
(MCInst_getOpcode):
(MCInst_getOpcodePub):
(MCInst_getOperand):
(MCInst_getNumOperands):
(MCInst_addOperand2):
(MCOperand_Init):
(MCOperand_isValid):
(MCOperand_isReg):
(MCOperand_isImm):
(MCOperand_isFPImm):
(MCOperand_getReg):
(MCOperand_setReg):
(MCOperand_getImm):
(MCOperand_setImm):
(MCOperand_getFPImm):
(MCOperand_setFPImm):
(MCOperand_CreateReg1):
(MCOperand_CreateReg0):
(MCOperand_CreateImm1):
(MCOperand_CreateImm0):
* capstone/Source/MCInst.h: Added.
* capstone/Source/MCInstrDesc.c: Added.
(MCOperandInfo_isPredicate):
(MCOperandInfo_isOptionalDef):
* capstone/Source/MCInstrDesc.h: Added.
* capstone/Source/MCRegisterInfo.c: Added.
(MCRegisterInfo_InitMCRegisterInfo):
(DiffListIterator_init):
(DiffListIterator_getVal):
(DiffListIterator_next):
(DiffListIterator_isValid):
(MCRegisterInfo_getMatchingSuperReg):
(MCRegisterInfo_getSubReg):
(MCRegisterInfo_getRegClass):
(MCRegisterClass_contains):
* capstone/Source/MCRegisterInfo.h: Added.
* capstone/Source/Makefile: Added.
* capstone/Source/MathExtras.h: Added.
(Hi_32):
(Lo_32):
(isUIntN):
(isMask_32):
(isMask_64):
(isShiftedMask_32):
(isShiftedMask_64):
(isPowerOf2_32):
(CountLeadingZeros_32):
(CountLeadingOnes_32):
(CountLeadingZeros_64):
(CountLeadingOnes_64):
(CountTrailingZeros_32):
(CountTrailingOnes_32):
(CountTrailingZeros_64):
(CountTrailingOnes_64):
(CountPopulation_32):
(CountPopulation_64):
(Log2_32):
(Log2_64):
(Log2_32_Ceil):
(Log2_64_Ceil):
(GreatestCommonDivisor64):
(BitsToDouble):
(BitsToFloat):
(DoubleToBits):
(FloatToBits):
(MinAlign):
(NextPowerOf2):
(RoundUpToAlignment):
(OffsetToAlignment):
(abs64):
(SignExtend32):
(SignExtend64):
(countLeadingZeros):
* capstone/Source/README.md: Added.
* capstone/Source/RELEASE_NOTES: Added.
* capstone/Source/SStream.c: Added.
(SStream_Init):
(SStream_concat0):
(SStream_concat):
(printInt64Bang):
(printUInt64Bang):
(printInt64):
(printInt32BangDec):
(printInt32Bang):
(printInt32):
(printUInt32Bang):
(printUInt32):
* capstone/Source/SStream.h: Added.
* capstone/Source/TODO: Added.
* capstone/Source/arch/ARM/ARMAddressingModes.h: Added.
(ARM_AM_getAddrOpcStr):
(ARM_AM_getShiftOpcStr):
(ARM_AM_getShiftOpcEncoding):
(ARM_AM_getAMSubModeStr):
(rotr32):
(rotl32):
(getSORegOpc):
(getSORegOffset):
(ARM_AM_getSORegShOp):
(getSOImmValImm):
(getSOImmValRot):
(getSOImmValRotate):
(getSOImmVal):
(isSOImmTwoPartVal):
(getSOImmTwoPartFirst):
(getSOImmTwoPartSecond):
(getThumbImmValShift):
(isThumbImmShiftedVal):
(getThumbImm16ValShift):
(isThumbImm16ShiftedVal):
(getThumbImmNonShiftedVal):
(getT2SOImmValSplatVal):
(getT2SOImmValRotateVal):
(getT2SOImmVal):
(getT2SOImmValRotate):
(isT2SOImmTwoPartVal):
(getT2SOImmTwoPartFirst):
(getT2SOImmTwoPartSecond):
(ARM_AM_getAM2Opc):
(getAM2Offset):
(getAM2Op):
(getAM2ShiftOpc):
(getAM2IdxMode):
(getAM3Opc):
(getAM3Offset):
(getAM3Op):
(getAM3IdxMode):
(getAM4SubMode):
(getAM4ModeImm):
(ARM_AM_getAM5Opc):
(ARM_AM_getAM5Offset):
(ARM_AM_getAM5Op):
(createNEONModImm):
(getNEONModImmOpCmode):
(getNEONModImmVal):
(ARM_AM_decodeNEONModImm):
(getFPImmFloat):
* capstone/Source/arch/ARM/ARMBaseInfo.h: Added.
(ARMCC_getOppositeCondition):
(ARMCC_ARMCondCodeToString):
(ARM_PROC_IFlagsToString):
(ARM_PROC_IModToString):
(ARM_MB_MemBOptToString):
(ARM_ISB_InstSyncBOptToString):
(isARMLowRegister):
(ARMII_AddrModeToString):
* capstone/Source/arch/ARM/ARMDisassembler.c: Added.
(ITStatus_push_back):
(ITStatus_instrInITBlock):
(ITStatus_instrLastInITBlock):
(ITStatus_getITCC):
(ITStatus_advanceITState):
(ITStatus_setITState):
(Check):
(ARM_getFeatureBits):
(DecodePredicateOperand):
(ARM_init):
(checkDecodedInstruction):
(_ARM_getInstruction):
(AddThumb1SBit):
(AddThumbPredicate):
(UpdateThumbVFPPredicate):
(_Thumb_getInstruction):
(Thumb_getInstruction):
(ARM_getInstruction):
(DecodeGPRnopcRegisterClass):
(DecodeGPRwithAPSRRegisterClass):
(DecodetGPRRegisterClass):
(DecodetcGPRRegisterClass):
(DecoderGPRRegisterClass):
(DecodeDPRRegisterClass):
(DecodeDPR_8RegisterClass):
(DecodeDPR_VFP2RegisterClass):
(DecodeDPairRegisterClass):
(DecodeCCOutOperand):
(DecodeSORegImmOperand):
(DecodeSORegRegOperand):
(DecodeRegListOperand):
(DecodeSPRRegListOperand):
(DecodeDPRRegListOperand):
(DecodeBitfieldMaskOperand):
(DecodeCopMemInstruction):
(DecodeAddrMode2IdxInstruction):
(DecodeSORegMemOperand):
(DecodeAddrMode3Instruction):
(DecodeRFEInstruction):
(DecodeQADDInstruction):
(DecodeMemMultipleWritebackInstruction):
(DecodeCPSInstruction):
(DecodeT2CPSInstruction):
(DecodeT2MOVTWInstruction):
(DecodeArmMOVTWInstruction):
(DecodeSMLAInstruction):
(DecodeAddrModeImm12Operand):
(DecodeAddrMode5Operand):
(DecodeAddrMode7Operand):
(DecodeT2BInstruction):
(DecodeBranchImmInstruction):
(DecodeAddrMode6Operand):
(DecodeVLDInstruction):
(DecodeVLDST1Instruction):
(DecodeVLDST2Instruction):
(DecodeVLDST3Instruction):
(DecodeVLDST4Instruction):
(DecodeVSTInstruction):
(DecodeVLD1DupInstruction):
(DecodeVLD2DupInstruction):
(DecodeVLD3DupInstruction):
(DecodeVLD4DupInstruction):
(DecodeNEONModImmInstruction):
(DecodeVSHLMaxInstruction):
(DecodeShiftRight8Imm):
(DecodeShiftRight16Imm):
(DecodeShiftRight32Imm):
(DecodeShiftRight64Imm):
(DecodeTBLInstruction):
(DecodeThumbAddSpecialReg):
(DecodeThumbBROperand):
(DecodeT2BROperand):
(DecodeThumbCmpBROperand):
(DecodeThumbAddrModeRR):
(DecodeThumbAddrModeIS):
(DecodeThumbAddrModePC):
(DecodeThumbAddrModeSP):
(DecodeT2AddrModeSOReg):
(DecodeT2LoadShift):
(DecodeT2LoadImm8):
(DecodeT2LoadImm12):
(DecodeT2LoadT):
(DecodeT2LoadLabel):
(DecodeT2Imm8S4):
(DecodeT2AddrModeImm8s4):
(DecodeT2AddrModeImm0_1020s4):
(DecodeT2Imm8):
(DecodeT2AddrModeImm8):
(DecodeT2LdStPre):
(DecodeT2AddrModeImm12):
(DecodeThumbAddSPImm):
(DecodeThumbAddSPReg):
(DecodeThumbCPS):
(DecodePostIdxReg):
(DecodeThumbBLXOffset):
(DecodeCoprocessor):
(DecodeThumbTableBranch):
(DecodeThumb2BCCInstruction):
(DecodeT2SOImm):
(DecodeThumbBCCTargetOperand):
(DecodeThumbBLTargetOperand):
(DecodeMemBarrierOption):
(DecodeInstSyncBarrierOption):
(DecodeMSRMask):
(DecodeBankedReg):
(DecodeDoubleRegLoad):
(DecodeDoubleRegStore):
(DecodeLDRPreImm):
(DecodeLDRPreReg):
(DecodeSTRPreImm):
(DecodeSTRPreReg):
(DecodeVLD1LN):
(DecodeVST1LN):
(DecodeVLD2LN):
(DecodeVST2LN):
(DecodeVLD3LN):
(DecodeVST3LN):
(DecodeVLD4LN):
(DecodeVST4LN):
(DecodeVMOVSRR):
(DecodeVMOVRRS):
(DecodeIT):
(DecodeT2LDRDPreInstruction):
(DecodeT2STRDPreInstruction):
(DecodeT2Adr):
(DecodeT2ShifterImmOperand):
(DecodeSwap):
(DecodeVCVTD):
(DecodeVCVTQ):
(DecodeLDR):
(DecodeMRRC2):
* capstone/Source/arch/ARM/ARMDisassembler.h: Added.
* capstone/Source/arch/ARM/ARMGenAsmWriter.inc: Added.
* capstone/Source/arch/ARM/ARMGenDisassemblerTables.inc: Added.
* capstone/Source/arch/ARM/ARMGenInstrInfo.inc: Added.
* capstone/Source/arch/ARM/ARMGenRegisterInfo.inc: Added.
* capstone/Source/arch/ARM/ARMGenSubtargetInfo.inc: Added.
* capstone/Source/arch/ARM/ARMInstPrinter.c: Added.
(get_op_access):
(set_mem_access):
(op_addImm):
(ARM_getRegName):
(translateShiftImm):
(printRegImmShift):
(printRegName):
(ARM_printInst):
(printOperand):
(printThumbLdrLabelOperand):
(printSORegRegOperand):
(printSORegImmOperand):
(printAM2PreOrOffsetIndexOp):
(printAddrModeTBB):
(printAddrModeTBH):
(printAddrMode2Operand):
(printAddrMode2OffsetOperand):
(printAM3PreOrOffsetIndexOp):
(printAddrMode3Operand):
(printAddrMode3OffsetOperand):
(printPostIdxImm8Operand):
(printPostIdxRegOperand):
(printPostIdxImm8s4Operand):
(printAddrMode5Operand):
(printAddrMode6Operand):
(printAddrMode7Operand):
(printAddrMode6OffsetOperand):
(printBitfieldInvMaskImmOperand):
(printMemBOption):
(printInstSyncBOption):
(printShiftImmOperand):
(printPKHLSLShiftImm):
(printPKHASRShiftImm):
(printRegisterList):
(printGPRPairOperand):
(printSetendOperand):
(printCPSIMod):
(printCPSIFlag):
(printMSRMaskOperand):
(printBankedRegOperand):
(printPredicateOperand):
(printMandatoryPredicateOperand):
(printSBitModifierOperand):
(printNoHashImmediate):
(printPImmediate):
(printCImmediate):
(printCoprocOptionImm):
(printAdrLabelOperand):
(printThumbS4ImmOperand):
(printThumbSRImm):
(printThumbITMask):
(printThumbAddrModeRROperand):
(printThumbAddrModeImm5SOperand):
(printThumbAddrModeImm5S1Operand):
(printThumbAddrModeImm5S2Operand):
(printThumbAddrModeImm5S4Operand):
(printThumbAddrModeSPOperand):
(printT2SOOperand):
(printAddrModeImm12Operand):
(printT2AddrModeImm8Operand):
(printT2AddrModeImm8s4Operand):
(printT2AddrModeImm0_1020s4Operand):
(printT2AddrModeImm8OffsetOperand):
(printT2AddrModeImm8s4OffsetOperand):
(printT2AddrModeSoRegOperand):
(printFPImmOperand):
(printNEONModImmOperand):
(printImmPlusOneOperand):
(printRotImmOperand):
(printModImmOperand):
(printFBits16):
(printFBits32):
(printVectorIndex):
(printVectorListOne):
(printVectorListTwo):
(printVectorListTwoSpaced):
(printVectorListThree):
(printVectorListFour):
(printVectorListOneAllLanes):
(printVectorListTwoAllLanes):
(printVectorListThreeAllLanes):
(printVectorListFourAllLanes):
(printVectorListTwoSpacedAllLanes):
(printVectorListThreeSpacedAllLanes):
(printVectorListFourSpacedAllLanes):
(printVectorListThreeSpaced):
(printVectorListFourSpaced):
(ARM_addVectorDataType):
(ARM_addVectorDataSize):
(ARM_addReg):
(ARM_addUserMode):
(ARM_addSysReg):
* capstone/Source/arch/ARM/ARMInstPrinter.h: Added.
* capstone/Source/arch/ARM/ARMMapping.c: Added.
(ARM_reg_name2):
(ARM_insn_name):
(ARM_rel_branch):
(ARM_blx_to_arm_mode):
(ARM_reg_access):
* capstone/Source/arch/ARM/ARMMapping.h: Added.
* capstone/Source/arch/ARM/ARMMappingInsn.inc: Added.
* capstone/Source/arch/ARM/ARMMappingInsnOp.inc: Added.
* capstone/Source/arch/ARM/ARMModule.c: Added.
(init):
(option):
(ARM_enable):
* capstone/Source/arch/Mips/MipsDisassembler.c: Added.
(getFeatureBits):
(Mips_init):
(readInstruction16):
(readInstruction32):
(MipsDisassembler_getInstruction):
(Mips_getInstruction):
(getReg):
(DecodeINSVE_DF_4):
(DecodeAddiGroupBranch_4):
(DecodeDaddiGroupBranch_4):
(DecodeBlezlGroupBranch_4):
(DecodeBgtzlGroupBranch_4):
(DecodeBgtzGroupBranch_4):
(DecodeBlezGroupBranch_4):
(DecodeCPU16RegsRegisterClass):
(DecodeGPR64RegisterClass):
(DecodeGPRMM16RegisterClass):
(DecodeGPRMM16ZeroRegisterClass):
(DecodeGPRMM16MovePRegisterClass):
(DecodeGPR32RegisterClass):
(DecodePtrRegisterClass):
(DecodeDSPRRegisterClass):
(DecodeFGR64RegisterClass):
(DecodeFGR32RegisterClass):
(DecodeCCRRegisterClass):
(DecodeFCCRegisterClass):
(DecodeCCRegisterClass):
(DecodeFGRCCRegisterClass):
(DecodeMem):
(DecodeCacheOp):
(DecodeCacheOpMM):
(DecodeCacheOpR6):
(DecodeSyncI):
(DecodeMSA128Mem):
(DecodeMemMMImm4):
(DecodeMemMMSPImm5Lsl2):
(DecodeMemMMGPImm7Lsl2):
(DecodeMemMMReglistImm4Lsl2):
(DecodeMemMMImm12):
(DecodeMemMMImm16):
(DecodeFMem):
(DecodeFMem2):
(DecodeFMem3):
(DecodeFMemCop2R6):
(DecodeSpecial3LlSc):
(DecodeHWRegsRegisterClass):
(DecodeAFGR64RegisterClass):
(DecodeACC64DSPRegisterClass):
(DecodeHI32DSPRegisterClass):
(DecodeLO32DSPRegisterClass):
(DecodeMSA128BRegisterClass):
(DecodeMSA128HRegisterClass):
(DecodeMSA128WRegisterClass):
(DecodeMSA128DRegisterClass):
(DecodeMSACtrlRegisterClass):
(DecodeCOP2RegisterClass):
(DecodeBranchTarget):
(DecodeJumpTarget):
(DecodeBranchTarget21):
(DecodeBranchTarget26):
(DecodeBranchTarget7MM):
(DecodeBranchTarget10MM):
(DecodeBranchTargetMM):
(DecodeJumpTargetMM):
(DecodeAddiur2Simm7):
(DecodeUImm6Lsl2):
(DecodeLiSimm7):
(DecodeSimm4):
(DecodeSimm16):
(DecodeLSAImm):
(DecodeInsSize):
(DecodeExtSize):
(DecodeSimm19Lsl2):
(DecodeSimm18Lsl3):
(DecodeSimm9SP):
(DecodeANDI16Imm):
(DecodeUImm5lsl2):
(DecodeRegListOperand):
(DecodeRegListOperand16):
(DecodeMovePRegPair):
(DecodeSimm23Lsl2):
* capstone/Source/arch/Mips/MipsDisassembler.h: Added.
* capstone/Source/arch/Mips/MipsGenAsmWriter.inc: Added.
* capstone/Source/arch/Mips/MipsGenDisassemblerTables.inc: Added.
* capstone/Source/arch/Mips/MipsGenInstrInfo.inc: Added.
* capstone/Source/arch/Mips/MipsGenRegisterInfo.inc: Added.
* capstone/Source/arch/Mips/MipsGenSubtargetInfo.inc: Added.
* capstone/Source/arch/Mips/MipsInstPrinter.c: Added.
(set_mem_access):
(isReg):
(MipsFCCToString):
(printRegName):
(Mips_printInst):
(printOperand):
(printUnsignedImm):
(printUnsignedImm8):
(printMemOperand):
(printMemOperandEA):
(printFCCOperand):
(printRegisterPair):
(printAlias1):
(printAlias2):
(printAlias):
(printRegisterList):
* capstone/Source/arch/Mips/MipsInstPrinter.h: Added.
* capstone/Source/arch/Mips/MipsMapping.c: Added.
(Mips_get_insn_id):
(Mips_group_name):
(Mips_map_insn):
(Mips_map_register):
* capstone/Source/arch/Mips/MipsMapping.h: Added.
* capstone/Source/arch/Mips/MipsMappingInsn.inc: Added.
* capstone/Source/arch/Mips/MipsModule.c: Added.
(init):
(option):
(Mips_enable):
* capstone/Source/capstone.pc.in: Added.
* capstone/Source/config.mk: Added.
* capstone/Source/cs.c: Added.
(cs_kern_os_calloc):
(cs_version):
(cs_support):
(cs_errno):
(cs_strerror):
(cs_open):
(cs_close):
(fill_insn):
(skipdata_size):
(cs_option):
(skipdata_opstr):
(cs_disasm):
(cs_disasm_ex):
(cs_free):
(cs_malloc):
(cs_disasm_iter):
(cs_reg_name):
(cs_insn_name):
(cs_group_name):
(cs_insn_group):
(cs_reg_read):
(cs_reg_write):
(cs_op_count):
(cs_op_index):
(cs_regs_access):
* capstone/Source/cs_priv.h: Added.
* capstone/Source/functions.mk: Added.
* capstone/Source/include/capstone/arm.h: Added.
* capstone/Source/include/capstone/arm64.h: Added.
* capstone/Source/include/capstone/capstone.h: Added.
* capstone/Source/include/capstone/evm.h: Added.
* capstone/Source/include/capstone/m680x.h: Added.
* capstone/Source/include/capstone/m68k.h: Added.
* capstone/Source/include/capstone/mips.h: Added.
* capstone/Source/include/capstone/platform.h: Added.
* capstone/Source/include/capstone/ppc.h: Added.
* capstone/Source/include/capstone/sparc.h: Added.
* capstone/Source/include/capstone/systemz.h: Added.
* capstone/Source/include/capstone/tms320c64x.h: Added.
* capstone/Source/include/capstone/x86.h: Added.
* capstone/Source/include/capstone/xcore.h: Added.
* capstone/Source/include/windowsce/intrin.h: Added.
* capstone/Source/include/windowsce/stdint.h: Added.
* capstone/Source/make.sh: Added.
* capstone/Source/nmake-x86.bat: Added.
* capstone/Source/nmake.bat: Added.
* capstone/Source/pkgconfig.mk: Added.
* capstone/Source/utils.c: Added.
(make_id2insn):
(insn_find):
(name2id):
(id2name):
(count_positive):
(count_positive8):
(cs_strdup):
(cs_snprintf):
(arr_exist8):
(arr_exist):
* capstone/Source/utils.h: Added.
* capstone/capstone-Revision.txt: Added.

Source/WTF:

Add USE_CAPSTONE used for MIPS and ARM.

* wtf/Platform.h:

Tools:

* gtk/manifest.txt.in:
* wpe/manifest.txt.in:

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

15 months ago[MIPS] Use mfhc1 and mthc1 to fix assembler error
commit-queue@webkit.org [Wed, 9 May 2018 08:53:16 +0000 (08:53 +0000)]
[MIPS] Use mfhc1 and mthc1 to fix assembler error
https://bugs.webkit.org/show_bug.cgi?id=185464

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

The binutils-assembler started to report failures for copying words between
GP and FP registers for odd FP register indices. Use mfhc1 and mthc1 instead
of mfc1 and mtc1 for conversion.

* offlineasm/mips.rb:

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

15 months ago[EME][GStreamer] Crash when the mediaKeys are created before loading the media in...
commit-queue@webkit.org [Wed, 9 May 2018 07:38:45 +0000 (07:38 +0000)]
[EME][GStreamer] Crash when the mediaKeys are created before loading the media in debug conf
https://bugs.webkit.org/show_bug.cgi?id=185244

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-09
Reviewed by Xabier Rodriguez-Calvar.

The function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" is expected to be called once,
so there is an ASSERT(!m_cdmInstance).
But when the MediaKeys are created before loading the media, the cdminstance is created and attached
to the MediaPlayerPrivate via "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" before loading
the media, then when the media is loading, the function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached"
will be called several times via the function "mediaEngineWasUpdated" wich is called for each change
in the MediaElement state, thus the WebProcess crashes in the ASSERT(!m_cdmInstance).

This commit avoid the crash by replacing the assert with a simple check.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceDetached):

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

15 months ago[ARM] Disable test on Linux due to lack of executable memory
commit-queue@webkit.org [Wed, 9 May 2018 07:38:23 +0000 (07:38 +0000)]
[ARM] Disable test on Linux due to lack of executable memory
https://bugs.webkit.org/show_bug.cgi?id=185466

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

Do not run tests with LLInt disabled, otherwise test runs out of executable memory.

* js/script-tests/dfg-uint32array-overflow-values.js:
* js/script-tests/dfg-uint8clampedarray.js:

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

15 months agoUpdate fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
Ms2ger@igalia.com [Wed, 9 May 2018 07:35:20 +0000 (07:35 +0000)]
Update fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
https://bugs.webkit.org/show_bug.cgi?id=115025

Reviewed by Michael Catanzaro.

clientX/Y values are clamped to a signed 26 bit-integer by using LayoutPoint.
I updated the test to expect that. (Alternatively, we could keep the
current expectations in the test and leave FAIL lines in the test
expectation file.)

Expectation files are updated or removed to match the test change, as
well as a number of code changes since the last time they were accurate.

* fast/events/constructors/mouse-event-constructor-expected.txt:
* fast/events/constructors/mouse-event-constructor.html:
* fast/events/constructors/wheel-event-constructor-expected.txt:
* fast/events/constructors/wheel-event-constructor.html:
* platform/gtk/TestExpectations:
* platform/gtk/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
* platform/gtk/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
* platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
* platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
* platform/wpe/TestExpectations:

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