WebKit-https.git
2 months ago\b escapes inside character classes should be valid in Unicode patterns
shvaikalesh@gmail.com [Wed, 25 Mar 2020 11:11:47 +0000 (11:11 +0000)]
\b escapes inside character classes should be valid in Unicode patterns
https://bugs.webkit.org/show_bug.cgi?id=209528

Reviewed by Darin Adler.

JSTests:

* test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change removes isIdentityEscapeAnError('b') check, allowing \b escapes
inside character classes in Unicode patterns match U+0008 (BACKSPACE) characters,
aligning JSC with V8 and SpiderMonkey.

Grammar: https://tc39.es/ecma262/#prod-ClassEscape
('b' comes before CharacterEscape :: IdentityEscape)

* yarr/YarrParser.h:
(JSC::Yarr::Parser::parseEscape):

LayoutTests:

* js/regexp-unicode-expected.txt:
* js/script-tests/regexp-unicode.js:

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

2 months ago[GStreamer] Remove noisy warning about broken LC support
cturner@igalia.com [Wed, 25 Mar 2020 10:19:09 +0000 (10:19 +0000)]
[GStreamer] Remove noisy warning about broken LC support
https://bugs.webkit.org/show_bug.cgi?id=209472

Reviewed by Philippe Normand.

* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::initializeGStreamer): There's no seemingly nice way of
ensuring this message is issued once in WebKit the
lifetime. Issuing multiple times is upsetting users. We can't rely
on Gst logging at this point, and there's no established story of
using the LOG_CHANNEL stuff on WPE/GTK ports for suppressible
WebKit message AFAICT.

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

2 months agoUnreviewed, reverting r258945.
dbates@webkit.org [Wed, 25 Mar 2020 06:00:23 +0000 (06:00 +0000)]
Unreviewed, reverting r258945.

Revert change that broke API tests while I investigate
offline.

Reverted changeset:

"Element context character rects may be in wrong coordinate
system"
https://bugs.webkit.org/show_bug.cgi?id=209493
https://trac.webkit.org/changeset/258945

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

2 months agoUnreviewed, skips a test for iOS
jiewen_tan@apple.com [Wed, 25 Mar 2020 05:55:45 +0000 (05:55 +0000)]
Unreviewed, skips a test for iOS

* TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

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

2 months agoAvoid multiple unnecessary updates of the IsolatedTree.
andresg_22@apple.com [Wed, 25 Mar 2020 03:48:33 +0000 (03:48 +0000)]
Avoid multiple unnecessary updates of the IsolatedTree.
https://bugs.webkit.org/show_bug.cgi?id=209409

Reviewed by Chris Fleizach.

AXObjectCache::notificationPostTimerFired was updating the isolated tree
in every single notification, causing a big performance hit.
This change filters out repeated notifications for the same node, thus
reducing significantly the number of times the isolated tree is updated.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::appendIfNotContainsMatching): Helper function that might be
added to WTF::Vector.
(WebCore::createIsolatedTreeHierarchy): Became AXIsolatedTree::createSubtree
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::childrenIDs):
* accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode): Updates only the given node.
(WebCore::AXIsolatedTree::updateSubtree): Recreates the entire subtree.
(WebCore::AXIsolatedTree::updateChildren): Updates the associated object,
recreating only the children that are added and removing the ones that
are no longer present in the AX tree.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):
* accessibility/isolatedtree/AXIsolatedTree.h:

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

2 months agoBuild fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
wilander@apple.com [Wed, 25 Mar 2020 03:31:27 +0000 (03:31 +0000)]
Build fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
https://bugs.webkit.org/show_bug.cgi?id=209530
<rdar://problem/60855794>

Unreviewed build fix. Solution suggested by Darin Adler.

* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
    Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
    ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.
(WebCore::ServicesOverlayController::buildSelectionHighlight):
    Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
    ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

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

2 months agoRefactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteData...
wilander@apple.com [Wed, 25 Mar 2020 03:21:25 +0000 (03:21 +0000)]
Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called
RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
- domainsToDeleteAllCookiesFor
- domainsToDeleteAllButHttpOnlyCookiesFor
- domainsToDeleteAllNonCookieWebsiteDataFor

3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkSession.h:

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

2 months agoIntroduce @tryGetByIdWithWellKnownSymbol instead of repurposing @tryGetById itself
ross.kirsling@sony.com [Wed, 25 Mar 2020 02:07:38 +0000 (02:07 +0000)]
Introduce @tryGetByIdWithWellKnownSymbol instead of repurposing @tryGetById itself
https://bugs.webkit.org/show_bug.cgi?id=209524

Reviewed by Saam Barati and Yusuke Suzuki.

r258865 allowed @tryGetById to take any ResolveNode, such that a built-in could pass a well-known symbol.
This is much more permissive than necessary, since we shouldn't really need a ResolveNode in the first place;
instead, let's make a new bytecode intrinsic function @tryGetByIdWithWellKnownSymbol for this purpose.

* builtins/RegExpPrototype.js:
(globalPrivate.hasObservableSideEffectsForRegExpSplit):
* bytecode/BytecodeIntrinsicRegistry.h:
* bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById): Revert change from r258865.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetByIdWithWellKnownSymbol): Added.

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

2 months ago[MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
zalan@apple.com [Wed, 25 Mar 2020 01:46:09 +0000 (01:46 +0000)]
[MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
https://bugs.webkit.org/show_bug.cgi?id=209527
<rdar://problem/56993589>

Reviewed by Simon Fraser.

Source/WebCore:

This patch expands on r204980. This is yet another case when we can't possibly accommodate widows in the current column.

Test: fast/multicol/page-cant-accommodate-widow-crash.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

LayoutTests:

* fast/multicol/page-cant-accommodate-widow-crash-expected.txt: Added.
* fast/multicol/page-cant-accommodate-widow-crash.html: Added.

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

2 months agoRename DragDataMac and DragImageMac to DragDataCocoa and DragImageCocoa
wenson_hsieh@apple.com [Wed, 25 Mar 2020 01:22:03 +0000 (01:22 +0000)]
Rename DragDataMac and DragImageMac to DragDataCocoa and DragImageCocoa
https://bugs.webkit.org/show_bug.cgi?id=209523

Reviewed by Megan Gardner.

Rename DragDataMac to DragDataCocoa, and DragImageMac to DragImageCocoa. These files contain logic relevant to
both macOS and iOS, and as such, belong in platform/cocoa rather than platform/mac.

No change in behavior.

* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/cocoa/DragDataCocoa.mm: Renamed from Source/WebCore/platform/mac/DragDataMac.mm.
(WebCore::rtfPasteboardType):
(WebCore::rtfdPasteboardType):
(WebCore::stringPasteboardType):
(WebCore::urlPasteboardType):
(WebCore::htmlPasteboardType):
(WebCore::colorPasteboardType):
(WebCore::pdfPasteboardType):
(WebCore::tiffPasteboardType):
(WebCore::DragData::DragData):
(WebCore::DragData::containsURLTypeIdentifier const):
(WebCore::DragData::canSmartReplace const):
(WebCore::DragData::containsColor const):
(WebCore::DragData::containsFiles const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::asPlainText const):
(WebCore::DragData::asColor const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::containsURL const):
(WebCore::DragData::asURL const):
* platform/cocoa/DragImageCocoa.mm: Renamed from Source/WebCore/platform/mac/DragImageMac.mm.
(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragOffsetForLinkDragImage):
(WebCore::anchorPointForLinkDragImage):
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::createDragImageForLink):
(WebCore::createDragImageForColor):
* platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

Unrelated build fix due to changing unified sources.

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

2 months agoLLIntGenerator must link switch jumps to otherwise redundant labels
tzagallo@apple.com [Wed, 25 Mar 2020 00:51:44 +0000 (00:51 +0000)]
LLIntGenerator must link switch jumps to otherwise redundant labels
https://bugs.webkit.org/show_bug.cgi?id=209333
<rdar://problem/60827987>

Reviewed by Saam Barati.

JSTests:

* wasm/stress/terminal-jump-switch-target.js: Added.

Source/JavaScriptCore:

The LLIntGenerator optimizes jumps at the end of blocks. It does so when a block ends, by checking if
the last instruction emitted was a jump, if it pointed to the end of the current block and if it was
the only jump that pointed there. If all those conditions are satisfied, the jump is removed and it's
not necessary to emit the label at the end of block, since the only jump that pointed to it was removed.
However, switches (br_table) are handled specially by the LLIntGenerator and therefore are not counted
in Label::unresolvedJumps, which was used to check whether we could skip emitting the label.
The end result is that we might skip linking a switch jump if it points to a block that ends with a jump.

* wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::linkSwitchTargets):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):

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

2 months agoMemory::fastMappedBytes() is wrong
sbarati@apple.com [Wed, 25 Mar 2020 00:27:56 +0000 (00:27 +0000)]
Memory::fastMappedBytes() is wrong
https://bugs.webkit.org/show_bug.cgi?id=209488

