WebKit-https.git
12 months agoWebGL 2 conformance: expected test results for the deqp suite (mac-mojave-wk2)
justin_fan@apple.com [Tue, 25 Sep 2018 22:49:34 +0000 (22:49 +0000)]
WebGL 2 conformance: expected test results for the deqp suite (mac-mojave-wk2)
https://bugs.webkit.org/show_bug.cgi?id=189942

Reviewed by Jon Lee.

Add expected results for the deqp suite with the new detailed format, for this spade for macOS Mojave.

* webgl/2.0.0/deqp/.../*-expected.txt: Added expected results.

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

12 months ago[WPE] Export jsc_ symbols
commit-queue@webkit.org [Tue, 25 Sep 2018 22:28:40 +0000 (22:28 +0000)]
[WPE] Export jsc_ symbols
https://bugs.webkit.org/show_bug.cgi?id=189964

Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-25
Reviewed by Michael Catanzaro.

* webkitglib-symbols.map: Keep jsc_* symbols as visible so they
can be used by applications depending on WPE.

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

12 months ago[WebAuthN] Make AuthenticatorManager
jiewen_tan@apple.com [Tue, 25 Sep 2018 22:22:36 +0000 (22:22 +0000)]
[WebAuthN] Make AuthenticatorManager
https://bugs.webkit.org/show_bug.cgi?id=189279
<rdar://problem/44116792>

Reviewed by Chris Dumez.

Source/WebCore:

This patch does the following things in WebCore in order to support AuthenticatorManager:
1) It separates AuthenticatorTransport from PublicKeyCredentialDescriptor such that the enum
can be queried from WebKit directly.
2) It adds AuthenticatorAttachment to PublicKeyCredentialCreationOptions such that relying parties
could express their interests in cross platform authenticators.
3) It enhances IPC encoder/decoder of a few such that Vectors and empty objects can be correctly coded.
4) It moves the LocalAuthenticator implementation to WebKit to better integrate with AuthenticatorManager.
5) It moves linking to LocalAuthentication.framework to WebKit as well.
6) It temporarily bans old mock test mechanism in Internals so we could enable the new mock test mechanism in
WebKitTestRunner which we will have a better coverage of codes in UI Process. Those tests will be either
removed or ported to the new mechanism in Bug 189283.
7) It also removes "using namespace WebCore" from the top namespace in some .mm files as they are reordered
to where they could introduce name confusions.

Tests: http/wpt/webauthn/public-key-credential-create-failure-local.https.html
       http/wpt/webauthn/public-key-credential-create-success-local.https.html
       http/wpt/webauthn/public-key-credential-get-failure-local.https.html
       http/wpt/webauthn/public-key-credential-get-success-local.https.html
       http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html

* CMakeLists.txt:
* Configurations/WebCore.xcconfig:
* DerivedSources.make:
* Modules/webauthn/AuthenticatorTransport.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* Modules/webauthn/AuthenticatorTransport.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
* Modules/webauthn/PublicKeyCredentialCreationOptions.h:
(WebCore::PublicKeyCredentialCreationOptions::encode const):
(WebCore::PublicKeyCredentialCreationOptions::decode):
* Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
* Modules/webauthn/PublicKeyCredentialData.h:
(WebCore::PublicKeyCredentialData::encode const):
(WebCore::PublicKeyCredentialData::decode):
* Modules/webauthn/PublicKeyCredentialDescriptor.h:
(WebCore::PublicKeyCredentialDescriptor::encode const):
* Modules/webauthn/PublicKeyCredentialDescriptor.idl:
* Modules/webauthn/cocoa/LocalAuthenticator.mm: Removed.
* Sources.txt:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/ExceptionData.h:
* platform/cocoa/LocalAuthenticationSoftLink.mm: Removed.
* platform/cocoa/SharedBufferCocoa.mm:
(-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]):
* platform/cocoa/VideoFullscreenModelVideoElement.mm:
(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): Deleted.
(VideoFullscreenModelVideoElement::~VideoFullscreenModelVideoElement): Deleted.
(VideoFullscreenModelVideoElement::setVideoElement): Deleted.
(VideoFullscreenModelVideoElement::handleEvent): Deleted.
(VideoFullscreenModelVideoElement::updateForEventName): Deleted.
(VideoFullscreenModelVideoElement::willExitFullscreen): Deleted.
(VideoFullscreenModelVideoElement::setVideoFullscreenLayer): Deleted.
(VideoFullscreenModelVideoElement::waitForPreparedForInlineThen): Deleted.
(VideoFullscreenModelVideoElement::requestFullscreenMode): Deleted.
(VideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted.
(VideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted.
(VideoFullscreenModelVideoElement::observedEventNames): Deleted.
(VideoFullscreenModelVideoElement::eventNameAll): Deleted.
(VideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted.
(VideoFullscreenModelVideoElement::addClient): Deleted.
(VideoFullscreenModelVideoElement::removeClient): Deleted.
(VideoFullscreenModelVideoElement::isVisible const): Deleted.
(VideoFullscreenModelVideoElement::setHasVideo): Deleted.
(VideoFullscreenModelVideoElement::setVideoDimensions): Deleted.
(VideoFullscreenModelVideoElement::willEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::didEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::willExitPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::didExitPictureInPicture): Deleted.
* platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::hasExplicitBeginTime):
(WebCore::setHasExplicitBeginTime):
(WebCore::toCAFillModeType):
(WebCore::toCAValueFunctionType):
(WebCore::toCAMediaTimingFunction):
(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
(fromCAFillModeType): Deleted.
(fromCAValueFunctionType): Deleted.
(PlatformCAAnimationCocoa::create): Deleted.
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa): Deleted.
(PlatformCAAnimationCocoa::~PlatformCAAnimationCocoa): Deleted.
(PlatformCAAnimationCocoa::copy const): Deleted.
(PlatformCAAnimationCocoa::platformAnimation const): Deleted.
(PlatformCAAnimationCocoa::keyPath const): Deleted.
(PlatformCAAnimationCocoa::beginTime const): Deleted.
(PlatformCAAnimationCocoa::setBeginTime): Deleted.
(PlatformCAAnimationCocoa::duration const): Deleted.
(PlatformCAAnimationCocoa::setDuration): Deleted.
(PlatformCAAnimationCocoa::speed const): Deleted.
(PlatformCAAnimationCocoa::setSpeed): Deleted.
(PlatformCAAnimationCocoa::timeOffset const): Deleted.
(PlatformCAAnimationCocoa::setTimeOffset): Deleted.
(PlatformCAAnimationCocoa::repeatCount const): Deleted.
(PlatformCAAnimationCocoa::setRepeatCount): Deleted.
(PlatformCAAnimationCocoa::autoreverses const): Deleted.
(PlatformCAAnimationCocoa::setAutoreverses): Deleted.
(PlatformCAAnimationCocoa::fillMode const): Deleted.
(PlatformCAAnimationCocoa::setFillMode): Deleted.
(PlatformCAAnimationCocoa::setTimingFunction): Deleted.
(PlatformCAAnimationCocoa::copyTimingFunctionFrom): Deleted.
(PlatformCAAnimationCocoa::isRemovedOnCompletion const): Deleted.
(PlatformCAAnimationCocoa::setRemovedOnCompletion): Deleted.
(PlatformCAAnimationCocoa::isAdditive const): Deleted.
(PlatformCAAnimationCocoa::setAdditive): Deleted.
(PlatformCAAnimationCocoa::valueFunction const): Deleted.
(PlatformCAAnimationCocoa::setValueFunction): Deleted.
(PlatformCAAnimationCocoa::setFromValue): Deleted.
(PlatformCAAnimationCocoa::copyFromValueFrom): Deleted.
(PlatformCAAnimationCocoa::setToValue): Deleted.
(PlatformCAAnimationCocoa::copyToValueFrom): Deleted.
(PlatformCAAnimationCocoa::setValues): Deleted.
(PlatformCAAnimationCocoa::copyValuesFrom): Deleted.
(PlatformCAAnimationCocoa::setKeyTimes): Deleted.
(PlatformCAAnimationCocoa::copyKeyTimesFrom): Deleted.
(PlatformCAAnimationCocoa::setTimingFunctions): Deleted.
(PlatformCAAnimationCocoa::copyTimingFunctionsFrom): Deleted.
* platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(PlatformCAFilters::filterValueForOperation): Deleted.
(PlatformCAFilters::colorMatrixValueForFilter): Deleted.
(PlatformCAFilters::setBlendingFiltersOnLayer): Deleted.
(PlatformCAFilters::numAnimatedFilterProperties): Deleted.
(PlatformCAFilters::animatedFilterPropertyName): Deleted.
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(-[WebAnimationDelegate animationDidStart:]):
(-[WebAnimationDelegate animationDidStop:finished:]):
(-[WebAnimationDelegate setOwner:]):
(PlatformCALayerCocoa::create): Deleted.
(PlatformCALayer::platformCALayer): Deleted.
(mediaTimeToCurrentTime): Deleted.
(PlatformCALayerCocoa::setOwner): Deleted.
(toCAFilterType): Deleted.
(PlatformCALayerCocoa::layerTypeForPlatformLayer): Deleted.
(PlatformCALayerCocoa::PlatformCALayerCocoa): Deleted.
(PlatformCALayerCocoa::commonInit): Deleted.
(PlatformCALayerCocoa::clone const): Deleted.
(PlatformCALayerCocoa::~PlatformCALayerCocoa): Deleted.
(PlatformCALayerCocoa::animationStarted): Deleted.
(PlatformCALayerCocoa::animationEnded): Deleted.
(PlatformCALayerCocoa::setNeedsDisplay): Deleted.
(PlatformCALayerCocoa::setNeedsDisplayInRect): Deleted.
(PlatformCALayerCocoa::copyContentsFromLayer): Deleted.
(PlatformCALayerCocoa::superlayer const): Deleted.
(PlatformCALayerCocoa::removeFromSuperlayer): Deleted.
(PlatformCALayerCocoa::setSublayers): Deleted.
(PlatformCALayerCocoa::removeAllSublayers): Deleted.
(PlatformCALayerCocoa::appendSublayer): Deleted.
(PlatformCALayerCocoa::insertSublayer): Deleted.
(PlatformCALayerCocoa::replaceSublayer): Deleted.
(PlatformCALayerCocoa::adoptSublayers): Deleted.
(PlatformCALayerCocoa::addAnimationForKey): Deleted.
(PlatformCALayerCocoa::removeAnimationForKey): Deleted.
(PlatformCALayerCocoa::animationForKey): Deleted.
(PlatformCALayerCocoa::setMask): Deleted.
(PlatformCALayerCocoa::isOpaque const): Deleted.
(PlatformCALayerCocoa::setOpaque): Deleted.
(PlatformCALayerCocoa::bounds const): Deleted.
(PlatformCALayerCocoa::setBounds): Deleted.
(PlatformCALayerCocoa::position const): Deleted.
(PlatformCALayerCocoa::setPosition): Deleted.
(PlatformCALayerCocoa::anchorPoint const): Deleted.
(PlatformCALayerCocoa::setAnchorPoint): Deleted.
(PlatformCALayerCocoa::transform const): Deleted.
(PlatformCALayerCocoa::setTransform): Deleted.
(PlatformCALayerCocoa::sublayerTransform const): Deleted.
(PlatformCALayerCocoa::setSublayerTransform): Deleted.
(PlatformCALayerCocoa::isHidden const): Deleted.
(PlatformCALayerCocoa::setHidden): Deleted.
(PlatformCALayerCocoa::contentsHidden const): Deleted.
(PlatformCALayerCocoa::setContentsHidden): Deleted.
(PlatformCALayerCocoa::userInteractionEnabled const): Deleted.
(PlatformCALayerCocoa::setUserInteractionEnabled): Deleted.
(PlatformCALayerCocoa::setBackingStoreAttached): Deleted.
(PlatformCALayerCocoa::backingStoreAttached const): Deleted.
(PlatformCALayerCocoa::geometryFlipped const): Deleted.
(PlatformCALayerCocoa::setGeometryFlipped): Deleted.
(PlatformCALayerCocoa::isDoubleSided const): Deleted.
(PlatformCALayerCocoa::setDoubleSided): Deleted.
(PlatformCALayerCocoa::masksToBounds const): Deleted.
(PlatformCALayerCocoa::setMasksToBounds): Deleted.
(PlatformCALayerCocoa::acceleratesDrawing const): Deleted.
(PlatformCALayerCocoa::setAcceleratesDrawing): Deleted.
(PlatformCALayerCocoa::wantsDeepColorBackingStore const): Deleted.
(PlatformCALayerCocoa::setWantsDeepColorBackingStore): Deleted.
(PlatformCALayerCocoa::supportsSubpixelAntialiasedText const): Deleted.
(PlatformCALayerCocoa::setSupportsSubpixelAntialiasedText): Deleted.
(PlatformCALayerCocoa::hasContents const): Deleted.
(PlatformCALayerCocoa::contents const): Deleted.
(PlatformCALayerCocoa::setContents): Deleted.
(PlatformCALayerCocoa::setContentsRect): Deleted.
(PlatformCALayerCocoa::setMinificationFilter): Deleted.
(PlatformCALayerCocoa::setMagnificationFilter): Deleted.
(PlatformCALayerCocoa::backgroundColor const): Deleted.
(PlatformCALayerCocoa::setBackgroundColor): Deleted.
(PlatformCALayerCocoa::setBorderWidth): Deleted.
(PlatformCALayerCocoa::setBorderColor): Deleted.
(PlatformCALayerCocoa::opacity const): Deleted.
(PlatformCALayerCocoa::setOpacity): Deleted.
(PlatformCALayerCocoa::setFilters): Deleted.
(PlatformCALayerCocoa::copyFiltersFrom): Deleted.
(PlatformCALayerCocoa::filtersCanBeComposited): Deleted.
(PlatformCALayerCocoa::setBlendMode): Deleted.
(PlatformCALayerCocoa::setName): Deleted.
(PlatformCALayerCocoa::setSpeed): Deleted.
(PlatformCALayerCocoa::setTimeOffset): Deleted.
(PlatformCALayerCocoa::contentsScale const): Deleted.
(PlatformCALayerCocoa::setContentsScale): Deleted.
(PlatformCALayerCocoa::cornerRadius const): Deleted.
(PlatformCALayerCocoa::setCornerRadius): Deleted.
(PlatformCALayerCocoa::setEdgeAntialiasingMask): Deleted.
(PlatformCALayerCocoa::shapeRoundedRect const): Deleted.
(PlatformCALayerCocoa::setShapeRoundedRect): Deleted.
(PlatformCALayerCocoa::shapeWindRule const): Deleted.
(PlatformCALayerCocoa::setShapeWindRule): Deleted.
(PlatformCALayerCocoa::shapePath const): Deleted.
(PlatformCALayerCocoa::setShapePath): Deleted.
(PlatformCALayerCocoa::requiresCustomAppearanceUpdateOnBoundsChange const): Deleted.
(PlatformCALayerCocoa::updateCustomAppearance): Deleted.
(layerContentsFormat): Deleted.
(PlatformCALayerCocoa::updateContentsFormat): Deleted.
(PlatformCALayerCocoa::tiledBacking): Deleted.
(PlatformCALayer::isWebLayer): Deleted.
(PlatformCALayer::setBoundsOnMainThread): Deleted.
(PlatformCALayer::setPositionOnMainThread): Deleted.
(PlatformCALayer::setAnchorPointOnMainThread): Deleted.
(PlatformCALayer::collectRectsToPaint): Deleted.
(PlatformCALayer::drawLayerContents): Deleted.
(PlatformCALayer::frameForLayer): Deleted.
(PlatformCALayerCocoa::createCompatibleLayer const): Deleted.
(PlatformCALayerCocoa::enumerateRectsBeingDrawn): Deleted.
(PlatformCALayerCocoa::backingStoreBytesPerPixel const): Deleted.
(PlatformCALayerCocoa::avPlayerLayer const): Deleted.
* platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:
(-[WebLightSystemBackdropLayer init]):
(-[WebDarkSystemBackdropLayer init]):
* platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer createTileController:]):
(-[WebTiledBackingLayer setNeedsDisplayInRect:]):
(-[WebTiledBackingLayer setBorderColor:]):
* testing/Internals.cpp:
(WebCore::Internals::Internals):

Source/WebCore/PAL:

It moves linking to DeviceIdentity.framework to WebKit.

* PAL.xcodeproj/project.pbxproj:

Source/WebKit:

This patch introduces AuthenticatorManager which is the central of WebAuthentication that 1) handles
web requests, 2) discovers authenticators, 3) manages authetnicators and 4) in the future interacts with UI.
The lifetime of the AuthenticatorManager is managed by WebsiteDataStore such that it is almost a singleton
per UI Process.

1) Requests come from WebAuthenticatorCoordinatorProxy and then cached in AuthenticatorManager which will
then distribute requests whenever a new authenticator is discovered.

2) An ABC AuthenticatorTransportService is provided as an interface for AuthenticatorManager to invoke
startDiscovery. Actual work will be done in corresponding derived classes, say, LocalService. LocalService
is the one that discover attached platform authenticators, for example, TouchID or FaceID.

Eache service is unique per AuthetnicatorManager, which means we will have at most 4 services, Local, USB,
NFC, and BLE. The latter three will be implemented soon. Also, AuthenticatorManager serves as an observer to
*Service, so the latter can inform the former whenever an authenticator is added or removed.

When a new authenticator is discovered, the corresponding service will create an Authetnicator object that
binds to the physical authenticator device through a *Connection object. There is no ABC for connection for
now as I forsee every *Connection will be quite different. The *Connection object is the one that send/receive
messages from the physicla device. So far, a LocalConnection is provided even though normally local authenticators
are attached. This class is provided solely for separating UI and network traffic from LocalAuthenticator's
request handling process. So we can override them in a mock test environment. I will talk about this in the
next section.

3) An ABC Authenticator is provided as an interface for AuthenticatorManager to distribute requests on. Requests
will then be handled by the derived classes, say, LocalAuthenticator. Each authenticator object is a FSM that
works asynchronously.

For LocalAuthenticator, it has 4 states for MakeCredential: Init => RequestReceived => UserConsented => Attested => End,
and 3 states for GetAssertion: Init => RequestReceived => UserConsented => End. In the transit from RequestReceived to
UserConsented, it will invoke LocalConnection to talk to LocalAuthentication.framework that prompt users for TouchID
or FaceID. And then the transit from UserConsented => Attested, it will invoke LocalConnection to talk to
DeviceIdentity.framework that does Apple attestation. Most of the work are from the original LocalAuthenticator
implementation, and this patch converts it to a FSM and simplify the callback and threading model.

When a respond is ready, each authenticator will notify their observer which is the AuthenticatorManager.
AuthenticatorManager will only reply to Web Process whenever there is a valid respond or a terminating error. Otherwise,
the request will time out. I will explore the time out mechanism in a more detailed manner in Bug 189642.

The above is a briefing of the AuthetnicatorManager architecture in functional. The asynchronous model is explained here:
1) Since most discovery and request handling processes are asynchronous, I enforced them to be executed asyncrhonous in
the interface of the ABC.
2) There is no dedicated secondary threads here. However, underlying framework might decide to perform works on a dedicated
thread and then execute the provided callback. Whenever such situation happens, the policy here is to wrap the actual callback
into a callback that will post the actual callback back to the main thread and pass the wrapping callback to the APIs. Hence,
weak pointers in the actual callback are guaranteed to work.
3) Callbacks are used only if it is one way, and they are CompletionHandlers.
4) Potential multi ways asynchronous operations are encapsulated in regarding Observer interfaces.

Finally, let me explain how the mock test works:
1) Mock testing is done in WebKitTestRunner instead of Internals because a considerable large portion of work is in UIProcess
instead of WebProcess, says, the AuthenticatorManager.
2) The basic idea is to override functionality of *Connection classes and then make them thin such that we can get the best
possible coverage in auto tests.
3) In order to enable layout tests to configure the Mock*Connection classes, a MockWebAuthenticationConfiguration struct is
provided. A corresponding JS dictionary will be created by each test and passed from the TestRunner to the connection object.
4) To bridge the above tunnel, a MockAuthenticatorManager is constructed. It is instrumented to return every error.
5) Also, Mock*Service classes are made to mock the discovery process as well.
6) Noted, every mock overrided methods are made thin.

* CMakeLists.txt:
* Configurations/WebKit.xcconfig:
* Platform/spi/Cocoa/DeviceIdentitySPI.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
* SourcesCocoa.txt:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/WebAuthentication/Authenticator.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
(WebKit::Authenticator::handleRequest):
(WebKit::Authenticator::receiveRespond const):
* UIProcess/WebAuthentication/Authenticator.h: Renamed from Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.h.
(WebKit::Authenticator::setObserver):
(WebKit::Authenticator::observer const):
(WebKit::Authenticator::requestData const):
* UIProcess/WebAuthentication/AuthenticatorManager.cpp: Added.
(WebKit::AuthenticatorManagerInternal::collectTransports):
(WebKit::AuthenticatorManager::makeCredential):
(WebKit::AuthenticatorManager::getAssertion):
(WebKit::AuthenticatorManager::clearState):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::createService const):
(WebKit::AuthenticatorManager::respondReceivedInternal):
(WebKit::AuthenticatorManager::startDiscovery):
* UIProcess/WebAuthentication/AuthenticatorManager.h: Added.
(WebKit::AuthenticatorManager::pendingCompletionHandler):
* UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
(WebKit::AuthenticatorTransportService::create):
(WebKit::AuthenticatorTransportService::createMock):
(WebKit::AuthenticatorTransportService::AuthenticatorTransportService):
(WebKit::AuthenticatorTransportService::startDiscovery const):
* UIProcess/WebAuthentication/AuthenticatorTransportService.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
(WebKit::AuthenticatorTransportService::observer const):
* UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: Added.
(WebKit::LocalAuthenticatorInternal::buildAuthData):
(WebKit::LocalAuthenticatorInternal::transportsContain):
(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticatorInternal::toVector):
(WebKit::LocalAuthenticator::LocalAuthenticator):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
* UIProcess/WebAuthentication/Cocoa/LocalConnection.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
* UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: Added.
(WebKit::LocalConnection::getUserConsent const):
(WebKit::LocalConnection::getAttestation const):
* UIProcess/WebAuthentication/Cocoa/LocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/Cocoa/LocalService.mm: Renamed from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
(WebKit::LocalService::LocalService):
(WebKit::LocalService::isAvailable):
(WebKit::LocalService::startDiscoveryInternal const):
(WebKit::LocalService::platformStartDiscovery const):
(WebKit::LocalService::createLocalConnection const):
* UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
(WebKit::MockAuthenticatorManager::MockAuthenticatorManager):
(WebKit::MockAuthenticatorManager::createService const):
(WebKit::MockAuthenticatorManager::respondReceivedInternal):
* UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/Mock/MockLocalConnection.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: Added.
(WebKit::MockLocalConnection::MockLocalConnection):
(WebKit::MockLocalConnection::getUserConsent const):
(WebKit::MockLocalConnection::getAttestation const):
* UIProcess/WebAuthentication/Mock/MockLocalService.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
(WebKit::MockLocalService::MockLocalService):
(WebKit::MockLocalService::platformStartDiscovery const):
(WebKit::MockLocalService::createLocalConnection const):
* UIProcess/WebAuthentication/Mock/MockLocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/WebAuthenticationRequestData.h: Renamed from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
* UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy):
(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable):
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): Deleted.
* UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration):
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::authenticatorManager):
* WebKit.xcodeproj/project.pbxproj:

Tools:

Besides the functionality to set the WebAuthenticationMockConfiguration. Three operations are
added to manipulate Keychain: addTestKeyToKeychain, cleanUpKeychain and keyExistedInKeychain.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/LocalAuthenticator.mm: Removed.
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebAuthenticationMockConfiguration):
(WTR::TestRunner::addTestKeyToKeychain):
(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::isKeyExisted):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::isKeyExisted):
(WTR::TestController::setWebAuthenticationMockConfiguration):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistedInKeychain):

LayoutTests:

Most of the new tests are rewritten from the LocalAuthenticator API tests. Old mock tests are temporarily skipped
for the new mock tests.

* TestExpectations:
* http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-create-failure-local.https.html: Added.
* http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-create-success-local.https.html: Added.
* http/wpt/webauthn/public-key-credential-create-success.https.html:
* http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-get-failure-local.https.html: Added.
* http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-get-success-local.https.html: Added.
* http/wpt/webauthn/public-key-credential-get-success.https.html:
* http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available-expected.txt: Added.
* http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html: Added.
* http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available-expected.txt: Removed.
* http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available.html: Removed.
* http/wpt/webauthn/resources/util.js:
* platform/mac-wk2/TestExpectations:

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

12 months agoRevert some of the changes in r236471
cdumez@apple.com [Tue, 25 Sep 2018 22:17:51 +0000 (22:17 +0000)]
Revert some of the changes in r236471
https://bugs.webkit.org/show_bug.cgi?id=189973

Reviewed by Alex Christensen.

Revert some of the changes in r236471 as they should not be needed. In particular,
it should not be possible for the DecidePolicyForNavigationActionSync IPC to get
processed *before* the DidCreateMainFrame / DidCreateSubframe ones because those
use IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply. They are thus
processed early when necessary, the same way as synchronous IPC messages.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):

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

12 months agoImport libvpx source code
youenn@apple.com [Tue, 25 Sep 2018 22:09:45 +0000 (22:09 +0000)]
Import libvpx source code
https://bugs.webkit.org/show_bug.cgi?id=189954

Reviewed by Eric Carlson.

* Source/third_party/libvpx: Added.
* .gitignore: Added.

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

12 months agoImplement MediaStreamTrack Content Hints
commit-queue@webkit.org [Tue, 25 Sep 2018 21:59:35 +0000 (21:59 +0000)]
Implement MediaStreamTrack Content Hints
https://bugs.webkit.org/show_bug.cgi?id=189262
<rdar://problem/44101773>

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-25
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt:

Source/WebCore:

contentHint is a new attribute which is stored in MediaStreamTrackPrivate.
https://w3c.github.io/mst-content-hint/

Covered by tests:
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/idlharness.window.html

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::contentHint const):
(WebCore::MediaStreamTrack::setContentHint):
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.idl:
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::setContentHint):
(WebCore::MediaStreamTrackPrivate::clone):
* platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::contentHint):

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

12 months agoMove Service Worker Management from Storage Process to Network Process
sihui_liu@apple.com [Tue, 25 Sep 2018 21:57:42 +0000 (21:57 +0000)]
Move Service Worker Management from Storage Process to Network Process
https://bugs.webkit.org/show_bug.cgi?id=189422

Reviewed by Youenn Fablet.

Source/WebKit:

After r236035, this is another piece to move functionality of storage process to network process. When
we enable Service Workers, network process instead of storage process will be launched.
This patch will not change the behavior of Service Worker.

* CMakeLists.txt:
* DerivedSources.make:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::unregisterSWConnections):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::connectionToContextProcessFromIPCConnection):
(WebKit::NetworkProcess::connectionToContextProcessWasClosed):
(WebKit::NetworkProcess::needsServerToContextConnectionForOrigin const):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::swOriginStoreForSession):
(WebKit::NetworkProcess::existingSWOriginStoreForSession const):
(WebKit::NetworkProcess::serverToContextConnectionForOrigin):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::didFailFetch):
(WebKit::NetworkProcess::didNotHandleFetch):
(WebKit::NetworkProcess::didReceiveFetchResponse):
(WebKit::NetworkProcess::didReceiveFetchData):
(WebKit::NetworkProcess::didReceiveFetchFormData):
(WebKit::NetworkProcess::didFinishFetch):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::postMessageToServiceWorker):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::swContextConnectionMayNoLongerBeNeeded):
(WebKit::NetworkProcess::disableServiceWorkerProcessTerminationDelay):
(WebKit::NetworkProcess::addServiceWorkerSession):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/ServiceWorker/WebSWOriginStore.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.cpp.
(WebKit::WebSWOriginStore::WebSWOriginStore):
(WebKit::WebSWOriginStore::addToStore):
(WebKit::WebSWOriginStore::removeFromStore):
(WebKit::WebSWOriginStore::clearStore):
(WebKit::WebSWOriginStore::importComplete):
(WebKit::WebSWOriginStore::registerSWServerConnection):
(WebKit::WebSWOriginStore::unregisterSWServerConnection):
(WebKit::WebSWOriginStore::sendStoreHandle):
(WebKit::WebSWOriginStore::didInvalidateSharedMemory):
* NetworkProcess/ServiceWorker/WebSWOriginStore.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.h.
* NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp.
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::~WebSWServerConnection):
(WebKit::WebSWServerConnection::rejectJobInClient):
(WebKit::WebSWServerConnection::resolveRegistrationJobInClient):
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::startScriptFetchInClient):
(WebKit::WebSWServerConnection::updateRegistrationStateInClient):
(WebKit::WebSWServerConnection::fireUpdateFoundEvent):
(WebKit::WebSWServerConnection::setRegistrationLastUpdateTime):
(WebKit::WebSWServerConnection::setRegistrationUpdateViaCache):
(WebKit::WebSWServerConnection::notifyClientsOfControllerChange):
(WebKit::WebSWServerConnection::updateWorkerStateInClient):
(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerConnection::matchRegistration):
(WebKit::WebSWServerConnection::registrationReady):
(WebKit::WebSWServerConnection::getRegistrations):
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::sendToContextProcess):
* NetworkProcess/ServiceWorker/WebSWServerConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h.
(WebKit::WebSWServerConnection::ipcConnection const):
(WebKit::WebSWServerConnection::sessionID const):
* NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.messages.in.
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp.
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::messageSenderConnection):
(WebKit::WebSWServerToContextConnection::messageSenderDestinationID):
(WebKit::WebSWServerToContextConnection::connectionClosed):
(WebKit::WebSWServerToContextConnection::installServiceWorkerContext):
(WebKit::WebSWServerToContextConnection::fireInstallEvent):
(WebKit::WebSWServerToContextConnection::fireActivateEvent):
(WebKit::WebSWServerToContextConnection::terminateWorker):
(WebKit::WebSWServerToContextConnection::syncTerminateWorker):
(WebKit::WebSWServerToContextConnection::findClientByIdentifierCompleted):
(WebKit::WebSWServerToContextConnection::matchAllCompleted):
(WebKit::WebSWServerToContextConnection::claimCompleted):
(WebKit::WebSWServerToContextConnection::didFinishSkipWaiting):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
(WebKit::WebSWServerToContextConnection::terminate):
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.h.
(WebKit::WebSWServerToContextConnection::create):
(WebKit::WebSWServerToContextConnection::ipcConnection const):
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.messages.in.
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):
* Shared/Storage/StorageProcessCreationParameters.cpp:
(WebKit::StorageProcessCreationParameters::encode const):
(WebKit::StorageProcessCreationParameters::decode):
* Shared/Storage/StorageProcessCreationParameters.h:
(): Deleted.
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):
* Shared/WebsiteDataStoreParameters.h:
* Sources.txt:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didReceiveMessage):
(WebKit::StorageProcess::initializeWebsiteDataStore):
(WebKit::StorageProcess::createStorageToWebProcessConnection):
(WebKit::StorageProcess::destroySession):
(WebKit::StorageProcess::fetchWebsiteData):
(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
(WebKit::StorageProcess::connectionToContextProcessFromIPCConnection): Deleted.
(WebKit::StorageProcess::connectionToContextProcessWasClosed): Deleted.
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): Deleted.
(WebKit::StorageProcess::swServerForSession): Deleted.
(WebKit::StorageProcess::swOriginStoreForSession): Deleted.
(WebKit::StorageProcess::existingSWOriginStoreForSession const): Deleted.
(WebKit::StorageProcess::serverToContextConnectionForOrigin): Deleted.
(WebKit::StorageProcess::createServerToContextConnection): Deleted.
(WebKit::StorageProcess::didFailFetch): Deleted.
(WebKit::StorageProcess::didNotHandleFetch): Deleted.
(WebKit::StorageProcess::didReceiveFetchResponse): Deleted.
(WebKit::StorageProcess::didReceiveFetchData): Deleted.
(WebKit::StorageProcess::didReceiveFetchFormData): Deleted.
(WebKit::StorageProcess::didFinishFetch): Deleted.
(WebKit::StorageProcess::postMessageToServiceWorkerClient): Deleted.
(WebKit::StorageProcess::postMessageToServiceWorker): Deleted.
(WebKit::StorageProcess::registerSWServerConnection): Deleted.
(WebKit::StorageProcess::unregisterSWServerConnection): Deleted.
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): Deleted.
(WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay): Deleted.
* StorageProcess/StorageProcess.h:
(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted.
(): Deleted.
* StorageProcess/StorageProcess.messages.in:
* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection):
(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didReceiveSyncMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::StorageToWebProcessConnection::unregisterSWConnections): Deleted.
(WebKit::StorageToWebProcessConnection::establishSWServerConnection): Deleted.
* StorageProcess/StorageToWebProcessConnection.h:
* StorageProcess/StorageToWebProcessConnection.messages.in:
* StorageProcess/ios/StorageProcessIOS.mm:
(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):
(WebKit::NetworkProcessProxy::didFinishLaunching):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcessForExplicitSession):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::start):
* UIProcess/Storage/StorageProcessProxy.cpp:
(WebKit::StorageProcessProxy::getStorageProcessConnection):
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess): Deleted.
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession): Deleted.
* UIProcess/Storage/StorageProcessProxy.h:
* UIProcess/Storage/StorageProcessProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::getNetworkProcessConnection):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::registerURLSchemeServiceWorkersCanHandle):
(WebKit::WebProcessPool::postMessageToServiceWorkerClient):
(WebKit::WebProcessPool::postMessageToServiceWorker):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getNetworkProcessConnection):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::storageProcessParameters):
(WebKit::WebsiteDataStore::parameters):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):
* WebProcess/Network/NetworkProcessConnection.h:
(WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession):
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::serviceWorkerStartedWithMessage):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::didFinishInstall):
(WebKit::WebSWContextManagerConnection::didFinishActivation):
(WebKit::WebSWContextManagerConnection::setServiceWorkerHasPendingEvents):
(WebKit::WebSWContextManagerConnection::skipWaiting):
(WebKit::WebSWContextManagerConnection::setScriptResource):
(WebKit::WebSWContextManagerConnection::workerTerminated):
(WebKit::WebSWContextManagerConnection::findClientByIdentifier):
(WebKit::WebSWContextManagerConnection::matchAll):
(WebKit::WebSWContextManagerConnection::claim):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveResponse):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
(WebKit::WebServiceWorkerFetchTaskClient::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::didFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didNotHandle):
* WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):
* WebProcess/Storage/WebToStorageProcessConnection.cpp:
(WebKit::WebToStorageProcessConnection::didReceiveMessage):
(WebKit::WebToStorageProcessConnection::didReceiveSyncMessage):
(WebKit::WebToStorageProcessConnection::didClose):
(WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession): Deleted.
* WebProcess/Storage/WebToStorageProcessConnection.h:
(WebKit::WebToStorageProcessConnection::existingServiceWorkerConnectionForSession): Deleted.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::webToStorageProcessConnectionClosed):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess): Deleted.
* WebProcess/WebProcess.h:
(WebKit::WebProcess::existingNetworkProcessConnection):
(WebKit::WebProcess::existingWebToStorageProcessConnection): Deleted.
* WebProcess/WebProcess.messages.in:

Tools:

Change a check in ServiceWorkers.HasServiceWorkerRegistrationBit as storage process is not
launched during service worker operations now.

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

12 months ago[MediaStream] Update constraints supported by getDisplayMedia
eric.carlson@apple.com [Tue, 25 Sep 2018 21:31:29 +0000 (21:31 +0000)]
[MediaStream] Update constraints supported by getDisplayMedia
https://bugs.webkit.org/show_bug.cgi?id=189930
<rdar://problem/44740305>

Unreviewed, fix test broken by r236465.

* TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
(TestWebKitAPI::TEST_F):

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

12 months ago[WHSL] Implement semantics
mmaxfield@apple.com [Tue, 25 Sep 2018 21:21:10 +0000 (21:21 +0000)]
[WHSL] Implement semantics
https://bugs.webkit.org/show_bug.cgi?id=189134

Reviewed by Filip Pizlo.

This patch adds parsing support and adds the checks required to support HLSL-style semantics.

There are 3 places where semantics are allowed:

1. In a field in a struct. E.g.

struct R {
    float4 position : SV_Position;
}
vertex R foo() {
    ...
}

2. In a parameter of a function. If the function is not an entry point, the semantic is ignored.

compute void foo(device float[] data : buffer(u0)) {
    ...
}

3. On a function. This is so you don't have to create structs for the return types of simple vertex shaders.

vertex float4 foo() : SV_Position {
    ...
}

The semantics are partitioned into 4 types:

1. Built-in variables. For example, : SV_Position.
2. Resources. For example, : register(u0).
3. Stage-in / stage-out variables. For example, : attribute(0).
4. Specialization constants. For example, : specialized.

The semantics are validated according to a collection of rules:

- The same entry point can't list the same semantic twice
- Each built-in type has an appropriate type that is listed in the spec.
- Each built-in is appropriate as either an input or an output of a particular shader stage
- Resource semantics have to have the appropriate type (e.g. can't use register(s0) on a buffer)
- Resources can't be output from entry points
- The resource semantic mode must match the address space of the resource
- Stage-in and stage-out variables have to be POD
- Specialization constants can't be output from entry points, and have to be numbers

* WebGPUShadingLanguageRI/All.js:
* WebGPUShadingLanguageRI/BuiltInSemantic.js: Added.
(BuiltInSemantic):
(BuiltInSemantic.prototype.get name):
(BuiltInSemantic.prototype.get extraArguments):
(BuiltInSemantic.prototype.isAcceptableType):
(BuiltInSemantic.prototype.isAcceptableForShaderType):
(BuiltInSemantic.prototype.toString):
* WebGPUShadingLanguageRI/CallExpression.js:
(CallExpression.prototype._resolveWithOperatorAnderIndexer):
(CallExpression.prototype._resolveWithOperatorLength):
* WebGPUShadingLanguageRI/Checker.js:
(Checker):
(Checker.prototype.visitProgram):
(Checker.prototype._checkSemantics.Item):
(Checker.prototype._checkSemantics.Item.prototype.get type):
(Checker.prototype._checkSemantics.Item.prototype.get semantic):
(Checker.prototype._checkSemantics.Gatherer):
(Checker.prototype._checkSemantics.Gatherer.prototype.reset):
(Checker.prototype._checkSemantics.Gatherer.prototype.set currentSemantic):
(Checker.prototype._checkSemantics.Gatherer.prototype.get currentSemantic):
(Checker.prototype._checkSemantics.Gatherer.prototype.get result):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitEnumType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitVectorType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitMatrixType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitNativeType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitStructType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitTypeRef):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitPtrType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitArrayRefType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitArrayType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitFuncParameter):
(Checker.prototype._checkSemantics.checkDuplicateSemantics):
(Checker.prototype._checkSemantics.checkSemanticTypes):
(Checker.prototype._checkSemantics.checkSemanticForShaderType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitEnumType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitArrayType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitVectorType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitMatrixType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitNativeType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitPtrType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitArrayRefType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitStructType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitTypeRef):
(Checker.prototype._checkSemantics.PODChecker):
(Checker.prototype._checkSemantics.checkPODData):
(Checker.prototype._checkSemantics):
(Checker.prototype._checkShaderType):
(Checker.prototype._checkOperatorOverload):
(Checker.prototype.visitFuncDef):
(Checker.prototype.visitEnumType):
(Checker.prototype.visitArrayType):
(Checker.prototype.visitMakePtrExpression):
(Checker.prototype.visitMakeArrayRefExpression):
(Checker.prototype._finishVisitingPropertyAccess):
(Checker.prototype.visitIndexExpression):
(Checker.prototype.visitReturn):
(Checker.prototype.visitSwitchStatement):
(Checker.prototype.visitTernaryExpression):
(Checker.prototype.visitCallExpression):
* WebGPUShadingLanguageRI/Field.js:
(Field):
(Field.prototype.get semantic):
(Field.prototype.toString):
* WebGPUShadingLanguageRI/Func.js:
(Func):
(Func.prototype.get semantic):
(Func.prototype.toDeclString):
* WebGPUShadingLanguageRI/FuncDef.js:
(FuncDef):
* WebGPUShadingLanguageRI/FuncParameter.js:
(FuncParameter):
(FuncParameter.prototype.get semantic):
(FuncParameter.prototype.toString):
* WebGPUShadingLanguageRI/Intrinsics.js:
* WebGPUShadingLanguageRI/LateChecker.js:
(LateChecker.prototype.visitReferenceType):
(LateChecker):
(LateChecker.prototype._checkShaderType): Deleted.
(LateChecker.prototype.visitFuncDef): Deleted.
* WebGPUShadingLanguageRI/NativeFunc.js:
(NativeFunc):
* WebGPUShadingLanguageRI/Parse.js:
(parseParameter):
(parseFuncDecl):
(parseFuncDef):
(parseStageInOutSemantic):
(parseResourceSemantic):
(parseSpecializationConstantSemantic):
(parseBuiltInSemantic):
(parseField):
(parseNativeFunc):
* WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:
(programWithUnnecessaryThingsRemoved):
* WebGPUShadingLanguageRI/ResourceSemantic.js: Added.
(ResourceSemantic):
(ResourceSemantic.prototype.get resourceMode):
(ResourceSemantic.prototype.get index):
(ResourceSemantic.prototype.get space):
(ResourceSemantic.prototype.isAcceptableType):
(ResourceSemantic.prototype.isAcceptableForShaderType):
(ResourceSemantic.prototype.toString):
* WebGPUShadingLanguageRI/Rewriter.js:
(Rewriter.prototype.visitFuncParameter):
(Rewriter.prototype.visitField):
(Rewriter.prototype.visitBuiltInSemantic):
(Rewriter.prototype.visitResourceSemantic):
(Rewriter.prototype.visitStageInOutSemantic):
(Rewriter.prototype.visitSpecializationConstantSemantic):
(Rewriter):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/Semantic.js: Added.
(Semantic):
(Semantic.prototype.get origin):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitBuiltInSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitResourceSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitStageInOutSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitSpecializationConstantSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer):
(Semantic.prototype.equalToOtherSemantic):
* WebGPUShadingLanguageRI/SpecializationConstantSemantic.js: Copied from Tools/WebGPUShadingLanguageRI/Field.js.
(SpecializationConstantSemantic):
(SpecializationConstantSemantic.prototype.isAcceptableType):
(SpecializationConstantSemantic.prototype.isAcceptableForShaderType):
(SpecializationConstantSemantic.prototype.toString):
* WebGPUShadingLanguageRI/StageInOutSemantic.js: Copied from Tools/WebGPUShadingLanguageRI/FuncDef.js.
(StageInOutSemantic):
(StageInOutSemantic.prototype.get index):
(StageInOutSemantic.prototype.isAcceptableType):
(StageInOutSemantic.prototype.isAcceptableForShaderType):
(StageInOutSemantic.prototype.toString):
* WebGPUShadingLanguageRI/StatementCloner.js:
(StatementCloner.prototype.visitNativeFunc):
* WebGPUShadingLanguageRI/SynthesizeArrayOperatorLength.js:
(synthesizeArrayOperatorLength):
* WebGPUShadingLanguageRI/SynthesizeCopyConstructorOperator.js:
(synthesizeCopyConstructorOperator):
* WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js:
(synthesizeDefaultConstructorOperator):
* WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js:
(synthesizeEnumFunctions):
* WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
(setupAnder):
(synthesizeStructAccessorsForStructType):
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js:
(tests.shaderTypes):
* WebGPUShadingLanguageRI/Visitor.js:
(Visitor.prototype.visitFunc):
(Visitor.prototype.visitFuncParameter):
(Visitor.prototype.visitField):
(Visitor.prototype.visitBuiltInSemantic):
(Visitor.prototype.visitResourceSemantic):
(Visitor.prototype.visitStageInOutSemantic):
(Visitor.prototype.visitSpecializationConstantSemantic):
(Visitor):
* WebGPUShadingLanguageRI/index.html:

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

12 months agoAllow for suffixes to com.apple.WebKit.WebContent
achristensen@apple.com [Tue, 25 Sep 2018 21:06:31 +0000 (21:06 +0000)]
Allow for suffixes to com.apple.WebKit.WebContent
https://bugs.webkit.org/show_bug.cgi?id=189972

Reviewed by Chris Dumez.

Source/bmalloc:

* bmalloc/ProcessCheck.mm:
(bmalloc::gigacageEnabledForProcess):

Source/WebCore:

* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::isInWebProcess):

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

12 months agoREGRESSION: (r235948) Layout Test compositing/backing/backing-store-attachment-fill...
ryanhaddad@apple.com [Tue, 25 Sep 2018 21:04:03 +0000 (21:04 +0000)]
REGRESSION: (r235948) Layout Test compositing/backing/backing-store-attachment-fill-forwards-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189598#c0

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as flaky.
* platform/mac-wk2/TestExpectations: Ditto.

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

12 months ago[WHLSL] Test suite for Metal code generation
commit-queue@webkit.org [Tue, 25 Sep 2018 20:50:19 +0000 (20:50 +0000)]
[WHLSL] Test suite for Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=187738

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-25
Reviewed by Myles C. Maxfield.

This patch adds an Xcode project that contains a Cocoa app that can be
used for running WHLSL shaders on the GPU. It also contains an Xcode
test suite that runs all of the tests in Test.js on the GPU.

* WebGPUShadingLanguageRI/Metal/WHLSL Tests/.gitignore: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/AppDelegate.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/AppDelegate.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/AppIcon.appiconset/Contents.json: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/Contents.json: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Base.lproj/Main.storyboard: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CompileResult.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CompileResult.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Compiler.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Compiler.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CustomMetalView.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CustomMetalView.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Default.whlsl: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Julia.whlsl: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Mandelbrot.whlsl: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Info.plist: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OffscreenRenderer.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OffscreenRenderer.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OnscreenRenderer.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OnscreenRenderer.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/Renderer.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/Renderer.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestCallArgument.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestCallArgument.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestDescription.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestDescription.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamily.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamily.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamilyRunner.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamilyRunner.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/ViewController.h: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/ViewController.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/WHLSL.entitlements: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/_SharedMetal.txt: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/main.m: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/Info.plist: Added.
* WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/WHLSL_ToyTests.m: Added.
* WebGPUShadingLanguageRI/Test.js:
(tests.lotsOfLocalVariables):

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

12 months agoUIProcess should process incoming sync IPC from WebProcess when waiting for a sync...
cdumez@apple.com [Tue, 25 Sep 2018 19:41:41 +0000 (19:41 +0000)]
UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
https://bugs.webkit.org/show_bug.cgi?id=189927

Reviewed by Alex Christensen.

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
in order to avoid deadlocks. This is not an issue currently because the WebProcess does process
incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future
in order to avoid bugs caused by re-entering WebCore at unsafe times.

The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing
a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame /
DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync
IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about
the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial
about:blank and fragment navigations.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):

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

12 months agoUnreviewed build fix after r236455
mmaxfield@apple.com [Tue, 25 Sep 2018 19:34:17 +0000 (19:34 +0000)]
Unreviewed build fix after r236455
https://bugs.webkit.org/show_bug.cgi?id=189121

* WebGPUShadingLanguageRI/Test.js:
(tests.shaderStages):

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

12 months agoWeb Inspector: Stricter block syntax in generated ObjC protocol interfaces
commit-queue@webkit.org [Tue, 25 Sep 2018 19:32:44 +0000 (19:32 +0000)]
Web Inspector: Stricter block syntax in generated ObjC protocol interfaces
https://bugs.webkit.org/show_bug.cgi?id=189962
<rdar://problem/44648287>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-09-25
Reviewed by Brian Burg.

* inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator._callback_block_for_command):
If there are no return parameters include "void" in the block signature.

* inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
* inspector/scripts/tests/generic/expected/domain-availability.json-result:
* inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
* inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
* inspector/scripts/tests/generic/expected/worker-supported-domains.json-result:
* inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
Rebaseline test results.

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

12 months ago[iOS] Fix the open source iOS 12 build after r236445
wenson_hsieh@apple.com [Tue, 25 Sep 2018 18:59:38 +0000 (18:59 +0000)]
[iOS] Fix the open source iOS 12 build after r236445
https://bugs.webkit.org/show_bug.cgi?id=189953

Reviewed by Alex Christensen.

Source/WebCore:

Remove soft-linking macros from several sources in WebCore, and instead import UIKitSoftLink from PAL. This
allows different WebCore sources to soft-link UIKit (and its classes and symbols) without reimplementing
WebCore::UIKitLibrary.

* editing/cocoa/FontAttributesCocoa.mm:
* editing/cocoa/FontShadowCocoa.mm:
(WebCore::FontShadow::createShadow const):
* platform/graphics/cocoa/ColorCocoa.mm:
(WebCore::platformColor):
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSize):
(WebCore::availableScreenSize):
(WebCore::screenScaleFactor):

Source/WebCore/PAL:

Introduce a single UIKit soft-linking header in PAL.

* PAL.xcodeproj/project.pbxproj:
* pal/ios/UIKitSoftLink.h: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.
* pal/ios/UIKitSoftLink.mm: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.

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

12 months agoImport WPT content hint tests
commit-queue@webkit.org [Tue, 25 Sep 2018 18:55:24 +0000 (18:55 +0000)]
Import WPT content hint tests
https://bugs.webkit.org/show_bug.cgi?id=189854

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-25
Reviewed by Youenn Fablet.

* web-platform-tests/mst-content-hint/idlharness.window-expected.txt: Added.

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

12 months ago[WPE][GTK][WebRTC] Fixup VP8 encoding support
commit-queue@webkit.org [Tue, 25 Sep 2018 18:41:07 +0000 (18:41 +0000)]
[WPE][GTK][WebRTC] Fixup VP8 encoding support
https://bugs.webkit.org/show_bug.cgi?id=189921

Previous leak fixing commit introduced a regression in
the way the encoded buffer were prepared in the default
GStreamerVideoEncoder::Fragmentize implementation (when
encoding with VP8 basically).

+ Fix a build warning in the decoder.
+ Fix some wrong object members namings.
+ Properly move the caps reference when setting restriction caps.
+ Do not raise a GStreamer error when GStreamerVideoEncoder::OnEncodedImage
  fails - this might be a network issue and other encoders do not consider that
  fatal.
+ Use GstMappedBuffer where appropriate.

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

* platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoder::InitEncode):
(WebCore::GStreamerVideoEncoder::newSampleCallback):
(WebCore::GStreamerVideoEncoder::Fragmentize):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):

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

12 months ago[MediaStream] Update constraints supported by getDisplayMedia
eric.carlson@apple.com [Tue, 25 Sep 2018 18:37:29 +0000 (18:37 +0000)]
[MediaStream] Update constraints supported by getDisplayMedia
https://bugs.webkit.org/show_bug.cgi?id=189930

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated http/tests/media/media-stream/get-display-media-prompt.html.

* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getDisplayMedia const): Ignore audio constraints.

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::hasInvalidGetDisplayMediaConstraint): Check for invalid constraints.
(WebCore::UserMediaRequest::start): Check for invalid constraints.
(WebCore::UserMediaRequest::deny): Support new error.
* Modules/mediastream/UserMediaRequest.h:

* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):

LayoutTests:

* http/tests/media/media-stream/get-display-media-prompt-expected.txt:
* http/tests/media/media-stream/get-display-media-prompt.html:

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

12 months agoExtending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it...
cdumez@apple.com [Tue, 25 Sep 2018 18:31:21 +0000 (18:31 +0000)]
Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer
https://bugs.webkit.org/show_bug.cgi?id=189851
<rdar://problem/44696263>

Reviewed by Alex Christensen.

Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer:
- NetworkProcessProxy::m_processPool
- StorageProcessProxy::m_processPool

Those data members are C++ references because it is expected that the WebProcessPool owns the NetworkProcessProxy and
StorageProcessProxy. However, since NetworkProcessProxy / StorageProcessProxy are refcounted, it has happened that code
extends the lifetime of those past their process pool, leading to stale prrocess pool usage. The fix for these crashes
so far as been to ref the WebProcessPool instead of the NetworkProcessProxy / StorageProcessProxy. However, it is very
tempting for people to simply ref the NetworkProcessProxy / StorageProcessProxy given that they are refcounted.
For this reason, this patch updates NetworkProcessProxy / StorageProcessProxy so that they are no longer RefCounted
and so that the WebProcessPool truly owns them via std::unique_ptr<>.

* UIProcess/ChildProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::create): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
(WebKit::NetworkProcessProxy::throttler): Deleted.
(WebKit::NetworkProcessProxy::processPool): Deleted.
* UIProcess/Plugins/PluginProcessProxy.h:
(WebKit::PluginProcessProxy::pluginProcessAttributes const): Deleted.
(WebKit::PluginProcessProxy::pluginProcessToken const): Deleted.
(WebKit::PluginProcessProxy::isValid const): Deleted.
* UIProcess/Storage/StorageProcessProxy.cpp:
(WebKit::StorageProcessProxy::create): Deleted.
* UIProcess/Storage/StorageProcessProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.h:

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

12 months agoNetworkLoad::didReceiveResponse should pass its completion handler to its client
achristensen@apple.com [Tue, 25 Sep 2018 17:36:19 +0000 (17:36 +0000)]
NetworkLoad::didReceiveResponse should pass its completion handler to its client
https://bugs.webkit.org/show_bug.cgi?id=188701

Reviewed by Michael Catanzaro.

Right now we have a confusing enum ShouldContinueDidReceiveResponse and a complicated flow
that involves many objects and implicitly using NetworkLoad's destructor as part of the
loading flow.  This makes the responsibilities of the objects clear.

* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::didReceiveResponse):
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
(WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): Deleted.
* NetworkProcess/NetworkCORSPreflightChecker.h:
* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::didReceiveResponse):
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::continueDidReceiveResponse): Deleted.
(WebKit::NetworkLoad::didReceiveResponseNetworkSession): Deleted.
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveResponse):
(WebKit::PingLoad::didReceiveResponseNetworkSession): Deleted.
* NetworkProcess/PingLoad.h:
* NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::didReceiveResponse):
* NetworkProcess/PreconnectTask.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* NetworkProcess/capture/NetworkDataTaskReplay.cpp:
(WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):

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

12 months ago[EME] Fix variable name that should have gone in r236317
calvaris@igalia.com [Tue, 25 Sep 2018 17:19:36 +0000 (17:19 +0000)]
[EME] Fix variable name that should have gone in r236317
https://bugs.webkit.org/show_bug.cgi?id=189944

Reviewed by Jer Noble.

m_cdmInstanceClientWeakPtrFactory becomes
m_cdmInstanceSessionClientWeakPtrFactory as its type changes to
CDMInstanceSessionClient.

* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):
* Modules/encryptedmedia/MediaKeySession.h:

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

12 months ago[resource-timing] imported/w3c/web-platform-tests/resource-timing/resource_timing...
ryanhaddad@apple.com [Tue, 25 Sep 2018 16:57:32 +0000 (16:57 +0000)]
[resource-timing] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html times out on WK1
https://bugs.webkit.org/show_bug.cgi?id=189908

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Mark test as a failure since it is hitting a WPT harness timeout.
* platform/mac/TestExpectations: Remove expectation in favor of a mac-wk1 specific one.

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

12 months agoUnreviewed, correct a typo in a bug URL.
ryanhaddad@apple.com [Tue, 25 Sep 2018 15:56:16 +0000 (15:56 +0000)]
Unreviewed, correct a typo in a bug URL.

* platform/mac/TestExpectations:

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

12 months agoClean up code around RenderLayer's "has accelerated scrolling" functions
simon.fraser@apple.com [Tue, 25 Sep 2018 15:49:20 +0000 (15:49 +0000)]
Clean up code around RenderLayer's "has accelerated scrolling" functions
https://bugs.webkit.org/show_bug.cgi?id=189932

Reviewed by Zalan Bujtas.

RenderLayer had:

bool hasAcceleratedTouchScrolling()
bool hasTouchScrollableOverflow()
bool usesAcceleratedScrolling()
bool usesCompositedScrolling()
bool usesAsyncScrolling()

which are hard to keep in your head. Removed usesAcceleratedScrolling() since it just returns hasTouchScrollableOverflow().
Renamed hasAcceleratedTouchScrolling() to canUseAcceleratedTouchScrolling() to indicate that it just looks at style,
not whether layout has given the layer scrollable overflow yet. Tidy up some #ifdefs.

usesCompositedScrolling() and usesAsyncScrolling() are ScrollableArea overrides, and
look at backing layers, so require that compositing has run already. Note this in comments.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::canUseAcceleratedTouchScrolling const):
(WebCore::RenderLayer::hasTouchScrollableOverflow const):
(WebCore::RenderLayer::handleTouchEvent):
(WebCore::RenderLayer::usesAsyncScrolling const):
(WebCore::RenderLayer::showsOverflowControls const):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::hasAcceleratedTouchScrolling const): Deleted.
(WebCore::RenderLayer::usesAcceleratedScrolling const): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer const):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const):

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

12 months agoUnreviewed, update bug number of http/tests/misc/blob-size.html crash on Windows
cdumez@apple.com [Tue, 25 Sep 2018 15:45:42 +0000 (15:45 +0000)]
Unreviewed, update bug number of http/tests/misc/blob-size.html crash on Windows

* platform/win/TestExpectations:

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

12 months ago[WHLSL] Not all functions should be able to run in all shader stages
mmaxfield@apple.com [Tue, 25 Sep 2018 06:36:04 +0000 (06:36 +0000)]
[WHLSL] Not all functions should be able to run in all shader stages
https://bugs.webkit.org/show_bug.cgi?id=189121

Reviewed by Filip Pizlo.

ddx() and ddy() can only run in fragment shaders, and the barrier functions can only run in compute shaders.
ddx_coarse() & friends are currently implemented as just calling ddx(), so we only need to modify those functions
if/when we make them native.

The texture sampling functions that use implicit derivatives can run in any shader stage - they just use a LOD of
0. Therefore, those functions are unchanged.

* WebGPUShadingLanguageRI/All.js:
* WebGPUShadingLanguageRI/Intrinsics.js:
* WebGPUShadingLanguageRI/LateChecker.js:
(LateChecker.prototype._checkShaderType):
* WebGPUShadingLanguageRI/NativeFunc.js:
(NativeFunc):
(NativeFunc.prototype.get stage):
(NativeFunc.prototype.toDeclString):
* WebGPUShadingLanguageRI/Parse.js:
(parseFuncDecl):
(parseNativeFunc):
(parseNative):
* WebGPUShadingLanguageRI/Prepare.js:
(let.prepare):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/StatementCloner.js:
(StatementCloner.prototype.visitNativeFunc):
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js:
(tests.shaderStages):
* WebGPUShadingLanguageRI/WSyntaxError.js:
(WSyntaxError.prototype.toString):
(WSyntaxError):
* WebGPUShadingLanguageRI/index.html:

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

12 months agoApache can return a corrupt manifest file while ManifestGenerator::store is running
dewei_zhu@apple.com [Tue, 25 Sep 2018 05:12:13 +0000 (05:12 +0000)]
Apache can return a corrupt manifest file while ManifestGenerator::store is running
https://bugs.webkit.org/show_bug.cgi?id=189822

Reviewed by Ryosuke Niwa.

Updating a file on performance dashboard should be transactional between php and apache.
Otherwise, partial content may be served.

* public/api/measurement-set.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/api/runs.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/include/db.php: Make creating file transactionaly by taking advantage of
'move/rename' operation is atomic in OS.
Added logic to avoid overwriting file if all content except specified filed are identical.
* public/include/json-header.php: Added a helper function that added 'status' but does not
convert content to json.
* public/include/manifest-generator.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
* public/shared/statistics.js: Removed unnecessary logging.
(Statistics.new.sampleMeanAndVarianceFromMultipleSamples):
* server-tests/api-manifest-tests.js: Updated one unit test.

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

12 months agoMark two tests as flakey.
simon.fraser@apple.com [Tue, 25 Sep 2018 04:21:32 +0000 (04:21 +0000)]
Mark two tests as flakey.

* platform/mac/TestExpectations:

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

12 months ago[WHLSL] Implement trap statements in Metal code generation
commit-queue@webkit.org [Tue, 25 Sep 2018 04:15:06 +0000 (04:15 +0000)]
[WHLSL] Implement trap statements in Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=189615

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

Each function called by an entry point now receives an additional
boolean pointer parameter, which is set to false if the function traps.
After each function call (to a non-native function) this trap parameter
is checked. The behavior of the interpreter has also been updated so
that a function entry point catches the trap and instead returns zero,
matching the behavior of compiled code.

* WebGPUShadingLanguageRI/Evaluator.js: Adds a new flag to allow the
test suite to check for traps and also returns zero from entry points
whose invocation trapped.
* WebGPUShadingLanguageRI/Metal/MSLBackend.js: Pass program to function
declarations.
* WebGPUShadingLanguageRI/Metal/MSLCodegenAll.js: Update dependencies.
* WebGPUShadingLanguageRI/Metal/MSLFunctionDeclaration.js: Add program
property.
* WebGPUShadingLanguageRI/Metal/MSLFunctionDefinition.js: Ditto.
* WebGPUShadingLanguageRI/Metal/MSLInsertTrapParameter.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLStatementEmitter.js: Conforms to the
new trapping behavior.
* WebGPUShadingLanguageRI/Test.js: Update tests that trap.

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

12 months agoRemove AUTHORS and THANKS files which are stale
commit-queue@webkit.org [Tue, 25 Sep 2018 03:33:05 +0000 (03:33 +0000)]
Remove AUTHORS and THANKS files which are stale
https://bugs.webkit.org/show_bug.cgi?id=189941

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-09-24
Reviewed by Darin Adler.

Included mentions below so their names are still in ChangeLogs.

* AUTHORS: Removed.
Harri Porten (porten@kde.org) and Peter Kelly (pmk@post.com).
These authors remain mentioned in copyrights in source files.

* THANKS: Removed.
Richard Moore <rich@kde.org> - for filling the Math object with some life
Daegeun Lee <realking@mizi.com> - for pointing out some bugs and providing much code for the String and Date object.
Marco Pinelli <pinmc@libero.it> - for his patches
Christian Kirsch <ck@held.mind.de> - for his contribution to the Date object

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

12 months agoRename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
Hironori.Fujii@sony.com [Tue, 25 Sep 2018 03:05:13 +0000 (03:05 +0000)]
Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
https://bugs.webkit.org/show_bug.cgi?id=189733

Reviewed by Michael Catanzaro.

Source/bmalloc:

* bmalloc/BCompiler.h:

Source/JavaScriptCore:

* assembler/ARM64Assembler.h:
* assembler/ARMAssembler.h:
(JSC::ARMAssembler::cacheFlush):
* assembler/MacroAssemblerARM.cpp:
(JSC::isVFPPresent):
* assembler/MacroAssemblerARM64.cpp:
* assembler/MacroAssemblerARMv7.cpp:
* assembler/MacroAssemblerMIPS.cpp:
* assembler/MacroAssemblerX86Common.cpp:
* heap/HeapCell.cpp:
* heap/HeapCell.h:
* jit/HostCallReturnValue.h:
* jit/JIT.h:
* jit/JITOperations.cpp:
* jit/ThunkGenerators.cpp:
* runtime/ArrayConventions.cpp:
(JSC::clearArrayMemset):
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::digitDiv):

Source/WebCore:

No new tests (No behavior change).

* platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
* platform/graphics/cpu/arm/filters/FELightingNEON.h:
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::platformApply):
* platform/graphics/filters/FELighting.h:

Source/WTF:

Clang for Windows build enables WTF_COMPILER_CLANG and
WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
least at the moment, it is not feasible to define
WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.

To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
to WTF_COMPILER_GCC_COMPATIBLE.

As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
Clang for Windows builds.

* wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
* wtf/Assertions.h: Ditto.
* wtf/Atomics.h: Ditto.
* wtf/CheckedArithmetic.h: Ditto.
* wtf/FastMalloc.h: Ditto.
* wtf/MathExtras.h: Ditto.
* wtf/Platform.h: Ditto.
* wtf/StdLibExtras.h: Ditto.
* wtf/Vector.h: Ditto.
* wtf/text/ASCIIFastPath.h: Ditto.
* wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.

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

12 months ago[WHLSL] It shouldn’t be possible to use ternary expressions as l-values
commit-queue@webkit.org [Tue, 25 Sep 2018 01:16:15 +0000 (01:16 +0000)]
[WHLSL] It shouldn’t be possible to use ternary expressions as l-values
https://bugs.webkit.org/show_bug.cgi?id=189290

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

It is no longer possible for a ternary expression to be treated as an
l-value. This patch adds several test cases to verify that this is the
case.

* WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitTernaryExpression): No longer check isLValue.
* WebGPUShadingLanguageRI/NormalUsePropertyResolver:
(NormalUsePropertyResolver.visitTernaryExpression): Deleted.
* WebGPUShadingLanguageRI/Rewriter.js:
(Rewriter.prototype.visitTernaryExpression): No longer copy isLValue.
* WebGPUShadingLanguageRI/TernaryExpression.js:
(TernaryExpression):
(TernaryExpression.prototype.get elseExpression):
(TernaryExpression.prototype.get isLValue): Deleted.
(TernaryExpression.prototype.set isLValue): Deleted.
* WebGPUShadingLanguageRI/Test.js:
(tests.ternaryExpression): Add checks for failure if a failure is used
as an l-value.
(ternaryExpressionIsLValue.node.TernaryExpressionVisitor.prototype.visitTernaryExpression): Deleted.
(ternaryExpressionIsLValue.node.TernaryExpressionVisitor): Deleted.
(tests.ternaryExpressionIsLValue): Deleted.

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

12 months agoCap lifetime of persistent cookies created client-side through document.cookie
wilander@apple.com [Tue, 25 Sep 2018 01:13:26 +0000 (01:13 +0000)]
Cap lifetime of persistent cookies created client-side through document.cookie
https://bugs.webkit.org/show_bug.cgi?id=189933
<rdar://problem/44741888>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html

As pointed out in https://github.com/mikewest/http-state-tokens:

1) Cookies are available to JavaScript by default via document.cookie, which
enables a smooth upgrade from one-time XSS to theft of persistent credentials
and also makes cookies available to Spectre-like attacks on memory.

2) Though the HttpOnly attribute was introduced well over a decade ago, only
~8.31% of Set-Cookie operations use it today (stats from Chrome). We need
developer incentives to put proper protections in place.

3) The median (uncompressed) Cookie request header is 409 bytes, while the 90th
percentile is 1,589 bytes, the 95th 2,549 bytes, the 99th 4,601 bytes, and
~0.1% of Cookie headers are over 10kB (stats from Chrome). This is bad for load
performance.

In addition to this, third-party scripts running in first-party contexts can
read user data through document.cookie and even store cross-site tracking data
in them.

Authentication cookies should be HttpOnly and thus not be affected by
restrictions to document.cookie. Cookies that persist for a long time should
be Secure, HttpOnly, and SameSite to provide good security and privacy.

By capping the lifetime of persistent cookies set through document.cookie we
embark on a journey towards better cookie management on the web.

* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::filterCookies):
    Now caps the life time of persistent cookies to one week (seven days).
* testing/Internals.cpp:
(WebCore::Internals::getCookies const):
    New test function to get to cookie meta data such as expiry.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* TestExpectations:
    Skipped the new test by default since the behavior change is for
    Cocoa platforms only.
* http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt: Added.
* http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html: Added.
* http/tests/cookies/resources/cookie-utilities.js:
* platform/ios/TestExpectations:
    Marked the new test as [ Pass ].
* platform/mac-wk2/TestExpectations:
    Marked the new test as [ Pass ].

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

12 months agoLayoutTests/imported/w3c:
simon.fraser@apple.com [Tue, 25 Sep 2018 00:40:09 +0000 (00:40 +0000)]
LayoutTests/imported/w3c:
Remove filterRes parameter from SVG filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

* web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt: Rebaseline

Source/WebCore:
Remove filterRes parameter from SVG filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

Removed existing filterRes tests, added new test checking that it has no effect.

Tests: svg/filters/filterRes-is-noop.svg

* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
* svg/SVGElement.cpp:
(WebCore::SVGElement::animatableAttributeForName):
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::registerAttributes):
(WebCore::SVGFilterElement::parseAttribute):
(WebCore::SVGFilterElement::filterResXIdentifier): Deleted.
(WebCore::SVGFilterElement::filterResYIdentifier): Deleted.
(WebCore::SVGFilterElement::setFilterRes): Deleted.
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/svgattrs.in:

LayoutTests:
Remove filterRes parameter from filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

Removed existing filterRes tests, added new test checking that it has no effect.

* html5lib/resources/tests11.dat: Edited to remove filterRes. This seems to have been superseded by
    imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11.html
* platform/gtk/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
* platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
* platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
* platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
* platform/gtk/svg/filters/filterRes-expected.png: Removed.
* platform/gtk/svg/filters/filterRes1-expected.png: Removed.
* platform/gtk/svg/filters/filterRes3-expected.png: Removed.
* platform/mac/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt: Removed.
* platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
* platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
* platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
* platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
* platform/mac/svg/filters/filterRes-expected.png: Removed.
* platform/mac/svg/filters/filterRes1-expected.png: Removed.
* platform/mac/svg/filters/filterRes2-expected.png: Removed.
* platform/mac/svg/filters/filterRes3-expected.png: Removed.
* svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
* svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg:
* svg/dom/SVGAnimatedInteger-expected.txt:
* svg/dom/SVGAnimatedInteger.html: Change to use feConvolveMatrix orderX.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt: Removed.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html: Removed.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt: Removed.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html: Removed.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt: Removed.
* svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html: Removed.
* svg/filters/filterRes-is-noop-expected.svg: Added.
* svg/filters/filterRes-is-noop.svg: Added.
* svg/filters/filterRes.svg: Removed.
* svg/filters/filterRes1-expected.txt: Removed.
* svg/filters/filterRes1.svg: Removed.
* svg/filters/filterRes2-expected.png: Removed.
* svg/filters/filterRes2-expected.txt: Removed.
* svg/filters/filterRes2.svg: Removed.
* svg/filters/filterRes3-expected.txt: Removed.
* svg/filters/filterRes3.svg: Removed.

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

12 months agoDon't cause a crash even when some IDL attribute is missing CEReactions
rniwa@webkit.org [Tue, 25 Sep 2018 00:28:42 +0000 (00:28 +0000)]
Don't cause a crash even when some IDL attribute is missing CEReactions
https://bugs.webkit.org/show_bug.cgi?id=189937

Reviewed by Simon Fraser.

Replaced release assertions in ElementQueue::add and ElementQueue::invokeAll by debug assertions
since a missing CEReactions resulting in a crash is a terrible user experience.

Also made the iteration in invokeAll safe when more elements were added to m_elements.

No new tests since we would still hit debug assertions, and this behavior should only come up
when some IDL attribute is erroneously missing CEReactions.

* dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementReactionQueue::ElementQueue::add):
(WebCore::CustomElementReactionQueue::ElementQueue::invokeAll):

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

12 months agoRefactor Editor::fontAttributesForSelectionStart to be platform-agnostic
wenson_hsieh@apple.com [Tue, 25 Sep 2018 00:17:29 +0000 (00:17 +0000)]
Refactor Editor::fontAttributesForSelectionStart to be platform-agnostic
https://bugs.webkit.org/show_bug.cgi?id=189918
Work towards <rdar://problem/44648705>

Reviewed by Tim Horton.

Source/WebCore:

Refactors the functionality in Editor::fontAttributesForSelectionStart to not be Cocoa-only. Rename this to
fontAttributesAtSelectionStart (to be consistent with `EditingStyle::styleAtSelectionStart`) and move it from
EditorCocoa.mm to Editor.cpp; instead of creating and populating an NSDictionary with font attribute
information, create and populate a new `FontAttributes` struct that contains the same information. Cocoa clients
in WebKitLegacy may then create an `NSDictionary` as needed from the `FontAttributes`.

* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* editing/Editor.cpp:
(WebCore::Editor::platformFontAttributesAtSelectionStart const):

Add a hook to allow platforms to supply additional information in FontAttributes. On Cocoa, this adds a UIFont
or NSFont to FontAttributes; otherwise, this is a no-op.

(WebCore::Editor::fontAttributesAtSelectionStart const):
* editing/Editor.h:
* editing/FontAttributeChanges.cpp:
(WebCore::cssValueListForShadow):
* editing/FontAttributeChanges.h:
(): Deleted.
(WebCore::FontShadow::encode const): Deleted.
(WebCore::FontShadow::decode): Deleted.
* editing/FontAttributes.h: Added.

Introduce a new struct that contains font attribute information. May be converted into an NSDictionary for use
by Cocoa clients in WebKitLegacy and WebKit. In a future patch, this will become serializable over IPC for use
in WebKit2.

* editing/FontShadow.h: Added.

Move FontShadow out into a separate header file, included in `FontAttributeChanges.h` and `FontAttributes.h`.

(WebCore::FontShadow::encode const):
(WebCore::FontShadow::decode):
* editing/cocoa/EditorCocoa.mm:

Add a helper function to convert a WebCore::Color to either `UIColor` on iOS or `NSColor` when AppKit is being
used.

(WebCore::Editor::platformFontAttributesAtSelectionStart const):
(WebCore::Editor::getTextDecorationAttributesRespectingTypingStyle const): Deleted.

Remove a helper function that was only used to compute text decoration attributes in
fontAttributesForSelectionStart.

(WebCore::Editor::fontAttributesForSelectionStart const): Deleted.
* editing/cocoa/FontAttributesCocoa.mm: Added.
(WebCore::FontAttributes::createDictionary const):
* editing/cocoa/FontShadowCocoa.mm: Added.
(WebCore::FontShadow::createShadow const):
* editing/cocoa/HTMLConverter.mm:
(_webKitBundle):
(HTMLConverter::_colorForElement):
(_platformColor): Deleted.

Adopt platformColor().

* platform/graphics/cocoa/ColorCocoa.h: Added.
* platform/graphics/cocoa/ColorCocoa.mm: Added.
(WebCore::platformColor):
* platform/graphics/metal/GPURenderPassDescriptorMetal.mm:

Build fix due to changes in unified sources.

* platform/mac/WebCoreNSFontManagerExtras.mm:
(WebCore::computedFontAttributeChanges):
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

More build fixes due to changes in unified sources.

Source/WebCore/PAL:

Add `+_disambiguated_due_to_CIImage_colorWithCGColor:` as a UIColor SPI definition. Also, import
`UIColor_Private.h` directly when the Apple internal SDK is used.

* pal/spi/ios/UIKitSPI.h:

Source/WebKitLegacy/mac:

Replace call sites of fontAttributesForSelectionStart() to fontAttributesAtSelectionStart().createDictionary().

* WebView/WebHTMLView.mm:
(-[WebHTMLView _selectionStartFontAttributesAsRTF]):
(-[WebHTMLView _updateFontPanel]):
* WebView/WebView.mm:
(-[WebView typingAttributes]):

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

12 months agoImport WPT tests for css custom properties api
commit-queue@webkit.org [Tue, 25 Sep 2018 00:05:32 +0000 (00:05 +0000)]
Import WPT tests for css custom properties api
https://bugs.webkit.org/show_bug.cgi?id=189764

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-24
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/css/css-properties-values-api/META.yml: Added.
* web-platform-tests/css/css-properties-values-api/idlharness-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/idlharness.html: Added.
* web-platform-tests/css/css-properties-values-api/property-cascade-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/property-cascade.html: Added.
* web-platform-tests/css/css-properties-values-api/register-property-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html: Added.
* web-platform-tests/css/css-properties-values-api/register-property.html: Added.
* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance.html: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-computation.html: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-cssom.html: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-initial-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/registered-property-initial.html: Added.
* web-platform-tests/css/css-properties-values-api/support/alt/alt.css: Added.
(#target):
* web-platform-tests/css/css-properties-values-api/support/alt/alt.js: Added.
(reg_url):
* web-platform-tests/css/css-properties-values-api/support/alt/w3c-import.log: Added.
* web-platform-tests/css/css-properties-values-api/support/main/main.css: Added.
(#target):
* web-platform-tests/css/css-properties-values-api/support/main/main.js: Added.
(reg_url):
* web-platform-tests/css/css-properties-values-api/support/main/main.utf16be.css: Added.
* web-platform-tests/css/css-properties-values-api/support/main/w3c-import.log: Added.
* web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/typedom.tentative.html: Added.
* web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/unit-cycles.html: Added.
* web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/url-resolution.html: Added.
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles.html: Added.
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html: Added.
* web-platform-tests/css/css-properties-values-api/w3c-import.log: Added.

LayoutTests:

* platform/mac-wk1/TestExpectations:

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

12 months agoSharedBuffer should have an equality test
jer.noble@apple.com [Mon, 24 Sep 2018 23:48:51 +0000 (23:48 +0000)]
SharedBuffer should have an equality test
https://bugs.webkit.org/show_bug.cgi?id=189919

Reviewed by Alex Christensen.

Source/WebCore:

Test: TestWebKitAPI SharedBuffer.isEqualTo.

* platform/SharedBuffer.cpp:
* platform/SharedBuffer.h:
(WebCore::operator==):
(WebCore::operator!=):

Tools:

* TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F):

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

12 months agoSkipped accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html...
jlewis3@apple.com [Mon, 24 Sep 2018 23:38:31 +0000 (23:38 +0000)]
Skipped accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html on High Sierra+.
https://bugs.webkit.org/show_bug.cgi?id=189094

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

12 months agoBuild fix.
achristensen@apple.com [Mon, 24 Sep 2018 23:11:58 +0000 (23:11 +0000)]
Build fix.
https://bugs.webkit.org/show_bug.cgi?id=189929

* WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h:

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

12 months agoimported/w3c/web-platform-tests/shadow-dom/slotchange.html is a flaky failure
rniwa@webkit.org [Mon, 24 Sep 2018 23:11:36 +0000 (23:11 +0000)]
imported/w3c/web-platform-tests/shadow-dom/slotchange.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=167652

Reviewed by Saam Barati.

Source/WebCore:

The bug appears to be caused by the JS wrappers of slot elements getting prematurely collected.
Deployed GCReachableRef introduced in r236376 to fix the bug.

Test: fast/shadow-dom/signal-slot-list-retains-js-wrappers.html

* dom/MutationObserver.cpp:
(WebCore::signalSlotList):
(WebCore::MutationObserver::enqueueSlotChangeEvent):
(WebCore::MutationObserver::notifyMutationObservers):

LayoutTests:

Added a regression test for signaling a lot of slot elements.

* fast/shadow-dom/signal-slot-list-retains-js-wrappers-expected.txt: Added.
* fast/shadow-dom/signal-slot-list-retains-js-wrappers.html: Added.

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

12 months agoRelease assert when using paper-textarea due to autocorrect IDL attribute missing...
rniwa@webkit.org [Mon, 24 Sep 2018 23:10:01 +0000 (23:10 +0000)]
Release assert when using paper-textarea due to autocorrect IDL attribute missing CEReactions
https://bugs.webkit.org/show_bug.cgi?id=174629
<rdar://problem/33407620>

Reviewed by Simon Fraser.

Source/WebCore:

The bug was caused by autocorrect and autocapitalize IDL attributes missing CEReactions.

Test: fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html

* html/HTMLElement.idl:

LayoutTests:

Added a regression test for mutating autocorrect and autocapitalize IDL attributes during connected callback.

* fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash-expected.txt: Added.
* fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html: Added.

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

12 months agoPrepare to replace WKBundleFileHandleCreateWithPath with a version that takes a WKBun...
achristensen@apple.com [Mon, 24 Sep 2018 23:08:51 +0000 (23:08 +0000)]
Prepare to replace WKBundleFileHandleCreateWithPath with a version that takes a WKBundlePageRef
https://bugs.webkit.org/show_bug.cgi?id=189929

Reviewed by Andy Estes.

Source/WebKit:

This will be needed for rdar://problem/24576194

* WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp:
(WKBundleFileHandleCreateWithPathForPage):
* WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h:

Tools:

* TestWebKitAPI/Tests/WebKit/WKBundleFileHandle_Bundle.cpp:

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

12 months agoArray.prototype.indexOf fast path needs to ensure the length is still valid after...
sbarati@apple.com [Mon, 24 Sep 2018 23:05:54 +0000 (23:05 +0000)]
Array.prototype.indexOf fast path needs to ensure the length is still valid after performing effects
https://bugs.webkit.org/show_bug.cgi?id=189922
<rdar://problem/44651275>

Reviewed by Mark Lam.

JSTests:

* stress/array-indexof-fast-path-effects.js: Added.
* stress/array-indexof-cached-length.js: Added.

Source/JavaScriptCore:

The implementation was first getting the length to iterate up to,
then getting the starting index. However, getting the starting
index may perform effects. e.g, it could change the length of the
array. This changes it so we verify the length is still valid.

* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncIndexOf):

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

12 months agoBegin deprecating C API
achristensen@apple.com [Mon, 24 Sep 2018 23:04:56 +0000 (23:04 +0000)]
Begin deprecating C API
https://bugs.webkit.org/show_bug.cgi?id=189810

Reviewed by Andy Estes.

* Shared/API/c/WKDeprecated.h: Added.
* UIProcess/API/C/WKPage.h:
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(setUpPagePolicyClient):
(-[WKBrowsingContextController setPolicyDelegate:]):
* WebKit.xcodeproj/project.pbxproj:

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

12 months ago[WHLSL] Casting user-created types to themselves should always work
commit-queue@webkit.org [Mon, 24 Sep 2018 23:04:06 +0000 (23:04 +0000)]
[WHLSL] Casting user-created types to themselves should always work
https://bugs.webkit.org/show_bug.cgi?id=189113

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

Casting user-defined types to themselves worked already, but we didn't
test it anywhere.

* WebGPUShadingLanguageRI/Test.js:
(tests.selfCasts):

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

12 months agoofflineasm: fix macro scoping
tzagallo@apple.com [Mon, 24 Sep 2018 22:59:23 +0000 (22:59 +0000)]
offlineasm: fix macro scoping
https://bugs.webkit.org/show_bug.cgi?id=189902

Reviewed by Mark Lam.

In the code below, the reference to `f` in `g`, which should refer to
the outer macro definition will instead refer to the f argument of the
anonymous macro passed to `g`. That leads to this code failing to
compile (f expected 0 args but got 1).

```
macro f(x)
    move x, t0
end

macro g(fn)
    fn(macro () f(42) end)
end

g(macro(f) f() end)
```

* offlineasm/ast.rb:
* offlineasm/transform.rb:

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

12 months agoNo-op document.open() calls should not have any side effects
cdumez@apple.com [Mon, 24 Sep 2018 22:55:56 +0000 (22:55 +0000)]
No-op document.open() calls should not have any side effects
https://bugs.webkit.org/show_bug.cgi?id=189373
<rdar://problem/44282702>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window-expected.txt:

Source/WebCore:

Update document.open() implementation to match the specification [1] more closely.
In particular, URLs updates should happen much later, at step 11. They were happening
too early and would cause side effects when returning early.

[1] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document-open-steps

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::open):

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

12 months agoInclude more headers in IOSurface.mm, PixelBufferResizer.{h, mm}
dbates@webkit.org [Mon, 24 Sep 2018 22:47:35 +0000 (22:47 +0000)]
Include more headers in IOSurface.mm, PixelBufferResizer.{h, mm}
https://bugs.webkit.org/show_bug.cgi?id=189928

Reviewed by Andy Estes.

Make building IOSurface.mm and PixelBufferResizer.mm deterministic regardless of
which bundle of unified sources they are built in.

* platform/graphics/cocoa/IOSurface.mm: Include headers HostWindow.h and PlatformScreen.h
since we make use of functionality from these headers.
* platform/graphics/cv/PixelBufferResizer.h: Include header IntSize.h since
we need the size of an IntSize for m_size.
* platform/graphics/cv/PixelBufferResizer.mm: Include header Logging.h since
this file makes use of logging facilities. Also substitute #import for #include
while I am here since this file is an Objective-C++ file.

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

12 months ago[Curl] Enable http/tests/misc tests.
Basuke.Suzuki@sony.com [Mon, 24 Sep 2018 22:40:43 +0000 (22:40 +0000)]
[Curl] Enable http/tests/misc tests.
https://bugs.webkit.org/show_bug.cgi?id=189931

Unreviewed test gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/http/tests/misc/acid2-expected.txt: Added.
* platform/wincairo/http/tests/misc/acid2-pixel-expected.txt: Added.
* platform/wincairo/http/tests/misc/error404-expected.txt: Added.
* platform/wincairo/http/tests/misc/favicon-as-image-expected.txt: Added.
* platform/wincairo/http/tests/misc/frame-access-during-load-expected.txt: Added.
* platform/wincairo/http/tests/misc/generated-content-inside-table-expected.txt: Added.
* platform/wincairo/http/tests/misc/iframe404-expected.txt: Added.
* platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.txt: Added.
* platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png: Added.
* platform/wincairo/http/tests/misc/slow-loading-image-in-pattern-expected.txt: Added.

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

12 months agoAdd forEach method for iterating CodeBlock's ValueProfiles
tzagallo@apple.com [Mon, 24 Sep 2018 22:03:34 +0000 (22:03 +0000)]
Add forEach method for iterating CodeBlock's ValueProfiles
https://bugs.webkit.org/show_bug.cgi?id=189897

Reviewed by Mark Lam.

Add method to abstract how we find ValueProfiles in a CodeBlock in
preparation for https://bugs.webkit.org/show_bug.cgi?id=189785, when
ValueProfiles will be stored in the MetadataTable.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllValueProfilePredictions):
(JSC::CodeBlock::shouldOptimizeNow):
(JSC::CodeBlock::dumpValueProfiles):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::forEachValueProfile):
(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):
(JSC::CodeBlock::numberOfValueProfiles):
(JSC::CodeBlock::valueProfile):
(JSC::CodeBlock::totalNumberOfValueProfiles): Deleted.
(JSC::CodeBlock::getFromAllValueProfiles): Deleted.
* tools/HeapVerifier.cpp:
(JSC::HeapVerifier::validateJSCell):

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

12 months ago[Payment Request] Events cleanup
aestes@apple.com [Mon, 24 Sep 2018 21:48:13 +0000 (21:48 +0000)]
[Payment Request] Events cleanup
https://bugs.webkit.org/show_bug.cgi?id=189925

Reviewed by Simon Fraser.

1. Constructed MerchantValidationEvents (and ApplePayValidateMerchantEvents) with rvalue
references to validationURLs.
2. Instead of MerchantValidationEvent and PaymentRequestUpdateEvent having a
RefPtr<PaymentRequest>, downcasted their target to a PaymentRequest. Trusted versions of
these events are always dispatched to a PaymentRequest object.
3. Defined MerchantValidationEventInit in MerchantValidationEvent.idl instead of having a
separate .idl and .h for this dictionary.

No new tests. No change in behavior.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::validateMerchant):
* Modules/applepay/ApplePaySession.h:
* Modules/applepay/ApplePayValidateMerchantEvent.cpp:
(WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent):
* Modules/applepay/ApplePayValidateMerchantEvent.h:
(WebCore::ApplePayValidateMerchantEvent::create):
* Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::validateMerchant):
* Modules/applepay/PaymentCoordinator.h:
* Modules/applepay/PaymentSession.h:
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::validateMerchant):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
* Modules/paymentrequest/MerchantValidationEvent.cpp:
(WebCore::MerchantValidationEvent::create):
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
(WebCore::MerchantValidationEvent::complete):
* Modules/paymentrequest/MerchantValidationEvent.h:
* Modules/paymentrequest/MerchantValidationEvent.idl:
* Modules/paymentrequest/MerchantValidationEventInit.h: Removed.
* Modules/paymentrequest/MerchantValidationEventInit.idl: Removed.
* Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
(WebCore::PaymentMethodChangeEvent::PaymentMethodChangeEvent):
* Modules/paymentrequest/PaymentMethodChangeEvent.h:
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::paymentMethodChanged):
* Modules/paymentrequest/PaymentRequest.h:
(isType):
* Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:
(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):
(WebCore::PaymentRequestUpdateEvent::updateWith):
* Modules/paymentrequest/PaymentRequestUpdateEvent.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTarget.cpp:
(WebCore::EventTarget::isPaymentRequest const):
* dom/EventTarget.h:

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

12 months agoUpdate some test results under compositing/overflow
simon.fraser@apple.com [Mon, 24 Sep 2018 20:49:25 +0000 (20:49 +0000)]
Update some test results under compositing/overflow
https://bugs.webkit.org/show_bug.cgi?id=189857

Reviewed by Tim Horton.

Unskip some tests under compositing/overflow, and land new macOS and iOS expectations.

* compositing/overflow/overflow-auto-with-touch-expected.txt:
* compositing/overflow/overflow-overlay-with-touch-expected.txt:
* compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
* compositing/overflow/scrolling-without-painting-expected.txt:
* compositing/overflow/textarea-scroll-touch-expected.txt:
* compositing/overflow/updating-scrolling-content-expected.txt:
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios/TestExpectations:
* platform/ios/compositing/overflow/nested-scrolling-expected.txt:
* platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
* platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
* platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-overlay-with-touch-expected.txt.
* platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
* platform/ios/compositing/overflow/scrolling-without-painting-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-without-painting-expected.txt.
* platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: Copied from LayoutTests/compositing/overflow/textarea-scroll-touch-expected.txt.
* platform/ios/compositing/overflow/updating-scrolling-content-expected.txt: Copied from LayoutTests/compositing/overflow/updating-scrolling-content-expected.txt.
* platform/mac/TestExpectations:
* platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:

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

12 months agoSeparate Mac and iOS implementation of windowsKeyCodeForCharCode()
dbates@webkit.org [Mon, 24 Sep 2018 20:47:39 +0000 (20:47 +0000)]
Separate Mac and iOS implementation of windowsKeyCodeForCharCode()
https://bugs.webkit.org/show_bug.cgi?id=189898

Reviewed by Tim Horton.

Extract the Mac and iOS implementations into a windowsKeyCodeForCharCode() defined in file
KeyEventMac.mm and file KeyEventIOS, respectively.

Mac and iOS have significant differences in how they represent function keys. It is not worthwhile
to share windowsKeyCodeForCharCode() between them given these differences. On Mac function keys
are represented by a char code in the range 0xF700-0xF8FF. On iOS these keys may not have a unique
char code (e.g. F1 = 0x10 = F10) and must be identified either by special string (e.g. UIKeyInputUpArrow)
or key code.

* platform/cocoa/KeyEventCocoa.mm:
(WebCore::windowsKeyCodeForCharCode): Deleted.
* platform/ios/KeyEventIOS.mm:
(WebCore::windowsKeyCodeForCharCode): Added. Remove the handling of NS*FunctionKey char codes
as function keys are not represented using them as of iOS 12.
* platform/mac/KeyEventMac.mm:
(WebCore::windowsKeyCodeForCharCode): Added.

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

12 months agoContinued test gardening of media-fragment/ tests for ios 12
tsavell@apple.com [Mon, 24 Sep 2018 20:40:39 +0000 (20:40 +0000)]
Continued test gardening of media-fragment/ tests for ios 12
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed test gardening

* platform/ios/TestExpectations:

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

12 months agoUnreviewed, rolling out r236368.
cdumez@apple.com [Mon, 24 Sep 2018 20:31:31 +0000 (20:31 +0000)]
Unreviewed, rolling out r236368.

Caused WebKit.NetworkProcessCrashWithPendingConnection API
test to crash (Bug 189926)

Reverted changeset:

"Extending the lifetime of a NetworkProcessProxy /
StorageProcessProxy may cause it to have a stale
WebProcessPool pointer"
https://bugs.webkit.org/show_bug.cgi?id=189851
https://trac.webkit.org/changeset/236368

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

12 months agoRemove the old "AcceleratedCompositingForOverflowScroll" code
simon.fraser@apple.com [Mon, 24 Sep 2018 20:19:46 +0000 (20:19 +0000)]
Remove the old "AcceleratedCompositingForOverflowScroll" code
https://bugs.webkit.org/show_bug.cgi?id=189870

Reviewed by Zalan Bujtas.

The "AcceleratedCompositingForOverflowScroll" code was added to allow overflow:scroll to use
composited scrolling if an overflow:scroll could be made a stacking context without affecting
z-order. We need overflow:scroll to be accelerated always, so a different approach is needed.
Remove this old code (unused by any platform?) to make working on new code easier.
Source/WebCore:

* page/Settings.yaml:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
(WebCore::RenderLayer::stackingContext const):
(WebCore::compositingContainer):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::hasAcceleratedTouchScrolling const):
(WebCore::RenderLayer::usesAcceleratedScrolling const):
(WebCore::adjustedScrollDelta):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::RenderLayer::enclosingFragmentedFlowAncestor const):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled const): Deleted.
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder): Deleted.
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive): Deleted.
(WebCore::RenderLayer::positionNewlyCreatedOverflowControls): Deleted.
(WebCore::RenderLayer::canBeStackingContainer const): Deleted.
(WebCore::RenderLayer::stackingContainer const): Deleted.
(WebCore::RenderLayer::needsCompositedScrolling const): Deleted.
(WebCore::RenderLayer::updateNeedsCompositedScrolling): Deleted.
* rendering/RenderLayer.h:
(WebCore::RenderLayer::clearZOrderLists):
(WebCore::RenderLayer::updateZOrderLists):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):
(WebCore::RenderLayerBacking::compositingOpacity const):
(WebCore::traverseVisibleNonCompositedDescendantLayers):
(WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers const): Deleted.
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayersAfterFlush):
(WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush):
(WebCore::styleChangeRequiresLayerRebuild):
(WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer const):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::requiresCompositingLayer const):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const):
(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition const):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const):
(WebCore::RenderLayerCompositor::requiresCompositingForScrolling const): Deleted.
* rendering/RenderLayerCompositor.h:

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAcceleratedCompositingForOverflowScrollEnabled): Deleted.
(WKPreferencesGetAcceleratedCompositingForOverflowScrollEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:

LayoutTests:

Keep some of the tests; they will be useful later.

* compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
* compositing/overflow/automatically-opt-into-composited-scrolling.html: Removed.
* compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
* compositing/overflow/composited-scrolling-creates-a-stacking-container.html: Removed.
* compositing/overflow/composited-scrolling-paint-phases.html:
* compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html:
* compositing/overflow/dynamic-composited-scrolling-status.html:
* compositing/overflow/iframe-inside-overflow-clipping.html:
* compositing/overflow/nested-scrolling.html:
* compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
* compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html:
* compositing/overflow/scrolling-content-clip-to-viewport.html:
* compositing/overflow/scrolling-without-painting.html:
* compositing/overflow/textarea-scroll-touch.html:
* compositing/overflow/updating-scrolling-content.html:
* compositing/rtl/rtl-overflow-scrolling.html:
* platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-wk1/TestExpectations:
* platform/ios/compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
* platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
* platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.

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

12 months agoEnable conversion of libwebrtc internal frames as CVPixelBuffer
youenn@apple.com [Mon, 24 Sep 2018 20:15:17 +0000 (20:15 +0000)]
Enable conversion of libwebrtc internal frames as CVPixelBuffer
https://bugs.webkit.org/show_bug.cgi?id=189892

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Renamed encoder/decoder factory creation routine.
Make pixelBufferFromFrame take a function to create a CVPixelBuffer
if the frame does not wrap one.
Initialize the CVPixelBuffer with libwebrtc internal frame.

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:
* Source/webrtc/sdk/WebKit/WebKitUtilities.h:
* Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):
(webrtc::CopyVideoFrameToPixelBuffer):
(webrtc::pixelBufferFromFrame):
(webrtc::createVideoToolboxEncoderFactory): Deleted.
(webrtc::createVideoToolboxDecoderFactory): Deleted.

Source/WebCore:

Make sure to handle the case of libwebrtc frames that are not backed by CVPixelBuffer.
No observable change of behavior.

* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
Update according renamed methods.
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
In case of libwebrtc frame that are not backed by CVPixelBuffer, we create
a CVPixelBuffer from a pixel buffer pool.
This CVPixelBuffer is then filled as part of webrtc::pixelBufferFromFrame.
* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:
(WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
Make sure to use preferred pixel buffer format.

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

12 months ago[MediaStream] Add mock window capture source
eric.carlson@apple.com [Mon, 24 Sep 2018 20:12:57 +0000 (20:12 +0000)]
[MediaStream] Add mock window capture source
https://bugs.webkit.org/show_bug.cgi?id=189843
<rdar://problem/44687445>

Reviewed by Youenn Fablet.

No new tests, the API is disabled and it isn't possible to test yet.

* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::processNewFrame): Remove an extra blank line.

* platform/mock/MockMediaDevice.h:
(WebCore::MockDisplayProperties::encode const): Get rid of defaultFrameRate, add type.
(WebCore::MockDisplayProperties::decode): Ditto.
(WebCore::MockMediaDevice::type const):

* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices): Add mock window devices.
(WebCore::MockRealtimeMediaSourceCenter::audioDevices): Cleanup.
(WebCore::MockRealtimeMediaSourceCenter::videoDevices): Cleanup.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices): New.

* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Set default size on displays.
(WebCore::MockRealtimeVideoSource::supportsSizeAndFrameRate): Call RealtimeVideoSource for
mock camera, base class for device.
(WebCore::MockRealtimeVideoSource::setSizeAndFrameRate): Ditto.
(WebCore::MockRealtimeVideoSource::generatePresets): ASSERT if called as a camera.
(WebCore::MockRealtimeVideoSource::capabilities): updateCapabilities is only appropriate for cameras.
(WebCore::MockRealtimeVideoSource::settings): Camera and Device are different surface types.
(WebCore::MockRealtimeVideoSource::drawText): Render name, not ID.
(WebCore::MockRealtimeVideoSource::mockDisplayType const):

* platform/mock/MockRealtimeVideoSource.h:
(WebCore::MockRealtimeVideoSource::mockDisplay const):
(WebCore::MockRealtimeVideoSource::mockScreen const):
(WebCore::MockRealtimeVideoSource::mockWindow const):

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

12 months agoArgumentsEliminationPhase should snip basic blocks after proven OSR exits
sbarati@apple.com [Mon, 24 Sep 2018 20:12:26 +0000 (20:12 +0000)]
ArgumentsEliminationPhase should snip basic blocks after proven OSR exits
https://bugs.webkit.org/show_bug.cgi?id=189682
<rdar://problem/43557315>

Reviewed by Mark Lam.

JSTests:

* stress/arguments-elimination-will-generate-edge-without-result.js: Added.
(foo):

Source/JavaScriptCore:

Otherwise, if we have code like this:
```
a: Arguments
b: GetButterfly(@a)
c: ForceExit
d: GetArrayLength(@a, @b)
```
it will get transformed into this invalid DFG IR:
```
a: PhantomArguments
b: Check(@a)
c: ForceExit
d: GetArrayLength(@a, @b)
```

And we will fail DFG validation since @b does not have a result.

The fix is to just remove all nodes after the ForceExit and plant an
Unreachable after it. So the above code program will now turn into this:
```
a: PhantomArguments
b: Check(@a)
c: ForceExit
e: Unreachable
```

* dfg/DFGArgumentsEliminationPhase.cpp:

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

12 months agoDo not do early processing of incoming sync IPC unless we're waiting for a sync IPC...
cdumez@apple.com [Mon, 24 Sep 2018 19:44:08 +0000 (19:44 +0000)]
Do not do early processing of incoming sync IPC unless we're waiting for a sync IPC reply
https://bugs.webkit.org/show_bug.cgi?id=186941

Reviewed by Alex Christensen.

Source/WebKit:

The comment was claiming we were processing incoming sync messages while waiting for a
sync IPC reply to prevent deadlocks. However, the code was failing to check if we were
waiting for a sync IPC reply. As a result, incoming sync IPC messages would get processed
early no matter what, jumping the line. This was the source of the flakiness in the blob
tests since the IPC to register the blob in the network process was async and the follow-up
IPC to ask the network process for the blob size was sync. The sync message to get the blob
size would jump the line and get processed before the async message to register the blob.
As a result, the network process would not know about the blob yet and return size 0. Of
course, this could happen if the network process was sending sync IPC at the time. However,
the network process never sends any sync IPC and therefore, should never process incoming
IPC messages out of order.

* Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):

LayoutTests:

Add layout test coverage.

* http/tests/misc/blob-size-expected.txt: Added.
* http/tests/misc/blob-size.html: Added.

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

12 months agoUnreviewed, skip imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-inser...
cdumez@apple.com [Mon, 24 Sep 2018 19:42:31 +0000 (19:42 +0000)]
Unreviewed, skip imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.html

This newly imported test flakily times out.

* TestExpectations:

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

12 months agoUnreviewed WPE gardening. Managing failing WebGL tests in the 2.0.0
zandobersek@gmail.com [Mon, 24 Sep 2018 19:20:20 +0000 (19:20 +0000)]
Unreviewed WPE gardening. Managing failing WebGL tests in the 2.0.0
version of the Khronos conformance suite.

* platform/wpe/TestExpectations: Skip the GLSL test cases of which one
is DoS-ing AMD GPUs on Linux. This needs more research to isolate the
culprit and properly fix the underlying problem.
* platform/wpe/webgl/2.0.0/: 44 test baselines added.

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

12 months ago[iOS] Key code is 0 for many hardware keyboard keys
dbates@webkit.org [Mon, 24 Sep 2018 19:13:14 +0000 (19:13 +0000)]
[iOS] Key code is 0 for many hardware keyboard keys
https://bugs.webkit.org/show_bug.cgi?id=189604

Reviewed by Wenson Hsieh.

Source/WebCore:

Based off a patch by Jeremy Jones.

Add iOS-specific implementation of windowsKeyCodeForKeyCode() to map an iOS virtual key code to
the corresponding Windows virtual key code. Only hardware keyboard-generated events have a
virtual key code. For software-generated keyboard events we do what we do now and compute the
Windows virtual key code from the character string associated with the event.

When a WebEvent is instantiated with a non-zero iOS virtual key code (keyCode) we now always
convert it to its corresponding Windows virtual key code without considering the specified
charactersIgnoringModifiers character string. Currently we prefer computing the key code from
charactersIgnoringModifiers regardless of whether a non-zero iOS virtual key code was given.
However this causes special keys, including function keys (e.g. F10) to be misidentified because
keyboard layouts in iOS (at least iOS 12) map such special keys to ASCII control characters (e.g.
F10 maps to ASCII control character "data link escape" = 0x10) as opposed to special 16-bit
integral constants as we do on Mac (e.g. F10 maps to NSF10FunctionKey = 0xF70D on Mac). I will
look to fix up the computation of a Windows virtual key code from a char code on iOS in a
subsequent commit(s). For now, computing the Windows virtual key code directly from the iOS
virtual key code specified to the WebEvent constructor avoids the misidentification using
an ANSI US keyboard layout.

* platform/cocoa/KeyEventCocoa.mm:
(WebCore::windowsKeyCodeForKeyCode): Deleted; moved to KeyEventMac.mm as this mapping is specific to Mac.
* platform/ios/KeyEventIOS.mm:
(WebCore::windowsKeyCodeForKeyCode): Added.
* platform/ios/WebEvent.mm:
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): Address the NOTE comment and compute the Windows virtual key code from
the iOS virtual key code when we have one. Also inline the value of an unncessary local variable.
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): Ditto.
* platform/mac/KeyEventMac.mm:
(WebCore::windowsKeyCodeForKeyCode): Moved from KeyEventCocoa.mm. Updated code to make use of WTF_ARRAY_LENGTH() instead
of hardcoding the upper bound of the lookup table.

Source/WebKit:

For a hardware keyboard-generated event (an event with a non-nill event._hidEvent) pass
the key code for the event. Otherwise, do what we do now and pass 0 as the event is likely
a software keyboard-generated event.

* Platform/spi/ios/UIKitSPI.h: Add some more SPI.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView handleKeyEvent:]):

LayoutTests:

Update existing test and test result and add a new test to ensure we dispatch DOM keydown
and DOM keyup events dispatched for special keys.

* fast/events/ios/keydown-keyup-in-non-editable-content-expected.txt: Update expected result.
* fast/events/ios/keydown-keyup-in-non-editable-content.html: Remove logic to test arrow keys
as these are tested in test keydown-keyup-special-keys-in-non-editable-element.html. Also
update manual instructions to use <kbd> to format keyboard keys.
* fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:

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

12 months agofeMorphology filter in CSS doesn't update when element moves
simon.fraser@apple.com [Mon, 24 Sep 2018 18:20:46 +0000 (18:20 +0000)]
feMorphology filter in CSS doesn't update when element moves
https://bugs.webkit.org/show_bug.cgi?id=189895

Reviewed by Dean Jackson.

Source/WebCore:

SourceAlpha needs to be invalidated from clearIntermediateResults(),
so get it from the SVGFilterBuilder (which always creates one) and store in
a member variable.

Test: css3/filters/invalidate-sourceAlpha.html

* rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::clearIntermediateResults):
* rendering/CSSFilter.h:
* svg/graphics/filters/SVGFilterBuilder.h:

LayoutTests:

Test that moves a box inside a filtered div. Masking is necessary to work
around bugs in feMorphology invalidation (webkit.org/b/189896).

* css3/filters/invalidate-sourceAlpha-expected.html: Added.
* css3/filters/invalidate-sourceAlpha.html: Added.

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

12 months agoCSS reference filter with feDisplacementMap shows buffer corruption on Retina displays
simon.fraser@apple.com [Mon, 24 Sep 2018 18:20:22 +0000 (18:20 +0000)]
CSS reference filter with feDisplacementMap shows buffer corruption on Retina displays
https://bugs.webkit.org/show_bug.cgi?id=188486
<rdar://problem/43189750>

Reviewed by Dean Jackson.
Source/WebCore:

The paintSize needs to be scaled by filterScale on Retina displays.

Test: css3/filters/hidpi-feDisplacementMap.html

* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::platformApplySoftware):
* platform/graphics/filters/FEDisplacementMap.h:

LayoutTests:

* css3/filters/hidpi-feDisplacementMap-expected.html: Added.
* css3/filters/hidpi-feDisplacementMap.html: Added.

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

12 months agoUnreviewed build fix for Jhbuild-using ports.
zandobersek@gmail.com [Mon, 24 Sep 2018 18:19:09 +0000 (18:19 +0000)]
Unreviewed build fix for Jhbuild-using ports.

* gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch:
Adjust the patch so it applies cleanly on the 1.14.3 version of the
gst-plugins-good package.

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

12 months agoReferenceFilterOperation doesn't need to store the FilterEffect
simon.fraser@apple.com [Mon, 24 Sep 2018 18:10:19 +0000 (18:10 +0000)]
ReferenceFilterOperation doesn't need to store the FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=189904

Reviewed by Dean Jackson.

ReferenceFilterOperation doesn't do anything with m_filterEffect so don't store it.

* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::setFilterEffect): Deleted.
* platform/graphics/filters/FilterOperation.h:
(WebCore::ReferenceFilterOperation::filterEffect const): Deleted.
* rendering/CSSFilter.cpp:
(WebCore::CSSFilter::build):

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

12 months agoGarbled rendering of image when applied feConvolveMatrix to it, on Retina display
simon.fraser@apple.com [Mon, 24 Sep 2018 18:00:31 +0000 (18:00 +0000)]
Garbled rendering of image when applied feConvolveMatrix to it, on Retina display
https://bugs.webkit.org/show_bug.cgi?id=189748
<rdar://problem/44621494>

Reviewed by Jon Lee.
Source/WebCore:

feConvolveMatrix needs to scale the paintSize by the filter scale (2x on Retina displays),
otherwise parts of the output buffer are uninitialized and the result is incorrect.

Test: css3/filters/hidpi-feConvolveMatrix.html

* platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::platformApplySoftware):

LayoutTests:

* css3/filters/hidpi-feConvolveMatrix-expected.html: Added.
* css3/filters/hidpi-feConvolveMatrix.html: Added.

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

12 months agoWeb Inspector: topContentInset is not accounted for when inspecting a WKWebView and...
bburg@apple.com [Mon, 24 Sep 2018 17:37:47 +0000 (17:37 +0000)]
Web Inspector: topContentInset is not accounted for when inspecting a WKWebView and docked to side
https://bugs.webkit.org/show_bug.cgi?id=189859

Reviewed by Joseph Pecoraro.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
Add special cases for inspecting a WKWebView. We already special-case for WKView.

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

12 months agoEnsure PointerEvent is not visible when disabled
dino@apple.com [Mon, 24 Sep 2018 17:35:39 +0000 (17:35 +0000)]
Ensure PointerEvent is not visible when disabled
https://bugs.webkit.org/show_bug.cgi?id=189889
<rdar://problem/44708253>

Reviewed by Eric Carlson.

Source/WebCore:

Test: pointerevents/disabled.html

* bindings/js/WebCoreBuiltinNames.h: Now that it is enabled at runtime, it needs
a built-in name.
* dom/PointerEvent.idl: Add EnabledAtRuntime.

LayoutTests:

A test that explicitly disables PointerEvents and checks
that the interface is not visible.

* pointerevents/disabled-expected.html: Added.
* pointerevents/disabled.html: Added.

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

12 months ago[MSE][GStreamer] Pull demuxed samples in batches
aboya@igalia.com [Mon, 24 Sep 2018 17:26:03 +0000 (17:26 +0000)]
[MSE][GStreamer] Pull demuxed samples in batches
https://bugs.webkit.org/show_bug.cgi?id=189871

Reviewed by Xabier Rodriguez-Calvar.

After this patch, only the notifications of "new samples available"
(appsink-new-sample bus messages) travel from the streaming thread to
the main thread through the bus and the main thread is the responsible
of pulling as many samples as it can from appsink. Before, the samples
were pulled from appsink in the non-main thread and traveled to the
main thread through the bus one by one.

This reduces drastically the amount of context switches and waiting
time in the streaming thread, resulting in a noticeable performance
improvement.

This fixes stutter while loading YouTube videos.

* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::clearPlayerPrivate):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::consumeAppSinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::handleNewAppsinkSample):
* platform/graphics/gstreamer/mse/AppendPipeline.h:

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

12 months ago[ iOS ] Layout Tests in media/media-fragments/ are flaky - Remved Debug only as tests...
tsavell@apple.com [Mon, 24 Sep 2018 17:19:52 +0000 (17:19 +0000)]
[ iOS ] Layout Tests in media/media-fragments/ are flaky - Remved Debug only as tests are flakey on Release.
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

* platform/ios/TestExpectations:

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

12 months ago[ iOS ] Layout Tests in media/media-fragments/ are flaky
tsavell@apple.com [Mon, 24 Sep 2018 17:16:58 +0000 (17:16 +0000)]
[ iOS ] Layout Tests in media/media-fragments/ are flaky
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

* platform/ios/TestExpectations:

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

12 months agoUpdate flakiness dashboard configuration for iOS 12 queues
ryanhaddad@apple.com [Mon, 24 Sep 2018 17:13:05 +0000 (17:13 +0000)]
Update flakiness dashboard configuration for iOS 12 queues
https://bugs.webkit.org/show_bug.cgi?id=189688

Reviewed by Alexey Proskuryakov.

* TestResultServer/static-dashboards/builders.jsonp:

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

12 months agoImport html/webappapis/dynamic-markup-insertion WPT tests
cdumez@apple.com [Mon, 24 Sep 2018 16:55:25 +0000 (16:55 +0000)]
Import html/webappapis/dynamic-markup-insertion WPT tests
https://bugs.webkit.org/show_bug.cgi?id=189863

Reviewed by Youenn Fablet.

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document.close-01-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document.close-01.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/001-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/001.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/002-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/002.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/003-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/003.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/004-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/004.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008-1.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/009-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/009.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010-1.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011-1.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012.js: Added.
(t.step):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/014-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/014.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/015-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/015.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/016-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/016.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/017-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/017.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/018-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/018.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/019-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/019.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/020-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/020.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/021-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/021.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/022-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/022.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/023-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/023.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/024-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/024.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/025-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/025.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/026-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/026.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/027-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/027.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/028-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/028.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/029-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/029.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/030-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/030.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/031-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/031.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/032-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/032.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/033-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/033.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/034-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/034.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/035-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/035.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/036-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/036.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/037-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/037.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/038-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/038.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/039-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/039.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/040-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/040.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/041-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/041.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/042-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/042.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/043-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/043.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/044-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/044.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/045-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/045.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/046-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/046.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/047-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/047.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/048-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/048.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/049-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/049.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/050-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/050.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/051-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/051.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.js: Added.
(string_appeared_here.forEach.val.async_test.t.frame.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-01-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-01.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-02-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-02.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/empty.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_001-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_001.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_002-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_002.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_003-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_003.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_004-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_004.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_006-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_006.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_007-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_007.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_008-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_008.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_009-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_009.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_010-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_010.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-2.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-external.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/original-id.json: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_001-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_001.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_002-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_002.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_003-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_003.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_004-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_004.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_005-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_005.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_006-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_006.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_007-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_007.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_008-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_008.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_009-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_009.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_010-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_010.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_011-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_011.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_012-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_012.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_013-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_013.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/w3c-import.log: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/write-active-document-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/write-active-document.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-01-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-01.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-02-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-02.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-03-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-03.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/original-id.json: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/w3c-import.log: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/002-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/002.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/004-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/004.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016-1.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window.js: Added.
(async_test.t.frame.onload.t.step_func):
(async_test.t.t.step_timeout):
(async_test.t.t.step_timeout.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js: Added.
(async_test.t.window.handlers.afterOpen.t.step_func_done):
(async_test.t.window.handlers.afterOpenAsync.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window.js: Added.
(assertOpenIsEffective):
(async_test.t.frame.onload.t.step_func):
(async_test.t.xhr.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js: Added.
(setEntryToTopLevel):
(async_test.t.t.add_cleanup):
(async_test.t.iframe.onload.t.step_func_done):
(async_test.t.window.onCustomElementReady.t.step_func):
(async_test.t.self.testSynchronousScript.t.step_func):
(string_appeared_here.async_test.t.t.add_cleanup):
(string_appeared_here.async_test.t.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js: Added.
(async_test.t.t.add_cleanup):
(async_test.t.self.testSynchronousScript.t.step_func_done):
(string_appeared_here.async_test.t.t.add_cleanup):
(string_appeared_here.async_test.t.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window.js: Added.
(string_appeared_here.async_test.t.iframe.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js: Added.
(async_test.t.self.testSynchronousScript.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window.js: Added.
(async_test.t.iframe.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window.js: Added.
(CustomElement):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-01-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-01.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-02-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js: Added.
(async_test.t.frame.onload.t.step_func):
(test.t.const.winListener.t.step_func):
(test.t.t.add_cleanup):
(test.t.const.bodyListener.t.step_func):
(async_test.t.xhr.onload.t.step_func_done):
(test.t.t.step_func):
(test.t.thrower.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window.js: Added.
(async_test.t.iframe.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window.js: Added.
(window.onFrameLoaded.t.step_func):
(window.onDocumentOpen.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js: Added.
(async_test.t.iframe.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js: Added.
(async_test.t.t.add_cleanup):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.js: Added.
(async_test.t.frame.onload.t.step_func_done):
(testIdentity):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-basic-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-basic.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window.js: Added.
(async_test.t.t.add_cleanup):
(async_test.t.frame.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js: Added.
(window.name.string_appeared_here.async_test.t.t.add_cleanup):
(window.name.string_appeared_here.async_test.t.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/aborted-parser-async-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/aborted-parser-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-custom-element-with-domain-frame.sub.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-synchronous-script-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-synchronous-script-with-domain-frame.sub.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-xml-with-domain-frame.sub.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-xml-with-synchronous-script-frame.xhtml: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/document-open-side-effects.js: Added.
(assertDocumentIsReadyForSideEffectsTest):
(assertOpenHasNoSideEffects):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/dummy.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/encoding-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/global-variables-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/history-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/http-refresh.py: Added.
(main):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/meta-refresh.py: Added.
(main):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/page-with-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/set-document-domain.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/slow-png.py: Added.
(main):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/url-frame.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/w3c-import.log: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js: Added.
(taskTest):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext-subframe.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.js: Added.
(string_appeared_here.forEach.type.async_test.t.frame.onload.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window.js: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window.js: Added.
(async_test.t.t.add_cleanup):
(async_test.t.self.onhashchange.t.step_func_done):
(async_test.t.const.frame.document.body.appendChild.document.createElement.string_appeared_here.t.add_cleanup):
(async_test.t.window.testDone.t.step_func_done):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window-expected.txt: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.html: Added.
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js: Added.
(async_test.t.frame.onload.t.step_func):
* web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log: Added.

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

12 months agoTry to make payment-response-reference-cycle-leak.https.html not be flaky.
aestes@apple.com [Mon, 24 Sep 2018 16:49:18 +0000 (16:49 +0000)]
Try to make payment-response-reference-cycle-leak.https.html not be flaky.

Unreviewed.

* http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html:
Doubled the number of repetitions (from 40 to 80).

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

12 months ago[WebVTT] Change name of WebVTT region attribute 'height' to 'lines'.
pvollan@apple.com [Mon, 24 Sep 2018 16:39:04 +0000 (16:39 +0000)]
[WebVTT] Change name of WebVTT region attribute 'height' to 'lines'.
https://bugs.webkit.org/show_bug.cgi?id=189862

Reviewed by Eric Carlson.

Source/WebCore:

The WebVTT region attribute 'height' has been renamed to 'lines', see https://w3c.github.io/webvtt/#region-settings.

No new tests, covered by existing tests.

* html/track/VTTRegion.cpp:
(WebCore::VTTRegion::setLines):
(WebCore::VTTRegion::updateParametersFromRegion):
(WebCore::VTTRegion::scanSettingName):
(WebCore::VTTRegion::parseSettingValue):
(WebCore::VTTRegion::prepareRegionDisplayTree):
(WebCore::VTTRegion::setHeight): Deleted.
* html/track/VTTRegion.h:
* html/track/VTTRegion.idl:

LayoutTests:

* media/track/captions-webvtt/captions-regions.vtt:
* media/track/captions-webvtt/header-regions.vtt:
* media/track/regions-webvtt/vtt-region-constructor-expected.txt:
* media/track/regions-webvtt/vtt-region-constructor.html:
* media/track/regions-webvtt/vtt-region-display-expected.txt:
* media/track/regions-webvtt/vtt-region-display.html:
* media/track/regions-webvtt/vtt-region-list-expected.txt:
* media/track/regions-webvtt/vtt-region-list.html:
* media/track/regions-webvtt/vtt-region-parser-expected.txt:
* media/track/regions-webvtt/vtt-region-parser.html:

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

12 months agoImport WPT resource-timing tests
yoav@yoav.ws [Mon, 24 Sep 2018 15:58:43 +0000 (15:58 +0000)]
Import WPT resource-timing tests
https://bugs.webkit.org/show_bug.cgi?id=189903

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/resource-timing/META.yml: Added.
* web-platform-tests/resource-timing/OWNERS: Removed.
* web-platform-tests/resource-timing/clear_resource_timing_functionality.html: Added.
* web-platform-tests/resource-timing/clear_resource_timing_functionality-expected.txt: Added.
* web-platform-tests/resource-timing/idlharness.any.html: Added.
* web-platform-tests/resource-timing/idlharness.any-expected.txt: Added.
* web-platform-tests/resource-timing/idlharness.any.js: Added.
(idl_array.catch):
* web-platform-tests/resource-timing/idlharness.any.worker.html: Added.
* web-platform-tests/resource-timing/idlharness.any.worker-expected.txt: Added.
* web-platform-tests/resource-timing/idlharness.html: Removed.
* web-platform-tests/resource-timing/resource-timing-tojson.html: Added.
* web-platform-tests/resource-timing/resource-timing-tojson-expected.txt: Added.
* web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain.html: Added.
* web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain-expected.txt: Added.
* web-platform-tests/resource-timing/resource_TAO_match_origin.htm:
* web-platform-tests/resource-timing/resource_TAO_match_origin-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_match_wildcard.htm:
* web-platform-tests/resource-timing/resource_TAO_match_wildcard-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_multi.htm:
* web-platform-tests/resource-timing/resource_TAO_multi-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_multi_wildcard.html: Copied from LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi.htm.
* web-platform-tests/resource-timing/resource_TAO_multi_wildcard-expected.txt: Added.
* web-platform-tests/resource-timing/resource_TAO_null.htm:
* web-platform-tests/resource-timing/resource_TAO_null-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_origin_uppercase.htm:
* web-platform-tests/resource-timing/resource_TAO_origin_uppercase-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_space.htm:
* web-platform-tests/resource-timing/resource_TAO_space-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_TAO_wildcard.htm:
* web-platform-tests/resource-timing/resource_TAO_wildcard-expected.txt: Changed.
* web-platform-tests/resource-timing/resource_dedicated_worker.html: Added.
* web-platform-tests/resource-timing/resource_dedicated_worker-expected.txt: Added.
* web-platform-tests/resource-timing/resource_ignore_data_url.html: Added.
* web-platform-tests/resource-timing/resource_ignore_data_url-expected.txt: Added.
* web-platform-tests/resource-timing/resource_ignore_failures.html: Added.
* web-platform-tests/resource-timing/resource_ignore_failures-expected.txt: Added.
* web-platform-tests/resource-timing/resource_initiator_types.html: Added.
* web-platform-tests/resource-timing/resource_initiator_types-expected.txt: Added.
* web-platform-tests/resource-timing/resource_memory_cached.sub.html: Added.
* web-platform-tests/resource-timing/resource_memory_cached.sub-expected.txt: Added.
* web-platform-tests/resource-timing/resource_redirects.html: Added.
* web-platform-tests/resource-timing/resource_redirects-expected.txt: Added.
* web-platform-tests/resource-timing/resource_reparenting.html: Added.
* web-platform-tests/resource-timing/resource_reparenting-expected.txt: Added.
* web-platform-tests/resource-timing/resource_script_types.html: Added.
* web-platform-tests/resource-timing/resource_script_types-expected.txt: Added.
* web-platform-tests/resource-timing/resource_subframe_self_navigation.html: Added.
* web-platform-tests/resource-timing/resource_subframe_self_navigation-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing.worker.html: Added.
* web-platform-tests/resource-timing/resource_timing.worker-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing.worker.js: Added.
(check):
(async_test.t.then):
* web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect.html: Added.
* web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_eventually-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html: Added.
* web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect.html: Added.
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain.html: Added.
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_same_origin_redirect.html: Added.
* web-platform-tests/resource-timing/resource_timing_same_origin_redirect-expected.txt: Added.
* web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html: Added.
* web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback-expected.txt: Added.
* web-platform-tests/resource-timing/resources/TAOResponse.py:
(main):
* web-platform-tests/resource-timing/resources/all_resource_types.htm: Added.
* web-platform-tests/resource-timing/resources/blank_page_green.htm: Added.
* web-platform-tests/resource-timing/resources/empty.js: Added.
* web-platform-tests/resource-timing/resources/empty.py: Added.
(main):
* web-platform-tests/resource-timing/resources/empty_script.js: Added.
* web-platform-tests/resource-timing/resources/eventsource.py: Added.
(main):
* web-platform-tests/resource-timing/resources/green_frame.htm: Added.
* web-platform-tests/resource-timing/resources/iframe_TAO_multi_wildcard.html: Added.
* web-platform-tests/resource-timing/resources/multi_redirect.py: Added.
(main):
* web-platform-tests/resource-timing/resources/nested.css: Added.
(@import "resource_timing_test0.css?id=n1";):
(ol):
* web-platform-tests/resource-timing/resources/notify_parent.html: Added.
* web-platform-tests/resource-timing/resources/self_navigation.html: Added.
* web-platform-tests/resource-timing/resources/w3c-import.log:
* web-platform-tests/resource-timing/resources/worker_with_images.js: Added.
(checkDone):
(makeRequest.xhr.onreadystatechange):
(makeRequest):
* web-platform-tests/resource-timing/w3c-import.log:

LayoutTests:

* TestExpectations:: Added a few failing tests.
* platform/mac/TestExpectations:: Added a timeout test.

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

12 months ago[GTK][WPE] Compositing indicators are not working
magomez@igalia.com [Mon, 24 Sep 2018 15:47:19 +0000 (15:47 +0000)]
[GTK][WPE] Compositing indicators are not working
https://bugs.webkit.org/show_bug.cgi?id=189915

Reviewed by Žan Doberšek.

Pass the debugBorder and repaintCount parameters to the TextureMapperLayer when required.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState):

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

12 months ago[GStreamer] Unreviewed build fix.
aboya@igalia.com [Mon, 24 Sep 2018 15:28:25 +0000 (15:28 +0000)]
[GStreamer] Unreviewed build fix.

A GStreamer patch was not applying cleanly on 1.14.3.

* gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch:

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

12 months ago[MSE][GStreamer] Use no-more-pads event for noticing initialization segments
aboya@igalia.com [Mon, 24 Sep 2018 13:31:19 +0000 (13:31 +0000)]
[MSE][GStreamer] Use no-more-pads event for noticing initialization segments
https://bugs.webkit.org/show_bug.cgi?id=189868

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Fixes the following YTTV 2018 tests:
62.VideoDimensionVP9
63.PlaybackStateVP9

This removes the hack that was making supporting multiple tracks in
the same file in MSE impossible.

For WebM, this GStreamer patch is required:
https://bugzilla.gnome.org/show_bug.cgi?id=797187
"matroskademux: Emit no-more-pads after parsing Tracks"

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::demuxerNoMorePads):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::appendPipelineDemuxerNoMorePadsFromAnyThread):
(WebCore::appendPipelineDemuxerNoMorePads):
* platform/graphics/gstreamer/mse/AppendPipeline.h:

Tools:

Added patch from https://bugzilla.gnome.org/show_bug.cgi?id=797187

* gstreamer/jhbuild.modules:
* gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Added.

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

12 months ago[MSE][GStreamer] Add patch to jhbuild: matroskademux: Allow Matroska headers to be...
aboya@igalia.com [Mon, 24 Sep 2018 12:34:19 +0000 (12:34 +0000)]
[MSE][GStreamer] Add patch to jhbuild: matroskademux: Allow Matroska headers to be read more than once
https://bugs.webkit.org/show_bug.cgi?id=185731

Reviewed by Xabier Rodriguez-Calvar.

Upstream bug in GStreamer: https://bugzilla.gnome.org/show_bug.cgi?id=793333

This fixes YTTV 35. AppendMultipleInitOpusAudio (and any other use
case where two WebM initialization segments are appended on a row).

* gstreamer/jhbuild.modules:
* gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Added.
* gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Added.
* gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Added.

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

12 months ago[WPE][GTK][WebRTC] Fix leaks in the libwebrtc Decoder and Encoder
commit-queue@webkit.org [Mon, 24 Sep 2018 11:16:58 +0000 (11:16 +0000)]
[WPE][GTK][WebRTC] Fix leaks in the libwebrtc Decoder and Encoder
https://bugs.webkit.org/show_bug.cgi?id=189835

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

- Rework memory management to avoid leaking encoded frames (basically use the same
  strategy as other libwebrtc encoder implementation).
- Plug a GstCaps leak.

* platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
* platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoder::InitEncode):
(WebCore::GStreamerVideoEncoder::newSampleCallback):
(WebCore::GStreamerVideoEncoder::Fragmentize):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):

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

12 months ago[GStreamer] Utilities cleanups
philn@webkit.org [Mon, 24 Sep 2018 10:20:38 +0000 (10:20 +0000)]
[GStreamer] Utilities cleanups
https://bugs.webkit.org/show_bug.cgi?id=189699
<rdar://problem/44634143>

Reviewed by Xabier Rodriguez-Calvar.

The GstMappedBuffer now has a move constructor so that it can be easily
reused in the webaudiosrc element. The now-unused corresponding
buffer-mapping utilities are removed from the code-base.

The HTTP source element used to handle a GstBuffer in its private
structure but this is no longer required since data is now pushed
in chunks, see bug #182829.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop):
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::createGstBuffer): Deleted.
(WebCore::createGstBufferForData): Deleted.
(WebCore::getGstBufferDataPointer): Deleted.
(WebCore::mapGstBuffer): Deleted.
(WebCore::unmapGstBuffer): Deleted.
* platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::GstMappedBuffer::create): New method returning a
reference to a newly created GstMappedBuffer instance.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStop): Remove reference to unused GstBuffer.
(CachedResourceStreamingClient::dataReceived): Ditto.

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

12 months ago[MSE][GStreamer] Don't update duration when it was not previously NaN
eocanha@igalia.com [Mon, 24 Sep 2018 10:16:10 +0000 (10:16 +0000)]
[MSE][GStreamer] Don't update duration when it was not previously NaN
https://bugs.webkit.org/show_bug.cgi?id=189869

Reviewed by Xabier Rodriguez-Calvar.

This is what the spec mandates. The spec doesn't say anything about
updating duration when it had been previously set, even if the new
init segment says that the duration is growing.

This fixes MSE YTTV 2018 69.MediaSourceDurationVP9.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

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

12 months agoAdd missing includes in TextCodecReplacement.cpp
commit-queue@webkit.org [Sun, 23 Sep 2018 20:52:26 +0000 (20:52 +0000)]
Add missing includes in TextCodecReplacement.cpp
https://bugs.webkit.org/show_bug.cgi?id=189894

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-23
Reviewed by Darin Adler.

No new tests, behavior unchanged.

* platform/text/TextCodecReplacement.cpp: Add missing headers.

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

12 months agoUnreviewed - Skip pointer events tests on legacy WebKit.
dino@apple.com [Sun, 23 Sep 2018 04:49:50 +0000 (04:49 +0000)]
Unreviewed - Skip pointer events tests on legacy WebKit.

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

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

12 months ago[ARM] Building FELightingNEON.cpp fails due to missing lightVector member
aperez@igalia.com [Sun, 23 Sep 2018 04:22:50 +0000 (04:22 +0000)]
[ARM] Building FELightingNEON.cpp fails due to missing lightVector member
https://bugs.webkit.org/show_bug.cgi?id=189890

Reviewed by Darin Adler.

No new tests needed.

* platform/graphics/cpu/arm/filters/FELightingNEON.h:
(WebCore::FELighting::platformApplyNeon): Adapt to new layout of "struct PaintingData" after r225122.

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

12 months ago[WHSL] Need grammar to specify kernel group size
mmaxfield@apple.com [Sat, 22 Sep 2018 23:49:28 +0000 (23:49 +0000)]
[WHSL] Need grammar to specify kernel group size
https://bugs.webkit.org/show_bug.cgi?id=189108

Reviewed by Dean Jackson.

In HLSL, compute functions are annotated with their workgroup size.
For example,

[numthreads(3, 4, 5)] compute void foo(...) { ... }

* WebGPUShadingLanguageRI/All.js:
* WebGPUShadingLanguageRI/Func.js:
(Func):
(Func.prototype.get attributeBlock):
* WebGPUShadingLanguageRI/FuncAttribute.js: Copied from Tools/WebGPUShadingLanguageRI/FuncDef.js.
(FuncAttribute):
* WebGPUShadingLanguageRI/FuncDef.js:
(FuncDef):
* WebGPUShadingLanguageRI/FuncNumThreadsAttribute.js: Copied from Tools/WebGPUShadingLanguageRI/FuncDef.js.
(FuncNumThreadsAttribute):
(FuncNumThreadsAttribute.prototype.get x):
(FuncNumThreadsAttribute.prototype.get y):
(FuncNumThreadsAttribute.prototype.get z):
* WebGPUShadingLanguageRI/LateChecker.js:
(LateChecker.prototype._checkShaderType):
* WebGPUShadingLanguageRI/Parse.js:
(parseAttributeBlock):
(parseFuncDecl):
(parseFuncDef):
(parseNativeFunc):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/StatementCloner.js:
(StatementCloner.prototype.visitFuncDef):
(StatementCloner.prototype.visitFuncNumThreadsAttribute):
(StatementCloner):
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js:
(tests.numThreads):
* WebGPUShadingLanguageRI/Visitor.js:
(Visitor.prototype.visitFunc):
(Visitor.prototype.visitFuncNumThreadsAttribute):
(Visitor):
* WebGPUShadingLanguageRI/index.html:

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

12 months agoTests checking document GC in case of ActiveDOMObjects are flaky
youenn@apple.com [Sat, 22 Sep 2018 23:42:53 +0000 (23:42 +0000)]
Tests checking document GC in case of ActiveDOMObjects are flaky
https://bugs.webkit.org/show_bug.cgi?id=189413
<rdar://problem/44243231>

Reviewed by Eric Carlson.

Media controls prevent in some cases to collect the document.
Remove the controls to remove a source of flakiness for this test.

* http/tests/media/clearkey/resources/mywebkitmediasessionframe.htm:
* platform/mac/TestExpectations:

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

12 months agoNative functions which accept pointers need to do null checks
mmaxfield@apple.com [Sat, 22 Sep 2018 23:34:50 +0000 (23:34 +0000)]
Native functions which accept pointers need to do null checks
https://bugs.webkit.org/show_bug.cgi?id=189883

Reviewed by Dean Jackson.

Simply guard all the places where we write through an author-provided pointer.

* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
* WebGPUShadingLanguageRI/Test.js:
(tests.textureDimensionsNull):

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

12 months ago[WHLSL] Implement atomic operations and barriers
mmaxfield@apple.com [Sat, 22 Sep 2018 23:22:55 +0000 (23:22 +0000)]
[WHLSL] Implement atomic operations and barriers
https://bugs.webkit.org/show_bug.cgi?id=189025

Reviewed by Dean Jackson.

In the interpreter, atomic operations don't need to be atomic.

* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.js:
(tests.atomics):

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

13 months ago[Cairo] Null-check cairo_pattern_t gradient objects
zandobersek@gmail.com [Sat, 22 Sep 2018 12:54:45 +0000 (12:54 +0000)]
[Cairo] Null-check cairo_pattern_t gradient objects
https://bugs.webkit.org/show_bug.cgi?id=189820

Reviewed by Alex Christensen.

Cairo-specific implementation of Gradient::createPlatformGradient() can
now return a nullptr value when a conic gradient is described by the
Gradient object. Cairo doesn't have a way to create cairo_pattern_t
objects for such gradients.

Null-checks are now done on return values of createPlatformGradient(),
in order to avoid proceeding to paint a null cairo_pattern_t object.

* platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::fill):
* platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::fillRect):

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

13 months ago[WPE] Be very permissive in the MiniBrowser.
commit-queue@webkit.org [Sat, 22 Sep 2018 12:43:35 +0000 (12:43 +0000)]
[WPE] Be very permissive in the MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=189800

This is just a test tool and we should make
it just work, security and privacy is not really
a primary focus here.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-22
Reviewed by Žan Doberšek.

* MiniBrowser/wpe/main.cpp:
(decidePermissionRequest):
(main):

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

13 months agoCannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow...
rniwa@webkit.org [Sat, 22 Sep 2018 08:13:52 +0000 (08:13 +0000)]
Cannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow host is a draggable element
https://bugs.webkit.org/show_bug.cgi?id=136836

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug by simply generalizing the existing code path existed for video / input type=color.

Tests: fast/shadow-dom/dragging-element-inside-shadow-tree.html
       fast/shadow-dom/dragging-element-with-shadow-tree.html

* page/DragController.cpp:
(WebCore::DragController::startDrag):

LayoutTests:

Added regression tests for dragging a element with a shadow tree, which is fixed in this bug
as well as dragging an element inside a shadow tree, which was already functional but had no tests.

* TestExpectations:
* fast/shadow-dom/dragging-element-inside-shadow-tree-expected.txt: Added.
* fast/shadow-dom/dragging-element-inside-shadow-tree.html: Added.
* fast/shadow-dom/dragging-element-with-shadow-tree-expected.txt: Added.
* fast/shadow-dom/dragging-element-with-shadow-tree.html: Added.
* platform/ios/TestExpectations: Don't mark the entirety of fast/shadow-dom as PASS.
* platform/mac-wk1/TestExpectations:

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

13 months agoFontDataCache should use Ref<Font> instead of a RefPtr<Font>
cdumez@apple.com [Sat, 22 Sep 2018 07:56:20 +0000 (07:56 +0000)]
FontDataCache should use Ref<Font> instead of a RefPtr<Font>
https://bugs.webkit.org/show_bug.cgi?id=189861

Reviewed by Antti Koivisto.

* platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):

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

13 months agoThe sampling should not use Strong<CodeBlock> in its machineLocation field
sbarati@apple.com [Sat, 22 Sep 2018 07:28:39 +0000 (07:28 +0000)]
The sampling should not use Strong<CodeBlock> in its machineLocation field
https://bugs.webkit.org/show_bug.cgi?id=189319

Reviewed by Filip Pizlo.

JSTests:

* stress/sampling-profiler-richards.js: Added.

Source/JavaScriptCore:

The sampling profiler has a CLI mode where we gather information about inline
call frames. That data structure was using a Strong<CodeBlock>. We were
constructing this Strong<CodeBlock> during GC concurrently to processing all
the Strong handles. This is a bug since we end up corrupting that data
structure. This patch fixes this by just making this data structure use the
sampling profiler's mechanism for holding onto and properly visiting heap pointers.

* inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::trackingComplete):
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):

(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
These CLI helpers needed a DeferGC otherwise we may end up deadlocking when we
cause a GC to happen while already holding the sampling profiler's
lock.

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

13 months ago[JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
yusukesuzuki@slowstart.org [Sat, 22 Sep 2018 05:26:44 +0000 (05:26 +0000)]
[JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
https://bugs.webkit.org/show_bug.cgi?id=189778

Reviewed by Keith Miller.

.:

ENABLE_SAMPLING_PROFILER does not depend on ENABLE_JIT now since it can be
used with LLInt ASM interpreter.

* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

LLInt ASM interpreter is 2x and 15% faster than CLoop interpreter on
Linux and macOS respectively. We would like to enable it for non JIT
configurations in X86_64 and ARM64.

This patch enables LLInt for non JIT builds in X86_64 and ARM64 architectures.
Previously, we switch LLInt ASM interpreter and CLoop by using ENABLE(JIT)
configuration. But it is wrong in the new scenario since we have a build
configuration that uses LLInt ASM interpreter and JIT is disabled. We introduce
ENABLE(C_LOOP) option, which represents that we use CLoop. And we replace
ENABLE(JIT) with ENABLE(C_LOOP) if the previous ENABLE(JIT) is essentially just
related to LLInt ASM interpreter and not related to JIT.

We also replace some ENABLE(JIT) configurations with ENABLE(ASSEMBLER).
ENABLE(ASSEMBLER) is now enabled even if we disable JIT since MacroAssembler
has machine register information that is used in LLInt ASM interpreter.

* API/tests/PingPongStackOverflowTest.cpp:
(testPingPongStackOverflow):
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/MaxFrameExtentForSlowPathCall.h:
* bytecode/CallReturnOffsetToBytecodeOffset.h: Removed. It is no longer used.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::calleeSaveRegisters const):
(JSC::CodeBlock::numberOfLLIntBaselineCalleeSaveRegisters):
(JSC::CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* heap/Heap.cpp:
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::stopThePeriphery):
* interpreter/CLoopStack.cpp:
* interpreter/CLoopStack.h:
* interpreter/CLoopStackInlines.h:
* interpreter/EntryFrame.h:
* interpreter/Interpreter.cpp:
(JSC::Interpreter::Interpreter):
(JSC::UnwindFunctor::copyCalleeSavesToEntryFrameCalleeSavesBuffer const):
* interpreter/Interpreter.h:
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::calleeSaveRegisters):
* interpreter/VMEntryRecord.h:
* jit/ExecutableAllocator.h:
* jit/FPRInfo.h:
(WTF::printInternal):
* jit/GPRInfo.cpp:
* jit/GPRInfo.h:
(WTF::printInternal):
* jit/HostCallReturnValue.cpp:
(JSC::getHostCallReturnValueWithExecState): Moved. They are used in LLInt ASM interpreter too.
* jit/HostCallReturnValue.h:
* jit/JITOperations.cpp:
(JSC::getHostCallReturnValueWithExecState): Deleted.
* jit/JITOperationsMSVC64.cpp:
* jit/Reg.cpp:
* jit/Reg.h:
* jit/RegisterAtOffset.cpp:
* jit/RegisterAtOffset.h:
* jit/RegisterAtOffsetList.cpp:
* jit/RegisterAtOffsetList.h:
* jit/RegisterMap.h:
* jit/RegisterSet.cpp:
* jit/RegisterSet.h:
* jit/TempRegisterSet.cpp:
* jit/TempRegisterSet.h:
* llint/LLIntCLoop.cpp:
* llint/LLIntCLoop.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
(JSC::LLInt::Data::performAssertions):
* llint/LLIntData.h:
* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntOpcode.h:
* llint/LLIntPCRanges.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LLIntThunks.cpp:
* llint/LowLevelInterpreter.cpp:
* llint/LowLevelInterpreter.h:
* runtime/JSCJSValue.h:
* runtime/MachineContext.h:
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces): Enable SamplingProfiler
for LLInt ASM interpreter with non JIT configuration.
* runtime/TestRunnerUtils.cpp:
(JSC::optimizeNextInvocation):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::getHostFunction):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::sanitizeStackForVM):
(JSC::VM::committedStackByteCount):
* runtime/VM.h:
* runtime/VMInlines.h:
(JSC::VM::ensureStackCapacityFor):
(JSC::VM::isSafeToRecurseSoft const):

Source/WTF:

This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
Previously, we used !ENABLE(JIT) for this configuration. But now, we have
a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).

We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
information which is used for LLInt and SamplingProfiler.

* wtf/Platform.h:

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