Reviewed by Mark Lam.

* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::fastMappedBytes):

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

2 months agoUpdate test262 to commit dfc7ecc6785e
shvaikalesh@gmail.com [Wed, 25 Mar 2020 00:20:06 +0000 (00:20 +0000)]
Update test262 to commit dfc7ecc6785e
https://bugs.webkit.org/show_bug.cgi?id=209449

Unreviewed test gardening.

* test262/expectations.yaml:
* test262/harness/propertyHelper.js:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:

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

2 months agoREGRESSION(r258314): Leak in MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuf...
jer.noble@apple.com [Wed, 25 Mar 2020 00:18:10 +0000 (00:18 +0000)]
REGRESSION(r258314): Leak in MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=209519

Reviewed by Eric Carlson.

Obey the "copy" rule and adopt the results of -copyPixelBufferForSourceTime:sourceTimeForDisplay:.

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

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

2 months ago[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt
jiewen_tan@apple.com [Wed, 25 Mar 2020 00:03:19 +0000 (00:03 +0000)]
[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt
https://bugs.webkit.org/show_bug.cgi?id=208703
<rdar://problem/60136974>

Reviewed by Brent Fulgham.

Part 2.

This patch adds a different LocalAuthentication prompt title for getAssertion.
It also polishes the text used for makeCredential.

Besides that, it also enhances the iOS title strings.

Source/WebCore:

* en.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::getAssertionTouchIDPromptTitle):
* platform/LocalizedStrings.h:

Source/WebKit:

* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):
* UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
* UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::verifyUser const):
* UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
* UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::verifyUser const):

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

2 months ago[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
said@apple.com [Wed, 25 Mar 2020 00:02:05 +0000 (00:02 +0000)]
[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Unreviewed tiny follow-up to make the test more reliable on slow bots.

* fast/images/slower-decoding-than-animation-image-expected.txt:
* fast/images/slower-decoding-than-animation-image.html:

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

2 months agoFunction passed to addEventListener may get garbage collected before the event listen...
cdumez@apple.com [Wed, 25 Mar 2020 00:01:27 +0000 (00:01 +0000)]
Function passed to addEventListener may get garbage collected before the event listener is even added
https://bugs.webkit.org/show_bug.cgi?id=209445

Reviewed by Yusuke Suzuki.

Function passed to addEventListener may get garbage collected before the event listener is even added.
The issue is that the JS bindings for addEventListener() would first create a JSEventListener to store
the JSC Function that was passed in and then add this JSEventListener as an event listener on the
EventTarget. The JSC function held by JSEventListener is supposed to get visited by
JSEventListener::visitJSFunction() which gets called by EventTarget::visitJSEventListeners() which
gets called every time an EventTarget wrapper gets visited. The issue is that when the JSEventListener
gets created, the JSEventListener is not yet connected to its EventTarget and thus
EventTarget::visitJSEventListeners() would not visit it. However, the constructor of JSEventListener
would issue a write barrier on that JSC Function.

Several changes were made to address this issue in the generated bindings:
1. We now create a local variable (named argumentX, X being argument index) for each argument that gets
   passed in to an operation
2. At the end of the operation implementation, we call ensureStillAliveHere() on each JSValue argument
   to make sure they stay alive until the end of the operation
3. For EventListeners / EventHandlers, we also issue a write barrier at the end of the operation
   implementation, when it is safe to do so. Now that we do this here in the bindings, I dropped the
   code in the JSEventListener constructor to issue the write barrier (as this was too early).

* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
* bindings/scripts/CodeGeneratorJS.pm:
(GetOperationReturnedParameterName):
(GenerateAttributeSetterBodyDefinition):
(GenerateParametersCheck):
(GenerateEnsureStillAliveCallsForArguments):
(GenerateImplementationFunctionCall):
* bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionEntriesBody):
(WebCore::jsMapLikePrototypeFunctionKeysBody):
(WebCore::jsMapLikePrototypeFunctionValuesBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
* bindings/scripts/test/JS/JSSetLike.cpp:
(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionEntriesBody):
(WebCore::jsSetLikePrototypeFunctionKeysBody):
(WebCore::jsSetLikePrototypeFunctionValuesBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorConstructor::construct):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItemBody):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjInstanceFunctionUnforgeableMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringMethodBody):
(WebCore::jsTestObjConstructorFunctionNullableStringStaticMethodBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocumentBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunctionBody):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::JSTestPromiseRejectionEventConstructor::construct):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionReturningBody):
* bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::jsTestStringifierPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::jsTestStringifierAnonymousOperationPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::jsTestStringifierNamedOperationPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierNamedOperationPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::jsTestStringifierOperationNamedToStringPrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionPointFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

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

2 months agoIgnore in-app browser privacy checks for apps with com.apple.private.applemediaservic...
katherine_cheney@apple.com [Tue, 24 Mar 2020 23:51:04 +0000 (23:51 +0000)]
Ignore in-app browser privacy checks for apps with com.apple.private.applemediaservices entitlement
https://bugs.webkit.org/show_bug.cgi?id=209509
<rdar://problem/60750956>

Reviewed by Brent Fulgham.

* UIProcess/WebPageProxy.cpp:
(WebKit::m_ignoresAppBoundDomains):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
* UIProcess/WebPageProxy.h:

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

2 months agoAdd console message when legacy TLS is used
commit-queue@webkit.org [Tue, 24 Mar 2020 23:33:58 +0000 (23:33 +0000)]
Add console message when legacy TLS is used
https://bugs.webkit.org/show_bug.cgi?id=209444

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-24
Reviewed by Darin Adler.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveResponse):
Indent less, add host to inspector, add release logging without host.

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

2 months agoresults.webkit.org: Documentation for uncollapsed failure endpoints is wrong
jbedard@apple.com [Tue, 24 Mar 2020 23:27:48 +0000 (23:27 +0000)]
results.webkit.org: Documentation for uncollapsed failure endpoints is wrong
https://bugs.webkit.org/show_bug.cgi?id=209496

Rubber-stamped by Aakash Jain.

* resultsdbpy/resultsdbpy/view/templates/documentation.html:

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

2 months ago[ iOS ] http/tests/security/cookies/third-party-cookie-blocking.html is flaky timing out
jacob_uphoff@apple.com [Tue, 24 Mar 2020 23:17:09 +0000 (23:17 +0000)]
[ iOS ] http/tests/security/cookies/third-party-cookie-blocking.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209517

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months ago[ iOS wk2 ] http/wpt/fetch/dnt-header-after-redirection.html is flaky timing out.
lawrence.j@apple.com [Tue, 24 Mar 2020 23:07:01 +0000 (23:07 +0000)]
[ iOS wk2 ] http/wpt/fetch/dnt-header-after-redirection.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209520

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months agoFix isEmpty AssemblyHelpers function and add isNotEmpty
keith_miller@apple.com [Tue, 24 Mar 2020 22:53:03 +0000 (22:53 +0000)]
Fix isEmpty AssemblyHelpers function and add isNotEmpty
https://bugs.webkit.org/show_bug.cgi?id=209507

Reviewed by Saam Barati.

This fixes the 32 version of my HasIndexedProperty patch as well
as properly names the functions for what they do.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::isEmpty):
(JSC::AssemblyHelpers::isNotEmpty):

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

2 months agoresults.webkit.org: Filter suite results by expectation by default
jbedard@apple.com [Tue, 24 Mar 2020 22:52:04 +0000 (22:52 +0000)]
results.webkit.org: Filter suite results by expectation by default
https://bugs.webkit.org/show_bug.cgi?id=209500

Rubber-stamped by Aakash Jain.

* resultsdbpy/resultsdbpy/view/static/js/timeline.js: Allow the Legend constructor
to set a willFilterExpected default.
* resultsdbpy/resultsdbpy/view/templates/suite_results.html:

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

2 months ago[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky...
jacob_uphoff@apple.com [Tue, 24 Mar 2020 22:42:48 +0000 (22:42 +0000)]
[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months ago[Cocoa] Fix launch time regression with CF prefs direct mode enabled
pvollan@apple.com [Tue, 24 Mar 2020 22:41:13 +0000 (22:41 +0000)]
[Cocoa] Fix launch time regression with CF prefs direct mode enabled
https://bugs.webkit.org/show_bug.cgi?id=209244
Source/WebKit:

<rdar://problem/60542149>

Reviewed by Darin Adler.

When CF prefs direct mode was enabled in https://trac.webkit.org/changeset/258064/webkit, it introduced
a significant launch time regression. This patch addresses this regression. The number of observed domains
is reduced and domain observation is initiated later when Safari is first activated. Swizzling code is
removed, since that has a performance cost in the Objective-C runtime. Normal priority instead of
QOS_CLASS_BACKGROUND is used in the thread which starts the observing, since using a background priority
class can lead to priority inversion. Finally, a dictionary comparison is removed when a notification
about a preference change is received, since this check is redundant and doubles the cost of this method.

* UIProcess/Cocoa/PreferenceObserver.mm:
(-[WKPreferenceObserver init]):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
* UIProcess/WebProcessPool.h:

Source/WTF:

Reviewed by Darin Adler.

Re-enable CF prefs direct mode.

* wtf/PlatformEnable.h:
* wtf/PlatformEnableCocoa.h:

Tools:

Reviewed by Darin Adler.

* TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:
(TEST):
(sharedInstanceMethodOverride):

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

2 months ago[ iOS wk2 ] http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html is flaky...
lawrence.j@apple.com [Tue, 24 Mar 2020 22:34:20 +0000 (22:34 +0000)]
[ iOS wk2 ] http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209512

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months agoresults.webkit.org: Correct UUID capitalization in documentation
jbedard@apple.com [Tue, 24 Mar 2020 22:30:49 +0000 (22:30 +0000)]
results.webkit.org: Correct UUID capitalization in documentation
https://bugs.webkit.org/show_bug.cgi?id=209497

Reviewed by Aakash Jain.

* resultsdbpy/resultsdbpy/view/templates/documentation.html:

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

2 months ago[ews] commit-queue should comment on bug if it fails to create git commit
aakash_jain@apple.com [Tue, 24 Mar 2020 22:26:45 +0000 (22:26 +0000)]
[ews] commit-queue should comment on bug if it fails to create git commit
https://bugs.webkit.org/show_bug.cgi?id=209487

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(CreateLocalGITCommit):
(CreateLocalGITCommit.start):
(CreateLocalGITCommit.evaluateCommand):
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

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

2 months agoElement context character rects may be in wrong coordinate system
dbates@webkit.org [Tue, 24 Mar 2020 22:08:58 +0000 (22:08 +0000)]
Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

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

Tools:

Add some tests.

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

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

2 months ago[ iOS ] REGRESSION: fast/dom/window-open-ephemeral.html is flaky timing out
jacob_uphoff@apple.com [Tue, 24 Mar 2020 22:05:53 +0000 (22:05 +0000)]
[ iOS ] REGRESSION: fast/dom/window-open-ephemeral.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209502

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months agoUpdate test262 to commit 79146e5cf48d
shvaikalesh@gmail.com [Tue, 24 Mar 2020 22:03:13 +0000 (22:03 +0000)]
Update test262 to commit 79146e5cf48d
https://bugs.webkit.org/show_bug.cgi?id=209449

Reviewed by Keith Miller.

* test262/config.yaml: Add 3 tests that timeout.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:

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

2 months ago[ Mac wk2 Debug] http/tests/referrer-policy-anchor/origin/cross-origin-http.https...
lawrence.j@apple.com [Tue, 24 Mar 2020 21:59:19 +0000 (21:59 +0000)]
[ Mac wk2 Debug] http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209503

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 months agoUse SimpleRange in characterRectsForRange()
dbates@webkit.org [Tue, 24 Mar 2020 21:56:27 +0000 (21:56 +0000)]
Use SimpleRange in characterRectsForRange()
https://bugs.webkit.org/show_bug.cgi?id=209495

Reviewed by Darin Adler.

The function characterRectsForRange() is capable of working correctly with a SimpleRange
instead of a Range. Callers currently pass a Range. So, there is still a conversion, but
maybe someday they can pass a SimpleRange. This change is towards that future.

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

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

2 months agoREGRESSION: [ Catalina wk1 ] storage/indexeddb/modern/abort-requests flaky crashing.
lawrence.j@apple.com [Tue, 24 Mar 2020 21:38:34 +0000 (21:38 +0000)]
REGRESSION: [ Catalina wk1 ] storage/indexeddb/modern/abort-requests flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209499

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 months ago[ Mac wk1 ] fast/events/mouse-cursor-no-mousemove.html is flaky failing.
lawrence.j@apple.com [Tue, 24 Mar 2020 21:07:47 +0000 (21:07 +0000)]
[ Mac wk1 ] fast/events/mouse-cursor-no-mousemove.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209494

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 months ago[ews] position in queue shown in status-bubble is larger than actual position
aakash_jain@apple.com [Tue, 24 Mar 2020 20:36:30 +0000 (20:36 +0000)]
[ews] position in queue shown in status-bubble is larger than actual position
https://bugs.webkit.org/show_bug.cgi?id=209481

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._queue_position): Use created timestamp instead of modified.

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

2 months ago[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
lawrence.j@apple.com [Tue, 24 Mar 2020 20:32:09 +0000 (20:32 +0000)]
[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

RUnreviewed test gardening.

* platform/mac/TestExpectations:

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

2 months ago[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
lawrence.j@apple.com [Tue, 24 Mar 2020 20:20:44 +0000 (20:20 +0000)]
[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 months agoUnreviewed, reverting r258931.
lawrence.j@apple.com [Tue, 24 Mar 2020 20:17:22 +0000 (20:17 +0000)]
Unreviewed, reverting r258931.

Expectations need to include the timeout that is set in mac.

Reverted changeset:

"[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html
is flaky crashing."
https://bugs.webkit.org/show_bug.cgi?id=209490
https://trac.webkit.org/changeset/258931

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

2 months agoUnreviewed, reverting r258928.
cdumez@apple.com [Tue, 24 Mar 2020 20:14:06 +0000 (20:14 +0000)]
Unreviewed, reverting r258928.

Broke the build

Reverted changeset:

"Refactor
ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor()
to return a struct instead of a Vector of pairs"
https://bugs.webkit.org/show_bug.cgi?id=209463
https://trac.webkit.org/changeset/258928

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

2 months ago[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
lawrence.j@apple.com [Tue, 24 Mar 2020 20:13:11 +0000 (20:13 +0000)]
[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 months ago[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
commit-queue@webkit.org [Tue, 24 Mar 2020 19:40:24 +0000 (19:40 +0000)]
[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-24
Reviewed by Simon Fraser.

Instead of using setTimeout() to time the drawing of the animated image
frames, we will listen to the internal event 'webkitImageFrameReady' which
fires after the decoding of a frame finishes.

* fast/images/slower-decoding-than-animation-image-expected.txt:
* fast/images/slower-decoding-than-animation-image.html:
* platform/ios/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

2 months agoRefactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteData...
wilander@apple.com [Tue, 24 Mar 2020 19:29:44 +0000 (19:29 +0000)]
Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called
RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
- domainsToDeleteAllCookiesFor
- domainsToDeleteAllButHttpOnlyCookiesFor
- domainsToDeleteAllNonCookieWebsiteDataFor

3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkSession.h:

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

2 months ago[ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
rniwa@webkit.org [Tue, 24 Mar 2020 19:19:30 +0000 (19:19 +0000)]
[ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207559

Reviewed by Geoffrey Garen.

Delete the test which was added in r120108 to test the yielding time of the parser.

This test has been flaky everywhere, and there isn't a way to test these kinds of timing
reliably in our layout test infrastructure.

* fast/parser/parser-yield-timing-expected.txt: Removed.
* fast/parser/parser-yield-timing.html: Removed.
* platform/gtk/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk1/TestExpectations:

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

2 months ago[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
commit-queue@webkit.org [Tue, 24 Mar 2020 18:57:29 +0000 (18:57 +0000)]
[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-24
Reviewed by Adrian Perez de Castro.

The bubblewrap sandbox is blocking access to WebKit's nested Wayland compositor. Apparently
nobody has ever tested the nested Wayland compositor with the sandbox enabled until now.

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindWayland):

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

2 months ago[ iOS and Mac Debug ] fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies...
lawrence.j@apple.com [Tue, 24 Mar 2020 18:28:40 +0000 (18:28 +0000)]
[ iOS and Mac Debug ] fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html is flaky timing out and crashing.
https://bugs.webkit.org/show_bug.cgi?id=208817

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months agoSimplify characterRectsForRange() in WebPage::requestDocumentEditingContext()
dbates@webkit.org [Tue, 24 Mar 2020 18:00:14 +0000 (18:00 +0000)]
Simplify characterRectsForRange() in WebPage::requestDocumentEditingContext()
https://bugs.webkit.org/show_bug.cgi?id=209462

Reviewed by Wenson Hsieh.

No need to allow by-reference capture by default. Update code to take a const
Range& and unsigned instead of non-const and uint64_t params. The former is
const correct for this code, which doesn't modify anything. The latter is
actually the max width data type callers pass. Simplify the inside of the loop
by using StringView::isEmpty(). Lastly add a constant for the stride length
to make the 1s less mysterious despite the name of the function alluding to
this stride.

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

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

2 months ago[iOS][WK2] Set text trait isSingleLineDocument
dbates@webkit.org [Tue, 24 Mar 2020 17:57:41 +0000 (17:57 +0000)]
[iOS][WK2] Set text trait isSingleLineDocument
https://bugs.webkit.org/show_bug.cgi?id=209391
<rdar://problem/60705870>

Reviewed by Darin Adler.

Source/WebKit:

Set the SPI text trait isSingleLineDocument to NO if the focused element is
a <textarea> or contenteditable element because these elements support multi-
line text. For all other elements, consider them single line text fields and
return YES.

Note that I chose to go with the above criterion because it is simple. In reality,
it is possible to make a <textarea> or contenteditable behave like a single-line
document, but it requires going out of your way to to do so and may involve
platform-specific heuristics. See <https://bugs.webkit.org/show_bug.cgi?id=209391#c9>
for more details. For now, let's try something simple.

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

Tools:

Add a test.

* TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/UIKitSPI.h: Expose more SPI.

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

2 months agoREGRESSION(r258871): [GTK] test bot exiting early due to too many crashes
dpino@igalia.com [Tue, 24 Mar 2020 17:53:38 +0000 (17:53 +0000)]
REGRESSION(r258871): [GTK] test bot exiting early due to too many crashes
https://bugs.webkit.org/show_bug.cgi?id=209467

Reviewed by Darin Adler.

* WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformEditorState const): Add a check to prevent start
and end position of selection range is not null.

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

2 months ago[ Mac wk2 ] imported/w3c/web-platform-tests/notifications/event-onclose.html is flaky...
lawrence.j@apple.com [Tue, 24 Mar 2020 17:46:41 +0000 (17:46 +0000)]
[ Mac wk2 ] imported/w3c/web-platform-tests/notifications/event-onclose.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209483

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 months ago[Web Animations] Clean timeline headers up
commit-queue@webkit.org [Tue, 24 Mar 2020 17:20:33 +0000 (17:20 +0000)]
[Web Animations] Clean timeline headers up
https://bugs.webkit.org/show_bug.cgi?id=209482

Patch by Antoine Quint <graouts@apple.com> on 2020-03-24
Reviewed by Antti Koivisto.

The AnimationTimeline::removeAnimationsForElement() method isn't used and DocumentTimeline::applyPendingAcceleratedAnimations()
is only used internally in DocumentTimeline so it can be made private.

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::removeAnimationsForElement): Deleted.
* animation/AnimationTimeline.h:
* animation/DocumentTimeline.h:

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

2 months ago[Cocoa] Deny access to database mapping service
pvollan@apple.com [Tue, 24 Mar 2020 17:14:43 +0000 (17:14 +0000)]
[Cocoa] Deny access to database mapping service
https://bugs.webkit.org/show_bug.cgi?id=209339
Source/WebKit:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

In order for the WebContent process to not have permantent access to the database mapping service,
this patch creates an extension for the service in the UI process, sends it to the WebContent
process, where it is consumed. Then, an API call is made which will map the database, and next the
WebContent process will revoke the extension. The WebContent process has then mapped the database,
and access to the database mapping service is no longer needed.

Tested by: fast/sandbox/ios/sandbox-mach-lookup.html

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
of denying the database mapping service in this patch.

* wtf/PlatformUse.h:

LayoutTests:

Reviewed by Brent Fulgham.

* fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
* fast/sandbox/ios/sandbox-mach-lookup.html:

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

2 months agoUnreviewed, reverting r258862.
achristensen@apple.com [Tue, 24 Mar 2020 17:07:05 +0000 (17:07 +0000)]
Unreviewed, reverting r258862.

SPI was not what was needed

Reverted changeset:

"Add SPI to move localStorage to a different domain"
https://bugs.webkit.org/show_bug.cgi?id=209260
https://trac.webkit.org/changeset/258862

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

2 months ago[iOS+macOS Debug] ASSERTION FAILED: m_effects.isEmpty() in WebCore::KeyframeEffectSta...
commit-queue@webkit.org [Tue, 24 Mar 2020 16:47:07 +0000 (16:47 +0000)]
[iOS+macOS Debug] ASSERTION FAILED: m_effects.isEmpty() in WebCore::KeyframeEffectStack::~KeyframeEffectStack()
https://bugs.webkit.org/show_bug.cgi?id=208718
<rdar://problem/59956433>

Patch by Antoine Quint <graouts@apple.com> on 2020-03-24
Reviewed by Darin Adler.

Source/WebCore:

This assertion is only valid in the case where elements with relevant animations are still alive when the document is
torn down. However, it's fine to have an Element be destroyed with a relevant animation while its document is still alive.

* animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::~KeyframeEffectStack):

LayoutTests:

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

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

2 months ago[ macOS wk1 ] webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html is flaky...
jacob_uphoff@apple.com [Tue, 24 Mar 2020 16:40:21 +0000 (16:40 +0000)]
[ macOS wk1 ] webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209480

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 months agoREGRESSION: [ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters...
lawrence.j@apple.com [Tue, 24 Mar 2020 16:14:20 +0000 (16:14 +0000)]
REGRESSION: [ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209450

Unreviewed test gardening.

Adjusted test expectations further.

* platform/ios-wk2/TestExpectations:

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

2 months ago[GTK][WPE] WEB_PROCESS_CMD_PREFIX and others have stopped working
clord@igalia.com [Tue, 24 Mar 2020 15:46:47 +0000 (15:46 +0000)]
[GTK][WPE] WEB_PROCESS_CMD_PREFIX and others have stopped working
https://bugs.webkit.org/show_bug.cgi?id=209478

Make sure *_PROCESS_CMD_PREFIX variables are whitelisted in the Flatpak sandbox.

Reviewed by Philippe Normand.

* flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):

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

2 months ago[ macOS wk1 ] webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds...
jacob_uphoff@apple.com [Tue, 24 Mar 2020 15:41:13 +0000 (15:41 +0000)]
[ macOS wk1 ] webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209479

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

2 months agoSafari jetsams with repeated drawImage/getImageData
simon.fraser@apple.com [Tue, 24 Mar 2020 05:05:50 +0000 (05:05 +0000)]
Safari jetsams with repeated drawImage/getImageData
https://bugs.webkit.org/show_bug.cgi?id=207957

Reviewed by Tim Horton.

SubimageCacheWithTimer used a DeferrableOneShotTimer to clear itself, but if content
adds an entry to the cache on every frame (as might content drawing video frames into a canvas)
then the cache was never cleared. Nor was it cleared via a memory warning.

Fix by tracking cache entries by age, and using a repeating timer to prune old images
from the cache. Also hook up the cache to the memory pressure handler, which clears it.

Reduce the timer frequency from 1s to 500ms, since that was observed to reduce the memory use
on the provided testcase from ~600M to ~350M, making jetsam less likely.

Rename m_images to m_imageCounts to make its role clearer.

* page/cocoa/MemoryReleaseCocoa.mm:
(WebCore::platformReleaseMemory):
* platform/graphics/cg/SubimageCacheWithTimer.cpp:
(WebCore::SubimageCacheWithTimer::clear):
(WebCore::SubimageCacheAdder::translate):
(WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
(WebCore::SubimageCacheWithTimer::pruneCacheTimerFired):
(WebCore::SubimageCacheWithTimer::prune):
(WebCore::SubimageCacheWithTimer::subimage):
(WebCore::SubimageCacheWithTimer::clearImageAndSubimages):
(WebCore::SubimageCacheWithTimer::clearAll):
(WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired): Deleted.
* platform/graphics/cg/SubimageCacheWithTimer.h:

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

2 months ago[WinCairo][PlayStation] Failure to build with ENABLE_XSLT=OFF
stephan.szabo@sony.com [Tue, 24 Mar 2020 04:51:34 +0000 (04:51 +0000)]
[WinCairo][PlayStation] Failure to build with ENABLE_XSLT=OFF
https://bugs.webkit.org/show_bug.cgi?id=209454

Reviewed by Ross Kirsling.

No new tests, build fix.

* xml/parser/XMLDocumentParserLibxml2.cpp:

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

2 months agobecu.org: Placeholder text "Search" is cut off
zalan@apple.com [Tue, 24 Mar 2020 04:48:49 +0000 (04:48 +0000)]
becu.org: Placeholder text "Search" is cut off
https://bugs.webkit.org/show_bug.cgi?id=209447
<rdar://problem/45951728>

Reviewed by Simon Fraser.

Source/WebCore:

'line-height: initial' ensures that that the placeholder text is visible and properly positioned when the input itself has
incompatible values. This is also what Chrome has in their UA stylesheet.

Test: fast/forms/placeholder-content-line-height.html

* css/html.css:
(input::placeholder):

LayoutTests:

* fast/forms/placeholder-content-center-expected.html:
* fast/forms/placeholder-content-center.html:
* fast/forms/placeholder-content-line-height-expected.html: Copied from LayoutTests/fast/forms/placeholder-content-center-expected.html.
* fast/forms/placeholder-content-line-height.html: Copied from LayoutTests/fast/forms/placeholder-content-center.html.

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

2 months ago[mac-wk1] fast/scrolling/arrow-key-scroll-in-rtl-document.html is a flaky timeout
simon.fraser@apple.com [Tue, 24 Mar 2020 04:17:19 +0000 (04:17 +0000)]
[mac-wk1] fast/scrolling/arrow-key-scroll-in-rtl-document.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=209427

Reviewed by Wenson Hsieh.
Source/WebCore:

In WebKit1, arrow-key scrolls are instantaneous, so scrolling is complete before the test
registers the 'monitor wheel events' callback. However, nothing triggers a subsequent rendering
update, so the test never completes.

Fix by having WheelEventTestMonitor::setTestCallbackAndStartMonitoring() trigger a rendering
update.

* page/WheelEventTestMonitor.cpp:
(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):

Tools:

0 => NULL

* DumpRenderTree/mac/DumpRenderTree.mm:
(invalidateAnyPreviousWaitToDumpWatchdog):

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

2 months ago[LFC] Layout::Box::initialContainingBlock() should return const InitialContainingBlock&
zalan@apple.com [Tue, 24 Mar 2020 04:09:30 +0000 (04:09 +0000)]
[LFC] Layout::Box::initialContainingBlock() should return const InitialContainingBlock&
https://bugs.webkit.org/show_bug.cgi?id=209406
<rdar://problem/60749715>

Reviewed by Antti Koivisto.

Use is<InitialContainingBlock> where applicable.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometryForBox const):
(WebCore::Layout::FormattingContext::collectOutOfFlowDescendantsIfNeeded):
* layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
* layout/blockformatting/BlockFormattingContextQuirks.cpp:
* layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::absoluteDisplayBox):
* layout/invalidation/InvalidationState.cpp:
(WebCore::Layout::InvalidationState::markNeedsUpdate):
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isInFormattingContextOf const):
(WebCore::Layout::Box::isOverflowVisible const):
* layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isInitialContainingBlock const):
(WebCore::Layout::Box::isInlineTextBox const):
(WebCore::Layout::Box::isLineBreakBox const):
(WebCore::Layout::Box::isReplacedBox const):
* layout/layouttree/LayoutInitialContainingBlock.cpp:
(WebCore::Layout::InitialContainingBlock::InitialContainingBlock):
* layout/layouttree/LayoutInlineTextBox.cpp:
(WebCore::Layout::InlineTextBox::InlineTextBox):
* layout/layouttree/LayoutLineBreakBox.cpp:
(WebCore::Layout::LineBreakBox::LineBreakBox):
* layout/layouttree/LayoutReplacedBox.cpp:
(WebCore::Layout::ReplacedBox::ReplacedBox):
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputLayoutBox):

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

2 months ago[ Mac wk2 ] tiled-drawing/scrolling/scroll-iframe-latched-selects.html is flaky failing.
simon.fraser@apple.com [Tue, 24 Mar 2020 03:40:45 +0000 (03:40 +0000)]
[ Mac wk2 ] tiled-drawing/scrolling/scroll-iframe-latched-selects.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209283

Unreviewed test gardening.

The test needs to call monitorWheelEvents() before each gesture.

* tiled-drawing/scrolling/scroll-iframe-latched-selects.html:

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

2 months agoIPC::Decoder::decodeFixedLengthData() should be marked WARN_UNUSED_RETURN
ddkilzer@apple.com [Tue, 24 Mar 2020 03:20:41 +0000 (03:20 +0000)]
IPC::Decoder::decodeFixedLengthData() should be marked WARN_UNUSED_RETURN
<https://webkit.org/b/209448>
<rdar://problem/60797998>

Reviewed by Chris Dumez.

* Platform/IPC/ArgumentCoders.h:
(struct VectorArgumentCoder::decode):
- Check the return value of Decoder::decodeFixedLengthData().
* Platform/IPC/Decoder.h:
(IPC::Decoder::decodeFixedLengthData): Add WARN_UNUSED_RETURN.

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

2 months agoHasIndexedProperty should know about sane chain
keith_miller@apple.com [Tue, 24 Mar 2020 03:02:28 +0000 (03:02 +0000)]
HasIndexedProperty should know about sane chain
https://bugs.webkit.org/show_bug.cgi?id=209457

Reviewed by Saam Barati.

This patch makes it so HasIndexedProperty is aware of
sane chain. This is useful because, most of the time we do an
indexed in it is on an array. If the array has a sane chain (i.e.
no indexed properties on it's prototypes and has the default
prototype chain) then we can just test for the index being a hole.

Note, we could also just convert OOB indices into false but that
should happen in another patch.
https://bugs.webkit.org/show_bug.cgi?id=209456

I didn't add any tests because it turns out we already have a ton.
I know this because I broke most of them repeatedly... >.>

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::setSaneChainIfPossible):
(JSC::DFG::FixupPhase::convertToHasIndexedProperty):
* dfg/DFGNodeType.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::speculateAndJump):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::isEmpty):

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

2 months agoWeb Inspector: REGRESSION(r257791): event breakpoint icon should be [E]
drousso@apple.com [Tue, 24 Mar 2020 02:44:31 +0000 (02:44 +0000)]
Web Inspector: REGRESSION(r257791): event breakpoint icon should be [E]
https://bugs.webkit.org/show_bug.cgi?id=209434

Reviewed by Timothy Hatcher.

* UserInterface/Images/TypeIcons.svg:

* UserInterface/Views/PathComponentIcons.css:
(.snapshot-list-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-list-icon .icon):
Drive-by: make a separate "HeapSnapshotList" target so that it won't be affected if "Events"
          is ever changed.

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

2 months ago[ Mac wk2 Debug ] webgpu/whlsl/vector-compare.html is flaky crashing.
justin_fan@apple.com [Tue, 24 Mar 2020 02:38:39 +0000 (02:38 +0000)]
[ Mac wk2 Debug ] webgpu/whlsl/vector-compare.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209024

Reviewed by Myles C. Maxfield.

Prevent GPUBindGroup destructor from accidentally dereferencing GPUBindGroupAllocator too many times
if the owning GPUDevice has already been destroyed. A GPUBindGroupAllocator should reset whenever its
spawned GPUBindGroups are all cleaned up.

Covered by existing tests.

* platform/graphics/gpu/GPUBindGroupAllocator.h:
* platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm:
(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders):
(WebCore::GPUBindGroupAllocator::tryReset):
* platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:
(WebCore::GPUBindGroup::~GPUBindGroup):

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

2 months agoREGRESSION(r257759, r258623): Web Inspector: Settings icon sometimes placed below...
drousso@apple.com [Tue, 24 Mar 2020 02:22:49 +0000 (02:22 +0000)]
REGRESSION(r257759, r258623): Web Inspector: Settings icon sometimes placed below the tab bar
https://bugs.webkit.org/show_bug.cgi?id=208603
<rdar://problem/60108967>

Reviewed by Timothy Hatcher.

* UserInterface/Views/TabBar.js:
(WI.TabBar.prototype.layout):
If the total width of all `WI.GeneralTabBarItem` is not an integer, it needs to be rounded
when compared to the width of the container `WI.TabBar`. This is be necessary because CSS
often rounds to the nearest pixel, meaning that `99.5px` would actually render as `100px`,
whereas `99.4px` would render as `99px`.

* UserInterface/Views/TabBar.css:
(body:not(.docked) .tab-bar > .tabs:not(.calculate-width) > .item:not(.pinned)): Added.
(.tab-bar > .tabs.calculate-width > .item:not(.pinned)): Added.
(body:not(.docked) .tab-bar > .tabs > .item:not(.pinned)): Deleted.
(.tab-bar > .tabs.calculate-width > .item): Deleted.
When undocked, force all `WI.GeneralTabBarItem` to take up as little width as possible when
resizing so that if there isn't enough room for all of them, any that `flex-wrap` won't be
incorrectly perceived as needing a much larger width.

* UserInterface/Debug/Bootstrap.css:
(.tab-bar > .navigation-bar .inspect-inspector):
Ensure that the "inspect inspector" navigation item has an integer pixel width.

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

2 months agowebkitpy Git class must expose the repository URL
dino@apple.com [Tue, 24 Mar 2020 02:05:00 +0000 (02:05 +0000)]
webkitpy Git class must expose the repository URL
https://bugs.webkit.org/show_bug.cgi?id=209439
<rdar://problem/60792668>

Reviewed by Simon Fraser.

Some internal tools were relying on the svn_url() method
that was changed/removed in r258164. Add a replacement.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.svn_repository_url):

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

2 months agoRemove the unused method PasteboardStrategy::uniqueName()
wenson_hsieh@apple.com [Tue, 24 Mar 2020 01:56:56 +0000 (01:56 +0000)]
Remove the unused method PasteboardStrategy::uniqueName()
https://bugs.webkit.org/show_bug.cgi?id=209452

Reviewed by Tim Horton.

Source/WebCore:

This was introduced in <https://trac.webkit.org/r107844>, where it was used in the implementation of
Editor::newGeneralClipboard. However, this was subsequently removed in <https://trac.webkit.org/r150351>.

No change in behavior.

* platform/PasteboardStrategy.h:
* platform/PlatformPasteboard.h:
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::uniqueName): Deleted.
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::uniqueName): Deleted.

Source/WebKit:

See WebCore/ChangeLog for more detail.

* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardUniqueName): Deleted.
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::uniqueName): Deleted.
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more detail.

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::uniqueName): Deleted.

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

2 months agoLayout Test imported/w3c/web-platform-tests/hr-time/test_cross_frame_start.html is...
said@apple.com [Tue, 24 Mar 2020 01:40:53 +0000 (01:40 +0000)]
Layout Test imported/w3c/web-platform-tests/hr-time/test_cross_frame_start.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196944

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:
Remove flaky expectation for the test.

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

2 months agoUnreviewed, reverting r258891.
commit-queue@webkit.org [Tue, 24 Mar 2020 01:31:38 +0000 (01:31 +0000)]
Unreviewed, reverting r258891.
https://bugs.webkit.org/show_bug.cgi?id=209459

Introduced layout test failures (Requested by perarne on
#webkit).

Reverted changeset:

"[Cocoa] Deny access to database mapping service"
https://bugs.webkit.org/show_bug.cgi?id=209339
https://trac.webkit.org/changeset/258891

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

2 months agoFix memory leak introduced in r257726
commit-queue@webkit.org [Tue, 24 Mar 2020 01:22:34 +0000 (01:22 +0000)]
Fix memory leak introduced in r257726
https://bugs.webkit.org/show_bug.cgi?id=208399

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-23
Reviewed by John Wilander.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::websiteDataStore):
We were leaking page configurations.

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

2 months ago[Win] http/tests/misc/last-modified-parsing.html always fails on Windows EWS
ddkilzer@apple.com [Tue, 24 Mar 2020 00:42:31 +0000 (00:42 +0000)]
[Win] http/tests/misc/last-modified-parsing.html always fails on Windows EWS
<https://webkit.org/b/209455>

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 months ago[Cocoa] Deny access to database mapping service
pvollan@apple.com [Tue, 24 Mar 2020 00:15:23 +0000 (00:15 +0000)]
[Cocoa] Deny access to database mapping service
https://bugs.webkit.org/show_bug.cgi?id=209339
Source/WebKit:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

In order for the WebContent process to not have permantent access to the database mapping service,
this patch creates an extension for the service in the UI process, sends it to the WebContent
process, where it is consumed. Then, an API call is made which will map the database, and next the
WebContent process will revoke the extension. The WebContent process has then mapped the database,
and access to the database mapping service is no longer needed.

Tested by: fast/sandbox/ios/sandbox-mach-lookup.html

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
* WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
of denying the database mapping service in this patch.

* wtf/PlatformUse.h:

LayoutTests:

Reviewed by Brent Fulgham.

* fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
* fast/sandbox/ios/sandbox-mach-lookup.html:

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

2 months agoAdd console message when legacy TLS is used
commit-queue@webkit.org [Tue, 24 Mar 2020 00:06:29 +0000 (00:06 +0000)]
Add console message when legacy TLS is used
https://bugs.webkit.org/show_bug.cgi?id=209444

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-23
Reviewed by Darin Adler.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveResponse):

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

2 months ago[ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html...
lawrence.j@apple.com [Mon, 23 Mar 2020 23:48:51 +0000 (23:48 +0000)]
[ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209450

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

2 months agoRemoved FIXME comment for work that had already been done.
megan_gardner@apple.com [Mon, 23 Mar 2020 23:42:16 +0000 (23:42 +0000)]
Removed FIXME comment for work that had already been done.

* UIProcess/ios/WKSyntheticTapGestureRecognizer.mm:
(-[WKSyntheticTapGestureRecognizer touchesEnded:withEvent:]):

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

2 months ago[JSC] Caller of Delete IC should emit write-barrier onto owner
ysuzuki@apple.com [Mon, 23 Mar 2020 23:28:46 +0000 (23:28 +0000)]
[JSC] Caller of Delete IC should emit write-barrier onto owner
https://bugs.webkit.org/show_bug.cgi?id=209392
<rdar://problem/60683173>

Reviewed by Saam Barati.

JSTests:

* stress/delete-ic-requires-write-barrier.js: Added.
(foo):

Source/JavaScriptCore:

DeleteIC can change Structure of the owner cell in the fast path. However it is not emitting write-barrier,
while we are writing a Structure cell id into a JSObject's header.
In this patch,

    1. Emit write-barrier in baseline. Be careful about when emitting write-barrier since it clobbers registers.
    2. DFG and FTL recognize DeleteById / DeleteByVal in DFGStoreBarrierInsertionPhase.
    3. DFGStoreBarrierInsertionPhase only accepts nodes which base is speculated as a Cell. Current DeleteById / DeleteByVal
       can have UntypedUse base value, but we miss emitting write-barrier DeleteById / DeleteByVal with UntypedUse in the fast path.
       In this patch, we optimize DeleteById / DeleteByVal only when we speculate child1 as a cell. We can take the further
       steps after fixing this bug, e.g. (1) accepting UntypedUse in store-barrier-insertion[1] or (2) emitting write-barrier
       if child1's speculation is UntypedUse. For now, we fix the bug by taking a generic path when child1 is not speculated
       as a cell. And we can optimize it in a separate change[2].

This is following the design of PutIC.
Currently, we use ShouldFilterBase for emitWriteBarrier. But we could use UnconditionalWriteBarrier here since
we already filter non-cells in Baseline's hot path. I filed it as a separate bug in [3].

[1]: https://bugs.webkit.org/show_bug.cgi?id=209396
[2]: https://bugs.webkit.org/show_bug.cgi?id=209397
[3]: https://bugs.webkit.org/show_bug.cgi?id=209395

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitWriteBarrier):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_put_by_id):

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

2 months ago[ Mac Debug and iOS ] imported/w3c/web-platform-tests/navigation-timing/test_timing_a...
lawrence.j@apple.com [Mon, 23 Mar 2020 23:18:20 +0000 (23:18 +0000)]
[ Mac Debug and iOS ] imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209446

Unreviewed test gardening.

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

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

2 months agoAdd the capability to change all of a website's cookies to SameSite=Strict
wilander@apple.com [Mon, 23 Mar 2020 23:00:50 +0000 (23:00 +0000)]
Add the capability to change all of a website's cookies to SameSite=Strict
https://bugs.webkit.org/show_bug.cgi?id=209369
<rdar://problem/60710690>

Reviewed by Alex Christensen and David Kilzer.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html

* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):
    Stub function for non-Cocoa platforms.
* platform/network/NetworkStorageSession.h:
* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):
* testing/Internals.h:
    Added code to expose SameSite=None and path properties of cookies.
    However, they don't seem to carry over so I'll have to revisit the
    internal workings.

Source/WebKit:

These changes add test infrastructure to run function
WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict() in the
network process.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setToSameSiteStrictCookiesForTesting):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setToSameSiteStrictCookiesForTesting):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setResourceLoadStatisticsToSameSiteStrictCookiesForTesting):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Source/WTF:

* wtf/PlatformHave.h:
    Adds HAVE_CFNETWORK_SAMESITE_COOKIE_API for macOS Catalina and up,
    iOS 13 and up, Catalyst, watchOS, and Apple TV.

Tools:

These changes add TestRunner function statisticsSetToSameSiteStrictCookies().

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsSetToSameSiteStrictCookies):
(WTR::TestRunner::statisticsCallDidSetToSameSiteStrictCookiesCallback):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsToSameSiteStrictCookies):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetToSameSiteStrictCookies):
* WebKitTestRunner/TestInvocation.h:

LayoutTests:

* http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php: Added.
* http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt: Added.
* http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html: Added.
* platform/ios/TestExpectations:
    Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
    as Pass.
* platform/mac-wk2/TestExpectations:
    Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
    as Pass for Catalina+.
* platform/wk2/TestExpectations:
    Skipped http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
    since it's only available on macOS Catalina and up and the functionality is not
    implemented on non-Cocoa platforms.

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

2 months ago[WPE][GTK] Allow distributors to brand user agent
commit-queue@webkit.org [Mon, 23 Mar 2020 22:59:32 +0000 (22:59 +0000)]
[WPE][GTK] Allow distributors to brand user agent
https://bugs.webkit.org/show_bug.cgi?id=162611

Unreviewed, un-break my previous commit.

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-23

* platform/glib/UserAgentGLib.cpp:
(WebCore::standardUserAgent):

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

2 months ago[iOS WK2] compositing/overflow/dynamic-composited-scrolling-status.html asserts
simon.fraser@apple.com [Mon, 23 Mar 2020 22:53:58 +0000 (22:53 +0000)]
[iOS WK2] compositing/overflow/dynamic-composited-scrolling-status.html asserts
https://bugs.webkit.org/show_bug.cgi?id=209440
<rdar://problem/60705261>

Reviewed by Wenson Hsieh.

nonFastScrollableRectsForTesting() needs to eagerly update event regions after r258528,
as we do for touchEventRectsForEventForTesting().

Also renamed the function so it's clear that it's for testing only.

* page/Page.cpp:
(WebCore::Page::nonFastScrollableRectsForTesting):
(WebCore::Page::nonFastScrollableRects): Deleted.
* page/Page.h:
* testing/Internals.cpp:
(WebCore::Internals::nonFastScrollableRects const):

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

2 months ago[ Mac wk1 Debug ] http/tests/css/shared-stylesheet-mutation-preconstruct.html is...
lawrence.j@apple.com [Mon, 23 Mar 2020 22:48:49 +0000 (22:48 +0000)]
[ Mac wk1 Debug ] http/tests/css/shared-stylesheet-mutation-preconstruct.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209442

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 months agoSet important EGL context attributes
dino@apple.com [Mon, 23 Mar 2020 22:44:54 +0000 (22:44 +0000)]
Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724

Patch by James Darpinian <jdarpinian@chromium.org> on 2020-03-06
Reviewed by Dean Jackson.

Re-landing after r258875.

These EGL context attributes are important to make ANGLE's validation correct for
WebGL contexts. ROBUST_RESOURCE_INITIALIZATION is especially important; the lack
of it may be a root cause of some of the test flakiness we have seen. With this
change WebKit's EGL context attributes now match Chromium's for ANGLE/WebGL
contexts.

* platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

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

2 months agoUneviewed, added myself to contributors.json.
nmouchtaris@apple.com [Mon, 23 Mar 2020 22:14:38 +0000 (22:14 +0000)]
Uneviewed, added myself to contributors.json.

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

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

2 months ago[Win] Unreviewed test gardening.
zalan@apple.com [Mon, 23 Mar 2020 21:59:55 +0000 (21:59 +0000)]
[Win] Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 months ago[GTK] Allow distributors to brand user agent
commit-queue@webkit.org [Mon, 23 Mar 2020 21:50:48 +0000 (21:50 +0000)]
[GTK] Allow distributors to brand user agent
https://bugs.webkit.org/show_bug.cgi?id=162611

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-03-23
Reviewed by Adrian Perez de Castro.

.:

Add build option for inserting distributor branding into the user agent string.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/WebCore:

* platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):

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

2 months ago[WebGL] Skip vertexAttrib0 simulation when using ANGLE
dino@apple.com [Mon, 23 Mar 2020 21:28:16 +0000 (21:28 +0000)]
[WebGL] Skip vertexAttrib0 simulation when using ANGLE
https://bugs.webkit.org/show_bug.cgi?id=209416
<rdar://problem/60765734>

Reviewed by Antoine Quint.

Source/WebCore:

When using ANGLE as a backend, we do not need to simulate a
missing vertexAttrib0 at the WebGL layer, since ANGLE will
handle it for us.

This causes a couple of tests to begin passing (they were marked as
failures). It also allows us to re-land r258025, which was rolled
out in r258226.

* html/canvas/WebGL2RenderingContext.cpp: Wrap any code that does vertexAttrib0
simulation in a !USE(ANGLE).
(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::initializeVertexArrayObjects):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::disableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::vertexAttribfImpl):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLVertexArrayObjectBase.cpp:
(WebCore::WebGLVertexArrayObjectBase::unbindBuffer):

LayoutTests:

Remove the console logging that is no longer output when using ANGLE.
Remove failing expectations for some tests.

* fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt:
* fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays-expected.txt:
* platform/mac/TestExpectations:

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

2 months ago[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once...
ysuzuki@apple.com [Mon, 23 Mar 2020 21:09:21 +0000 (21:09 +0000)]
[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
https://bugs.webkit.org/show_bug.cgi?id=209327
<rdar://problem/60631061>

Reviewed by Saam Barati.

JSTests:

* stress/osr-exit-attempts-to-find-stubinfo-which-is-cleared-by-previous-baseline-to-llint-conversion.js: Added.
(setter):
(foo):

Source/JavaScriptCore:

DFG compiles op_put_by_val as PutById and inlines SetterCall only when DFG found StructureStubInfo for this op_put_by_val.
However, it is still possible that DFG OSR exit cannot find StructureStubInfo for SetterCall generated by op_put_by_val.
Let's consider the following scenario.

    1. Baseline CodeBlock (A) is compiled.
    2. (A) gets DFG (B).
    3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and compile it as inlined Setter call.
    4. (A)'s JITData is destroyed since it is not executed. Then, (A) becomes LLInt.
    5. The CodeBlock inlining (A) gets OSR exit. So (A) is executed and (A) eventually gets Baseline CodeBlock again.
    6. (B) gets OSR exit. (B) attempts to search for StructureStubInfo in (A) for PutById (originally, put_by_val). But it does not exist since (A)'s JITData is cleared once.

We should just link to doneTarget of ByValInfo when the SetterCall is generated by `op_put_by_val`. ByValInfo and its doneTarget always exists per op_put_by_val.

* bytecode/ByValInfo.h:
(JSC::ByValInfo::ByValInfo):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::findByValInfo):
* bytecode/CodeBlock.h:
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

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

2 months agoSupport inserting text or dictation alternative by simulating keyboard input
dbates@webkit.org [Mon, 23 Mar 2020 21:00:01 +0000 (21:00 +0000)]
Support inserting text or dictation alternative by simulating keyboard input
https://bugs.webkit.org/show_bug.cgi?id=209380
<rdar://problem/59445102>

Reviewed by Darin Adler.

Source/WebKit:

As a workaround for sites the implement their own editing system (e.g. facebook.com)
add a new insertion option that makes the insertion having a passing resemblance
of a person typing. The resemblance is achieved by dispatching DOM events with type
"keydown", "keyup", and "change".

* Shared/Cocoa/InsertTextOptions.cpp:
(IPC::ArgumentCoder<WebKit::InsertTextOptions>::encode):
(IPC::ArgumentCoder<WebKit::InsertTextOptions>::decode):
Encode and decode the new option.

* Shared/Cocoa/InsertTextOptions.h: Default the new option, shouldSimulateKeyboardInput,
to false to keep our current behavior.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _shouldSimulateKeyboardInputOnTextInsertion]): Added. Returns NO when
building without USE(TEXT_INTERACTION_ADDITIONS) to keep the current behavior.

(-[WKContentView insertText:]):
(-[WKContentView insertText:alternatives:style:]):
Set the shouldSimulateKeyboardInput option.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::insertDictatedTextAsync):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::insertTextAsync):
If shouldSimulateKeyboardInput is false then do what we do now. Otherwise, dispatch a DOM event
of type "keydown" and perform the insertion. Then dispatch DOM events of type "keyup" and "change".

Tools:

Add tests to ensure that DOM events are dispatched on insertion when shouldSimulateKeyboardInput
is enabled.

I also added a convenience assertion function, EXPECT_NS_EQUAL, that can
compare NSObjects so long as they implement -isEqual and -description. I
make use of this to compare the actual array of fired DOM events types to
an expected array.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::shouldSimulateKeyboardInputOnTextInsertionOverride):
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestCocoa.h:
(TestWebKitAPI::Util::assertNSObjectsAreEqual): Added.
(EXPECT_NS_EQUAL): Added.
* TestWebKitAPI/ios/insert-text.html: Added.

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

2 months agoChange TextIterator::rangeLength to not require a live range
darin@apple.com [Mon, 23 Mar 2020 20:50:15 +0000 (20:50 +0000)]
Change TextIterator::rangeLength to not require a live range
https://bugs.webkit.org/show_bug.cgi?id=209207

Reviewed by Antti Koivisto.

Source/WebCore:

- Renamed TextIterator::rangeLength to characterCount.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::rangeMatchesTextNearRange): Use characterCount.
(WebCore::resetNodeAndOffsetForReplacedNode): Ditto.
(WebCore::AXObjectCache::nextCharacterOffset): Ditto.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Ditto.
* accessibility/atk/WebKitAccessibleHyperlink.cpp:
(rangeLengthForObject): Ditto.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _convertToNSRange:]): Ditto.

* dom/SimpleRange.h: Export another constructor.

* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Use characterCount.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Ditto.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.
* editing/Editing.cpp:
(WebCore::indexForVisiblePosition): Ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingParagraph::rangeLength const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::checkingStart const): Ditto.
(WebCore::TextCheckingParagraph::checkingEnd const): Ditto.
(WebCore::TextCheckingParagraph::checkingLength const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical const): Ditto.

* editing/TextIterator.cpp:
(WebCore::TextIterator::rangeLength): Deleted.
(WebCore::characterCount): Like the baove but the argument is SimpleRange
and return is CharacterCount. Even though each individual node is limited
to 32-bit size, ranges covering multiple nodes could have a count of
characters that exceeds 32 bits, so CharacterCount is size_t.
(WebCore::TextIterator::getLocationAndLengthFromRange): Use characterCount.

* editing/TextIterator.h: Added characterCount function,
CharacterCount and CharacterRange types. Removed TextIterator::rangeLength.
Added FIXME comments about the next steps.

* editing/VisiblePosition.cpp:
(WebCore::makeBoundaryPoint): Added.
* editing/VisiblePosition.h: Added makeBoundaryPoint. Also removed
extraneous forward declarations and moved some function bodies out of the
class definition.

* editing/VisibleUnits.cpp:
(WebCore::distanceBetweenPositions): Changed return type to ptrdiff_t.
Use characterCount.
* editing/VisibleUnits.h: Updated for the above.

* editing/cocoa/DataDetection.mm:
(WebCore::detectItemAtPositionWithRange): Use characterCount.
* editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
* editing/ios/DictationCommandIOS.cpp:
(WebCore::DictationCommandIOS::doApply): Ditto.
* editing/mac/DictionaryLookupLegacy.mm:
(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
* page/EventHandler.cpp:
(WebCore::textDistance): Ditto.

Source/WebKit:

* Shared/EditingRange.cpp:
(WebKit::EditingRange::toRange): Use characterCount.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::insertionPointFromCurrentSelection): Changed return type to
CharacterCount and use characterCount.
(WebKit::WebEditorClient::supportsGlobalSelection): Tweaked #if.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::targetFrameForEditing): Use characterCount.
* WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformEditorState const): Ditto.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeNearPositionMatchesText): Ditto.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState const): Ditto.

Source/WebKitLegacy/mac:

* WebCoreSupport/WebEditorClient.mm:
(insertionPointFromCurrentSelection): Use characterCount.
(WebEditorClient::requestCandidatesForSelection): Ditto.
* WebView/WebFrame.mm:
(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]): Ditto.

LayoutTests:

* editing/mac/spelling/autocorrection-contraction-expected.txt: Update these expected
results because of changes to delegate callbacks. The test is still passing and this
change is only in the legacy WebKit case (there is a separate result for modern WebKit).
This seems to be a progression, not evidence of a bug.

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

2 months agoRename blankURL to aboutBlankURL
youenn@apple.com [Mon, 23 Mar 2020 19:46:57 +0000 (19:46 +0000)]
Rename blankURL to aboutBlankURL
https://bugs.webkit.org/show_bug.cgi?id=209344

Reviewed by Darin Adler.

Source/WebCore:

No change of behavior.

* dom/Document.cpp:
(WebCore::Document::setURL):
(WebCore::Document::completeURL const):
(WebCore::Document::ensureTemplateDocument):
* dom/Document.h:
(WebCore::Document::urlForBindings const):
* dom/InlineStyleSheetOwner.cpp:
(WebCore::parserContextForElement):
* dom/Node.cpp:
(WebCore::Node::baseURI const):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readWebArchive):
* editing/markup.cpp:
(WebCore::createFragmentFromMarkup):
* html/DOMURL.cpp:
(WebCore::DOMURL::create):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::location const):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterFormToken):
(WebCore::XSSAuditor::filterInputToken):
(WebCore::XSSAuditor::filterButtonToken):
(WebCore::XSSAuditor::isLikelySafeResource):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::maybeLoadEmpty):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::serverRedirectSourceForHistory const):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithDocumentLoader):
* loader/HistoryController.cpp:
(WebCore::HistoryController::currentItemShouldBeReplaced const):
(WebCore::HistoryController::initializeItem):
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createFromSelection):
* page/Location.cpp:
(WebCore::Location::url const):
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::markupToCFHTML):
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::sourceURI const):

Source/WebKit:

* UIProcess/API/C/WKPage.cpp:
(WKPageLoadPlainTextStringWithUserData):
* UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):
* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_load_plain_text):
* UIProcess/Inspector/WebPageDebuggable.cpp:
(WebKit::WebPageDebuggable::url const):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadWebArchiveData):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::dumpHistoryForTesting):
(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):

Source/WebKitLegacy/mac:

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

Source/WTF:

Rename blankURL to aboutBlankURL and allow using it without WTF:: prefix.

* wtf/URL.cpp:
(WTF::aboutBlankURL):
(WTF::blankURL): Deleted.
* wtf/URL.h:

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

2 months agoRemove DOMCache::m_records
youenn@apple.com [Mon, 23 Mar 2020 19:33:55 +0000 (19:33 +0000)]
Remove DOMCache::m_records
https://bugs.webkit.org/show_bug.cgi?id=209425

Reviewed by Alex Christensen.

We do not need to keep references of FetchRequest and FetchResponse since we clone them before exposing them.
For that reason, remove m_records and directly use records given from the CacheStorageConnection.
Minor refactoring to modernize/improve code readability.

This is a first step towards a future refactoring that will reduce the sending of records from network process to web process
based on the request parameters: record filtering will be done in network process instead of web process.

No change of behavior.

* Modules/cache/DOMCache.cpp:
(WebCore::createResponse):
(WebCore::DOMCache::doMatch):
(WebCore::DOMCache::cloneResponses):
(WebCore::DOMCache::matchAll):
(WebCore::createRequest):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::retrieveRecords):
(WebCore::DOMCache::queryCache):
(WebCore::DOMCache::queryCacheWithTargetStorage):
(WebCore::DOMCache::batchDeleteOperation):
(WebCore::DOMCache::batchPutOperation):
(WebCore::copyRequestRef): Deleted.
(WebCore::queryCacheMatch): Deleted.
(WebCore::DOMCache::updateRecords): Deleted.
* Modules/cache/DOMCache.h:

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

2 months agoXMLHttpRequest: getAllResponseHeaders() sorting
commit-queue@webkit.org [Mon, 23 Mar 2020 19:31:36 +0000 (19:31 +0000)]
XMLHttpRequest: getAllResponseHeaders() sorting
https://bugs.webkit.org/show_bug.cgi?id=200565

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-23
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test result.

* web-platform-tests/xhr/getallresponseheaders-expected.txt:

Source/WebCore:

Sort headers using the ASCII-uppercase header name as key but use ASCII-lowercase header
names in the string result.

Nehavior matches Firefox and Chrome.

Test: imported/web-platform-tests/xhr/getallresponseheaders.htm

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-getallresponseheaders

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::getAllResponseHeaders const):

Source/WTF:

Add a new manipulator that can efficiently convert
Strings to lower or upper ASCII.

* wtf/text/StringConcatenate.h:
(WTF::lowercase):
(WTF::uppercase):
* wtf/text/StringView.cpp:
(WTF::getCharactersWithASCIICaseInternal):
(WTF::StringView::getCharactersWithASCIICase const):
* wtf/text/StringView.h:

LayoutTests:

Update improved test results.

* platform/ios/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
* platform/mac-highsierra/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
* platform/mac-mojave/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:

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

2 months agoUnreviewed, address Yusuke's feedback on r258801.
ross.kirsling@sony.com [Mon, 23 Mar 2020 19:05:12 +0000 (19:05 +0000)]
Unreviewed, address Yusuke's feedback on r258801.

* builtins/RegExpPrototype.js:
(globalPrivate.hasObservableSideEffectsForRegExpSplit):
* bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

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

2 months agoUnreviewed, reverting r258847.
tsavell@apple.com [Mon, 23 Mar 2020 18:49:09 +0000 (18:49 +0000)]
Unreviewed, reverting r258847.

Broke testing on Mac Debug with an Assert

Reverted changeset:

"[LFC] Layout::Box::initialContainingBlock() should return
const InitialContainingBlock&"
https://bugs.webkit.org/show_bug.cgi?id=209406
https://trac.webkit.org/changeset/258847

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

2 months agoAdd checks for app-bound navigations when evaluating user style sheets
katherine_cheney@apple.com [Mon, 23 Mar 2020 18:47:48 +0000 (18:47 +0000)]
Add checks for app-bound navigations when evaluating user style sheets
https://bugs.webkit.org/show_bug.cgi?id=209368
<rdar://problem/60204230>

Reviewed by Brent Fulgham.

Source/WebCore:

* page/Page.cpp:
(WebCore::Page::injectUserStyleSheet):
If the style sheet is for a specific WebView, it will have a pageID
and we can check for app-bound navigation in the page object.

* style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
If the user style sheet is being applied to all WebViews, we can check for
for a page's existence and navigation state here before the style sheet is
updated.

Tools:

Tested cases based on those in UserContentController.mm.

* TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):
(expectScriptEvaluatesToColor):
(TEST):

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